Patch level : 12.0 752
Files correlati : ve Commento : Aggiunto calcolo della ritenuta passato da Alessandro
This commit is contained in:
parent
de9db58ec7
commit
7fa5b469bf
@ -746,15 +746,44 @@ real TRiga_documento::ritenuta(const char tipor, bool lordo, int ndec) const
|
|||||||
real val;
|
real val;
|
||||||
|
|
||||||
if (tipo().tipo() == RIGA_SPESEDOC)
|
if (tipo().tipo() == RIGA_SPESEDOC)
|
||||||
{
|
{
|
||||||
const char tipo_rit = spesa().tipo_ritenuta();
|
const char tipo_rit = spesa().tipo_ritenuta();
|
||||||
|
|
||||||
if ((tipor != '\0' && tipo_rit == tipor) || (tipor == '\0' && tipo_rit != '\0'))
|
if ((tipor != '\0' && tipo_rit == tipor) || (tipor == '\0' && tipo_rit != '\0'))
|
||||||
{
|
{
|
||||||
_rit_calc = true;
|
_rit_calc = true;
|
||||||
val = importo(true, lordo, ndec);
|
if (spesa().is_percentuale() && spesa().field_perc().blank())
|
||||||
|
{
|
||||||
|
real imponibile;
|
||||||
|
|
||||||
|
FOR_EACH_PHYSICAL_RDOC(doc(), r, rdoc1)
|
||||||
|
{
|
||||||
|
if (rdoc1->is_prestazione())
|
||||||
|
{
|
||||||
|
imponibile += rdoc1->imponibile();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Riciclo per sommare la % delle spese da sommare
|
||||||
|
FOR_EACH_PHYSICAL_RDOC(doc(), r, rdoc2)
|
||||||
|
{
|
||||||
|
if (rdoc2->is_spese() && rdoc2->spesa().spe_cal_rit())
|
||||||
|
{
|
||||||
|
if (rdoc2->spesa().is_percentuale())
|
||||||
|
val += imponibile * rdoc2->spesa().perc() / CENTO;
|
||||||
|
else
|
||||||
|
val = rdoc2->importo(true, lordo, ndec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val += imponibile;
|
||||||
|
val *= spesa().perc() / CENTO;
|
||||||
|
val.round(2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
val = importo(true, lordo, ndec);
|
||||||
_rit_calc = false;
|
_rit_calc = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user