Patch level : 4.0 872

Files correlati     :  cg0.exe cg2.exe cg3.exe cg4.exe cg5.exe cg6.exe
Ricompilazione Demo : [ ]
Commento     :

Prima parte della liquidazione differita


git-svn-id: svn://10.65.10.50/trunk@16100 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2008-02-05 12:33:52 +00:00
parent 98b3c11d88
commit 20c8916d26
25 changed files with 98 additions and 34 deletions

View File

@ -33,7 +33,7 @@ class TCaus_app : public TRelation_application
TRecord_array * _rcaus_rec; TRecord_array * _rcaus_rec;
// Parametri ditta // Parametri ditta
bool _valuta, _saldaconto; bool _valuta, _saldaconto, _liqdiff;
int _anno_iva; int _anno_iva;
tipo_descr _last_descr; tipo_descr _last_descr;
@ -383,9 +383,9 @@ bool TCaus_app::tipomov_hndl (TMask_field& f, KEY k)
bool TCaus_app::mostra_campi() bool TCaus_app::mostra_campi()
{ {
TMask& m = curr_mask(); TMask& m = curr_mask();
const TString& codreg = m.get(F_COD_REG); const TString& codreg = m.get(F_COD_REG);
if (codreg.empty())
if (codreg.blank())
{ {
m.hide(F_AUTO_FAT); m.hide(F_AUTO_FAT);
m.hide(F_ALLEGAT); m.hide(F_ALLEGAT);
@ -420,6 +420,17 @@ bool TCaus_app::mostra_campi()
} }
else else
{ // codreg non vuoto { // codreg non vuoto
if (_liqdiff)
{
const TRegistro r(codreg, anno_iva());
const bool reg_vendite = r.iva() == iva_vendite && !r.corrispettivi();
if (!reg_vendite)
m.reset(F_LIQDIFF);
m.show(F_LIQDIFF, reg_vendite);
}
else
m.reset(F_LIQDIFF);
m.hide(F_OP_FINE_ANNO); m.hide(F_OP_FINE_ANNO);
m.enable(F_MOV_VALU, valuta()); m.enable(F_MOV_VALU, valuta());
@ -857,6 +868,7 @@ void TCaus_app::on_config_change()
_saldaconto = conf.get_bool("GesSal"); _saldaconto = conf.get_bool("GesSal");
_valuta = conf.get_bool("GesVal"); _valuta = conf.get_bool("GesVal");
_liqdiff = conf.get_bool("GesLiqDiff");
_anno_iva = 0; _anno_iva = 0;
TTable reg("REG"); TTable reg("REG");

View File

@ -35,6 +35,7 @@
#define F_PROVV 132 #define F_PROVV 132
#define F_CODCAUREG 133 #define F_CODCAUREG 133
#define F_REGSPIVA 134 #define F_REGSPIVA 134
#define F_LIQDIFF 135
#define SS_SEZIONE 102 #define SS_SEZIONE 102
#define SS_TIPOCF 103 #define SS_TIPOCF 103

View File

@ -276,24 +276,31 @@ END
BOOLEAN F_MOV_VALU BOOLEAN F_MOV_VALU
BEGIN BEGIN
PROMPT 2 12 "Movimento in valuta" PROMPT 2 11 "Movimento in valuta"
FIELD MOVVAL FIELD MOVVAL
GROUP 2 GROUP 2
END END
BOOLEAN F_SOLAIVA BOOLEAN F_SOLAIVA
BEGIN BEGIN
PROMPT 34 12 "Movimento di sola IVA" PROMPT 34 11 "Movimento di sola IVA"
FIELD SOLOIVA FIELD SOLOIVA
END END
BOOLEAN F_MOV_SEZ BOOLEAN F_MOV_SEZ
BEGIN BEGIN
PROMPT 34 12 "Movimento solo sezionale" PROMPT 34 11 "Movimento solo sezionale"
FIELD MOVSEZ FIELD MOVSEZ
FLAGS "H" FLAGS "H"
END END
BOOLEAN F_LIQDIFF
BEGIN
PROMPT 2 12 "Fattura di vendita a liquidazione differita"
FIELD LIQDIFF
FLAGS "H"
END
LIST F_PROVV 1 26 LIST F_PROVV 1 26
BEGIN BEGIN
PROMPT 2 13 "Movimento provvisorio " PROMPT 2 13 "Movimento provvisorio "

View File

@ -287,11 +287,19 @@ bool TPrimanota_application::read_caus(const char* cod, int year)
numrif.set_justify(iva == iva_acquisti ? _num_for : _num_cli); numrif.set_justify(iva == iva_acquisti ? _num_for : _num_cli);
numrif.set_trim(!numrif.right_justified()); numrif.set_trim(!numrif.right_justified());
activate_numrif(*m, false); activate_numrif(*m, false);
const TCausale & c = causale();
const bool av = causale().reg().agenzia_viaggi(); const bool av = c.reg().agenzia_viaggi();
m->show(F_DATA74TER, av); m->show(F_DATA74TER, av);
if (!av) m->reset(F_DATA74TER); if (!av) m->reset(F_DATA74TER);
const TRegistro & r = c.reg();
const bool reg_vendite = r.iva() == iva_vendite && !r.corrispettivi();
const bool liqdiff = _liqdiff && c.liqdiff()&& reg_vendite;
m->show(F_DATAINC, liqdiff);
if (!liqdiff) m->reset(F_DATAINC);
if (ins) if (ins)
{ {
const long protiva = causale().reg().protocol() + 1; const long protiva = causale().reg().protocol() + 1;
@ -493,6 +501,7 @@ void TPrimanota_application::on_config_change()
_ges_val = cnf.get_bool("GesVal"); _ges_val = cnf.get_bool("GesVal");
_ges_sal = cnf.get_bool("GesSal"); _ges_sal = cnf.get_bool("GesSal");
_npart_is_prot = cnf.get_bool("RifPro"); _npart_is_prot = cnf.get_bool("RifPro");
_liqdiff = cnf.get_bool("GesLiqDiff");
_num_cli = cnf.get_bool("NrCliDx"); _num_cli = cnf.get_bool("NrCliDx");
_num_for = cnf.get_bool("NrForDx"); _num_for = cnf.get_bool("NrForDx");

View File

@ -62,6 +62,7 @@
#define F_ADJUST_PRORATA 146 #define F_ADJUST_PRORATA 146
#define F_DATAINTRA 147 #define F_DATAINTRA 147
#define F_ADJUST_IVA 148 #define F_ADJUST_IVA 148
#define F_DATAINC 149
#define F_GRUPPO 180 #define F_GRUPPO 180
#define F_CONTO 181 #define F_CONTO 181

View File

@ -534,6 +534,14 @@ BEGIN
FIELD DATA74TER FIELD DATA74TER
END END
DATE F_DATAINC
BEGIN
PROMPT 52 15 "Data incasso "
WARNING "Data di incasso per liquidazione differita"
FIELD DATAINC
FLAGS "H"
END
NUMBER F_ANNORIF 4 NUMBER F_ANNORIF 4
BEGIN BEGIN
PROMPT 48 16 "Rif.partita " PROMPT 48 16 "Rif.partita "

View File

@ -35,6 +35,7 @@ class TPrimanota_application : public TRelation_application
bool _ges_val, _ges_sal; // Gestione valuta e saldaconto bool _ges_val, _ges_sal; // Gestione valuta e saldaconto
bool _num_cli, _num_for; // Riferimento partita allineato a destra bool _num_cli, _num_for; // Riferimento partita allineato a destra
bool _liqdiff; // Liquidazione differita
bool _npart_is_prot; // Riferimento partita = n. prot. IVA anziche' doc bool _npart_is_prot; // Riferimento partita = n. prot. IVA anziche' doc
bool _skip_giornale_check; // Ignora controllo data stampa libro giornale bool _skip_giornale_check; // Ignora controllo data stampa libro giornale

View File

@ -132,6 +132,9 @@ bool TCausale::valintra() const
bool TCausale::soloiva() const bool TCausale::soloiva() const
{ return _rec.get_bool(CAU_SOLOIVA); } { return _rec.get_bool(CAU_SOLOIVA); }
bool TCausale::liqdiff() const
{ return _rec.get_bool(CAU_LIQDIFF); }
int TCausale::regime_speciale() const int TCausale::regime_speciale() const
{ return _rec.get_int(CAU_REGSPIVA); } { return _rec.get_int(CAU_REGSPIVA); }

View File

@ -38,6 +38,7 @@ public:
bool intra() const; bool intra() const;
bool valintra() const; bool valintra() const;
bool soloiva() const; bool soloiva() const;
bool liqdiff() const;
char provvisorio() const { return _provvisorio; } char provvisorio() const { return _provvisorio; }
const TString& causale_inc_imm() const; const TString& causale_inc_imm() const;
const TString& causale_reg_iva() const; const TString& causale_reg_iva() const;

View File

@ -5,6 +5,10 @@
#include <automask.h> #include <automask.h>
#endif #endif
#ifndef __TREE_H
#include <tree.h>
#endif
#ifndef __CGLIB01_H__ #ifndef __CGLIB01_H__
#include "cglib01.h" #include "cglib01.h"
#endif #endif

View File

@ -1810,6 +1810,7 @@ bool TListaMov_application::segnala_errori_ogniriga()
bool TListaMov_application::segnala_errori_iva() bool TListaMov_application::segnala_errori_iva()
{ {
TLocalisamfile& rmoviva = current_cursor()->file(LF_RMOVIVA); TLocalisamfile& rmoviva = current_cursor()->file(LF_RMOVIVA);
const TRectype& mv = current_cursor()->curr(LF_RMOV);
if (current_cursor()->is_first_match(LF_RMOVIVA)) if (current_cursor()->is_first_match(LF_RMOVIVA))
{ {
@ -1831,7 +1832,7 @@ bool TListaMov_application::segnala_errori_iva()
} }
const TString4 cod = rec.get(RMI_CODIVA); const TString4 cod = rec.get(RMI_CODIVA);
real percind; real percind;
const int tipodet = codind2tipodet(rec.get_char(RMI_TIPODET), percind); const int tipodet = get_tipodet_from_rmi(rec, mv, percind);
const int tipocr = rec.get_int(RMI_TIPOCR); const int tipocr = rec.get_int(RMI_TIPOCR);
const TRectype& tab_iva = cache().get("%IVA", cod); const TRectype& tab_iva = cache().get("%IVA", cod);
if (!tab_iva.empty()) if (!tab_iva.empty())

View File

@ -139,7 +139,7 @@ bool TLista_fatture::filter_func1(const TRelation *r)
if (a._tipo == indetraibile) if (a._tipo == indetraibile)
{ {
real percind; real percind;
const int tipodet = get_tipodet_from_rmi(riv, percind); const int tipodet = get_tipodet_from_rmi(riv, mov, percind);
if (tipodet == 0 || percind.is_zero()) if (tipodet == 0 || percind.is_zero())
return false; return false;
@ -391,10 +391,11 @@ bool TLista_fatture::preprocess_page(int file, int counter)
{ {
TCursor* curs = current_cursor(); TCursor* curs = current_cursor();
const TRectype& rec = curs->curr(); const TRectype& rec = curs->curr();
const TRectype& mov = curs->curr(LF_MOV);
_ragsoc = curs->curr(LF_CLIFO).get(CLI_RAGSOC); _ragsoc = curs->curr(LF_CLIFO).get(CLI_RAGSOC);
_ragsoc.strip_double_spaces(); _ragsoc.strip_double_spaces();
real percind; real percind;
const int tipodet = get_tipodet_from_rmi(rec, percind); const int tipodet = get_tipodet_from_rmi(rec, mov, percind);
if (_tipo == indetraibile && percind < CENTO) if (_tipo == indetraibile && percind < CENTO)
{ {
const int dec = TCurrency::get_firm_dec(); const int dec = TCurrency::get_firm_dec();
@ -435,7 +436,6 @@ bool TLista_fatture::preprocess_page(int file, int counter)
_tp_doc = 0.0; _tp_imp = 0.0; _tp_iva = 0.0; _tp_doc = 0.0; _tp_imp = 0.0; _tp_iva = 0.0;
} }
const TRectype& mov = curs->curr(LF_MOV);
real doc = mov.get_real(MOV_TOTDOC); real doc = mov.get_real(MOV_TOTDOC);
real imp = rec.get_real(RMI_IMPONIBILE); real imp = rec.get_real(RMI_IMPONIBILE);
real iva = rec.get_real(RMI_IMPOSTA); real iva = rec.get_real(RMI_IMPOSTA);
@ -707,7 +707,7 @@ void TLista_fatture::set_page(int file, int counter)
else else
{ {
real percind; real percind;
const int tipodet = get_tipodet_from_rmi(current_cursor()->curr(), percind); const int tipodet = get_tipodet_from_rmi(current_cursor()->curr(), current_cursor()->curr(LF_MOV), percind);
set_row(nriga,"@110g%d", tipodet); set_row(nriga,"@110g%d", tipodet);
} }
set_row(nriga,"@112g@15n",FLD(LF_RMOVIVA,RMI_IMPOSTA)); set_row(nriga,"@112g@15n",FLD(LF_RMOVIVA,RMI_IMPOSTA));

View File

@ -336,6 +336,8 @@ bool TLiquidazione_app::user_create()
TRectype to(from); TRectype to(from);
TDate f(1, 1, atoi(_year)); TDate f(1, 1, atoi(_year));
TDate t(1, _month == 13 ? 12 : _month, atoi(_year)); TDate t(1, _month == 13 ? 12 : _month, atoi(_year));
// qui se liquidazione diff. su ditta si parte da year-4 e filtro su anno o data liquid diff sul movim nel periodo
t.set_end_month(); t.set_end_month();
from.put(MOV_DATAREG, f); from.put(MOV_DATAREG, f);
to.put(MOV_DATAREG, t); to.put(MOV_DATAREG, t);

View File

@ -848,7 +848,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
// da evitare di dover controllare mese e anno sul PIM // da evitare di dover controllare mese e anno sul PIM
const bool was_riv = (tipoiva != "NS") && (tipocr == 1 || tipocr ==5); const bool was_riv = (tipoiva != "NS") && (tipocr == 1 || tipocr ==5);
real percind; real percind;
const int tipoind = get_tipodet_from_rmi(_rmoviva->curr(), percind); const int tipoind = get_tipodet_from_rmi(_rmoviva->curr(), _mov->curr(), percind);
const real imponibile_orig = _rmoviva->get_real(RMI_IMPONIBILE); const real imponibile_orig = _rmoviva->get_real(RMI_IMPONIBILE);
const real imposta_orig = _rmoviva->get_real(RMI_IMPOSTA); const real imposta_orig = _rmoviva->get_real(RMI_IMPOSTA);
@ -1963,7 +1963,7 @@ void TLiquidazione_app::iva11_set_arr_phase_1(const TString& codatt)
// A partire dalla versione 3.1 la gestione dell'IVA 11 non viene piu' supportata ... // A partire dalla versione 3.1 la gestione dell'IVA 11 non viene piu' supportata ...
// ... ergo non stiamo a gestire la indetraibilita' parziale // ... ergo non stiamo a gestire la indetraibilita' parziale
real percind; real percind;
const int tipodet = get_tipodet_from_rmi(_rmoviva->curr(), percind); const int tipodet = get_tipodet_from_rmi(_rmoviva->curr(), _mov->curr(), percind);
real imponibile = _rmoviva->get_real(RMI_IMPONIBILE); real imponibile = _rmoviva->get_real(RMI_IMPONIBILE);
real imposta = _rmoviva->get_real(RMI_IMPOSTA); real imposta = _rmoviva->get_real(RMI_IMPOSTA);
const TString4 codiva = _iva->get("CODTAB"); const TString4 codiva = _iva->get("CODTAB");

View File

@ -1294,7 +1294,9 @@ int TStampa_registri_app::stampa_prospetto(int rr, bool print_prec)
rr++; rr++;
set_row(rr, TR("Legenda Tipo Operazione: 1=operazione intracomunitaria 2=AF art.34 comma 3")); set_row(rr, TR("Legenda Tipo Operazione: 1=operazione intracomunitaria 2=AF art.34 comma 3"));
if (_auto_intraf) if (_auto_intraf)
set_row(rr, FR("@78g3=operazione intracomunitaria e AF art.34 comma 3")); set_row(rr, FR("@78g3=operazione intracomunitaria e AF art.34 comma 3 4=Fattura a liquidazione differita"));
else
set_row(rr, FR("@78g4=Fattura a liquidazione differita"));
rr++; rr++;
_stampa = _st_tot_fin; _stampa = _st_tot_fin;
@ -2003,6 +2005,7 @@ bool TStampa_registri_app::preprocess_page(int file, int counter)
TString16 codval = mov.get(MOV_CODVALI); TString16 codval = mov.get(MOV_CODVALI);
real corrval = mov.get_real(MOV_CORRVALUTA); real corrval = mov.get_real(MOV_CORRVALUTA);
bool autof = caus.get_bool(CAU_AUTOFATT); bool autof = caus.get_bool(CAU_AUTOFATT);
bool liqdiff = caus.get_bool(CAU_LIQDIFF);
TString80 descrcau = caus.get(CAU_DESCR); TString80 descrcau = caus.get(CAU_DESCR);
real totdoc = mov.get_real(MOV_TOTDOC); real totdoc = mov.get_real(MOV_TOTDOC);
@ -2229,6 +2232,8 @@ bool TStampa_registri_app::preprocess_page(int file, int counter)
tipo_op = "1"; tipo_op = "1";
else if (autof) else if (autof)
tipo_op = "2"; tipo_op = "2";
else if (liqdiff)
tipo_op = "4";
set_row(_r, "@66g%s", (const char*) tipo_op); set_row(_r, "@66g%s", (const char*) tipo_op);

View File

@ -62,6 +62,7 @@
#define CHK_INTRTR 357 #define CHK_INTRTR 357
#define CHK_DTCFPG 358 #define CHK_DTCFPG 358
#define CHK_RIFPRO 359 #define CHK_RIFPRO 359
#define CHK_LIQDIF 360
// gruppi // gruppi
#define GROUP_SALDACONTO 1 #define GROUP_SALDACONTO 1

View File

@ -88,6 +88,14 @@ BEGIN
GROUP GROUP_CONTABILITA GROUP GROUP_CONTABILITA
END END
BOOLEAN CHK_LIQDIF
BEGIN
PROMPT 40 7 "Gestione liquidazione differita"
HELP "Indicare se e' attivata anche la gestione della liquidazione differita delle fatture"
FIELD GesLiqDiff
GROUP GROUP_CONTABILITA
END
GROUPBOX DLG_NULL 76 7 GROUPBOX DLG_NULL 76 7
BEGIN BEGIN
PROMPT 2 12 "@bParametri saldaconto" PROMPT 2 12 "@bParametri saldaconto"

View File

@ -906,7 +906,7 @@ bool TRic_ListaMov::controlla_riva()
//_n_rec = rec.get_int(RMI_ANNOES); //_n_rec = rec.get_int(RMI_ANNOES);
codiva = rec.get(RMI_CODIVA); codiva = rec.get(RMI_CODIVA);
real percind; real percind;
const int tipodet = get_tipodet_from_rmi(rec, percind); const int tipodet = get_tipodet_from_rmi(rec, current_cursor()->file(LF_MOV).curr(), percind);
tipocr = rec.get_int(RMI_TIPOCR); tipocr = rec.get_int(RMI_TIPOCR);
gruppocr = rec.get_int(RMI_GRUPPO); gruppocr = rec.get_int(RMI_GRUPPO);
contocr = rec.get_int(RMI_CONTO); contocr = rec.get_int(RMI_CONTO);
@ -2296,7 +2296,7 @@ bool TRic_ListaMov::preprocess_page(int file,int counter)
int numrig = rmoviva.get_int(RMI_NUMRIG); int numrig = rmoviva.get_int(RMI_NUMRIG);
_tipocr = rmoviva.get_int(RMI_TIPOCR); _tipocr = rmoviva.get_int(RMI_TIPOCR);
real percind; real percind;
_tipod = get_tipodet_from_rmi(rmoviva, percind); _tipod = get_tipodet_from_rmi(rmoviva, current_cursor()->file(LF_MOV).curr(), percind);
_codiva = rmoviva.get(RMI_CODIVA); _codiva = rmoviva.get(RMI_CODIVA);
//_n_rec = cur->curr(LF_RMOVIVA).get_int(RMI_ANNOES); //_n_rec = cur->curr(LF_RMOVIVA).get_int(RMI_ANNOES);
_gruppocr = rmoviva.get_int(RMI_GRUPPO); _gruppocr = rmoviva.get_int(RMI_GRUPPO);

View File

@ -731,7 +731,7 @@ bool TVar_mov::setta_campi_maschera_iva(TMask& m)
TString codiva (_tiva->get (RMI_CODIVA)); TString codiva (_tiva->get (RMI_CODIVA));
real imposta (_tiva->get_real(RMI_IMPOSTA)); real imposta (_tiva->get_real(RMI_IMPOSTA));
real percind; real percind;
int tipodet = get_tipodet_from_rmi(_tiva->curr(), percind); int tipodet = get_tipodet_from_rmi(_tiva->curr(), *_rec_mov, percind);
int tipocr = _tiva->get_int (RMI_TIPOCR); int tipocr = _tiva->get_int (RMI_TIPOCR);
int gruppo = _tiva->get_int (RMI_GRUPPO); int gruppo = _tiva->get_int (RMI_GRUPPO);
int conto = _tiva->get_int (RMI_CONTO); int conto = _tiva->get_int (RMI_CONTO);

View File

@ -1324,7 +1324,9 @@ bool TInv_cont::invio_mov_IVA()
record.overwrite(str,43); //Tipo costo/ricavo record.overwrite(str,43); //Tipo costo/ricavo
real percind; real percind;
const int tipodet = get_tipodet_from_rmi(_triva->curr(), percind); const TRectype & mov = cache().get(LF_MOV, nreg);
const int tipodet = get_tipodet_from_rmi(_triva->curr(), mov, percind);
str.format("%01d", tipodet); str.format("%01d", tipodet);
record.overwrite(str,44); //Tipo detraibilita' record.overwrite(str,44); //Tipo detraibilita'

View File

@ -44,14 +44,11 @@ TDate TPagamento::_rata_dfield(int n, int f) const
/* Funzione sgradita al nuovo C ed anche a Guy: static bleah! /* Funzione sgradita al nuovo C ed anche a Guy: static bleah!
const char* TPagamento::_rata_sfield(int n, int f) const const char* TPagamento::_rata_sfield(int n, int f) const
{ {
static char kak[16];
TToken_string& t = (TToken_string&)_rate[n]; TToken_string& t = (TToken_string&)_rate[n];
const char* k = t.get(f); TString & s = get_tmp_string(30);
if (k != NULL)
strncpy(kak, k, 16); s = t.get(f);
else return s;
kak[0] = '\0';
return kak;
} }
*/ */

View File

@ -1,3 +1,3 @@
23 23
0 0
$mov|0|0|365|0|Movimenti di prima nota||| $mov|0|0|373|0|Movimenti di prima nota|||

View File

@ -1,5 +1,5 @@
23 23
45 46
ANNOES|9|4|0|Codice esercizio ANNOES|9|4|0|Codice esercizio
NUMREG|3|7|0|Numero di operazione NUMREG|3|7|0|Numero di operazione
DATAREG|5|8|0|Data operazione DATAREG|5|8|0|Data operazione
@ -45,6 +45,7 @@ DPROVV|1|1|0|Documento originale PROVV
DANNO|2|4|0|Documento originale ANNO DANNO|2|4|0|Documento originale ANNO
DCODNUM|1|4|0|Documento originale CODNUM DCODNUM|1|4|0|Documento originale CODNUM
DNDOC|3|7|0|Documento originale NDOC DNDOC|3|7|0|Documento originale NDOC
DATAINC|5|8|0|Data di incasso per liquidazione differita
3 3
NUMREG| NUMREG|
DATAREG+NUMREG| DATAREG+NUMREG|

View File

@ -1,4 +1,3 @@
26 26
0 0
$caus|0|0|84|0|Causali contabili||| $caus|0|0|85|0|Causali contabili|||

View File

@ -1,5 +1,5 @@
26 26
24 25
CODCAUS|1|3|0|Codice causale CODCAUS|1|3|0|Codice causale
DESCR|1|50|0|Descrizione causale DESCR|1|50|0|Descrizione causale
TIPODOC|1|2|0|Tipo documento TIPODOC|1|2|0|Tipo documento
@ -24,6 +24,7 @@ SOLOIVA|8|1|0|Movimento di sola IVA
PROVV|1|1|0|Tipo movimento (" " Normale, "P" Provvisorio cancellabile, "C" Provvisorio da cepiti) PROVV|1|1|0|Tipo movimento (" " Normale, "P" Provvisorio cancellabile, "C" Provvisorio da cepiti)
REGSPIVA|2|2|0|Regimi speciali IVA REGSPIVA|2|2|0|Regimi speciali IVA
CODCAUREG|1|3|0|Causale regolarizzazione IVA CODCAUREG|1|3|0|Causale regolarizzazione IVA
LIQDIFF|8|1|0|Fattue a liquidazione differita
2 2
CODCAUS| CODCAUS|
UPPER(DESCR)|X UPPER(DESCR)|X