Patch level : 12.00 1258

Files correlati     : cg7.exe cg7l00a.png cg7400a.png cg7400b.png cg7400c.png
                      cg7500a.png cg7600a.png cg7600a.rep cg7700a.png
                      cg7700a.rep cg7700b.png cg7700b.rep cg7800a.png cg7900a.png
                      cg7900b.png cg7a00a.png cg7b00a.png cg7c00a.png
                      cg7d00a.png cg7d00b.png cg7e00a.png cg7f00a.png
                      cg7f00b.png cg7g00a.png cg7g00b.png cg7h00a.png

Commento            :
Quadri dichiarazione IVA
This commit is contained in:
Alessandro Bonazzi 2023-04-30 10:44:06 +02:00
parent fa68cfe0e4
commit d0656ff8d4
4 changed files with 63 additions and 57 deletions

View File

@ -351,13 +351,11 @@ void TQuadro_VE_recordset::load(const char repid)
const TDate da_datareg(1, 1, year()); const TDate da_datareg(1, 1, year());
const TDate a_datareg(31, 12,year()); const TDate a_datareg(31, 12,year());
// query << "USE IVADIFF KEY 2 SELECT BETWEEN(DATAREG,#DAL,#AL)"; query << "USE IVADIFF KEY 4 SELECT (" << ID_TIPOIVA << "==1)"; // Vendite
query << "USE IVADIFF KEY 4";
if (!end_cassa) if (!end_cassa)
query << "\nFROM DATAREG=" << da_datareg; query << "\nFROM " << ID_DATAREG << "=" << da_datareg;
query << "\nTO DATAREG=" << a_datareg; query << "\nTO " << ID_DATAREG << "=" << a_datareg;
TISAM_recordset id(query); TISAM_recordset id(query);
TString8 cod; TString8 cod;
TImporto imp371, imp372; TImporto imp371, imp372;
@ -371,6 +369,7 @@ void TQuadro_VE_recordset::load(const char repid)
{ {
const int tipodiff = id.get_int(ID_TIPODIFF); const int tipodiff = id.get_int(ID_TIPODIFF);
const TRectype & mov = cache().get(LF_MOV, numreg); const TRectype & mov = cache().get(LF_MOV, numreg);
const int annoreg = mov.get_date(MOV_DATAREG).year();
const char sezione = id.get_string(ID_SEZIONE)[0]; const char sezione = id.get_string(ID_SEZIONE)[0];
const int tipomov = id.get_int(ID_TIPOMOV); const int tipomov = id.get_int(ID_TIPOMOV);
const TImporto imp(sezione, id.get_real(RMI_IMPONIBILE)); const TImporto imp(sezione, id.get_real(RMI_IMPONIBILE));
@ -384,11 +383,14 @@ void TQuadro_VE_recordset::load(const char repid)
const TCodiceIVA & codiva = cached_codIVA(cod); const TCodiceIVA & codiva = cached_codIVA(cod);
if (codiva.iva_imponibile() && datapag <= a_datareg) if (codiva.iva_imponibile() && annoreg == year())
{ {
imp371 += imp; if ((tipomov == 3 && between(datapag, da_datareg, a_datareg)) || (tipomov < 3))
if (tipodiff == 2) {
imp372 += imp; imp371 += imp;
if (tipodiff == 2)
imp372 += imp;
}
} }
} }
} }
@ -399,9 +401,13 @@ void TQuadro_VE_recordset::load(const char repid)
query.zap(); query.zap();
query << "USE IVADIFF KEY 3"; query << "USE IVADIFF KEY 4 SELECT (BETWEEN(" << ID_DATAREGP << ",\"" << da_datareg.date2ansi() << "\",\"" << a_datareg.date2ansi() << "\")&&(" << ID_TIPOIVA << "==1)&&(" << ID_TIPOMOV << "==3)";
query << "\nFROM DATAREGP=" << da_datareg; query << "&&(" << ID_NUMPRO << ">0))"; // Vendite
query << "\nTO DATAREGP=" << a_datareg;
TDate end_prec = da_datareg;
--end_prec;
query << "\nTO " << ID_DATAREG << "=" << end_prec;
TISAM_recordset idp(query); TISAM_recordset idp(query);
TImporto imp391; TImporto imp391;
@ -411,15 +417,11 @@ void TQuadro_VE_recordset::load(const char repid)
const long numreg = idp.get_long(RMI_NUMREG); const long numreg = idp.get_long(RMI_NUMREG);
const int tipoiva = idp.get_int(ID_TIPOIVA); const int tipoiva = idp.get_int(ID_TIPOIVA);
if (tipoiva == 1) // Vendite
{
const int tipodiff = idp.get_int(ID_TIPODIFF); const int tipodiff = idp.get_int(ID_TIPODIFF);
const TRectype & mov = cache().get(LF_MOV, numreg); const TRectype & mov = cache().get(LF_MOV, numreg);
const char sezione = idp.get_string(ID_SEZIONE)[0]; const char sezione = idp.get_string(ID_SEZIONE)[0];
const int tipomov = idp.get_int(ID_TIPOMOV); const int tipomov = idp.get_int(ID_TIPOMOV);
const TImporto imp(sezione, idp.get_real(RMI_IMPONIBILE)); const TImporto imp(sezione, idp.get_real(RMI_IMPONIBILE));
const int annoliq = idp.get_date(ID_DATAREG).year();
const int annopag = idp.get_date(ID_DATAREGP).year();
key.cut(0); key.cut(0);
key.add(numreg); key.add(numreg);
@ -427,9 +429,8 @@ void TQuadro_VE_recordset::load(const char repid)
cod = cache().get(LF_RMOVIVA, key, RMI_CODIVA); cod = cache().get(LF_RMOVIVA, key, RMI_CODIVA);
const TCodiceIVA & codiva = cached_codIVA(cod); const TCodiceIVA & codiva = cached_codIVA(cod);
if (annoliq < year() && tipomov == 3 && codiva.iva_imponibile()) if (codiva.iva_imponibile())
imp391 += imp; imp391 += imp;
}
} }
imp391.normalize('A'); imp391.normalize('A');
add_value("VE39.1", imp391.valore()); // VE39.1 iva differita incassi di anni precedenti add_value("VE39.1", imp391.valore()); // VE39.1 iva differita incassi di anni precedenti

