Corretti errori MI2308 e MI2309, relativo al calcolo dell'acconto
per anno precedente. git-svn-id: svn://10.65.10.50/trunk@4340 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
2b26a6840c
commit
a2e7b5aa4a
269
cg/cg4305.cpp
269
cg/cg4305.cpp
@ -470,6 +470,7 @@ bool TLiquidazione_app::recalc_acconto(real& inf, real& ina)
|
|||||||
{
|
{
|
||||||
// determina casistica
|
// determina casistica
|
||||||
enum { mm, tt, mt, tm, boh } history = boh;
|
enum { mm, tt, mt, tm, boh } history = boh;
|
||||||
|
real divide_by_three = 1.0;
|
||||||
char thh = *_freqviva;
|
char thh = *_freqviva;
|
||||||
|
|
||||||
TString16 thyear = _year;
|
TString16 thyear = _year;
|
||||||
@ -526,9 +527,9 @@ bool TLiquidazione_app::recalc_acconto(real& inf, real& ina)
|
|||||||
real av = _lim->get_real("R11");
|
real av = _lim->get_real("R11");
|
||||||
bc += av;
|
bc += av;
|
||||||
}
|
}
|
||||||
if (_basecalc == tm)
|
if (history == tm)
|
||||||
// tm come tt ma si divide per 3 la base di calcolo prima di calcolare l'88%
|
// tm come tt ma si divide per 3 la base di calcolo prima di calcolare l'88%
|
||||||
bc /= real(3.0);
|
divide_by_three = 3.0;
|
||||||
break;
|
break;
|
||||||
case mt:
|
case mt:
|
||||||
// basecalcolo: 10, 11, 12 anno prec., 10 e 11 se a debito, 12 vedi acconto;
|
// basecalcolo: 10, 11, 12 anno prec., 10 e 11 se a debito, 12 vedi acconto;
|
||||||
@ -557,9 +558,10 @@ bool TLiquidazione_app::recalc_acconto(real& inf, real& ina)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
round_mille_lire(bc);
|
||||||
if (bc.sign() > 0) //debito
|
if (bc.sign() > 0) //debito
|
||||||
{
|
{
|
||||||
acc = (bc * _ver->get(isdifferita ? B_LIQ_DIFF : B_LIQ_NORM))/CENTO;
|
acc = ((bc / divide_by_three) * _ver->get(isdifferita ? B_LIQ_DIFF : B_LIQ_NORM))/CENTO;
|
||||||
acc.round(ROUND_LIRA);
|
acc.round(ROUND_LIRA);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -567,127 +569,128 @@ bool TLiquidazione_app::recalc_acconto(real& inf, real& ina)
|
|||||||
}
|
}
|
||||||
_year = thyear;
|
_year = thyear;
|
||||||
}
|
}
|
||||||
else if (_basecalc == incorso)
|
else
|
||||||
{
|
if (_basecalc == incorso)
|
||||||
// that's pazzesc but as it turns out there's no better way
|
{
|
||||||
_comp_acconto = TRUE;
|
// that's pazzesc but as it turns out there's no better way
|
||||||
// force recalc of current month
|
_comp_acconto = TRUE;
|
||||||
_recalc = one;
|
// force recalc of current month
|
||||||
int need_refresh = FALSE;
|
_recalc = one;
|
||||||
for (int mese = 1; mese < _month; mese++)
|
int need_refresh = FALSE;
|
||||||
if (is_month_ok_strict(mese) && (!look_lim(mese) || !_lim->get_bool("B0")))
|
for (int mese = 1; mese < _month; mese++)
|
||||||
{
|
if (is_month_ok_strict(mese) && (!look_lim(mese) || !_lim->get_bool("B0")))
|
||||||
need_refresh = TRUE;
|
{
|
||||||
break;
|
need_refresh = TRUE;
|
||||||
}
|
break;
|
||||||
if (need_refresh && yesno_box("Alcuni mesi precedenti non "
|
}
|
||||||
"risultano ricalcolati. E' consigliabile il ricalcolo. "
|
if (need_refresh && yesno_box("Alcuni mesi precedenti non "
|
||||||
"Si desidera eseguirlo?"))
|
"risultano ricalcolati. E' consigliabile il ricalcolo. "
|
||||||
_recalc = ever;
|
"Si desidera eseguirlo?"))
|
||||||
|
_recalc = ever;
|
||||||
|
|
||||||
for (int m = 1; m <= _month; m++)
|
for (int m = 1; m <= _month; m++)
|
||||||
if (is_month_plain(m) || _recalc == ever)
|
if (is_month_plain(m) || _recalc == ever)
|
||||||
{
|
{
|
||||||
if (_prind->iscancelled()) break;
|
if (_prind->iscancelled()) break;
|
||||||
update_firm(m);
|
update_firm(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
// calcola l'acconto
|
// calcola l'acconto
|
||||||
if (look_lim(12)) //posiziona anche la tabella lam
|
if (look_lim(12)) //posiziona anche la tabella lam
|
||||||
{
|
{
|
||||||
// bc = result_liq(12);
|
// bc = result_liq(12);
|
||||||
// somma i non fatturati/non annotati
|
// somma i non fatturati/non annotati
|
||||||
// bc += inf + ina;
|
// bc += inf + ina;
|
||||||
cre = _lim->get_real("R12");
|
cre = _lim->get_real("R12");
|
||||||
|
|
||||||
//quando calcolo la 12° ci vado a sommare il
|
|
||||||
//versa. dovuto all'acconto
|
|
||||||
//allora devo ricalcolarmi l'effettivo credito
|
|
||||||
cre -= _lim->get_real("R11");
|
|
||||||
deb = _lim->get_real("R13") + inf + ina;
|
|
||||||
|
|
||||||
bc = deb - cre;
|
|
||||||
|
|
||||||
if (bc.sign() > 0) acc = bc;
|
|
||||||
|
|
||||||
// 11/09/1995
|
|
||||||
iva_ven = _lam->get_real("R0"); //iva sulle vendite annotate fino al 20/12
|
|
||||||
iva_acq = _lam->get_real("R1"); //iva sugli acquisti annotati fino al 20/12
|
|
||||||
cre_pre = _lam->get_real("R2"); //credito precedente
|
|
||||||
iva_ret = _lim->get_real("R5"); //rettifica
|
|
||||||
iva_rim = _lim->get_real("R1"); //iva chiesta a rimborso
|
|
||||||
ult_det = _lim->get_real("R6"); //ulteriori detrazioni
|
|
||||||
//iva_pro: //iva relativa alla percentuale di prorata
|
|
||||||
TTable plm ("PLM");
|
|
||||||
plm.zero();
|
|
||||||
plm.put("CODTAB",_year);
|
|
||||||
TRectype rec (plm.curr());
|
|
||||||
plm.read(_isgteq);
|
|
||||||
for (; !plm.eof(); plm.next())
|
|
||||||
{
|
|
||||||
if (plm.curr() != rec) break;
|
|
||||||
iva_pro += plm.get_real("R2");
|
|
||||||
}
|
|
||||||
//acq_intr
|
|
||||||
TTable pom ("POM");
|
|
||||||
pom.zero();
|
|
||||||
pom.put("CODTAB",_year);
|
|
||||||
rec = pom.curr();
|
|
||||||
pom.read(_isgteq);
|
|
||||||
for (; !pom.eof(); pom.next())
|
|
||||||
{
|
|
||||||
if (pom.curr() != rec) break;
|
|
||||||
acq_intr += pom.get_real("R0");
|
|
||||||
}
|
|
||||||
tipo_acc = "A"; //flag per dire che si e' utilizzato il metodo analitico
|
|
||||||
//stop
|
|
||||||
}
|
|
||||||
else error = 1;
|
|
||||||
|
|
||||||
// pulisci il water
|
//quando calcolo la 12° ci vado a sommare il
|
||||||
_comp_acconto = FALSE;
|
//versa. dovuto all'acconto
|
||||||
_isprint = FALSE;
|
//allora devo ricalcolarmi l'effettivo credito
|
||||||
/*
|
cre -= _lim->get_real("R11");
|
||||||
update_firm(12);
|
deb = _lim->get_real("R13") + inf + ina;
|
||||||
*/
|
|
||||||
for (int i = 1; i <= _month; i++)
|
bc = deb - cre;
|
||||||
if (is_month_plain(i))
|
|
||||||
update_firm(i);
|
if (bc.sign() > 0) acc = bc;
|
||||||
|
|
||||||
|
// 11/09/1995
|
||||||
|
iva_ven = _lam->get_real("R0"); //iva sulle vendite annotate fino al 20/12
|
||||||
|
iva_acq = _lam->get_real("R1"); //iva sugli acquisti annotati fino al 20/12
|
||||||
|
cre_pre = _lam->get_real("R2"); //credito precedente
|
||||||
|
iva_ret = _lim->get_real("R5"); //rettifica
|
||||||
|
iva_rim = _lim->get_real("R1"); //iva chiesta a rimborso
|
||||||
|
ult_det = _lim->get_real("R6"); //ulteriori detrazioni
|
||||||
|
//iva_pro: //iva relativa alla percentuale di prorata
|
||||||
|
TTable plm ("PLM");
|
||||||
|
plm.zero();
|
||||||
|
plm.put("CODTAB",_year);
|
||||||
|
TRectype rec (plm.curr());
|
||||||
|
plm.read(_isgteq);
|
||||||
|
for (; !plm.eof(); plm.next())
|
||||||
|
{
|
||||||
|
if (plm.curr() != rec) break;
|
||||||
|
iva_pro += plm.get_real("R2");
|
||||||
|
}
|
||||||
|
//acq_intr
|
||||||
|
TTable pom ("POM");
|
||||||
|
pom.zero();
|
||||||
|
pom.put("CODTAB",_year);
|
||||||
|
rec = pom.curr();
|
||||||
|
pom.read(_isgteq);
|
||||||
|
for (; !pom.eof(); pom.next())
|
||||||
|
{
|
||||||
|
if (pom.curr() != rec) break;
|
||||||
|
acq_intr += pom.get_real("R0");
|
||||||
|
}
|
||||||
|
tipo_acc = "A"; //flag per dire che si e' utilizzato il metodo analitico
|
||||||
|
//stop
|
||||||
|
}
|
||||||
|
else error = 1;
|
||||||
|
|
||||||
|
// pulisci il water
|
||||||
|
_comp_acconto = FALSE;
|
||||||
|
_isprint = FALSE;
|
||||||
|
/*
|
||||||
|
update_firm(12);
|
||||||
|
*/
|
||||||
|
for (int i = 1; i <= _month; i++)
|
||||||
|
if (is_month_plain(i))
|
||||||
|
update_firm(i);
|
||||||
|
|
||||||
//18/10/1995
|
//18/10/1995
|
||||||
_lim->put("B0","");
|
_lim->put("B0","");
|
||||||
_lim->rewrite();
|
_lim->rewrite();
|
||||||
if (look_lim(13))
|
if (look_lim(13))
|
||||||
{
|
{
|
||||||
_lim->put("B0","");
|
_lim->put("B0","");
|
||||||
_lim->rewrite();
|
_lim->rewrite();
|
||||||
}
|
}
|
||||||
//fine
|
//fine
|
||||||
_isprint = TRUE;
|
_isprint = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// sbatti l'acconto (e non solo!) in LIA
|
// sbatti l'acconto (e non solo!) in LIA
|
||||||
if (look_lia())
|
if (look_lia())
|
||||||
{
|
|
||||||
if (isdifferita && _basecalc == incorso)
|
|
||||||
{
|
{
|
||||||
acc *= real(2.0);
|
if (isdifferita && _basecalc == incorso)
|
||||||
acc /= real(3.0);
|
{
|
||||||
|
acc *= real(2.0);
|
||||||
|
acc /= real(3.0);
|
||||||
|
}
|
||||||
|
_lia->put("R4",acc);
|
||||||
|
_lia->put("R7",iva_ven);
|
||||||
|
_lia->put("R8",iva_acq);
|
||||||
|
_lia->put("R9",iva_ret);
|
||||||
|
_lia->put("R10",iva_rim);
|
||||||
|
_lia->put("R11",ult_det);
|
||||||
|
_lia->put("R12",iva_pro);
|
||||||
|
TToken_string rr("",'!');
|
||||||
|
rr.add(cre_pre.string(),0);
|
||||||
|
rr.add(acq_intr.string(),1);
|
||||||
|
_lia->put("S1",rr);
|
||||||
|
_lia->put("S8",tipo_acc);
|
||||||
|
_lia->rewrite();
|
||||||
}
|
}
|
||||||
_lia->put("R4",acc);
|
|
||||||
_lia->put("R7",iva_ven);
|
|
||||||
_lia->put("R8",iva_acq);
|
|
||||||
_lia->put("R9",iva_ret);
|
|
||||||
_lia->put("R10",iva_rim);
|
|
||||||
_lia->put("R11",ult_det);
|
|
||||||
_lia->put("R12",iva_pro);
|
|
||||||
TToken_string rr("",'!');
|
|
||||||
rr.add(cre_pre.string(),0);
|
|
||||||
rr.add(acq_intr.string(),1);
|
|
||||||
_lia->put("S1",rr);
|
|
||||||
_lia->put("S8",tipo_acc);
|
|
||||||
_lia->rewrite();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*** Non bisogna aggiornare la delega
|
/*** Non bisogna aggiornare la delega
|
||||||
Se in un prossimo futuro si decidesse di ripristinare questa
|
Se in un prossimo futuro si decidesse di ripristinare questa
|
||||||
@ -710,26 +713,26 @@ if (look_lia())
|
|||||||
***/
|
***/
|
||||||
|
|
||||||
// per questa volta lasciamo perdere la describe_acconto
|
// per questa volta lasciamo perdere la describe_acconto
|
||||||
if (_isprint)
|
if (_isprint)
|
||||||
{
|
{
|
||||||
// segnalazioni di errore da gesticolare:
|
// segnalazioni di errore da gesticolare:
|
||||||
// error = 0: no error
|
// error = 0: no error
|
||||||
// error = 1: manca tabella risultati liquidazione per l'anno indicato
|
// error = 1: manca tabella risultati liquidazione per l'anno indicato
|
||||||
// error = 2: manca tabella risultati liquidazione per l'anno precedente
|
// error = 2: manca tabella risultati liquidazione per l'anno precedente
|
||||||
// error = 3: manca tabella dichiarazione annuale per l'anno precedente
|
// error = 3: manca tabella dichiarazione annuale per l'anno precedente
|
||||||
_DescrItem* d = new _DescrItem(ACCONTO);
|
_DescrItem* d = new _DescrItem(ACCONTO);
|
||||||
d->_r0 = bc;
|
d->_r0 = bc;
|
||||||
d->_r1 = acc;
|
d->_r1 = acc;
|
||||||
d->_r2 = cre;
|
d->_r2 = cre;
|
||||||
d->_r3 = deb;
|
d->_r3 = deb;
|
||||||
d->_f0 = _basecalc == incorso;
|
d->_f0 = _basecalc == incorso;
|
||||||
d->_f1 = _isbase;
|
d->_f1 = _isbase;
|
||||||
d->_f2 = error;
|
d->_f2 = error;
|
||||||
d->_f3 = isdifferita;
|
d->_f3 = isdifferita;
|
||||||
d->_s0 = _nditte->curr().get("CODDITTA");
|
d->_s0 = _nditte->curr().get("CODDITTA");
|
||||||
d->_s1 = _nditte->curr().get("RAGSOC");
|
d->_s1 = _nditte->curr().get("RAGSOC");
|
||||||
_descr_arr.add(d);
|
_descr_arr.add(d);
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user