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 a_datareg(31, 12,year());
// query << "USE IVADIFF KEY 2 SELECT BETWEEN(DATAREG,#DAL,#AL)";
query << "USE IVADIFF KEY 4";
query << "USE IVADIFF KEY 4 SELECT (" << ID_TIPOIVA << "==1)"; // Vendite
if (!end_cassa)
query << "\nFROM DATAREG=" << da_datareg;
query << "\nTO DATAREG=" << a_datareg;
query << "\nFROM " << ID_DATAREG << "=" << da_datareg;
query << "\nTO " << ID_DATAREG << "=" << a_datareg;
TISAM_recordset id(query);
TString8 cod;
TImporto imp371, imp372;
@ -371,6 +369,7 @@ void TQuadro_VE_recordset::load(const char repid)
{
const int tipodiff = id.get_int(ID_TIPODIFF);
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 int tipomov = id.get_int(ID_TIPOMOV);
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);
if (codiva.iva_imponibile() && datapag <= a_datareg)
if (codiva.iva_imponibile() && annoreg == year())
{
imp371 += imp;
if (tipodiff == 2)
imp372 += imp;
if ((tipomov == 3 && between(datapag, da_datareg, a_datareg)) || (tipomov < 3))
{
imp371 += imp;
if (tipodiff == 2)
imp372 += imp;
}
}
}
}
@ -399,9 +401,13 @@ void TQuadro_VE_recordset::load(const char repid)
query.zap();
query << "USE IVADIFF KEY 3";
query << "\nFROM DATAREGP=" << da_datareg;
query << "\nTO DATAREGP=" << a_datareg;
query << "USE IVADIFF KEY 4 SELECT (BETWEEN(" << ID_DATAREGP << ",\"" << da_datareg.date2ansi() << "\",\"" << a_datareg.date2ansi() << "\")&&(" << ID_TIPOIVA << "==1)&&(" << ID_TIPOMOV << "==3)";
query << "&&(" << ID_NUMPRO << ">0))"; // Vendite
TDate end_prec = da_datareg;
--end_prec;
query << "\nTO " << ID_DATAREG << "=" << end_prec;
TISAM_recordset idp(query);
TImporto imp391;
@ -411,15 +417,11 @@ void TQuadro_VE_recordset::load(const char repid)
const long numreg = idp.get_long(RMI_NUMREG);
const int tipoiva = idp.get_int(ID_TIPOIVA);
if (tipoiva == 1) // Vendite
{
const int tipodiff = idp.get_int(ID_TIPODIFF);
const TRectype & mov = cache().get(LF_MOV, numreg);
const char sezione = idp.get_string(ID_SEZIONE)[0];
const int tipomov = idp.get_int(ID_TIPOMOV);
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.add(numreg);
@ -427,9 +429,8 @@ void TQuadro_VE_recordset::load(const char repid)
cod = cache().get(LF_RMOVIVA, key, RMI_CODIVA);
const TCodiceIVA & codiva = cached_codIVA(cod);
if (annoliq < year() && tipomov == 3 && codiva.iva_imponibile())
if (codiva.iva_imponibile())
imp391 += imp;
}
}
imp391.normalize('A');
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 a_datareg(31, 12, year());
// query << "USE IVADIFF KEY 2 SELECT BETWEEN(DATAREG,#DAL,#AL)";
query << "USE IVADIFF KEY 4";
query << "USE IVADIFF KEY 4 SELECT (" << ID_TIPOIVA << "==2)"; // Acquisti
if (!end_cassa)
query << "\nFROM DATAREG=" << da_datareg;
query << "\nTO DATAREG=" << a_datareg;
TISAM_recordset id(query);
TString8 tipo_aliquota, codiva;
TImporto imp211, imp212;
TString8 cod;
TImporto imp231, imp232;
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 tipodiff = id.get(ID_TIPODIFF).as_int();
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 int tipomov = id.get(ID_TIPOMOV).as_int();
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();
key.cut(0);
key.add(numreg);
key.add(id.get(ID_NUMRIG).as_string());
codiva = cache().get(LF_RMOVIVA, key, RMI_CODIVA);
key = codiva;
tipo_aliquota = cache().get("%IVA", key, "S1");
cod = cache().get(LF_RMOVIVA, key, RMI_CODIVA);
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 (tipodiff == 2)
imp212 += imp;
if ((tipomov == 3 && between(datapag, da_datareg, a_datareg)) || (tipomov < 3))
{
imp231 += imp;
if (tipodiff == 2)
imp232 += imp;
}
}
}
imp211.normalize('A');
add_value("VF23.1", imp211.valore());
add_value("VF37.1", imp211.valore()); // VF37.1 2 iva sospensione da pagare
imp212.normalize('A');
add_value("VF23.2", imp212.valore());
imp231.normalize('A');
add_value("VF23.1", imp231.valore());
add_value("VF37.1", imp231.valore()); // VF37.1 2 iva sospensione da pagare
imp232.normalize('A');
add_value("VF23.2", imp232.valore());
query.zap();
query << "USE IVADIFF KEY 3";
query << "\nFROM DATAREGP=" << da_datareg;
query << "\nTO DATAREGP=" << a_datareg;
query << "USE IVADIFF KEY 4 SELECT (BETWEEN(" << ID_DATAREGP << ",\"" << da_datareg.date2ansi() << "\",\"" << a_datareg.date2ansi() << "\")&&(" << ID_TIPOIVA << "==2)&&(" << ID_TIPOMOV << "==3)";
query << "&&(" << ID_NUMPRO <<">0))"; // Acquisti
TDate end_prec = da_datareg;
--end_prec;
query << "\nTO " << ID_DATAREG << "=" << end_prec;
TISAM_recordset idp(query);
TImporto imp221;
TImporto imp241;
for (bool ok = idp.move_first(); ok; ok = idp.move_next())
{
const long numreg = idp.get(RMI_NUMREG).as_int();
const int tipoiva = idp.get(ID_TIPOIVA).as_int();
const long numreg = idp.get_long(RMI_NUMREG);
const TRectype & mov = cache().get(LF_MOV, numreg);
const char sezione = idp.get(ID_SEZIONE).as_string()[0];
const int tipomov = idp.get(ID_TIPOMOV).as_int();
const char sezione = idp.get_string(ID_SEZIONE)[0];
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.add(numreg);
key.add(idp.get(ID_NUMRIG).as_string());
codiva = cache().get(LF_RMOVIVA, key, RMI_CODIVA);
key = codiva;
tipo_aliquota = cache().get("%IVA", key, "S1");
cod = cache().get(LF_RMOVIVA, key, RMI_CODIVA);
const TCodiceIVA & codiva = cached_codIVA(cod);
if (tipo_aliquota.blank() && tipoiva == 2) // Acquisti
{
if (annoliq < year() && tipomov == 3)
imp221 += imp;
}
if (codiva.iva_imponibile())
imp241 += imp;
}
imp221.normalize('D');
add_value("VF24.1", imp221.valore()); // VE22.1 iva differita pagamenti di anni precedenti
imp241.normalize('D');
add_value("VF24.1", imp241.valore()); // VE22.1 iva differita pagamenti di anni precedenti
// V24.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>
</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="###.###.###">
<prescript description="B1.7102 PRESCRIPT">MON #7100 @
<prescript description="B1.7102 PRESCRIPT">#7100 @
#5502 @
+
#7002 @

View File

@ -19,6 +19,12 @@ void classify_pim_array(const TRectype& pimr, TArray & imponibili, TArray & impo
imponibili.add(imp, 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)