Correzioni calcolo acconti

git-svn-id: svn://10.65.10.50/trunk@885 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
villa 1995-01-19 12:43:16 +00:00
parent 47733f66fa
commit efb2297e28
6 changed files with 66 additions and 92 deletions

View File

@ -253,7 +253,8 @@ bool TLiquidazione_app::user_destroy()
bool TLiquidazione_app::set_print(int n) bool TLiquidazione_app::set_print(int n)
{ {
_descr_arr.destroy(); _descr_arr.destroy();
_errors.destroy();
switch(n) switch(n)
{ {
case 1: // liquidazione case 1: // liquidazione

View File

@ -176,6 +176,7 @@ class TLiquidazione_app : public TPrint_application
bool _isservizio; // servizi, professionisti, artisti bool _isservizio; // servizi, professionisti, artisti
bool _isrimborso; // vuole il rimborso infraannuale bool _isrimborso; // vuole il rimborso infraannuale
bool _isricacq; // ricalcolo imposte acq. riv (par. ditta) bool _isricacq; // ricalcolo imposte acq. riv (par. ditta)
bool _isdifferita; // liquidazione differita
bool _calcall; // tutte le ditte nessuna esclusa bool _calcall; // tutte le ditte nessuna esclusa
bool _isbase; // stampa base di calcolo acconto bool _isbase; // stampa base di calcolo acconto
tbc _basecalc; // tipo base di calcolo acconto tbc _basecalc; // tipo base di calcolo acconto

View File

@ -106,19 +106,13 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
look_lim(month, TRUE); look_lim(month, TRUE);
// gia' ricalcolata definitivamente? TConfig cnf(CONFIG_DITTA, "cg");
bool ok = _lim->get_bool("B1"); _isdifferita = cnf.get_bool("GeLiDi");
if (ok && !_comp_acconto) return TRUE; TConfig cnf1(CONFIG_STUDIO, "cg");
_isricacq = cnf1.get_bool("RicAcq");
// azzera ulteriori detrazioni
_lim->put("R6","");
_lim->rewrite();
TConfig cnf(CONFIG_STUDIO, "cg");
_isricacq = cnf.get_bool("RicAcq");
// ricalcolo normale // ricalcolo normale
ok = _lim->get_bool("B0"); bool ok = _lim->get_bool("B0");
if (ok && !recalc) return TRUE; if (ok && !recalc) return TRUE;
bool calc = (_recalc == ever || (_recalc == one && month == _month)); bool calc = (_recalc == ever || (_recalc == one && month == _month));
if (!calc && _recalc != never) calc = !ok; if (!calc && _recalc != never) calc = !ok;
@ -171,6 +165,7 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
} }
else else
_isservizio = _nditte->curr(LF_ATTIV).get("TIPOATT") == "S"; _isservizio = _nditte->curr(LF_ATTIV).get("TIPOATT") == "S";
_isviaggio = _nditte->curr(LF_ATTIV).get_bool("REG74TER"); _isviaggio = _nditte->curr(LF_ATTIV).get_bool("REG74TER");
_isagricolo = _nditte->curr(LF_ATTIV).get_bool("REGAGR"); _isagricolo = _nditte->curr(LF_ATTIV).get_bool("REGAGR");
_isbenzinaro = _nditte->curr(LF_ATTIV).get_bool("ART74/4"); _isbenzinaro = _nditte->curr(LF_ATTIV).get_bool("ART74/4");
@ -384,8 +379,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
/* /*
* check date se si calcola l'acconto * check date se si calcola l'acconto
*/ */
if (_month == 12 && _comp_acconto) if (_comp_acconto)
if (date.month() != 12 && date.day() > 20) if(date.month() != 12 && date.day() > 20)
continue; continue;
bool corrisp = _reg_r->get_bool("B0"); bool corrisp = _reg_r->get_bool("B0");

View File

@ -82,7 +82,7 @@ void TLiquidazione_app::describe_att(int month, const char* codatt, bool isresul
describe_agricolo(month, codatt); describe_agricolo(month, codatt);
if (atts.items() == 1 && _isviaggio) if (atts.items() == 1 && _isviaggio)
describe_viaggio(month, codatt); describe_viaggio(month, codatt);
if (isresult) if (isresult || _isannual)
describe_pims(month,codatt); describe_pims(month,codatt);
if (atts.items() == 1) if (atts.items() == 1)
describe_consistence(codatt); describe_consistence(codatt);
@ -352,8 +352,8 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
_pim->get_real("R2").is_zero()) _pim->get_real("R2").is_zero())
continue; continue;
if (strcmp((const char*)*_pim_codatt, att) == 0 && if (strcmp((const char*)*_pim_codatt, att) == 0 &&
is_month_ok(atoi(*_pim_mese),month) && (is_month_ok(atoi(*_pim_mese),month) || _isannual) &&
_year == (const char*)*_pim_anno) _year == (const char*)*_pim_anno)
{ {
// vedi se c'e' gia' un item corrispondente // vedi se c'e' gia' un item corrispondente

View File

@ -5,6 +5,7 @@
#include <progind.h> #include <progind.h>
#include <prefix.h> #include <prefix.h>
#include <sheet.h> #include <sheet.h>
#include <utility.h>
#include "cg4300.h" #include "cg4300.h"
#include "cg4300b.h" #include "cg4300b.h"
@ -113,30 +114,13 @@ bool TLiquidazione_app::extract_deleghe()
bool TLiquidazione_app::extract_delega(int month) bool TLiquidazione_app::extract_delega(int month)
{ {
if (_isriepilogo && !_isannual)
return FALSE;
if (look_lim(month)) if (look_lim(month))
{ {
real topay = _lim->get_real("R0"); real topay = result_liq(month);
real intr = _lim->get_real("R7"); real intr = _lim->get_real("R7");
if (topay.sign() <= 0) return TRUE; if (topay.sign() <= 0)
return TRUE;
if (_isannual)
{
if (look_del(12,7))
{
topay -= _del->get_real("R0");
intr -= _del->get_real("R1");
}
}
else
{
// importo rettifiche solo se non e' annuale
topay += _lim->get_real("R5");
intr += _del->get_real("R1");
}
if (topay.sign() > 0) if (topay.sign() > 0)
{ {
look_del(month, _isannual ? 2 : 1, TRUE); look_del(month, _isannual ? 2 : 1, TRUE);
@ -254,69 +238,66 @@ bool TLiquidazione_app::recalc_acconto()
// that's pazzesc but it turns out there's no better way // that's pazzesc but it turns out there's no better way
_comp_acconto = TRUE; _comp_acconto = TRUE;
// force recalc of current month // force recalc of current month
_recalc = one; _recalc = one;
// insozza il water
update_firm(12); update_firm(12);
// TBI calcola l'acconto!!! // calcola l'acconto
if (look_lim(12)) if (look_lim(12))
{ {
basecalcolo = _lim->get_real("R0"); basecalcolo = result_liq(12);
if (basecalcolo.sign() > 0) if (basecalcolo.sign() > 0)
acconto = basecalcolo * ACCONTO_DICEMBRE; acconto = basecalcolo * ACCONTO_DICEMBRE;
} }
else else acconto = real(-1.0);
{ // pulisci il water
acconto = real(-1);
}
// riaggiustati le palle
_comp_acconto = FALSE; _comp_acconto = FALSE;
update_firm(12); update_firm(12);
} }
else if (_basecalc == precedente) else if (_basecalc == precedente)
{
int yr = atoi(_year) - 1;
_lim->zero();
*_lim_anno = yr;
*_lim_mese = 12;
if (_lim->read() == NOERR)
{ {
basecalcolo = _lim->get_real("R0"); int yr = atoi(_year);
if (basecalcolo.sign() > 0) _year = format("%d",yr-1);
if (look_lim(12))
{
basecalcolo = result_liq(12);
if (basecalcolo.sign() > 0)
acconto = basecalcolo * ACCONTO_DICEMBRE; acconto = basecalcolo * ACCONTO_DICEMBRE;
}
else error = TRUE;
_year = format("%d", yr);
} }
else error = TRUE;
} // sbatti l'acconto in LIA
if (look_lia())
// sbatti l'acconto in LIA {
if (look_lia()) _lia->put("R4",acconto);
{ isdifferita = _lia->get_bool("B1");
_lia->put("R4",acconto); _lia->rewrite();
isdifferita = _lia->get_bool("B1"); }
_lia->rewrite();
} if (acconto.sign() > 0)
{
if (acconto.sign() > 0) // crea o aggiorna delega
{ look_del(12,7,TRUE);
// crea o aggiorna delega _del->put("R0", acconto);
look_del(12,7,TRUE); _del->rewrite();
_del->put("R0", acconto); }
_del->rewrite();
} // per questa volta lasciamo perdere la describe_acconto
if (_isprint)
// per questa volta lasciamo perdere la describe_acconto {
if (_isprint) _DescrItem* d = new _DescrItem(ACCONTO);
{ d->_r0 = basecalcolo;
_DescrItem* d = new _DescrItem(ACCONTO); d->_r1 = acconto;
d->_r0 = basecalcolo; d->_f0 = _basecalc == incorso;
d->_r1 = acconto; d->_f1 = _isbase;
d->_f0 = _basecalc == incorso; d->_f2 = error;
d->_f1 = _isbase; d->_f3 = isdifferita;
d->_f2 = error; d->_s0 = _nditte->curr().get("CODDITTA");
d->_f3 = isdifferita; d->_s1 = _nditte->curr().get("RAGSOC");
d->_s0 = _nditte->curr().get("CODDITTA"); _descr_arr.add(d);
d->_s1 = _nditte->curr().get("RAGSOC"); }
_descr_arr.add(d); return TRUE;
}
return TRUE;
} }

View File

@ -1,10 +1,6 @@
# File configurazione contabilita' # File configurazione contabilita'
# Versione commentata da NON usare direttamente # Versione commentata da NON usare direttamente
# Guy 16-9-94 # Guy 16-9-94
# Paragrafo Main
[Main]
# Text editor per viswin etc.
Editor = notepad
# Paragrafo Contabilita' # Paragrafo Contabilita'
[cg] [cg]
# Maschera edit # Maschera edit