Patch level :10.0 450

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
aggiunto il file VETABMOD.TXT con la prima tabella di modulo delle vendite (SCC); viene aggiunto al modulo VE e andrà gestito in installazione (vedere il bainst delle vendite)
rimosso VETBMOD.TXT causa nome errato
Iniziato il lavoro allucinante per il ricarico listini


git-svn-id: svn://10.65.10.50/trunk@19317 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2009-09-21 14:57:03 +00:00
parent f80d1f31a6
commit fe29882521
7 changed files with 257 additions and 72 deletions

View File

@ -3,14 +3,17 @@
#include <printer.h> #include <printer.h>
#include <tabapp.h> #include <tabapp.h>
#include "vetbnum.h"
#include "velib.h" #include "velib.h"
#include "../ca/calib01.h" #include "../ca/calib01.h"
#include "vetbspp.h" #include "vetbatr.h"
#include "vetbgmc.h"
#include "vetbnum.h"
#include "vetbprs.h" #include "vetbprs.h"
#include "vetbrss.h" #include "vetbrss.h"
#include "vetbatr.h" #include "vetbspp.h"
#define TAB_GRMERC "GMC"
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// TVendite_mask // TVendite_mask
@ -128,6 +131,9 @@ protected:
virtual int read(TMask& m); virtual int read(TMask& m);
virtual int write(const TMask& m); virtual int write(const TMask& m);
virtual int rewrite(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; } bool is_table(const char* tab) const { return get_tabname() == tab; }
@ -255,6 +261,7 @@ int TVendite_tabapp::read(TMask& m)
if (err == NOERR) if (err == NOERR)
{ {
const TRectype& curr = get_relation()->curr(); const TRectype& curr = get_relation()->curr();
if (curr.get_real("R10").is_zero()) if (curr.get_real("R10").is_zero())
{ {
const TString& r0 = curr.get("R0"); const TString& r0 = curr.get("R0");
@ -267,14 +274,86 @@ int TVendite_tabapp::read(TMask& m)
if (is_table("ATR")) if (is_table("ATR"))
m.set(ATR_PREZZO, r0); 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; 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) int TVendite_tabapp::write(const TMask& m)
{ {
const TString& table_name = get_tabname();
TRectype& curr = get_relation()->curr(); TRectype& curr = get_relation()->curr();
if (is_table("SPP")) if (is_table("SPP"))
curr.put("R0", m.get(SPP_PREZZO)); else 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 curr.put("R0", m.get(RSS_PREZZO)); else
if (is_table("ATR")) if (is_table("ATR"))
curr.put("R0", m.get(ATR_PREZZO)); curr.put("R0", m.get(ATR_PREZZO));
if (is_table("GMC"))
write_gmc(m ,curr);
return Tab_application::write(m); return Tab_application::write(m);
} }
int TVendite_tabapp::rewrite(const TMask& m) int TVendite_tabapp::rewrite(const TMask& m)
{ {
const TString& table_name = get_tabname();
TRectype& curr = get_relation()->curr(); TRectype& curr = get_relation()->curr();
if (is_table("SPP")) if (is_table("SPP"))
curr.put("R0", m.get(SPP_PREZZO)); else curr.put("R0", m.get(SPP_PREZZO)); else
if (is_table("PRS")) if (is_table("PRS"))
@ -300,10 +381,28 @@ int TVendite_tabapp::rewrite(const TMask& m)
curr.put("R0", m.get(RSS_PREZZO)); else curr.put("R0", m.get(RSS_PREZZO)); else
if (is_table("ATR")) if (is_table("ATR"))
curr.put("R0", m.get(ATR_PREZZO)); curr.put("R0", m.get(ATR_PREZZO));
if (is_table("GMC"))
write_gmc(m ,curr);
return Tab_application::rewrite(m); 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[]) int ve0400(int argc, char* argv[])
{ {
TVendite_tabapp vta; TVendite_tabapp vta;

View File

@ -1,10 +1,5 @@
#include <xvt.h> #include <xvt.h>
#include "ve2.h"
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
int main( int argc, char** argv) int main( int argc, char** argv)
{ {

View File

@ -1,17 +1,11 @@
#ifndef __VE2_H #ifndef __VE2_H
#define __VE2_H #define __VE2_H
#ifdef MAIN int ve2100(int argc, char* argv[]); // tabelle sconti (di riga/di documento/incondizionati)
#define extern int ve2200(int argc, char* argv[]); // testate listini/contratti/offerte
#endif int ve2300(int argc, char* argv[]); // righe listini/contratti/offerte
int ve2400(int argc, char* argv[]); // anagrafica di magazzino
int ve2100(int argc, char* argv[]); // Tabella testate listini e righe listini int ve2600(int argc, char* argv[]); // relazioni articoli livelli di giacenza
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
#endif #endif

View File

@ -85,11 +85,11 @@ Caption = "Tabelle magazzino"
Picture = <ve00> Picture = <ve00>
Module = 0 Module = 0
Flags = "" Flags = ""
Item_01 = "Gruppi merceologici", "ba3 -0 GMC", "F" Item_01 = "Gruppi merceologici", "ve0 -4 GMC", "F"
Item_02 = "Magazzini e depositi", "ba3 -0 MAG", "F" Item_02 = "Magazzini e depositi", "mg0 -0 MAG", "F"
Item_03 = "Unita' di misura", "ve0 -4 %UMS", "" Item_03 = "Unita' di misura", "ve0 -4 %UMS", ""
Item_04 = "Province d'origine", "ve0 -4 %PRV", "" 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_06 = "Categorie ricavi articoli", "ve0 -4 CRA", "F"
Item_07 = "Categorie acquisti articoli", "ve0 -4 CAA", "F" Item_07 = "Categorie acquisti articoli", "ve0 -4 CAA", "F"
Item_08 = "Raggrupp. fiscali articoli", "ve0 -4 RFA", "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_12 = "Gruppi codice articoli", "mg0 -0 GCA", "F"
Item_13 = "Gruppi codice giacenze", "mg0 -0 GCG", "F" Item_13 = "Gruppi codice giacenze", "mg0 -0 GCG", "F"
Item_14 = "Gruppi cod. art. avanzati", "mg0 -0 GSA", "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] [ACQVEN_007]
Caption = "Stampa tabelle" Caption = "Stampa tabelle"

View File

@ -1,19 +1,29 @@
#define F_CODGRU 101 #define F_CODGRU 201
#define F_DESGRU 102 #define F_DESGRU 202
#define F_CODSGR 103 #define F_CODSGR 203
#define F_DESSGR 104 #define F_DESSGR 204
#define H_CODGRU 105 #define H_CODGRU 205
#define H_DESGRU 106 #define H_DESGRU 206
#define F_CODIVARIF 107 #define F_CODIVARIF 207
#define F_CODIVARIF1 108 #define F_CODIVARIF1 208
#define F_GRUPPOA 109 #define F_GRUPPOA 209
#define F_CONTOA 110 #define F_CONTOA 210
#define F_SOTTOCA 111 #define F_SOTTOCA 211
#define F_DESCRA 112 #define F_DESCRA 212
#define F_GRUPPOV 113 #define F_GRUPPOV 213
#define F_CONTOV 114 #define F_CONTOV 214
#define F_SOTTOCV 115 #define F_SOTTOCV 215
#define F_DESCRV 116 #define F_DESCRV 216
#define F_SCONTO 117 #define F_SCONTO 217
#define F_RICARICO 118 #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

View File

@ -1,14 +1,12 @@
#include "vetbgmc.h" #include "vetbgmc.h"
TOOLBAR "Toolbar" 0 0 0 2 TOOLBAR "Toolbar" 0 0 0 2
#include <relapbar.h> #include <relapbar.h>
ENDPAGE 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 BEGIN
PROMPT 1 0 "" PROMPT 1 0 ""
FLAGS "R" FLAGS "R"
@ -16,7 +14,7 @@ END
STRING F_CODGRU 3 STRING F_CODGRU 3
BEGIN BEGIN
PROMPT 2 2 "Codice gruppo " PROMPT 2 1 "Gruppo "
FLAG "U" FLAG "U"
FIELD CODTAB[1,3] FIELD CODTAB[1,3]
KEY 1 KEY 1
@ -32,7 +30,7 @@ END
STRING F_CODSGR 2 STRING F_CODSGR 2
BEGIN BEGIN
PROMPT 35 2 "Codice sottogruppo " PROMPT 2 2 "Sottogruppo "
FIELD CODTAB[4,5] FIELD CODTAB[4,5]
FLAGS "U" FLAGS "U"
KEY 1 KEY 1
@ -56,7 +54,7 @@ END
STRING H_CODGRU 3 STRING H_CODGRU 3
BEGIN BEGIN
PROMPT 2 1 "Codice gruppo " PROMPT 2 1 "Gruppo "
FLAG "U" FLAG "U"
FLAGS "H" FLAGS "H"
COPY USE F_CODGRU COPY USE F_CODGRU
@ -68,13 +66,13 @@ END
STRING F_DESGRU 50 STRING F_DESGRU 50
BEGIN BEGIN
PROMPT 2 4 "Descrizione gruppo " PROMPT 20 1 ""
FLAGS "D" FLAGS "D"
END END
STRING F_DESSGR 50 STRING F_DESSGR 50
BEGIN BEGIN
PROMPT 2 5 "Descrizione sottogruppo " PROMPT 20 2 ""
FIELD S0 FIELD S0
USE GMC KEY 2 USE GMC KEY 2
KEY 2 KEY 2
@ -90,7 +88,7 @@ END
STRING H_DESGRU 50 STRING H_DESGRU 50
BEGIN BEGIN
PROMPT 2 4 "Descrizione gruppo " PROMPT 20 1 ""
FIELD S0 FIELD S0
KEY 2 KEY 2
USE GMC KEY 2 USE GMC KEY 2
@ -107,7 +105,7 @@ END
STRING F_CODIVARIF 4 STRING F_CODIVARIF 4
BEGIN BEGIN
PROMPT 2 8 "Codice IVA " PROMPT 2 5 "Codice IVA "
FIELD S7 FIELD S7
USE %IVA USE %IVA
INPUT CODTAB F_CODIVARIF INPUT CODTAB F_CODIVARIF
@ -120,7 +118,7 @@ END
STRING F_CODIVARIF1 50 STRING F_CODIVARIF1 50
BEGIN BEGIN
PROMPT 25 8 "" PROMPT 25 5 ""
USE %IVA KEY 2 USE %IVA KEY 2
INPUT S0 F_CODIVARIF1 INPUT S0 F_CODIVARIF1
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
@ -132,13 +130,13 @@ END
NUMBER F_GRUPPOV 3 NUMBER F_GRUPPOV 3
BEGIN BEGIN
PROMPT 2 10 "Conto vendita " PROMPT 2 7 "Conto vendita "
FIELD I3 FIELD I3
END END
NUMBER F_CONTOV 3 NUMBER F_CONTOV 3
BEGIN BEGIN
PROMPT 22 10 "" PROMPT 22 7 ""
FIELD I4 FIELD I4
USE LF_PCON SELECT INDBIL=="4" USE LF_PCON SELECT INDBIL=="4"
INPUT GRUPPO F_GRUPPOV INPUT GRUPPO F_GRUPPOV
@ -155,7 +153,7 @@ END
NUMBER F_SOTTOCV 6 NUMBER F_SOTTOCV 6
BEGIN BEGIN
PROMPT 30 10 "" PROMPT 30 7 ""
FIELD I5 FIELD I5
USE LF_PCON SELECT (SOTTOCONTO!="") && (500@->INDBIL=="4") USE LF_PCON SELECT (SOTTOCONTO!="") && (500@->INDBIL=="4")
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
@ -177,7 +175,7 @@ END
STRING F_DESCRV 50 STRING F_DESCRV 50
BEGIN BEGIN
PROMPT 17 11 "" PROMPT 17 8 ""
FLAG "U" FLAG "U"
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && (500@->INDBIL=="4") USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && (500@->INDBIL=="4")
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
@ -197,13 +195,13 @@ END
NUMBER F_GRUPPOA 3 NUMBER F_GRUPPOA 3
BEGIN BEGIN
PROMPT 2 13 "Conto acquisti " PROMPT 2 10 "Conto acquisti "
FIELD I0 FIELD I0
END END
NUMBER F_CONTOA 3 NUMBER F_CONTOA 3
BEGIN BEGIN
PROMPT 22 13 "" PROMPT 22 10 ""
FIELD I1 FIELD I1
USE LF_PCON SELECT INDBIL=="3" USE LF_PCON SELECT INDBIL=="3"
INPUT GRUPPO F_GRUPPOA INPUT GRUPPO F_GRUPPOA
@ -220,7 +218,7 @@ END
NUMBER F_SOTTOCA 6 NUMBER F_SOTTOCA 6
BEGIN BEGIN
PROMPT 30 13 "" PROMPT 30 10 ""
FIELD I2 FIELD I2
USE LF_PCON SELECT (SOTTOCONTO!="") && (500@->INDBIL=="3") USE LF_PCON SELECT (SOTTOCONTO!="") && (500@->INDBIL=="3")
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
@ -242,7 +240,7 @@ END
STRING F_DESCRA 50 STRING F_DESCRA 50
BEGIN BEGIN
PROMPT 17 14 "" PROMPT 17 11 ""
FLAG "U" FLAG "U"
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && (500@->INDBIL=="3") USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && (500@->INDBIL=="3")
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
@ -262,17 +260,106 @@ END
STRING F_SCONTO 25 STRING F_SCONTO 25
BEGIN BEGIN
PROMPT 2 15 "Sconto " PROMPT 2 13 "Sconto "
FIELD S1 FIELD S4
END END
STRING F_RICARICO 25 STRING F_RICARICO 25
BEGIN BEGIN
PROMPT 2 16 "Ricarico " PROMPT 38 13 "Ricarico "
FIELD S2 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 END
ENDPAGE ENDPAGE
ENDMASK 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