158 lines
4.7 KiB
C++
158 lines
4.7 KiB
C++
|
#include <applicat.h>
|
||
|
#include <automask.h>
|
||
|
#include <reprint.h>
|
||
|
#include <variant.h>
|
||
|
|
||
|
#include "cglib05.h"
|
||
|
#include "cg4b00a.h"
|
||
|
|
||
|
///////////////////////////////////////////////////////////
|
||
|
// TRiepilogoIVA_mask
|
||
|
///////////////////////////////////////////////////////////
|
||
|
|
||
|
class TRiepilogoIVA_mask : public TAutomask
|
||
|
{
|
||
|
protected:
|
||
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||
|
|
||
|
public:
|
||
|
TRiepilogoIVA_mask() : TAutomask("cg4b00a") { }
|
||
|
};
|
||
|
|
||
|
bool TRiepilogoIVA_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||
|
{
|
||
|
TRiepilogoIVA_mask & m = (TRiepilogoIVA_mask &)o.mask();
|
||
|
|
||
|
switch (o.dlg())
|
||
|
{
|
||
|
case F_DADATA:
|
||
|
if (e == fe_modify || e == fe_close)
|
||
|
{
|
||
|
if (TDate(o.get()) > m.get_date(F_ADATA))
|
||
|
m.set(F_ADATA, o.get());
|
||
|
}
|
||
|
break;
|
||
|
case F_ADATA:
|
||
|
if (e == fe_modify || e == fe_close)
|
||
|
{
|
||
|
if (TDate(o.get()) < m.get_date(F_DADATA))
|
||
|
o.set(m.get(F_DADATA));
|
||
|
}
|
||
|
case F_DASOTTOC:
|
||
|
if (e == fe_modify || e == fe_close)
|
||
|
{
|
||
|
TString da; da.format("%03d%03d%06ld", m.get_int(F_DAGRUPPO), m.get_int(F_DACONTO), m.get_long(F_DASOTTOC));
|
||
|
TString a; a.format("%03d%03d%06ld", m.get_int(F_AGRUPPO), m.get_int(F_ACONTO), m.get_long(F_ASOTTOC));
|
||
|
|
||
|
if (da > a)
|
||
|
{
|
||
|
m.set(F_AGRUPPO, da.left(3));
|
||
|
m.set(F_ACONTO, da.mid(3, 3));
|
||
|
m.set(F_ASOTTOC, da.right(6), 0x3);
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
case F_ASOTTOC:
|
||
|
if (e == fe_modify || e == fe_close)
|
||
|
{
|
||
|
TString da; da.format("%03d%03d%06ld", m.get_int(F_DAGRUPPO), m.get_int(F_DACONTO), m.get_long(F_DASOTTOC));
|
||
|
TString a; a.format("%03d%03d%06ld", m.get_int(F_AGRUPPO), m.get_int(F_ACONTO), m.get_long(F_ASOTTOC));
|
||
|
|
||
|
if (da > a)
|
||
|
{
|
||
|
m.set(F_AGRUPPO, da.left(3));
|
||
|
m.set(F_ACONTO, da.mid(3, 3));
|
||
|
m.set(F_ASOTTOC, da.right(6), 0x3);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
///////////////////////////////////////////////////////////
|
||
|
// TRiepilogoIVAcompetenza_recordset
|
||
|
///////////////////////////////////////////////////////////
|
||
|
|
||
|
class TRiepilogoIVAcompetenza_recordset : public TRiepilogoIVA_recordset
|
||
|
{
|
||
|
bool _senzacompetenza;
|
||
|
bool _competenzadiversa;
|
||
|
bool _registrazioneritardo;
|
||
|
|
||
|
public:
|
||
|
virtual bool set_senzacompetenzaIVA(bool on) { _senzacompetenza = on; return on; }
|
||
|
virtual bool set_competenzadiversaIVA(bool on) { _competenzadiversa = on; return on; }
|
||
|
virtual bool set_registrazioneIVAritardo(bool on) { return _registrazioneritardo = on; return on; }
|
||
|
virtual bool senzacompetenzaIVA() { return _senzacompetenza; }
|
||
|
virtual bool competenzadiversaIVA() { return _competenzadiversa; }
|
||
|
virtual bool registrazioneIVAritardo() { return _registrazioneritardo; }
|
||
|
|
||
|
TRiepilogoIVAcompetenza_recordset() {}
|
||
|
virtual ~TRiepilogoIVAcompetenza_recordset() { }
|
||
|
};
|
||
|
|
||
|
///////////////////////////////////////////////////////////
|
||
|
// TRiepilogoIVA_app
|
||
|
///////////////////////////////////////////////////////////
|
||
|
|
||
|
class TRiepilogoIVA_app : public TSkeleton_application
|
||
|
{
|
||
|
protected:
|
||
|
virtual void main_loop();
|
||
|
};
|
||
|
|
||
|
void TRiepilogoIVA_app::main_loop()
|
||
|
{
|
||
|
TRiepilogoIVA_mask m;
|
||
|
|
||
|
while (m.run() != K_QUIT)
|
||
|
{
|
||
|
TRiepilogoIVA_report rep;
|
||
|
TFilename repname = m.get(F_REPORT);
|
||
|
TRiepilogoIVAcompetenza_recordset *recset = new TRiepilogoIVAcompetenza_recordset;
|
||
|
|
||
|
if (repname.blank())
|
||
|
repname = "cg4b00a";
|
||
|
rep.load(repname);
|
||
|
if (recset != NULL)
|
||
|
{
|
||
|
recset->freeze();
|
||
|
recset->set_senzacompetenzaIVA(m.get_bool(F_NOCOMP));
|
||
|
recset->set_competenzadiversaIVA(m.get_bool(F_COMPDIV));
|
||
|
recset->set_registrazioneIVAritardo(m.get_bool(F_REGRIT));
|
||
|
recset->set_from(m.get_date(F_DADATA));
|
||
|
recset->set_to(m.get_date(F_ADATA));
|
||
|
|
||
|
recset->set_from_conto(m.get_long(F_DAGRUPPO), m.get_long(F_DACONTO), m.get_long(F_DASOTTOC));
|
||
|
if (m.get_long(F_DAGRUPPO) != 0)
|
||
|
recset->set_to_conto(m.get_long(F_AGRUPPO), m.get_long(F_ACONTO), m.get_long(F_ASOTTOC));
|
||
|
recset->set_var("#NOCOMP", m.get_bool(F_NOCOMP), true);
|
||
|
recset->set_var("#COMPDIV", m.get_bool(F_COMPDIV), true);
|
||
|
recset->set_var("#REGRIT", m.get_bool(F_REGRIT), true);
|
||
|
recset->set_var("#TODATE", m.get_date(F_ADATA), true);
|
||
|
recset->set_var("#FROMDATE", m.get_date(F_DADATA), true);
|
||
|
recset->set_var("#TODATE", m.get_date(F_ADATA), true);
|
||
|
recset->set_var("#DAGRUPPO", m.get_long(F_DAGRUPPO), true);
|
||
|
recset->set_var("#DACONTO", m.get_long(F_DACONTO), true);
|
||
|
recset->set_var("#DASOTTOCONTO", m.get_long(F_DASOTTOC), true);
|
||
|
recset->set_var("#AGRUPPO", m.get_long(F_AGRUPPO), true);
|
||
|
recset->set_var("#ACONTO", m.get_long(F_ACONTO), true);
|
||
|
recset->set_var("#ASOTTOCONTO", m.get_long(F_ASOTTOC), true);
|
||
|
recset->unfreeze();
|
||
|
rep.set_recordset(recset);
|
||
|
|
||
|
rep.print_or_preview();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
int cg4b00(int argc, char* argv[])
|
||
|
{
|
||
|
TRiepilogoIVA_app app;
|
||
|
app.run(argc, argv, TR("Stampa progressivi IVA per competenza"));
|
||
|
return 0;
|
||
|
}
|