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;
|
void iva_esente(TString & codiva_es) const;
|
||||||
real spese_incasso(real &imp, int ndec, TTipo_importo netto = _lordo) 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 imponibile(bool spese = false, int ndec = AUTO_DECIMALS) const;
|
||||||
real imposta(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 TDocumento::imponibile_bolli_esenti() const
|
||||||
{
|
{
|
||||||
real tot_bolli;
|
real imponibile_esente;
|
||||||
static TArray sca_bolli;
|
|
||||||
static TArray imp_bolli;
|
|
||||||
static real bolli_es;
|
|
||||||
static real impmin_bolli;
|
|
||||||
static int nscagl;
|
|
||||||
|
|
||||||
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");
|
if (s == ZERO && i == ZERO)
|
||||||
impmin_bolli = (real) conf.get("IMPMINBOLLI", "ve");
|
break;
|
||||||
for (nscagl = 0; nscagl < 7; nscagl++)
|
sca_bolli.add(s, nscagl);
|
||||||
{
|
imp_bolli.add(i, 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 (ndec == AUTO_DECIMALS)
|
if (ndec == AUTO_DECIMALS)
|
||||||
ndec = 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 imposte = imp_orig + iva_bolli;
|
||||||
const real imp_spese = sp_orig + tot_bolli - iva_bolli;
|
const real imp_spese = sp_orig + tot_bolli - iva_bolli;
|
||||||
const real imponibile = importo - imposte - imp_spese;
|
const real imponibile = importo - imposte - imp_spese;
|
||||||
tot_bolli = ZERO;
|
|
||||||
real imponibile_esente;
|
if (bolli_esenti_dovuti())
|
||||||
|
|
||||||
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)
|
|
||||||
tot_bolli = bolli_es;
|
tot_bolli = bolli_es;
|
||||||
|
else
|
||||||
|
tot_bolli = ZERO;
|
||||||
pag.set_total(imponibile, imposte, imp_spese);
|
pag.set_total(imponibile, imposte, imp_spese);
|
||||||
pag.set_rate_auto();
|
pag.set_rate_auto();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user