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
This commit is contained in:
luca83 2010-04-12 14:11:15 +00:00
parent bccbb6c7e7
commit 14ea075d9c

View File

@ -999,6 +999,7 @@ void TEvasione_ter_msk::evadi_da_terminale()
else else
{ {
bool trovato = false; bool trovato = false;
bool trovato2 = false;
bool associato = false; bool associato = false;
bool evaso1 = false; bool evaso1 = false;
bool evaso2 = false; bool evaso2 = false;
@ -1008,7 +1009,6 @@ void TEvasione_ter_msk::evadi_da_terminale()
FOR_EACH_ASSOC_OBJECT(_ra, obj, key, itm) FOR_EACH_ASSOC_OBJECT(_ra, obj, key, itm)
{ {
//TString& tmp = *(TString*)key;
chiave1 = key; chiave1 = key;
//se trovo una riga di quell'artticolo allora //se trovo una riga di quell'artticolo allora
TString cod = chiave1.get(0); 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_TQTACON, qr.get_qta_con());
set(F_TQTADACON, qr.get_qta_da_con()); set(F_TQTADACON, qr.get_qta_da_con());
set(F_CODART, rp.articolo()); set(F_CODART, rp.articolo());
break; break;
} }
break;
} }
} }
@ -1046,15 +1046,13 @@ void TEvasione_ter_msk::evadi_da_terminale()
//cerco un eventuale altra riga per quell'articolo //cerco un eventuale altra riga per quell'articolo
if(trovato && !associato) if(trovato && !associato)
{ {
trovato = false;
FOR_EACH_ASSOC_OBJECT(_ra, obj, key, itm) FOR_EACH_ASSOC_OBJECT(_ra, obj, key, itm)
{ {
chiave2 = *(TToken_string*)key; chiave2 = key;
//se trovo una riga di quell'artticolo allora //se trovo una riga di quell'artticolo allora
if(chiave2.get(0) == codart && chiave1 != chiave2) if(chiave2.get(0) == codart && chiave1 != chiave2)
{ {
trovato = true; trovato2 = true;
TQuantita_riga& qr = *(TQuantita_riga*)_ra.objptr(key); TQuantita_riga& qr = *(TQuantita_riga*)_ra.objptr(key);
//se la riga trovata non è già evasa e manca da consegnare almeno la qta //se la riga trovata non è già evasa e manca da consegnare almeno la qta
@ -1084,35 +1082,16 @@ void TEvasione_ter_msk::evadi_da_terminale()
} }
//se risulta ancora trovato, ma non associato, allora lo associo alla riga non ancora evasa //se risulta ancora trovato, ma non associato, allora lo associo alla riga non ancora evasa
if(trovato && !associato) if(trovato2 && !associato)
{ {
TQuantita_riga qr; TQuantita_riga qr;
if(!evaso1) if(!evaso1)
{ {
qr = *(TQuantita_riga*)_ra.objptr(chiave1); qr = *(TQuantita_riga*)_ra.objptr(chiave1);
kdoc.add(chiave1.get(2)); kdoc.add(chiave1.get(2));
}
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_pacchi();
qr.add_qta_con(qtapacco); 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()) if(qr.get_qta_con() >= qr.get_qta_da_con())
qr.set_evaso(true); qr.set_evaso(true);
@ -1123,6 +1102,50 @@ void TEvasione_ter_msk::evadi_da_terminale()
set(F_TQTADACON, qr.get_qta_da_con()); set(F_TQTADACON, qr.get_qta_da_con());
set(F_CODART, rp.articolo()); 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
return;
}
if(!trovato) if(!trovato)
{ {