Patch level : 12.0 1224

Files correlati     : ve0.exe ve6.exe fatacq.ini fatacq.msk fatturaa.ini
                      fatturaa.msk fatturac.ini fatturac.msk ve0300a.ini
                      ve0300c.ini

Commento :

aggiunti i campi DATAINIRIF e DATAFINRIF  sui doumenti per l'invio delle fatture elettroniche
This commit is contained in:
Alessandro Bonazzi 2022-12-16 00:51:55 +01:00
parent 8b947352e4
commit 8c1c813b08
11 changed files with 128 additions and 23 deletions

View File

@ -135,14 +135,17 @@ CAUSMAG = S_OBBLIGATORIO
CAUSMAGC = S_DISABILITATO CAUSMAGC = S_DISABILITATO
DESCRMAG = S_NORMALE DESCRMAG = S_NORMALE
DESCRMAGC = S_DISABILITATO DESCRMAGC = S_DISABILITATO
CUP = S_NORMALE CUP = S_NORMALE
DESCRCUP = S_NORMALE DESCRCUP = S_NORMALE
CIG = S_NORMALE CIG = S_NORMALE
DESCRCIG = S_NORMALE DESCRCIG = S_NORMALE
CMSH = S_NORMALE CMSH = S_NORMALE
TIPO_SDI = S_NORMALE TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE REG_FISCF = S_NORMALE
GRDATERIF = S_NORMALE
DATA_INIRIF = S_NORMALE
DATA_FINRIF = S_NORMALE
[DEFAULT] [DEFAULT]
@ -203,10 +206,11 @@ Col(23) = FR_TIPORIGA
2900 = S_NORMALE 2900 = S_NORMALE
3000 = S_NORMALE 3000 = S_NORMALE
3100 = S_NORMALE 3100 = S_NORMALE
3500 = S_NORMALE
4000 = S_NORMALE 4000 = S_NORMALE
[ORDINEGRUPPI] [ORDINEGRUPPI]
NGROUPS=16 NGROUPS=17
1=1000 1=1000
2=100 2=100
3=200 3=200
@ -222,4 +226,5 @@ NGROUPS=16
13=1900 13=1900
14=2900 14=2900
15=3000 15=3000
16=3100 16=3100
17=3500

View File

@ -20,8 +20,9 @@ Title(1)=Cliente
Title(2)=Pagamenti Title(2)=Pagamenti
Title(3)=Ind.Spedizione Title(3)=Ind.Spedizione
Title(4)=Spedizione Title(4)=Spedizione
Title(5)=Righe Title(5)=Fatt.Elettronica
Title(6)=Totali Title(6)=Righe
Title(7)=Totali
[PROFILO] [PROFILO]
// Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi: // Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi:
@ -172,15 +173,18 @@ CAUSMAG = S_OBBLIGATORIO
CAUSMAGC = S_DISABILITATO CAUSMAGC = S_DISABILITATO
DESCRMAG = S_NORMALE DESCRMAG = S_NORMALE
DESCRMAGC = S_DISABILITATO DESCRMAGC = S_DISABILITATO
CUP = S_NORMALE CUP = S_NORMALE
DESCRCUP = S_NORMALE DESCRCUP = S_NORMALE
CIG = S_NORMALE CIG = S_NORMALE
DESCRCIG = S_NORMALE DESCRCIG = S_NORMALE
CMSH = S_NORMALE CMSH = S_NORMALE
TIPO_SDI = S_NORMALE TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE REG_FISCF = S_NORMALE
NON_INVIO_XML = S_NORMALE NON_INVIO_XML = S_NORMALE
GRDATERIF = S_NORMALE
DATA_INIRIF = S_NORMALE
DATA_FINRIF = S_NORMALE
[DEFAULT] [DEFAULT]
Default(0)=F_CAUSTRASP|VEN Default(0)=F_CAUSTRASP|VEN
@ -255,9 +259,10 @@ Col(25) = FR_TIPORIGA
2900 = S_NORMALE 2900 = S_NORMALE
3000 = S_NORMALE 3000 = S_NORMALE
3100 = S_NORMALE 3100 = S_NORMALE
3500 = S_NORMALE
[ORDINEGRUPPI] [ORDINEGRUPPI]
NGROUPS=31 NGROUPS=32
1=100 1=100
2=2500 2=2500
3=200 3=200
@ -288,4 +293,5 @@ NGROUPS=31
28=1010 28=1010
29=2900 29=2900
30=3000 30=3000
30=3100 31=3100
32=3500

