Scaccolata liquidazione secondo indicazioni prassiche
git-svn-id: svn://10.65.10.50/trunk@1390 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8928e14de5
commit
dcfc69524d
@ -118,6 +118,7 @@ public: // vedi sopra per le fisime morali
|
|||||||
int _month; // mese
|
int _month; // mese
|
||||||
real _aliquota; // aliquota iva
|
real _aliquota; // aliquota iva
|
||||||
TString _codiva; // codice iva
|
TString _codiva; // codice iva
|
||||||
|
TString _codatt; // codice attivita'
|
||||||
int _tipodet; // tipo detraibilita'
|
int _tipodet; // tipo detraibilita'
|
||||||
_CorrItem() : _codreg(5) {}
|
_CorrItem() : _codreg(5) {}
|
||||||
virtual ~_CorrItem() {}
|
virtual ~_CorrItem() {}
|
||||||
@ -403,7 +404,7 @@ public:
|
|||||||
void add_vendite (int month, const char* codreg, int tipodet, real& r);
|
void add_vendite (int month, const char* codreg, int tipodet, real& r);
|
||||||
void add_ventilation (real iva, real sum, const char* codiva, const char* other);
|
void add_ventilation (real iva, real sum, const char* codiva, const char* other);
|
||||||
void add_corrisp (int month, const char* codreg, real& r, real& p,
|
void add_corrisp (int month, const char* codreg, real& r, real& p,
|
||||||
int tipodet, const char * codiva);
|
int tipodet, const char* codiva, const char* codatt);
|
||||||
|
|
||||||
// printappings
|
// printappings
|
||||||
virtual void set_page(int file, int counter);
|
virtual void set_page(int file, int counter);
|
||||||
@ -464,6 +465,7 @@ public:
|
|||||||
// se il movimento deve essere considerato in calcolo e riepilogo
|
// se il movimento deve essere considerato in calcolo e riepilogo
|
||||||
// per la liquidazione di month
|
// per la liquidazione di month
|
||||||
bool is_date_ok (TDate& d, int month);
|
bool is_date_ok (TDate& d, int month);
|
||||||
|
bool is_in_liq_period(TDate& d);
|
||||||
bool is_first_month (int m);
|
bool is_first_month (int m);
|
||||||
int liq_month(int x);
|
int liq_month(int x);
|
||||||
|
|
||||||
|
@ -151,7 +151,12 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
TConfig cnf(CONFIG_DITTA, "cg");
|
TConfig cnf(CONFIG_DITTA, "cg");
|
||||||
_isdifferita = cnf.get_bool("GeLiDi");
|
_isdifferita = cnf.get_bool("GeLiDi") && _month != 13;
|
||||||
|
// controlla che il periodo corrente non sia l'inizio dell'attivita'
|
||||||
|
// nel caso, differita va a FALSE
|
||||||
|
TDate inatt(_nditte->lfile().get("DINIZIOATT"));
|
||||||
|
if (is_in_liq_period(inatt)) _isdifferita = FALSE;
|
||||||
|
|
||||||
TConfig cnf1(CONFIG_STUDIO, "cg");
|
TConfig cnf1(CONFIG_STUDIO, "cg");
|
||||||
_isricacq = cnf1.get_bool("RicAcq");
|
_isricacq = cnf1.get_bool("RicAcq");
|
||||||
|
|
||||||
@ -929,7 +934,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
|||||||
real perc = _iva->get_real("R0")/CENTO;
|
real perc = _iva->get_real("R0")/CENTO;
|
||||||
lor += imponibile + imposta;
|
lor += imponibile + imposta;
|
||||||
real tot = imponibile+imposta;
|
real tot = imponibile+imposta;
|
||||||
if (liq) add_corrisp(month, reg, tot, perc, tipodet, codiva);
|
if (liq) add_corrisp(month, reg, tot, perc, tipodet, codiva, codatt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (tipodoc == "FS")
|
else if (tipodoc == "FS")
|
||||||
@ -1153,6 +1158,12 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
|||||||
TToken_string atts(codatts);
|
TToken_string atts(codatts);
|
||||||
const char* tmpatt;
|
const char* tmpatt;
|
||||||
|
|
||||||
|
// liq. differita: considera mese precedente (solo per i risultati)
|
||||||
|
int deltam = month;
|
||||||
|
if (_isdifferita && !is_first_month(month) && month != 13)
|
||||||
|
month -= (_freqviva == "T" ? 3 : 1);
|
||||||
|
deltam -= month;
|
||||||
|
|
||||||
real risultato = 0.0;
|
real risultato = 0.0;
|
||||||
real detrazioni = 0.0;
|
real detrazioni = 0.0;
|
||||||
real versamenti = 0.0;
|
real versamenti = 0.0;
|
||||||
@ -1443,7 +1454,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
|||||||
if (tot_cong.sign() > 0) res_debt += tot_cong;
|
if (tot_cong.sign() > 0) res_debt += tot_cong;
|
||||||
if (tot_cong.sign() < 0) res_cred += abs(tot_cong);
|
if (tot_cong.sign() < 0) res_cred += abs(tot_cong);
|
||||||
|
|
||||||
look_lim(month,TRUE);
|
look_lim(month+deltam,TRUE);
|
||||||
// azzeriamo tutto (tranne r1, r5, s7)
|
// azzeriamo tutto (tranne r1, r5, s7)
|
||||||
TString codtab = _lim->get("CODTAB");
|
TString codtab = _lim->get("CODTAB");
|
||||||
|
|
||||||
@ -1572,6 +1583,7 @@ void TLiquidazione_app::recalc_annual(const char* att)
|
|||||||
look_iva(codiva); look_reg(reg);
|
look_iva(codiva); look_reg(reg);
|
||||||
|
|
||||||
if ( // ESCLUSI:
|
if ( // ESCLUSI:
|
||||||
|
strcmp(att,*_pim_codatt) != 0 ||
|
||||||
(int)_reg->get_long("I0") != vendita || // non vendite
|
(int)_reg->get_long("I0") != vendita || // non vendite
|
||||||
tipocr == 4 || // cessioni beni ammortizzabili
|
tipocr == 4 || // cessioni beni ammortizzabili
|
||||||
_iva->get("S1") == "NS" || // non soggetti
|
_iva->get("S1") == "NS" || // non soggetti
|
||||||
|
@ -67,6 +67,18 @@ int TLiquidazione_app::liq_month(int x)
|
|||||||
else return x + (2 - ((x-1) % 3));
|
else return x + (2 - ((x-1) % 3));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TLiquidazione_app::is_in_liq_period(TDate& d)
|
||||||
|
{
|
||||||
|
bool ok = FALSE;
|
||||||
|
if (_freqviva == "M") ok = d.month() == _month;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int m = liq_month(_month);
|
||||||
|
ok = d.month() > m - 3 && d.month() <= m;
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
bool TLiquidazione_app::is_first_month(int m)
|
bool TLiquidazione_app::is_first_month(int m)
|
||||||
{
|
{
|
||||||
return _freqviva == "M" ?
|
return _freqviva == "M" ?
|
||||||
@ -136,7 +148,8 @@ void TLiquidazione_app::add_vendite(int month, const char* codreg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TLiquidazione_app::add_corrisp(int month, const char* codreg, real& r,
|
void TLiquidazione_app::add_corrisp(int month, const char* codreg, real& r,
|
||||||
real& p, int tipodet, const char * codiva)
|
real& p, int tipodet, const char* codiva,
|
||||||
|
const char* codatt)
|
||||||
{
|
{
|
||||||
_CorrItem* ci = NULL;
|
_CorrItem* ci = NULL;
|
||||||
const int nitems = _corr_arr.items();
|
const int nitems = _corr_arr.items();
|
||||||
@ -145,7 +158,8 @@ void TLiquidazione_app::add_corrisp(int month, const char* codreg, real& r,
|
|||||||
{
|
{
|
||||||
ci = (_CorrItem*)&_corr_arr[i];
|
ci = (_CorrItem*)&_corr_arr[i];
|
||||||
if (ci->_codreg == codreg && ci->_month == month &&
|
if (ci->_codreg == codreg && ci->_month == month &&
|
||||||
ci->_codiva == codiva && ci->_tipodet == tipodet)
|
ci->_codiva == codiva && ci->_tipodet == tipodet &&
|
||||||
|
ci->_codatt == codatt)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (i == nitems)
|
if (i == nitems)
|
||||||
@ -154,6 +168,7 @@ void TLiquidazione_app::add_corrisp(int month, const char* codreg, real& r,
|
|||||||
ci->_codreg = codreg;
|
ci->_codreg = codreg;
|
||||||
ci->_month = month;
|
ci->_month = month;
|
||||||
ci->_codiva = codiva;
|
ci->_codiva = codiva;
|
||||||
|
ci->_codatt = codatt;
|
||||||
ci->_tipodet = tipodet;
|
ci->_tipodet = tipodet;
|
||||||
ci->_aliquota = p;
|
ci->_aliquota = p;
|
||||||
}
|
}
|
||||||
|
@ -83,12 +83,13 @@ void TLiquidazione_app::recalc_corrispettivi(int month, const char* codatt)
|
|||||||
for (int i = 0; i < _corr_arr.items(); i++)
|
for (int i = 0; i < _corr_arr.items(); i++)
|
||||||
{
|
{
|
||||||
_CorrItem* ci = (_CorrItem*)&_corr_arr[i];
|
_CorrItem* ci = (_CorrItem*)&_corr_arr[i];
|
||||||
if (ci->_month != month)
|
if (ci->_month != month || ci->_codatt != codatt)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
real imponibile = ci->_totale/(1.00 + ci->_aliquota);
|
real imposta = (abs(ci->_totale) * ci->_aliquota)/(ci->_aliquota + 1.00);
|
||||||
imponibile.ceil(ROUND_LIRA);
|
imposta.ceil();
|
||||||
real imposta = ci->_totale - imponibile;
|
if (ci->_totale.sign() < 0) imposta = -imposta;
|
||||||
|
real imponibile = ci->_totale - imposta;
|
||||||
|
|
||||||
// aggiusto l'IVA vendite nei plm
|
// aggiusto l'IVA vendite nei plm
|
||||||
look_plm(month, codatt);
|
look_plm(month, codatt);
|
||||||
|
@ -492,7 +492,7 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
|
|||||||
|
|
||||||
if (!corrisp || (!cfv.is_zero() || !cfi.is_zero()))
|
if (!corrisp || (!cfv.is_zero() || !cfi.is_zero()))
|
||||||
{
|
{
|
||||||
real adf, adi;
|
real adf, adi; // autofatture non residenti art. 17
|
||||||
|
|
||||||
real vendi = corrisp ? cfi : _pim->get_real("R0");
|
real vendi = corrisp ? cfi : _pim->get_real("R0");
|
||||||
real vendv = corrisp ? cfv : _pim->get_real("R1");
|
real vendv = corrisp ? cfv : _pim->get_real("R1");
|
||||||
@ -507,8 +507,8 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
|
|||||||
|
|
||||||
d->_r0 += vendi - adf;
|
d->_r0 += vendi - adf;
|
||||||
d->_r1 += vendv - adi;
|
d->_r1 += vendv - adi;
|
||||||
t0 += vendi - adf;
|
t0 += vendi /* - adf */;
|
||||||
t1 += vendv - adi;
|
t1 += vendv /* - adi */;
|
||||||
|
|
||||||
autodafe += adf;
|
autodafe += adf;
|
||||||
autodafe_iva += adi;
|
autodafe_iva += adi;
|
||||||
@ -540,6 +540,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
|
||||||
look_lim(month);
|
look_lim(month);
|
||||||
real iva74t = _lim->get_real("R3");
|
real iva74t = _lim->get_real("R3");
|
||||||
if (iva74t.sign() > 0)
|
if (iva74t.sign() > 0)
|
||||||
@ -693,6 +694,7 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts,
|
|||||||
_DescrItem* di)
|
_DescrItem* di)
|
||||||
{
|
{
|
||||||
if (!_isprint || !_canprint) return;
|
if (!_isprint || !_canprint) return;
|
||||||
|
|
||||||
if (!look_lim(month)) return;
|
if (!look_lim(month)) return;
|
||||||
|
|
||||||
_DescrItem* d = new _DescrItem(THE_END);
|
_DescrItem* d = new _DescrItem(THE_END);
|
||||||
@ -750,12 +752,15 @@ _DescrItem* TLiquidazione_app::describe_deleghe(int month)
|
|||||||
|
|
||||||
_DescrItem* d = new _DescrItem(DELEGA);
|
_DescrItem* d = new _DescrItem(DELEGA);
|
||||||
|
|
||||||
d->_s0 = _del->get("S2"); // localita'
|
if (_del->get_bool("B0"))
|
||||||
d->_s1 = _del->get("S1"); // banca
|
{
|
||||||
d->_s2 = _del->get("S7"); // ABI
|
d->_s0 = _del->get("S2"); // localita'
|
||||||
d->_s3 = _del->get("S8"); // CAB
|
d->_s1 = _del->get("S1"); // banca
|
||||||
d->_r0 = _del->get_real("R0") + _del->get_real("R1");
|
d->_s2 = _del->get("S7"); // ABI
|
||||||
d->_d0 = _del->get_date("D0");
|
d->_s3 = _del->get("S8"); // CAB
|
||||||
|
d->_r0 = _del->get_real("R0") + _del->get_real("R1");
|
||||||
|
d->_d0 = _del->get_date("D0");
|
||||||
|
} // altrimenti lascia tutto in bianco e ci scriveranno i dati a mano
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
@ -1409,7 +1414,7 @@ bool TLiquidazione_app::set_annual(_DescrItem& d)
|
|||||||
set_row(row++,"Operazioni esenti riga B2@30g%r", &(d._r4));
|
set_row(row++,"Operazioni esenti riga B2@30g%r", &(d._r4));
|
||||||
set_row(row++,"Operazioni esenti riga B3@30g%r", &(d._r5));
|
set_row(row++,"Operazioni esenti riga B3@30g%r", &(d._r5));
|
||||||
set_row(row++,"Volume d'affari riga B4@30g%r", &(d._r0));
|
set_row(row++,"Volume d'affari riga B4@30g%r", &(d._r0));
|
||||||
set_row(row++,"Indetraibilita' @40g%r%%", &(d._r2));
|
set_row(row++,"Indetraibilita'@30g%r%%", &(d._r2));
|
||||||
if (!(d._r3.is_zero()))
|
if (!(d._r3.is_zero()))
|
||||||
{
|
{
|
||||||
const char* sss = d._r3.sign() < 0 ? "credito" : "debito";
|
const char* sss = d._r3.sign() < 0 ? "credito" : "debito";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user