diff --git a/src/cg/cg2100.cpp b/src/cg/cg2100.cpp index 1dff5d08b..312c4fdc5 100755 --- a/src/cg/cg2100.cpp +++ b/src/cg/cg2100.cpp @@ -2268,7 +2268,7 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query) } if (_f1_ini && msk.find_by_id(FS_RECALC) != NULL) { - msk.set(F_TOTALE, calcola_imp()); + //msk.set(F_TOTALE, calcola_imp()); msk.set(F_COLFPPRO, "X"); msk.set(FS_RECALC, ""); load_perc_nat(msk, ini); diff --git a/src/cg/cg2100.h b/src/cg/cg2100.h index ae01aa6fb..ac890e3ab 100755 --- a/src/cg/cg2100.h +++ b/src/cg/cg2100.h @@ -222,12 +222,13 @@ #define F_DATAORARICS 103 #define F_DATAS 104 #define F_IMPTOTDOCS 105 -#define F_NUMEROS 106 -#define F_FISCIVAPAESES 107 -#define F_FISCIVACODS 108 -#define F_CODFISCALES 109 -#define F_TIPOPROTS 110 -#define F_PROGRESSS 111 -#define F_KEYFPPROS 112 +#define F_RITENUTE 106 +#define F_NUMEROS 107 +#define F_FISCIVAPAESES 108 +#define F_FISCIVACODS 109 +#define F_CODFISCALES 110 +#define F_TIPOPROTS 111 +#define F_PROGRESSS 112 +#define F_KEYFPPROS 113 #endif diff --git a/src/cg/cg2102.cpp b/src/cg/cg2102.cpp index 6c418fac2..bd9d9c764 100755 --- a/src/cg/cg2102.cpp +++ b/src/cg/cg2102.cpp @@ -3906,14 +3906,13 @@ void TPrimanota_application::set_clifo(TMask& cg_msk, const shared_ptr void TPrimanota_application::set_totale(TMask& cg_msk, const shared_ptr& msk) { real totale = msk->get_totdoc(); - if(totale == 0) + if(totale == ZERO) + totale = app().calcola_imp(); + const real rit = msk->get_ritenute(); + if(rit != ZERO) { - const vector& righe = msk->get_righeiva(); - for(auto it = righe.begin(); it != righe.end(); ++it) - { - totale += it->imponibile; - totale += it->imposta; - } + cg_msk.set(F_TOTALE, totale - rit); + cg_msk.set(F_RITFIS, rit); } cg_msk.set(F_TOTALE, abs(totale)); } @@ -4018,6 +4017,7 @@ bool TPro_msk::load_fppro_mask(TMask* msk, KEY k) row.add(TDate(fp_db().sq_get_date("P1_DATAORARIC"))); row.add(TDate(fp_db().sq_get_date("PZ_DATA"))); row.add(fp_db().sq_get("PQ_IMPTOTDOC")); + row.add(fp_db().sq_get("P7_IMPORTORIT")); row.add(fp_db().sq_get("PZ_NUMERO")); row.add(fp_db().sq_get("P2_FISCIVAPAESE")); row.add(fp_db().sq_get("P2_FISCIVACOD")); @@ -4057,7 +4057,7 @@ bool TPro_msk::fppro_ok_handler(TMask_field& f, KEY k) { //TProtocollo protocollo(TDate(row->get(2)).year(), row->get(9), row->get(10)); app()._pro_mask->set_doc(row->get(cid2index(F_NUMEROS)), row->get(cid2index(F_DATAS)), - row->get(cid2index(F_IMPTOTDOCS)), "", row->get(cid2index(F_KEYFPPROS)), + row->get(cid2index(F_IMPTOTDOCS)), row->get(cid2index(F_RITENUTE)), "", row->get(cid2index(F_KEYFPPROS)), row->get(cid2index(F_FISCIVACODS))); loaded = true; ok = true; @@ -4170,11 +4170,12 @@ void TPro_msk::set_scadenze(const char* fpprokeys) } } -void TPro_msk::set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* protfppro, const char* fpprokeys, const char* piva) +void TPro_msk::set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* ritenute, const char* protfppro, const char* fpprokeys, const char* piva) { _numero = numero; _datadoc = datadoc; _totdoc = totdoc; + _ritenute = ritenute; _protfppro.sset(protfppro); _fpprokeys = fpprokeys; _piva = piva; @@ -4232,7 +4233,7 @@ TString& TPro_msk::query_fppro(const TString& codforn, const TString& stato_piva } static TString query; - query.cut(0) << "SELECT PZ_CLIFOR, PZ_DATA, CAST(P1_DATAORARIC AS DATE) AS P1_DATAORARIC, P7_TIPODOC, PQ_IMPTOTDOC, PZ_NUMERO, PZ_NUMREGCONT, PZ_TIPOPROT, PZ_NUMPROT, P2_FISCIVAPAESE, P2_FISCIVACOD, P2_CODFISCALE, PZ_KEYPRGINVIO, PZ_KEYHEADERFATT, PZ_KEYBODYFATT\n" << + query.cut(0) << "SELECT PZ_CLIFOR, PZ_DATA, CAST(P1_DATAORARIC AS DATE) AS P1_DATAORARIC, P7_TIPODOC, PQ_IMPTOTDOC, P7_IMPORTORIT, PZ_NUMERO, PZ_NUMREGCONT, PZ_TIPOPROT, PZ_NUMPROT, P2_FISCIVAPAESE, P2_FISCIVACOD, P2_CODFISCALE, PZ_KEYPRGINVIO, PZ_KEYHEADERFATT, PZ_KEYBODYFATT\n" << "FROM PAA0200F\n" << "JOIN FPPRO00F\n" << " ON P2_KEYPRGINVIO = PZ_KEYPRGINVIO AND P2_KEYHEADERFATT = PZ_KEYHEADERFATT AND P2_KEYBODYFATT = PZ_KEYBODYFATT\n" << "JOIN PAA0100F\n" << " ON P2_KEYPRGINVIO = P1_KEYPRGINVIO AND P2_KEYHEADERFATT = P1_KEYHEADERFATT AND P2_KEYBODYFATT = P1_KEYBODYFATT\n" << "JOIN PAA2700F\n" << "ON P2_KEYPRGINVIO = PQ_KEYPRGINVIO AND P2_KEYHEADERFATT = PQ_KEYHEADERFATT AND P2_KEYBODYFATT = PQ_KEYBODYFATT\n" << diff --git a/src/cg/cg2102.h b/src/cg/cg2102.h index 812cc84c4..37f0973f9 100755 --- a/src/cg/cg2102.h +++ b/src/cg/cg2102.h @@ -408,6 +408,7 @@ class TPro_msk : public TAutomask TString _numero; TDate _datadoc; real _totdoc; + real _ritenute; TProtocollo _protfppro; TString _fpprokeys; TString _piva; @@ -440,20 +441,21 @@ public: void set_righeiva(const char* fpprokeys); void set_scadenze(const char* fpprokeys); - void set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* protfppro, const char* fpprokeys, const char* piva); + void set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* ritenute, const char* protfppro, const char* fpprokeys, const char* piva); - TString get_numdoc() const { return _numero; } - TDate get_datadoc() const { return _datadoc; } - real get_totdoc() const { return _totdoc; } - TProtocollo& get_protocollo() { return _protfppro; } - TString get_fpprokeys() const { return _fpprokeys; } + TString get_numdoc() const { return _numero; } + TDate get_datadoc() const { return _datadoc; } + real get_totdoc() const { return _totdoc; } + real get_ritenute() { return _ritenute; } + TProtocollo& get_protocollo() { return _protfppro; } + TString get_fpprokeys() const { return _fpprokeys; } TString get_piva() const { return _piva; } const vector& get_righeiva() { return _righe_iva; } vector& get_scadenze() { return _scadenze; } void add_rigaiva(const real& imponibile, const real& imposta, const real& aliquota, const TString4& natura); void add_scad(const TDate& date, const real& importo); - + static TString& query_fppro(const TString& keyprginvio, const TString& keyheaderfatt, const TString& keybodyfatt, const TString& where_str); static TString& query_fppro(const TString& codforn, const TString& date); diff --git a/src/cg/cg2FPPRO.uml b/src/cg/cg2FPPRO.uml index 5f8dcfc52..629bacba3 100644 --- a/src/cg/cg2FPPRO.uml +++ b/src/cg/cg2FPPRO.uml @@ -4,7 +4,7 @@ TOOLBAR "topbar" 0 0 0 2 BUTTON DLG_CONFIG 2 2 BEGIN - PROMPT 3 1 "Ricarica Fatture" + PROMPT 1 1 "Ricarica Fatture" PICTURE TOOL_ELABORA END @@ -89,6 +89,7 @@ BEGIN ITEM "Data Ricezione" ITEM "Data Doc." ITEM "Importo Totale" + ITEM "Ritenute d'acconto" ITEM "Numero" ITEM "Paese" ITEM "P. IVA" @@ -165,45 +166,51 @@ BEGIN FLAGS "D" END +NUMBER F_RITENUTE 10 3 +BEGIN + PROMPT 1 4 "Ritenute d'acconto" + FLAGS "D" +END + STRING F_NUMEROS 20 BEGIN - PROMPT 1 4 "NUMERO" + PROMPT 1 5 "NUMERO" FLAGS "D" END STRING F_FISCIVAPAESES 2 BEGIN - PROMPT 1 5 "FISCIVAPAESE" + PROMPT 1 6 "FISCIVAPAESE" FLAGS "D" END STRING F_FISCIVACODS 16 BEGIN - PROMPT 1 6 "FISCIVACOD" + PROMPT 1 7 "FISCIVACOD" FLAGS "D" END STRING F_CODFISCALES 16 BEGIN - PROMPT 1 7 "CODFISCALE" + PROMPT 1 8 "CODFISCALE" FLAGS "D" END STRING F_TIPOPROTS 2 BEGIN - PROMPT 1 8 "TIPOPROT" + PROMPT 1 9 "TIPOPROT" FLAGS "D" END NUMBER F_PROGRESSS 10 0 BEGIN - PROMPT 1 9 "PROGRESS" + PROMPT 1 10 "PROGRESS" FLAGS "D" END STRING F_KEYFPPROS 80 BEGIN - PROMPT 1 10 "CHIAVE FPPRO" + PROMPT 1 11 "CHIAVE FPPRO" FLAGS "D" END