From 978a74842dafde45bb750674d60de8ae8072ec2a Mon Sep 17 00:00:00 2001 From: luca83 Date: Fri, 6 Feb 2009 12:28:21 +0000 Subject: [PATCH] Patch level : 10.0 Files correlati : lv0.exe, lvtbcau.msk Ricompilazione Demo : [ ] Commento : Aggiunta la gestione delle causali di magazzino (solo campi di lavanderia) nelle causali di lavanderia git-svn-id: svn://10.65.10.50/trunk@18208 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv0100.cpp | 84 +++++++++++++++++++++++++++++++- lv/lvtbcau.h | 25 +++++++--- lv/lvtbcau.uml | 127 ++++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 217 insertions(+), 19 deletions(-) diff --git a/lv/lv0100.cpp b/lv/lv0100.cpp index aa7ed9997..3a53aee43 100755 --- a/lv/lv0100.cpp +++ b/lv/lv0100.cpp @@ -2,6 +2,9 @@ #include #include +#include + +#include "lvtbcau.h" /////////////////////////////////////////////////////////// // Maschera generica di gestione tabelle lavanderie @@ -18,7 +21,7 @@ public: bool TLV_table_mask::on_field_event(TOperable_field &o, TField_event e, long jolly) { - return true; + return true; } /////////////////////////////////////////////////////////// @@ -30,7 +33,11 @@ class TLV_table_app : public TTable_module_application { protected: // TRelation_application virtual TMask* user_create_mask(); + virtual int write(const TMask& m); + virtual int rewrite(const TMask& m); virtual bool get_next_key(TToken_string& key); + + void cambia_segni(const TMask& m, const bool ritirato); public: }; @@ -46,6 +53,81 @@ TMask* TLV_table_app::user_create_mask() return TTable_module_application::user_create_mask(); } +void TLV_table_app::cambia_segni(const TMask& m, const bool ritirato) +{ + //instanzio una TTable sulla ytabella delle causali di magazzino + TTable cau("%CAU"); + const TString16 causale = m.get(ritirato ? F_CAUSALE_RITIRO : F_CAUSALE_CONSEGNA); + cau.put("CODTAB", causale); + //se trovo la causale + if (cau.read(_isequal, _lock) == NOERR) + { + TString s2 = cau.get("S2"); + TString16 sgn = ""; + int min = ritirato ? F_SGNDOTIN_R : F_SGNDOTIN_C; + int max = ritirato ? F_SGNCONMN_R : F_SGNCONMN_C; + //mi costruisco la stringa dei segni delle movimentazioni riportata in maschera + for (short i = min; i <= max; i++) + { + TString4 tmp; + switch (m.get_int(i)) + { + case 0: tmp << "0 "; break; + case 1: tmp << "+1"; break; + case -1: tmp << "-1"; break; + default: break; + } + sgn << tmp; + } + + //estraggo la sottostringa che mi interessa dalla tabella delle causali e la porto a lunghezza 10 + TString16 str = s2.mid(28,10); + if(str.len() < 10) + str << " "; + + //chiedo se volglio proprio modificare i segni della movimentazione di magazzino + if (str != sgn && yesno_box(TR("Si desidera veramente modificare i segni delle causali?"))) + { + s2.overwrite(sgn,28,10); + cau.put("S2", s2); + cau.rewrite(); + } + } + else + cau.unlock(); +} + +// Ridefinizione del metodo write +int TLV_table_app::write(const TMask& m) +{ + const TString4 name = get_relation()->file(0).name(); + if (name == "CAU") + { + if(m.get_bool(F_RITIRATO)) + cambia_segni(m, true); + + if(m.get_bool(F_CONSEGNATO)) + cambia_segni(m, false); + } + return TTable_module_application::write(m); +} + +// Ridefinizione del metodo rewrite +int TLV_table_app::rewrite(const TMask& m) +{ + const TString4 name = get_relation()->file(0).name(); + if (name == "CAU") + { + if(m.get_bool(F_RITIRATO)) + cambia_segni(m, true); + + if(m.get_bool(F_CONSEGNATO)) + cambia_segni(m, false); + } + return TTable_module_application::rewrite(m); +} + + // Cerca di generare automaticamente la prossima chiave numerica di una tabella bool TLV_table_app::get_next_key(TToken_string& key) { diff --git a/lv/lvtbcau.h b/lv/lvtbcau.h index 55fc28ed6..6550dd785 100755 --- a/lv/lvtbcau.h +++ b/lv/lvtbcau.h @@ -5,10 +5,21 @@ #define F_RITIRATO 104 #define F_CAUSALE_RITIRO 105 #define F_DES_CAUSALE_RITIRO 106 -#define F_CONSEGNATO 107 -#define F_CAUSALE_CONSEGNA 108 -#define F_DES_CAUSALE_CONSEGNA 109 -#define F_CAUSALE_RESO 110 -#define F_STAMPA_BOLLA 111 -#define F_CALC_IMPORTO 112 -#define F_CONTR_DOTAZIONE 113 \ No newline at end of file +#define F_SGNDOTIN_R 107 +#define F_SGNDOTOD_R 108 +#define F_SGNDOTTM_R 109 +#define F_SGNCONYR_R 110 +#define F_SGNCONMN_R 111 +#define F_CONSEGNATO 112 +#define F_CAUSALE_CONSEGNA 113 +#define F_DES_CAUSALE_CONSEGNA 114 +#define F_SGNDOTIN_C 115 +#define F_SGNDOTOD_C 116 +#define F_SGNDOTTM_C 117 +#define F_SGNCONYR_C 118 +#define F_SGNCONMN_C 119 +#define F_CAUSALE_RESO 120 +#define F_CAUSALE_ROTTO 121 +//#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 fcb80799b..54705f946 100755 --- a/lv/lvtbcau.uml +++ b/lv/lvtbcau.uml @@ -4,9 +4,9 @@ TOOLBAR "" 0 0 0 2 #include "relapbar.h" ENDPAGE -PAGE "Causali Lavanderie" -1 -1 78 10 +PAGE "Causali Lavanderie" -1 -1 80 10 -GROUPBOX DLG_NULL 76 4 +GROUPBOX DLG_NULL 80 4 BEGIN PROMPT 1 1 "@bDati Causale" END @@ -61,7 +61,7 @@ BEGIN KEY 2 END -GROUPBOX DLG_NULL 90 4 +GROUPBOX DLG_NULL 80 5 BEGIN PROMPT 1 5 "@b Ritiro" END @@ -76,13 +76,18 @@ END STRING F_CAUSALE_RITIRO 5 BEGIN - PROMPT 2 7 "Causale di magazzino" + PROMPT 2 7 "Causale di mag. " USE %CAU KEY 1 INPUT CODTAB F_CAUSALE_RITIRO DISPLAY "Codice@8" CODTAB DISPLAY "Descrizione@50" S0 OUTPUT F_CAUSALE_RITIRO CODTAB OUTPUT F_DES_CAUSALE_RITIRO S0 + OUTPUT F_SGNDOTIN_R S2[29,30] + OUTPUT F_SGNDOTOD_R S2[31,32] + OUTPUT F_SGNDOTTM_R S2[33,34] + OUTPUT F_SGNCONYR_R S2[35,36] + OUTPUT F_SGNCONMN_R S2[37,38] CHECKTYPE REQUIRED WARNING "Causale ritirato obbligatoria" GROUP 1 @@ -92,7 +97,7 @@ END STRING F_DES_CAUSALE_RITIRO 50 BEGIN - PROMPT 30 7 " " + PROMPT 27 7 "" USE %CAU KEY 2 INPUT S0 F_DES_CAUSALE_RITIRO DISPLAY "Codice" CODTAB @@ -102,7 +107,52 @@ BEGIN FLAGS "D" END -GROUPBOX DLG_NULL 90 4 +LISTBOX F_SGNDOTIN_R 1 +BEGIN + PROMPT 2 8 "Dot. In." + ITEM "0| " + ITEM "+1|+" + ITEM "-1|-" + GROUP 1 +END + +LISTBOX F_SGNDOTOD_R 1 +BEGIN + PROMPT 18 8 "Dot. Od." + ITEM "0| " + ITEM "+1|+" + ITEM "-1|-" + GROUP 1 +END + +LISTBOX F_SGNDOTTM_R 1 +BEGIN + PROMPT 33 8 "Dot. Temp." + ITEM "0| " + ITEM "+1|+" + ITEM "-1|-" + GROUP 1 +END + +LISTBOX F_SGNCONYR_R 1 +BEGIN + PROMPT 50 8 "Cons. Anno" + ITEM "0| " + ITEM "+1|+" + ITEM "-1|-" + GROUP 1 +END + +LISTBOX F_SGNCONMN_R 1 +BEGIN + PROMPT 66 8 "Cons. Mese" + ITEM "0| " + ITEM "+1|+" + ITEM "-1|-" + GROUP 1 +END + +GROUPBOX DLG_NULL 80 5 BEGIN PROMPT 1 10 "@b Consegna" END @@ -117,13 +167,18 @@ END STRING F_CAUSALE_CONSEGNA 5 BEGIN - PROMPT 2 12 "Causale di magazzino" + PROMPT 2 12 "Causale di mag. " USE %CAU KEY 1 INPUT CODTAB F_CAUSALE_CONSEGNA DISPLAY "Codice@8" CODTAB DISPLAY "Descrizione@50" S0 OUTPUT F_CAUSALE_CONSEGNA CODTAB OUTPUT F_DES_CAUSALE_CONSEGNA S0 + OUTPUT F_SGNDOTIN_C S2[29,30] + OUTPUT F_SGNDOTOD_C S2[31,32] + OUTPUT F_SGNDOTTM_C S2[33,34] + OUTPUT F_SGNCONYR_C S2[35,36] + OUTPUT F_SGNCONMN_C S2[37,38] FIELD S2 CHECKTYPE REQUIRED WARNING "Causale consegnato obbligatoria" @@ -133,7 +188,7 @@ END STRING F_DES_CAUSALE_CONSEGNA 50 BEGIN - PROMPT 30 12 " " + PROMPT 27 12 "" USE %CAU KEY 2 INPUT S0 F_DES_CAUSALE_CONSEGNA DISPLAY "Codice" CODTAB @@ -143,17 +198,67 @@ BEGIN GROUP 2 END -GROUPBOX DLG_NULL 90 4 +LISTBOX F_SGNDOTIN_C 1 +BEGIN + PROMPT 2 13 "Dot. In." + ITEM "0| " + ITEM "+1|+" + ITEM "-1|-" + GROUP 2 +END + +LISTBOX F_SGNDOTOD_C 1 +BEGIN + PROMPT 18 13 "Dot. Od." + ITEM "0| " + ITEM "+1|+" + ITEM "-1|-" + GROUP 2 +END + +LISTBOX F_SGNDOTTM_C 1 +BEGIN + PROMPT 33 13 "Dot. Temp." + ITEM "0| " + ITEM "+1|+" + ITEM "-1|-" + GROUP 2 +END + +LISTBOX F_SGNCONYR_C 1 +BEGIN + PROMPT 49 13 "Cons. Anno" + ITEM "0| " + ITEM "+1|+" + ITEM "-1|-" + GROUP 2 +END + +LISTBOX F_SGNCONMN_C 1 +BEGIN + PROMPT 66 13 "Cons. Mese" + ITEM "0| " + ITEM "+1|+" + ITEM "-1|-" + GROUP 2 +END + +GROUPBOX DLG_NULL 80 4 BEGIN - PROMPT 1 14 "" + PROMPT 1 15 "@bTipo Causale" END BOOLEAN F_CAUSALE_RESO BEGIN FIELD B2 - PROMPT 2 15 "Causale di reso" + PROMPT 2 16 "Causale di reso" END +BOOLEAN F_CAUSALE_ROTTO +BEGIN + FIELD B3 + PROMPT 25 16 "Causale di rotto" +END ENDPAGE