campo-sirio/cg/cg1308.cpp
guy 37b49c465c Patch level :
Files correlati     : cg0.exe cg1.exe cg1310.msk cgmenu.men
Ricompilazione Demo : [ ]
Commento            :
Permessa duplicazione codice fiscale di enti pubblici in anagrafica clifo
Aggiunto programma per allineamento IBAN su CFBAN


git-svn-id: svn://10.65.10.50/branches/R_10_00@22452 c028cbd2-c16b-5b4b-a496-9718f37d4682
2011-10-12 13:38:42 +00:00

81 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"
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(TR("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(), TR("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(FR("Aggiornati %ld records."),c.items());
}
}
void setta_meseliq(int argc, char* argv[])
{
TImposta_meseliq a;
a.run(argc, argv, TR("Impostazione mese liq."));
}