View File

@ -333,16 +333,15 @@ void TQuadro_VF_recordset::load(char repid)
const TDate da_datareg(1, 1, year()); const TDate da_datareg(1, 1, year());
const TDate a_datareg(31, 12, year()); const TDate a_datareg(31, 12, year());
// query << "USE IVADIFF KEY 2 SELECT BETWEEN(DATAREG,#DAL,#AL)"; query << "USE IVADIFF KEY 4 SELECT (" << ID_TIPOIVA << "==2)"; // Acquisti
query << "USE IVADIFF KEY 4";
if (!end_cassa) if (!end_cassa)
query << "\nFROM DATAREG=" << da_datareg; query << "\nFROM DATAREG=" << da_datareg;
query << "\nTO DATAREG=" << a_datareg; query << "\nTO DATAREG=" << a_datareg;
TISAM_recordset id(query); TISAM_recordset id(query);
TString8 tipo_aliquota, codiva; TString8 cod;
TImporto imp211, imp212; TImporto imp231, imp232;
for (bool ok = id.move_first(); ok; ok = id.move_next()) for (bool ok = id.move_first(); ok; ok = id.move_next())
{ {
@ -350,67 +349,67 @@ void TQuadro_VF_recordset::load(char repid)
const int tipoiva = id.get(ID_TIPOIVA).as_int(); const int tipoiva = id.get(ID_TIPOIVA).as_int();
const int tipodiff = id.get(ID_TIPODIFF).as_int(); const int tipodiff = id.get(ID_TIPODIFF).as_int();
const TRectype & mov = cache().get(LF_MOV, numreg); const TRectype & mov = cache().get(LF_MOV, numreg);
const int annoreg = mov.get_date(MOV_DATAREG).year();
const char sezione = id.get(ID_SEZIONE).as_string()[0]; const char sezione = id.get(ID_SEZIONE).as_string()[0];
const int tipomov = id.get(ID_TIPOMOV).as_int(); const int tipomov = id.get(ID_TIPOMOV).as_int();
const TImporto imp(sezione, id.get(RMI_IMPONIBILE).as_real()); const TImporto imp(sezione, id.get(RMI_IMPONIBILE).as_real());
const int annoliq = id.get(ID_ANNOLIQ).as_int(); // const int annoliq = id.get(ID_ANNOLIQ).as_int();
const TDate datapag = id.get(ID_DATAREGP).as_date(); const TDate datapag = id.get(ID_DATAREGP).as_date();
key.cut(0); key.cut(0);
key.add(numreg); key.add(numreg);
key.add(id.get(ID_NUMRIG).as_string()); key.add(id.get(ID_NUMRIG).as_string());
codiva = cache().get(LF_RMOVIVA, key, RMI_CODIVA); cod = cache().get(LF_RMOVIVA, key, RMI_CODIVA);
key = codiva;
tipo_aliquota = cache().get("%IVA", key, "S1");
if (tipo_aliquota.blank() && datapag <= a_datareg && tipoiva == 2) // Acquisti const TCodiceIVA & codiva = cached_codIVA(cod);
if (codiva.iva_imponibile() && annoreg == year())
{ {
imp211 += imp; if ((tipomov == 3 && between(datapag, da_datareg, a_datareg)) || (tipomov < 3))
if (tipodiff == 2) {
imp212 += imp; imp231 += imp;
if (tipodiff == 2)
imp232 += imp;
}
} }
} }
imp211.normalize('A'); imp231.normalize('A');
add_value("VF23.1", imp211.valore()); add_value("VF23.1", imp231.valore());
add_value("VF37.1", imp211.valore()); // VF37.1 2 iva sospensione da pagare add_value("VF37.1", imp231.valore()); // VF37.1 2 iva sospensione da pagare
imp212.normalize('A'); imp232.normalize('A');
add_value("VF23.2", imp212.valore()); add_value("VF23.2", imp232.valore());
query.zap(); query.zap();
query << "USE IVADIFF KEY 3"; query << "USE IVADIFF KEY 4 SELECT (BETWEEN(" << ID_DATAREGP << ",\"" << da_datareg.date2ansi() << "\",\"" << a_datareg.date2ansi() << "\")&&(" << ID_TIPOIVA << "==2)&&(" << ID_TIPOMOV << "==3)";
query << "\nFROM DATAREGP=" << da_datareg; query << "&&(" << ID_NUMPRO <<">0))"; // Acquisti
query << "\nTO DATAREGP=" << a_datareg;
TDate end_prec = da_datareg;
--end_prec;
query << "\nTO " << ID_DATAREG << "=" << end_prec;
TISAM_recordset idp(query); TISAM_recordset idp(query);
TImporto imp221; TImporto imp241;
for (bool ok = idp.move_first(); ok; ok = idp.move_next()) for (bool ok = idp.move_first(); ok; ok = idp.move_next())
{ {
const long numreg = idp.get(RMI_NUMREG).as_int(); const long numreg = idp.get_long(RMI_NUMREG);
const int tipoiva = idp.get(ID_TIPOIVA).as_int();
const TRectype & mov = cache().get(LF_MOV, numreg); const TRectype & mov = cache().get(LF_MOV, numreg);
const char sezione = idp.get(ID_SEZIONE).as_string()[0]; const char sezione = idp.get_string(ID_SEZIONE)[0];
const int tipomov = idp.get(ID_TIPOMOV).as_int();
const TImporto imp(sezione, idp.get(RMI_IMPONIBILE).as_real()); const TImporto imp(sezione, idp.get(RMI_IMPONIBILE).as_real());
const int annoliq = idp.get(ID_DATAREG).as_date().year();
const int annopag = idp.get(ID_DATAREGP).as_date().year();
key.cut(0); key.cut(0);
key.add(numreg); key.add(numreg);
key.add(idp.get(ID_NUMRIG).as_string()); key.add(idp.get(ID_NUMRIG).as_string());
codiva = cache().get(LF_RMOVIVA, key, RMI_CODIVA); cod = cache().get(LF_RMOVIVA, key, RMI_CODIVA);
key = codiva; const TCodiceIVA & codiva = cached_codIVA(cod);
tipo_aliquota = cache().get("%IVA", key, "S1");
if (tipo_aliquota.blank() && tipoiva == 2) // Acquisti if (codiva.iva_imponibile())
{ imp241 += imp;
if (annoliq < year() && tipomov == 3)
imp221 += imp;
}
} }
imp221.normalize('D'); imp241.normalize('D');
add_value("VF24.1", imp221.valore()); // VE22.1 iva differita pagamenti di anni precedenti add_value("VF24.1", imp241.valore()); // VE22.1 iva differita pagamenti di anni precedenti
// V24.2 Variazioni e arrotondamenti dimposta (indicare con il segno +/) // V24.2 Variazioni e arrotondamenti dimposta (indicare con il segno +/)
// V50.2 Variazioni e arrotondamenti dimposta (indicare con il segno +/) // V50.2 Variazioni e arrotondamenti dimposta (indicare con il segno +/)

