From f84ff12a1a0ff685311342ff617ce5946ce541f2 Mon Sep 17 00:00:00 2001 From: luca Date: Thu, 12 Feb 2004 09:56:35 +0000 Subject: [PATCH] Patch level :2.0 p@rtners new implementation Files correlati :cg3.exe cg3100b.msk Ricompilazione Demo : [ ] Commento : CM20081 Implementare un nuovo filtro per codice IVA sulla lista fatture clifor. git-svn-id: svn://10.65.10.50/trunk@11756 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cg3.cpp | 2 +- cg/cg3100.cpp | 37 ++++++++++++++++++++++++++++++++- cg/cg3100.h | 4 ++++ cg/cg3100b.uml | 56 ++++++++++++++++++++++++++++++++++++++++++++------ 4 files changed, 91 insertions(+), 8 deletions(-) diff --git a/cg/cg3.cpp b/cg/cg3.cpp index cb44e4331..ef79201d2 100755 --- a/cg/cg3.cpp +++ b/cg/cg3.cpp @@ -15,7 +15,7 @@ int main(int argc,char** argv) case 5 : cg3600(argc,argv) ; break; // Visualizzazione mastrini case 6 : cg3700(argc,argv) ; break; // Lista fatture case 7 : cg3800(argc,argv) ; break; // Lista fatture doppie - default: cg3100(argc,argv) ; break; // Lista movimenti + default: cg3100(argc,argv) ; break; // Lista movimenti[1]/fatture[2] } exit(0); return 0; diff --git a/cg/cg3100.cpp b/cg/cg3100.cpp index 87377dd9b..f3a4e280a 100755 --- a/cg/cg3100.cpp +++ b/cg/cg3100.cpp @@ -71,7 +71,7 @@ class TListaMov_application : public TPrintapp liste _tipo_lista; word _flags; char _tipoc; - TString _cdc, _fsc; + TString _cdc, _fsc, _dacodiva, _acodiva; bool _cdc_only, _print_cdc; TDecoder _simbval, _descdoc; @@ -89,6 +89,9 @@ protected: void filtra_cursore_provvisori(TCursor* cur) const; void imposta_parametri_stampa(const TMask& msk); void set_cdc_header(int& soh); + + bool codiva_filter(const TRelation* rel) const; + bool rmoviva_filter(const TRectype& rmoviva) const; public: @@ -499,6 +502,32 @@ bool cdc_filter(const TRelation* rel) return ok; } +bool TListaMov_application::rmoviva_filter(const TRectype& rmoviva) const +{ + const TString& codiva = rmoviva.get(RMI_CODIVA); + if (_dacodiva.not_empty() && codiva < _dacodiva) + return false; + if (_acodiva.not_empty() && codiva > _acodiva) + return false; + + return true; +} + +bool TListaMov_application::codiva_filter(const TRelation* rel) const +{ + bool ok = _dacodiva.empty() && _acodiva.empty(); // Test su range codici iva + if (!ok) + { + const TRectype& mov = rel->curr(LF_MOV); + TRectype rmoviva(LF_RMOVIVA); + rmoviva.put(RMI_NUMREG, mov.get(MOV_NUMREG)); + TRecord_array righe(rmoviva, RMI_NUMRIG); + for (int i = 1; !ok && i <= righe.rows(); i++) + ok = rmoviva_filter(righe[i]); + } + return ok; +} + bool TListaMov_application::filter_func_fatture (const TRelation* rel) { const TRectype& mov = rel->curr(LF_MOV); @@ -534,6 +563,10 @@ bool TListaMov_application::filter_func_fatture (const TRelation* rel) to.put(MOV_CODCF, app()._codice_fin); bool ok = mov >= from && mov <= to; + + if (ok) + ok = app().codiva_filter(rel); + if (ok && app().cdc().not_empty()) ok = cdc_filter(rel); @@ -2043,6 +2076,8 @@ void TListaMov_application::imposta_parametri_stampa(const TMask& msk) _annoes = msk.get_int(F_ANNO); _causale_ini = msk.get(F_DACODCAUS); _causale_fin = msk.get(F_ACODCAUS); + _dacodiva = msk.get(F_DACODIVA); + _acodiva = msk.get(F_ACODIVA); if (tipo=="C" || tipo=="F") { diff --git a/cg/cg3100.h b/cg/cg3100.h index 94aa95efb..f6a95e7ac 100755 --- a/cg/cg3100.h +++ b/cg/cg3100.h @@ -44,6 +44,10 @@ #define F_ACODCAUS 141 #define F_ADESCRCAUS 142 #define F_COMPETENZA 143 +#define F_DACODIVA 144 +#define F_DES_DACODIVA 145 +#define F_ACODIVA 146 +#define F_DES_ACODIVA 147 #define ST_DATA 0x0001 #define ST_NUMERO 0x0002 diff --git a/cg/cg3100b.uml b/cg/cg3100b.uml index baf983feb..51de5c74a 100755 --- a/cg/cg3100b.uml +++ b/cg/cg3100b.uml @@ -216,18 +216,18 @@ END BOOLEAN F_CAMBIO BEGIN - PROMPT 2 12 "Cambio pagina per cliente/fornitore " + PROMPT 2 11 "Cambio pagina per cliente/fornitore " HELP "Indicare se cambiare pagina nel passaggio da cliente/fornitore a cliente/fornitore" END BOOLEAN F_SEPARATOR BEGIN - PROMPT 2 13 "Non stampare i separatori delle migliaia" + PROMPT 2 12 "Non stampare i separatori delle migliaia" END STRING F_DACODCAUS 3 BEGIN - PROMPT 2 15 "Da causale: " + PROMPT 2 13 "Da causale: " FLAGS "ZU" USE LF_CAUSALI SELECT REG!="" INPUT CODCAUS F_DACODCAUS @@ -241,13 +241,13 @@ END STRING F_DADESCRCAUS 50 BEGIN - PROMPT 22 15 "" + PROMPT 22 13 "" FLAGS "D" END STRING F_ACODCAUS 3 BEGIN - PROMPT 2 16 "A causale: " + PROMPT 2 14 "A causale: " FLAGS "ZU" USE LF_CAUSALI SELECT REG!="" INPUT CODCAUS F_ACODCAUS @@ -263,10 +263,54 @@ END STRING F_ADESCRCAUS 50 BEGIN - PROMPT 22 16 "" + PROMPT 22 14 "" FLAGS "D" END +STRING F_DACODIVA 4 +BEGIN + PROMPT 2 15 "Da codice IVA " + USE %IVA KEY 1 + FLAGS "U" + INPUT CODTAB F_DACODIVA + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_DACODIVA CODTAB + OUTPUT F_DES_DACODIVA S0 + CHECKTYPE NORMAL +END + +STRING F_DES_DACODIVA 50 45 +BEGIN + PROMPT 25 15 "" + USE %IVA KEY 2 + INPUT S0 F_DES_DACODIVA + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_DACODIVA +END + +STRING F_ACODIVA 4 +BEGIN + PROMPT 2 16 "A codice IVA " + COPY USE F_DACODIVA + FLAGS "U" + INPUT CODTAB F_ACODIVA + COPY DISPLAY F_DACODIVA + OUTPUT F_ACODIVA CODTAB + OUTPUT F_DES_ACODIVA S0 + CHECKTYPE NORMAL +END + +STRING F_DES_ACODIVA 50 45 +BEGIN + PROMPT 25 16 "" + COPY USE F_DES_DACODIVA + INPUT S0 F_DES_ACODIVA + COPY DISPLAY F_DES_DACODIVA + COPY OUTPUT F_ACODIVA +END + GROUPBOX DLG_NULL 71 5 BEGIN PROMPT 2 18 "@bCDC / Commesse"