Patch level : 10.0 258

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

Modificato l'aggiornamento pagamenti per non aggiornare i pagamenti già aggiornati


git-svn-id: svn://10.65.10.50/trunk@18512 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2009-03-13 00:43:07 +00:00
parent b2bba76c57
commit 4ea5af1eeb

View File

@ -404,19 +404,60 @@ void TSchedaPercipienti::agg_pagamenti(const TRectype & sch)
}
bool found = false;
for (int i = 0; !found &&i < rows; i++)
{
const TRectype & pagrec = sc.pag(i);
found = num == pagrec.get_long(PAG_NUMREG);
}
if (!found)
{
imppag += TImporto(sez, pag.get_real(PAGSCA_RITENUTE));
imppag += TImporto(sum.sezione_ritsoc(), pag.get_real(PAGSCA_RITSOC));
real abbuoni = pag.get_real(PAGSCA_ABBUONI);
real abb = pag.get_real(PAGSCA_ABBUONI);
if (!abb.is_zero())
imppag += TImporto(sez, abb);
for (int i = 0; !found &&i < rows; i++)
{
TRectype & pagrec = sc.pag(i);
const long numsch = pagrec.get_long(PAG_NUMREG);
found = num == numsch;
if (numsch == 0L && !found)
{
TDate data(sum.get_date(PART_DATADOC));
if (!data.ok())
data = sum.get_date(PART_DATAREG);
if (!data.ok())
data = sum.get_date(PART_DATAPAG);
const TDate datasch(pagrec.get(PAG_DATAPAG));
if (data == datasch)
{
pagrec.put(PAG_NUMREG, num);
found = true;
}
else
{
imppag.normalize('D');
real spesep = imppag.valore() * spperc;
real ivap = imppag.valore() * ivaperc;
spesep.round(TCurrency::get_firm_dec());
if (abs(spesep) > abs(spese))
spesep = spese;
ivap.round(TCurrency::get_firm_dec());
if (abs(ivap) > abs(iva))
ivap = iva;
real compensop = imppag.valore() - spesep - ivap;
compensop += compensop * h_PercRitenuta;
compensop.round(TCurrency::get_firm_dec());
if (abs(compensop) > abs(compenso))
compensop = compenso;
if (compensop == pagrec.get_real(PAG_COMPENSO))
{
pagrec.put(PAG_NUMREG, num);
found = true;
}
}
}
}
if (!found)
{
tot[lastsch] += imppag;
if (!datapag.ok())
datapag = sum.get_date(PART_DATADOC);
@ -456,8 +497,6 @@ void TSchedaPercipienti::agg_pagamenti(const TRectype & sch)
compensopag.round(TCurrency::get_firm_dec());
if (abs(compensopag) > abs(compenso))
compensopag = compenso;
compensopag += pagrec.get_real(PAG_COMPENSO);
spesepag += pagrec.get_real(PAG_SPESA);
pagrec.put(PAG_COMPENSO, compensopag);
pagrec.put(PAG_SPESA, spesepag);
pagrec.put(PAG_DATAPAG, datapag);