diff --git a/src/fp/fp0400.cpp b/src/fp/fp0400.cpp index 0312df441..397842d8f 100644 --- a/src/fp/fp0400.cpp +++ b/src/fp/fp0400.cpp @@ -37,8 +37,10 @@ class TPassive_mask : public TAutomask { struct iva { - real imponibile; - real imposta; + real imponibile; + real imposta; + real aliquota; + TString4 natura; }; TLog_report* _log; @@ -67,7 +69,7 @@ protected: void run_cg0(const TString& filename) const; void elenco_prots_sel(TString& string) const; - vector& get_righe_iva(TToken_string& keys) const; + static vector& get_righe_iva(TToken_string& keys); real calcola_importo(vector riva) const; // Gestione F1 int prepara_contab() const; @@ -204,21 +206,22 @@ void TPassive_mask::elenco_prots_sel(TString& string) const string = ""; } -vector& TPassive_mask::get_righe_iva(TToken_string& keys) const +vector& TPassive_mask::get_righe_iva(TToken_string& keys) { static vector riva; riva.clear(); TString where_q; where_q << "WHERE PL_KEYPRGINVIO = '" << keys.get(0); where_q << "' AND PL_KEYHEADERFATT = '" << keys.get(); where_q << "' AND PL_KEYBODYFATT = '" << keys.get() << "'"; - TString query; query << "SELECT PL_IMPONIBILE AS IMPONIBILE, PL_IMPOSTA AS IMPOSTA \nFROM PAA2200F \n" << where_q; + TString query; query << "SELECT PL_IMPONIBILE AS IMPONIBILE, PL_IMPOSTA AS IMPOSTA, PL_ALIQUOTAIVA AS ALIQUOTA, PL_NATURA AS NATURA\n" << + "FROM PAA2200F \n" << where_q; fp_db().sq_set_exec(query, false); for (bool ok = fp_db().sq_next(); ok; ok = fp_db().sq_next()) { TString imponibile = fp_db().sq_get("IMPONIBILE"); TString imposta = fp_db().sq_get("IMPOSTA"); if (imponibile.full() || imposta.full()) - riva.insert(riva.end(), { real(imponibile), real(imposta) }); + riva.insert(riva.end(), { real(imponibile), real(imposta), real(fp_db().sq_get("ALIQUOTA")), fp_db().sq_get("NATURA") }); } return riva; } @@ -613,6 +616,8 @@ int TPassive_mask::prepara_contab() const contab_ini.set_paragraph(LF_RMOVIVA, i); contab_ini.set("IMPONIBILE", it->imponibile.string()); contab_ini.set("IMPOSTA", it->imposta.string()); + contab_ini.set("PERCIVA", it->aliquota.string()); + contab_ini.set("NATURA", it->natura); contab_ini.set("NRIGA", i); i++; }