Patch level : 10.0 163
Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 3.2 patch 1262 git-svn-id: svn://10.65.10.50/trunk@17628 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8ff4fb139e
commit
5cb56fdb07
@ -131,17 +131,30 @@ Col(5) = 110
|
||||
Col(6) = 111
|
||||
Col(7) = 112
|
||||
Col(8) = 113
|
||||
Col(9) = 120
|
||||
Col(10) = 121
|
||||
Col(11) = 124
|
||||
Col(12) = 103
|
||||
Col(13) = 104
|
||||
Col(14) = 127
|
||||
Col(15) = 128
|
||||
Col(16) = 129
|
||||
Col(17) = 102
|
||||
Col(18) = 101
|
||||
|
||||
Col(9) = 154
|
||||
Col(10) = 120
|
||||
Col(11) = 121
|
||||
Col(12) = 124
|
||||
Col(13) = 103
|
||||
Col(14) = 104
|
||||
Col(15) = 127
|
||||
Col(16) = 128
|
||||
Col(17) = 129
|
||||
Col(18) = 102
|
||||
Col(19) = 101
|
||||
[RIGHE]
|
||||
NTIPIRIGA=9
|
||||
1=16
|
||||
2=17
|
||||
3=18
|
||||
4=19
|
||||
5=05
|
||||
6=20
|
||||
7=07
|
||||
8=08
|
||||
9=09
|
||||
[HANDLERS]
|
||||
NHANDLER=0
|
||||
[PROFILOGRUPPO]
|
||||
101 = 0
|
||||
100 = 3
|
||||
|
216
vd/scontr.msk
216
vd/scontr.msk
@ -1,89 +1,89 @@
|
||||
TO "" 0 0 0 2
|
||||
BU 402 10 2
|
||||
BE
|
||||
PR -19 -3 "~Chiudi ~Turno"
|
||||
ME EXIT,27
|
||||
PI 206
|
||||
EN
|
||||
BU 401 10 2
|
||||
BE
|
||||
PR -29 -3 "Chiudi ~Scontr."
|
||||
PI 207
|
||||
EN
|
||||
BU 403 10 2
|
||||
BE
|
||||
PR -39 -3 "~Da Fatturare"
|
||||
PI 210
|
||||
EN
|
||||
BU 18 10 2
|
||||
BE
|
||||
PR -49 -3 "~Sospendi"
|
||||
ME EXIT,20082
|
||||
PI 208
|
||||
EN
|
||||
BU 404 10 2
|
||||
BE
|
||||
PR -59 -3 "S~ospesi"
|
||||
PI 209
|
||||
EN
|
||||
BU 405 10 2
|
||||
BE
|
||||
PR -69 -1 "~Permessi"
|
||||
PI 211
|
||||
EN
|
||||
BU 17 10
|
||||
BE
|
||||
PR -13 -1 "~Elimina"
|
||||
PR -79 -1 "~Elimina"
|
||||
ME EXIT,127
|
||||
PI 104
|
||||
PI 154
|
||||
EN
|
||||
BU 2 10 2
|
||||
BE
|
||||
PR -23 -1 "~Annulla"
|
||||
PR -89 -1 "~Annulla"
|
||||
ME EXIT,27
|
||||
PI 102
|
||||
EN
|
||||
BU 9 10 2
|
||||
BE
|
||||
PR -33 -1 "~Fine"
|
||||
PR -99 -1 "~Fine"
|
||||
ME EXIT,20334
|
||||
PI 114
|
||||
PI 164
|
||||
EN
|
||||
EN
|
||||
TO "" 0 -4 0 4
|
||||
BU 402 10 2
|
||||
BE
|
||||
PR -18 -3 "~Chiudi ~Turno"
|
||||
ME EXIT,27
|
||||
PI 206
|
||||
EN
|
||||
BU 401 10 2
|
||||
BE
|
||||
PR -28 -3 "Chiudi ~Scontr."
|
||||
PI 207
|
||||
EN
|
||||
BU 403 10 2
|
||||
BE
|
||||
PR -38 -3 "~Da Fatturare"
|
||||
PI 210
|
||||
EN
|
||||
BU 18 10 2
|
||||
BE
|
||||
PR -48 -3 "~Sospendi"
|
||||
ME EXIT,20082
|
||||
PI 208
|
||||
EN
|
||||
BU 404 10 2
|
||||
BE
|
||||
PR -58 -3 "S~ospesi"
|
||||
PI 209
|
||||
EN
|
||||
BU 405 10 2
|
||||
BE
|
||||
PR -19 -1 "~Permessi"
|
||||
PI 211
|
||||
EN
|
||||
TO "" 0 -2 0 2
|
||||
BU 411 10 2
|
||||
BE
|
||||
PR -29 -1 "Funz.1"
|
||||
PR -18 -1 "Funz.1"
|
||||
EN
|
||||
BU 412 10 2
|
||||
BE
|
||||
PR -39 -1 "Funz.2"
|
||||
PR -28 -1 "Funz.2"
|
||||
EN
|
||||
BU 413 10 2
|
||||
BE
|
||||
PR -49 -1 "Funz.3"
|
||||
PR -38 -1 "Funz.3"
|
||||
EN
|
||||
BU 414 10 2
|
||||
BE
|
||||
PR -59 -1 "Funz.4"
|
||||
PR -48 -1 "Funz.4"
|
||||
EN
|
||||
BU 415 10 2
|
||||
BE
|
||||
PR -69 -1 "Funz.5"
|
||||
PR -58 -1 "Funz.5"
|
||||
EN
|
||||
BU 416 10 2
|
||||
BE
|
||||
PR -79 -1 "Funz.6"
|
||||
PR -68 -1 "Funz.6"
|
||||
EN
|
||||
BU 417 10 2
|
||||
BE
|
||||
PR -89 -1 "Funz.7"
|
||||
PR -78 -1 "Funz.7"
|
||||
EN
|
||||
BU 418 10 2
|
||||
BE
|
||||
PR -99 -1 "Funz.8"
|
||||
PR -88 -1 "Funz.8"
|
||||
EN
|
||||
EN
|
||||
PA "Scontrino" -1 -1 0 0
|
||||
@ -160,7 +160,7 @@ LI 175 30
|
||||
BE
|
||||
PR 2 2 "Tipo riga da aggiungere "
|
||||
EN
|
||||
SPREADSHEET 500 0 -2
|
||||
SPREADSHEET 500 0 -4
|
||||
BE
|
||||
PR 2 3 ""
|
||||
IT "Lordo@5"
|
||||
@ -204,22 +204,48 @@ IT "Impianto@8"
|
||||
IT "Linea@5"
|
||||
IT "Codice\ncommessa@20"
|
||||
IT "Fase\ncommessa@10"
|
||||
IT "Codice aggiuntivo 1@20"
|
||||
IT "Codice aggiuntivo 2@20"
|
||||
IT "Jolly@20"
|
||||
IT "Jolly@20"
|
||||
IT "Jolly@20"
|
||||
IT "Jolly@20"
|
||||
IT "Jolly@20"
|
||||
IT "Jolly@20"
|
||||
IT "Jolly@20"
|
||||
IT "Jolly@20"
|
||||
IT "Jolly@20"
|
||||
IT "Jolly@20"
|
||||
IT "Riduzione prezzo@18"
|
||||
EN
|
||||
CU 708 15
|
||||
ST 205 20
|
||||
BE
|
||||
PR 2 -1 "Imponibile "
|
||||
FI IMPONIBILI
|
||||
FL "D"
|
||||
PR 1 -3 "Articolo "
|
||||
US 47 KE 1
|
||||
IN CODART 205
|
||||
DI "Codice@20" CODART
|
||||
DI "Descrizione@50" DESCR
|
||||
OU 205 CODART
|
||||
WA "Articolo assente"
|
||||
FL "U"
|
||||
FI CODART
|
||||
ADD RU ve2 -3
|
||||
EN
|
||||
CU 709 15
|
||||
NU 185 15
|
||||
BE
|
||||
PR 30 -1 "Imposta "
|
||||
FI IMPOSTE
|
||||
PR 1 -2 "Giacenza "
|
||||
FL "D"
|
||||
PI ".5"
|
||||
EN
|
||||
NU 186 15
|
||||
BE
|
||||
PR 1 -1 "Disponibilita' "
|
||||
FL "D"
|
||||
PI ".5"
|
||||
EN
|
||||
CU 610 15
|
||||
BE
|
||||
PR 55 -1 "Totale "
|
||||
PR 41 -3 "@g@bTotale "
|
||||
FI TOTDOC
|
||||
FL "D"
|
||||
EN
|
||||
@ -291,7 +317,7 @@ FL "D"
|
||||
EN
|
||||
ST 105 20
|
||||
BE
|
||||
PR 2 6 "Articolo "
|
||||
PR 2 5 "Articolo "
|
||||
US 47 KE 1
|
||||
IN CODART 105
|
||||
DI "Codice@20" CODART
|
||||
@ -314,71 +340,71 @@ PR 51 50 ""
|
||||
FI CHECKED
|
||||
FL "D"
|
||||
EN
|
||||
ST 106 10
|
||||
ST 106 15
|
||||
BE
|
||||
PR 37 6 ""
|
||||
PR 37 5 ""
|
||||
FL "U"
|
||||
US GCG
|
||||
JO FCG AL 500 INTO CODTAB==CODTAB[1,1]
|
||||
IN CODTAB[1,1] "1"
|
||||
IN CODTAB[2,] 106
|
||||
DI "Livello@20" 500@->S0
|
||||
DI "Gruppo@10" CODTAB[2,]
|
||||
DI "Gruppo@15" CODTAB[2,]
|
||||
DI "Descrizione@30" S0
|
||||
OU 106 CODTAB[2,]
|
||||
ME 0 RESET,107|RESET,108|RESET,109
|
||||
ME ENABLE,107
|
||||
CH NORMAL
|
||||
EN
|
||||
ST 107 6
|
||||
ST 107 15
|
||||
BE
|
||||
PR 50 6 ""
|
||||
PR 55 5 ""
|
||||
FL "U"
|
||||
US GCG
|
||||
JO FCG AL 500 INTO CODTAB==CODTAB[1,1]
|
||||
IN CODTAB[1,1] "2"
|
||||
IN CODTAB[2,] 107
|
||||
DI "Livello@20" 500@->S0
|
||||
DI "Gruppo@10" CODTAB[2,]
|
||||
DI "Gruppo@15" CODTAB[2,]
|
||||
DI "Descrizione@30" S0
|
||||
OU 107 CODTAB[2,]
|
||||
ME 0 RESET,108|RESET,109
|
||||
ME ENABLE,108
|
||||
CH NORMAL
|
||||
EN
|
||||
ST 108 6
|
||||
ST 108 15
|
||||
BE
|
||||
PR 59 6 ""
|
||||
PR 37 6 ""
|
||||
FL "U"
|
||||
US GCG
|
||||
JO FCG AL 500 INTO CODTAB==CODTAB[1,1]
|
||||
IN CODTAB[1,1] "3"
|
||||
IN CODTAB[2,] 108
|
||||
DI "Livello@20" 500@->S0
|
||||
DI "Gruppo@10" CODTAB[2,]
|
||||
DI "Gruppo@15" CODTAB[2,]
|
||||
DI "Descrizione@30" S0
|
||||
OU 108 CODTAB[2,]
|
||||
ME 0 RESET,109
|
||||
ME ENABLE,109
|
||||
CH NORMAL
|
||||
EN
|
||||
ST 109 6
|
||||
ST 109 15
|
||||
BE
|
||||
PR 67 6 ""
|
||||
PR 55 6 ""
|
||||
FL "U"
|
||||
US GCG
|
||||
JO FCG AL 500 INTO CODTAB==CODTAB[1,1]
|
||||
IN CODTAB[1,1] "4"
|
||||
IN CODTAB[2,] 109
|
||||
DI "Livello@20" 500@->S0
|
||||
DI "Gruppo@10" CODTAB[2,]
|
||||
DI "Gruppo@15" CODTAB[2,]
|
||||
DI "Descrizione@30" S0
|
||||
OU 109 CODTAB[2,]
|
||||
CH NORMAL
|
||||
EN
|
||||
ST 262 8
|
||||
BE
|
||||
PR 2 6 "Codice "
|
||||
PR 2 5 "Codice "
|
||||
FL "U"
|
||||
US 55
|
||||
IN CODICE 262
|
||||
@ -740,6 +766,62 @@ DI "Codice Fase@10" CODTAB
|
||||
CO OU 141
|
||||
CH NORMAL
|
||||
EN
|
||||
ST 142 20
|
||||
BE
|
||||
PR 2 15 "Stringa 1 "
|
||||
FI CODAGG1
|
||||
EN
|
||||
NU 143 13 5
|
||||
BE
|
||||
PR 42 15 "Stringa 2 "
|
||||
FI CODAGG2
|
||||
EN
|
||||
ST 144 20
|
||||
BE
|
||||
PR 2 17 "Jolly "
|
||||
EN
|
||||
ST 145 20
|
||||
BE
|
||||
PR 2 17 "Jolly "
|
||||
EN
|
||||
ST 146 20
|
||||
BE
|
||||
PR 2 17 "Jolly "
|
||||
EN
|
||||
ST 147 20
|
||||
BE
|
||||
PR 2 17 "Jolly "
|
||||
EN
|
||||
ST 148 20
|
||||
BE
|
||||
PR 2 17 "Jolly "
|
||||
EN
|
||||
ST 149 20
|
||||
BE
|
||||
PR 2 17 "Jolly "
|
||||
EN
|
||||
ST 150 20
|
||||
BE
|
||||
PR 2 17 "Jolly "
|
||||
EN
|
||||
ST 151 20
|
||||
BE
|
||||
PR 2 17 "Jolly "
|
||||
EN
|
||||
ST 152 20
|
||||
BE
|
||||
PR 2 17 "Jolly "
|
||||
EN
|
||||
ST 153 20
|
||||
BE
|
||||
PR 2 17 "Jolly "
|
||||
EN
|
||||
CURRENCY 154 18
|
||||
BE
|
||||
PR 42 17 "Rid.prezzo "
|
||||
FL "U"
|
||||
FI RIDPREZZO
|
||||
EN
|
||||
BU 1 10 2
|
||||
BE
|
||||
PR -14 -1 ""
|
||||
|
@ -177,15 +177,15 @@ BEGIN
|
||||
FIELD BARPVAR
|
||||
END
|
||||
|
||||
BOOLEAN FD_CODPVAR
|
||||
/*BOOLEAN FD_CODPVAR
|
||||
BEGIN
|
||||
PROMPT 2 16 "Gestione codici a peso variabile"
|
||||
FIELD CODPVAR
|
||||
END
|
||||
END */
|
||||
|
||||
STRING FD_QTACHAR 1
|
||||
BEGIN
|
||||
PROMPT 2 18 "Carattere sep.qta "
|
||||
PROMPT 2 16 "Carattere sep.qta "
|
||||
FIELD QTACHAR
|
||||
END
|
||||
|
||||
|
@ -30,7 +30,7 @@ void TApertura_turno_app::main_loop()
|
||||
{
|
||||
TTurno_vendita t;
|
||||
|
||||
t.apri(false);
|
||||
t.apri(true);
|
||||
}
|
||||
|
||||
int vd0500(int argc, char* argv[])
|
||||
|
271
vd/vd0700.cpp
271
vd/vd0700.cpp
@ -126,7 +126,7 @@ class TScontrino_application : public TMotore_application
|
||||
char _print_type;
|
||||
bool _chk_doc;
|
||||
bool _barcode_peso_var;
|
||||
bool _peso_var;
|
||||
// bool _peso_var;
|
||||
char _qta_char;
|
||||
int _npag;
|
||||
int _ncassa;
|
||||
@ -170,6 +170,7 @@ public:
|
||||
const TString & codmag() const { return _codmag;}
|
||||
const TString & codmagc() const { return _codmagc;}
|
||||
const TString & negozio() const { return _negozio;}
|
||||
bool barcode_peso_variabile() const { return _barcode_peso_var; }
|
||||
const TString_array & tv_cmds() const {return _tv_cmds;}
|
||||
const TString_array & tv_labels() const {return _tv_labels;}
|
||||
const TOperatore & curr_user() const { return _responsabile != NULL ? *_responsabile : *_cassiere;}
|
||||
@ -189,11 +190,13 @@ class TScontrino_mask : public TDocumento_mask
|
||||
{
|
||||
int _row_to_remove;
|
||||
TToken_string _deleted_rows;
|
||||
TString80 _art_to_insert;
|
||||
|
||||
protected:
|
||||
static bool scodart_handler( TMask_field& f, KEY key );
|
||||
static bool sqta_handler( TMask_field& f, KEY key );
|
||||
static bool sprezzo_handler( TMask_field& f, KEY key );
|
||||
static bool sriduzione_handler( TMask_field& f, KEY key );
|
||||
static bool turno_handler( TMask_field& f, KEY key );
|
||||
static bool chiudi_handler( TMask_field& f, KEY key );
|
||||
static bool sospendi_handler( TMask_field& f, KEY key );
|
||||
@ -361,6 +364,13 @@ bool TScontrino_mask::ss_notify( TSheet_field& ss, int r, KEY key )
|
||||
const TString & codmag = sapp().codmag();
|
||||
const TString & codmagc = sapp().codmagc();
|
||||
|
||||
if (m._art_to_insert.full())
|
||||
{
|
||||
riga.put(RDOC_CODART, m._art_to_insert);
|
||||
riga.zero(RDOC_CHECKED);
|
||||
update = true;
|
||||
}
|
||||
|
||||
if (quant > 0)
|
||||
{
|
||||
riga.put(RDOC_QTA, quant);
|
||||
@ -463,7 +473,7 @@ void TScontrino_mask::on_idle()
|
||||
selected--;
|
||||
if (selected >= ss.items())
|
||||
selected = ss.items() -1 ;
|
||||
ss.select(selected);
|
||||
ss.post_select(selected);
|
||||
_row_to_remove = 0;
|
||||
}
|
||||
TDocumento_mask::on_idle();
|
||||
@ -506,10 +516,12 @@ TVariable_mask * TScontrino_mask::riga_mask(int numriga)
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( int pos = m->id2pos(FR_QTA) >= 0)
|
||||
if (m->id2pos(FR_QTA) >= 0)
|
||||
m->set_handler(FR_QTA, sqta_handler);
|
||||
if ( int pos = m->id2pos(FR_PREZZO) >= 0)
|
||||
if (m->id2pos(FR_PREZZO) >= 0)
|
||||
m->set_handler(FR_PREZZO, sprezzo_handler);
|
||||
if (m->id2pos(FR_RIDPREZZO) >= 0)
|
||||
m->set_handler(FR_RIDPREZZO, sriduzione_handler);
|
||||
}
|
||||
}
|
||||
return m;
|
||||
@ -529,6 +541,10 @@ bool TScontrino_mask::search_art_handler( TMask_field& f, KEY key )
|
||||
|
||||
bool TScontrino_mask::scodart_handler(TMask_field& f, KEY key )
|
||||
{
|
||||
TMask& row_mask = f.mask();
|
||||
bool barcode_var = false;
|
||||
real prezzo;
|
||||
|
||||
if (f.to_check(key))
|
||||
{
|
||||
const TString & val = f.get();
|
||||
@ -536,18 +552,52 @@ bool TScontrino_mask::scodart_handler(TMask_field& f, KEY key )
|
||||
|
||||
if (pos >= 0)
|
||||
{
|
||||
TMask& row_mask = f.mask();
|
||||
const TString80 qta = val.left(pos);
|
||||
const TString80 cod = val.mid(pos + 1);
|
||||
|
||||
row_mask.set(FR_CODART, cod, 0x3);
|
||||
row_mask.set(FR_QTA, qta, 0x3);
|
||||
return true;
|
||||
}
|
||||
|
||||
const TString & cod = row_mask.get(FR_CODART);
|
||||
const int codlen = cod.len();
|
||||
barcode_var = sapp().barcode_peso_variabile() && cod.starts_with("2") && codlen >= 12 && codlen <= 14; // Barcode a peso variabile formato : 2CCCCCCPPPPPX C = Codice, P=PREZZO*100, X=CIN
|
||||
|
||||
if (barcode_var)
|
||||
{
|
||||
const TString8 codvar(cod.mid(1,6));
|
||||
const long price = atol(cod.mid(7,5));
|
||||
|
||||
prezzo = real(price) / CENTO;
|
||||
row_mask.set(FR_CODART, codvar, 0x2);
|
||||
row_mask.reset(FR_CODARTMAG);
|
||||
row_mask.reset(FR_CHECKED);
|
||||
}
|
||||
}
|
||||
|
||||
const bool ok = ::codart_handler(f, key);
|
||||
|
||||
if (f.to_check(key))
|
||||
{
|
||||
if (barcode_var)
|
||||
{
|
||||
const real prezzo_orig = row_mask.get_real(FR_PREZZO);
|
||||
if (prezzo_orig != ZERO)
|
||||
{
|
||||
const real qta = prezzo / prezzo_orig;
|
||||
|
||||
|
||||
row_mask.set(FR_QTA, qta);
|
||||
}
|
||||
else
|
||||
{
|
||||
row_mask.set(FR_PREZZO, prezzo);
|
||||
row_mask.set(FR_QTA, UNO);
|
||||
}
|
||||
}
|
||||
if (row_mask.get(FR_CODARTMAG).blank() && yesno_box("Articolo % s assente devo inserirlo", (const char *) row_mask.get(FR_CODART)))
|
||||
f.on_key(K_F9);
|
||||
}
|
||||
if (ok && f.to_check(key, false))
|
||||
{
|
||||
TMask& row_mask = f.mask();
|
||||
@ -577,7 +627,7 @@ bool TScontrino_mask::sqta_handler(TMask_field& f, KEY key )
|
||||
mask.doc()[drow].autosave(s);
|
||||
mask.update_progs();
|
||||
}
|
||||
return ::qta_handler(f, key);
|
||||
return ::qtaart_handler(f, key);
|
||||
|
||||
}
|
||||
|
||||
@ -599,18 +649,65 @@ bool TScontrino_mask::sprezzo_handler(TMask_field& f, KEY key )
|
||||
|
||||
}
|
||||
|
||||
bool TScontrino_mask::sriduzione_handler(TMask_field& f, KEY key )
|
||||
{
|
||||
if (f.to_check(key, false))
|
||||
{
|
||||
TMask& row_mask = f.mask();
|
||||
TSheet_field& s = *row_mask.get_sheet();
|
||||
TDocumento_mask & mask = (TDocumento_mask &) s.mask();
|
||||
TDocumento & doc = mask.doc();
|
||||
const int srow = s.selected();
|
||||
const int drow = srow + 1;
|
||||
TRiga_documento & riga = doc[drow];
|
||||
real prezzo = riga.get(RDOC_PREZZOL);
|
||||
|
||||
prezzo += riga.get_real(RDOC_RIDPREZZO);
|
||||
prezzo -= row_mask.get_real(FR_RIDPREZZO);
|
||||
row_mask.set(FR_PREZZO, prezzo);
|
||||
s.update_row(srow);
|
||||
doc[drow].autosave(s);
|
||||
mask.update_progs();
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
bool TScontrino_mask::chiudi_handler( TMask_field& f, KEY key )
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
TChiusura_scontrino_mask & mask = sapp().chiusura();
|
||||
TTurno_vendita & turno = sapp().turno();
|
||||
TScontrino_mask & docmask = (TScontrino_mask &) f.mask();
|
||||
TDocumento & doc = docmask.doc();
|
||||
const int nrows = doc.physical_rows();
|
||||
bool zero_doc = true;
|
||||
int r;
|
||||
|
||||
for (r = nrows; zero_doc && r >= 1; r--)
|
||||
{
|
||||
const TRiga_documento & row = doc[r];
|
||||
|
||||
if (row.imponibile() != ZERO)
|
||||
zero_doc = false;
|
||||
}
|
||||
if (zero_doc)
|
||||
return false;
|
||||
for (r = nrows; r >= 1; r--)
|
||||
{
|
||||
const TRiga_documento & row = doc[r];
|
||||
bool valid_row = row.get(RDOC_CODART).full() || row.get(RDOC_DESCR).full() ||
|
||||
row.get_real(RDOC_QTA) != ZERO || row.get_real(RDOC_PREZZO) != ZERO;
|
||||
if (!valid_row)
|
||||
doc.destroy_row(r);
|
||||
}
|
||||
|
||||
TChiusura_scontrino_mask & mask = sapp().chiusura();
|
||||
TTurno_vendita & turno = sapp().turno();
|
||||
|
||||
mask.reset_mask(sapp().ncassa(), docmask.get_date(F_DATADOC), turno.cassa_attuale(), doc);
|
||||
mask.show(-2, sapp().curr_user().can_invoice());
|
||||
mask.show(-3, sapp().curr_user().can_invoice());
|
||||
mask.enable(DLG_OK, doc.totale_doc() == ZERO);
|
||||
if (mask.run() == K_ENTER)
|
||||
{
|
||||
do
|
||||
@ -768,7 +865,7 @@ bool TScontrino_mask::search_sospesi_handler(TMask_field& f, KEY key)
|
||||
TScontrino_mask & m = (TScontrino_mask &) f.mask();
|
||||
TRectype filtrec(LF_DOC);
|
||||
|
||||
filtrec.put(DOC_PROVV, m.get(F_PROVV));
|
||||
filtrec.put(DOC_PROVV, "P");
|
||||
filtrec.put(DOC_ANNO, m.get(F_ANNO));
|
||||
filtrec.put(DOC_CODNUM, m.get(F_CODNUM));
|
||||
|
||||
@ -777,7 +874,7 @@ bool TScontrino_mask::search_sospesi_handler(TMask_field& f, KEY key)
|
||||
rel.lfile().set_curr(new TDocumento);
|
||||
|
||||
TCursor cur(&rel, "", 1, &filtrec, &filtrec);
|
||||
TString80 filt; filt.format("(STATO<\"%c\")&&(TIPODOC==\"%s\")", m.doc().tipo().stato_chiuso(), (const char *) m.get(F_TIPODOC));
|
||||
TString80 filt; filt.format("(TIPODOC==\"%s\")", (const char *) m.get(F_TIPODOC));
|
||||
|
||||
cur.setfilter(filt);
|
||||
cur.set_filterfunction(sospesi_filter);
|
||||
@ -790,7 +887,7 @@ bool TScontrino_mask::search_sospesi_handler(TMask_field& f, KEY key)
|
||||
const TString16 ndoc = sheet.row(-1).get(2);
|
||||
TDate oggi(TODAY);
|
||||
|
||||
m.set(F_PROVV, "D");
|
||||
m.set(F_PROVV, "P");
|
||||
f.mask().set(F_ANNO, oggi.year());
|
||||
m.set(F_CODNUM, sapp().numdoc());
|
||||
m.set(F_NDOC, ndoc);
|
||||
@ -812,31 +909,10 @@ bool TScontrino_mask::tasti_veloci_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
TScontrino_mask & docmask = (TScontrino_mask &) f.mask();
|
||||
TSheet_field & sf = docmask.sfield(F_SHEET);
|
||||
int r = sf.items() == 0 ? 0 : sf.selected() + 1;
|
||||
// int r = sf.items() == 0 ? 0 : sf.selected() + 1;
|
||||
|
||||
if (docmask.ss_notify(sf, r, K_INS))
|
||||
{
|
||||
r = sf.insert(r, false, false);
|
||||
if (r >= 0)
|
||||
{
|
||||
docmask.ss_notify(sf, r, K_CTRL + K_INS);
|
||||
TToken_string & row = sf.row(r);
|
||||
TDocumento & doc = docmask.doc();
|
||||
TRiga_documento & rdoc = doc[r + 1];
|
||||
|
||||
rdoc.put(RDOC_CODART, cmd);
|
||||
rdoc.zero(RDOC_CHECKED);
|
||||
rdoc.autoload(sf);
|
||||
sf.check_row(r);
|
||||
rdoc.autosave(sf);
|
||||
sf.force_update();
|
||||
sf.select(r);
|
||||
sf.set_focus();
|
||||
sf.set_dirty();
|
||||
docmask.ss_notify(sf, r, K_ENTER);
|
||||
docmask.update_progs();
|
||||
}
|
||||
}
|
||||
docmask._art_to_insert = cmd;
|
||||
sf.insert(-1, true, true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -896,18 +972,25 @@ void TChiusura_scontrino_mask::init(TConfig & d)
|
||||
void TChiusura_scontrino_mask::update_doc(TScontrino_mask & m, const TTurno_vendita & t, bool chiudi)
|
||||
{
|
||||
TDocumento & doc = m.doc();
|
||||
const char stato = doc.tipo().stato_chiuso();
|
||||
const char stato = get_bool(F_ACCONTO) ? doc.tipo().stato_finale_inserimento() : doc.tipo().stato_chiuso();
|
||||
|
||||
doc.put(TRN_CODCASSA, t.ncassa());
|
||||
doc.put(TRN_PROGR, t.nturno());
|
||||
doc.put(TRN_USERNAME, t.user());
|
||||
doc.put("TEMPUSERNAME", t.superuser());
|
||||
TToken_string del(doc.get("DELETED_ROWS"), '£');
|
||||
|
||||
del.add(m.deleted_rows());
|
||||
doc.put("DELETED_ROWS", del);
|
||||
if (chiudi)
|
||||
{
|
||||
if (doc.get_char(DOC_PROVV) == 'P')
|
||||
{
|
||||
|
||||
TDocumento old(doc);
|
||||
|
||||
doc.put(DOC_PROVV, "D");
|
||||
doc.zero(DOC_NDOC);
|
||||
doc.renum();
|
||||
m.set(F_PROVV, "D");
|
||||
m.set(F_NDOC, doc.get(DOC_NDOC));
|
||||
|
||||
const int err = old.remove();
|
||||
if (err != NOERR)
|
||||
warning_box("Errore %d nell'eliminazione dello scontrino sospeso", err);
|
||||
}
|
||||
const long ora = daytime();
|
||||
|
||||
doc.stato(stato);
|
||||
@ -931,6 +1014,22 @@ void TChiusura_scontrino_mask::update_doc(TScontrino_mask & m, const TTurno_vend
|
||||
doc.put(DOC_CODCF, codcf);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
doc.put(DOC_PROVV, "P");
|
||||
doc.zero(DOC_NDOC);
|
||||
doc.renum();
|
||||
m.set(F_PROVV, "P");
|
||||
m.set(F_NDOC, doc.get(DOC_NDOC));
|
||||
}
|
||||
doc.put(TRN_CODCASSA, t.ncassa());
|
||||
doc.put(TRN_PROGR, t.nturno());
|
||||
doc.put(TRN_USERNAME, t.user());
|
||||
doc.put("TEMPUSERNAME", t.superuser());
|
||||
TToken_string del(doc.get("DELETED_ROWS"), '£');
|
||||
|
||||
del.add(m.deleted_rows());
|
||||
doc.put("DELETED_ROWS", del);
|
||||
}
|
||||
|
||||
real TChiusura_scontrino_mask::calcola_saldo()
|
||||
@ -952,6 +1051,11 @@ real TChiusura_scontrino_mask::calcola_resto()
|
||||
for (short id = F_INC01; id <= F_INC08; id++, i++)
|
||||
resto += get_real(id);
|
||||
enable(DLG_OK, resto >= ZERO);
|
||||
if (field(DLG_OK).enabled())
|
||||
{
|
||||
set(F_ACCONTO, "");
|
||||
disable(F_ACCONTO);
|
||||
}
|
||||
return resto > ZERO ? resto : ZERO;
|
||||
}
|
||||
|
||||
@ -994,7 +1098,7 @@ bool TChiusura_scontrino_mask::on_field_event(TOperable_field& o, TField_event e
|
||||
}
|
||||
break;
|
||||
case F_CODCFC:
|
||||
enable(DLG_OK, field(DLG_OK).enabled() || o.get().full());
|
||||
enable(DLG_OK, field(DLG_OK).enabled() || o.get().full() || get(F_ACCONTO).full());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -1013,7 +1117,7 @@ void TChiusura_scontrino_mask::reset_mask(int ncassa, const TDate & data, const
|
||||
if (aperto)
|
||||
set(F_CASSAINI, cassa_attuale);
|
||||
|
||||
enable(F_SALDO, aperto);
|
||||
// enable(F_SALDO, aperto);
|
||||
for (short i = F_INC01 ; i<= F_INC08; i++)
|
||||
if (field(i).shown())
|
||||
{
|
||||
@ -1029,6 +1133,7 @@ void TChiusura_scontrino_mask::reset_mask(int ncassa, const TDate & data, const
|
||||
|
||||
enable(-3, da_fatturare);
|
||||
disable(DLG_OK);
|
||||
enable(F_ACCONTO);
|
||||
}
|
||||
|
||||
TScontrino_application::~TScontrino_application()
|
||||
@ -1077,7 +1182,7 @@ bool TScontrino_application::user_create( )
|
||||
_tipodocf = d.get("TIPODOCF");
|
||||
_chk_doc = d.get_bool("CHECKDOC");
|
||||
_barcode_peso_var = d.get_bool("BARPVAR");
|
||||
_peso_var = d.get_bool("CODPVAR");
|
||||
// _peso_var = d.get_bool("CODPVAR");
|
||||
_qta_char = d.get_char("QTACHAR", NULL, -1, ')');
|
||||
|
||||
_chiusura->init(d);
|
||||
@ -1185,6 +1290,7 @@ void TScontrino_application::set_authorizations(TMask & m)
|
||||
const int items = sf.items();
|
||||
|
||||
sf.enable_column(FR_PREZZO, curr_user().can_change_price());
|
||||
sf.enable_column(FR_RIDPREZZO, curr_user().can_change_price());
|
||||
sf.enable_column(FR_SCONTO, curr_user().can_change_sconti());
|
||||
for (int i = 0; i < items; i++)
|
||||
sf.check_row(i);
|
||||
@ -1284,6 +1390,7 @@ void TScontrino_application::print_wincor()
|
||||
TScontrino_mask & m = (TScontrino_mask & ) edit_mask();
|
||||
TDocumento & doc = m.doc();
|
||||
const TString & cofi = doc.clifor().get(CLI_COFI);
|
||||
TCond_vendita cv(NULL, NULL);
|
||||
|
||||
if (cofi.full())
|
||||
{
|
||||
@ -1300,7 +1407,7 @@ void TScontrino_application::print_wincor()
|
||||
{
|
||||
const TRiga_documento& riga = doc[r];
|
||||
|
||||
if (riga.is_merce())
|
||||
if (riga.get(RDOC_DESCR).full() || riga.importo(true, true) != ZERO)
|
||||
{
|
||||
cmd = "[PLU,";
|
||||
tmp = riga.get(RDOC_DESCR);
|
||||
@ -1308,23 +1415,54 @@ void TScontrino_application::print_wincor()
|
||||
para = tmp;
|
||||
cmd << para.get(0);
|
||||
|
||||
real price = riga.get_real(RDOC_PREZZOL);
|
||||
tmp = price.string(text_len, 2); tmp.trim();
|
||||
if (tmp.ends_with(".00") && _doppio_zero)
|
||||
tmp.strip(".");
|
||||
cmd << ',' << tmp;
|
||||
if (riga.is_sconto())
|
||||
{
|
||||
cmd = "[SBT]";
|
||||
aga_dde_execute(conn, cmd);
|
||||
if (riga.is_sconto_perc())
|
||||
{
|
||||
cmd = "[SCP2,";
|
||||
cv.set_sconto(riga.get(RDOC_SCONTO));
|
||||
real perc = ((1 - cv.sconto_val()) * CENTO);
|
||||
tmp = perc.string(text_len, 2); tmp.trim();
|
||||
if (tmp.ends_with(".00") && _doppio_zero)
|
||||
tmp.strip(".");
|
||||
}
|
||||
else
|
||||
{
|
||||
real price = -riga.importo(true, true);
|
||||
|
||||
const TRectype & anamag = cache().get(LF_ANAMAG, riga.get(RDOC_CODARTMAG));
|
||||
int rep = riga.get_int(ANAMAG_REPARTO);
|
||||
cmd = "[SCV,";
|
||||
tmp = price.string(text_len, 2); tmp.trim();
|
||||
if (tmp.ends_with(".00") && _doppio_zero)
|
||||
tmp.strip(".");
|
||||
}
|
||||
cmd << tmp << ']';
|
||||
}
|
||||
else
|
||||
{
|
||||
real price = riga.prezzo(true, true);
|
||||
|
||||
tmp = price.string(text_len, 2); tmp.trim();
|
||||
if (tmp.ends_with(".00") && _doppio_zero)
|
||||
tmp.strip(".");
|
||||
cmd << ',' << tmp;
|
||||
|
||||
const TRectype & anamag = cache().get(LF_ANAMAG, riga.get(RDOC_CODARTMAG));
|
||||
int rep = riga.get_int(ANAMAG_REPARTO);
|
||||
|
||||
if (rep <= 0 || rep > 25)
|
||||
rep = 1;
|
||||
cmd << ',' << rep;
|
||||
if (rep <= 0 || rep > 25)
|
||||
rep = 1;
|
||||
cmd << ',' << rep;
|
||||
|
||||
real qta = riga.get(RDOC_QTA);
|
||||
real qta = riga.get(RDOC_QTA);
|
||||
|
||||
tmp = qta.string(10, 5); tmp.trim();
|
||||
cmd << ',' << tmp << ']';
|
||||
if (riga.is_spese() && riga.spesa().tipo() == 'V')
|
||||
qta = UNO;
|
||||
|
||||
tmp = qta.string(10, 5); tmp.trim();
|
||||
cmd << ',' << tmp << ']';
|
||||
}
|
||||
|
||||
aga_dde_execute(conn, cmd);
|
||||
}
|
||||
@ -1404,7 +1542,7 @@ void TScontrino_application::print_multiprinter_nettuna()
|
||||
{
|
||||
const TRiga_documento& riga = doc[r];
|
||||
|
||||
if (riga.is_merce())
|
||||
if (riga.get(RDOC_CODART).full() || riga.importo(true, true) != ZERO)
|
||||
{
|
||||
real qta = riga.get(RDOC_QTA);
|
||||
const bool storno = qta < ZERO;
|
||||
@ -1412,7 +1550,8 @@ void TScontrino_application::print_multiprinter_nettuna()
|
||||
para = riga.get(RDOC_DESCR);
|
||||
cmd << para.get(0) << ";";
|
||||
|
||||
real price = riga.get_real(RDOC_PREZZOL);
|
||||
real price = riga.prezzo(true, true);
|
||||
|
||||
tmp = price.stringa(18, 2); tmp.trim();
|
||||
cmd << tmp << ";";
|
||||
qta = abs(qta);
|
||||
@ -1435,8 +1574,8 @@ void TScontrino_application::print_multiprinter_nettuna()
|
||||
if (riga.is_sconto_perc())
|
||||
{
|
||||
cv.set_sconto(riga.get(RDOC_SCONTO));
|
||||
val = cv.sconto_val() * CENTO;
|
||||
magg = val < ZERO;
|
||||
val = ((1 - cv.sconto_val()) * CENTO);
|
||||
magg = val > ZERO;
|
||||
val = abs(val);
|
||||
cmd = magg ? "MAG%" : "SCO%";
|
||||
}
|
||||
|
@ -17,6 +17,7 @@
|
||||
#define F_CODCFC 122
|
||||
#define F_RAGSOCC 123
|
||||
#define F_DAFATT 124
|
||||
#define F_ACCONTO 125
|
||||
#define F_CODSEARCH 205
|
||||
|
||||
#define DLG_FATT 200
|
||||
|
@ -95,6 +95,14 @@ BEGIN
|
||||
GROUP 3
|
||||
END
|
||||
|
||||
BOOEAN F_ACCONTO
|
||||
BEGIN
|
||||
PROMPT 46 15 "Acconto"
|
||||
MESSAGE TRUE DISABLE,DLG_OK
|
||||
MESSAGE TRUE ENABLE,DLG_OK
|
||||
GROUP 3
|
||||
END
|
||||
|
||||
LIST F_TIPOCFC 1 11
|
||||
BEGIN
|
||||
PROMPT 2 17 "Tipo "
|
||||
|
@ -5,7 +5,7 @@
|
||||
#define FD_CODLIST 106
|
||||
#define FD_CHECKDOC 107
|
||||
#define FD_BARPVAR 108
|
||||
#define FD_CODPVAR 109
|
||||
// #define FD_CODPVAR 109
|
||||
#define FD_QTACHAR 110
|
||||
|
||||
#define ROW_INC 10
|
||||
|
96
vd/vdlib.cpp
96
vd/vdlib.cpp
@ -206,12 +206,31 @@ void TTurno_vendita::leggi(long progr)
|
||||
}
|
||||
if (r.items() > 0L)
|
||||
{
|
||||
const TString & real_user = ::user();
|
||||
r.move_last();
|
||||
if (progr < 0L)
|
||||
{
|
||||
bool found = false;
|
||||
while (!found)
|
||||
{
|
||||
_rec = r.cursor()->curr();
|
||||
const TString & u = _rec.get(TRN_USERNAME);
|
||||
|
||||
found = real_user == u;
|
||||
if (!r.move_prev())
|
||||
break;
|
||||
}
|
||||
if (!found)
|
||||
r.move_last();
|
||||
}
|
||||
_rec = r.cursor()->curr();
|
||||
const long fine = _rec.get_long(TRN_FINE);
|
||||
|
||||
progr = _rec.get_long(TRN_PROGR);
|
||||
aperto = fine == 0L;
|
||||
const TString & u = _rec.get(TRN_USERNAME);
|
||||
if (u == real_user)
|
||||
aperto = fine == 0L;
|
||||
|
||||
}
|
||||
if (!aperto)
|
||||
{
|
||||
@ -223,11 +242,6 @@ void TTurno_vendita::leggi(long progr)
|
||||
_rec.put(TRN_ANNO, _anno);
|
||||
_rec.put(TRN_PROGR, progr);
|
||||
}
|
||||
else
|
||||
{
|
||||
_datafine = TDate(TODAY);
|
||||
_orafine = 0L;
|
||||
}
|
||||
}
|
||||
|
||||
const long TTurno_vendita::ora_inizio() const
|
||||
@ -238,45 +252,45 @@ const long TTurno_vendita::ora_inizio() const
|
||||
bool TTurno_vendita::apri(const bool select_prev)
|
||||
{
|
||||
leggi();
|
||||
if (aperto())
|
||||
return error_box(FR("Turno aperto dall'Utente %s"), (const char *) _rec.get(TRN_USERNAME));
|
||||
|
||||
TApri_mask m(*this);
|
||||
TDocumento d('D', _anno, _codnum, 0L);
|
||||
const long fndoc = d.renum_ndoc();
|
||||
const long ora = daytime();
|
||||
|
||||
m.show(F_TURNO, select_prev);
|
||||
m.set(F_CASSA, _cassa);
|
||||
m.set(F_USERNAME, user());
|
||||
m.set(F_HINIZIO, ora / 10000);
|
||||
m.set(F_MINIZIO, (ora / 100) % 100);
|
||||
m.set(F_SINIZIO, ora % 100);
|
||||
if (m.run() == K_ENTER)
|
||||
if (!aperto())
|
||||
{
|
||||
const long idturno = m.get_long(F_TURNO);
|
||||
TApri_mask m(*this);
|
||||
TDocumento d('D', _anno, _codnum, 0L);
|
||||
const long fndoc = d.renum_ndoc();
|
||||
const long ora = daytime();
|
||||
|
||||
if (idturno > 0L)
|
||||
m.show(F_TURNO, select_prev);
|
||||
m.set(F_CASSA, _cassa);
|
||||
m.set(F_USERNAME, ::user());
|
||||
m.set(F_HINIZIO, ora / 10000);
|
||||
m.set(F_MINIZIO, (ora / 100) % 100);
|
||||
m.set(F_SINIZIO, ora % 100);
|
||||
if (m.run() == K_ENTER)
|
||||
{
|
||||
leggi(idturno);
|
||||
riapri();
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
const real cassa_ini = m.get_real(F_CASSAINI);
|
||||
const long ora_inizio = m.get_int(F_HINIZIO) * 10000 + m.get_int(F_MINIZIO) * 100 + m.get_int(F_SINIZIO);
|
||||
TLocalisamfile f(LF_TURNI);
|
||||
const long idturno = m.get_long(F_TURNO);
|
||||
|
||||
if (idturno > 0L)
|
||||
{
|
||||
leggi(idturno);
|
||||
riapri();
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
const real cassa_ini = m.get_real(F_CASSAINI);
|
||||
const long ora_inizio = m.get_int(F_HINIZIO) * 10000 + m.get_int(F_MINIZIO) * 100 + m.get_int(F_SINIZIO);
|
||||
TLocalisamfile f(LF_TURNI);
|
||||
|
||||
_rec.put(TRN_USERNAME, m.get(F_USERNAME));
|
||||
_rec.put(TRN_CASSAINI, cassa_ini);
|
||||
_rec.put(TRN_CASSAFIN, cassa_ini);
|
||||
_rec.put(TRN_DATA, m.get_date(F_DATA));
|
||||
_rec.put(TRN_INIZIO, ora_inizio);
|
||||
_rec.put(TRN_FNDOC, fndoc);
|
||||
_err = _rec.write(f);
|
||||
_rec.put(TRN_USERNAME, m.get(F_USERNAME));
|
||||
_rec.put(TRN_CASSAINI, cassa_ini);
|
||||
_rec.put(TRN_CASSAFIN, cassa_ini);
|
||||
_rec.put(TRN_DATA, m.get_date(F_DATA));
|
||||
_rec.put(TRN_INIZIO, ora_inizio);
|
||||
_rec.put(TRN_FNDOC, fndoc);
|
||||
_err = _rec.write(f);
|
||||
}
|
||||
return _err == NOERR;
|
||||
}
|
||||
return _err == NOERR;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -292,7 +306,7 @@ bool TTurno_vendita::riapri()
|
||||
bool TTurno_vendita::chiudi()
|
||||
{
|
||||
if (!riaperto())
|
||||
leggi();
|
||||
leggi(-1);
|
||||
if (chiuso())
|
||||
return error_box(FR("Turno chiuso"));
|
||||
|
||||
|
@ -53,7 +53,7 @@ public:
|
||||
// @ cmember report
|
||||
TReport & report() {return _rep;}
|
||||
// @ cmember apri il turno
|
||||
bool apri(const bool select_prev = true);
|
||||
bool apri(const bool select_prev = false);
|
||||
// @ cmember riapri il turno
|
||||
bool riapri();
|
||||
// @ cmember chiudi il turno
|
||||
|
@ -54,7 +54,7 @@ END
|
||||
NUMBER F_HFINE 2
|
||||
BEGIN
|
||||
PROMPT 2 5 "Ora "
|
||||
FLAGS "ZDU"
|
||||
FLAGS "ZU"
|
||||
NUM_EXPR #F_HFINE<24
|
||||
GROUP 1
|
||||
END
|
||||
@ -62,7 +62,7 @@ END
|
||||
NUMBER F_MFINE 2
|
||||
BEGIN
|
||||
PROMPT 26 5 ":"
|
||||
FLAGS "ZDU"
|
||||
FLAGS "ZU"
|
||||
NUM_EXPR #F_MFINE<60
|
||||
GROUP 1
|
||||
END
|
||||
@ -70,7 +70,7 @@ END
|
||||
NUMBER F_SFINE 2
|
||||
BEGIN
|
||||
PROMPT 30 5 ":"
|
||||
FLAGS "ZDU"
|
||||
FLAGS "ZU"
|
||||
NUM_EXPR #F_SFINE<60
|
||||
GROUP 1
|
||||
END
|
||||
|
@ -11,7 +11,8 @@ Fields=B0,1|B1,1|B2,1|B3,1|B4,1|B5,1|B6,1|B7,1|B8,1|B9,1
|
||||
Fields=B10,1|B11,1|B12,1|B13,1|B14,1|B15,1|FPC,1
|
||||
|
||||
[Data]
|
||||
FRD|VDIMPLOR|Importo lordo vendita al dettaglio|SOMMA("IMPONIBILE()","(TIPO()=='M'&&(QTA>0))")|||||||||||18||||||||||||||||||||||||||||||||||||||||||||||X|X|||||||||||||||
|
||||
FRD|VDQTALOR|Quantita' lorda vendita al dettaglio|SOMMA("QTA","(TIPO()=='M'&&(QTA>0))")|||||||||||18||||||||||||||||||||||||||||||||||||||||||||||X| |||||||||||||||
|
||||
FRD|VDIMPRES|Importo reso vendita al dettaglio|SOMMA("IMPONIBILE()","(TIPO()=='M'&&(QTA<0))")|||||||||||18||||||||||||||||||||||||||||||||||||||||||||||X|X|||||||||||||||
|
||||
FRD|VDQTARES|Quantita' resa vendita al dettaglio|SOMMA("-QTA","(TIPO()=='M'&&(QTA<0))")|||||||||||18||||||||||||||||||||||||||||||||||||||||||||||X| |||||||||||||||
|
||||
TRI|16|Merce al dettaglio|||||||M||||||||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | |||||||
|
||||
TRI|17|Spese a valore al dettaglio|||||||S||||||||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | |||||||
|
||||
TRI|18|Spese a quantita' e prezzo al dettaglio|||||||S||||||||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | |||||||
|
||||
TRI|19|Spese in percentuale al dettaglio|||||||S||||||||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | |||||||
|
||||
TRI|20|Prestazioni al dettaglio|||||||P||||||||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | |||||||
|
||||
|
9
vd/verig16.ini
Executable file
9
vd/verig16.ini
Executable file
@ -0,0 +1,9 @@
|
||||
#Profilo di riga tipo merce
|
||||
[MAIN]
|
||||
CALCOLI=*
|
||||
CAMPICALC=
|
||||
IMPONIBILE=IMPNS
|
||||
|
||||
[HANDLERS]
|
||||
NHANDLER = 0
|
||||
|
48
vd/verig16.uml
Executable file
48
vd/verig16.uml
Executable file
@ -0,0 +1,48 @@
|
||||
#include "..\ve\verigdef.h"
|
||||
|
||||
#define FULL_SCREEN
|
||||
// else
|
||||
// #define MASK_WIDTH 60
|
||||
// #define MASK_HEIGHT 14
|
||||
//
|
||||
#define MASK_TITLE1 "Merce"
|
||||
#define PAGE_2
|
||||
|
||||
DEFINE_FIELD(CODMAG)
|
||||
DEFINE_FIELD(DESMAG)
|
||||
DEFINE_FIELD(CODDEP)
|
||||
DEFINE_FIELD(DESDEP)
|
||||
DEFINE_FIELD(CODART)
|
||||
DEFINE_FIELD(DESCRART)
|
||||
DEFINE_FIELD(UMQTA)
|
||||
DEFINE_FIELD(QTA)
|
||||
DEFINE_FIELD(PREZZO)
|
||||
DEFINE_FIELD(QTAEVASA)
|
||||
DEFINE_FIELD(RIGAEVASA)
|
||||
DEFINE_FIELD(DATACONS)
|
||||
F_POS(PREZZO, 42, 9,"Prezzo " )
|
||||
DEFINE_FIELD(SCONTO)
|
||||
F_POS(SCONTO, 2, 11,"Sconto " )
|
||||
DEFINE_FIELD(PERCPROV)
|
||||
F_POS(PERCPROV, 42, 11,"Provvigione" )
|
||||
DEFINE_FIELD(CODIVA)
|
||||
F_POS(CODIVA, 2, 13,"Cod. IVA " )
|
||||
DEFINE_FIELD(DESIVA)
|
||||
F_POS(DESIVA, 22, 13,"" )
|
||||
DEFINE_FIELD(CAUS)
|
||||
DEFINE_FIELD(NCOLLI)
|
||||
DEFINE_FIELD(PNETTO)
|
||||
DEFINE_FIELD(TARA)
|
||||
DEFINE_FIELD(DESCRCAUS)
|
||||
DEFINE_FIELD(CODMAGC)
|
||||
DEFINE_FIELD(DESMAGC)
|
||||
DEFINE_FIELD(CODDEPC)
|
||||
DEFINE_FIELD(DESDEPC)
|
||||
DEFINE_FIELD(IMPIANTO)
|
||||
DEFINE_FIELD(LINEA)
|
||||
DEFINE_FIELD(CODCMS)
|
||||
DEFINE_FIELD(RIDPREZZO)
|
||||
|
||||
|
||||
#include "..\ve\verig.uml"
|
||||
|
9
vd/verig17.ini
Executable file
9
vd/verig17.ini
Executable file
@ -0,0 +1,9 @@
|
||||
#Profilo di riga tipo spese trasporto
|
||||
[MAIN]
|
||||
CALCOLI=*
|
||||
CAMPICALC=
|
||||
IMPONIBILE=IMPNS
|
||||
|
||||
[HANDLERS]
|
||||
NHANDLER = 0
|
||||
|
27
vd/verig17.uml
Executable file
27
vd/verig17.uml
Executable file
@ -0,0 +1,27 @@
|
||||
#include "..\ve\verigdef.h"
|
||||
|
||||
#define FULL_SCREEN
|
||||
|
||||
#define MASK_TITLE1 "Spese di tipo (Valore)"
|
||||
#define PAGE_2
|
||||
|
||||
|
||||
DEFINE_FIELD(CODSPV)
|
||||
DEFINE_FIELD(DESCRSPV)
|
||||
DEFINE_FIELD(UMQTASP)
|
||||
DEFINE_FIELD(VALORE)
|
||||
DEFINE_FIELD(QTA)
|
||||
DEFINE_FIELD(SCONTO)
|
||||
F_POS(SCONTO, 2, 11,"Sconto " )
|
||||
DEFINE_FIELD(CODIVA)
|
||||
F_POS(CODIVA, 2, 13,"Cod. IVA " )
|
||||
DEFINE_FIELD(DESIVA)
|
||||
F_POS(DESIVA, 22, 13,"" )
|
||||
DEFINE_FIELD(CODCMS)
|
||||
DEFINE_FIELD(RIDPREZZO)
|
||||
F_FLG(QTAGG1, "")
|
||||
|
||||
|
||||
|
||||
#include "..\ve\verig.uml"
|
||||
|
9
vd/verig18.ini
Executable file
9
vd/verig18.ini
Executable file
@ -0,0 +1,9 @@
|
||||
#Profilo di riga tipo spese imballo
|
||||
[MAIN]
|
||||
CALCOLI=*
|
||||
CAMPICALC=
|
||||
IMPONIBILE=IMPNS
|
||||
|
||||
[HANDLERS]
|
||||
NHANDLER = 0
|
||||
|
23
vd/verig18.uml
Executable file
23
vd/verig18.uml
Executable file
@ -0,0 +1,23 @@
|
||||
#include "..\ve\verigdef.h"
|
||||
|
||||
#define FULL_SCREEN
|
||||
|
||||
#define MASK_TITLE1 "Spese di tipo (Quantita'/Prezzo)"
|
||||
#define PAGE_2
|
||||
|
||||
DEFINE_FIELD(CODSPQ)
|
||||
DEFINE_FIELD(DESCRSPQ)
|
||||
DEFINE_FIELD(UMQTASP)
|
||||
DEFINE_FIELD(QTA)
|
||||
DEFINE_FIELD(PREZZO)
|
||||
DEFINE_FIELD(SCONTO)
|
||||
F_POS(SCONTO, 2, 11,"Sconto " )
|
||||
DEFINE_FIELD(CODIVA)
|
||||
F_POS(CODIVA, 2, 13,"Cod. IVA " )
|
||||
DEFINE_FIELD(DESIVA)
|
||||
F_POS(DESIVA, 22, 13,"" )
|
||||
DEFINE_FIELD(CODCMS)
|
||||
DEFINE_FIELD(RIDPREZZO)
|
||||
|
||||
#include "..\ve\verig.uml"
|
||||
|
9
vd/verig19.ini
Executable file
9
vd/verig19.ini
Executable file
@ -0,0 +1,9 @@
|
||||
#Profilo di riga tipo spese generali in percentuale
|
||||
[MAIN]
|
||||
CALCOLI=*
|
||||
CAMPICALC=
|
||||
IMPONIBILE=IMPNN
|
||||
|
||||
[HANDLERS]
|
||||
NHANDLER = 0
|
||||
|
21
vd/verig19.uml
Executable file
21
vd/verig19.uml
Executable file
@ -0,0 +1,21 @@
|
||||
#include "..\ve\verigdef.h"
|
||||
|
||||
#define FULL_SCREEN
|
||||
|
||||
#define MASK_TITLE1 "Spese di tipo (Percentuale)"
|
||||
|
||||
DEFINE_FIELD(CODSPP)
|
||||
DEFINE_FIELD(DESCRSPP)
|
||||
DEFINE_FIELD(PERCSP)
|
||||
DEFINE_FIELD(CODIVA)
|
||||
F_POS(CODIVA, 2, 11,"Cod. IVA " )
|
||||
DEFINE_FIELD(DESIVA)
|
||||
F_POS(DESIVA, 22, 11,"" )
|
||||
DEFINE_FIELD(CODCMS)
|
||||
DEFINE_FIELD(RIDPREZZO)
|
||||
|
||||
|
||||
#define PAGE_2
|
||||
|
||||
#include "..\ve\verig.uml"
|
||||
|
9
vd/verig20.ini
Executable file
9
vd/verig20.ini
Executable file
@ -0,0 +1,9 @@
|
||||
#Profilo di riga tipo prestazioni
|
||||
[MAIN]
|
||||
CALCOLI=*
|
||||
CAMPICALC=
|
||||
IMPONIBILE=IMPNS
|
||||
|
||||
[HANDLERS]
|
||||
NHANDLER = 0
|
||||
|
27
vd/verig20.uml
Executable file
27
vd/verig20.uml
Executable file
@ -0,0 +1,27 @@
|
||||
#include "..\ve\verigdef.h"
|
||||
|
||||
#define FULL_SCREEN
|
||||
|
||||
#define MASK_TITLE1 "Prestazioni"
|
||||
#define PAGE_2
|
||||
|
||||
DEFINE_FIELD(CODPRS)
|
||||
DEFINE_FIELD(DESCRPRS)
|
||||
DEFINE_FIELD(UMQTASP)
|
||||
DEFINE_FIELD(QTA)
|
||||
DEFINE_FIELD(PREZZO)
|
||||
DEFINE_FIELD(QTAEVASA)
|
||||
DEFINE_FIELD(RIGAEVASA)
|
||||
DEFINE_FIELD(DATACONS)
|
||||
DEFINE_FIELD(SCONTO)
|
||||
F_POS(SCONTO, 2, 11,"Sconto " )
|
||||
DEFINE_FIELD(CODIVA)
|
||||
F_POS(CODIVA, 2, 13,"Cod. IVA " )
|
||||
DEFINE_FIELD(DESIVA)
|
||||
F_POS(DESIVA, 22, 13,"" )
|
||||
DEFINE_FIELD(CODCMS)
|
||||
DEFINE_FIELD(RIDPREZZO)
|
||||
|
||||
|
||||
#include "..\ve\verig.uml"
|
||||
|
Loading…
x
Reference in New Issue
Block a user