Patch level : 10.0 no patch

Files correlati     : crpa0.exe
Ricompilazione Demo : [ ]
Commento           :

indetr-


git-svn-id: svn://10.65.10.50/trunk@16630 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2008-05-16 10:21:41 +00:00
parent 81d17db674
commit da1d0a937b

View File

@ -155,30 +155,36 @@ void TIni2Sql::leggidadoc(const TString& elabfield, TString& tmpstr)
{
if (_rigadoc != NULL)
{
real importo;
if (_doc->tipocf() == 'F')
bool non_rilevante = false;
const bool acquisto = _doc->tipocf() == 'F';
if (acquisto)
{
TString80 codcms = _rigadoc->codice_commessa();
bool lordo = cache().get("CMS", codcms, "S7") == "NR";
const TTipo_riga_documento tiporig = _rigadoc->tipo();
//real perc_ind = tiporig.perc_indetraibilita();
const TRectype& tri = cache().get("%TRI", tiporig.codice());
real perc_ind = tri.get_real("R0");
if (lordo)
perc_ind = 100.0;
if (perc_ind != ZERO)
non_rilevante = cache().get("CMS", codcms, "S7") == "NR";
}
real importo = _rigadoc->importo(true, non_rilevante);
if (acquisto && !non_rilevante)
{
const TString4 tipodet = _rigadoc->get(RDOC_TIPODET);
CHECK(_caus,"Causale documento non valida");
if (tipodet.full())
{
importo = _rigadoc->importo(TRUE, FALSE);
real imposta = _rigadoc->imposta();
importo = importo + (imposta*perc_ind)/100.0;
}
else
importo = _rigadoc->importo(TRUE, lordo);
}
else
importo = _rigadoc->importo(TRUE, FALSE);
const int anno = _doc->get_date(DOC_DATADOC).year();
int tdet = 0;
const real perc_ind = indetraibile_al(tipodet, *_caus, anno, tdet);
const int dec = _rigadoc->doc().decimals();
real impind = importo * perc_ind / CENTO; impind.round(dec);
const TCodiceIVA iva(_rigadoc->get(RDOC_CODIVA));
const real ivaind = iva.imposta(impind, dec);
importo += ivaind;
}
}
if (test_swap())
importo = importo * (-1);
importo = -importo;
tmpstr = importo.string();
}
}