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[])
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										247
									
								
								vd/vd0700.cpp
									
									
									
									
									
								
							
							
						
						
									
										247
									
								
								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,7 +1415,34 @@ void TScontrino_application::print_wincor()
 | 
			
		||||
			para = tmp;
 | 
			
		||||
			cmd << para.get(0);
 | 
			
		||||
    
 | 
			
		||||
			real price = riga.get_real(RDOC_PREZZOL);
 | 
			
		||||
			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);
 | 
			
		||||
 | 
			
		||||
					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(".");
 | 
			
		||||
@ -1323,8 +1457,12 @@ void TScontrino_application::print_wincor()
 | 
			
		||||
 | 
			
		||||
				real qta = riga.get(RDOC_QTA);
 | 
			
		||||
 | 
			
		||||
				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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										34
									
								
								vd/vdlib.cpp
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								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);
 | 
			
		||||
		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,9 +252,8 @@ 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));
 | 
			
		||||
 | 
			
		||||
	if (!aperto())
 | 
			
		||||
	{
 | 
			
		||||
		TApri_mask m(*this);
 | 
			
		||||
		TDocumento d('D', _anno, _codnum, 0L);
 | 
			
		||||
		const long fndoc = d.renum_ndoc();
 | 
			
		||||
@ -248,7 +261,7 @@ bool TTurno_vendita::apri(const bool select_prev)
 | 
			
		||||
		
 | 
			
		||||
		m.show(F_TURNO, select_prev);
 | 
			
		||||
		m.set(F_CASSA, _cassa);
 | 
			
		||||
	m.set(F_USERNAME, user());
 | 
			
		||||
		m.set(F_USERNAME, ::user());
 | 
			
		||||
		m.set(F_HINIZIO, ora / 10000);
 | 
			
		||||
		m.set(F_MINIZIO, (ora / 100) % 100);
 | 
			
		||||
		m.set(F_SINIZIO, ora % 100);
 | 
			
		||||
@ -278,6 +291,7 @@ bool TTurno_vendita::apri(const bool select_prev)
 | 
			
		||||
			}
 | 
			
		||||
			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