Scaccolati errori in visualizzazione liquidazione

Aggiunti versamenti effettuati in prospetto liquidazione


git-svn-id: svn://10.65.10.50/trunk@857 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
villa 1995-01-12 14:46:51 +00:00
parent 8e349d2dcc
commit e3626153e1
7 changed files with 71 additions and 29 deletions

View File

@ -310,6 +310,8 @@ public:
// ritorna l'appropriato credito di costo precedente al mese in corso // ritorna l'appropriato credito di costo precedente al mese in corso
// (travel agency only) // (travel agency only)
real credito_costo_prec(int month, const char* codatt); real credito_costo_prec(int month, const char* codatt);
// ritorna i versamenti effettuati nel mese passato
real versamenti_IVA(int month, bool acconto = FALSE);
// supporto stampa // supporto stampa
void describe_firm(int month); void describe_firm(int month);

View File

@ -628,7 +628,12 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
// corrispettivi // corrispettivi
if (corrisp) if (corrisp)
{ {
// l'ultimo casino // ennesimo casino: non tutti i corrispettivi sono
// corrispettivi; in effetti, alcuni corrispettivi
// non sono corrispettivi. Ci si potrebbe domandare
// se gli altri corrispettivi sono corrispettivi o
// no; ebbene, gli altri corrispettivi risultano
// fortunatamente essere corrispettivi.
if (tipodoc == "CR" || tipodoc == "RF" || tipodoc == "SC" || if (tipodoc == "CR" || tipodoc == "RF" || tipodoc == "SC" ||
tipodoc == "SN" || tipodoc == "CN") tipodoc == "SN" || tipodoc == "CN")
{ {
@ -694,15 +699,15 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
_pim_r->put("I0",NETTO); _pim_r->put("I0",NETTO);
} }
if (autodafe) if (autodafe) // autofatture non residenti art, 17
{ {
/* /*
* Si devono riportare a parte in annuale * Si devono riportare a parte in annuale
* e non comparire nel riepilogo del codice IVA * e non comparire nel riepilogo del codice IVA
* corrispondente, solo se la liq. e' annuale * corrispondente, solo se la liq. e' annuale
* Li metto in S0 di pim (imp|iva) e li sommo anche nelle * Li metto in R7/R8 di pim e li sommo anche nelle
* vendite; la describe_pim() dovra' sommarli su tutti i * vendite; la describe_pim() dovra' sommarli su tutti i
* pim, scorporarli dalle vendite corrispondenti * pim, scorporarli dalle rispettive vendite
* e assegnarli al codice IVA A35 in caso di liq. annuale * e assegnarli al codice IVA A35 in caso di liq. annuale
*/ */
adf += imponibile; adf += imponibile;

View File

@ -471,6 +471,18 @@ real TLiquidazione_app::credito_costo_prec(int month, const char* codatt)
} }
real TLiquidazione_app::versamenti_IVA(int month, bool acconto)
{
real ret(0.0);
int typ = acconto ? 7 : 1;
if (look_del(month,typ))
if (_del->get_bool("B0")) // solo se stampata
ret = _del->get_real("R0") + _del->get_real("R1");
return ret;
}
real TLiquidazione_app::aliquota_agvia() real TLiquidazione_app::aliquota_agvia()
{ {
TConfig cnf(CONFIG_STUDIO); TConfig cnf(CONFIG_STUDIO);

View File

@ -607,6 +607,9 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts,
// r11 = ulteriori detrazioni // r11 = ulteriori detrazioni
d->_r11 = _lim->get_real("R6"); d->_r11 = _lim->get_real("R6");
// se ci sono stati versamenti IVA li riporta in _s2
d->_s2 = versamenti_IVA(month).string();
// vedi se c'era un debito precedente e schiaffa in r10 // vedi se c'era un debito precedente e schiaffa in r10
if (!is_first_month(month)) if (!is_first_month(month))
{ {
@ -630,8 +633,6 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts,
d->_r8 = _lia->get_real("R4"); d->_r8 = _lia->get_real("R4");
// r9 = conguaglio prorata // r9 = conguaglio prorata
d->_r9 = conguaglio; d->_r9 = conguaglio;
// TBI ci vogliono tutti i versamenti effettuati
// presi dalle deleghe
} }
// aggiunge eventuale satellite per rimborso infraannuale // aggiunge eventuale satellite per rimborso infraannuale
@ -995,10 +996,13 @@ void TLiquidazione_app::set_grand(_DescrItem& d)
set_row(6,""); int rw = 7; set_row(6,""); int rw = 7;
set_row(rw++," @66gCredito@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++,"%s@11gRettifiche IVA a debito@75g%r", _is_visliq ? "$[r]" : "", &(d._r5)); set_row(rw++,"%s@11gRettifiche IVA a debito@75g%r",
set_row(rw++,"%s@11gIva chiesta a rimborso@75g%r", _is_visliq ? "$[r]" : "", &(d._r4)); _is_visliq ? "$[r]" : "", &(d._r5));
set_row(rw++,"%s@11gIva chiesta a rimborso@75g%r",
_is_visliq ? "$[r]" : "", &(d._r4));
real rd = d._r0 + d._r5 + d._r4; real rd = d._r0 + d._r5 + d._r4;
real vers;
// conguaglio prorata // conguaglio prorata
if (d._r9.sign() < 0) if (d._r9.sign() < 0)
{ {
@ -1027,12 +1031,21 @@ void TLiquidazione_app::set_grand(_DescrItem& d)
if (!(d._r11.is_zero())) if (!(d._r11.is_zero()))
set_row(rw++,"@11gUlteriori detrazioni@58g%r", &(d._r11)); set_row(rw++,"@11gUlteriori detrazioni@58g%r", &(d._r11));
set_row(rw++,"%s@11gRettifiche IVA a credito@58g%r", _is_visliq ? "$[r]" : "", &(d._r6)); set_row(rw++,"%s@11gRettifiche IVA a credito@58g%r",
_is_visliq ? "$[r]" : "", &(d._r6));
real rc = d._r1 + d._r7 + d._r8 + d._r6 -d._r11; real rc = d._r1 + d._r7 + d._r8 + d._r6 -d._r11;
// conguaglio prorata // conguaglio prorata
if (d._r9.sign() < 0) rc -= d._r9; if (d._r9.sign() < 0) rc -= d._r9;
// versamenti effettuati
if (!d._s2.empty())
{
vers = real(d._s2);
rc += vers;
set_row(rw++,"@11gVersamenti effettuati@58g%r", &vers);
}
set_row(rw++,"@11gRISULTATO@58g%r", &rc); set_row(rw++,"@11gRISULTATO@58g%r", &rc);
// TBI versamenti integrativi e non, e chissa' cos'altro // TBI versamenti integrativi e non, e chissa' cos'altro
@ -1049,7 +1062,7 @@ void TLiquidazione_app::set_grand(_DescrItem& d)
else else
{ {
if (how == 'c') if (how == 'c')
{ {
set_row(rw++,"@23gCREDITO ATTUALE@58g%r",&iva); set_row(rw++,"@23gCREDITO ATTUALE@58g%r",&iva);
} }
else else
@ -1057,27 +1070,35 @@ void TLiquidazione_app::set_grand(_DescrItem& d)
if (d._f0) if (d._f0)
{ {
// trimestrale: interesse // trimestrale: interesse
set_row(rw++,"@23gIVA DOVUTA@75g%r",&iva);
real interesse = interesse_trimestrale(d._f2); real interesse = interesse_trimestrale(d._f2);
real ivi = iva * interesse / CENTO; ivi.ceil(ROUND_LIRA); real ivi = iva * interesse / CENTO; ivi.ceil(ROUND_LIRA);
real ivt = iva + ivi; real ivt = iva + ivi;
ivt.ceil(_isannual ? ROUND_MILLELIRE : ROUND_LIRA); ivt.ceil(_isannual ? ROUND_MILLELIRE : ROUND_LIRA);
set_row(rw++,"@23gInteresse %6.2r %%@75g%r",&interesse, &ivi);
if (!iva.is_zero())
{
set_row(rw++,"@23gIVA DOVUTA@75g%r",&iva);
set_row(rw++,"@23gInteresse %6.2r %%@75g%r",&interesse, &ivi);
if (ivt.is_zero() || ivt >= IVA_DA_RIPORTARE || d._f1) if (ivt.is_zero() || ivt >= IVA_DA_RIPORTARE || d._f1)
set_row(rw++,"@23gIVA DA VERSARE@75g%r",&ivt); set_row(rw++,"@23gIVA DA VERSARE@75g%r",&ivt);
else else
set_row(rw++,"@23gIVA DA VERSARE@85g0 (%s < 50.000)", set_row(rw++,"@23gIVA DA VERSARE@85g0 (%s < 50.000)",
(const char*)ivt.string(".")); (const char*)ivt.string("."));
}
else set_row(rw++,"");
} }
else else
{ {
if (iva >= IVA_DA_RIPORTARE || d._f1) if (!iva.is_zero())
set_row(rw++,"@23gIVA DA VERSARE@75g%r",&iva); {
else if (iva >= IVA_DA_RIPORTARE || d._f1)
set_row(rw++,"@23gIVA DA VERSARE@85g0 (%s < 50.000)", set_row(rw++,"@23gIVA DA VERSARE@75g%r",&iva);
(const char*)iva.string(".")); else
set_row(rw++,"@23gIVA DA VERSARE@85g0 (%s < 50.000)",
(const char*)iva.string("."));
}
else set_row(rw++,"");
} }
} }
} }

View File

@ -150,6 +150,8 @@ bool Visliq_app::set_ditta(TMask_field& f, KEY k)
{ {
long ditta = atol(f.get()); long ditta = atol(f.get());
if (ditta <= 0) return k != K_ENTER;
if (!prefhndl->exist(ditta)) if (!prefhndl->exist(ditta))
{ {
warning_box("Archivi ditta %l non presenti!", ditta); warning_box("Archivi ditta %l non presenti!", ditta);

View File

@ -45,7 +45,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
SPREADSHEET F_VISLIQ1 80 11 SPREADSHEET F_VISLIQ1 0 11
BEGIN BEGIN
PROMPT 1 7 "Liquidazione" PROMPT 1 7 "Liquidazione"
ITEM "V@1F#109" ITEM "V@1F#109"
@ -78,7 +78,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
SPREADSHEET F_VISLIQ2 80 11 SPREADSHEET F_VISLIQ2 0 11
BEGIN BEGIN
PROMPT 1 5 "Versamenti" PROMPT 1 5 "Versamenti"
ITEM "V@1F#109" ITEM "V@1F#109"

View File

@ -44,7 +44,7 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
SPREADSHEET F_VISLIQ1 80 5 SPREADSHEET F_VISLIQ1 0 5
BEGIN BEGIN
PROMPT 1 6 "Liquidazione" PROMPT 1 6 "Liquidazione"
ITEM "V@1F#109" ITEM "V@1F#109"
@ -56,7 +56,7 @@ BEGIN
ITEM "D/C" ITEM "D/C"
END END
SPREADSHEET F_VISLIQ2 80 5 SPREADSHEET F_VISLIQ2 0 5
BEGIN BEGIN
PROMPT 1 12 "Versamenti" PROMPT 1 12 "Versamenti"
ITEM "V@1F#109" ITEM "V@1F#109"