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:
villa 1995-07-06 15:10:38 +00:00
parent bdfd171358
commit 7f283345e6
4 changed files with 93 additions and 47 deletions

View File

@ -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)

View File

@ -1122,6 +1122,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
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)
{ {

View File

@ -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
{ {

View File

@ -673,6 +673,14 @@ bool Visliq_app::vis_one(int m)
} }
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;
@ -986,6 +994,8 @@ 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"));
@ -994,11 +1004,20 @@ void Visliq_app::write_del()
real vers(_lim->get_real("R8")); real vers(_lim->get_real("R8"));
real intr(_lim->get_real("R10")); real intr(_lim->get_real("R10"));
bool wasdel = look_del(month,1,TRUE); if (vers.is_zero() && (wasdel = look_del(month,1)))
{
_del->remove();
return;
}
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);
@ -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();