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
81 lines
2.0 KiB
C++
Executable File
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."));
|
|
}
|