Liquidazion funzion perfezion nonostant ducoion
git-svn-id: svn://10.65.10.50/trunk@1624 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
eb32e8ff41
commit
3de042b53a
@ -869,7 +869,6 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
* le maledette autofatture non residenti art. 17
|
* le maledette autofatture non residenti art. 17
|
||||||
* vedi al calcolo if (autodafe) si tengono da parte
|
* vedi al calcolo if (autodafe) si tengono da parte
|
||||||
* La stampa le scorpora solo IN SEDE di dichiarazione annuale
|
* La stampa le scorpora solo IN SEDE di dichiarazione annuale
|
||||||
* NELL'OTTICA di una PIU' CORRETTA e CONSONA ......................
|
|
||||||
*/
|
*/
|
||||||
real adf = _pim->get_real("R7");
|
real adf = _pim->get_real("R7");
|
||||||
real adi = _pim->get_real("R8");
|
real adi = _pim->get_real("R8");
|
||||||
@ -1328,7 +1327,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
|||||||
_year = format("%d", atoi(_year)+1);
|
_year = format("%d", atoi(_year)+1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else // puo' essere: differita e mese > 1 o non differita e mese qualunque
|
||||||
{
|
{
|
||||||
for (int m = 1; m <= 13; m++)
|
for (int m = 1; m <= 13; m++)
|
||||||
{
|
{
|
||||||
@ -1417,9 +1416,10 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
|||||||
a_meCEE += _plm->get_real("R11");
|
a_meCEE += _plm->get_real("R11");
|
||||||
}
|
}
|
||||||
} // fine ciclo sul mese
|
} // fine ciclo sul mese
|
||||||
|
|
||||||
// counter attivita' per evitare troppi versamenti
|
// counter attivita' per evitare troppi versamenti
|
||||||
attc++;
|
attc++;
|
||||||
} // fine ciclo su attivita'
|
} // fine else
|
||||||
|
|
||||||
if (!(_isdifferita && is_first_month(month)))
|
if (!(_isdifferita && is_first_month(month)))
|
||||||
{
|
{
|
||||||
@ -1449,51 +1449,30 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} // end ciclo su attivita'
|
||||||
|
|
||||||
if (!(_isdifferita && is_first_month(month)))
|
if (!(_isdifferita && is_first_month(month)))
|
||||||
{
|
{
|
||||||
if (month < 13)
|
if (month < 13) // va bene anche se differita sommando deltam (che e' 0 normalmente)
|
||||||
{
|
{
|
||||||
// toglie credito precedente
|
// toglie credito precedente
|
||||||
cred_prec = credito_prec(month);
|
cred_prec = credito_prec(month+deltam);
|
||||||
risultato -= cred_prec;
|
risultato -= cred_prec;
|
||||||
res_cred += cred_prec;
|
res_cred += cred_prec;
|
||||||
// vedi se c'era un debito precedente per debiti < 50.000
|
// vedi se c'era un debito precedente per debiti < 50.000
|
||||||
debt_precd = debt_prec(month);
|
debt_precd = debt_prec(month+deltam);
|
||||||
risultato += debt_precd;
|
risultato += debt_precd;
|
||||||
res_debt += debt_precd;
|
res_debt += debt_precd;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// per l'annuale considera solo il credito a inizio anno
|
// per l'annuale considera solo il credito a inizio anno
|
||||||
cred_prec = credito_prec(1);
|
cred_prec = credito_prec(_freqviva == "M" ? 1 : 3);
|
||||||
risultato -= cred_prec;
|
risultato -= cred_prec;
|
||||||
res_cred += cred_prec;
|
res_cred += cred_prec;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (_isdifferita && !is_first_month(month) && month < 13)
|
|
||||||
{
|
|
||||||
// toglie credito precedente
|
|
||||||
cred_prec = credito_prec(month);
|
|
||||||
risultato -= cred_prec;
|
|
||||||
res_cred += cred_prec;
|
|
||||||
// vedi se c'era un debito precedente per debiti < 50.000
|
|
||||||
debt_precd = debt_prec(month);
|
|
||||||
risultato += debt_precd;
|
|
||||||
res_debt += debt_precd;
|
|
||||||
|
|
||||||
// folie bergere: se il mese precedente, che e' poi questo che ho calcolato,
|
|
||||||
// era a credito, devo tener conto del credito precedente che e' quello di
|
|
||||||
// questo mese (Vladimiro MI3170), ovvero devo RADDOPPIARE il credito, il che
|
|
||||||
// e' semplicemente roba da matti
|
|
||||||
if (!cred_prec.is_zero())
|
|
||||||
{
|
|
||||||
risultato -= cred_prec;
|
|
||||||
res_cred += cred_prec;
|
|
||||||
cred_prec += cred_prec; // AH AH UAH IH UHU
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (month == 13)
|
if (month == 13)
|
||||||
{
|
{
|
||||||
@ -1523,7 +1502,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
|||||||
real csamm = _pla->get_real("R4");
|
real csamm = _pla->get_real("R4");
|
||||||
|
|
||||||
// calcola nuovo prorata per ogni attivita' (miste: 1+2)
|
// calcola nuovo prorata per ogni attivita' (miste: 1+2)
|
||||||
real ris = vol_aff_t - csamm - es_b3;
|
real ris = vol_aff_t - csamm - es_b3; // gia' esclusi NS
|
||||||
real prorata(0.0);
|
real prorata(0.0);
|
||||||
if (!ris.is_zero())
|
if (!ris.is_zero())
|
||||||
prorata = (es_b1/ris) * CENTO;
|
prorata = (es_b1/ris) * CENTO;
|
||||||
@ -1532,7 +1511,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
|||||||
if (prorata != _prorata)
|
if (prorata != _prorata)
|
||||||
{
|
{
|
||||||
// calcolo conguaglio -- se positivo e' a debito
|
// calcolo conguaglio -- se positivo e' a debito
|
||||||
real topay = iaq * (prorata / CENTO);
|
real topay = (iaq + ppg) * (prorata / CENTO);
|
||||||
conguaglio = topay - ppg;
|
conguaglio = topay - ppg;
|
||||||
conguaglio.round(ROUND_LIRA);
|
conguaglio.round(ROUND_LIRA);
|
||||||
}
|
}
|
||||||
|
@ -90,6 +90,10 @@ void TLiquidazione_app::recalc_corrispettivi(int month, const char* codatt)
|
|||||||
imposta.ceil();
|
imposta.ceil();
|
||||||
if (ci->_totale.sign() < 0) imposta = -imposta;
|
if (ci->_totale.sign() < 0) imposta = -imposta;
|
||||||
real imponibile = ci->_totale - imposta;
|
real imponibile = ci->_totale - imposta;
|
||||||
|
// quadratura del cerchione
|
||||||
|
real delta = ci->_totale - imponibile - imposta;
|
||||||
|
if (!delta.is_zero())
|
||||||
|
imposta += delta;
|
||||||
|
|
||||||
// aggiusto l'IVA vendite nei plm
|
// aggiusto l'IVA vendite nei plm
|
||||||
look_plm(month, codatt);
|
look_plm(month, codatt);
|
||||||
@ -213,9 +217,14 @@ void TLiquidazione_app::recalc_ventilation(int month, const char* codatt)
|
|||||||
_VentItem* vv = (_VentItem*)&_vent_arr[j];
|
_VentItem* vv = (_VentItem*)&_vent_arr[j];
|
||||||
real imponibile = dst.get();
|
real imponibile = dst.get();
|
||||||
real div(1.0); div += vv->_aliquota;
|
real div(1.0); div += vv->_aliquota;
|
||||||
|
real totale = imponibile;
|
||||||
real imposta = imponibile - (imponibile/div);
|
real imposta = imponibile - (imponibile/div);
|
||||||
imposta.ceil(ROUND_LIRA);
|
imposta.ceil(ROUND_LIRA);
|
||||||
imponibile -= imposta;
|
imponibile -= imposta;
|
||||||
|
// quadratura del cerchione
|
||||||
|
real delta = totale - imponibile - imposta;
|
||||||
|
if (!delta.is_zero())
|
||||||
|
imposta += delta;
|
||||||
|
|
||||||
// aggiusto l'IVA vendite nei plm
|
// aggiusto l'IVA vendite nei plm
|
||||||
look_plm(month, codatt);
|
look_plm(month, codatt);
|
||||||
@ -230,15 +239,23 @@ void TLiquidazione_app::recalc_ventilation(int month, const char* codatt)
|
|||||||
_pam->rewrite();
|
_pam->rewrite();
|
||||||
|
|
||||||
// Aggiorno i luridi pim
|
// Aggiorno i luridi pim
|
||||||
look_pim(month, codatt, vi->_codreg, "0", vv->_codiva, vi->_tipodet, TRUE);
|
bool was = look_pim(month, codatt, vi->_codreg, "0", vv->_codiva, vi->_tipodet, TRUE);
|
||||||
|
|
||||||
imponibile += _pim->get_real("R0");
|
imponibile += _pim->get_real("R0");
|
||||||
imposta += _pim->get_real("R1");
|
imposta += _pim->get_real("R1");
|
||||||
_pim->put("R0", imponibile);
|
_pim->put("R0", imponibile);
|
||||||
_pim->put("R1", imposta);
|
_pim->put("R1", imposta);
|
||||||
_pim->put("S4", vv->_other);
|
_pim->put("S4", vv->_other);
|
||||||
// segnale per comodita'
|
// segnale per comodita' in stampa prospetto
|
||||||
_pim->put("B1","X");
|
_pim->put("B1","X");
|
||||||
|
// se e' nuovo, il segnale per usare l'importo nel calcolo del rimborso
|
||||||
|
// viene amorosamente messo a quanto il codice IVA prevede
|
||||||
|
if (!was)
|
||||||
|
{
|
||||||
|
look_iva(vv->_codiva);
|
||||||
|
_pim->put("I1", (long)vendita);
|
||||||
|
if (!_iva->get_bool("B4")) _pim->put("B3", "X");
|
||||||
|
}
|
||||||
_pim->rewrite();
|
_pim->rewrite();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -253,18 +270,19 @@ void TLiquidazione_app::recalc_ventilation(int month, const char* codatt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// questa serve per il rimborso secondo le
|
// questa servIVA per il rimborso secondo le
|
||||||
// nuove cazzonorme
|
// nuove cazzonorme, mai entrate in vigore ma
|
||||||
class rObj : public TObject
|
// devotamente programmate
|
||||||
{
|
//class rObj : public TObject
|
||||||
public:
|
//{
|
||||||
real _imp;
|
//public:
|
||||||
real _iva;
|
// real _imp;
|
||||||
real _perc;
|
// real _iva;
|
||||||
|
// real _perc;
|
||||||
rObj() {}
|
//
|
||||||
virtual ~rObj() {}
|
// rObj() {}
|
||||||
};
|
// virtual ~rObj() {}
|
||||||
|
//};
|
||||||
|
|
||||||
|
|
||||||
// defines per stabilire quale cazzo di metodo piace oggi alla prassi
|
// defines per stabilire quale cazzo di metodo piace oggi alla prassi
|
||||||
@ -490,6 +508,7 @@ _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts,
|
|||||||
|
|
||||||
// vedi condizioni
|
// vedi condizioni
|
||||||
rimborsami = ala > alv;
|
rimborsami = ala > alv;
|
||||||
|
|
||||||
if (rimborsami)
|
if (rimborsami)
|
||||||
{
|
{
|
||||||
// vedi di quanto ala eccede alv; deve essere > 10%
|
// vedi di quanto ala eccede alv; deve essere > 10%
|
||||||
|
@ -696,7 +696,7 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
|
|||||||
if (pr != _prorata)
|
if (pr != _prorata)
|
||||||
{
|
{
|
||||||
// calcolo conguaglio -- se positivo e' a debito
|
// calcolo conguaglio -- se positivo e' a debito
|
||||||
topay = iaq * (pr / CENTO);
|
topay = (iaq + ppg) * (pr / CENTO);
|
||||||
co = topay - ppg;
|
co = topay - ppg;
|
||||||
co.round(ROUND_LIRA);
|
co.round(ROUND_LIRA);
|
||||||
}
|
}
|
||||||
@ -755,6 +755,8 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts,
|
|||||||
d->_s3 = _lim->get_real("R13").string();
|
d->_s3 = _lim->get_real("R13").string();
|
||||||
d->_r11 = (const char*)_lim->get("R10"); // tasso di interesse
|
d->_r11 = (const char*)_lim->get("R10"); // tasso di interesse
|
||||||
|
|
||||||
|
d->_f1 = is_first_month(month);
|
||||||
|
|
||||||
if (_is_visliq)
|
if (_is_visliq)
|
||||||
{
|
{
|
||||||
// tutti i versamenti, sempre e comunque
|
// tutti i versamenti, sempre e comunque
|
||||||
@ -1283,7 +1285,7 @@ void TLiquidazione_app::set_grand(_DescrItem& d)
|
|||||||
|
|
||||||
set_row(rw++,"@11gRISULTATO@75g%r", &res_debt);
|
set_row(rw++,"@11gRISULTATO@75g%r", &res_debt);
|
||||||
set_row(rw++,"@11gIva sulle operazioni di acquisto@58g%r", &iva_acq);
|
set_row(rw++,"@11gIva sulle operazioni di acquisto@58g%r", &iva_acq);
|
||||||
if (_isannual)
|
if (_isannual || d._f1)
|
||||||
set_row(rw++,"@11gCredito inizio anno@58g%r", &cred_prec);
|
set_row(rw++,"@11gCredito inizio anno@58g%r", &cred_prec);
|
||||||
else
|
else
|
||||||
set_row(rw++,"@11gCredito precedente@58g%r", &cred_prec);
|
set_row(rw++,"@11gCredito precedente@58g%r", &cred_prec);
|
||||||
@ -1301,7 +1303,7 @@ void TLiquidazione_app::set_grand(_DescrItem& d)
|
|||||||
if (_is_visliq)
|
if (_is_visliq)
|
||||||
{
|
{
|
||||||
// stampa ad uso visualizzazione liquidazione IVA
|
// stampa ad uso visualizzazione liquidazione IVA
|
||||||
// set_row(rw++,"@11g$[r]Versamenti effettuati$[n]@58g%r", &versamenti);
|
set_row(rw++,"@11g$[r]Versamenti effettuati$[n]@58g%r", &versamenti);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user