campo-sirio/cg/cg1308.cpp
alex 22adfa73ba Patch level :
Files correlati     :
Ricompilazione Demo : [ ]
Commento            : Riportata la versione 98.01.03pl015


git-svn-id: svn://10.65.10.50/trunk@6582 c028cbd2-c16b-5b4b-a496-9718f37d4682
1998-04-30 15:59:34 +00:00

83 lines
2.0 KiB
C++
Executable File

// Setta il mese liquidazione sui movimenti del registro vendite
#include <applicat.h>
#include <mask.h>
#include <progind.h>
#include <relation.h>
#include "cglib01.h"
#include <mov.h>
#include "cg1300.h"
#include "cg1308.h"
class TImposta_meseliq : public TSkeleton_application
{
protected:
static bool prot_handler(TMask_field& f, KEY k);
virtual void main_loop();
public:
TImposta_meseliq () {};
virtual ~TImposta_meseliq() {};
};
bool TImposta_meseliq::prot_handler(TMask_field& f, KEY k)
{
if (k == K_ENTER && f.to_check(k))
{
const TMask& m = f.mask();
const long da = m.get_long(F_DA);
const long a = m.get_long(F_A);
if (a < da)
return f.error_box("L'intervallo dei numeri protocollo specificati non e' valido.");
}
return TRUE;
}
void TImposta_meseliq::main_loop()
{
TString expr, es, reg;
TDate d(TODAY);
TMask m("cg1300e");
m.set_handler(F_A, prot_handler);
m.set_handler(F_DA, prot_handler);
TRelation r(LF_MOV);
TCursor c(&r);
TLocalisamfile& fl = c.file();
TEsercizi_contabili esc;
while (m.run() != K_QUIT)
{
const int meseliq = m.get_int(F_PASS);
d.set_year(m.get_int(F_ANNO));
es.format("%04d",esc.date2esc(d));
expr.format("(ANNOES==\"%s\")&&(REG==\"%s\")&&(STR((STR(PROTIVA))>=%ld))&&(STR((STR(PROTIVA))<=%ld))",
(const char*)es, (const char*) m.get(F_REG), m.get_long(F_DA), m.get_long(F_A));
c.setfilter(expr); // Setta l'espressione filtro
const long items = c.items();
if (items == 0)
continue;
TProgind* pi = new TProgind(c.items(), "Aggiornamento mese liquidazione in corso...", FALSE, TRUE, 50);
for (c = 0L; c.pos() < items; c+=1L) //scorre i movimenti e li aggiorna
{
if (c.pos() & 0x7F)
pi->addstatus(1L);
fl.put(MOV_MESELIQ,meseliq);
fl.rewrite();
}
delete pi;
warning_box("Aggiornati %ld records.",c.items());
}
}
int setta_meseliq(int argc, char* argv[])
{
TImposta_meseliq a;
a.run(argc, argv, "Impostazione mese liq.");
return 0;
}