From fa482003202db44a09bfe1036006ea1dcbd7a4be Mon Sep 17 00:00:00 2001 From: bonazzi Date: Sat, 25 Feb 2017 15:51:27 +0000 Subject: [PATCH] Patch level : 12.0 358 Files correlati : f171.trr f171.dir cg4.exe Corretto il calcolo liquidazione per l'IVA indetraibile e i movimenti cper cassa con IVA normale ed esente. git-svn-id: svn://10.65.10.50/branches/R_10_00@23664 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- src/cg/cg4301.cpp | 465 +++++++++++++++++++++++----------------------- src/cg/cg4304.cpp | 2 +- src/cg/f171.dir | 6 +- src/cg/f171.trr | 49 ++--- src/cg/ivadiff.h | 1 + 5 files changed, 265 insertions(+), 258 deletions(-) diff --git a/src/cg/cg4301.cpp b/src/cg/cg4301.cpp index 6ae202be5..99a409b1f 100755 --- a/src/cg/cg4301.cpp +++ b/src/cg/cg4301.cpp @@ -1457,7 +1457,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array & #ifdef DBG const long nr = _mov->get_long(MOV_NUMREG); - if (nr == 115414 || nr == 155995) + if (nr == 29167 || nr == 29171 ) int i = 1 ; #endif @@ -1466,228 +1466,236 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array & sosp_imp != vol_affari) tot_reg += imponibile_orig; - if (bIsMovDiff && tm == tm_fattura) - { - const TDate datareg = _mov->get(MOV_DATAREG); + bool bRowIsMovDiff = bIsMovDiff && imposta_orig != ZERO; - sezfat = tipomov == vendita ? 'D' : 'A'; - id.put(RMI_NUMREG, _rmoviva->get(RMI_NUMREG)); - id.put(RMI_NUMRIG, _rmoviva->get(RMI_NUMRIG)); - id.put("NUMPRO", 0); - id.put(PART_TIPOMOV, tm); - CHECKD(rmi_tipoatt > 0, "Invalid tipo att ", rmi_tipoatt); - id.put("TIPOATT", rmi_tipoatt); - id.put("ANNOLIQ", datareg.year()); + analizza_IVA(imponibile_orig, imposta_orig, percind, corrisp, false, codiva, + impon_det, impos_det, impon_ind, impos_ind); + for (int is_detr_diff = 1; is_detr_diff >= 0; is_detr_diff--) + { + real diff_impr = (is_detr_diff == 0) ? impon_det : impon_ind; + real diff_ivar = (is_detr_diff == 0) ? impos_det : impos_ind; + real diff_totr = diff_impr + diff_ivar; + + if (diff_totr == ZERO) + continue; + if (bRowIsMovDiff && tm == tm_fattura) + { + const TDate datareg = _mov->get(MOV_DATAREG); + + sezfat = tipomov == vendita ? 'D' : 'A'; + id.put(RMI_NUMREG, _rmoviva->get(RMI_NUMREG)); + id.put(RMI_NUMRIG, _rmoviva->get(RMI_NUMRIG)); + id.put("NUMPRO", 0); + id.put(PART_TIPOMOV, tm); + CHECKD(rmi_tipoatt > 0, "Invalid tipo att ", rmi_tipoatt); + id.put("TIPOATT", rmi_tipoatt); + id.put("ANNOLIQ", datareg.year()); - int mesereg = datareg.month(); - if (_freqviva[0] == 'T') - { - const int resto = mesereg % 3; - if (resto > 0) - mesereg += 3-resto; - } - - id.put("MESELIQ", mesereg); - id.put("TIPOIVA", tipomov == 2 ? 2 : 1); - id.put("TIPODIFF", iva_cass ? 2 : 1); - id.put(MOV_DATAREG, _mov->get(MOV_DATADOC)); - id.put(RMI_CODIVA, codiva); - id.put("SEZIONE", sezfat); - - id.put("IMPORTO", imponibile_orig+imposta_orig); - id.put(RMI_IMPONIBILE, imponibile_orig); - id.put(RMI_IMPOSTA, imposta_orig); - - const int ew = id.write_rewrite(); - if (ew != NOERR) - cantwrite_box(id.description()); - } - - if (!pagscatt.empty()) - { - const char sezpag = tipomov == vendita ? 'A' : 'D'; - real totfat = _mov->get(MOV_TOTDOC); - real tot = totfat; - - FOR_EACH_ARRAY_ITEM(pagscatt, r, obj) - { - const TRectype& pagsca = *(TRectype*)obj; - const int nrigp = pagsca.get_int(PAGSCA_NRIGP); - - id.zero(); - id.put(RMI_NUMREG, _rmoviva->get(RMI_NUMREG)); - id.put(RMI_NUMRIG, _rmoviva->get(RMI_NUMRIG)); - CHECKD(nrigp > 0, "Invalid NRIGP ", nrigp); - id.put("NUMPRO", min(nrigp, 999)); - if (id.read(_isequal, _lock) != NOERR) - { - id.zero(); - id.put(RMI_NUMREG, _rmoviva->get(RMI_NUMREG)); - id.put(RMI_NUMRIG, _rmoviva->get(RMI_NUMRIG)); - id.put("NUMPRO", min(nrigp, 999)); - if (id.write() != NOERR) - error_box("Errore %d in creazione record IVADIFF", id.status()); - } - - id.put(MOV_DATAREG, _mov->get(MOV_DATADOC)); - CHECKD(rmi_tipoatt > 0, "Invalid tipo att ", rmi_tipoatt); - id.put("TIPOATT", rmi_tipoatt); - id.put("TIPOIVA", tipomov == 2 ? 2 : 1); - id.put("TIPODIFF", iva_cass ? 2 : 1); - id.put(RMI_CODIVA, codiva); - - TImporto pagtmp; - bool ultimo = false; - long nregpag; - int nrigpag; - - tipo_movimento tipomov_pag = tm_pagamento; - if (nrigp > 0 && nrigp < 9999) - { - const TPartita& p = arrpart.partita(pagsca); - const TRiga_partite& rp = p.riga(nrigp); - - nregpag = rp.get_long(PART_NREG); - nrigpag = rp.get_int(PART_NUMRIG); - tipomov_pag = rp.tipo(); - id.put(PART_TIPOMOV, tipomov_pag); - id.put("NUMREGP", nregpag); - id.put("NUMRIGP", nrigpag); - TDate d = rp.get(PART_DATAPAG); - if (!d.ok()) - d = rp.get(PART_DATADOC); - if (!d.ok()) - d = rp.get(PART_DATAREG); - id.put("DATAREGP", d); - id.put("ANNOLIQ", d.year()); - pagtmp = p.importo_pagsca(pagsca); - pagtmp.normalize(sezpag); - ultimo = (r == pagscatt.last()) && partita_chiusa_al(p, fine); - } - else - { - // Falso record generato da datainc - nregpag = _mov->get_long(MOV_NUMREG); - nrigpag = nrigp; - - id.put(PART_TIPOMOV, tipomov_pag); - id.put("NUMREGP", nregpag); - id.put("NUMRIGP", nrigp); - id.put("DATAREGP", _mov->get(MOV_DATAINC)); - id.put("ANNOLIQ", year_int); - pagtmp.set(sezpag, pagsca.get_real(PAGSCA_IMPORTO)); - ultimo = true; - } - - int meseliq = id.get_date("DATAREGP").month(); - if (_freqviva[0] == 'T') - { - const int resto = meseliq % 3; - if (resto > 0) - meseliq += 3-resto; - } - id.put("MESELIQ", meseliq); - id.put("SEZIONE", pagtmp.sezione()); - - const long numregp = id.get_long(ID_NUMREGP); - const int numrigp = nrigp; - real val_imp = pagtmp.valore() * lordo_orig / tot; - real val_iva; - - if (ultimo) + int mesereg = datareg.month(); + if (_freqviva[0] == 'T') { - TRectype svidrec(id.curr()); - TLocalisamfile rid(LF_IVADIFF); - const long numreg = _rmoviva->get_long(RMI_NUMREG); - const int numrig = _rmoviva->get_int(RMI_NUMRIG); - const int numpro = id.get_int(ID_NUMPRO); - - rid.put(MOV_NUMREG, numreg); - rid.put(RMI_NUMRIG, numrig); - val_iva = imposta_orig; + const int resto = mesereg % 3; + if (resto > 0) + mesereg += 3-resto; + } - bool pag_found = false; - - int err = rid.read(_isgteq); - - for (; err == NOERR && rid.get_long(RMI_NUMREG) == numreg && rid.get_int(RMI_NUMRIG) == numrig; err = rid.next()) + id.put("MESELIQ", mesereg); + id.put("TIPOIVA", tipomov == 2 ? 2 : 1); + id.put(ID_INDETR, is_detr_diff > 0); + id.put("TIPODIFF", iva_cass ? 2 : 1); + id.put(MOV_DATAREG, _mov->get(MOV_DATADOC)); + id.put(RMI_CODIVA, codiva); + id.put("SEZIONE", sezfat); + + id.put("IMPORTO", diff_totr); + id.put(RMI_IMPONIBILE, diff_impr); + id.put(RMI_IMPOSTA, diff_ivar); + + const int ew = id.write_rewrite(); + if (ew != NOERR) + cantwrite_box(id.description()); + } + + if (!pagscatt.empty()) + { + const char sezpag = tipomov == vendita ? 'A' : 'D'; + real totfat = _mov->get(MOV_TOTDOC); + real tot = totfat; + + FOR_EACH_ARRAY_ITEM(pagscatt, r, obj) + { + const TRectype& pagsca = *(TRectype*)obj; + const int nrigp = pagsca.get_int(PAGSCA_NRIGP); + + id.zero(); + id.put(RMI_NUMREG, _rmoviva->get(RMI_NUMREG)); + id.put(RMI_NUMRIG, _rmoviva->get(RMI_NUMRIG)); + CHECKD(nrigp > 0, "Invalid NRIGP ", nrigp); + id.put("NUMPRO", min(nrigp, 999)); + if (id.read(_isequal, _lock) != NOERR) { - const int ridnumpro = rid.get_int(ID_NUMPRO); - const tipo_movimento ridtipopag = (tipo_movimento) rid.get_int(PART_TIPOMOV); - - if (ridtipopag != tm_fattura && ridtipopag != tm_nessuno &&ridnumpro != numpro) + id.zero(); + id.put(RMI_NUMREG, _rmoviva->get(RMI_NUMREG)); + id.put(RMI_NUMRIG, _rmoviva->get(RMI_NUMRIG)); + id.put("NUMPRO", min(nrigp, 999)); + if (id.write() != NOERR) + error_box("Errore %d in creazione record IVADIFF", id.status()); + } + + id.put(MOV_DATAREG, _mov->get(MOV_DATADOC)); + CHECKD(rmi_tipoatt > 0, "Invalid tipo att ", rmi_tipoatt); + id.put("TIPOATT", rmi_tipoatt); + id.put("TIPOIVA", tipomov == 2 ? 2 : 1); + id.put(ID_INDETR, is_detr_diff > 0); + id.put("TIPODIFF", iva_cass ? 2 : 1); + id.put(RMI_CODIVA, codiva); + + TImporto pagtmp; + bool ultimo = false; + long nregpag; + int nrigpag; + tipo_movimento tipomov_pag = tm_pagamento; + + if (nrigp > 0 && nrigp < 9999) + { + const TPartita& p = arrpart.partita(pagsca); + const TRiga_partite& rp = p.riga(nrigp); + + nregpag = rp.get_long(PART_NREG); + nrigpag = rp.get_int(PART_NUMRIG); + tipomov_pag = rp.tipo(); + id.put(PART_TIPOMOV, tipomov_pag); + id.put("NUMREGP", nregpag); + id.put("NUMRIGP", nrigpag); + TDate d = rp.get(PART_DATAPAG); + if (!d.ok()) + d = rp.get(PART_DATADOC); + if (!d.ok()) + d = rp.get(PART_DATAREG); + id.put("DATAREGP", d); + id.put("ANNOLIQ", d.year()); + pagtmp = p.importo_pagsca(pagsca); + pagtmp.normalize(sezpag); + ultimo = (r == pagscatt.last()) && partita_chiusa_al(p, fine); + } + else + { + // Falso record generato da datainc + nregpag = _mov->get_long(MOV_NUMREG); + nrigpag = nrigp; + + id.put(PART_TIPOMOV, tipomov_pag); + id.put("NUMREGP", nregpag); + id.put("NUMRIGP", nrigp); + id.put("DATAREGP", _mov->get(MOV_DATAINC)); + id.put("ANNOLIQ", year_int); + pagtmp.set(sezpag, pagsca.get_real(PAGSCA_IMPORTO)); + ultimo = true; + } + + int meseliq = id.get_date("DATAREGP").month(); + if (_freqviva[0] == 'T') + { + const int resto = meseliq % 3; + if (resto > 0) + meseliq += 3-resto; + } + id.put("MESELIQ", meseliq); + id.put("SEZIONE", pagtmp.sezione()); + + const long numregp = id.get_long(ID_NUMREGP); + const int numrigp = nrigp; + real val_imp = pagtmp.valore() * diff_totr / tot; + real val_iva; + + if (ultimo && (is_detr_diff == 0)) + { + TRectype svidrec(id.curr()); + TLocalisamfile rid(LF_IVADIFF); + const long numreg = _rmoviva->get_long(RMI_NUMREG); + const int numrig = _rmoviva->get_int(RMI_NUMRIG); + const int numpro = id.get_int(ID_NUMPRO); + + rid.put(MOV_NUMREG, numreg); + rid.put(RMI_NUMRIG, numrig); + val_iva = diff_ivar; + + bool pag_found = false; + + int err = rid.read(_isgteq); + + for (; err == NOERR && rid.get_long(RMI_NUMREG) == numreg && rid.get_int(RMI_NUMRIG) == numrig; err = rid.next()) { - pag_found = true; - if (sezfat != sezpag) - val_iva -= rid.get_real(RMI_IMPOSTA); - else - val_iva += rid.get_real(RMI_IMPOSTA); + const int ridnumpro = rid.get_int(ID_NUMPRO); + const tipo_movimento ridtipopag = (tipo_movimento) rid.get_int(PART_TIPOMOV); + + if (ridtipopag != tm_fattura && ridtipopag != tm_nessuno &&ridnumpro != numpro) + { + pag_found = true; + if (sezfat != sezpag) + val_iva -= rid.get_real(RMI_IMPOSTA); + else + val_iva += rid.get_real(RMI_IMPOSTA); + } + } + if (!pag_found) + val_iva = civa.scorpora(val_imp, TCurrency::get_firm_dec()); + else + civa.scorpora(val_imp, TCurrency::get_firm_dec()); + id.curr() = svidrec; + } + else + val_iva = civa.scorpora(val_imp, TCurrency::get_firm_dec()); + + id.put("IMPORTO", val_imp + val_iva); + id.put(RMI_IMPONIBILE, val_imp); + id.put(RMI_IMPOSTA, val_iva); + + if (tipomov_pag >= tm_pagamento && is_detr_diff == 0) + { + incdiff_imp += val_imp; + incdiff_iva += val_iva; + } + + int err = id.rewrite(); + + if (err != NOERR) + error_box("Errore %d in aggiornamento file IVADIFF", err); + LOG_IVA_DIFF(id.curr()); + + // 18-06-2014 Aggiorna flag di chiusura IVADIFF solo nei mesi normali, ma lascialo stare se _isannual + const long numreg = _rmoviva->get_long(RMI_NUMREG); + if (numreg > 0 && !_isannual) // Chiude o riapre la partita + { + TISAM_recordset recset("USE IVADIFF\nFROM NUMREG=#NR\nTO NUMREG=#NR"); + recset.set_var("#NR", numreg); + TLocalisamfile& id = recset.cursor()->file(); + for (bool ok = recset.move_first(); ok; ok = recset.move_next()) + { + const bool chiusa = id.get_bool("CHIUSA"); + if (chiusa != ultimo) + { + id.put("CHIUSA", ultimo); + id.rewrite(); + } } } - if (!pag_found) - val_iva = civa.scorpora(val_imp, TCurrency::get_firm_dec()); - else - civa.scorpora(val_imp, TCurrency::get_firm_dec()); - id.curr() = svidrec; } - else - val_iva = civa.scorpora(val_imp, TCurrency::get_firm_dec()); - - id.put("IMPORTO", val_imp + val_iva); - id.put(RMI_IMPONIBILE, val_imp); - id.put(RMI_IMPOSTA, val_iva); - - if (tipomov_pag >= tm_pagamento) - { - incdiff_imp += val_imp; - incdiff_iva += val_iva; - } - - int err = id.rewrite(); - - if (err != NOERR) - error_box("Errore %d in aggiornamento file IVADIFF", err); - LOG_IVA_DIFF(id.curr()); - - // 18-06-2014 Aggiorna flag di chiusura IVADIFF solo nei mesi normali, ma lascialo stare se _isannual - const long numreg = _rmoviva->get_long(RMI_NUMREG); - if (numreg > 0 && !_isannual) // Chiude o riapre la partita - { - TISAM_recordset recset("USE IVADIFF\nFROM NUMREG=#NR\nTO NUMREG=#NR"); - recset.set_var("#NR", numreg); - TLocalisamfile& id = recset.cursor()->file(); - for (bool ok = recset.move_first(); ok; ok = recset.move_next()) - { - const bool chiusa = id.get_bool("CHIUSA"); - if (chiusa != ultimo) - { - id.put("CHIUSA", ultimo); - id.rewrite(); - } - } - } - } - if (is_date_ok(date, month, liqmonth, year_int)) // 5-3-2014 - { - diff_imp = imponibile_orig; - diff_iva = imposta_orig; - } - } - else - { - if (bIsMovDiff) - { - if (is_date_ok(date, month, liqmonth, year_int)) // 5-3-2014 - { - diff_imp = imponibile_orig; - diff_iva = imposta_orig; - } + if (is_date_ok(date, month, liqmonth, year_int) && is_detr_diff == 0) // 5-3-2014 + { + diff_imp = diff_impr; + diff_iva = diff_ivar; + } } else - analizza_IVA(imponibile_orig, imposta_orig, percind, corrisp, false, codiva, - impon_det, impos_det, impon_ind, impos_ind); - } - + { + if (is_date_ok(date, month, liqmonth, year_int) && is_detr_diff == 0) // 5-3-2014 + { + diff_imp = diff_impr; + diff_iva = diff_ivar; + } + } + } // Filling dell'array per IVA11 if (_is_interactive && month == 13) @@ -1730,7 +1738,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array & codreg = comune.get_int(COM_CODREG) + 1; } - if (bIsMovDiff) + if (bRowIsMovDiff) { vt_imponibile[codreg] += incdiff_imp; vt_imposta[codreg] += incdiff_iva; @@ -1820,21 +1828,19 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array & */ } + bool bMovDiffToAdd = true; + for (int is_detraibile = 0; is_detraibile < 2; is_detraibile++) { - const int tipodet = is_detraibile ? 0 : tipoind; - const real imponibile = is_detraibile ? impon_det : impon_ind; - const real imposta = is_detraibile ? impos_det : impos_ind; + const int tipodet = is_detraibile == 0 ? 0 : tipoind; + real imponibile = is_detraibile == 0 ? impon_det : impon_ind; + real imposta = is_detraibile == 0? impos_det : impos_ind; - if ((imponibile.is_zero() && imposta.is_zero()) && - (bIsMovDiff && - (is_detraibile > 0 || - (diff_imp.is_zero() && diff_iva.is_zero() && - incdiff_imp.is_zero() && incdiff_iva.is_zero()) - ) - ) - ) - continue; + if (bRowIsMovDiff && is_detraibile == 0) + { + imponibile = ZERO; + imposta = ZERO; + } /* Riga imponibile > 9 = ritenute; non si considerano (Scudler 1994) */ @@ -2533,10 +2539,9 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array & cs.add(v.string(), 1); tab->put("S2",cs); - if (is_detraibile == 0 && // eseguire solo una volta (is_detraibile č in un ciclo da 0 a 1) - (!diff_imp.is_zero() || !diff_iva.is_zero() || - !incdiff_imp.is_zero() || !incdiff_iva.is_zero())) + if (bRowIsMovDiff && bMovDiffToAdd) { + bMovDiffToAdd = false; if (tipomov == vendita) { #ifndef NDEBUG @@ -2568,8 +2573,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array & else { // fatture acquisto a liquidazione differita - tab->curr().add("R30", diff_imp); - tab->curr().add("R31", diff_iva); + tab->curr().add("R30", incdiff_imp); + tab->curr().add("R31", incdiff_iva); tab->curr().add("R32", incdiff_imp); tab->curr().add("R33", incdiff_iva); fdiff_imp_acq += diff_imp; diff --git a/src/cg/cg4304.cpp b/src/cg/cg4304.cpp index b25f7d8ce..e35dc226f 100755 --- a/src/cg/cg4304.cpp +++ b/src/cg/cg4304.cpp @@ -1648,7 +1648,7 @@ int TLiquidazione_app::calc_inc_diff(int tipoiva, real& imponibile_diff, real& i TString limit; limit << "ANNOLIQ=" << _year; if (_month < 13) limit << " MESELIQ=" << _month; TString query; // righe pagamento (TIPOMOV>=3) ed escluse NC! - query << "USE IVADIFF KEY 2 SELECT (TIPOMOV>2)&&(TIPOIVA=" << tipoiva << ')' + query << "USE IVADIFF KEY 2 SELECT (TIPOMOV>2)&&(TIPOIVA=" << tipoiva << ")&&NUM(INDETR!='X')" << "\nFROM " << limit << "\nTO " << limit; TISAM_recordset id(query); diff --git a/src/cg/f171.dir b/src/cg/f171.dir index 6a05d773b..8bb8228fa 100644 --- a/src/cg/f171.dir +++ b/src/cg/f171.dir @@ -1,3 +1,3 @@ -171 -0 -$ivadiff|0|0|110|0|IVA ad esigibilitā differita o per cassa||| +171 +0 +$ivadiff|0|0|111|0|IVA ad esigibilitā differita o per cassa||| diff --git a/src/cg/f171.trr b/src/cg/f171.trr index 3dcb37c9e..9fe1582d7 100644 --- a/src/cg/f171.trr +++ b/src/cg/f171.trr @@ -1,24 +1,25 @@ -171 -19 -NUMREG|3|7|0|Numero operazione Fattura -NUMRIG|2|3|0|Numero riga IVA -NUMPRO|2|3|0|Numero progressivo PAG o NC -TIPOMOV|2|1|0|Tipo movimento (1=Fattura;2=Nota credito;3=Pagamento) -DATAREG|5|8|0|Data fattura -NUMREGP|3|7|0|Numero operazione PAG o NC -NUMRIGP|2|3|0|Numero riga PAG o NC -DATAREGP|5|8|0|Data pagamento -ANNOLIQ|2|4|0|Anno liquidazione -MESELIQ|2|2|0|Mese liquidazione -TIPOATT|2|1|0|Tipo attivitā (1=Normale; 2=Mista) -TIPOIVA|2|1|0|Tipo IVA (1=Vendite; 2=Acquisti) -TIPODIFF|2|1|0|IVA differita (1) o per Cassa (2) -CODIVA|1|4|0|Codice IVA -SEZIONE|1|1|0|Sezione are vere -IMPORTO|4|18|3|Importo -IMPONIBILE|4|18|3|Imponibile -IMPOSTA|4|18|3|Imposta -CHIUSA|8|1|0|Partita chiusa -2 -NUMREG+NUMRIG+NUMPRO| -ANNOLIQ+MESELIQ+DATAREGP|X +171 +20 +NUMREG|3|7|0|Numero operazione Fattura +NUMRIG|2|3|0|Numero riga IVA +NUMPRO|2|3|0|Numero progressivo PAG o NC +TIPOMOV|2|1|0|Tipo movimento (1=Fattura;2=Nota credito;3=Pagamento) +DATAREG|5|8|0|Data fattura +NUMREGP|3|7|0|Numero operazione PAG o NC +NUMRIGP|2|3|0|Numero riga PAG o NC +DATAREGP|5|8|0|Data pagamento +ANNOLIQ|2|4|0|Anno liquidazione +MESELIQ|2|2|0|Mese liquidazione +TIPOATT|2|1|0|Tipo attivitā (1=Normale; 2=Mista) +TIPOIVA|2|1|0|Tipo IVA (1=Vendite; 2=Acquisti) +INDETR|8|1|0|Riga di IVA indetraibile +TIPODIFF|2|1|0|IVA differita (1) o per Cassa (2) +CODIVA|1|4|0|Codice IVA +SEZIONE|1|1|0|Sezione are vere +IMPORTO|4|18|3|Importo +IMPONIBILE|4|18|3|Imponibile +IMPOSTA|4|18|3|Imposta +CHIUSA|8|1|0|Partita chiusa +2 +NUMREG+NUMRIG+NUMPRO| +ANNOLIQ+MESELIQ+DATAREGP|X diff --git a/src/cg/ivadiff.h b/src/cg/ivadiff.h index 13842b0f6..fff4337c5 100644 --- a/src/cg/ivadiff.h +++ b/src/cg/ivadiff.h @@ -9,6 +9,7 @@ #define ID_MESELIQ "MESELIQ" #define ID_TIPOATT "TIPOATT" #define ID_TIPOIVA "TIPOIVA" +#define ID_INDETR "INDETR" #define ID_TIPODIFF "TIPODIFF" #define ID_CODIVA "CODIVA" #define ID_SEZIONE "SEZIONE"