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:
alex 2008-11-14 00:01:46 +00:00
parent 8ff4fb139e
commit 5cb56fdb07
22 changed files with 647 additions and 198 deletions

View File

@ -131,17 +131,30 @@ Col(5) = 110
Col(6) = 111 Col(6) = 111
Col(7) = 112 Col(7) = 112
Col(8) = 113 Col(8) = 113
Col(9) = 120 Col(9) = 154
Col(10) = 121 Col(10) = 120
Col(11) = 124 Col(11) = 121
Col(12) = 103 Col(12) = 124
Col(13) = 104 Col(13) = 103
Col(14) = 127 Col(14) = 104
Col(15) = 128 Col(15) = 127
Col(16) = 129 Col(16) = 128
Col(17) = 102 Col(17) = 129
Col(18) = 101 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] [PROFILOGRUPPO]
101 = 0 101 = 0
100 = 3 100 = 3

View File

@ -1,89 +1,89 @@
TO "" 0 0 0 2 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 BU 17 10
BE BE
PR -13 -1 "~Elimina" PR -79 -1 "~Elimina"
ME EXIT,127 ME EXIT,127
PI 104 PI 104
PI 154 PI 154
EN EN
BU 2 10 2 BU 2 10 2
BE BE
PR -23 -1 "~Annulla" PR -89 -1 "~Annulla"
ME EXIT,27 ME EXIT,27
PI 102 PI 102
EN EN
BU 9 10 2 BU 9 10 2
BE BE
PR -33 -1 "~Fine" PR -99 -1 "~Fine"
ME EXIT,20334 ME EXIT,20334
PI 114 PI 114
PI 164 PI 164
EN EN
EN EN
TO "" 0 -4 0 4 TO "" 0 -2 0 2
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
BU 411 10 2 BU 411 10 2
BE BE
PR -29 -1 "Funz.1" PR -18 -1 "Funz.1"
EN EN
BU 412 10 2 BU 412 10 2
BE BE
PR -39 -1 "Funz.2" PR -28 -1 "Funz.2"
EN EN
BU 413 10 2 BU 413 10 2
BE BE
PR -49 -1 "Funz.3" PR -38 -1 "Funz.3"
EN EN
BU 414 10 2 BU 414 10 2
BE BE
PR -59 -1 "Funz.4" PR -48 -1 "Funz.4"
EN EN
BU 415 10 2 BU 415 10 2
BE BE
PR -69 -1 "Funz.5" PR -58 -1 "Funz.5"
EN EN
BU 416 10 2 BU 416 10 2
BE BE
PR -79 -1 "Funz.6" PR -68 -1 "Funz.6"
EN EN
BU 417 10 2 BU 417 10 2
BE BE
PR -89 -1 "Funz.7" PR -78 -1 "Funz.7"
EN EN
BU 418 10 2 BU 418 10 2
BE BE
PR -99 -1 "Funz.8" PR -88 -1 "Funz.8"
EN EN
EN EN
PA "Scontrino" -1 -1 0 0 PA "Scontrino" -1 -1 0 0
@ -160,7 +160,7 @@ LI 175 30
BE BE
PR 2 2 "Tipo riga da aggiungere " PR 2 2 "Tipo riga da aggiungere "
EN EN
SPREADSHEET 500 0 -2 SPREADSHEET 500 0 -4
BE BE
PR 2 3 "" PR 2 3 ""
IT "Lordo@5" IT "Lordo@5"
@ -204,22 +204,48 @@ IT "Impianto@8"
IT "Linea@5" IT "Linea@5"
IT "Codice\ncommessa@20" IT "Codice\ncommessa@20"
IT "Fase\ncommessa@10" 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 EN
CU 708 15 ST 205 20
BE BE
PR 2 -1 "Imponibile " PR 1 -3 "Articolo "
FI IMPONIBILI US 47 KE 1
FL "D" 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 EN
CU 709 15 NU 185 15
BE BE
PR 30 -1 "Imposta " PR 1 -2 "Giacenza "
FI IMPOSTE
FL "D" FL "D"
PI ".5"
EN
NU 186 15
BE
PR 1 -1 "Disponibilita' "
FL "D"
PI ".5"
EN EN
CU 610 15 CU 610 15
BE BE
PR 55 -1 "Totale " PR 41 -3 "@g@bTotale "
FI TOTDOC FI TOTDOC
FL "D" FL "D"
EN EN
@ -291,7 +317,7 @@ FL "D"
EN EN
ST 105 20 ST 105 20
BE BE
PR 2 6 "Articolo " PR 2 5 "Articolo "
US 47 KE 1 US 47 KE 1
IN CODART 105 IN CODART 105
DI "Codice@20" CODART DI "Codice@20" CODART
@ -314,71 +340,71 @@ PR 51 50 ""
FI CHECKED FI CHECKED
FL "D" FL "D"
EN EN
ST 106 10 ST 106 15
BE BE
PR 37 6 "" PR 37 5 ""
FL "U" FL "U"
US GCG US GCG
JO FCG AL 500 INTO CODTAB==CODTAB[1,1] JO FCG AL 500 INTO CODTAB==CODTAB[1,1]
IN CODTAB[1,1] "1" IN CODTAB[1,1] "1"
IN CODTAB[2,] 106 IN CODTAB[2,] 106
DI "Livello@20" 500@->S0 DI "Livello@20" 500@->S0
DI "Gruppo@10" CODTAB[2,] DI "Gruppo@15" CODTAB[2,]
DI "Descrizione@30" S0 DI "Descrizione@30" S0
OU 106 CODTAB[2,] OU 106 CODTAB[2,]
ME 0 RESET,107|RESET,108|RESET,109 ME 0 RESET,107|RESET,108|RESET,109
ME ENABLE,107 ME ENABLE,107
CH NORMAL CH NORMAL
EN EN
ST 107 6 ST 107 15
BE BE
PR 50 6 "" PR 55 5 ""
FL "U" FL "U"
US GCG US GCG
JO FCG AL 500 INTO CODTAB==CODTAB[1,1] JO FCG AL 500 INTO CODTAB==CODTAB[1,1]
IN CODTAB[1,1] "2" IN CODTAB[1,1] "2"
IN CODTAB[2,] 107 IN CODTAB[2,] 107
DI "Livello@20" 500@->S0 DI "Livello@20" 500@->S0
DI "Gruppo@10" CODTAB[2,] DI "Gruppo@15" CODTAB[2,]
DI "Descrizione@30" S0 DI "Descrizione@30" S0
OU 107 CODTAB[2,] OU 107 CODTAB[2,]
ME 0 RESET,108|RESET,109 ME 0 RESET,108|RESET,109
ME ENABLE,108 ME ENABLE,108
CH NORMAL CH NORMAL
EN EN
ST 108 6 ST 108 15
BE BE
PR 59 6 "" PR 37 6 ""
FL "U" FL "U"
US GCG US GCG
JO FCG AL 500 INTO CODTAB==CODTAB[1,1] JO FCG AL 500 INTO CODTAB==CODTAB[1,1]
IN CODTAB[1,1] "3" IN CODTAB[1,1] "3"
IN CODTAB[2,] 108 IN CODTAB[2,] 108
DI "Livello@20" 500@->S0 DI "Livello@20" 500@->S0
DI "Gruppo@10" CODTAB[2,] DI "Gruppo@15" CODTAB[2,]
DI "Descrizione@30" S0 DI "Descrizione@30" S0
OU 108 CODTAB[2,] OU 108 CODTAB[2,]
ME 0 RESET,109 ME 0 RESET,109
ME ENABLE,109 ME ENABLE,109
CH NORMAL CH NORMAL
EN EN
ST 109 6 ST 109 15
BE BE
PR 67 6 "" PR 55 6 ""
FL "U" FL "U"
US GCG US GCG
JO FCG AL 500 INTO CODTAB==CODTAB[1,1] JO FCG AL 500 INTO CODTAB==CODTAB[1,1]
IN CODTAB[1,1] "4" IN CODTAB[1,1] "4"
IN CODTAB[2,] 109 IN CODTAB[2,] 109
DI "Livello@20" 500@->S0 DI "Livello@20" 500@->S0
DI "Gruppo@10" CODTAB[2,] DI "Gruppo@15" CODTAB[2,]
DI "Descrizione@30" S0 DI "Descrizione@30" S0
OU 109 CODTAB[2,] OU 109 CODTAB[2,]
CH NORMAL CH NORMAL
EN EN
ST 262 8 ST 262 8
BE BE
PR 2 6 "Codice " PR 2 5 "Codice "
FL "U" FL "U"
US 55 US 55
IN CODICE 262 IN CODICE 262
@ -740,6 +766,62 @@ DI "Codice Fase@10" CODTAB
CO OU 141 CO OU 141
CH NORMAL CH NORMAL
EN 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 BU 1 10 2
BE BE
PR -14 -1 "" PR -14 -1 ""

