Corretti o rimandati al mittente errori liquidazione MI1058 MI 1123

MI0147 1221 MI1056 MI2009MI1062 MI2002 MI1055 MI0049  1226 MI2037
MI2038 MI2039 1215 MI1051 MI2040


git-svn-id: svn://10.65.10.50/trunk@612 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
villa 1994-11-14 11:50:04 +00:00
parent 8aa7cd7cf4
commit ac126ba3c0
3 changed files with 80 additions and 60 deletions

View File

@ -87,6 +87,10 @@ bool CG4300_App::update_firm(int month, bool recalc)
// gia' ricalcolata definitivamente? // gia' ricalcolata definitivamente?
bool ok = _lim->get_bool("B1"); bool ok = _lim->get_bool("B1");
if (ok && !_comp_acconto) return TRUE; if (ok && !_comp_acconto) return TRUE;
// azzera ulteriori detrazioni
_lim->put("R6","");
_lim->rewrite();
// ricalcolo normale // ricalcolo normale
ok = _lim->get_bool("B0"); ok = _lim->get_bool("B0");
@ -305,9 +309,9 @@ void CG4300_App::recalc_att(int month, const char* codatt)
for (; _cur->pos() < items; ++(*_cur)) for (; _cur->pos() < items; ++(*_cur))
{ {
TDate date(_mov_r->get("DATAREG")); TDate date(_mov_r->get("DATAREG"));
TString16 reg = _mov_r->get("REG"); TString16 reg = _mov_r->get("REG");
bool isreg = look_reg(_mov_r->get("REG")); bool isreg = look_reg(_mov_r->get("REG"));
TString16 tipodoc = _mov_r->get("TIPODOC");
/* /*
* check register present, rmoviva present and date OK * check register present, rmoviva present and date OK
*/ */
@ -432,8 +436,10 @@ void CG4300_App::recalc_att(int month, const char* codatt)
// plafond // plafond
if (_isplafond && tipomov == acquisto && if (_isplafond && tipomov == acquisto &&
tipoiva == "NI" && tipopla != 0) tipoiva == "NI" && tipopla != 0)
{
if (tipodoc == "BD") intra = TRUE;
add_plafond(month, codatt, tipopla, imponibile, intra); add_plafond(month, codatt, tipopla, imponibile, intra);
}
// agenzie viaggio (CHECK imponibili etc.) // agenzie viaggio (CHECK imponibili etc.)
if (_isviaggio) if (_isviaggio)
switch (tipoag) switch (tipoag)
@ -469,8 +475,8 @@ void CG4300_App::recalc_att(int month, const char* codatt)
continue; continue;
} }
if (tipodet == 3) // passaggi interni (solo ventilaz.) // if (tipodet == 3) // passaggi interni (solo ventilaz.)
continue; // continue;
// ***************************************** // *****************************************
// Fine casi particolari // Fine casi particolari
@ -543,8 +549,10 @@ void CG4300_App::recalc_att(int month, const char* codatt)
// calcola il lercio prorata // calcola il lercio prorata
real prorata; real prorata;
if (!_prorata.is_zero()) if (!_prorata.is_zero())
{
prorata = acquisti_iva * (_prorata / CENTO); prorata = acquisti_iva * (_prorata / CENTO);
prorata.round(ROUND_LIRA);
}
look_plm(month, codatt, TRUE); look_plm(month, codatt, TRUE);
// ACHTUNG: l'iva sulle vendite e' calcolata sommando anche i // ACHTUNG: l'iva sulle vendite e' calcolata sommando anche i

View File

