From fe29882521cd45166fc53cdf90e70f0b1276b2e2 Mon Sep 17 00:00:00 2001 From: luca Date: Mon, 21 Sep 2009 14:57:03 +0000 Subject: [PATCH] =?UTF-8?q?Patch=20level=20=20=20=20=20=20=20=20=20:10.0?= =?UTF-8?q?=20450=20Files=20correlati=20=20=20=20=20:=20Ricompilazione=20D?= =?UTF-8?q?emo=20:=20[=20]=20Commento=20=20=20=20=20=20=20=20=20=20=20=20:?= =?UTF-8?q?=20aggiunto=20il=20file=20VETABMOD.TXT=20con=20la=20prima=20tab?= =?UTF-8?q?ella=20di=20modulo=20delle=20vendite=20(SCC);=20viene=20aggiunt?= =?UTF-8?q?o=20al=20modulo=20VE=20e=20andr=C3=A0=20gestito=20in=20installa?= =?UTF-8?q?zione=20(vedere=20il=20bainst=20delle=20vendite)=20rimosso=20VE?= =?UTF-8?q?TBMOD.TXT=20causa=20nome=20errato=20Iniziato=20il=20lavoro=20al?= =?UTF-8?q?lucinante=20per=20il=20ricarico=20listini?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://10.65.10.50/trunk@19317 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ve/ve0400.cpp | 111 ++++++++++++++++++++++-- ve/ve2.cpp | 7 +- ve/ve2.h | 16 ++-- ve/vearea.men | 8 +- ve/{vetbmod.txt => vetabmod.txt} | 0 ve/vetbgmc.h | 46 ++++++---- ve/vetbgmc.uml | 141 +++++++++++++++++++++++++------ 7 files changed, 257 insertions(+), 72 deletions(-) rename ve/{vetbmod.txt => vetabmod.txt} (100%) diff --git a/ve/ve0400.cpp b/ve/ve0400.cpp index 2b1a3cbf1..5d043f4ef 100755 --- a/ve/ve0400.cpp +++ b/ve/ve0400.cpp @@ -3,14 +3,17 @@ #include #include -#include "vetbnum.h" #include "velib.h" #include "../ca/calib01.h" -#include "vetbspp.h" +#include "vetbatr.h" +#include "vetbgmc.h" +#include "vetbnum.h" #include "vetbprs.h" #include "vetbrss.h" -#include "vetbatr.h" +#include "vetbspp.h" + +#define TAB_GRMERC "GMC" /////////////////////////////////////////////////////////// // TVendite_mask @@ -128,6 +131,9 @@ protected: virtual int read(TMask& m); virtual int write(const TMask& m); virtual int rewrite(const TMask& m); + virtual bool user_create(); + void write_gmc(const TMask& m, TRectype& curr); + static bool codgmc_handler(TMask_field& f, KEY k); bool is_table(const char* tab) const { return get_tabname() == tab; } @@ -255,6 +261,7 @@ int TVendite_tabapp::read(TMask& m) if (err == NOERR) { const TRectype& curr = get_relation()->curr(); + if (curr.get_real("R10").is_zero()) { const TString& r0 = curr.get("R0"); @@ -267,14 +274,86 @@ int TVendite_tabapp::read(TMask& m) if (is_table("ATR")) m.set(ATR_PREZZO, r0); } + + //in caso dei grmerc sono cazzi, perchè lo sheet va riempito usando il contenuto di S1 ed S2, che sono tokenstring.. + //..di tokenstrings! + if (is_table("GMC")) + { + //intanto deve controllare da configurazione se enablare o meno la colonna CATVEN + + TSheet_field& listini = m.sfield(F_RIGHE_LIS); + listini.enable_column(S_CATVEN, ini_get_bool(CONFIG_DITTA, "ve", "GESLISCV")); + + TToken_string stringona(140, ';'); + TString s = curr.get("S1"); + if (s.full()) + { + stringona.add(s); + s = curr.get("S2"); + if (s.full()) + stringona.add(s); + } + + listini.destroy(); + FOR_EACH_TOKEN(stringona, str) + { + listini.row(-1) = str; + listini.check_row(listini.items() - 1); + } + listini.force_update(); + } } return err; } +bool TVendite_tabapp::codgmc_handler(TMask_field& f, KEY k) +{ + TMask& m = f.mask(); + if (m.query_mode() && k == K_ENTER) + { + const TString& codice = m.get(f.dlg()); //stringa immessa nella maschera + const TString& codtab = cache().get("GMC", codice, "CODTAB"); //stringa cercata nella tabella + if (codtab.empty()) //se non trovi la stringa in tabella (in codice magazzino non esiste->se in insert mode) + { + const int lungh = codice.len(); + if (lungh > 0 && lungh < 3) + return f.error_box("Il codice del gruppo merceologico deve avere obbligatoriamente lunghezza 3"); + } + } + + return true; +} + +void TVendite_tabapp::write_gmc(const TMask& m, TRectype& curr) +{ + //la tabella gmc è + incasinata causa la presenza di uno sheet che va salvato come tokenstring(;separated).. + //di tokenstrings(|separated) in uno o due campi alfanumerici + TSheet_field& listini = m.sfield(F_RIGHE_LIS); + TToken_string s1(70, ';'), s2(70, ';'); + FOR_EACH_SHEET_ROW (listini, r, riga) + { + TToken_string mini_string(12, '|'); + mini_string.add(riga->get(0)); //catven + mini_string.add(riga->get()); //codlis + mini_string.add(riga->get()); //ricarico + mini_string.trim(); + if (!mini_string.empty_items()) + { + if (s1.len() + mini_string.len() < 70) + s1.add(mini_string); + else + { + if (s2.len() + mini_string.len() < 70) + s2.add(mini_string); + } + } + } + curr.put("S1", s1); + curr.put("S2", s2); +} + int TVendite_tabapp::write(const TMask& m) { - const TString& table_name = get_tabname(); - TRectype& curr = get_relation()->curr(); if (is_table("SPP")) curr.put("R0", m.get(SPP_PREZZO)); else @@ -284,14 +363,16 @@ int TVendite_tabapp::write(const TMask& m) curr.put("R0", m.get(RSS_PREZZO)); else if (is_table("ATR")) curr.put("R0", m.get(ATR_PREZZO)); + if (is_table("GMC")) + write_gmc(m ,curr); return Tab_application::write(m); } int TVendite_tabapp::rewrite(const TMask& m) { - const TString& table_name = get_tabname(); TRectype& curr = get_relation()->curr(); + if (is_table("SPP")) curr.put("R0", m.get(SPP_PREZZO)); else if (is_table("PRS")) @@ -300,10 +381,28 @@ int TVendite_tabapp::rewrite(const TMask& m) curr.put("R0", m.get(RSS_PREZZO)); else if (is_table("ATR")) curr.put("R0", m.get(ATR_PREZZO)); + if (is_table("GMC")) + write_gmc(m ,curr); return Tab_application::rewrite(m); } + +bool TVendite_tabapp::user_create() +{ + bool ok = TTable_application::user_create(); + if (ok) + { + const TString& name = get_tabname(); + TMask& mask = *get_mask(); + + if (name == TAB_GRMERC) + mask.set_handler(201, codgmc_handler); + } + return ok; +} + + int ve0400(int argc, char* argv[]) { TVendite_tabapp vta; diff --git a/ve/ve2.cpp b/ve/ve2.cpp index f2f78591a..eafdddcff 100755 --- a/ve/ve2.cpp +++ b/ve/ve2.cpp @@ -1,10 +1,5 @@ #include - -extern int ve2100(int argc, char* argv[]); // tabelle sconti (di riga/di documento/incondizionati) -extern int ve2200(int argc, char* argv[]); // testate listini/contratti/offerte -extern int ve2300(int argc, char* argv[]); // righe listini/contratti/offerte -extern int ve2400(int argc, char* argv[]); // anagrafica di magazzino -extern int ve2600(int argc, char* argv[]); // relazioni articoli livelli di giacenza +#include "ve2.h" int main( int argc, char** argv) { diff --git a/ve/ve2.h b/ve/ve2.h index 3f1db8f8e..5c28f7e9d 100755 --- a/ve/ve2.h +++ b/ve/ve2.h @@ -1,17 +1,11 @@ #ifndef __VE2_H #define __VE2_H -#ifdef MAIN -#define extern -#endif - -int ve2100(int argc, char* argv[]); // Tabella testate listini e righe listini -int ve2200(int argc, char* argv[]); // Archivio contratti e righe contratti -int ve2300(int argc, char* argv[]); // Archivio indirizzo clienti - -#ifdef MAIN -#undef extern -#endif +int ve2100(int argc, char* argv[]); // tabelle sconti (di riga/di documento/incondizionati) +int ve2200(int argc, char* argv[]); // testate listini/contratti/offerte +int ve2300(int argc, char* argv[]); // righe listini/contratti/offerte +int ve2400(int argc, char* argv[]); // anagrafica di magazzino +int ve2600(int argc, char* argv[]); // relazioni articoli livelli di giacenza #endif diff --git a/ve/vearea.men b/ve/vearea.men index 36e1ed25d..a1946b902 100755 --- a/ve/vearea.men +++ b/ve/vearea.men @@ -85,11 +85,11 @@ Caption = "Tabelle magazzino" Picture = Module = 0 Flags = "" -Item_01 = "Gruppi merceologici", "ba3 -0 GMC", "F" -Item_02 = "Magazzini e depositi", "ba3 -0 MAG", "F" +Item_01 = "Gruppi merceologici", "ve0 -4 GMC", "F" +Item_02 = "Magazzini e depositi", "mg0 -0 MAG", "F" Item_03 = "Unita' di misura", "ve0 -4 %UMS", "" Item_04 = "Province d'origine", "ve0 -4 %PRV", "" -Item_05 = "Classi fiscali articoli", "ba3 -0 ASF", "F" +Item_05 = "Classi fiscali articoli", "ve0 -4 ASF", "F" Item_06 = "Categorie ricavi articoli", "ve0 -4 CRA", "F" Item_07 = "Categorie acquisti articoli", "ve0 -4 CAA", "F" Item_08 = "Raggrupp. fiscali articoli", "ve0 -4 RFA", "F" @@ -99,7 +99,7 @@ Item_11 = "Causali magazzino", "mg0 -0 %CAU", "" Item_12 = "Gruppi codice articoli", "mg0 -0 GCA", "F" Item_13 = "Gruppi codice giacenze", "mg0 -0 GCG", "F" Item_14 = "Gruppi cod. art. avanzati", "mg0 -0 GSA", "F" -Item_15 = "Ubicazioni", "ba3 -0 UBI", "F" +Item_15 = "Ubicazioni", "mg0 -0 UBI", "F" [ACQVEN_007] Caption = "Stampa tabelle" diff --git a/ve/vetbmod.txt b/ve/vetabmod.txt similarity index 100% rename from ve/vetbmod.txt rename to ve/vetabmod.txt diff --git a/ve/vetbgmc.h b/ve/vetbgmc.h index 051a47909..d9bd2c120 100755 --- a/ve/vetbgmc.h +++ b/ve/vetbgmc.h @@ -1,19 +1,29 @@ -#define F_CODGRU 101 -#define F_DESGRU 102 -#define F_CODSGR 103 -#define F_DESSGR 104 -#define H_CODGRU 105 -#define H_DESGRU 106 -#define F_CODIVARIF 107 -#define F_CODIVARIF1 108 -#define F_GRUPPOA 109 -#define F_CONTOA 110 -#define F_SOTTOCA 111 -#define F_DESCRA 112 -#define F_GRUPPOV 113 -#define F_CONTOV 114 -#define F_SOTTOCV 115 -#define F_DESCRV 116 -#define F_SCONTO 117 -#define F_RICARICO 118 +#define F_CODGRU 201 +#define F_DESGRU 202 +#define F_CODSGR 203 +#define F_DESSGR 204 +#define H_CODGRU 205 +#define H_DESGRU 206 +#define F_CODIVARIF 207 +#define F_CODIVARIF1 208 +#define F_GRUPPOA 209 +#define F_CONTOA 210 +#define F_SOTTOCA 211 +#define F_DESCRA 212 +#define F_GRUPPOV 213 +#define F_CONTOV 214 +#define F_SOTTOCV 215 +#define F_DESCRV 216 +#define F_SCONTO 217 +#define F_RICARICO 218 +#define F_RIGHE_LIS 219 + +//righe sheet +#define S_CATVEN 101 +#define S_CODLIS 102 +#define S_RICARICO 103 +#define S_DESLIS 104 +#define S_DESCAT 110 + + diff --git a/ve/vetbgmc.uml b/ve/vetbgmc.uml index 976bf2266..f7ff2f0e5 100755 --- a/ve/vetbgmc.uml +++ b/ve/vetbgmc.uml @@ -1,14 +1,12 @@ #include "vetbgmc.h" TOOLBAR "Toolbar" 0 0 0 2 - #include - ENDPAGE -PAGE "Gruppi merceologici " 0 0 0 0 +PAGE "Gruppi merceologici " 0 2 0 0 -GROUPBOX DLG_NULL 78 7 +GROUPBOX DLG_NULL 78 4 BEGIN PROMPT 1 0 "" FLAGS "R" @@ -16,7 +14,7 @@ END STRING F_CODGRU 3 BEGIN - PROMPT 2 2 "Codice gruppo " + PROMPT 2 1 "Gruppo " FLAG "U" FIELD CODTAB[1,3] KEY 1 @@ -32,7 +30,7 @@ END STRING F_CODSGR 2 BEGIN - PROMPT 35 2 "Codice sottogruppo " + PROMPT 2 2 "Sottogruppo " FIELD CODTAB[4,5] FLAGS "U" KEY 1 @@ -56,7 +54,7 @@ END STRING H_CODGRU 3 BEGIN - PROMPT 2 1 "Codice gruppo " + PROMPT 2 1 "Gruppo " FLAG "U" FLAGS "H" COPY USE F_CODGRU @@ -68,13 +66,13 @@ END STRING F_DESGRU 50 BEGIN - PROMPT 2 4 "Descrizione gruppo " + PROMPT 20 1 "" FLAGS "D" END STRING F_DESSGR 50 BEGIN - PROMPT 2 5 "Descrizione sottogruppo " + PROMPT 20 2 "" FIELD S0 USE GMC KEY 2 KEY 2 @@ -90,7 +88,7 @@ END STRING H_DESGRU 50 BEGIN - PROMPT 2 4 "Descrizione gruppo " + PROMPT 20 1 "" FIELD S0 KEY 2 USE GMC KEY 2 @@ -107,7 +105,7 @@ END STRING F_CODIVARIF 4 BEGIN - PROMPT 2 8 "Codice IVA " + PROMPT 2 5 "Codice IVA " FIELD S7 USE %IVA INPUT CODTAB F_CODIVARIF @@ -120,7 +118,7 @@ END STRING F_CODIVARIF1 50 BEGIN - PROMPT 25 8 "" + PROMPT 25 5 "" USE %IVA KEY 2 INPUT S0 F_CODIVARIF1 DISPLAY "Descrizione@50" S0 @@ -132,17 +130,17 @@ END NUMBER F_GRUPPOV 3 BEGIN - PROMPT 2 10 "Conto vendita " - FIELD I3 + PROMPT 2 7 "Conto vendita " + FIELD I3 END NUMBER F_CONTOV 3 BEGIN - PROMPT 22 10 "" + PROMPT 22 7 "" FIELD I4 USE LF_PCON SELECT INDBIL=="4" - INPUT GRUPPO F_GRUPPOV - INPUT CONTO F_CONTOV + INPUT GRUPPO F_GRUPPOV + INPUT CONTO F_CONTOV DISPLAY "Gruppo" GRUPPO DISPLAY "Conto" CONTO DISPLAY "Descrizione@50" DESCR @@ -155,7 +153,7 @@ END NUMBER F_SOTTOCV 6 BEGIN - PROMPT 30 10 "" + PROMPT 30 7 "" FIELD I5 USE LF_PCON SELECT (SOTTOCONTO!="") && (500@->INDBIL=="4") JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO @@ -177,7 +175,7 @@ END STRING F_DESCRV 50 BEGIN - PROMPT 17 11 "" + PROMPT 17 8 "" FLAG "U" USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && (500@->INDBIL=="4") JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO @@ -197,13 +195,13 @@ END NUMBER F_GRUPPOA 3 BEGIN - PROMPT 2 13 "Conto acquisti " + PROMPT 2 10 "Conto acquisti " FIELD I0 END NUMBER F_CONTOA 3 BEGIN - PROMPT 22 13 "" + PROMPT 22 10 "" FIELD I1 USE LF_PCON SELECT INDBIL=="3" INPUT GRUPPO F_GRUPPOA @@ -220,7 +218,7 @@ END NUMBER F_SOTTOCA 6 BEGIN - PROMPT 30 13 "" + PROMPT 30 10 "" FIELD I2 USE LF_PCON SELECT (SOTTOCONTO!="") && (500@->INDBIL=="3") JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO @@ -242,7 +240,7 @@ END STRING F_DESCRA 50 BEGIN - PROMPT 17 14 "" + PROMPT 17 11 "" FLAG "U" USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && (500@->INDBIL=="3") JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO @@ -262,17 +260,106 @@ END STRING F_SCONTO 25 BEGIN - PROMPT 2 15 "Sconto " - FIELD S1 + PROMPT 2 13 "Sconto " + FIELD S4 END STRING F_RICARICO 25 BEGIN - PROMPT 2 16 "Ricarico " - FIELD S2 + PROMPT 38 13 "Ricarico " + FIELD S5 +END + +TEXT -1 +BEGIN + PROMPT 1 15 "@bRicarichi per listino" +END + +SPREADSHEET F_RIGHE_LIS 78 7 +BEGIN + PROMPT 1 16 "" + ITEM "Cat." + ITEM "Listino" + ITEM "Ricarico" + ITEM "Descrizione@50" END ENDPAGE ENDMASK +//maschera di riga dello sheet +PAGE "Riga ricarico listino" -1 -1 78 8 + +STRING S_CATVEN 2 +BEGIN + PROMPT 1 1 "Cat. vendita " + USE CVE + INPUT CODTAB S_CATVEN + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT S_CATVEN CODTAB + OUTPUT S_DESCAT S0 + CHECKTYPE REQUIRED + WARNING "La categoria di vendita è assente!" + FLAGS "UD" +END + +STRING S_DESCAT 50 +BEGIN + PROMPT 23 1 "" + FLAGS "D" +END + +STRING S_CODLIS 3 +BEGIN + PROMPT 1 2 "Codice listino " + USE LF_CONDV + INPUT TIPO "L" + INPUT CATVEN S_CATVEN SELECT + INPUT COD S_CODLIS + DISPLAY "Cat." CATVEN + DISPLAY "Codice" COD + DISPLAY "Descrizione@50" DESCR + OUTPUT S_CODLIS COD + OUTPUT S_DESLIS DESCR + CHECKTYPE REQUIRED + WARNING "Il codice listino è assente!" + FLAGS "UZ" +END + +STRING S_DESLIS 50 +BEGIN + PROMPT 23 2 "" + FLAGS "D" +END + +STRING S_RICARICO 5 +BEGIN + PROMPT 1 3 "Ricarico " + CHECKTYPE REQUIRED + WARNING "Il ricarico è nullo!" +END + +ENDPAGE + +TOOLBAR "topbar" 0 0 0 2 + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -13 -1 "" +END + +BUTTON DLG_DELREC 10 2 +BEGIN + PROMPT -23 -1 "" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -33 -1 "" +END + +ENDPAGE + +ENDMASK