Aggiunta la gestione del prezzo netto/lordo, sconto cod. IVA ridotta
e provvigione. git-svn-id: svn://10.65.10.50/trunk@3364 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7f531db4c2
commit
8657d05879
@ -1,11 +1,10 @@
|
||||
|
||||
#include <relapp.h>
|
||||
#include <tabutil.h>
|
||||
#include <msksheet.h>
|
||||
#include <assoc.h>
|
||||
#include <checks.h>
|
||||
#include <defmask.h>
|
||||
|
||||
#include "velib01.h"
|
||||
#include "ve2400.h"
|
||||
|
||||
|
||||
@ -37,13 +36,14 @@ class TAnagrafica_magazzino: public TRelation_application {
|
||||
static bool handle_sheet1(TMask_field &, KEY); // handler dello sheet delle descrizioni in lingua
|
||||
static bool handle_sheet2(TMask_field &, KEY); // handler dello sheer dei codici alternativi
|
||||
static bool handle_sheet0_um(TMask_field &, KEY); // handler del campo UM dello sheet delle unità di misura
|
||||
static bool handle_sheet0_price(TMask_field &, KEY); // handler del campo PREZZO e PREZZO_LORDO dello sheet delle unità di misura
|
||||
|
||||
public:
|
||||
TAnagrafica_magazzino() {}
|
||||
virtual ~TAnagrafica_magazzino() {}
|
||||
};
|
||||
|
||||
|
||||
inline TAnagrafica_magazzino& app() { return (TAnagrafica_magazzino&) main_app(); }
|
||||
|
||||
bool TAnagrafica_magazzino::user_create()
|
||||
{
|
||||
@ -56,6 +56,8 @@ bool TAnagrafica_magazzino::user_create()
|
||||
TSheet_field &f= (TSheet_field &)_msk->field(F_SHEET0);
|
||||
TMask &fm= f.sheet_mask();
|
||||
fm.set_handler(FS_CODUM, handle_sheet0_um);
|
||||
fm.set_handler(FS_PREZZO, handle_sheet0_price);
|
||||
fm.set_handler(FS_PREZZO_LORDO, handle_sheet0_price);
|
||||
|
||||
_rel= new TRelation(LF_ANAMAG);
|
||||
_umart= new TLocalisamfile(LF_UMART);
|
||||
@ -88,6 +90,8 @@ int TAnagrafica_magazzino::read(TMask& m)
|
||||
{
|
||||
TSheet_field &f0= (TSheet_field &)m.field(F_SHEET0); // prende il sheet delle unità di misura
|
||||
TRectype rum(_umart->curr()); // prende il record corrente dal file delle unità di misura
|
||||
TString codiva(m.get(F_CODIVA));
|
||||
real netto = 0.0, lordo = 0.0;
|
||||
|
||||
f0.destroy(); // cancella lo sheet
|
||||
rum.zero();
|
||||
@ -102,6 +106,11 @@ int TAnagrafica_magazzino::read(TMask& m)
|
||||
row = "";
|
||||
row.add(rec.get("UM")); // imposta la riga dello sheet con i campi del record della riga corrente
|
||||
row.add(rec.get("FC"));
|
||||
row.add(rec.get("PREZZO"));
|
||||
netto = real(rec.get("PREZZO"));
|
||||
lordo = netto2lordo(netto,codiva);
|
||||
row.add(lordo.string());
|
||||
|
||||
}
|
||||
if (f0.items() == 0)
|
||||
((TToken_string &)f0.row(0)) = "|1"; // aggiunge una riga allo sheet
|
||||
@ -183,6 +192,7 @@ int TAnagrafica_magazzino::write(const TMask& m)
|
||||
|
||||
rec.put("UM", um);
|
||||
rec.put("FC", row.get());
|
||||
rec.put("PREZZO", row.get());
|
||||
}
|
||||
}
|
||||
err = _linee_rec0->write();
|
||||
@ -257,6 +267,7 @@ int TAnagrafica_magazzino::rewrite(const TMask& m)
|
||||
|
||||
rec.put("UM", um);
|
||||
rec.put("FC", row.get());
|
||||
rec.put("PREZZO", row.get());
|
||||
}
|
||||
}
|
||||
|
||||
@ -472,6 +483,38 @@ bool TAnagrafica_magazzino::handle_sheet0_um(TMask_field &fld, KEY k)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TAnagrafica_magazzino::handle_sheet0_price(TMask_field &f, KEY k)
|
||||
{
|
||||
if (f.to_check(k,TRUE))
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
TString codiva = app()._msk->get(F_CODIVA);
|
||||
real netto = 0.0;
|
||||
real lordo = 0.0;
|
||||
|
||||
if (f.dlg() == FS_PREZZO)
|
||||
{
|
||||
netto = real(m.get(FS_PREZZO));
|
||||
lordo = netto2lordo(netto,codiva);
|
||||
m.set(FS_PREZZO_LORDO,lordo.string());
|
||||
}
|
||||
else
|
||||
{
|
||||
lordo = real(m.get(FS_PREZZO_LORDO));
|
||||
real prec_lordo = lordo;
|
||||
netto = lordo2netto(lordo,codiva);
|
||||
if (lordo != prec_lordo)
|
||||
{
|
||||
warning_box("Scorporando l'iva dal prezzo lordo si e' dovuto\n"
|
||||
"correggere quest'ultimo a causa di arrotondamenti.");
|
||||
m.set(FS_PREZZO_LORDO,lordo.string());
|
||||
}
|
||||
m.set(FS_PREZZO,netto.string());
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int ve2400(int argc, char* argv[])
|
||||
{
|
||||
TAnagrafica_magazzino a;
|
||||
|
@ -49,6 +49,9 @@
|
||||
#define F_TIPOCF 157
|
||||
#define F_LINEAPROD 158
|
||||
#define F_LINEAPROD1 159
|
||||
#define F_CODIVAR 160
|
||||
#define F_SCONTO 161
|
||||
#define F_PROVV 162
|
||||
|
||||
#define F_SHEET0 200
|
||||
#define F_SHEET1 201
|
||||
@ -56,6 +59,8 @@
|
||||
|
||||
#define FS_CODUM 101
|
||||
#define FS_FCUM 102
|
||||
#define FS_PREZZO 103
|
||||
#define FS_PREZZO_LORDO 104
|
||||
|
||||
#define FS_CODLIN 101
|
||||
#define FS_DESCR 102
|
||||
|
139
ve/ve2400.uml
139
ve/ve2400.uml
@ -168,16 +168,42 @@ BEGIN
|
||||
OUTPUT F_GRMERC3D S0
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEET0 77 4
|
||||
STRING F_CODIVA 4
|
||||
BEGIN
|
||||
PROMPT 1 8 ""
|
||||
ITEM " U.M. @2"
|
||||
ITEM "Fattore conversione@30"
|
||||
PROMPT 1 8 "Codice IVA "
|
||||
FIELD LF_ANAMAG->CODIVA
|
||||
USE %IVA
|
||||
INPUT CODTAB F_CODIVA
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
OUTPUT F_CODIVA CODTAB
|
||||
OUTPUT F_CODIVA1 S0
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_CODIVA1 50
|
||||
BEGIN
|
||||
PROMPT 26 8 ""
|
||||
USE %IVA KEY 2
|
||||
INPUT S0 F_CODIVA1
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice " CODTAB
|
||||
OUTPUT F_CODIVA CODTAB
|
||||
OUTPUT F_CODIVA1 S0
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEET0 77 5
|
||||
BEGIN
|
||||
PROMPT 1 9 ""
|
||||
ITEM "U.M."
|
||||
ITEM "F. conversione"
|
||||
ITEM "Prezzo netto@18"
|
||||
ITEM "Prezzo lordo@18"
|
||||
END
|
||||
|
||||
STRING F_CATCONA 3
|
||||
BEGIN
|
||||
PROMPT 1 13 "Categoria conto acquisti "
|
||||
PROMPT 1 15 "Categoria conto acquisti "
|
||||
FIELD LF_ANAMAG->CATCONA
|
||||
GROUP 11
|
||||
MESSAGE CLEAR,12@
|
||||
@ -197,7 +223,7 @@ END
|
||||
|
||||
STRING F_CATCONA1 40
|
||||
BEGIN
|
||||
PROMPT 36 13 ""
|
||||
PROMPT 36 15 ""
|
||||
FLAG "D"
|
||||
GROUP 11
|
||||
USE CAA KEY 2
|
||||
@ -212,7 +238,7 @@ END
|
||||
|
||||
STRING F_GRUPPOA 2
|
||||
BEGIN
|
||||
PROMPT 1 14 "Conto d'acquisto "
|
||||
PROMPT 1 16 "Conto d'acquisto "
|
||||
FIELD LF_ANAMAG->GRUPPOA
|
||||
GROUP 12
|
||||
MESSAGE CLEAR,11@
|
||||
@ -221,14 +247,14 @@ END
|
||||
|
||||
STRING F_CONTOA 2
|
||||
BEGIN
|
||||
PROMPT 22 14 ""
|
||||
PROMPT 22 16 ""
|
||||
FIELD LF_ANAMAG->CONTOA
|
||||
GROUP 12
|
||||
END
|
||||
|
||||
STRING F_SOTTOCA 6
|
||||
BEGIN
|
||||
PROMPT 26 14 ""
|
||||
PROMPT 26 16 ""
|
||||
FIELD LF_ANAMAG->SOTTOCA
|
||||
GROUP 12
|
||||
USE LF_PCON
|
||||
@ -248,7 +274,7 @@ END
|
||||
|
||||
STRING F_DESCRA 40
|
||||
BEGIN
|
||||
PROMPT 36 14 ""
|
||||
PROMPT 36 16 ""
|
||||
FLAG "D"
|
||||
GROUP 12
|
||||
USE LF_PCON KEY 2
|
||||
@ -264,7 +290,7 @@ END
|
||||
|
||||
STRING F_CATCONV 3
|
||||
BEGIN
|
||||
PROMPT 1 15 "Categoria conto vendite "
|
||||
PROMPT 1 17 "Categoria conto vendite "
|
||||
FIELD LF_ANAMAG->CATCONV
|
||||
GROUP 21
|
||||
MESSAGE CLEAR,22@
|
||||
@ -284,7 +310,7 @@ END
|
||||
|
||||
STRING F_CATCONV1 40
|
||||
BEGIN
|
||||
PROMPT 36 15 ""
|
||||
PROMPT 36 17 ""
|
||||
FLAG "D"
|
||||
GROUP 21
|
||||
USE CRA KEY 2
|
||||
@ -299,7 +325,7 @@ END
|
||||
|
||||
STRING F_GRUPPOV 2
|
||||
BEGIN
|
||||
PROMPT 1 16 "Conto di vendita "
|
||||
PROMPT 1 18 "Conto di vendita "
|
||||
FIELD LF_ANAMAG->GRUPPOV
|
||||
GROUP 22
|
||||
MESSAGE CLEAR,21@
|
||||
@ -308,14 +334,14 @@ END
|
||||
|
||||
STRING F_CONTOV 2
|
||||
BEGIN
|
||||
PROMPT 22 16 ""
|
||||
PROMPT 22 18 ""
|
||||
FIELD LF_ANAMAG->CONTOV
|
||||
GROUP 22
|
||||
END
|
||||
|
||||
STRING F_SOTTOCV 6
|
||||
BEGIN
|
||||
PROMPT 26 16 ""
|
||||
PROMPT 26 18 ""
|
||||
FIELD LF_ANAMAG->SOTTOCV
|
||||
GROUP 22
|
||||
USE LF_PCON
|
||||
@ -335,7 +361,7 @@ END
|
||||
|
||||
STRING F_DESCRV 40
|
||||
BEGIN
|
||||
PROMPT 36 16 ""
|
||||
PROMPT 36 18 ""
|
||||
FLAG "D"
|
||||
GROUP 22
|
||||
USE LF_PCON KEY 2
|
||||
@ -349,19 +375,19 @@ END
|
||||
|
||||
STRING F_UMP 3
|
||||
BEGIN
|
||||
PROMPT 1 17 "U.M. peso "
|
||||
PROMPT 1 19 "U.M. peso "
|
||||
FIELD LF_ANAMAG->UMP
|
||||
END
|
||||
|
||||
NUMBER F_PESO 15 5
|
||||
BEGIN
|
||||
PROMPT 30 17 "Peso "
|
||||
PROMPT 30 19 "Peso "
|
||||
FIELD LF_ANAMAG->PESO
|
||||
END
|
||||
|
||||
STRING F_CLASSDOG 10
|
||||
BEGIN
|
||||
PROMPT 1 18 "Classe doganale "
|
||||
PROMPT 1 20 "Classe doganale "
|
||||
FIELD LF_ANAMAG->CLASSDOG
|
||||
FLAG "UZ"
|
||||
USE %CLD
|
||||
@ -375,40 +401,15 @@ END
|
||||
|
||||
STRING F_CLASSDOG1 40
|
||||
BEGIN
|
||||
PROMPT 36 18 ""
|
||||
PROMPT 36 20 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
|
||||
PAGE "Pagina 2 " 0 0 70 20
|
||||
|
||||
STRING F_CODIVA 4
|
||||
BEGIN
|
||||
PROMPT 2 1 "Codice IVA "
|
||||
FIELD LF_ANAMAG->CODIVA
|
||||
USE %IVA
|
||||
INPUT CODTAB F_CODIVA
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
OUTPUT F_CODIVA CODTAB
|
||||
OUTPUT F_CODIVA1 S0
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_CODIVA1 40
|
||||
BEGIN
|
||||
PROMPT 29 1 ""
|
||||
USE %IVA KEY 2
|
||||
INPUT S0 F_CODIVA1
|
||||
DISPLAY "Descrizione@40" S0
|
||||
DISPLAY "Codice " CODTAB
|
||||
OUTPUT F_CODIVA CODTAB
|
||||
OUTPUT F_CODIVA1 S0
|
||||
END
|
||||
|
||||
LISTBOX F_TIPOCF 20
|
||||
BEGIN
|
||||
PROMPT 0 0 ""
|
||||
@ -418,7 +419,7 @@ END
|
||||
|
||||
NUMBER F_CODFORN 6
|
||||
BEGIN
|
||||
PROMPT 2 2 "Codice fornitore "
|
||||
PROMPT 2 1 "Codice fornitore "
|
||||
FIELD LF_ANAMAG->CODFORN
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF F_TIPOCF SELECT
|
||||
@ -431,13 +432,13 @@ END
|
||||
|
||||
NUMBER F_COSTSTD 18 0
|
||||
BEGIN
|
||||
PROMPT 37 2 "Costo standard "
|
||||
PROMPT 37 1 "Costo standard "
|
||||
FIELD LF_ANAMAG->COSTSTD
|
||||
END
|
||||
|
||||
STRING F_CODFORN1 50
|
||||
BEGIN
|
||||
PROMPT 2 3 "Ragione sociale "
|
||||
PROMPT 2 2 "Ragione sociale "
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF F_TIPOCF SELECT
|
||||
INPUT RAGSOC F_CODFORN1
|
||||
@ -449,7 +450,7 @@ END
|
||||
|
||||
BOOLEAN F_ARTFIS
|
||||
BEGIN
|
||||
PROMPT 2 4 "Articolo fiscale "
|
||||
PROMPT 2 3 "Articolo fiscale"
|
||||
FIELD LF_ANAMAG->ARTFIS
|
||||
MESSAGE TRUE ENABLE,23@
|
||||
MESSAGE FALSE DISABLE,23@
|
||||
@ -457,7 +458,7 @@ END
|
||||
|
||||
STRING F_RAGGFIS 5
|
||||
BEGIN
|
||||
PROMPT 2 5 "Raggrupp. fiscale "
|
||||
PROMPT 2 4 "Raggrupp. fiscale "
|
||||
FIELD LF_ANAMAG->RAGGFIS
|
||||
USE %RFA
|
||||
JOIN %ASF ALIAS 200 INTO CODTAB=S8
|
||||
@ -474,13 +475,13 @@ END
|
||||
|
||||
STRING F_RAGGFIS1 40
|
||||
BEGIN
|
||||
PROMPT 31 5 ""
|
||||
PROMPT 31 4 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_CLASSEFIS 1
|
||||
BEGIN
|
||||
PROMPT 2 6 "Classe fiscale "
|
||||
PROMPT 2 5 "Classe fiscale "
|
||||
FIELD LF_ANAMAG->CLASSEFIS
|
||||
USE %ASF
|
||||
INPUT CODTAB F_CLASSEFIS
|
||||
@ -494,26 +495,52 @@ END
|
||||
|
||||
STRING F_CLASSEFIS1 40
|
||||
BEGIN
|
||||
PROMPT 31 6 ""
|
||||
PROMPT 31 5 ""
|
||||
FLAG "D"
|
||||
END
|
||||
|
||||
STRING F_SCONTO 25
|
||||
BEGIN
|
||||
FIELD LF_ANAMAG->SCONTO
|
||||
PROMPT 2 6 "Sconto "
|
||||
END
|
||||
|
||||
STRING F_CODIVAR 4
|
||||
BEGIN
|
||||
PROMPT 45 6 "Codice IVA ridotta "
|
||||
FIELD LF_ANAMAG->CODIVAR
|
||||
USE %IVA
|
||||
INPUT CODTAB F_CODIVAR
|
||||
DISPLAY "Codice " CODTAB
|
||||
DISPLAY "Descrizione@40" S0
|
||||
OUTPUT F_CODIVAR CODTAB
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
NUMBER F_PROVV 5 2
|
||||
BEGIN
|
||||
FIELD LF_ANAMAG->PROVV
|
||||
PROMPT 2 7 "Provvigione "
|
||||
NUM_EXPR (#F_PROVV>=0)&&(#F_PROVV<=100)
|
||||
WARNING "La percentuale di provvigione deve essere compresa tra 0 e 100"
|
||||
END
|
||||
|
||||
BOOLEAN F_ARTPROD
|
||||
BEGIN
|
||||
PROMPT 2 7 "Articolo di produzione "
|
||||
PROMPT 2 8 "Articolo di produzione "
|
||||
FIELD LF_ANAMAG->ARTPROD
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEET1 71 5
|
||||
BEGIN
|
||||
PROMPT 2 8 ""
|
||||
PROMPT 2 10 ""
|
||||
ITEM "Cod. lingua"
|
||||
ITEM "Descrizione@50"
|
||||
END
|
||||
|
||||
SPREADSHEET F_SHEET2 71 5
|
||||
BEGIN
|
||||
PROMPT 2 14 ""
|
||||
PROMPT 2 16 ""
|
||||
ITEM "Cod. art.@20"
|
||||
ITEM "Tipo@10"
|
||||
END
|
||||
|
@ -25,6 +25,19 @@ BEGIN
|
||||
WARNING "Fattore di conversione obbligatorio"
|
||||
END
|
||||
|
||||
NUMBER FS_PREZZO 15
|
||||
BEGIN
|
||||
PROMPT 3 5 "Prezzo netto "
|
||||
FIELD LF_UMART->PREZZO
|
||||
PICTURE "###.###.###.###"
|
||||
END
|
||||
|
||||
NUMBER FS_PREZZO_LORDO 15
|
||||
BEGIN
|
||||
PROMPT 3 6 "Prezzo lordo "
|
||||
PICTURE "###.###.###.###"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
|
Loading…
x
Reference in New Issue
Block a user