Patch level : 12.0

Files correlati     :
Commento:
continuare modifica cespiti
This commit is contained in:
Alessandro Bonazzi 2022-07-21 09:46:58 +02:00
parent f66904be8a
commit 554c93fc23

@ -1027,7 +1027,6 @@ HIDDEN const TString& catdi_get(const TRectype* pcatdi, const char* name, int si
const TString& TCespite::ammini_get(const char* pstar) const
{
TString16 val = _ammini.get(pstar);
TToken_string special = "AMMRIT|CSCEN|PNOR|PACC|PANT";
const int fld = special.get_pos(pstar);
if (fld >= 0) // Should ALWAYS happen: tuttavia non è affatto grave!
@ -1035,7 +1034,7 @@ const TString& TCespite::ammini_get(const char* pstar) const
const TDitta_cespiti& dc = ditta_cespiti();
const TRectype* pcatdi = NULL;
const TRectype* pcac = NULL;
const bool sospamm = _sosp_covid && dc.esercizio_corrente() >= 2020;
const bool sospamm = _sosp_covid && dc.esercizio_corrente() >= 2020 && _tipo_sit != 3;
// L'utente fa le sue scelte: ma saranno sensate e coerenti?
int scelte = _ammini.get_int(AMMCE_SCELTE);
@ -1048,8 +1047,8 @@ const TString& TCespite::ammini_get(const char* pstar) const
TString80 key; key.format("%d|%d|%s|%d", anno, gruppo, (const char*)specie, categ);
const TRectype& catdi = cache().get(LF_CATDI, key);
if (get_int(CESPI_IDCESPITE) == 452 && _tipo_sit != 3)
int i = 1;
// if (get_long(CESPI_IDCESPITE) == 452 && _tipo_sit != 3)
// int i = 1;
if (!catdi.empty())
{
@ -1101,8 +1100,7 @@ const TString& TCespite::ammini_get(const char* pstar) const
}
break;
case tc_immateriale:
// if (scelte == 2 || (_tipo_sit != 1 && sospamm))
if (sospamm && _tipo_sit == 1)
if (sospamm)
val = "0.00";
else
{
@ -1114,13 +1112,15 @@ const TString& TCespite::ammini_get(const char* pstar) const
break;
case tc_pluriennale:
// if (scelte == 2 || (_tipo_sit != 1 && sospamm))
if (sospamm && _tipo_sit == 1)
if (sospamm)
val = "0.00";
if (scelte == 2)
val = catdi_get(pcatdi, CATDI_PFNORVN, _tipo_sit);
else
val = pcac->get("R15");
else
{
if (scelte == 2)
val = catdi_get(pcatdi, CATDI_PFNORVN, _tipo_sit);
else
val = pcac->get("R15");
}
break;
default:
break;
@ -1954,29 +1954,34 @@ void TCespite::calc_amm_residui(bool is_valid)
{
const int anniamm = _salini.get_int(SALCE_ANNIAMM);
const int vincolo = get_int(CESPI_VINCOLO);
const TDitta_cespiti& dc = ditta_cespiti();
const bool sospamm = _sosp_covid && dc.esercizio_corrente() >= 2020 && _tipo_sit != 3;
real qnor; // Valore non calcolato
if ((tc == tc_pluriennale && vincolo == 2 && ammini_get_real(AMMCE_PNOR).is_zero()) ||
(tc == tc_immateriale && anniric > 0) || (tc == tc_materiale && anniric > 0))
{
if (anniric > anniamm)
if (anniric > anniamm && !sospamm)
qnor = resamm / (anniric - anniamm);
} else
if (tc == tc_pluriennale && vincolo == 3)
{
if (anniric > anniamm)
if (anniric > anniamm && !sospamm)
qnor = val_amm() / anniric;
} else
if (tc == tc_pluriennale && vincolo == 1)
{
if (anniric > 0)
qnor = val_amm() / anniric;
else
qnor = val_amm() * ammini_get_real(AMMCE_PNOR) / CENTO;
if (!sospamm)
{
if (anniric > 0)
qnor = val_amm() / anniric;
else
qnor = val_amm() * ammini_get_real(AMMCE_PNOR) / CENTO;
}
} else
if (tc == tc_pluriennale && vincolo == 2 && ammini_get_real(AMMCE_PNOR) > ZERO)
{
if (anniric > anniamm)
if (anniric > anniamm && !sospamm)
qnor = val_amm() * ammini_get_real(AMMCE_PNOR) / CENTO;
}
@ -2090,8 +2095,8 @@ bool TCespite::calc_amm(int tipo_sit, const TDate& data_limite,
#ifdef DBG
if (tipo_sit == 1 && atol(idcespite) == 1362)
tipo_sit = 1; // Put your breakpoint here
if (atol(idcespite) == 441)
int i = 1; // Put your breakpoint here
#endif
const bool is_valid = valido();