From 6ff28ddb01d9cc69863f50aff2d490eab249cebb Mon Sep 17 00:00:00 2001 From: Alessandro Bonazzi Date: Thu, 30 Jan 2020 20:10:16 +0100 Subject: [PATCH] Patch level : 12.0 934 Files correlati : pr1.exe pr1300a.uml Commento : - Aggiunta selezione e ordinamento per data scadenz nella stampa schede provvigione --- src/pr/f124.trr | 3 ++- src/pr/pr1300.cpp | 28 ++++++++++++++++++---------- src/pr/pr1300a.h | 2 ++ src/pr/pr1300a.uml | 13 ++++++++++--- 4 files changed, 32 insertions(+), 14 deletions(-) diff --git a/src/pr/f124.trr b/src/pr/f124.trr index 7e5babfe0..b6d6e93cf 100755 --- a/src/pr/f124.trr +++ b/src/pr/f124.trr @@ -26,6 +26,7 @@ PAGMAT|4|18|2|Pagamento maturato PROVVMAT|4|18|2|Provvigione maturata TIPOPAGPR|2|1|0|Tipo pagamento della provvigione (?) DATASTAMPA|5|8|0|Data pagamento ultima provvigione -2 +3 CODAGE+ANNO+CODNUM+NDOC+NRIGA| CODAGE+DATADOC|X +CODAGE+DATASCAD|X diff --git a/src/pr/pr1300.cpp b/src/pr/pr1300.cpp index 1e930bc06..442928dc6 100755 --- a/src/pr/pr1300.cpp +++ b/src/pr/pr1300.cpp @@ -94,6 +94,7 @@ bool TStampa_schedeprovv_mask::on_field_event(TOperable_field& o, TField_event e class TStampa_schedeprovv : public TSkeleton_application { TMask * _m; + TString4 _filtro_data; protected: void riporta_pagamenti(TCursor &cur); @@ -236,20 +237,22 @@ void TStampa_schedeprovv::print_or_preview(bool paper) */ if (!_m->field(F_DADATA).empty() || !_m->field(F_ADATA).empty()) { - filter << "BETWEEN(" << PROV_DATADOC - << ',' << _m->get_date(F_DADATA).date2ansi() - << ',' << _m->get_date(F_ADATA).date2ansi() - << ")"; + if (_filtro_data == "S") + filter << "BETWEEN(" << PROV_DATASCAD + << ',' << _m->get_date(F_DADATA).date2ansi() + << ',' << _m->get_date(F_ADATA).date2ansi() << ")"; + else + filter << "BETWEEN(" << PROV_DATADOC + << ',' << _m->get_date(F_DADATA).date2ansi() + << ',' << _m->get_date(F_ADATA).date2ansi() << ")"; } if (not_empty) filter << ")"; } - // aggiungo comunque il file alla relazione perche' mi serve avere il documento sempre - frm.cursor()->relation()->add(LF_DOC, "CODNUM==CODNUM|ANNO==ANNO|PROVV==\"D\"|NDOC==NDOC"); - const TString& tipodoc = _m->get(F_TIPODOC); - if (tipodoc.full()) + + if (tipodoc.full()) { bool not_empty = filter.full(); if (not_empty) @@ -269,12 +272,16 @@ void TStampa_schedeprovv::print_or_preview(bool paper) frm.cursor()->setfilter(filter); TRectype start(LF_PROVV),end(LF_PROVV); + start.put(PROV_CODAGE, _m->get(F_DAAGE)); end.put(PROV_CODAGE, _m->get(F_AAGE)); frm.cursor()->setregion(start, end); frm.cursor()->freeze(true); - - frm.set_basecalcolo(_m->get(F_FORMULA)); + if (_filtro_data == "S") + frm.sorted_cursor()->change_order("CODAGE|CODCLI|CODNUM|DATASCAD"); + // aggiungo comunque il file alla relazione perche' mi serve avere il documento sempre + frm.cursor()->relation()->add(LF_DOC, "CODNUM==CODNUM|ANNO==ANNO|PROVV==\"D\"|NDOC==NDOC"); + frm.set_basecalcolo(_m->get(F_FORMULA)); // abilita le sezioni dei totali frm.find_field('B',odd_page,"CLIENTI").show(!_m->get_bool(F_RAGGCLI)); @@ -300,6 +307,7 @@ void TStampa_schedeprovv::main_loop() KEY k; while ((k = _m->run()) != K_QUIT) { + _filtro_data = _m->get(F_FILTRO_DATA); print_or_preview(k == K_ENTER); } } diff --git a/src/pr/pr1300a.h b/src/pr/pr1300a.h index 41b23be09..9211cecb2 100755 --- a/src/pr/pr1300a.h +++ b/src/pr/pr1300a.h @@ -11,4 +11,6 @@ #define F_NOZERO 111 #define F_FORMULA 112 #define F_D_FORMULA 113 +#define F_FILTRO_DATA 114 + #define F_PROFILO 200 \ No newline at end of file diff --git a/src/pr/pr1300a.uml b/src/pr/pr1300a.uml index a993131fb..cd875f5e8 100755 --- a/src/pr/pr1300a.uml +++ b/src/pr/pr1300a.uml @@ -80,19 +80,26 @@ BEGIN MESSAGE TRUE "X",F_RAGGRATE|DISABLE,F_RAGGRATE|"",F_TIPODOC|DISABLE, F_TIPODOC END +LIST F_FILTRO_DATA 1 30 +BEGIN + PROMPT 2 8 "Selezione per data " + ITEM "D|documento" + ITEM "S|scadenza" +END + BOOL F_RAGGRATE BEGIN - PROMPT 2 8 "Raggruppamento rate" + PROMPT 2 9 "Raggruppamento rate" END BOOL F_NOZERO BEGIN - PROMPT 34 8 "Non stampare documenti senza provvigioni" + PROMPT 34 9 "Non stampare documenti senza provvigioni" END STRING F_TIPODOC 4 BEGIN - PROMPT 2 9 "Tipo documento " + PROMPT 2 10 "Tipo documento " HELP "Selezionare il tipo documento da stampare" USE %TIP SELECT B3=="X" INPUT CODTAB F_TIPODOC