From bbe2e731496d27ae83a4505fa43a031732d0c4c6 Mon Sep 17 00:00:00 2001 From: luca83 Date: Wed, 4 Mar 2009 14:35:47 +0000 Subject: [PATCH] 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 --- lv/lv3100.cpp | 94 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 55 insertions(+), 39 deletions(-) diff --git a/lv/lv3100.cpp b/lv/lv3100.cpp index fbf3dbbd9..fa84d9887 100755 --- a/lv/lv3100.cpp +++ b/lv/lv3100.cpp @@ -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;