diff --git a/lv/lv3100.cpp b/lv/lv3100.cpp index afebd6a9b..68b3e5bf3 100755 --- a/lv/lv3100.cpp +++ b/lv/lv3100.cpp @@ -548,13 +548,18 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k) } //gestione campi dotazione odierna e dotazione temporanea - TGiac_per_cli& giac = gbapp().giacenza(); - giac.preset(doc); - real dotod = giac.giac_att(rdoc, true); - rdoc.put("DOTOD", dotod); - real dotmp = giac.giac_att(rdoc, false); - rdoc.put("DOTMP", dotmp); + TArticolo_lavanderie& artrec = cached_article_laundry(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); + + real dotod = reclav.get_real(CLIFOGIAC_DOTOD); + real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); + rdoc.put("DOTOD", dotod); + rdoc.put("DOTMP", dotmp); //elaborazione per il prezzo: o lo prendo dalle righe contratto, o dall'anagrafica magazzino const TString& sconto = rcont.get(LVRCONDV_SCONTPERC).as_string(); @@ -651,15 +656,23 @@ bool TGestione_bolle_msk::lv_ritirato_handler(TMask_field& f, KEY k) } //gestione campi dotazione odierna e dotazione temporanea - TGiac_per_cli& giac = gbapp().giacenza(); - dotod = giac.giac_att(rdoc, true); + 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); + 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 = giac.giac_att(rdoc, false); + real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); msk.set(FR_JOLLY2, dotmp); rdoc.put("DOTMP", dotmp); } @@ -689,15 +702,24 @@ bool TGestione_bolle_msk::lv_consegnato_handler(TMask_field& f, KEY k) TRiga_documento& rdoc = dmask.doc()[sheet->selected()+1]; rdoc.put(RDOC_QTA, consegnato); - TGiac_per_cli& giac = gbapp().giacenza(); - real dotod = giac.giac_att(rdoc, true); + //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); + 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 = giac.giac_att(rdoc, false); + real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); msk.set(FR_JOLLY2, dotmp); rdoc.put("DOTMP", dotmp); } @@ -748,10 +770,21 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k) if (rdoc.get("DOTOD").empty()) { + //gestione campi dotazione odierna e dotazione temporanea + TArticolo_lavanderie& artrec = cached_article_laundry(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); + + real dotod = reclav.get_real(CLIFOGIAC_DOTOD); + real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); + //gestione campi dotazione odierna e dotazione temporanea TGiac_per_cli& giac = gbapp().giacenza(); giac.preset(dmsk.doc()); - real dotod = giac.giac_att(rdoc, true); rdoc.put("DOTOD", dotod); TString16 tmp; diff --git a/lv/lv3300.cpp b/lv/lv3300.cpp index 98ea1b52f..8a9b44a51 100755 --- a/lv/lv3300.cpp +++ b/lv/lv3300.cpp @@ -549,9 +549,18 @@ bool TGestione_buoni_msk::set_righe_buono_handler(TMask_field& f, KEY k) //gestione campi dotazione odierna e dotazione temporanea TGiac_per_cli& giac = gbapp().giacenza(); giac.preset(doc); - real dotod = giac.giac_att(rdoc, true); + + TArticolo_lavanderie& artrec = cached_article_laundry(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); + real dotod = reclav.get_real(CLIFOGIAC_DOTOD); + real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); + rdoc.put("DOTOD", dotod); - real dotmp = giac.giac_att(rdoc, false); rdoc.put("DOTMP", dotmp); @@ -675,15 +684,23 @@ bool TGestione_buoni_msk::pre_ritirato_handler(TMask_field& f, KEY k) } //gestione campi dotazione odierna e dotazione temporanea - TGiac_per_cli& giac = gbapp().giacenza(); - dotod = giac.giac_att(rdoc, true); + 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); + 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 = giac.giac_att(rdoc, false); + real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); msk.set(FR_JOLLY2, dotmp); rdoc.put("DOTMP", dotmp); } @@ -713,15 +730,24 @@ bool TGestione_buoni_msk::pre_daconsegnare_handler(TMask_field& f, KEY k) TRiga_documento& rdoc = dmask.doc()[sheet->selected()+1]; rdoc.put(RDOC_QTA, consegnato); - TGiac_per_cli& giac = gbapp().giacenza(); - real dotod = giac.giac_att(rdoc, true); + //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); 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 = giac.giac_att(rdoc, false); + real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); + msk.set(FR_JOLLY2, dotmp); rdoc.put("DOTMP", dotmp); } @@ -772,9 +798,19 @@ bool TGestione_buoni_msk::pre_codart_handler(TMask_field& f, KEY k) if (rdoc.get("DOTOD").empty()) { //gestione campi dotazione odierna e dotazione temporanea + TArticolo_lavanderie& artrec = cached_article_laundry(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); + + real dotod = reclav.get_real(CLIFOGIAC_DOTOD); + real dotmp = reclav.get_real(CLIFOGIAC_DOTTM); + TGiac_per_cli& giac = gbapp().giacenza(); giac.preset(dmsk.doc()); - real dotod = giac.giac_att(rdoc, true); rdoc.put("DOTOD", dotod); TString16 tmp;