diff --git a/lv/lv3100.cpp b/lv/lv3100.cpp index 10683f638..2bfeed58d 100755 --- a/lv/lv3100.cpp +++ b/lv/lv3100.cpp @@ -655,8 +655,7 @@ bool TGestione_bolle_msk::lv_ritirato_handler(TMask_field& f, KEY k) return true; } - //gestione campi dotazione odierna e dotazione temporanea - //gestione campi dotazione odierna e dotazione temporanea + //gestione campi dotazione odierna e dotazione temporanea TGiac_per_cli& giac = gbapp().giacenza(); dotod = giac.giac_att(rdoc, true); msk.set(FR_JOLLY1, dotod); @@ -761,9 +760,9 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k) const int last_esc = esc.last(); //estraggo il record corrispondente su LF_CLIFOGIAC - const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc); + const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc); - real dotod = reclav.get_real(CLIFOGIAC_DOTOD); + real dotod = reclav.get_real(CLIFOGIAC_DOTOD); real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); rdoc.put("DOTOD", dotod); diff --git a/lv/lv3300.cpp b/lv/lv3300.cpp index 14d7e3e1d..e5868b23f 100755 --- a/lv/lv3300.cpp +++ b/lv/lv3300.cpp @@ -681,26 +681,18 @@ bool TGestione_buoni_msk::pre_ritirato_handler(TMask_field& f, KEY k) } //gestione campi dotazione odierna e dotazione temporanea - TArticolo_lavanderie& artrec = cached_article_laundry(msk.get(FR_CODART), 'C', codcf, indsped); - //fisso l'anno esercizio - TEsercizi_contabili& esc = esercizi(); - const int last_esc = esc.last(); - - //estraggo il record corrispondente su LF_CLIFOGIAC - const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc); - - dotod = reclav.get_real(CLIFOGIAC_DOTOD); - + TGiac_per_cli& giac = gbapp().giacenza(); + dotod = giac.giac_att(rdoc, true); msk.set(FR_JOLLY1, dotod); rdoc.put("DOTOD", dotod); //scrivo la dotazione temporanea solo se esistono le date di dotazione temporanea e questa non è scaduta if (rdoc.get_date("DADATATMP").ok() && rdoc.get_date("ADATATMP").ok() && rdoc.get_date("ADATATMP") >= doc.get_date(DOC_DATADOC)) { - real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); + real dotmp = giac.giac_att(rdoc, false); msk.set(FR_JOLLY2, dotmp); rdoc.put("DOTMP", dotmp); - } + } } return true; } @@ -728,26 +720,18 @@ bool TGestione_buoni_msk::pre_daconsegnare_handler(TMask_field& f, KEY k) rdoc.put(RDOC_QTA, consegnato); //gestione campi dotazione odierna e dotazione temporanea - TArticolo_lavanderie& artrec = cached_article_laundry(rdoc.get(RDOC_CODART), 'C', doc.get_long(DOC_CODCF), dmask.get_int(F_CODINDSP)); - //fisso l'anno esercizio - TEsercizi_contabili& esc = esercizi(); - const int last_esc = esc.last(); - - //estraggo il record corrispondente su LF_CLIFOGIAC - const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc); - - real dotod = reclav.get_real(CLIFOGIAC_DOTOD); + TGiac_per_cli& giac = gbapp().giacenza(); + real dotod = giac.giac_att(rdoc, true); msk.set(FR_JOLLY1, dotod); rdoc.put("DOTOD", dotod); //scrivo la dotazione temporanea solo se esistono le date di dotazione temporanea e questa non è scaduta if (rdoc.get_date("DADATATMP").ok() && rdoc.get_date("ADATATMP").ok() && rdoc.get_date("ADATATMP") >= doc.get_date(DOC_DATADOC)) { - real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); - - msk.set(FR_JOLLY2, dotmp); + real dotmp = giac.giac_att(rdoc, false); + msk.set(FR_JOLLY2, dotmp); rdoc.put("DOTMP", dotmp); - } + } } return ok; } diff --git a/lv/lvlib.cpp b/lv/lvlib.cpp index c8c23a5d6..7641a9ad8 100755 --- a/lv/lvlib.cpp +++ b/lv/lvlib.cpp @@ -1652,8 +1652,20 @@ bool TGiac_per_cli::load_row(TRiga_documento& rdoc, const bool aggiorna, const b real TGiac_per_cli::giac_att(TRiga_documento& rdoc, bool odierna) { const TString& codart = rdoc.get(RDOC_CODART); + const TDocumento& doc = rdoc.doc(); - real giac = odierna ? rdoc.get_real("DOTOD") : rdoc.get_real("DOTMP"); + TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', doc.get_long(DOC_CODCF), doc.get_long(DOC_CODINDSP)); + //fisso l'anno esercizio + TEsercizi_contabili& esc = esercizi(); + const int last_esc = esc.last(); + + //estraggo il record corrispondente su LF_CLIFOGIAC + const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc); + + real dotod = reclav.get_real(CLIFOGIAC_DOTOD); + real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); + + real giac = odierna ? dotod : dotmp; real saldo; //instanzio una cache sulla tabella delle causali