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:
parent
f80d1f31a6
commit
fe29882521
111
ve/ve0400.cpp
111
ve/ve0400.cpp
@ -3,14 +3,17 @@
|
||||
#include <printer.h>
|
||||
#include <tabapp.h>
|
||||
|
||||
#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;
|
||||
|
@ -1,10 +1,5 @@
|
||||
#include <xvt.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
|
||||
#include "ve2.h"
|
||||
|
||||
int main( int argc, char** argv)
|
||||
{
|
||||
|
16
ve/ve2.h
16
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
|
||||
|
||||
|
@ -85,11 +85,11 @@ Caption = "Tabelle magazzino"
|
||||
Picture = <ve00>
|
||||
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"
|
||||
|
46
ve/vetbgmc.h
46
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
|
||||
|
||||
|
||||
|
||||
|
141
ve/vetbgmc.uml
141
ve/vetbgmc.uml
@ -1,14 +1,12 @@
|
||||
#include "vetbgmc.h"
|
||||
|
||||
TOOLBAR "Toolbar" 0 0 0 2
|
||||
|
||||
#include <relapbar.h>
|
||||
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user