View File

@ -213,7 +213,7 @@
<source>VF71.0</source> <source>VF71.0</source>
</field> </field>
<field x="66" y="60.5" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="11" codval="" id="7102" pattern="1" hide_zero="" text="###.###.###"> <field x="66" y="60.5" deactivated="" type="Numero" hidden="" align="right" link="" dynamic_height="" shade_offset="" width="11" codval="" id="7102" pattern="1" hide_zero="" text="###.###.###">
<prescript description="B1.7102 PRESCRIPT">MON #7100 @ <prescript description="B1.7102 PRESCRIPT">#7100 @
#5502 @ #5502 @
+ +
#7002 @ #7002 @

View File

@ -19,6 +19,12 @@ void classify_pim_array(const TRectype& pimr, TArray & imponibili, TArray & impo
imponibili.add(imp, tprec); imponibili.add(imp, tprec);
imposte.add(iva, tprec); imposte.add(iva, tprec);
} }
#ifdef DBG
if (imponibili.items() == 0)
{
message_box("PIM scartato %s", (const char *)pimr.get("CODTAB"));
}
#endif
} }
bool classify_pim(const TRectype& pimr, real& imp, real& iva, tiporec& t, bool tipost, int & last_tiporec, const bool dich) bool classify_pim(const TRectype& pimr, real& imp, real& iva, tiporec& t, bool tipost, int & last_tiporec, const bool dich)