From 14ea075d9c212f269bb7a90eba1812ef98f621da Mon Sep 17 00:00:00 2001 From: luca83 Date: Mon, 12 Apr 2010 14:11:15 +0000 Subject: [PATCH] Patch level : 10.0 patch ??? Files correlati : lv3 Ricompilazione Demo : [ ] Commento : Corretta la gestione dell'avasione di un quantitativo di roba maggiore al dovuto git-svn-id: svn://10.65.10.50/trunk@20326 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv3400.cpp | 105 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 64 insertions(+), 41 deletions(-) diff --git a/lv/lv3400.cpp b/lv/lv3400.cpp index 2d2f4fc03..759112f98 100755 --- a/lv/lv3400.cpp +++ b/lv/lv3400.cpp @@ -998,17 +998,17 @@ void TEvasione_ter_msk::evadi_da_terminale() } else { - bool trovato = false; + bool trovato = false; + bool trovato2 = false; bool associato = false; - bool evaso1 = false; - bool evaso2 = false; + bool evaso1 = false; + bool evaso2 = false; TToken_string chiave1; TToken_string chiave2; FOR_EACH_ASSOC_OBJECT(_ra, obj, key, itm) { - //TString& tmp = *(TString*)key; chiave1 = key; //se trovo una riga di quell'artticolo allora TString cod = chiave1.get(0); @@ -1036,9 +1036,9 @@ void TEvasione_ter_msk::evadi_da_terminale() set(F_TQTACON, qr.get_qta_con()); set(F_TQTADACON, qr.get_qta_da_con()); set(F_CODART, rp.articolo()); - break; } + break; } } @@ -1046,15 +1046,13 @@ void TEvasione_ter_msk::evadi_da_terminale() //cerco un eventuale altra riga per quell'articolo if(trovato && !associato) { - trovato = false; - FOR_EACH_ASSOC_OBJECT(_ra, obj, key, itm) { - chiave2 = *(TToken_string*)key; + chiave2 = key; //se trovo una riga di quell'artticolo allora if(chiave2.get(0) == codart && chiave1 != chiave2) { - trovato = true; + trovato2 = true; TQuantita_riga& qr = *(TQuantita_riga*)_ra.objptr(key); //se la riga trovata non è già evasa e manca da consegnare almeno la qta @@ -1084,46 +1082,71 @@ void TEvasione_ter_msk::evadi_da_terminale() } //se risulta ancora trovato, ma non associato, allora lo associo alla riga non ancora evasa - if(trovato && !associato) + if(trovato2 && !associato) { TQuantita_riga qr; if(!evaso1) { qr = *(TQuantita_riga*)_ra.objptr(chiave1); - kdoc.add(chiave1.get(2)); + kdoc.add(chiave1.get(2)); + qr.add_pacchi(); + qr.add_qta_con(qtapacco); + + if(qr.get_qta_con() >= qr.get_qta_da_con()) + qr.set_evaso(true); + + _pacchi.add(codpacco, kdoc); + set(F_TPACCHI, qr.get_pacchi()); + set(F_TQTAPACCO, qtapacco); + set(F_TQTACON, qr.get_qta_con()); + set(F_TQTADACON, qr.get_qta_da_con()); + set(F_CODART, rp.articolo()); + } + else if(!evaso2) + { + qr = *(TQuantita_riga*)_ra.objptr(chiave2); + kdoc.add(chiave2.get(2)); + qr.add_pacchi(); + qr.add_qta_con(qtapacco); + + if(qr.get_qta_con() >= qr.get_qta_da_con()) + qr.set_evaso(true); + + _pacchi.add(codpacco, kdoc); + set(F_TPACCHI, qr.get_pacchi()); + set(F_TQTAPACCO, qtapacco); + set(F_TQTACON, qr.get_qta_con()); + set(F_TQTADACON, qr.get_qta_da_con()); + set(F_CODART, rp.articolo()); + } + } + + //se non è ancora associato e entrambe le righe risultano evase oppure c'è una riga sola + //allora sommo alla prima (o unica) riga se l'utente lo desidera + if(!associato && ((evaso1 && evaso2)||!trovato2)) + { + TQuantita_riga qr; + if(yesno_box(TR("Si desidera sommare il pacco ad un riga già evasa?"))) + { + qr = *(TQuantita_riga*)_ra.objptr(chiave1); + kdoc.add(chiave1.get(2)); + qr.add_pacchi(); + qr.add_qta_con(qtapacco); + + if(qr.get_qta_con() >= qr.get_qta_da_con()) + qr.set_evaso(true); + + _pacchi.add(codpacco, kdoc); + set(F_TPACCHI, qr.get_pacchi()); + set(F_TQTAPACCO, qtapacco); + set(F_TQTACON, qr.get_qta_con()); + set(F_TQTADACON, qr.get_qta_da_con()); + set(F_CODART, rp.articolo()); } else - if(!evaso2) - { - qr = *(TQuantita_riga*)_ra.objptr(chiave2); - kdoc.add(chiave2.get(2)); - } - else - if(yesno_box(TR("Si desidera sommare il pacco ad un riga già evasa?"))) - { - qr = *(TQuantita_riga*)_ra.objptr(chiave1); - kdoc.add(chiave1.get(2)); - } - else - return; - - qr.add_pacchi(); - qr.add_qta_con(qtapacco); - - if(qr.get_qta_con() > qr.get_qta_da_con()) - - - if(qr.get_qta_con() >= qr.get_qta_da_con()) - qr.set_evaso(true); - - _pacchi.add(codpacco, kdoc); - set(F_TPACCHI, qr.get_pacchi()); - set(F_TQTAPACCO, qtapacco); - set(F_TQTACON, qr.get_qta_con()); - set(F_TQTADACON, qr.get_qta_da_con()); - set(F_CODART, rp.articolo()); + return; } - + if(!trovato) { TDoc_key kdoc(get_date(F_TDATADOC).year(), ini_get_string(CONFIG_DITTA, "lv", "NUM_PRE", NULL, 0), get_long(F_TNDOC));