f3d54d4fe9
git-svn-id: svn://10.65.10.50/branches/R_10_00@22867 c028cbd2-c16b-5b4b-a496-9718f37d4682
158 lines
3.9 KiB
C++
Executable File
158 lines
3.9 KiB
C++
Executable File
#include <applicat.h>
|
|
#include <automask.h>
|
|
#include <execp.h>
|
|
#include <progind.h>
|
|
#include <tabutil.h>
|
|
|
|
#include "velib07.h"
|
|
#include "ve8.h"
|
|
#include "ve8100a.h"
|
|
|
|
#include "../gv/gvlib.h"
|
|
|
|
#include <nditte.h>
|
|
|
|
////////////////////////////////////////////////////////
|
|
// MASCHERA
|
|
////////////////////////////////////////////////////////
|
|
class TListaRitFisc_mask : public TAutomask
|
|
{
|
|
protected:
|
|
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
|
|
|
public:
|
|
TListaRitFisc_mask();
|
|
virtual ~TListaRitFisc_mask() {}
|
|
};
|
|
|
|
bool TListaRitFisc_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
|
{
|
|
bool ok = true;
|
|
/*
|
|
switch (o.dlg())
|
|
{
|
|
case :
|
|
if (e == fe_init || e == fe_modify)
|
|
{
|
|
}
|
|
break;
|
|
default: break;
|
|
}
|
|
*/
|
|
return ok;
|
|
}
|
|
|
|
TListaRitFisc_mask::TListaRitFisc_mask():TAutomask("ve8100")
|
|
{
|
|
}
|
|
|
|
////////////////////////////////////////////////////////
|
|
// APPLICAZIONE
|
|
////////////////////////////////////////////////////////
|
|
class TListaRitFisc : public TSkeleton_application
|
|
{
|
|
protected:
|
|
virtual void main_loop();
|
|
public:
|
|
bool crea_righe(const TListaRitFisc_mask& m) const;
|
|
};
|
|
|
|
|
|
bool TListaRitFisc::crea_righe(const TListaRitFisc_mask& m) const
|
|
{
|
|
// cerca abi e cab della ditta
|
|
const TString& abi = m.get(F_CODABI);
|
|
const TString& cab = m.get(F_CODCAB);
|
|
const TDate datascad = m.get(F_DATASCAD);
|
|
|
|
int err=NOERR;
|
|
TLocalisamfile righe(LF_RIGHEF24);
|
|
TDocument_recordset rdoc("USE RDOC\nSELECT (TIPORIGA=='04')&&(110@->S10!='')&&(33.NDOC>=#DANUM)&&(33.NDOC<=#ANUM)\n"
|
|
"JOIN SPP ALIAS 110 INTO CODTAB=CODART\n"
|
|
"JOIN DOC INTO PROVV=PROVV ANNO=ANNO CODNUM=CODNUM NDOC=NDOC\n"
|
|
"FROM CODNUM=#NUM\nTO CODNUM=#NUM");
|
|
TVariant var;
|
|
var = m.get(F_NUMINI);
|
|
rdoc.set_var("#DANUM", var);
|
|
var = m.get(F_NUMFIN);
|
|
rdoc.set_var("#ANUM", var);
|
|
var = m.get(F_CODNUM);
|
|
rdoc.set_var("#NUM", var);
|
|
// calcolo importo e chiedo conferma all'operatore
|
|
const TRecordset& curr = rdoc;
|
|
real totale = ZERO;
|
|
for (bool ok = rdoc.move_first(); ok; ok = rdoc.move_next())
|
|
totale += curr.get("RDOC.RITENUTA").as_real();
|
|
err = NOERR;
|
|
if (yesno_box("Verranno generate %d righe per un importo di %s euro.\n"
|
|
"Si desidera proseguire?", rdoc.items(), totale.string()))
|
|
{
|
|
long cont = get_next_progr_f24();
|
|
long numf24 = get_next_f24();
|
|
// trucco per poter usare la get (nei TDocument_recordset la get ha 2 par. ed e' protected!)
|
|
for (bool ok1 = rdoc.move_first(); ok1; ok1 = rdoc.move_next())
|
|
{
|
|
righe.zero();
|
|
righe.put("PROGR", cont++);
|
|
righe.put("F24", numf24++);
|
|
righe.put("TRIBUTO", curr.get("SPP.S10").as_string());
|
|
righe.put("TIPOINTEST", 'C');
|
|
righe.put("INTEST", curr.get("DOC.CODCF").as_int());
|
|
righe.put("DESCR", "Riga generata");
|
|
righe.put("IMPORTODEB", curr.get("RDOC.RITENUTA").as_real());
|
|
righe.put("ABI", abi);
|
|
righe.put("CAB", cab);
|
|
righe.put("DATASCAD", datascad);
|
|
err = righe.write();
|
|
}
|
|
}
|
|
return (err==NOERR);
|
|
}
|
|
|
|
void TListaRitFisc::main_loop()
|
|
{
|
|
TListaRitFisc_mask m;
|
|
// cerca abi e cab della ditta
|
|
const TString& abi = prefix().firm().get(NDT_ABIBAN);
|
|
const TString& cab = prefix().firm().get(NDT_CABBAN);
|
|
m.set(F_CODABI, abi);
|
|
m.set(F_CODCAB, cab);
|
|
KEY key = K_ENTER;
|
|
while (key != K_QUIT)
|
|
{
|
|
key = m.run();
|
|
switch (key)
|
|
{
|
|
case K_SAVE:
|
|
crea_righe(m);
|
|
break;
|
|
case K_QUIT:
|
|
break;
|
|
case K_ENTER:
|
|
{
|
|
TDocument_report rep;
|
|
rep.load("ve8100a");
|
|
TRecordset * r = rep.recordset();
|
|
if (r != NULL)
|
|
{
|
|
TVariant var = m.get(F_NUMINI);
|
|
r->set_var("#DANUM", var);
|
|
var = m.get(F_NUMFIN);
|
|
r->set_var("#ANUM", var);
|
|
var = m.get(F_CODNUM);
|
|
r->set_var("#NUM", var);
|
|
}
|
|
rep.print_or_preview(); //stampa il book dei report
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
int ve8100(int argc, char* argv[])
|
|
{
|
|
TListaRitFisc a;
|
|
a.run(argc, argv, TR("Lista ritenute per F24"));
|
|
return 0;
|
|
} |