View File

@ -153,15 +153,18 @@ CAUSMAG = S_OBBLIGATORIO
CAUSMAGC = S_DISABILITATO CAUSMAGC = S_DISABILITATO
DESCRMAG = S_NORMALE DESCRMAG = S_NORMALE
DESCRMAGC = S_DISABILITATO DESCRMAGC = S_DISABILITATO
CUP = S_NORMALE CUP = S_NORMALE
DESCRCUP = S_NORMALE DESCRCUP = S_NORMALE
CIG = S_NORMALE CIG = S_NORMALE
DESCRCIG = S_NORMALE DESCRCIG = S_NORMALE
CMSH = S_NORMALE CMSH = S_NORMALE
TIPO_SDI = S_NORMALE TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE REG_FISCF = S_NORMALE
NON_INVIO_XML = S_NORMALE NON_INVIO_XML = S_NORMALE
GRDATERIF = S_NORMALE
DATA_INIRIF = S_NORMALE
DATA_FINRIF = S_NORMALE
[DEFAULT] [DEFAULT]
@ -224,9 +227,10 @@ Col(21)=FR_TIPORIGA
2900 = S_NORMALE 2900 = S_NORMALE
3000 = S_NORMALE 3000 = S_NORMALE
3100 = S_NORMALE 3100 = S_NORMALE
3500 = S_NORMALE
[ORDINEGRUPPI] [ORDINEGRUPPI]
NGROUPS=26 NGROUPS=27
1=100 1=100
2=2500 2=2500
3=200 3=200
@ -253,3 +257,4 @@ NGROUPS=26
24=2900 24=2900
25=3000 25=3000
26=3100 26=3100
27=3500

View File

@ -583,6 +583,7 @@ static void genera_gruppo( const TObject& gruppo )
{ {
// Per evitare 3000 casts // Per evitare 3000 casts
static TMask_generator * _mask_generator = NULL; static TMask_generator * _mask_generator = NULL;
if (gruppo.class_id() == CLASS_STRING) if (gruppo.class_id() == CLASS_STRING)
{ {
TFilename fname((TString &) gruppo); TFilename fname((TString &) gruppo);

View File

@ -2035,6 +2035,33 @@ Y=3
PROMPT="Disabilita invio XML" PROMPT="Disabilita invio XML"
FIELDNAME=NOINVIOSDI FIELDNAME=NOINVIOSDI
[GRDATERIF]
GROUP=3500
X=1
Y=1
SIZE=7603
MSKID=DLG_NULL
TYPE=T_CORNICE
PROMPT="Date di riferimento fatturazione "
[DATA_INIRIF]
GROUP=3500
X=16
Y=2
FIELDNAME=DATAINIRIF
MSKID=F_DATAINIRIF
TYPE=T_DATA
PROMPT="Inizio "
[DATA_FINRIF]
GROUP=3500
X=45
Y=2
FIELDNAME=DATAFINRIF
MSKID=F_DATAFINRIF
TYPE=T_DATA
PROMPT="Fine "
[LVGROUP] [LVGROUP]
GROUP=4041 GROUP=4041
X=1 X=1

View File

@ -116,6 +116,9 @@ HEIGHT=1
[3400] [3400]
HEIGHT=4 HEIGHT=4
[3500]
HEIGHT=3
[4000] [4000]
HEIGHT=1 HEIGHT=1

View File

@ -638,10 +638,27 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do
else else
d.put(DOC_FATID, 0); d.put(DOC_FATID, 0);
} }
TDate inirif = eotime;
TDate finrif;
for (int i = doc_in.items() - 1; i >= 0; i--) // calcola le date di inizio e fine riferimento
{
TDocumento& d = doc_in[i];
const TDate datadoc = d.get_date(DOC_DATADOC);
if (inirif > datadoc)
inirif = datadoc;
if (finrif < datadoc)
finrif = datadoc;
}
for (int i = doc_out.items() - 1; i >= 0; i--) // Aggiorna esenzione for (int i = doc_out.items() - 1; i >= 0; i--) // Aggiorna esenzione
{ {
TDocumento& d = doc_out[i]; TDocumento& d = doc_out[i];
d.update_esenzione(); d.update_esenzione();
d.put(DOC_DATAINIRIF, inirif);
d.put(DOC_DATAFINRIF, finrif);
} }
return doc_out.items() > 0; return doc_out.items() > 0;
} }

