From 8c1c813b089f49fb76c6ee93193a9780f0df426f Mon Sep 17 00:00:00 2001 From: Alessandro Bonazzi Date: Fri, 16 Dec 2022 00:51:55 +0100 Subject: [PATCH] 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 --- src/ve/fatacq.src | 19 ++++++++++++------- src/ve/fatturaa.src | 24 +++++++++++++++--------- src/ve/fatturac.src | 15 ++++++++++----- src/ve/ve0300.cpp | 1 + src/ve/ve0300a.src | 27 +++++++++++++++++++++++++++ src/ve/ve0300c.ini | 3 +++ src/ve/velib04a.cpp | 17 +++++++++++++++++ src/ve/velib04b.cpp | 1 - src/ve/velib04d.cpp | 27 +++++++++++++++++++++++++++ src/ve/velib06a.cpp | 14 ++++++++++++++ src/ve/veuml.h | 3 ++- 11 files changed, 128 insertions(+), 23 deletions(-) diff --git a/src/ve/fatacq.src b/src/ve/fatacq.src index 02aaf252a..566ce758b 100755 --- a/src/ve/fatacq.src +++ b/src/ve/fatacq.src @@ -135,14 +135,17 @@ CAUSMAG = S_OBBLIGATORIO CAUSMAGC = S_DISABILITATO DESCRMAG = S_NORMALE DESCRMAGC = S_DISABILITATO -CUP = S_NORMALE +CUP = S_NORMALE DESCRCUP = S_NORMALE -CIG = S_NORMALE +CIG = S_NORMALE DESCRCIG = S_NORMALE CMSH = S_NORMALE -TIPO_SDI = S_NORMALE -INVIO_FP = S_NORMALE -REG_FISCF = S_NORMALE +TIPO_SDI = S_NORMALE +INVIO_FP = S_NORMALE +REG_FISCF = S_NORMALE +GRDATERIF = S_NORMALE +DATA_INIRIF = S_NORMALE +DATA_FINRIF = S_NORMALE [DEFAULT] @@ -203,10 +206,11 @@ Col(23) = FR_TIPORIGA 2900 = S_NORMALE 3000 = S_NORMALE 3100 = S_NORMALE +3500 = S_NORMALE 4000 = S_NORMALE [ORDINEGRUPPI] -NGROUPS=16 +NGROUPS=17 1=1000 2=100 3=200 @@ -222,4 +226,5 @@ NGROUPS=16 13=1900 14=2900 15=3000 -16=3100 \ No newline at end of file +16=3100 +17=3500 \ No newline at end of file diff --git a/src/ve/fatturaa.src b/src/ve/fatturaa.src index 699d1746c..e52adf230 100755 --- a/src/ve/fatturaa.src +++ b/src/ve/fatturaa.src @@ -20,8 +20,9 @@ Title(1)=Cliente Title(2)=Pagamenti Title(3)=Ind.Spedizione Title(4)=Spedizione -Title(5)=Righe -Title(6)=Totali +Title(5)=Fatt.Elettronica +Title(6)=Righe +Title(7)=Totali [PROFILO] // Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi: @@ -172,15 +173,18 @@ CAUSMAG = S_OBBLIGATORIO CAUSMAGC = S_DISABILITATO DESCRMAG = S_NORMALE DESCRMAGC = S_DISABILITATO -CUP = S_NORMALE +CUP = S_NORMALE DESCRCUP = S_NORMALE -CIG = S_NORMALE +CIG = S_NORMALE DESCRCIG = S_NORMALE CMSH = S_NORMALE -TIPO_SDI = S_NORMALE -INVIO_FP = S_NORMALE -REG_FISCF = S_NORMALE +TIPO_SDI = S_NORMALE +INVIO_FP = S_NORMALE +REG_FISCF = S_NORMALE NON_INVIO_XML = S_NORMALE +GRDATERIF = S_NORMALE +DATA_INIRIF = S_NORMALE +DATA_FINRIF = S_NORMALE [DEFAULT] Default(0)=F_CAUSTRASP|VEN @@ -255,9 +259,10 @@ Col(25) = FR_TIPORIGA 2900 = S_NORMALE 3000 = S_NORMALE 3100 = S_NORMALE +3500 = S_NORMALE [ORDINEGRUPPI] -NGROUPS=31 +NGROUPS=32 1=100 2=2500 3=200 @@ -288,4 +293,5 @@ NGROUPS=31 28=1010 29=2900 30=3000 -30=3100 +31=3100 +32=3500 diff --git a/src/ve/fatturac.src b/src/ve/fatturac.src index eb5fad3bd..b030a72e7 100755 --- a/src/ve/fatturac.src +++ b/src/ve/fatturac.src @@ -153,15 +153,18 @@ CAUSMAG = S_OBBLIGATORIO CAUSMAGC = S_DISABILITATO DESCRMAG = S_NORMALE DESCRMAGC = S_DISABILITATO -CUP = S_NORMALE +CUP = S_NORMALE DESCRCUP = S_NORMALE CIG = S_NORMALE DESCRCIG = S_NORMALE CMSH = S_NORMALE -TIPO_SDI = S_NORMALE -INVIO_FP = S_NORMALE -REG_FISCF = S_NORMALE +TIPO_SDI = S_NORMALE +INVIO_FP = S_NORMALE +REG_FISCF = S_NORMALE NON_INVIO_XML = S_NORMALE +GRDATERIF = S_NORMALE +DATA_INIRIF = S_NORMALE +DATA_FINRIF = S_NORMALE [DEFAULT] @@ -224,9 +227,10 @@ Col(21)=FR_TIPORIGA 2900 = S_NORMALE 3000 = S_NORMALE 3100 = S_NORMALE +3500 = S_NORMALE [ORDINEGRUPPI] -NGROUPS=26 +NGROUPS=27 1=100 2=2500 3=200 @@ -253,3 +257,4 @@ NGROUPS=26 24=2900 25=3000 26=3100 +27=3500 diff --git a/src/ve/ve0300.cpp b/src/ve/ve0300.cpp index 9fcb91b39..7abf8ea56 100755 --- a/src/ve/ve0300.cpp +++ b/src/ve/ve0300.cpp @@ -583,6 +583,7 @@ static void genera_gruppo( const TObject& gruppo ) { // Per evitare 3000 casts static TMask_generator * _mask_generator = NULL; + if (gruppo.class_id() == CLASS_STRING) { TFilename fname((TString &) gruppo); diff --git a/src/ve/ve0300a.src b/src/ve/ve0300a.src index 14bd2af40..e3befaf57 100755 --- a/src/ve/ve0300a.src +++ b/src/ve/ve0300a.src @@ -2035,6 +2035,33 @@ Y=3 PROMPT="Disabilita invio XML" 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] GROUP=4041 X=1 diff --git a/src/ve/ve0300c.ini b/src/ve/ve0300c.ini index 65747cefd..7fa0221db 100755 --- a/src/ve/ve0300c.ini +++ b/src/ve/ve0300c.ini @@ -116,6 +116,9 @@ HEIGHT=1 [3400] HEIGHT=4 +[3500] +HEIGHT=3 + [4000] HEIGHT=1 diff --git a/src/ve/velib04a.cpp b/src/ve/velib04a.cpp index a274feeac..6e8ebd047 100755 --- a/src/ve/velib04a.cpp +++ b/src/ve/velib04a.cpp @@ -638,10 +638,27 @@ bool TFatturazione_bolle::elabora(TLista_documenti& doc_in, TLista_documenti& do else 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 { TDocumento& d = doc_out[i]; + d.update_esenzione(); + d.put(DOC_DATAINIRIF, inirif); + d.put(DOC_DATAFINRIF, finrif); } return doc_out.items() > 0; } diff --git a/src/ve/velib04b.cpp b/src/ve/velib04b.cpp index b2b0afbbf..5ca25c23e 100755 --- a/src/ve/velib04b.cpp +++ b/src/ve/velib04b.cpp @@ -19,7 +19,6 @@ #include "../m770/perc.h" #include "../f9/f9lib.h" - void TMovimentoPN_VE::destroy_iva_row(int i) { if (i < 0) diff --git a/src/ve/velib04d.cpp b/src/ve/velib04d.cpp index 1340f6e88..00f8ba604 100755 --- a/src/ve/velib04d.cpp +++ b/src/ve/velib04d.cpp @@ -883,6 +883,33 @@ bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o { post_process_input(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; diff --git a/src/ve/velib06a.cpp b/src/ve/velib06a.cpp index 75250a785..53dca2feb 100755 --- a/src/ve/velib06a.cpp +++ b/src/ve/velib06a.cpp @@ -449,6 +449,7 @@ bool note_hndl( TMask_field& f, KEY key ) bool data_hndl( TMask_field& field, KEY key ) { TDocumento_mask& m = (TDocumento_mask &) field.mask(); + if (field.to_check(key)) { 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)) { const TDate datadoc(m.get(F_DATADOC)); + if (!datadoc.ok()) 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()) m.set(F_DATACAMBIO1, field.get(), TRUE); } diff --git a/src/ve/veuml.h b/src/ve/veuml.h index ea73b70df..f78a2edfb 100755 --- a/src/ve/veuml.h +++ b/src/ve/veuml.h @@ -136,7 +136,8 @@ #define F_DESCDC12 282 #define F_DATACOMP 291 #define F_DATAFCOMP 292 - +#define F_DATAINIRIF 293 +#define F_DATAFINRIF 294 //#define F_SELECT 101