Patch level : 12.0 1038
Files correlati : fp0.exe fp0100a.msk Commento : Corretto campo mancante nello sheet note dei parametri Corretta la gestione bolli virtuali
This commit is contained in:
parent
1dece341ca
commit
364cbbd1eb
@ -978,7 +978,9 @@ public:
|
||||
|
||||
void iva_esente(TString & codiva_es) const;
|
||||
real spese_incasso(real &imp, int ndec, TTipo_importo netto = _lordo) const ;
|
||||
real bolli(real & imp, int ndec, TTipo_importo netto = _lordo) const ;
|
||||
real imponibile_bolli_esenti() const;
|
||||
bool bolli_esenti_dovuti() const;
|
||||
real bolli(real & imp, int ndec, TTipo_importo netto = _lordo) const ;
|
||||
|
||||
real imponibile(bool spese = false, int ndec = AUTO_DECIMALS) const;
|
||||
real imposta(bool spese = false, int ndec = AUTO_DECIMALS) const;
|
||||
|
@ -475,33 +475,46 @@ void TDocumento::iva_esente(TString& codiva_es) const
|
||||
}
|
||||
}
|
||||
|
||||
real TDocumento::bolli(real & imp, int ndec, TTipo_importo t) const
|
||||
{
|
||||
real tot_bolli;
|
||||
static TArray sca_bolli;
|
||||
static TArray imp_bolli;
|
||||
static real bolli_es;
|
||||
static real impmin_bolli;
|
||||
static int nscagl;
|
||||
real TDocumento::imponibile_bolli_esenti() const
|
||||
{
|
||||
real imponibile_esente;
|
||||
|
||||
if (get_bool("ADDBOLLI"))
|
||||
FOR_EACH_SELF_PHYSICAL_RDOC(r, riga)
|
||||
{
|
||||
if (sca_bolli.objptr(0) == NULL)
|
||||
const TCodiceIVA codiva(riga->get(RDOC_CODIVA));
|
||||
|
||||
if (codiva.tipo().not_empty() && !codiva.escluso_esenti())
|
||||
imponibile_esente += abs(riga->imponibile());
|
||||
}
|
||||
return imponibile_esente;
|
||||
}
|
||||
bool TDocumento::bolli_esenti_dovuti() const
|
||||
{
|
||||
const real impmin_bolli = ini_get_real(CONFIG_STUDIO, "ve", "IMPMINBOLLI");
|
||||
|
||||
return imponibile_bolli_esenti() >= impmin_bolli;
|
||||
}
|
||||
|
||||
real TDocumento::bolli(real & imp, int ndec, TTipo_importo t) const
|
||||
{
|
||||
real tot_bolli;
|
||||
|
||||
if (get_bool(DOC_ADDBOLLI))
|
||||
{
|
||||
const real bolli_es = ini_get_real(CONFIG_STUDIO, "ve", "BOLLIES");
|
||||
TArray sca_bolli;
|
||||
TArray imp_bolli;
|
||||
int nscagl;
|
||||
|
||||
for (nscagl = 0; nscagl < 7; nscagl++)
|
||||
{
|
||||
TConfig conf(CONFIG_STUDIO, "ve");
|
||||
const real s = ini_get_real(CONFIG_STUDIO, "ve", "SPBOSCA", "", nscagl + 1);
|
||||
const real i = ini_get_real(CONFIG_STUDIO, "ve", "SPBOIMP", "", nscagl + 1);
|
||||
|
||||
bolli_es = (real) conf.get("BOLLIES", "ve");
|
||||
impmin_bolli = (real) conf.get("IMPMINBOLLI", "ve");
|
||||
for (nscagl = 0; nscagl < 7; nscagl++)
|
||||
{
|
||||
real s(conf.get("SPBOSCA", "ve", nscagl + 1));
|
||||
real i(conf.get("SPBOIMP", "ve", nscagl + 1));
|
||||
|
||||
if (s == ZERO && i == ZERO)
|
||||
break;
|
||||
sca_bolli.add(s, nscagl);
|
||||
imp_bolli.add(i, nscagl);
|
||||
}
|
||||
if (s == ZERO && i == ZERO)
|
||||
break;
|
||||
sca_bolli.add(s, nscagl);
|
||||
imp_bolli.add(i, nscagl);
|
||||
}
|
||||
if (ndec == AUTO_DECIMALS)
|
||||
ndec = decimals();
|
||||
@ -530,19 +543,11 @@ real TDocumento::bolli(real & imp, int ndec, TTipo_importo t) const
|
||||
const real imposte = imp_orig + iva_bolli;
|
||||
const real imp_spese = sp_orig + tot_bolli - iva_bolli;
|
||||
const real imponibile = importo - imposte - imp_spese;
|
||||
tot_bolli = ZERO;
|
||||
real imponibile_esente;
|
||||
|
||||
for (int r = physical_rows(); r > 0; r--)
|
||||
{
|
||||
const TRiga_documento& riga = ((TDocumento*)this)->row(r);
|
||||
const TCodiceIVA codiva(riga.get(RDOC_CODIVA));
|
||||
|
||||
if (codiva.tipo().not_empty() && !codiva.escluso_esenti())
|
||||
imponibile_esente += abs(riga.imponibile());
|
||||
}
|
||||
if (imponibile_esente >= impmin_bolli)
|
||||
|
||||
if (bolli_esenti_dovuti())
|
||||
tot_bolli = bolli_es;
|
||||
else
|
||||
tot_bolli = ZERO;
|
||||
pag.set_total(imponibile, imposte, imp_spese);
|
||||
pag.set_rate_auto();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user