Spianate caciotte liquidazione e visualizzazione
git-svn-id: svn://10.65.10.50/trunk@1570 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
bdfd171358
commit
7f283345e6
@ -247,7 +247,7 @@ bool TLiquidazione_app::user_create()
|
|||||||
if (need_refresh) _recalc = ever;
|
if (need_refresh) _recalc = ever;
|
||||||
|
|
||||||
for (int mese = 1; mese < _month; mese++) // fino a 13 compreso
|
for (int mese = 1; mese < _month; mese++) // fino a 13 compreso
|
||||||
if (is_month_ok(mese, _month) || _recalc == ever)
|
if (is_month_plain(mese) || _recalc == ever)
|
||||||
update_firm(mese);
|
update_firm(mese);
|
||||||
|
|
||||||
if (is_month_ok_strict(_month) || _month == 13)
|
if (is_month_ok_strict(_month) || _month == 13)
|
||||||
|
@ -1121,7 +1121,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
_plm->put("R2", prorata);
|
_plm->put("R2", prorata);
|
||||||
|
|
||||||
if (_isviaggio)
|
if (_isviaggio)
|
||||||
{
|
{
|
||||||
|
real deb_mens = 0.0;
|
||||||
_plm->put("R5", corr_CEE);
|
_plm->put("R5", corr_CEE);
|
||||||
_plm->put("R6", corr_noCEE);
|
_plm->put("R6", corr_noCEE);
|
||||||
_plm->put("R7", acq_CEE);
|
_plm->put("R7", acq_CEE);
|
||||||
@ -1135,6 +1136,25 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
// l'iva agenzie di viaggio, calcolata
|
// l'iva agenzie di viaggio, calcolata
|
||||||
// in liquidazione (mensile o trimestrale)
|
// in liquidazione (mensile o trimestrale)
|
||||||
// ---------------------------------------
|
// ---------------------------------------
|
||||||
|
// Mod 7/7/95: calcolo effettuato anche qui, in modo da
|
||||||
|
// avere l'IVA dovuta per riportarla nei progressivi
|
||||||
|
// Dato che il resto funziona non tocco nulla, ovvero
|
||||||
|
// duplico il calcolo di write_liq, nella remota ipotesi
|
||||||
|
// che ci siano due o piu' attivita' e siano tutte
|
||||||
|
// agenzie di viaggio
|
||||||
|
real perc_r = (acq_misCEE * CENTO)/(acq_misCEE + acq_misnoCEE);
|
||||||
|
real ivm = (corr_misCEE * perc_r)/CENTO; ivm.round(ROUND_LIRA);
|
||||||
|
real tc = (corr_CEE + ivm);
|
||||||
|
real ta = (acq_CEE + acq_misCEE);
|
||||||
|
real bi = tc - ta - credito_costo_prec(month);
|
||||||
|
|
||||||
|
if (bi.sign() > 0)
|
||||||
|
{
|
||||||
|
deb_mens = (bi /((CENTO + aliquota_agvia())/CENTO)) *
|
||||||
|
(aliquota_agvia()/CENTO);
|
||||||
|
deb_mens.ceil(ROUND_LIRA); // ceil voluto MI3074
|
||||||
|
}
|
||||||
|
_pom->put("R13", deb_mens);
|
||||||
}
|
}
|
||||||
else if (_isagricolo)
|
else if (_isagricolo)
|
||||||
{
|
{
|
||||||
|
@ -366,6 +366,8 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
|
|||||||
|
|
||||||
// descrittore riga autodafe'
|
// descrittore riga autodafe'
|
||||||
_DescrItem* ads = NULL;
|
_DescrItem* ads = NULL;
|
||||||
|
// descrittore riga iva dovuta ag. viaggio'
|
||||||
|
_DescrItem* iads = NULL;
|
||||||
// questa cazzata serve per far apparire l'intestazione delle colonne
|
// questa cazzata serve per far apparire l'intestazione delle colonne
|
||||||
// anche se le colonne non ci sono; in tal modo si ottiene una peggior
|
// anche se le colonne non ci sono; in tal modo si ottiene una peggior
|
||||||
// chiarezza, una peggiore efficienza, una gran rottura di coglioni,
|
// chiarezza, una peggiore efficienza, una gran rottura di coglioni,
|
||||||
@ -533,6 +535,23 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
look_plm(month,att);
|
||||||
|
real iva74t = _pom->get_real("R13");
|
||||||
|
if (iva74t.sign() > 0)
|
||||||
|
{
|
||||||
|
if(iads == NULL) iads = new _DescrItem(PIM_ROW);
|
||||||
|
iads->_s0 = "74TER"; // cosi' vollero
|
||||||
|
iads->_s1 = "IVA "; // cosi' vollero
|
||||||
|
iads->_s2 = " dovuta - 74 ter"; // cosi' vollero
|
||||||
|
iads->_r1 += iva74t;
|
||||||
|
t1 += iva74t;
|
||||||
|
if (isfirst)
|
||||||
|
{
|
||||||
|
isfirst = FALSE;
|
||||||
|
iads->_f0 = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (autodafe.sign() > 0 || autodafe_iva.sign() > 0)
|
if (autodafe.sign() > 0 || autodafe_iva.sign() > 0)
|
||||||
@ -551,25 +570,7 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ag. viaggio: iva dovuta 74 ter la vogliono in mezzo ai progressivi
|
// ag. viaggio: iva dovuta 74 ter la vogliono in mezzo ai progressivi
|
||||||
// mi chiamano mimi', il perche' non so
|
if (iads != NULL) _descr_arr.add(iads);
|
||||||
look_lim(month);
|
|
||||||
real iva74t = _lim->get_real("R3");
|
|
||||||
if (iva74t.sign() > 0)
|
|
||||||
{
|
|
||||||
_DescrItem* ads = new _DescrItem(PIM_ROW);
|
|
||||||
ads->_s0 = "74TER"; // cosi' vollero
|
|
||||||
ads->_s1 = "IVA "; // cosi' vollero
|
|
||||||
ads->_s2 = " dovuta - 74 ter"; // cosi' vollero
|
|
||||||
ads->_r1 = iva74t;
|
|
||||||
t1 += iva74t;
|
|
||||||
if (isfirst)
|
|
||||||
{
|
|
||||||
isfirst = FALSE;
|
|
||||||
ads->_f0 = TRUE;
|
|
||||||
}
|
|
||||||
_descr_arr.add(ads);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// prepara una bella riga di totali
|
// prepara una bella riga di totali
|
||||||
if (/* !isfirst */ TRUE)
|
if (/* !isfirst */ TRUE)
|
||||||
@ -756,8 +757,6 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts,
|
|||||||
{
|
{
|
||||||
// tutti i versamenti, sempre e comunque
|
// tutti i versamenti, sempre e comunque
|
||||||
d->_r8 = versamenti_IVA(_month, "1", TRUE);
|
d->_r8 = versamenti_IVA(_month, "1", TRUE);
|
||||||
// nessuno li ha scritti in LIM
|
|
||||||
d->_r0 -= d->_r8;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
// rispettiamo tutte le casistiche per i versamenti
|
// rispettiamo tutte le casistiche per i versamenti
|
||||||
@ -1299,7 +1298,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
|
||||||
{
|
{
|
||||||
|
@ -672,7 +672,15 @@ bool Visliq_app::vis_one(int m)
|
|||||||
d_mod = TRUE;
|
d_mod = TRUE;
|
||||||
}
|
}
|
||||||
if (msk.field(F_DELIMP).dirty())
|
if (msk.field(F_DELIMP).dirty())
|
||||||
{
|
{
|
||||||
|
real itt = _lim->get_real("R10");
|
||||||
|
if (!itt.is_zero())
|
||||||
|
{
|
||||||
|
// uso importi al netto degli interessi
|
||||||
|
// (vengono riapplicati dopo in write_del)
|
||||||
|
n_vers = n_vers/((itt+real(100.0))/real(100.0));
|
||||||
|
n_vers.round(0);
|
||||||
|
}
|
||||||
vers = n_vers;
|
vers = n_vers;
|
||||||
d_mod = TRUE;
|
d_mod = TRUE;
|
||||||
}
|
}
|
||||||
@ -749,7 +757,7 @@ void Visliq_app::recalc_liq_data(TViswin* vsw, real& rimb, real& rett, real& ver
|
|||||||
real rtt = _lim->get_real("R5"); // rettifica si
|
real rtt = _lim->get_real("R5"); // rettifica si
|
||||||
real udt = _lim->get_real("R6"); // ult. detrazioni no
|
real udt = _lim->get_real("R6"); // ult. detrazioni no
|
||||||
real cgp = _lim->get_real("R7"); // conguaglio prorata no
|
real cgp = _lim->get_real("R7"); // conguaglio prorata no
|
||||||
real vrs = _lim->get_real("R8"); // versamenti si
|
real vrs = _lim->get_real("R8"); // versamenti no
|
||||||
real vri = _lim->get_real("R9"); // versamenti integrativi no
|
real vri = _lim->get_real("R9"); // versamenti integrativi no
|
||||||
real itt = _lim->get_real("R10"); // tasso interesse no
|
real itt = _lim->get_real("R10"); // tasso interesse no
|
||||||
real act = _lim->get_real("R11"); // acconto si
|
real act = _lim->get_real("R11"); // acconto si
|
||||||
@ -772,7 +780,7 @@ void Visliq_app::recalc_liq_data(TViswin* vsw, real& rimb, real& rett, real& ver
|
|||||||
}
|
}
|
||||||
|
|
||||||
// calcola nuovi dati
|
// calcola nuovi dati
|
||||||
real riscr = iva_acq + udt + vers + acc + cre_pre;
|
real riscr = iva_acq + udt + acc + cre_pre;
|
||||||
real risdb = iva_ven + rimb + deb_pre;
|
real risdb = iva_ven + rimb + deb_pre;
|
||||||
|
|
||||||
if (rett.sign() < 0) riscr -= rett;
|
if (rett.sign() < 0) riscr -= rett;
|
||||||
@ -985,7 +993,9 @@ void Visliq_app::write_liq()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Visliq_app::write_del()
|
void Visliq_app::write_del()
|
||||||
{
|
{
|
||||||
|
bool wasdel = FALSE;
|
||||||
|
|
||||||
int month = atoi(*_lim_mese);
|
int month = atoi(*_lim_mese);
|
||||||
TString abi(_lim->get("S4"));
|
TString abi(_lim->get("S4"));
|
||||||
TString cab(_lim->get("S5"));
|
TString cab(_lim->get("S5"));
|
||||||
@ -993,12 +1003,21 @@ void Visliq_app::write_del()
|
|||||||
TDate date(_lim->get("D0"));
|
TDate date(_lim->get("D0"));
|
||||||
real vers(_lim->get_real("R8"));
|
real vers(_lim->get_real("R8"));
|
||||||
real intr(_lim->get_real("R10"));
|
real intr(_lim->get_real("R10"));
|
||||||
|
|
||||||
|
if (vers.is_zero() && (wasdel = look_del(month,1)))
|
||||||
|
{
|
||||||
|
_del->remove();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
bool wasdel = look_del(month,1,TRUE);
|
if (!wasdel) look_del(month,1,TRUE);
|
||||||
|
|
||||||
// riapplica il tasso di interesse
|
// riapplica il tasso di interesse
|
||||||
|
// se trimstrale e' stato scorporato rispetto
|
||||||
|
// all'eventuale input utente
|
||||||
real inter = vers*(intr/real(100.0));
|
real inter = vers*(intr/real(100.0));
|
||||||
inter.ceil();
|
inter.ceil();
|
||||||
|
vers += inter;
|
||||||
|
|
||||||
_del->put("R0",vers);
|
_del->put("R0",vers);
|
||||||
_del->put("R1",inter);
|
_del->put("R1",inter);
|
||||||
@ -1200,7 +1219,7 @@ void Visliq_app::write_general(TMask& m)
|
|||||||
if (!look_lim(i))
|
if (!look_lim(i))
|
||||||
// blocca riporto crediti e debiti
|
// blocca riporto crediti e debiti
|
||||||
carry = FALSE;
|
carry = FALSE;
|
||||||
|
|
||||||
// ricalcola crediti e debiti se non ci sono
|
// ricalcola crediti e debiti se non ci sono
|
||||||
// liquidazioni non calcolate in mezzo
|
// liquidazioni non calcolate in mezzo
|
||||||
if (carry)
|
if (carry)
|
||||||
@ -1246,10 +1265,20 @@ void Visliq_app::write_general(TMask& m)
|
|||||||
// e crea/aggiorna le deleghe
|
// e crea/aggiorna le deleghe
|
||||||
if (nvers != overs)
|
if (nvers != overs)
|
||||||
{
|
{
|
||||||
risc -= overs;
|
real itt = _lim->get_real("R10");
|
||||||
risc += nvers;
|
if (!itt.is_zero())
|
||||||
risl += overs;
|
{
|
||||||
risl -= nvers;
|
// uso importi al netto degli interessi
|
||||||
|
// (vengono riapplicati dopo in write_del)
|
||||||
|
nvers = nvers/((itt+real(100.0))/real(100.0));
|
||||||
|
// overs = overs/((itt+real(100.0))/real(100.0));
|
||||||
|
nvers.round(0);
|
||||||
|
// overs.round(0);
|
||||||
|
}
|
||||||
|
// risc -= overs;
|
||||||
|
// risc += nvers;
|
||||||
|
// risl += overs;
|
||||||
|
// risl -= nvers;
|
||||||
vr_mod = TRUE;
|
vr_mod = TRUE;
|
||||||
}
|
}
|
||||||
if (vr_mod || ndate != odate || nabi != oabi ||
|
if (vr_mod || ndate != odate || nabi != oabi ||
|
||||||
@ -1336,8 +1365,6 @@ void Visliq_app::write_general(TMask& m)
|
|||||||
_lim->put("R1", nrimb);
|
_lim->put("R1", nrimb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// TBI controlla compatibilita' versamenti
|
|
||||||
|
|
||||||
_lam->put("R2", newcred);
|
_lam->put("R2", newcred);
|
||||||
_lam->put("R3", newdebt);
|
_lam->put("R3", newdebt);
|
||||||
_lim->put("R0", risl);
|
_lim->put("R0", risl);
|
||||||
@ -1356,17 +1383,17 @@ void Visliq_app::write_general(TMask& m)
|
|||||||
|
|
||||||
rstart = risl;
|
rstart = risl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// salva i valori modificati senza fare controlli
|
// salva i valori modificati senza fare controlli
|
||||||
// e rimetti a lui i suoi debiti mettendo B0 a FALSE
|
// e rimetti a lui i suoi debiti mettendo B0 a FALSE
|
||||||
if (orett != nrett)
|
if (orett != nrett)
|
||||||
_lim->put("R5", nrett);
|
_lim->put("R5", nrett);
|
||||||
if (orimb != nrimb)
|
if (orimb != nrimb)
|
||||||
_lim->put("R1", nrimb);
|
_lim->put("R1", nrimb);
|
||||||
_lim->put("B0", "");
|
_lim->put("B0", "");
|
||||||
_lim->rewrite();
|
_lim->rewrite();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rimetti a posto righe sheet se serve
|
// Rimetti a posto righe sheet se serve
|
||||||
int sr0 = (_lim->get_real("R0")).sign();
|
int sr0 = (_lim->get_real("R0")).sign();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user