From f63c0ea944455e2d138cfb4a11484325d9c46d6b Mon Sep 17 00:00:00 2001 From: luca83 Date: Mon, 29 Mar 2010 15:53:52 +0000 Subject: [PATCH] Patch level : 10.0 patch ??? Files correlati : lv3 Ricompilazione Demo : [ ] Commento : OGGI HANNO EVASO DUE BUONI RI PRELIEVO CONTEMPORANEAMENTE E SONO STATI EVASI CON LO STESSO BUONO DI CONSEGNA git-svn-id: svn://10.65.10.50/trunk@20289 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv3200.cpp | 37 ++++++++++++++++++++++++++----------- lv/lv3400.cpp | 40 +++++++++++++++++++++++++++------------- 2 files changed, 53 insertions(+), 24 deletions(-) diff --git a/lv/lv3200.cpp b/lv/lv3200.cpp index 298188c1b..5cb1db97f 100755 --- a/lv/lv3200.cpp +++ b/lv/lv3200.cpp @@ -26,7 +26,7 @@ class TEvasione_msk: public TAutomask { TDocumento _buonori; - int _ndoc; + //int _ndoc; int _autoselect; TString4 _tpev; @@ -357,7 +357,7 @@ void TEvasione_msk::genera_documento() TDate adata = datagen; adata.addmonth(); - if(_ndoc == 0) + /*if(_ndoc == 0) { TString query2; query2 << "USE DOC\n" @@ -366,7 +366,7 @@ void TEvasione_msk::genera_documento() TISAM_recordset bolle(query2); if (bolle.move_last()) _ndoc = bolle.get(DOC_NDOC).as_int(); - } + }*/ TString query1 = "USE LVRCONSPLAN KEY 3\n"; query1 << "FROM CODCF=" << codcf << " CODCONT=" << codcont << " DTCONS=#DADATA\n"; @@ -462,7 +462,7 @@ void TEvasione_msk::genera_documento() } //preparo la testata del documento - TDocumento doc('D', kdoc.anno(), codnum, ++_ndoc); + TDocumento doc('D', kdoc.anno(), codnum, 0); doc.put(DOC_TIPODOC, tipodoc); doc.put(DOC_STATO, stato); doc.put(DOC_DATADOC, databolla); @@ -609,10 +609,6 @@ void TEvasione_msk::genera_documento() rdoc.put(RDOC_CODMAG, magazzino); rdoc.put(RDOC_CODMAGC, magazzinoc); - - //salvo i riferimenti - TDoc_key rifbcon(datagen.year(), codnum, _ndoc); - rbpre.set_rifbcon(rifbcon); } //salva la bolla solo se ha almeno una riga @@ -623,13 +619,32 @@ void TEvasione_msk::genera_documento() orderkey.add(RDOC_CODART); doc.sort_rows(orderkey); err = doc.write(); + + for (int i = 1; i <= bpre.rows(); i++) + { + TRiga_documento& row = bpre[i]; + TBuono_prelievo_row rbpre(row); + + //nella bolla ci vanno solo le righe evase e non associate + if (!rbpre.evaso()) + continue; + + TDoc_key kbuono = rbpre.rifbcon(); + if (kbuono.full()) + continue; + + //salvo i riferimenti + TDoc_key rifbcon(datagen.year(), codnum, doc.get_long(DOC_NDOC)); + rbpre.set_rifbcon(rifbcon); + } + if(controlla()) { const TString4 stato = cache().get("%TIP", ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_PRE", NULL, 0), "S2").mid(2,1); bpre.put(DOC_STATO, stato); - bpre.rewrite(); set(F_STATO, stato); } + bpre.rewrite(); } if (err == NOERR) @@ -638,7 +653,7 @@ void TEvasione_msk::genera_documento() { //stampa automatica TString80 str; - str << "ve1 -2 " << codnum << ' ' << datagen.year() << " D " << _ndoc << " S D"; + str << "ve1 -2 " << codnum << ' ' << datagen.year() << " D " << doc.get_long(DOC_NDOC) << " S D"; TExternal_app stampa(str); stampa.run(); } @@ -1294,7 +1309,7 @@ TEvasione_msk::TEvasione_msk():TAutomask("lv3200a") disable(DLG_SAVEREC); disable(DLG_CANCEL); - _ndoc = 0; + //_ndoc = 0; } ///////////////////////////// diff --git a/lv/lv3400.cpp b/lv/lv3400.cpp index bed5d38fe..575727a12 100755 --- a/lv/lv3400.cpp +++ b/lv/lv3400.cpp @@ -184,7 +184,7 @@ TQuantita_riga* TRighe_array::quantita(TString& codart, TDate& data, TString& ca //Classe TEvasione_ter_msk class TEvasione_ter_msk: public TAutomask { - int _ndoc; + //int _ndoc; int _autoselect; TString4 _tpev; TAssoc_array _pacchi; @@ -323,7 +323,7 @@ void TEvasione_ter_msk::genera_buono() TDate adata = datagen; adata.addmonth(); - //se _ndoc non è inizializzato, lo inizializzo all'ultimo ndoc utilizzato + /*//se _ndoc non è inizializzato, lo inizializzo all'ultimo ndoc utilizzato if(_ndoc == 0) { TString query2; @@ -333,7 +333,7 @@ void TEvasione_ter_msk::genera_buono() TISAM_recordset bolle(query2); bolle.move_last(); _ndoc = bolle.get(DOC_NDOC).as_int(); - } + }*/ //recupero i dati di interesse dal planning TString query1 = "USE LVRCONSPLAN KEY 3\n"; @@ -429,7 +429,7 @@ void TEvasione_ter_msk::genera_buono() } //preparo la testata del documento - TDocumento doc('D', kdoc.anno(), codnum, ++_ndoc); + TDocumento doc('D', kdoc.anno(), codnum, 0); doc.put(DOC_TIPODOC, tipodoc); doc.put(DOC_STATO, stato); @@ -583,10 +583,6 @@ void TEvasione_ter_msk::genera_buono() rdoc.put(RDOC_CODMAG, magazzino); rdoc.put(RDOC_CODMAGC, magazzinoc); - - //salvo i riferimenti - TDoc_key rifbcon(datagen.year(), codnum, _ndoc); - rbpre.set_rifbcon(rifbcon); } //salva la bolla solo se ha almeno una riga @@ -597,13 +593,31 @@ void TEvasione_ter_msk::genera_buono() orderkey.add(RDOC_CODART); doc.sort_rows(orderkey); err = doc.write(); - + + for (int i = 1; i <= bpre.rows(); i++) + { + TRiga_documento& row = bpre[i]; + TBuono_prelievo_row rbpre(row); + + //nella bolla ci vanno solo le righe evase e non associate + if (!rbpre.evaso()) + continue; + + TDoc_key kbuono = rbpre.rifbcon(); + if (kbuono.full()) + continue; + + //salvo i riferimenti + TDoc_key rifbcon(datagen.year(), codnum, doc.get_long(DOC_NDOC)); + rbpre.set_rifbcon(rifbcon); + } + if(controlla()) { const TString4 stato = cache().get("%TIP", ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_PRE", NULL, 0), "S2").mid(2,1); - bpre.put(DOC_STATO, stato); - bpre.rewrite(); + bpre.put(DOC_STATO, stato); } + bpre.rewrite(); } if (err == NOERR && yesno_box(TR("Il buono di consegna è stato generato correttamente; si desidera stamaprlo?"))) @@ -623,7 +637,7 @@ void TEvasione_ter_msk::genera_buono() outf << endl; outf << "[33]" << endl; // Transaction body outf << "Doc(0)="; - outf << "D|" << datagen.year() << '|' << codnum << '|' << _ndoc << endl; + outf << "D|" << datagen.year() << '|' << codnum << '|' << doc.get_long(DOC_NDOC) << endl; } if (tmp.exist()) @@ -1430,7 +1444,7 @@ TEvasione_ter_msk::TEvasione_ter_msk():TAutomask("lv3400a") const TRectype& tpdoc = cache().get("%NUM", ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_PRE", NULL, 0)); set(F_TDESCR, tpdoc.get("S0")); - _ndoc = 0; + //_ndoc = 0; TDate data(TODAY); TEsercizi_contabili es;