Patch level : 10.0 214

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

Rivisto il meccanismo di calcolo delle dotazioni


git-svn-id: svn://10.65.10.50/trunk@18103 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2009-01-24 14:14:13 +00:00
parent be32b4ceba
commit 9b10ce1dc0

View File

@ -124,19 +124,25 @@ bool TGiac_per_cli::load_row(const TRiga_documento& rdoc)
if (cau.get_bool("B0"))
{
const TCausale_magazzino & rit = cached_causale_magazzino(cau.get("S1"));
const real & ritirato = rdoc.get_real(RDOC_QTAGG1);
int st = rit.sgn(s_dottm);
int so = rit.sgn(s_dotod);
vartmp += rit.sgn(s_dottm) * rdoc.get_int(RDOC_QTAGG1);
vardot += rit.sgn(s_dotod) * rdoc.get_int(RDOC_QTAGG1);
vartmp += real(st) * ritirato;
vardot += real(so) * ritirato;
}
if (cau.get_bool("B1"))
{
const TCausale_magazzino & con = cached_causale_magazzino(cau.get("S2"));
const real & consegnato = rdoc.get_real(RDOC_QTA);
int st = con.sgn(s_dottm);
int so = con.sgn(s_dotod);
vartmp += con.sgn(s_dottm) * rdoc.get_int(RDOC_QTA);
vardot += con.sgn(s_dotod) * rdoc.get_int(RDOC_QTA);
vartmp += real(st) * consegnato;
vardot += real(so) * consegnato;
}
dotmp += vartmp;
dotazione += vardot;
dotmp -= vartmp;
dotazione -= vardot;
return true;
}
@ -158,14 +164,16 @@ real TGiac_per_cli::giac_att(TRiga_documento& rdoc, bool odierna)
if (cau.get_bool("B0"))
{
const TCausale_magazzino & rit = cached_causale_magazzino(cau.get("S1"));
const int s = rit.sgn(odierna ? s_dotod : s_dottm);
saldo += rit.sgn(odierna ? s_dotod : s_dottm) * rdoc.get_int(RDOC_QTAGG1);
saldo += real(s) * rdoc.get_real(RDOC_QTAGG1);
}
if (cau.get_bool("B1"))
{
const TCausale_magazzino & con = cached_causale_magazzino(cau.get("S2"));
const int s = con.sgn(odierna ? s_dotod : s_dottm);
saldo += con.sgn(odierna ? s_dotod : s_dottm) * rdoc.get_int(RDOC_QTA);
saldo += real(s) * rdoc.get_real(RDOC_QTA);
}
giac += saldo;
@ -409,17 +417,21 @@ bool TGestione_bolle_msk::lv_ritirato_handler(TMask_field& f, KEY k)
{
TMask& msk = f.mask();
real ritirato = f.get();
if (msk.field(FR_QTA).enabled() && msk.field(FR_QTA).empty())
{
arrotonda(msk,ritirato);
msk.set(FR_QTA,ritirato);
}
//gestione campi dotazione odierna e dotazione temporanea
TSheet_field* sheet = msk.get_sheet();
TDocumento_mask& dmask = (TDocumento_mask&)sheet->mask();
TRiga_documento& rdoc = dmask.doc()[sheet->selected()+1];
rdoc.put(RDOC_QTAGG1,ritirato);
if (msk.field(FR_QTA).enabled() && msk.field(FR_QTA).empty())
{
real consegnato = ritirato;
arrotonda(msk, consegnato);
msk.set(FR_QTA, consegnato, 0x3);
return true;
}
//gestione campi dotazione odierna e dotazione temporanea
TGiac_per_cli& giac = gbapp().giacenza();
real dotod = giac.giac_att(rdoc, true);
@ -450,7 +462,7 @@ bool TGestione_bolle_msk::lv_consegnato_handler(TMask_field& f, KEY k)
TSheet_field* sheet = msk.get_sheet();
TDocumento_mask& dmask = (TDocumento_mask&)sheet->mask();
TRiga_documento& rdoc = dmask.doc()[sheet->selected()+1];
rdoc.put(RDOC_QTAGG1,consegnato);
rdoc.put(RDOC_QTA, consegnato);
TGiac_per_cli& giac = gbapp().giacenza();
real dotod = giac.giac_att(rdoc, true);