From ca5b7df4922a21022d2ab5b84868ff430b3a99ad Mon Sep 17 00:00:00 2001 From: luca83 Date: Thu, 4 Jun 2009 14:55:33 +0000 Subject: [PATCH] Patch level : 10.0 patch 326 Files correlati : lv3 Ricompilazione Demo : [ ] Commento : 0001354: cambio deposito riga su documenti di trasporto Descrizione non riesco a cambiare il magazzino sulle bolle, lo salvo ma sulle righe ho sempre lo stesso sia dalla gestione di tutte le righe sia richiamandola in dettaglio. git-svn-id: svn://10.65.10.50/trunk@18986 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv3100.cpp | 68 ++++++++++++++++++++++----------------------------- 1 file changed, 29 insertions(+), 39 deletions(-) diff --git a/lv/lv3100.cpp b/lv/lv3100.cpp index fd0db2959..3dca06618 100755 --- a/lv/lv3100.cpp +++ b/lv/lv3100.cpp @@ -37,7 +37,7 @@ protected: static bool lv_codart_handler(TMask_field& f, KEY k); static bool lv_causale_handler(TMask_field& f, KEY k); static bool lv_codmag_handler(TMask_field& f, KEY k); - static bool lv_datatmp_handler(TMask_field& f, KEY k); + static bool lv_datatmp_handler(TMask_field& f, KEY k); static bool ss_notify(TSheet_field& ss, int r, KEY key); static bool ss_handler(TMask_field& f, KEY key); @@ -568,8 +568,13 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k) rdoc.put(RDOC_UMQTA,rcont.get(LVRCONDV_UM).as_string()); rdoc.put(RDOC_CODAGG1,causale); rdoc.put(RDOC_CODIVA,anamag.get(ANAMAG_CODIVA)); - rdoc.put(RDOC_CODMAG, codmag); - rdoc.put(RDOC_CODMAGC, codmag); + + TString8 codmagold = rdoc.get(RDOC_CODMAG); + if (codmagold.empty()) + { + rdoc.put(RDOC_CODMAG, codmag); + rdoc.put(RDOC_CODMAGC, codmag); + } //gestione campi dotazione odierna e dotazione temporanea TGiac_per_cli& giac = gbapp().giacenza(); @@ -955,13 +960,16 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k) msk.field(FR_QTAGG1).enable(true); if (codmagcoll.blank()) + { codmagcoll = codmagdef; + msk.field(FR_CODMAGC).set(codmagcoll); + } if (coddepcoll.blank()) + { coddepcoll = coddepdef; //magazzino del circolante - - msk.field(FR_CODMAGC).set(codmagcoll); - msk.field(FR_CODDEPC).set(coddepcoll); + msk.field(FR_CODDEPC).set(coddepcoll); + } } else { @@ -975,13 +983,16 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k) { msk.field(FR_QTA).enable(true); if (codmag.blank()) + { codmag = codmagdef; + msk.field(FR_CODMAG).set(codmag); + } if (coddep.blank()) + { coddep = coddepdef; - - msk.field(FR_CODMAG).set(codmag); - msk.field(FR_CODDEP).set(coddep); + msk.field(FR_CODDEP).set(coddep); + } } else { @@ -997,7 +1008,7 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k) bool TGestione_bolle_msk::lv_codmag_handler(TMask_field& f, KEY k) { bool ok = true; - if (f.to_check(k,true)) + if (f.to_check(k, true)) { TMask& msk = f.mask(); const TString& causale = msk.get(FR_CAULAV); @@ -1056,18 +1067,17 @@ bool TGestione_bolle_msk::lv_datatmp_handler(TMask_field& f, KEY k) return true; } - //metodo che setta gli handler sui campi di riga void TGestione_bolle_msk::user_set_row_handler(TMask& rm, short field, int index) { switch(index) { - case 4101: rm.set_handler(field, lv_ritirato_handler); break; - case 4102: rm.set_handler(field, lv_consegnato_handler); break; - case 4103: rm.set_handler(field, lv_codart_handler); break; - case 4104: rm.set_handler(field, lv_causale_handler); break; - case 4105: rm.set_handler(field, lv_codmag_handler); break; - case 4106: rm.set_handler(field, lv_datatmp_handler); break; + case 4101: rm.set_handler(field, lv_ritirato_handler); break; + case 4102: rm.set_handler(field, lv_consegnato_handler); break; + case 4103: rm.set_handler(field, lv_codart_handler); break; + case 4104: rm.set_handler(field, lv_causale_handler); break; + case 4105: rm.set_handler(field, lv_codmag_handler); break; + case 4106: rm.set_handler(field, lv_datatmp_handler); break; default : TDocumento_mask::user_set_row_handler(rm, field, index); break; } } @@ -1146,35 +1156,15 @@ int TGestione_bolle_app::write( const TMask& m ) { elimina_vuote(m); - /*TGestione_bolle_msk& mask = (TGestione_bolle_msk&) m; - - int err = NOERR; - const TDocumento& doc = mask.doc(); - - if (doc.rows() > 0)*/ - int err = TMotore_application::write(m); - /*else - warning_box(TR("Non č possibile registrare un documento di trasporto senza neanche una riga. Questa bolla verrā ignorata"));*/ - - return err; + return TMotore_application::write(m); } //ridefinisco il metodo rewrite delle TMotore_application int TGestione_bolle_app::rewrite( const TMask& m ) { elimina_vuote(m); - - /*TGestione_bolle_msk& mask = (TGestione_bolle_msk&) m; - int err = NOERR; - const TDocumento& doc = mask.doc(); - - if (doc.rows() > 0)*/ - int err = TMotore_application::rewrite(m); -/* else - warning_box(TR("Non č possibile registrare un documento di trasporto senza neanche una riga. Questa bolla verrā ignorata"));*/ - - return err; + return TMotore_application::rewrite(m); } //ridefinisco il metodo read della TMotore_application