diff --git a/ve/f33.dir b/ve/f33.dir
index 92b626fb9..199dda1fd 100755
--- a/ve/f33.dir
+++ b/ve/f33.dir
@@ -1,3 +1,3 @@
33
0
-$doc|0|0|541|0|Documenti di vendita|NDOC||
+$doc|0|0|549|0|Documenti di vendita|NDOC||
diff --git a/ve/f33.trr b/ve/f33.trr
index ba732d6b9..593c138d8 100755
--- a/ve/f33.trr
+++ b/ve/f33.trr
@@ -1,5 +1,5 @@
33
-84
+86
CODNUM|1|4|0|Codice della numerazione
ANNO|2|4|0|Anno
PROVV|1|1|0|Tipo numerazione
rovvisorio efinitivo
@@ -33,6 +33,8 @@ CODCAMP|1|3|0|Codice campagna
SCONTOPERC|1|25|0|Sconto testata documento
CODINDSP|1|3|0|Codice indirizzo di spedizione
DATADOCRIF|5|8|0|Data documento di riferimento
+ANNORIF|2|4|0|Anno del documento di riferimento
+CODNUMRIF|1|4|0|Numerazione del documento di riferimento
NUMDOCRIF|1|7|0|Numero documento di riferimento
ZONA|1|3|0|Zona
CODAG|1|5|0|Codice agente
diff --git a/ve/fatturaa.src b/ve/fatturaa.src
index 08039b502..2efc5d4a0 100755
--- a/ve/fatturaa.src
+++ b/ve/fatturaa.src
@@ -103,8 +103,10 @@ DENCOMSP = S_DISABILITATO //900
PROVCOMSP = S_DISABILITATO //900
STATOSP = S_DISABILITATO //900
DESSTATOSP = S_DISABILITATO //900
-DATADOCRIF = S_NORMALE //1000
-NUMDOCRIF = S_NOCHECK //1000
+DATADOCRIFN = S_NORMALE //1010
+CODNUMRIFN = S_NORMALE //1010
+ANNORIFN = S_NORMALE //1010
+NUMDOCRIFN = S_NORMALE //1010
CODAGVIS = S_NORMALE //1110
DESAGVIS = S_NORMALE //1110
CODAG = S_NORMALE //1100
@@ -210,7 +212,7 @@ Col(25) = FR_TIPORIGA
820 = S_NORMALE
830 = S_NORMALE
900 = S_NORMALE
-1000 = S_NORMALE
+1010 = S_NORMALE
1100 = S_NORMALE
1200 = S_NORMALE
1210 = S_NORMALE
@@ -262,7 +264,7 @@ NGROUPS=30
25=2710
26=1700
27=1800
-28=1000
+28=1010
29=2900
30=3000
diff --git a/ve/fatturac.src b/ve/fatturac.src
index a338410f5..9abbb3fcd 100755
--- a/ve/fatturac.src
+++ b/ve/fatturac.src
@@ -99,8 +99,10 @@ DENCOMSP = S_DISABILITATO //900
PROVCOMSP = S_DISABILITATO //900
STATOSP = S_DISABILITATO //900
DESSTATOSP = S_DISABILITATO //900
-DATADOCRIF = S_NORMALE //1000
-NUMDOCRIF = S_NOCHECK //1000
+DATADOCRIFN = S_NORMALE //1010
+CODNUMRIFN = S_NORMALE //1010
+ANNORIFN = S_NORMALE //1010
+NUMDOCRIFN = S_NORMALE //1010
CODAGVIS = S_NORMALE //1110
DESAGVIS = S_NORMALE //1110
CODAG = S_NORMALE //1100
@@ -185,7 +187,7 @@ Col(21)=FR_TIPORIGA
820 = S_NORMALE
830 = S_NORMALE
900 = S_NORMALE
-1000 = S_NORMALE
+1010 = S_NORMALE
1100 = S_NORMALE
1200 = S_NORMALE
1210 = S_NORMALE
@@ -226,6 +228,6 @@ NGROUPS=25
20=1400
21=1800
22=1900
-23=1000
+23=1010
24=2900
diff --git a/ve/ve0100.cpp b/ve/ve0100.cpp
index 81a5299aa..72d37dc83 100755
--- a/ve/ve0100.cpp
+++ b/ve/ve0100.cpp
@@ -106,6 +106,9 @@ void TMotore_application::init_insert_mode( TMask& m )
m.field(F_TIPODOC).set_focusdirty(TRUE);
m.field(F_TIPODOC).on_key(K_TAB);
+ m.set(F_ANNORIF, anno);
+ m.set(F_CODNUMRIF, codnum);
+
// Giro per supplire alla mancanza di una TMask::set(short id, char c);
char str_stato[2] = { stato, '\0' };
m.set(F_STATO, str_stato);
diff --git a/ve/ve0300a.src b/ve/ve0300a.src
index aed0be439..559650f14 100755
--- a/ve/ve0300a.src
+++ b/ve/ve0300a.src
@@ -996,6 +996,56 @@ USE=LF_DOC SELECT NUMDOCRIF!=""
INPUT=ANNO F_ANNO SELECT~PROVV F_PROVV SELECT~CODNUM F_CODNUM SELECT~NDOC F_NDOC
DISPLAY="Num." CODNUM~"Anno" ANNO~"Provv" PROVV~"Tipo" TIPODOC~"N.Doc. " NDOC~"N.Doc.Rif. " NUMDOCRIF
+[DATADOCRIFN]
+GROUP=1010
+X=2
+Y=0
+FIELDNAME=DATADOCRIF
+MSKID=F_DATADOCRIF
+TYPE=T_DATA
+PROMPT="Documento di riferimento : Data "
+
+[CODNUMRIFN]
+GROUP=1010
+X=50
+Y=0
+FIELDNAME=CODNUMRIF
+MSKID=F_CODNUMRIF
+TYPE=T_STRINGA
+PROMPT="Numerazione "
+FLAG=UPA
+SIZE=4
+USE=%NUM
+INPUT=CODTAB F_CODNUMRIF
+DISPLAY="Codice" CODTAB~"Descrizione@50" S0
+OUTPUT=F_CODNUMRIF CODTAB
+
+[CODNUMRIFN]
+GROUP=1010
+X=20
+Y=1
+FIELDNAME=ANNORIF
+MSKID=F_ANNORIF
+TYPE=T_NUMERO
+PROMPT="Anno "
+FLAG=AP
+SIZE=4
+
+[NUMDOCRIFN]
+GROUP=1010
+X=50
+Y=1
+FIELDNAME=NUMDOCRIF
+MSKID=F_NUMDOCRIF
+TYPE=T_STRINGA
+PROMPT="Numero "
+SIZE=7
+USE=LF_DOC~JO LF_CLIFO TO LF_DOC INTO TIPOCF==TIPOCF CODCF==CODCF
+INPUT=ANNO F_ANNORIF SELECT~PROVV "D" SELECT~CODNUM F_CODNUMRIF SELECT~NDOC F_NUMDOCRIF
+DISPLAY="Num." CODNUM~"Anno" ANNO~"Provv" PROVV~"Tipo" TIPODOC~"N.Doc. " NDOC~"Codice" CODCF~"Ragione Sociale@50" 20->RAGSOC~"Totale\ndocumento@18V" G1:TOTDOC
+OUTPUT=F_ANNORIF ANNO~F_CODNUMRIF CODNUM~F_NUMDOCRIF NDOC~F_DATADOCRIF DATADOC
+SPECIAL=CH SEARCH
+
[CODAG]
GROUP=1100
X=2
diff --git a/ve/veuml.h b/ve/veuml.h
index 97a592ec0..766864558 100755
--- a/ve/veuml.h
+++ b/ve/veuml.h
@@ -107,6 +107,9 @@
#define F_RAGSOCDITTA 210
#define F_LIQDIFF 211
+#define F_CODNUMRIF 212
+#define F_ANNORIF 213
+
#define F_CDC1 251
#define F_CDC12 262
#define F_DESCDC1 271