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;
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);
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)
{
real deb_mens = 0.0;
_plm->put("R5", corr_CEE);
_plm->put("R6", corr_noCEE);
_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
// 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)
{

View File

@ -366,6 +366,8 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
// descrittore riga autodafe'
_DescrItem* ads = NULL;
// descrittore riga iva dovuta ag. viaggio'
_DescrItem* iads = NULL;
// questa cazzata serve per far apparire l'intestazione delle colonne
// anche se le colonne non ci sono; in tal modo si ottiene una peggior
// 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)
@ -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
// mi chiamano mimi', il perche' non so
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);
}
if (iads != NULL) _descr_arr.add(iads);
// prepara una bella riga di totali
if (/* !isfirst */ TRUE)
@ -756,8 +757,6 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts,
{
// tutti i versamenti, sempre e comunque
d->_r8 = versamenti_IVA(_month, "1", TRUE);
// nessuno li ha scritti in LIM
d->_r0 -= d->_r8;
}
else
// rispettiamo tutte le casistiche per i versamenti
@ -1299,7 +1298,7 @@ void TLiquidazione_app::set_grand(_DescrItem& d)
if (_is_visliq)
{
// 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
{

View File

@ -673,6 +673,14 @@ bool Visliq_app::vis_one(int m)
}
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;
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 udt = _lim->get_real("R6"); // ult. detrazioni 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 itt = _lim->get_real("R10"); // tasso interesse no
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
real riscr = iva_acq + udt + vers + acc + cre_pre;
real riscr = iva_acq + udt + acc + cre_pre;
real risdb = iva_ven + rimb + deb_pre;
if (rett.sign() < 0) riscr -= rett;
@ -986,6 +994,8 @@ void Visliq_app::write_liq()
void Visliq_app::write_del()
{
bool wasdel = FALSE;
int month = atoi(*_lim_mese);
TString abi(_lim->get("S4"));
TString cab(_lim->get("S5"));
@ -994,11 +1004,20 @@ void Visliq_app::write_del()
real vers(_lim->get_real("R8"));
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
// se trimstrale e' stato scorporato rispetto
// all'eventuale input utente
real inter = vers*(intr/real(100.0));
inter.ceil();
vers += inter;
_del->put("R0",vers);
_del->put("R1",inter);
@ -1246,10 +1265,20 @@ void Visliq_app::write_general(TMask& m)
// e crea/aggiorna le deleghe
if (nvers != overs)
{
risc -= overs;
risc += nvers;
risl += overs;
risl -= nvers;
real itt = _lim->get_real("R10");
if (!itt.is_zero())
{
// 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;
}
if (vr_mod || ndate != odate || nabi != oabi ||
@ -1336,8 +1365,6 @@ void Visliq_app::write_general(TMask& m)
_lim->put("R1", nrimb);
}
}
// TBI controlla compatibilita' versamenti
_lam->put("R2", newcred);
_lam->put("R3", newdebt);
_lim->put("R0", risl);
@ -1356,17 +1383,17 @@ void Visliq_app::write_general(TMask& m)
rstart = risl;
}
else
{
// salva i valori modificati senza fare controlli
// e rimetti a lui i suoi debiti mettendo B0 a FALSE
if (orett != nrett)
_lim->put("R5", nrett);
if (orimb != nrimb)
_lim->put("R1", nrimb);
_lim->put("B0", "");
_lim->rewrite();
}
else
{
// salva i valori modificati senza fare controlli
// e rimetti a lui i suoi debiti mettendo B0 a FALSE
if (orett != nrett)
_lim->put("R5", nrett);
if (orimb != nrimb)
_lim->put("R1", nrimb);
_lim->put("B0", "");
_lim->rewrite();
}
// Rimetti a posto righe sheet se serve
int sr0 = (_lim->get_real("R0")).sign();