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