Patch level : 10.0 patch 252

Files correlati     : lv3
Ricompilazione Demo : [ ]
Commento            :
Corretta gestione delle dotazioni temporanee


git-svn-id: svn://10.65.10.50/trunk@18415 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-03-04 14:35:47 +00:00
parent d40d37baa2
commit bbe2e73149

View File

@ -517,13 +517,9 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
giac.preset(doc);
real dotod = giac.giac_att(rdoc, true);
rdoc.put("DOTOD", dotod);
real dotmp = giac.giac_att(rdoc, false);
rdoc.put("DOTMP", dotmp);
//scrivo la dotazione temporanea solo se esistono le date di dotazione temporanea e questa non è scaduta
if (rdoc.get_date("DADATATMP").ok() && rdoc.get_date("ADATATMP").ok() && rdoc.get_date("ADATATMP") <= doc.get_date(DOC_DATADOC))
{
real dotmp = giac.giac_att(rdoc, false);
rdoc.put("DOTMP", dotmp);
}
//elaborazione per il prezzo: o lo prendo dalle righe contratto, o dall'anagrafica magazzino
const TString& sconto = rcont.get(LVRCONDV_SCONTPERC).as_string();
@ -585,12 +581,17 @@ bool TGestione_bolle_msk::lv_ritirato_handler(TMask_field& f, KEY k)
rdoc.put("DOTOD", dotod);
//scrivo la dotazione temporanea solo se esistono le date di dotazione temporanea e questa non è scaduta
if (rdoc.get_date("DADATATMP").ok() && rdoc.get_date("ADATATMP").ok() && rdoc.get_date("ADATATMP") <= doc.get_date(DOC_DATADOC))
if (rdoc.get_date("DADATATMP").ok() && rdoc.get_date("ADATATMP").ok() && rdoc.get_date("ADATATMP") >= doc.get_date(DOC_DATADOC))
{
real dotmp = giac.giac_att(rdoc, false);
msk.set(FR_JOLLY2, dotmp);
rdoc.put("DOTMP", dotmp);
}
else
{
msk.set(FR_JOLLY2, "");
rdoc.put("DOTMP", 0);
}
}
return true;
}
@ -623,12 +624,17 @@ bool TGestione_bolle_msk::lv_consegnato_handler(TMask_field& f, KEY k)
rdoc.put("DOTOD", dotod);
//scrivo la dotazione temporanea solo se esistono le date di dotazione temporanea e questa non è scaduta
if (rdoc.get_date("DADATATMP").ok() && rdoc.get_date("ADATATMP").ok() && rdoc.get_date("ADATATMP") <= doc.get_date(DOC_DATADOC))
if (rdoc.get_date("DADATATMP").ok() && rdoc.get_date("ADATATMP").ok() && rdoc.get_date("ADATATMP") >= doc.get_date(DOC_DATADOC))
{
real dotmp = giac.giac_att(rdoc, false);
msk.set(FR_JOLLY2, dotmp);
rdoc.put("DOTMP", dotmp);
}
else
{
msk.set(FR_JOLLY2, "");
rdoc.put("DOTMP", 0);
}
}
return ok;
@ -790,50 +796,59 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k)
}
//scrivo le date di dotazione temporanea solo se lo prevede la causale
if (sgn_rit == ZERO && sgn_con == ZERO)
if (sgn_rit == 0 && sgn_con == 0)
{
rdoc.put("DOTMP", "");
msk.field(FR_JOLLY2).set("");
rdoc.put("DADATATMP", "");
msk.field(FR_JOLLY3).set("");
rdoc.put("ADATATMP", "");
msk.field(FR_JOLLY4).set("");
msk.field(FR_JOLLY4).set("");
}
else
{
//setto il valore della dotazione temporanea
TGiac_per_cli& giac = gbapp().giacenza();
giac.preset(doc);
real dotmp = giac.giac_att(rdoc, false);
rdoc.put("DOTMP", dotmp);
TString16 tmp;
tmp << dotmp;
msk.field(FR_JOLLY2).set(tmp);
//setto le date di inizio e fine della dotazione temporanea
TDate dadata = rcont.get_date(LVRCONDV_INDTTMP);
TDate adata = rcont.get_date(LVRCONDV_FIDTTMP);
if (dadata.ok() && adata.ok())
if (!dadata.ok())
dadata = TODAY;
rdoc.put("DADATATMP", dadata);
msk.field(FR_JOLLY3).set(dadata);
if (adata.ok() && adata <= datadoc)
{
rdoc.put("DADATATMP", dadata);
msk.field(FR_JOLLY3).set(dadata);
if (adata <= datadoc)
rdoc.put("ADATATMP", adata);
msk.field(FR_JOLLY4).set(adata);
}
else
{
//instanzio in TRecordset sui giri
TISAM_recordset giri("USE LVRCONSPLAN KEY 3\nSELECT DTCONS>#DATADOC\nFROM CODCF=#CODCF CODCONT=#CODCONT\nTO CODCF=#CODCF CODCONT=#CODCONT");
giri.set_var("#DATADOC", datadoc);
giri.set_var("#CODCF", codcf);
giri.set_var("#CODCONT", cont.get_long(LVCONDV_CODCONT));
if (giri.move_first())
{
rdoc.put("ADATATMP", adata);
msk.field(FR_JOLLY4).set(adata);
}
else
{
//instanzio in TRecordset sui giri
TISAM_recordset giri("USE LVRCONSPLAN KEY 3\nSELECT DTCONS>#DATADOC\nFROM CODCF=#CODCF CODCONT=#CODCONT\nTO CODCF=#CODCF CODCONT=#CODCONT");
giri.set_var("#DATADOC", datadoc);
giri.set_var("#CODCF", codcf);
giri.set_var("#CODCONT", cont.get_long(LVCONDV_CODCONT));
if (giri.move_first())
rdoc.put("ADATATMP", giri.get(LVRCONSPLAN_DTCONS).as_date());
msk.field(FR_JOLLY4).set(giri.get(LVRCONSPLAN_DTCONS).as_date());
TLocalisamfile rcondv(LF_LVRCONDV);
rcondv.put(LVRCONDV_CODCF,codcf);
rcondv.put(LVRCONDV_CODCONT,cont.get_int(LVCONDV_CODCONT));
rcondv.put(LVRCONDV_CODART,msk.get(FR_CODART));
if (rcondv.read() == NOERR)
{
rdoc.put("ADATATMP", giri.get(LVRCONSPLAN_DTCONS).as_date());
msk.field(FR_JOLLY4).set(giri.get(LVRCONSPLAN_DTCONS).as_date());
TLocalisamfile rcondv(LF_LVRCONDV);
rcondv.put(LVRCONDV_CODCF,codcf);
rcondv.put(LVRCONDV_CODCONT,cont.get_int(LVCONDV_CODCONT));
rcondv.put(LVRCONDV_CODART,msk.get(FR_CODART));
if (rcondv.read() == NOERR)
{
rcondv.put(LVRCONDV_FIDTTMP, giri.get(LVRCONSPLAN_DTCONS).as_date());
rcondv.rewrite();
}
}
}
rcondv.put(LVRCONDV_FIDTTMP, giri.get(LVRCONSPLAN_DTCONS).as_date());
rcondv.rewrite();
}
}
}
}
@ -882,6 +897,7 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k)
return true;
}
//LV_CODMAG_HANDLER: handler che limita l'esecuzione
bool TGestione_bolle_msk::lv_codmag_handler(TMask_field& f, KEY k)
{
bool ok = true;