View File

@ -177,15 +177,15 @@ BEGIN
FIELD BARPVAR FIELD BARPVAR
END END
BOOLEAN FD_CODPVAR /*BOOLEAN FD_CODPVAR
BEGIN BEGIN
PROMPT 2 16 "Gestione codici a peso variabile" PROMPT 2 16 "Gestione codici a peso variabile"
FIELD CODPVAR FIELD CODPVAR
END END */
STRING FD_QTACHAR 1 STRING FD_QTACHAR 1
BEGIN BEGIN
PROMPT 2 18 "Carattere sep.qta " PROMPT 2 16 "Carattere sep.qta "
FIELD QTACHAR FIELD QTACHAR
END END

View File

@ -30,7 +30,7 @@ void TApertura_turno_app::main_loop()
{ {
TTurno_vendita t; TTurno_vendita t;
t.apri(false); t.apri(true);
} }
int vd0500(int argc, char* argv[]) int vd0500(int argc, char* argv[])

View File

@ -126,7 +126,7 @@ class TScontrino_application : public TMotore_application
char _print_type; char _print_type;
bool _chk_doc; bool _chk_doc;
bool _barcode_peso_var; bool _barcode_peso_var;
bool _peso_var; // bool _peso_var;
char _qta_char; char _qta_char;
int _npag; int _npag;
int _ncassa; int _ncassa;
@ -170,6 +170,7 @@ public:
const TString & codmag() const { return _codmag;} const TString & codmag() const { return _codmag;}
const TString & codmagc() const { return _codmagc;} const TString & codmagc() const { return _codmagc;}
const TString & negozio() const { return _negozio;} 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_cmds() const {return _tv_cmds;}
const TString_array & tv_labels() const {return _tv_labels;} const TString_array & tv_labels() const {return _tv_labels;}
const TOperatore & curr_user() const { return _responsabile != NULL ? *_responsabile : *_cassiere;} const TOperatore & curr_user() const { return _responsabile != NULL ? *_responsabile : *_cassiere;}
@ -189,11 +190,13 @@ class TScontrino_mask : public TDocumento_mask
{ {
int _row_to_remove; int _row_to_remove;
TToken_string _deleted_rows; TToken_string _deleted_rows;
TString80 _art_to_insert;
protected: protected:
static bool scodart_handler( TMask_field& f, KEY key ); static bool scodart_handler( TMask_field& f, KEY key );
static bool sqta_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 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 turno_handler( TMask_field& f, KEY key );
static bool chiudi_handler( TMask_field& f, KEY key ); static bool chiudi_handler( TMask_field& f, KEY key );
static bool sospendi_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 & codmag = sapp().codmag();
const TString & codmagc = sapp().codmagc(); 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) if (quant > 0)
{ {
riga.put(RDOC_QTA, quant); riga.put(RDOC_QTA, quant);
@ -463,7 +473,7 @@ void TScontrino_mask::on_idle()
selected--; selected--;
if (selected >= ss.items()) if (selected >= ss.items())
selected = ss.items() -1 ; selected = ss.items() -1 ;
ss.select(selected); ss.post_select(selected);
_row_to_remove = 0; _row_to_remove = 0;
} }
TDocumento_mask::on_idle(); 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); 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); m->set_handler(FR_PREZZO, sprezzo_handler);
if (m->id2pos(FR_RIDPREZZO) >= 0)
m->set_handler(FR_RIDPREZZO, sriduzione_handler);
} }
} }
return m; 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 ) 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)) if (f.to_check(key))
{ {
const TString & val = f.get(); const TString & val = f.get();
@ -536,18 +552,52 @@ bool TScontrino_mask::scodart_handler(TMask_field& f, KEY key )
if (pos >= 0) if (pos >= 0)
{ {
TMask& row_mask = f.mask();
const TString80 qta = val.left(pos); const TString80 qta = val.left(pos);
const TString80 cod = val.mid(pos + 1); const TString80 cod = val.mid(pos + 1);
row_mask.set(FR_CODART, cod, 0x3); row_mask.set(FR_CODART, cod, 0x3);
row_mask.set(FR_QTA, qta, 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); 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)) if (ok && f.to_check(key, false))
{ {
TMask& row_mask = f.mask(); 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.doc()[drow].autosave(s);
mask.update_progs(); 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 ) bool TScontrino_mask::chiudi_handler( TMask_field& f, KEY key )
{ {
if (key == K_SPACE) if (key == K_SPACE)
{ {
TChiusura_scontrino_mask & mask = sapp().chiusura();
TTurno_vendita & turno = sapp().turno();
TScontrino_mask & docmask = (TScontrino_mask &) f.mask(); TScontrino_mask & docmask = (TScontrino_mask &) f.mask();
TDocumento & doc = docmask.doc(); 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.reset_mask(sapp().ncassa(), docmask.get_date(F_DATADOC), turno.cassa_attuale(), doc);
mask.show(-2, sapp().curr_user().can_invoice()); mask.show(-2, sapp().curr_user().can_invoice());
mask.show(-3, 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) if (mask.run() == K_ENTER)
{ {
do do
@ -768,7 +865,7 @@ bool TScontrino_mask::search_sospesi_handler(TMask_field& f, KEY key)
TScontrino_mask & m = (TScontrino_mask &) f.mask(); TScontrino_mask & m = (TScontrino_mask &) f.mask();
TRectype filtrec(LF_DOC); 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_ANNO, m.get(F_ANNO));
filtrec.put(DOC_CODNUM, m.get(F_CODNUM)); 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); rel.lfile().set_curr(new TDocumento);
TCursor cur(&rel, "", 1, &filtrec, &filtrec); 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.setfilter(filt);
cur.set_filterfunction(sospesi_filter); 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); const TString16 ndoc = sheet.row(-1).get(2);
TDate oggi(TODAY); TDate oggi(TODAY);
m.set(F_PROVV, "D"); m.set(F_PROVV, "P");
f.mask().set(F_ANNO, oggi.year()); f.mask().set(F_ANNO, oggi.year());
m.set(F_CODNUM, sapp().numdoc()); m.set(F_CODNUM, sapp().numdoc());
m.set(F_NDOC, ndoc); 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(); TScontrino_mask & docmask = (TScontrino_mask &) f.mask();
TSheet_field & sf = docmask.sfield(F_SHEET); 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)) docmask._art_to_insert = cmd;
{ sf.insert(-1, true, true);
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();
}
}
} }
} }
@ -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) void TChiusura_scontrino_mask::update_doc(TScontrino_mask & m, const TTurno_vendita & t, bool chiudi)
{ {
TDocumento & doc = m.doc(); 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 (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(); const long ora = daytime();
doc.stato(stato); doc.stato(stato);
@ -931,6 +1014,22 @@ void TChiusura_scontrino_mask::update_doc(TScontrino_mask & m, const TTurno_vend
doc.put(DOC_CODCF, codcf); 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() 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++) for (short id = F_INC01; id <= F_INC08; id++, i++)
resto += get_real(id); resto += get_real(id);
enable(DLG_OK, resto >= ZERO); enable(DLG_OK, resto >= ZERO);
if (field(DLG_OK).enabled())
{
set(F_ACCONTO, "");
disable(F_ACCONTO);
}
return resto > ZERO ? resto : ZERO; return resto > ZERO ? resto : ZERO;
} }
@ -994,7 +1098,7 @@ bool TChiusura_scontrino_mask::on_field_event(TOperable_field& o, TField_event e
} }
break; break;
case F_CODCFC: 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; break;
default: default:
break; break;
@ -1013,7 +1117,7 @@ void TChiusura_scontrino_mask::reset_mask(int ncassa, const TDate & data, const
if (aperto) if (aperto)
set(F_CASSAINI, cassa_attuale); set(F_CASSAINI, cassa_attuale);
enable(F_SALDO, aperto); // enable(F_SALDO, aperto);
for (short i = F_INC01 ; i<= F_INC08; i++) for (short i = F_INC01 ; i<= F_INC08; i++)
if (field(i).shown()) if (field(i).shown())
{ {
@ -1029,6 +1133,7 @@ void TChiusura_scontrino_mask::reset_mask(int ncassa, const TDate & data, const
enable(-3, da_fatturare); enable(-3, da_fatturare);
disable(DLG_OK); disable(DLG_OK);
enable(F_ACCONTO);
} }
TScontrino_application::~TScontrino_application() TScontrino_application::~TScontrino_application()
@ -1077,7 +1182,7 @@ bool TScontrino_application::user_create( )
_tipodocf = d.get("TIPODOCF"); _tipodocf = d.get("TIPODOCF");
_chk_doc = d.get_bool("CHECKDOC"); _chk_doc = d.get_bool("CHECKDOC");
_barcode_peso_var = d.get_bool("BARPVAR"); _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, ')'); _qta_char = d.get_char("QTACHAR", NULL, -1, ')');
_chiusura->init(d); _chiusura->init(d);
@ -1185,6 +1290,7 @@ void TScontrino_application::set_authorizations(TMask & m)
const int items = sf.items(); const int items = sf.items();
sf.enable_column(FR_PREZZO, curr_user().can_change_price()); 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()); sf.enable_column(FR_SCONTO, curr_user().can_change_sconti());
for (int i = 0; i < items; i++) for (int i = 0; i < items; i++)
sf.check_row(i); sf.check_row(i);
@ -1284,6 +1390,7 @@ void TScontrino_application::print_wincor()
TScontrino_mask & m = (TScontrino_mask & ) edit_mask(); TScontrino_mask & m = (TScontrino_mask & ) edit_mask();
TDocumento & doc = m.doc(); TDocumento & doc = m.doc();
const TString & cofi = doc.clifor().get(CLI_COFI); const TString & cofi = doc.clifor().get(CLI_COFI);
TCond_vendita cv(NULL, NULL);
if (cofi.full()) if (cofi.full())
{ {
@ -1300,7 +1407,7 @@ void TScontrino_application::print_wincor()
{ {
const TRiga_documento& riga = doc[r]; const TRiga_documento& riga = doc[r];
if (riga.is_merce()) if (riga.get(RDOC_DESCR).full() || riga.importo(true, true) != ZERO)
{ {
cmd = "[PLU,"; cmd = "[PLU,";
tmp = riga.get(RDOC_DESCR); tmp = riga.get(RDOC_DESCR);
@ -1308,23 +1415,54 @@ void TScontrino_application::print_wincor()
para = tmp; para = tmp;
cmd << para.get(0); cmd << para.get(0);
real price = riga.get_real(RDOC_PREZZOL); if (riga.is_sconto())
tmp = price.string(text_len, 2); tmp.trim(); {
if (tmp.ends_with(".00") && _doppio_zero) cmd = "[SBT]";
tmp.strip("."); aga_dde_execute(conn, cmd);
cmd << ',' << tmp; 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)); cmd = "[SCV,";
int rep = riga.get_int(ANAMAG_REPARTO); 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) if (rep <= 0 || rep > 25)
rep = 1; rep = 1;
cmd << ',' << rep; cmd << ',' << rep;
real qta = riga.get(RDOC_QTA); real qta = riga.get(RDOC_QTA);
tmp = qta.string(10, 5); tmp.trim(); if (riga.is_spese() && riga.spesa().tipo() == 'V')
cmd << ',' << tmp << ']'; qta = UNO;
tmp = qta.string(10, 5); tmp.trim();
cmd << ',' << tmp << ']';
}
aga_dde_execute(conn, cmd); aga_dde_execute(conn, cmd);
} }
@ -1404,7 +1542,7 @@ void TScontrino_application::print_multiprinter_nettuna()
{ {
const TRiga_documento& riga = doc[r]; 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); real qta = riga.get(RDOC_QTA);
const bool storno = qta < ZERO; const bool storno = qta < ZERO;
@ -1412,7 +1550,8 @@ void TScontrino_application::print_multiprinter_nettuna()
para = riga.get(RDOC_DESCR); para = riga.get(RDOC_DESCR);
cmd << para.get(0) << ";"; cmd << para.get(0) << ";";
real price = riga.get_real(RDOC_PREZZOL); real price = riga.prezzo(true, true);
tmp = price.stringa(18, 2); tmp.trim(); tmp = price.stringa(18, 2); tmp.trim();
cmd << tmp << ";"; cmd << tmp << ";";
qta = abs(qta); qta = abs(qta);
@ -1435,8 +1574,8 @@ void TScontrino_application::print_multiprinter_nettuna()
if (riga.is_sconto_perc()) if (riga.is_sconto_perc())
{ {
cv.set_sconto(riga.get(RDOC_SCONTO)); cv.set_sconto(riga.get(RDOC_SCONTO));
val = cv.sconto_val() * CENTO; val = ((1 - cv.sconto_val()) * CENTO);
magg = val < ZERO; magg = val > ZERO;
val = abs(val); val = abs(val);
cmd = magg ? "MAG%" : "SCO%"; cmd = magg ? "MAG%" : "SCO%";
} }

View File

@ -17,6 +17,7 @@
#define F_CODCFC 122 #define F_CODCFC 122
#define F_RAGSOCC 123 #define F_RAGSOCC 123
#define F_DAFATT 124 #define F_DAFATT 124
#define F_ACCONTO 125
#define F_CODSEARCH 205 #define F_CODSEARCH 205
#define DLG_FATT 200 #define DLG_FATT 200

View File

@ -95,6 +95,14 @@ BEGIN
GROUP 3 GROUP 3
END 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 LIST F_TIPOCFC 1 11
BEGIN BEGIN
PROMPT 2 17 "Tipo " PROMPT 2 17 "Tipo "

View File

@ -5,7 +5,7 @@
#define FD_CODLIST 106 #define FD_CODLIST 106
#define FD_CHECKDOC 107 #define FD_CHECKDOC 107
#define FD_BARPVAR 108 #define FD_BARPVAR 108
#define FD_CODPVAR 109 // #define FD_CODPVAR 109
#define FD_QTACHAR 110 #define FD_QTACHAR 110
#define ROW_INC 10 #define ROW_INC 10

View File

@ -206,12 +206,31 @@ void TTurno_vendita::leggi(long progr)
} }
if (r.items() > 0L) if (r.items() > 0L)
{ {
const TString & real_user = ::user();
r.move_last(); 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(); _rec = r.cursor()->curr();
const long fine = _rec.get_long(TRN_FINE); const long fine = _rec.get_long(TRN_FINE);
progr = _rec.get_long(TRN_PROGR); 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) if (!aperto)
{ {
@ -223,11 +242,6 @@ void TTurno_vendita::leggi(long progr)
_rec.put(TRN_ANNO, _anno); _rec.put(TRN_ANNO, _anno);
_rec.put(TRN_PROGR, progr); _rec.put(TRN_PROGR, progr);
} }
else
{
_datafine = TDate(TODAY);
_orafine = 0L;
}
} }
const long TTurno_vendita::ora_inizio() const 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) bool TTurno_vendita::apri(const bool select_prev)
{ {
leggi(); leggi();
if (aperto()) 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)
{ {
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); const long idturno = m.get_long(F_TURNO);
riapri();
return true; if (idturno > 0L)
} {
else leggi(idturno);
{ riapri();
const real cassa_ini = m.get_real(F_CASSAINI); return true;
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); 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_USERNAME, m.get(F_USERNAME));
_rec.put(TRN_CASSAINI, cassa_ini); _rec.put(TRN_CASSAINI, cassa_ini);
_rec.put(TRN_CASSAFIN, cassa_ini); _rec.put(TRN_CASSAFIN, cassa_ini);
_rec.put(TRN_DATA, m.get_date(F_DATA)); _rec.put(TRN_DATA, m.get_date(F_DATA));
_rec.put(TRN_INIZIO, ora_inizio); _rec.put(TRN_INIZIO, ora_inizio);
_rec.put(TRN_FNDOC, fndoc); _rec.put(TRN_FNDOC, fndoc);
_err = _rec.write(f); _err = _rec.write(f);
}
return _err == NOERR;
} }
return _err == NOERR;
} }
return false; return false;
} }
@ -292,7 +306,7 @@ bool TTurno_vendita::riapri()
bool TTurno_vendita::chiudi() bool TTurno_vendita::chiudi()
{ {
if (!riaperto()) if (!riaperto())
leggi(); leggi(-1);
if (chiuso()) if (chiuso())
return error_box(FR("Turno chiuso")); return error_box(FR("Turno chiuso"));

View File

@ -53,7 +53,7 @@ public:
// @ cmember report // @ cmember report
TReport & report() {return _rep;} TReport & report() {return _rep;}
// @ cmember apri il turno // @ cmember apri il turno
bool apri(const bool select_prev = true); bool apri(const bool select_prev = false);
// @ cmember riapri il turno // @ cmember riapri il turno
bool riapri(); bool riapri();
// @ cmember chiudi il turno // @ cmember chiudi il turno

View File

@ -54,7 +54,7 @@ END
NUMBER F_HFINE 2 NUMBER F_HFINE 2
BEGIN BEGIN
PROMPT 2 5 "Ora " PROMPT 2 5 "Ora "
FLAGS "ZDU" FLAGS "ZU"
NUM_EXPR #F_HFINE<24 NUM_EXPR #F_HFINE<24
GROUP 1 GROUP 1
END END
@ -62,7 +62,7 @@ END
NUMBER F_MFINE 2 NUMBER F_MFINE 2
BEGIN BEGIN
PROMPT 26 5 ":" PROMPT 26 5 ":"
FLAGS "ZDU" FLAGS "ZU"
NUM_EXPR #F_MFINE<60 NUM_EXPR #F_MFINE<60
GROUP 1 GROUP 1
END END
@ -70,7 +70,7 @@ END
NUMBER F_SFINE 2 NUMBER F_SFINE 2
BEGIN BEGIN
PROMPT 30 5 ":" PROMPT 30 5 ":"
FLAGS "ZDU" FLAGS "ZU"
NUM_EXPR #F_SFINE<60 NUM_EXPR #F_SFINE<60
GROUP 1 GROUP 1
END END

View File

@ -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 Fields=B10,1|B11,1|B12,1|B13,1|B14,1|B15,1|FPC,1
[Data] [Data]
FRD|VDIMPLOR|Importo lordo vendita al dettaglio|SOMMA("IMPONIBILE()","(TIPO()=='M'&&(QTA>0))")|||||||||||18||||||||||||||||||||||||||||||||||||||||||||||X|X||||||||||||||| TRI|16|Merce al dettaglio|||||||M||||||||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | |||||||
FRD|VDQTALOR|Quantita' lorda vendita al dettaglio|SOMMA("QTA","(TIPO()=='M'&&(QTA>0))")|||||||||||18||||||||||||||||||||||||||||||||||||||||||||||X| ||||||||||||||| TRI|17|Spese a valore al dettaglio|||||||S||||||||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | |||||||
FRD|VDIMPRES|Importo reso vendita al dettaglio|SOMMA("IMPONIBILE()","(TIPO()=='M'&&(QTA<0))")|||||||||||18||||||||||||||||||||||||||||||||||||||||||||||X|X||||||||||||||| TRI|18|Spese a quantita' e prezzo al dettaglio|||||||S||||||||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | |||||||
FRD|VDQTARES|Quantita' resa vendita al dettaglio|SOMMA("-QTA","(TIPO()=='M'&&(QTA<0))")|||||||||||18||||||||||||||||||||||||||||||||||||||||||||||X| ||||||||||||||| TRI|19|Spese in percentuale al dettaglio|||||||S||||||||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | |||||||
TRI|20|Prestazioni al dettaglio|||||||P||||||||||||||||||||||||||||||||||||||||||||||||||| | | | | | | | | | |||||||

9
vd/verig16.ini Executable file
View File

@ -0,0 +1,9 @@
#Profilo di riga tipo merce
[MAIN]
CALCOLI=*
CAMPICALC=
IMPONIBILE=IMPNS
[HANDLERS]
NHANDLER = 0

48
vd/verig16.uml Executable file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View File

@ -0,0 +1,9 @@
#Profilo di riga tipo prestazioni
[MAIN]
CALCOLI=*
CAMPICALC=
IMPONIBILE=IMPNS
[HANDLERS]
NHANDLER = 0

27
vd/verig20.uml Executable file
View 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"