diff --git a/lv/lv2900.cpp b/lv/lv2900.cpp index 7f4e16dca..f68377dcf 100755 --- a/lv/lv2900.cpp +++ b/lv/lv2900.cpp @@ -779,12 +779,20 @@ void TConta_pulito_msk::prepara_movimenti(const TFilename& file, TAssoc_array& m real quantita = rp.quantita(); //se il pacco risulta annullato, storno la quiantità - if(rp.is_annullato()) - quantita = -quantita; + bool annullato = rp.is_annullato(); + if(annullato) + quantita = - quantita; //recupero i dati di interesse dalla riga pacchi const TString80 codart = rp.articolo(); + TToken_string keyarticoli; + keyarticoli.add(codart); + if(annullato) + keyarticoli.add('S'); + else + keyarticoli.add('N'); + TString8 ansidate; ansidate << rp.data().date2ansi(); @@ -806,7 +814,7 @@ void TConta_pulito_msk::prepara_movimenti(const TFilename& file, TAssoc_array& m articoli->add(codart, quantita); //se il pacco risulta annullato, lo elimino - if(rp.is_annullato()) + if(annullato) rp.remove(pacchi); } } @@ -849,7 +857,7 @@ bool TConta_pulito_msk::genera_movmag(TAssoc_array& movimenti) movmag.put(MOVMAG_ANNOES, annoes); movmag.put(MOVMAG_DATAREG, data); movmag.put(MOVMAG_CODCAUS, causale.codice()); - movmag.put(MOVMAG_DATACOMP, data); + movmag.put(MOVMAG_DATACOMP, data); //seleziona tutti i record del file pacchi da data a data che non hanno una bolla associata //per poter assegnare il riferimento al movimento di magazzino @@ -877,11 +885,12 @@ bool TConta_pulito_msk::genera_movmag(TAssoc_array& movimenti) TAssoc_array& articoli = *(TAssoc_array*)obj; //per ogni articolo contenuto nel secondo TAssoc_array, faccio una riga movimento di magazzino - FOR_EACH_ASSOC_OBJECT(articoli, hobj1, codart, qta) + FOR_EACH_ASSOC_OBJECT(articoli, hobj1, keyarticoli, qta) { + TToken_string k(keyarticoli); //recupero l'unità di misura principale di quest'articolo TToken_string key; - key.add(codart); + key.add(k.get(0)); key.add(1); const TRectype& umart = cache().get(LF_UMART, key); TString4 um = umart.get(UMART_UM); @@ -891,7 +900,7 @@ bool TConta_pulito_msk::genera_movmag(TAssoc_array& movimenti) //faccio la nuova riga del movimento di magazzino TRectype& rmovmag = movmag.new_row(); rmovmag.put(RMOVMAG_CODMAG, magazzino); - rmovmag.put(RMOVMAG_CODART, codart); + rmovmag.put(RMOVMAG_CODART, k.get(0)); rmovmag.put(RMOVMAG_CODCAUS, causale.codice()); rmovmag.put(RMOVMAG_UM, um); rmovmag.put(RMOVMAG_QUANT, quantita);