From 0e580e607ff3ead0a011de03223ddd9ae1e15d84 Mon Sep 17 00:00:00 2001 From: luca83 Date: Mon, 25 May 2009 09:58:40 +0000 Subject: [PATCH] Patch level : 10.0 patch 314 Files correlati : lv3.exe, lvtbcau.msk Ricompilazione Demo : [ ] Commento : Corrette le chiamate alla nuova classe TCausale_lavanderie MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 0001320: gestione conguaglio sulle causali lavanderie Descrizione: Sulla tabella delle causali lavanderia bisogna aggiungere un campo per la gestione del conguaglio uguale a quello delle quantità consegnato mese (e gli altri) perchè le causali tipo la 003 non devono movimentarlo. I documenti di trasporto devono gestirlo git-svn-id: svn://10.65.10.50/trunk@18919 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv3100.cpp | 92 +++++++++++++++++++------------------------------- lv/lvtbcau.h | 1 + lv/lvtbcau.uml | 7 ++++ 3 files changed, 42 insertions(+), 58 deletions(-) diff --git a/lv/lv3100.cpp b/lv/lv3100.cpp index ca10b0772..1bea7300e 100755 --- a/lv/lv3100.cpp +++ b/lv/lv3100.cpp @@ -79,7 +79,6 @@ public: 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 - int write_giac(const TMask& m); //scrive i valori corretti sul file 166 TGiac_per_cli(); //costruttore }; @@ -116,11 +115,12 @@ long TGiac_per_cli::giac_in_mag(const TString& codart, bool odierna) const { //recupero i valori delle dotazioni odierne e temporanee dal magazzino del cliente TLocalisamfile magcli(LF_CLIFOGIAC); - magcli.put(CLIFOGIAC_ANNOES, _year); - magcli.put(CLIFOGIAC_TIPOCF, 'C'); - magcli.put(CLIFOGIAC_CODCF, _clifo); + magcli.put(CLIFOGIAC_ANNOES, _year); + magcli.put(CLIFOGIAC_TIPOCF, 'C'); + magcli.put(CLIFOGIAC_CODCF, _clifo); magcli.put(CLIFOGIAC_INDSPED, _indsped); - magcli.put(CLIFOGIAC_CODART, codart); + magcli.put(CLIFOGIAC_CODART, codart); + magcli.put(CLIFOGIAC_NRIGA, 1); //leggo il record corrispondente if (magcli.read() == NOERR) @@ -170,13 +170,13 @@ bool TGiac_per_cli::load_row(const TRiga_documento& rdoc) real& dotmp = giacart_tmp(rdoc.get(RDOC_CODART)); //instanzio una cache sulla tabella delle causali - TString4 causale = rdoc.get(RDOC_CODAGG1); - const TRectype& cau = cache().get("&CAU", causale); + const TString4 causale = rdoc.get(RDOC_CODAGG1); + const TCausale_lavanderie cau(causale); //movimento o meno la dotazione temporanea a seconda di cosa prevede la causale - if (cau.get_bool("B0")) + if (cau.is_ritiro()) { - const TCausale_magazzino & rit = cached_causale_magazzino(cau.get("S1")); + const TCausale_magazzino& rit = cau.causale_ritiro(); const real & ritirato = rdoc.get_real(RDOC_QTAGG1); int st = rit.sgn(s_dottm); int so = rit.sgn(s_dotod); @@ -184,9 +184,9 @@ bool TGiac_per_cli::load_row(const TRiga_documento& rdoc) vartmp += real(st) * ritirato; vardot += real(so) * ritirato; } - if (cau.get_bool("B1")) + if (cau.is_consegna()) { - const TCausale_magazzino & con = cached_causale_magazzino(cau.get("S2")); + const TCausale_magazzino& con = cau.causale_consegna(); const real & consegnato = rdoc.get_real(RDOC_QTA); int st = con.sgn(s_dottm); int so = con.sgn(s_dotod); @@ -215,19 +215,19 @@ real TGiac_per_cli::giac_att(TRiga_documento& rdoc, bool odierna) //instanzio una cache sulla tabella delle causali TString4 causale = rdoc.get(RDOC_CODAGG1); - const TRectype& cau = cache().get("&CAU", causale); + const TCausale_lavanderie cau(causale); //movimento o meno la dotazione temporanea/odierna a seconda di cosa prevede la causale - if (cau.get_bool("B0")) + if (cau.is_ritiro()) { - const TCausale_magazzino& rit = cached_causale_magazzino(cau.get("S1")); + const TCausale_magazzino& rit = cau.causale_ritiro(); const int s = rit.sgn(odierna ? s_dotod : s_dottm); saldo += real(s) * rdoc.get_real(RDOC_QTAGG1); } - if (cau.get_bool("B1")) + if (cau.is_consegna()) { - const TCausale_magazzino& con = cached_causale_magazzino(cau.get("S2")); + const TCausale_magazzino& con = cau.causale_consegna(); const int s = con.sgn(odierna ? s_dotod : s_dottm); saldo += real(s) * rdoc.get_real(RDOC_QTA); @@ -237,31 +237,6 @@ real TGiac_per_cli::giac_att(TRiga_documento& rdoc, bool odierna) return giac; } -int TGiac_per_cli::write_giac(const TMask& m) -{ - int err = NOERR; - - TGestione_bolle_msk& mask = (TGestione_bolle_msk&) m; - TDocumento& d = mask.doc(); - - TLocalisamfile magcli(LF_CLIFOGIAC); - FOR_EACH_DOC_ROW_BACK(d, r, row) - { - if (row->is_articolo()) - { - magcli.put(CLIFOGIAC_ANNOES, _year); - magcli.put(CLIFOGIAC_TIPOCF, 'C'); - magcli.put(CLIFOGIAC_CODCF, _clifo); - magcli.put(CLIFOGIAC_INDSPED, _indsped); - magcli.put(CLIFOGIAC_CODART, row->get(RDOC_CODART)); - magcli.put(CLIFOGIAC_DOTOD, row->get_real("DOTOD")); - magcli.put(CLIFOGIAC_DOTTM, row->get_real("DOTMP")); - err = magcli.rewrite_write(); - } - } - return err; -} - //costruttore TGiac_per_cli::TGiac_per_cli() { @@ -352,10 +327,10 @@ void TGestione_bolle_msk::dettaglio_causale(TSheet_field& ss) TString4 causale = ss.cell(ss.selected(),ss.cid2index(FR_CODAGG1)); //instanzio una cache sulle causali - const TRectype& cau = cache().get("&CAU", causale); + const TCausale_lavanderie cau(causale); //esplodo la causale - dmsk.set(F_LVCODCAU, causale); - dmsk.set(F_LVDESCAU, cau.get("S0")); + dmsk.set(F_LVCODCAU, cau.codice()); + dmsk.set(F_LVDESCAU, cau.descr()); } //////////////////////////// @@ -731,7 +706,7 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k) { TConfig* configlv = new TConfig(CONFIG_DITTA,"lv"); causale = configlv->get("CAUSLAV"); - } + } if (rdoc.get("DOTOD").empty()) { @@ -758,9 +733,13 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k) const real conor = rdoc.get_real(RDOC_QTAGG3); const real ritat = msk.get_real(FR_QTAGG1); - const real conat = msk.get_real(FR_QTA); + const real conat = msk.get_real(FR_QTA); - if (ritor != ritat || conor != conat) + //instanzio una cache sulle causali + causale = sheet->cell(sheet->selected(),sheet->cid2index(FR_CODAGG1)); + const TCausale_lavanderie cau(causale); + + if (cau.movcong() && (ritor != ritat || conor != conat)) { const real congor = rcont.get_real(LVRCONDV_QTACONG); @@ -837,14 +816,13 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k) const TLaundry_contract cont(codcf, indsped, datadoc); const TRectype& rcont = cont.row(codart); - //instanzio una cache sulle causali - const TRectype& cau = cache().get("&CAU", causale); + TCausale_lavanderie cau(causale); //movimento o meno la dotazione temporanea/odierna a seconda di cosa prevede la causale int sgn_rit = 0; int sgn_con = 0; - if (cau.get_bool("B0")) + if (cau.is_ritiro()) { - const TCausale_magazzino& rit = cached_causale_magazzino(cau.get("S1")); + const TCausale_magazzino& rit = cau.causale_ritiro(); if (codmagcoll.blank() && rit.has_default_mag()) { codmagcoll = rit.default_mag(); @@ -852,9 +830,9 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k) } sgn_rit = rit.sgn(s_dottm); } - if (cau.get_bool("B1")) + if (cau.is_consegna()) { - const TCausale_magazzino& con = cached_causale_magazzino(cau.get("S2")); + const TCausale_magazzino& con = cau.causale_consegna(); if (codmag.blank() && con.has_default_mag()) { codmag = con.default_mag(); @@ -935,13 +913,13 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k) rcondv.put(LVRCONDV_FIDTTMP, giri.get(LVRCONSPLAN_DTCONS).as_date()); rcondv.rewrite(); } - } + } } } } //abilito o disabilito azzerandolo il campo "Ritirato" a seconda di cosa prevede la causale - if (cau.get_bool("B0")) + if (cau.is_ritiro()) { msk.field(FR_QTAGG1).enable(true); @@ -962,7 +940,7 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k) //abilito o disabilito azzerandolo il campo "Consegnato" a seconda di cosa prevede la causale //ATTENZIONE: questo campo risulta sempre disabilitato se l'articolo è bloccato - if (cau.get_bool("B1") && rcont.get(LVRCONDV_ARTBLOC).empty()) + if (cau.is_consegna() && rcont.get(LVRCONDV_ARTBLOC).empty()) { msk.field(FR_QTA).enable(true); if (codmag.blank()) @@ -1138,7 +1116,6 @@ int TGestione_bolle_app::write( const TMask& m ) TGestione_bolle_msk& mask = (TGestione_bolle_msk&) m; - //_giac.write_giac(m); return TMotore_application::write(m); } @@ -1149,7 +1126,6 @@ int TGestione_bolle_app::rewrite( const TMask& m ) TGestione_bolle_msk& mask = (TGestione_bolle_msk&) m; - //_giac.write_giac(m); return TMotore_application::rewrite(m); } diff --git a/lv/lvtbcau.h b/lv/lvtbcau.h index 6550dd785..880ef9478 100755 --- a/lv/lvtbcau.h +++ b/lv/lvtbcau.h @@ -20,6 +20,7 @@ #define F_SGNCONMN_C 119 #define F_CAUSALE_RESO 120 #define F_CAUSALE_ROTTO 121 +#define F_MOV_CONGUAGLIO 122 //#define F_STAMPA_BOLLA 117 //#define F_CALC_IMPORTO 118 //#define F_CONTR_DOTAZIONE 119 \ No newline at end of file diff --git a/lv/lvtbcau.uml b/lv/lvtbcau.uml index 54705f946..353f7ace6 100755 --- a/lv/lvtbcau.uml +++ b/lv/lvtbcau.uml @@ -260,6 +260,13 @@ BEGIN PROMPT 25 16 "Causale di rotto" END +BOOLEAN F_MOV_CONGUAGLIO +BEGIN + FIELD B4 + PROMPT 45 16 "Non movimentare conguaglio" + +END + ENDPAGE ENDMASK