diff --git a/cm/cm0100.cpp b/cm/cm0100.cpp index 57d13077b..2f35378bd 100755 --- a/cm/cm0100.cpp +++ b/cm/cm0100.cpp @@ -18,9 +18,9 @@ class TForm_contixcdc : public TForm public: virtual bool validate(TForm_item &cf, TToken_string &s); - void set_testata() {set_header(1,TRUE);} - TPrint_section& get_body() {return section('B', odd_page);} - TPrint_section& get_section(char s, pagetype pos) {return section(s, pos);} + void set_testata() { set_header(1,TRUE); } + TPrint_section& get_body() { return section('B', odd_page); } + TPrint_section& get_section(char s, pagetype pos) { return section(s, pos); } TForm_contixcdc(); virtual ~TForm_contixcdc(); @@ -111,9 +111,9 @@ bool TContixcdc_mask::on_field_event(TOperable_field& o, TField_event e, long jo if (e == fe_modify || e == fe_close) { TDate dataini(get(F_DATAINI)); - if (dataini.ok()) + if (dataini.ok() && !field(F_ANNO).empty()) { - TDate datainies = cache().get("ESC", field(F_ANNO).get(), "D0"); + const TDate datainies = cache().get("ESC", get(F_ANNO), "D0"); if (dataini < datainies && datainies.ok()) return error_box(TR("La data iniziale non puņ essere precedente alla data inizio esercizio %s"), (const char*) datainies.string()); } @@ -123,14 +123,11 @@ bool TContixcdc_mask::on_field_event(TOperable_field& o, TField_event e, long jo if (e == fe_modify || fe_close) { TDate datafin(get(F_DATAFIN)); - if (datafin.ok()) + if (datafin.ok() && !field(F_ANNO).empty()) { - TDate datafines = cache().get("ESC", field(F_ANNO).get(), "D1"); - if (datafin > datafines && datafines.ok()) - return error_box(FR("La data finale non puņ essere successiva alla data fine esercizio %s"), (const char*) datafines.string()); - TDate dataini(field(F_DATAINI).get()); - if (dataini > datafin) - return error_box(TR("La data iniziale non puņ essere successiva alla data finale")); + const TDate datafines = cache().get("ESC", get(F_ANNO), "D1"); + if (datafin > datafines && datafines.ok()) + return error_box(FR("La data finale non puņ essere successiva alla data fine esercizio %s"), (const char*) datafines.string()); } } break; @@ -172,7 +169,8 @@ class TContixCdc : public TSkeleton_application int _currgruppo, _currconto, _oldgruppo, _oldconto; long _currsottoc, _oldsottoc; TString _currcms, _currfsc, _oldcms, _oldfsc; - bool _saltopagina, _stampa_totconti, _headercms, _headerfsc; + bool _saltopagina, _headercms, _headerfsc; + bool _stampa_totconti, _stampa_totcms, _stampa_dettagli; protected: virtual bool create(); @@ -196,7 +194,6 @@ protected: public: TContixCdc() {} - }; bool TContixCdc::create() @@ -236,7 +233,8 @@ void TContixCdc::print_sottoc() set_field(FR_SOTTOC, _oldsottoc); set_field(FR_D_SOTTOC, pcon.get(PCN_DESCR)); fill_body(_t_sottoc); - print_body(); + if (_stampa_dettagli) + print_body(); _t_gruppo += _t_sottoc; _t_fsc += _t_sottoc; _t_cms += _t_sottoc; @@ -268,10 +266,13 @@ void TContixCdc::print_footer_gruppo() void TContixCdc::print_footer_cms() { - if (!_t_cms._tot_periodo.is_zero()) + if (!_t_cms._tot_periodo.is_zero() && _stampa_totcms) { TString tmp; - tmp.format(FR("TOTALE COMMESSA %s"), (const char*) _oldcms); + tmp.format(FR("TOTALE COMMESSA %s"), (const char*)_oldcms); + set_field(FR_GRUPPO, ""); + set_field(FR_CONTO, ""); + set_field(FR_SOTTOC, ""); set_field(FR_D_SOTTOC, tmp); fill_body(_t_cms); print_body(); @@ -395,16 +396,18 @@ void TContixCdc::aggiorna_totali(const TImporto& importo, const TDate& data) void TContixCdc::main_loop() { + _mask->set(F_DETTAGLI, "X"); // Attiva stampa dettagli _mask->set(F_TOTCONTI, "X"); // Attiva stampa totali per conto + _mask->set(F_TOTCMS, "X"); // Attiva stampa totali per commessa while (_mask->run() == K_ENTER) { _codes = _mask->get_int(F_ANNO); // esercizio _dataini = _mask->get_date(F_DATAINI); // data iniziale _datafin = _mask->get_date(F_DATAFIN); // data finale - if (_dataini.empty()) + if (_dataini.empty() && !_mask->field(F_ANNO).empty()) _dataini = cache().get("ESC", _mask->get(F_ANNO)).get_date("D0"); - if (_datafin.empty()) + if (_datafin.empty() && !_mask->field(F_ANNO).empty()) _datafin = cache().get("ESC", _mask->get(F_ANNO)).get_date("D1"); TString80 dacdc = _mask->get(F_DACDC); // cdc/commessa iniziale TString80 dafsc = _mask->get(F_DAFSC); // fase iniziale @@ -412,7 +415,7 @@ void TContixCdc::main_loop() TString80 afsc = _mask->get(F_AFSC); // fase finale TRelation relrmov(LF_RMOV); TString filtro = ""; - if (_codes != 0) + if (_codes > 0) filtro.format("ANNOES==%d", _codes); if (dacdc.not_empty()) { @@ -481,7 +484,9 @@ void TContixCdc::main_loop() _headerfsc = (ctrlfsc) ? TRUE : FALSE; _saltopagina = _mask->get_bool(F_SALTOPAGINA); // salto pagina a fine commessa + _stampa_dettagli = _mask->get_bool(F_DETTAGLI); _stampa_totconti = _mask->get_bool(F_TOTCONTI); + _stampa_totcms = _mask->get_bool(F_TOTCMS); for (sortcur=0; sortcur.pos()= F_DATAINI + WARNING "La data finale deve essere succeviva a quella iniziale" END GROUPBOX DLG_NULL 79 5 @@ -128,7 +129,7 @@ BEGIN PROMPT 2 10 "Salto pagina a fine commessa" END -GROUPBOX DLG_NULL 79 7 +GROUPBOX DLG_NULL 79 6 BEGIN PROMPT 1 12 "@bSelezione conti" END @@ -244,9 +245,24 @@ BEGIN ADD RUN cg0 -0 END +GROUPBOX DLG_NULL 79 3 +BEGIN + PROMPT 1 18 "@bSelezione elementi da stampare" +END + +BOOLEAN F_DETTAGLI +BEGIN + PROMPT 2 19 "Dettagli sottoconto" +END + BOOLEAN F_TOTCONTI BEGIN - PROMPT 2 17 "Stampa totali per conto" + PROMPT 31 19 "Totali per conto" +END + +BOOLEAN F_TOTCMS +BEGIN + PROMPT 57 19 "Totali per commessa" END ENDPAGE