From a142642dc41be4898a989103717576ebced3415d Mon Sep 17 00:00:00 2001 From: luca83 Date: Tue, 2 Feb 2010 18:48:32 +0000 Subject: [PATCH] Patch level : 10.0 patch 619 Files correlati : lv3 lvlib Ricompilazione Demo : [ ] Commento : Adesso sulle righe documento viene sempre visualizzata la dotazione presso cliente attuale, anche nei documenti precedentemente salvati git-svn-id: svn://10.65.10.50/trunk@20045 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv3100.cpp | 9 +++++++-- lv/lv3300.cpp | 37 +++++++++++++++---------------------- lv/lvlib.cpp | 14 ++++++++++---- lv/lvlib.h | 10 +++++----- 4 files changed, 37 insertions(+), 33 deletions(-) diff --git a/lv/lv3100.cpp b/lv/lv3100.cpp index 169b15534..6ee2f7b19 100755 --- a/lv/lv3100.cpp +++ b/lv/lv3100.cpp @@ -1229,8 +1229,13 @@ int TGestione_bolle_app::read(TMask& m) _giac.reset(d); FOR_EACH_DOC_ROW_BACK(d, r, row) - _giac.load_row((TRiga_documento&)*row); - + { + TRiga_documento& rdoc = (TRiga_documento&)*row; + _giac.load_row(rdoc, true); + real dotod = _giac.giac_att(rdoc, true); + real dotmp = _giac.giac_att(rdoc, false); + } + mask.doc2mask(); mask._autoselect = 0; } diff --git a/lv/lv3300.cpp b/lv/lv3300.cpp index 4f27ecf94..89b6b601a 100755 --- a/lv/lv3300.cpp +++ b/lv/lv3300.cpp @@ -1205,40 +1205,33 @@ int TGestione_buoni_app::read(TMask& m) _giac.reset(d); FOR_EACH_DOC_ROW_BACK(d, r, row) - _giac.load_row((TRiga_documento&)*row); - + { + TRiga_documento& rdoc = (TRiga_documento&)*row; + _giac.load_row(rdoc, true); + real dotod = _giac.giac_att(rdoc, true); + real dotmp = _giac.giac_att(rdoc, false); + } + mask.doc2mask(); mask._autoselect = 0; TSheet_field& sheet = mask.sfield(F_SHEET); - - const int posdacons = sheet.cid2index(FR_QTA); - const int poscons = sheet.cid2index(FR_QTAEVASA); - const int pospacchi = sheet.cid2index(FR_NCOLLI); - const int posdotod = sheet.cid2index(FR_JOLLY1); - const int posdotmp = sheet.cid2index(FR_JOLLY2); - const int posdatmp = sheet.cid2index(FR_JOLLY3); - const int posatmp = sheet.cid2index(FR_JOLLY4); - const int posrif = sheet.cid2index(FR_JOLLY5); - FOR_EACH_SHEET_ROW(sheet, i, riga) { - if (riga->get_int(poscons) == riga->get_int(posdacons)) + if (riga->get_int(sheet.cid2index(FR_QTAEVASA)) == riga->get_int(sheet.cid2index(FR_QTA))) { sheet.disable_row(i); continue; } - sheet.disable_cell(i, poscons); - sheet.disable_cell(i, pospacchi); - sheet.disable_cell(i, posdotod); - sheet.disable_cell(i, posdotmp); - sheet.disable_cell(i, posdatmp); - sheet.disable_cell(i, posatmp); - sheet.disable_cell(i, posrif); + sheet.disable_cell(i, sheet.cid2index(FR_QTAEVASA)); + sheet.disable_cell(i, sheet.cid2index(FR_NCOLLI)); + sheet.disable_cell(i, sheet.cid2index(FR_JOLLY1)); + sheet.disable_cell(i, sheet.cid2index(FR_JOLLY2)); + sheet.disable_cell(i, sheet.cid2index(FR_JOLLY3)); + sheet.disable_cell(i, sheet.cid2index(FR_JOLLY4)); + sheet.disable_cell(i, sheet.cid2index(FR_JOLLY5)); } sheet.force_update(); - } - return err; } diff --git a/lv/lvlib.cpp b/lv/lvlib.cpp index b5c744fde..5fb8cabd6 100755 --- a/lv/lvlib.cpp +++ b/lv/lvlib.cpp @@ -1544,7 +1544,7 @@ bool TGiac_per_cli::reset(const TDocumento& doc) } //LOAD_ROW: questo metodo popola e aggiorna i TAssoc_array -bool TGiac_per_cli::load_row(const TRiga_documento& rdoc) +bool TGiac_per_cli::load_row(TRiga_documento& rdoc, const bool aggiorna) { //recupero il documento e la sua maschera a partire dalla riga documento const TDocumento& doc = rdoc.doc(); @@ -1568,7 +1568,7 @@ bool TGiac_per_cli::load_row(const TRiga_documento& rdoc) if (cau.is_ritiro()) { const TCausale_magazzino& rit = cau.causale_ritiro(); - const real & ritirato = rdoc.get_real(RDOC_QTAGG1); + const real ritirato = rdoc.get_real(RDOC_QTAGG1); int st = rit.sgn(s_dottm); int so = rit.sgn(s_dotod); @@ -1578,7 +1578,7 @@ bool TGiac_per_cli::load_row(const TRiga_documento& rdoc) if (cau.is_consegna()) { const TCausale_magazzino& con = cau.causale_consegna(); - const real & consegnato = rdoc.get_real(RDOC_QTA); + const real consegnato = rdoc.get_real(RDOC_QTA); int st = con.sgn(s_dottm); int so = con.sgn(s_dotod); @@ -1586,11 +1586,17 @@ bool TGiac_per_cli::load_row(const TRiga_documento& rdoc) vardot += real(so) * consegnato; } - if (rdoc.get_int(RDOC_MOVMAG) != ZERO) + if (rdoc.get_long(RDOC_MOVMAG) != 0L) { dotmp -= vartmp; dotazione -= vardot; } + + if(aggiorna) + { + rdoc.put("DOTOD", dotazione); + rdoc.put("DOTMP", dotmp); + } return true; } diff --git a/lv/lvlib.h b/lv/lvlib.h index 914a6c760..590aa001c 100755 --- a/lv/lvlib.h +++ b/lv/lvlib.h @@ -370,11 +370,11 @@ protected: long giac_in_mag(const TString& codart, bool odierna) const; //restituisce il valore salvato nel magazzino public: - bool preset(const TDocumento& doc); //precarico le variabili globali della classe - bool reset(const TDocumento& doc); //svuota i TAssoc_array e carica cli e cont - bool load_row(const TRiga_documento& rdoc); //popola i TAssoc_array - real giac_att(TRiga_documento& rdoc, bool odierna); //restituisce le quantità attuali di dotazione - TGiac_per_cli(); //costruttore + bool preset(const TDocumento& doc); //precarico le variabili globali della classe + bool reset(const TDocumento& doc); //svuota i TAssoc_array e carica cli e cont + bool load_row(TRiga_documento& rdoc, const bool aggiorna = false); //popola i TAssoc_array + real giac_att(TRiga_documento& rdoc, bool odierna); //restituisce le quantità attuali di dotazione + TGiac_per_cli(); //costruttore }; class TLV_recordset : public TDocument_recordset