diff --git a/cg/cg4301.cpp b/cg/cg4301.cpp index 80f706159..18ba27ee6 100755 --- a/cg/cg4301.cpp +++ b/cg/cg4301.cpp @@ -977,7 +977,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) // da evitare di dover controllare mese e anno sul PIM const bool was_riv = (tipoiva != "NS") && (tipocr == 1 || tipocr ==5); real percind; - const int tipoind = get_tipodet_from_rmi(_rmoviva->curr(), _mov->curr(), percind); + const int tipoind = get_tipodet_from_rmi(_rmoviva->curr(), _mov->curr(), percind, true); const real imponibile_orig = _rmoviva->get_real(RMI_IMPONIBILE); const real imposta_orig = _rmoviva->get_real(RMI_IMPOSTA); diff --git a/cg/cglib03.cpp b/cg/cglib03.cpp index b389b886e..73950415a 100755 --- a/cg/cglib03.cpp +++ b/cg/cglib03.cpp @@ -31,7 +31,7 @@ static int codind2tipodet(const TString & codind, real& perc) } return tipodet; } -real indetraibile_al(const TString& codind, const TCausale& caus, int annodoc, int & tipodet) +real indetraibile_al(const TString& codind, const TCausale& caus, int annodoc, int & tipodet,const bool is_liq) { real perc; @@ -40,7 +40,7 @@ real indetraibile_al(const TString& codind, const TCausale& caus, int annodoc, i case iva_acquisti: case nessuna_iva: case iva_errata: - if (caus.reg().prorata100(annodoc)) // Se prorata = 100% e' indetraibile + if (!is_liq && caus.reg().prorata100(annodoc)) // Se prorata = 100% e' indetraibile { perc = CENTO; tipodet = 9; @@ -108,13 +108,13 @@ int analizza_IVA(const real& imptot, const real& ivatot, const real perc_ind, // Anticamente TIPODET conteneva in tipo di indetraibilita, // ora invece trattasi di un codice di indetraibilita' // associato ad un motivo ed una percentuale di indetraibilita' -int get_tipodet_from_rmi(const TRectype& rmi, const TRectype& mov,real& percind) +int get_tipodet_from_rmi(const TRectype& rmi, const TRectype& mov,real& percind, const bool is_liq) { const int annodoc = mov.get_date(MOV_DATAREG).year(); const TCausale caus(mov.get(MOV_CODCAUS), annodoc); int tipodet = 0; - percind = indetraibile_al(rmi.get(RMI_TIPODET), caus, annodoc, tipodet); + percind = indetraibile_al(rmi.get(RMI_TIPODET), caus, annodoc, tipodet, is_liq); return tipodet; } diff --git a/cg/cglib03.h b/cg/cglib03.h index bfd843dc6..83994848d 100755 --- a/cg/cglib03.h +++ b/cg/cglib03.h @@ -151,11 +151,11 @@ public: // High level functions (common usage) }; real indetraibile_al(const TString& codind, const TCausale& caus, int annodoc, - int& tipodet); + int& tipodet, const bool is_liq = false); int analizza_IVA(const real& imptot, const real& ivatot, const real perc_ind, const bool corrispettivo, const bool iva_ind_al_costo, const TString& codiva, real& imp_det, real& iva_det, real& imp_ind, real& iva_ind); -int get_tipodet_from_rmi(const TRectype& rmi, const TRectype& mv, real& percind); +int get_tipodet_from_rmi(const TRectype& rmi, const TRectype& mv, real& percind, const bool is_liq = false); #endif