Patch level : 12.0 1064

Files correlati     : li0.exe li0300a.msk ve0.exe ve6.exe

Commento        :

Aggiunto un flag per stampare l'importo utilizzato per ogni dichiarazione di intenti sulle fatture.
This commit is contained in:
Alessandro Bonazzi 2021-06-25 00:14:40 +02:00
parent 36571c8cbc
commit 75e1142868

View File

@ -121,21 +121,7 @@ void sppr_calc(const TRectype & rec, const TString & valuta_doc, const real & ca
if (!same_values(sppr_valuta, valuta_doc))
{
const bool prezzo_un = rec.get_char("S6") == 'Q';
/* Non capisco bene il cambio in gioco ...
if (prezzo_un)
{
TPrice val(prezzo, sppr_valuta);
val.change_value(valuta_doc, cambio);
prezzo = val.get_num();
}
else
{
TCurrency val(prezzo, sppr_valuta);
val.change_value(valuta_doc, cambio);
prezzo = val.get_num();
}
*/
// ... ma mi adeguo
TCurrency val(prezzo, sppr_valuta, ZERO, prezzo_un);
val.change_value(valuta_doc, cambio);
prezzo = val.get_num();
@ -957,14 +943,10 @@ void TDocumento::set_riga_sconto()
const TString80 sconto(get(DOC_SCONTOPERC));
if (!is_real_discount(sconto))
{
if(_sconto != NULL)
delete _sconto;
_sconto = NULL;
}
safe_delete(_sconto);
else
{
if (_sconto == NULL)
if (_sconto == nullptr)
{
static TString4 _tipo_riga_sc;
if (_tipo_riga_sc.empty())
@ -1081,7 +1063,7 @@ void TDocumento::set_riga_esenzione()
_des_esenz.insert(" ");
_des_esenz.insert("Fattura non imponibile");
}
if (_esenzione == NULL)
if (_esenzione == nullptr)
_esenzione = new TRiga_documento(this, _tipo_riga_es);
TString d = _des_esenz;
@ -1096,11 +1078,13 @@ void TDocumento::set_riga_esenzione()
if (utilizzo != ZERO)
{
TToken_string key(plaf.get(_planno)); key.add(plaf.get(_plnumprot));
const TRectype & rec_plaf = cache().get(LF_LETINT, key);
d << TR("N. di protocollo di invio: ") << rec_plaf.get(LETINT_PROTINTF) << TR("-") << rec_plaf.get(LETINT_PROTINTS) << " del " << rec_plaf.get(LETINT_VSDATA) << "\n";
d << TR("N. di protocollo di invio: ") << rec_plaf.get(LETINT_PROTINTF) << TR("-") << rec_plaf.get(LETINT_PROTINTS) << " del " << rec_plaf.get(LETINT_VSDATA);
if (ini_get_bool(CONFIG_DITTA, "li", "ADDUTILIZZATO"))
d << TR(" per € ") << utilizzo.stringa(0, decimals());
d << "\n";
}
}
_esenzione->set_descr(d);
@ -2804,16 +2788,35 @@ TCli_for& TDocumento::clifor(bool force_reload) const
const real TDocumento::importo_plafond(bool diff) const
{
real importo_plafond;
real perc_sconto;
real importo_sconto;
FOR_EACH_SELF_PHYSICAL_RDOC( r, rdoc)
FOR_EACH_SELF_RDOC( r, rdoc)
// Se l'iva del documento è diversa non mi interessa
if (!rdoc->is_descrizione() && !rdoc->is_descrizione())
{
const TString & codiva = rdoc->iva().codice();
const TString & codiva = rdoc->iva().codice();
if (codiva.full() && check_iva_plafond(codiva))
importo_plafond += rdoc->imponibile();
if (rdoc->is_sconto())
{
if (rdoc->is_sconto_perc())
perc_sconto += rdoc->get_real(RDOC_SCONTO);
else
importo_sconto += rdoc->importo(true, false);
}
else
{
if (codiva.full() && check_iva_plafond(codiva))
importo_plafond += rdoc->imponibile();
}
}
if (importo_sconto != ZERO)
perc_sconto += CENTO * (-importo_sconto / imponibile());
if (perc_sconto != ZERO)
{
importo_plafond -= importo_plafond * perc_sconto / CENTO;
importo_plafond.round(decimals());
}
if (is_nota_credito())
importo_plafond = -importo_plafond;
if (diff)