@ -65,37 +65,6 @@ void CG4300_App::zero_plafond (int month, const char* codatt)
_ppa->rewrite(); _ppa->rewrite();
} // for tipo esenzione plafond } // for tipo esenzione plafond
} }
void CG4300_App::describe_plafond(int month, const char* codatt)
{
if (month == 13) month = 12;
// prepara la descrizione del riepilogo da stampare e lo accoda
real t1, t2, t3;
_DescrItem* d = new _DescrItem(PLAFOND);
for (int jj = 1; jj <= 3; jj++) // three types of plafond
{
t1 = 0.0; t2 = 0.0; t3 = 0.0;
for (int m = 1; m <= month; m++)
{
if (look_ppa(m,codatt,jj))
{
t1 = _ppa->get_real("R0");
t2 = _ppa->get_real("R1");
t3 = _ppa->get_real("R2");
}
}
switch (jj)
{
case 1: d->_r0 = t1; d->_r1 = t2; d->_r2 = t3; break;
case 2: d->_r3 = t1; d->_r4 = t2; d->_r5 = t3; break;
case 3: d->_r6 = t1; d->_r7 = t2; d->_r8 = t3; break;
}
} // for tipo esenzione plafond
_descr_arr.add(d);
}
// ricalcolo dei corrispettivi // ricalcolo dei corrispettivi
void CG4300_App::recalc_corrispettivi(int month, const char* codatt) void CG4300_App::recalc_corrispettivi(int month, const char* codatt)
{ {

View File

@ -118,6 +118,39 @@ void CG4300_App::describe_firm(int month)
_descr_arr.add(d); _descr_arr.add(d);
} }
void CG4300_App::describe_plafond(int month, const char* codatt)
{
if (month == 13) month = 12;
// prepara la descrizione del riepilogo da stampare e lo accoda
real t1, t2, t3;
_DescrItem* d = new _DescrItem(PLAFOND);
for (int jj = 1; jj <= 3; jj++) // three types of plafond
{
t1 = 0.0; t2 = 0.0; t3 = 0.0;
for (int m = 1; m <= month; m++)
{
if (!is_month_ok(m)) continue;
if (look_ppa(m,codatt,jj))
{
t1 = _ppa->get_real("R0");
t2 = _ppa->get_real("R1");
t3 = _ppa->get_real("R2");
}
}
switch (jj)
{
case 1: d->_r0 = t1; d->_r1 = t2; d->_r2 = t3; break;
case 2: d->_r3 = t1; d->_r4 = t2; d->_r5 = t3; break;
case 3: d->_r6 = t1; d->_r7 = t2; d->_r8 = t3; break;
}
} // for tipo esenzione plafond
_descr_arr.add(d);
}
void CG4300_App::describe_ventilation(int month, const char* codatt) void CG4300_App::describe_ventilation(int month, const char* codatt)
{ {
if (_isriepilogo || _isannual) month = 12; if (_isriepilogo || _isannual) month = 12;
@ -378,7 +411,7 @@ void CG4300_App::describe_pims(int month, const char* codatt)
for (int m = 1; m <= month && m < 13; m++) for (int m = 1; m <= month && m < 13; m++)
{ {
if (!check_month(m,month)) continue; if (!is_month_ok(m) || !check_month(m,month)) continue;
atts.restart(); atts.restart();
while ((tmpatt = atts.get()) != NULL) while ((tmpatt = atts.get()) != NULL)
@ -404,7 +437,7 @@ void CG4300_App::describe_pims(int month, const char* codatt)
t->_r11 += _plm->get_real("R2"); // pro-rata indetraibile t->_r11 += _plm->get_real("R2"); // pro-rata indetraibile
t->_s0 = (_plm->get_real("R12")).string(); // % pro-rata t->_s0 = (_plm->get_real("R12")).string(); // % pro-rata
real aie(_plm->get("S2")); // acq. inded. su ricavi esenti real aie(_plm->get("S2")); // acq. inded. su ricavi esenti
real aiev(_plm->get("S3")); // IVA acq. inded. su ricavi esenti real aiev(_plm->get("S3")); // IVA acq. inded. su ricavi esenti
d->_r9 += aie; d->_r9 += aie;
d->_r10 += aiev; d->_r10 += aiev;
@ -575,7 +608,7 @@ void CG4300_App::set_firm(_DescrItem& d)
tim_title << format(": Riepilogo Annuale %s",(const char*)_year); tim_title << format(": Riepilogo Annuale %s",(const char*)_year);
else else
{ {
if (d._s3 == "T") if (d._s2 == "T")
tim_title << format(" del %d° Trimestre %s", d._f1/3, (const char *) _year); tim_title << format(" del %d° Trimestre %s", d._f1/3, (const char *) _year);
else else
tim_title << format(" del mese di %s %s", itom(d._f1), tim_title << format(" del mese di %s %s", itom(d._f1),
@ -623,7 +656,7 @@ void CG4300_App::set_att(_DescrItem& d)
else else
{ {
if (d._s4 == "T") if (d._s4 == "T")
tim_title << format(" del %do Trimestre %s", d._f1/3, (const char *) _year); tim_title << format(" del %d° Trimestre %s", d._f1/3, (const char *) _year);
else else
tim_title << format(" del mese di %s %s", itom(d._f1), tim_title << format(" del mese di %s %s", itom(d._f1),
(const char*)_year); (const char*)_year);
@ -678,24 +711,24 @@ void CG4300_App::set_plafond(_DescrItem& d)
"MENSILE DEI PLAFOND"); "MENSILE DEI PLAFOND");
set_row(2,""); set_row(3,""); set_row(2,""); set_row(3,"");
set_row(4,"Art. 8 1@io@rcomma lettere a-b@31gDisponibile@48g%r", set_row(4,"Art. 8 1° comma lettere a-b@31gDisponibile@48g%r",
&r1); &r1);
set_row(5,"Utilizzato all'interno@48g%r", &(d._r0)); set_row(5,"Utilizzato all'interno@48g%r", &(d._r0));
set_row(6,"Utilizzato per l'importazione@48g%r@69gRiporto %r", set_row(6,"Utilizzato per l'importazione@48g%r@69gRiporto@78g%r",
&(d._r1), &(d._r2)); &(d._r1), &(d._r2));
set_row(7,""); set_row(7,"");
set_row(8,"Art. 8bis 1@io@rcomma@31gDisponibile@48g%r", set_row(8,"Art. 8bis 1° comma@31gDisponibile@48g%r",
&r2); &r2);
set_row(9,"Utilizzato all'interno@48g%r", &(d._r3)); set_row(9,"Utilizzato all'interno@48g%r", &(d._r3));
set_row(10,"Utilizzato per l'importazione@48g%r@69gRiporto %r", set_row(10,"Utilizzato per l'importazione@48g%r@69gRiporto@78g%r",
&(d._r4), &(d._r5)); &(d._r4), &(d._r5));
set_row(11,""); set_row(11,"");
set_row(12,"Art. 9 1@io@rcomma@31gDisponibile@48g%r", set_row(12,"Art. 9 1° comma@31gDisponibile@48g%r",
&r3); &r3);
set_row(13,"Utilizzato all'interno@48g%r", &(d._r6)); set_row(13,"Utilizzato all'interno@48g%r", &(d._r6));
set_row(14,"Utilizzato per l'importazione@48g%r@69gRiporto %r", set_row(14,"Utilizzato per l'importazione@48g%r@69gRiporto@78g%r",
&(d._r7), &(d._r8)); &(d._r7), &(d._r8));
set_print_zero(FALSE); set_print_zero(FALSE);
@ -737,12 +770,18 @@ void CG4300_App::set_plm(_DescrItem& d)
&(d._r4), &(d._r4),
&(d._r5)); &(d._r5));
// totalazzi parziali e generali // totalazzi parziali e generali
set_row(4,"di cui per acquisti intracomunitari@107g%r", &(d._r6)); int rw = 4;
set_row(5,""); if (!d._r6.is_zero())
set_row(6,"Totali acquisti indeducibili per art.19@91g%r@107g%r", {
&(d._r7), &(d._r8)); set_row(rw++,"di cui per acquisti intracomunitari@107g%r", &(d._r6));
set_row(7,""); set_row(rw++,"");
int rw = 8; }
if (!(d._r7.is_zero() && d._r8.is_zero()))
{
set_row(rw++,"Totali acquisti indeducibili per art.19@91g%r@107g%r",
&(d._r7), &(d._r8));
set_row(rw++,"");
}
if (! (d._r9.is_zero() && d._r10.is_zero())) if (! (d._r9.is_zero() && d._r10.is_zero()))
{ {
set_row(rw++, "Totale acquisti indeducibili su ricavi esenti@91g%r@107g%r", set_row(rw++, "Totale acquisti indeducibili su ricavi esenti@91g%r@107g%r",
@ -841,17 +880,17 @@ void CG4300_App::set_grand(_DescrItem& d)
set_row(1,""); set_row(2,""); set_row(3,""); set_row(4,""); set_row(1,""); set_row(2,""); set_row(3,""); set_row(4,"");
set_row(5,"@11g@bCALCOLO LIQUIDAZIONE D'IMPOSTA@r"); set_row(5,"@11g@bCALCOLO LIQUIDAZIONE D'IMPOSTA@r");
set_row(6,""); int rw = 7; set_row(6,""); int rw = 7;
set_row(rw++,"@67gCredito@84gDebito"); set_row(rw++,""); set_row(rw++," @66gCredito@84gDebito"); set_row(rw++,"");
set_row(rw++,"@11gIva sulle operazioni di vendita@75g%r", &(d._r0)); set_row(rw++,"@11gIva sulle operazioni di vendita@75g%r", &(d._r0));
set_row(rw++,"@11gRettifiche IVA a debito@75g%r", &(d._r5)); set_row(rw++,"@11gRettifiche IVA a debito@75g%r", &(d._r5));
set_row(rw++,"@11gIva chiesta a rimborso@75g%r", &(d._r4)); set_row(rw++,"@11gIva chiesta a rimborso@75g%r", &(d._r4));
real rd = d._r0 + d._r5 + d._r4; real rd = d._r0 + d._r5 + d._r4;
// conguaglio prorata // conguaglio prorata
if (d._r9.sign() > 0) if (d._r9.sign() < 0)
{ {
rd += d._r9; real r = abs(d._r9);
set_row(rw++,"@11gConguaglio pro-rata@75g%r", &(d._r9)); set_row(rw++,"@11gConguaglio pro-rata@58g%r", &r);
} }
// debito liq. precedente < 50000 // debito liq. precedente < 50000
@ -931,13 +970,15 @@ void CG4300_App::set_grand(_DescrItem& d)
{ {
_DescrItem& di = (_DescrItem&)d._arr[0]; _DescrItem& di = (_DescrItem&)d._arr[0];
set_print_zero(TRUE);
set_row(rw++,""); set_row(rw++,"");
set_row(rw++,""); set_row(rw++,"");
set_row(rw++, " PROSPETTO DI RIMBORSO"); set_row(rw++, " PROSPETTO DI RIMBORSO");
set_row(rw++,""); set_row(rw++,"");
if (di._f0) if (di._f0)
{ {
// esenti // esenti
set_row(rw++,"1) Soggetto con quota di operazioni esenti e non" set_row(rw++,"1) Soggetto con quota di operazioni esenti e non"
" imponibili superiore al 50%%"); " imponibili superiore al 50%%");
@ -967,7 +1008,9 @@ void CG4300_App::set_grand(_DescrItem& d)
set_row(rw++,"@26gTotale imposte sulle vendite@66g%r", &(di._r4)); set_row(rw++,"@26gTotale imposte sulle vendite@66g%r", &(di._r4));
set_row(rw++,"@66g%t x 100 = %5.2r", &sep, &(di._r6)); set_row(rw++,"@66g%t x 100 = %5.2r", &sep, &(di._r6));
set_row(rw++,"@26gTotale imponibili sulle vendite@66g%r", &(di._r2)); set_row(rw++,"@26gTotale imponibili sulle vendite@66g%r", &(di._r2));
} }
set_print_zero(FALSE);
} }
set_auto_ff(TRUE); set_auto_ff(TRUE);
} }