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
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
16=3100
17=3500

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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

View File

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

View File

@ -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;
}

View File

@ -19,7 +19,6 @@
#include "../m770/perc.h"
#include "../f9/f9lib.h"
void TMovimentoPN_VE::destroy_iva_row(int i)
{
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(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;

View File

@ -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);
}

View File

@ -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