View File

@ -19,7 +19,6 @@
#include "../m770/perc.h" #include "../m770/perc.h"
#include "../f9/f9lib.h" #include "../f9/f9lib.h"
void TMovimentoPN_VE::destroy_iva_row(int i) void TMovimentoPN_VE::destroy_iva_row(int i)
{ {
if (i < 0) if (i < 0)

View File

@ -883,6 +883,33 @@ bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
{ {
post_process_input(doc_in); post_process_input(doc_in);
post_process(doc_out, doc_in); post_process(doc_out, doc_in);
TDate inirif = eotime;
TDate finrif;
if (doc_out.items() > 0 && doc_out[0].tipo().tipo() == TTipo_documento::_fattura)
{
for (int i = doc_in.items() - 1; i >= 0; i--) // calcola le date di inizio e fine riferimento
{
TDocumento& d = doc_in[i];
const TDate datadoc = d.get_date(DOC_DATADOC);
if (inirif > datadoc)
inirif = datadoc;
if (finrif < datadoc)
finrif = datadoc;
}
for (int i = doc_out.items() - 1; i >= 0; i--) // Aggiorna esenzione
{
TDocumento& d = doc_out[i];
d.update_esenzione();
if (!d.get_date(DOC_DATAINIRIF).ok() || d.get_date(DOC_DATAINIRIF) > inirif)
d.put(DOC_DATAINIRIF, inirif);
if (!d.get_date(DOC_DATAFINRIF).ok() || d.get_date(DOC_DATAFINRIF) > inirif)
d.put(DOC_DATAFINRIF, finrif);
}
}
} }
return ok; return ok;

View File

@ -449,6 +449,7 @@ bool note_hndl( TMask_field& f, KEY key )
bool data_hndl( TMask_field& field, KEY key ) bool data_hndl( TMask_field& field, KEY key )
{ {
TDocumento_mask& m = (TDocumento_mask &) field.mask(); TDocumento_mask& m = (TDocumento_mask &) field.mask();
if (field.to_check(key)) if (field.to_check(key))
{ {
if (m.id2pos(F_DATAINSC) > 0) if (m.id2pos(F_DATAINSC) > 0)
@ -477,9 +478,22 @@ bool data_hndl( TMask_field& field, KEY key )
if (key == K_ENTER || field.to_check(key)) if (key == K_ENTER || field.to_check(key))
{ {
const TDate datadoc(m.get(F_DATADOC)); const TDate datadoc(m.get(F_DATADOC));
if (!datadoc.ok()) if (!datadoc.ok())
return field.error_box("La data documento deve essere comunque indicata."); return field.error_box("La data documento deve essere comunque indicata.");
if (m.id2pos(F_DATAINIRIF) > 0 && m.id2pos(F_DATAFINRIF) > 0)
{
const TDate inirif = m.get_date(F_DATAINIRIF);
const TDate finrif = m.get_date(F_DATAFINRIF);
if (!inirif.ok() || (inirif >= finrif))
{
m.set(F_DATAINIRIF, datadoc);
m.set(F_DATAFINRIF, datadoc);
}
}
if (m.id2pos(F_DATACAMBIO1) >= 0 && !m.get(F_CODVAL).empty()) if (m.id2pos(F_DATACAMBIO1) >= 0 && !m.get(F_CODVAL).empty())
m.set(F_DATACAMBIO1, field.get(), TRUE); m.set(F_DATACAMBIO1, field.get(), TRUE);
} }

View File

@ -136,7 +136,8 @@
#define F_DESCDC12 282 #define F_DESCDC12 282
#define F_DATACOMP 291 #define F_DATACOMP 291
#define F_DATAFCOMP 292 #define F_DATAFCOMP 292
#define F_DATAINIRIF 293
#define F_DATAFINRIF 294
//#define F_SELECT 101 //#define F_SELECT 101