#include #include #include #include #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 _competenzaperiodo; bool _competenzadiversa; bool _registrazioneritardo; public: virtual bool set_competenzaperiodoIVA(bool on) { _competenzaperiodo = 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 competenzaperiodoIVA() const { return _competenzaperiodo; } virtual bool competenzadiversaIVA() const { return _competenzadiversa; } virtual bool registrazioneIVAritardo() const { return _registrazioneritardo; } virtual bool is_competenza() const { return true; } 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_competenzaperiodoIVA(m.get_bool(F_COMPUG)); 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_annuale((m.get_date(F_DADATA).month() == 1) && (m.get_date(F_ADATA).month() == 12) ); 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("#COMPUG", m.get_bool(F_COMPUG), 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; }