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
|
||||
real _aliquota; // aliquota iva
|
||||
TString _codiva; // codice iva
|
||||
TString _codatt; // codice attivita'
|
||||
int _tipodet; // tipo detraibilita'
|
||||
_CorrItem() : _codreg(5) {}
|
||||
virtual ~_CorrItem() {}
|
||||
@ -403,7 +404,7 @@ public:
|
||||
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_corrisp (int month, const char* codreg, real& r, real& p,
|
||||
int tipodet, const char * codiva);
|
||||
int tipodet, const char* codiva, const char* codatt);
|
||||
|
||||
// printappings
|
||||
virtual void set_page(int file, int counter);
|
||||
@ -464,6 +465,7 @@ public:
|
||||
// se il movimento deve essere considerato in calcolo e riepilogo
|
||||
// per la liquidazione di month
|
||||
bool is_date_ok (TDate& d, int month);
|
||||
bool is_in_liq_period(TDate& d);
|
||||
bool is_first_month (int m);
|
||||
int liq_month(int x);
|
||||
|
||||
|
@ -151,7 +151,12 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
|
||||
return TRUE;
|
||||
|
||||
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");
|
||||
_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;
|
||||
lor += 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")
|
||||
@ -1153,6 +1158,12 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
||||
TToken_string atts(codatts);
|
||||
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 detrazioni = 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_cred += abs(tot_cong);
|
||||
|
||||
look_lim(month,TRUE);
|
||||
look_lim(month+deltam,TRUE);
|
||||
// azzeriamo tutto (tranne r1, r5, s7)
|
||||
TString codtab = _lim->get("CODTAB");
|
||||
|
||||
@ -1568,10 +1579,11 @@ void TLiquidazione_app::recalc_annual(const char* att)
|
||||
|
||||
int tipocr = atoi(*_pim_tipocr);
|
||||
TString16 codiva = *_pim_codiva;
|
||||
TString16 reg = *_pim_codreg;
|
||||
TString16 reg = *_pim_codreg;
|
||||
look_iva(codiva); look_reg(reg);
|
||||
|
||||
if ( // ESCLUSI:
|
||||
if ( // ESCLUSI:
|
||||
strcmp(att,*_pim_codatt) != 0 ||
|
||||
(int)_reg->get_long("I0") != vendita || // non vendite
|
||||
tipocr == 4 || // cessioni beni ammortizzabili
|
||||
_iva->get("S1") == "NS" || // non soggetti
|
||||
|
@ -67,6 +67,18 @@ int TLiquidazione_app::liq_month(int x)
|
||||
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)
|
||||
{
|
||||
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,
|
||||
real& p, int tipodet, const char * codiva)
|
||||
real& p, int tipodet, const char* codiva,
|
||||
const char* codatt)
|
||||
{
|
||||
_CorrItem* ci = NULL;
|
||||
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];
|
||||
if (ci->_codreg == codreg && ci->_month == month &&
|
||||
ci->_codiva == codiva && ci->_tipodet == tipodet)
|
||||
ci->_codiva == codiva && ci->_tipodet == tipodet &&
|
||||
ci->_codatt == codatt)
|
||||
break;
|
||||
}
|
||||
if (i == nitems)
|
||||
@ -154,6 +168,7 @@ void TLiquidazione_app::add_corrisp(int month, const char* codreg, real& r,
|
||||
ci->_codreg = codreg;
|
||||
ci->_month = month;
|
||||
ci->_codiva = codiva;
|
||||
ci->_codatt = codatt;
|
||||
ci->_tipodet = tipodet;
|
||||
ci->_aliquota = p;
|
||||
}
|
||||
|
@ -83,13 +83,14 @@ void TLiquidazione_app::recalc_corrispettivi(int month, const char* codatt)
|
||||
for (int i = 0; i < _corr_arr.items(); i++)
|
||||
{
|
||||
_CorrItem* ci = (_CorrItem*)&_corr_arr[i];
|
||||
if (ci->_month != month)
|
||||
continue;
|
||||
if (ci->_month != month || ci->_codatt != codatt)
|
||||
continue;
|
||||
|
||||
real imposta = (abs(ci->_totale) * ci->_aliquota)/(ci->_aliquota + 1.00);
|
||||
imposta.ceil();
|
||||
if (ci->_totale.sign() < 0) imposta = -imposta;
|
||||
real imponibile = ci->_totale - imposta;
|
||||
|
||||
real imponibile = ci->_totale/(1.00 + ci->_aliquota);
|
||||
imponibile.ceil(ROUND_LIRA);
|
||||
real imposta = ci->_totale - imponibile;
|
||||
|
||||
// aggiusto l'IVA vendite nei plm
|
||||
look_plm(month, codatt);
|
||||
real ive = _plm->get_real("R0");
|
||||
|
@ -492,7 +492,7 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
|
||||
|
||||
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 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->_r1 += vendv - adi;
|
||||
t0 += vendi - adf;
|
||||
t1 += vendv - adi;
|
||||
t0 += vendi /* - adf */;
|
||||
t1 += vendv /* - adi */;
|
||||
|
||||
autodafe += adf;
|
||||
autodafe_iva += adi;
|
||||
@ -539,7 +539,8 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
|
||||
_descr_arr.add(ads);
|
||||
}
|
||||
|
||||
// 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);
|
||||
real iva74t = _lim->get_real("R3");
|
||||
if (iva74t.sign() > 0)
|
||||
@ -693,6 +694,7 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts,
|
||||
_DescrItem* di)
|
||||
{
|
||||
if (!_isprint || !_canprint) return;
|
||||
|
||||
if (!look_lim(month)) return;
|
||||
|
||||
_DescrItem* d = new _DescrItem(THE_END);
|
||||
@ -749,13 +751,16 @@ _DescrItem* TLiquidazione_app::describe_deleghe(int month)
|
||||
if (!look_del(month,1)) return NULL;
|
||||
|
||||
_DescrItem* d = new _DescrItem(DELEGA);
|
||||
|
||||
d->_s0 = _del->get("S2"); // localita'
|
||||
d->_s1 = _del->get("S1"); // banca
|
||||
d->_s2 = _del->get("S7"); // ABI
|
||||
d->_s3 = _del->get("S8"); // CAB
|
||||
d->_r0 = _del->get_real("R0") + _del->get_real("R1");
|
||||
d->_d0 = _del->get_date("D0");
|
||||
|
||||
if (_del->get_bool("B0"))
|
||||
{
|
||||
d->_s0 = _del->get("S2"); // localita'
|
||||
d->_s1 = _del->get("S1"); // banca
|
||||
d->_s2 = _del->get("S7"); // ABI
|
||||
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;
|
||||
}
|
||||
@ -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 B3@30g%r", &(d._r5));
|
||||
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()))
|
||||
{
|
||||
const char* sss = d._r3.sign() < 0 ? "credito" : "debito";
|
||||
|
Loading…
x
Reference in New Issue
Block a user