Correzioni per 13ma liquidazione IVA per cassa
git-svn-id: svn://10.65.10.50/branches/R_10_00@22953 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b21e89d1e9
commit
ea3143334d
@ -209,7 +209,7 @@ HIDDEN bool no_dup_iva(TMask_field& f, KEY key)
|
||||
HIDDEN bool almeno_cf_o_pi(TMask_field& f)
|
||||
{
|
||||
bool ok = true;
|
||||
if (f.empty())
|
||||
if (f.empty() && !app().is_transaction()) // Evita rischieste inutili durante le transazioni
|
||||
{
|
||||
const TMask& m = f.mask();
|
||||
const TString& stato = m.get(F_STATOPAIV);
|
||||
|
@ -590,6 +590,7 @@ public:
|
||||
void set_plm_diff(const _DescrItem& d);
|
||||
void set_plm(_DescrItem& d);
|
||||
bool set_annual(_DescrItem& d);
|
||||
void set_iva_succ(int& rw);
|
||||
void set_grand(_DescrItem& d);
|
||||
// void set_grand_1999(_DescrItem& d, int &rw);
|
||||
void set_grand_2000(_DescrItem& d, int &rw);
|
||||
|
@ -605,27 +605,23 @@ static bool ivadiff_chiusa_new(const TRectype& mov, const TDate& fine)
|
||||
int err = id.read(_isgteq);
|
||||
if (err == NOERR && rid.get_long(MOV_NUMREG) == numreg)
|
||||
{
|
||||
chiusa = id.get_bool("CHIUSA");
|
||||
if (chiusa)
|
||||
bool some_pag = false; // Ci sono pagamenti?
|
||||
TImporto tot;
|
||||
for (; err == NOERR && rid.get_long(MOV_NUMREG) == numreg; err = id.next())
|
||||
{
|
||||
bool some_pag = false; // Ci sono pagamenti?
|
||||
TImporto tot;
|
||||
for (; err == NOERR && rid.get_long(MOV_NUMREG) == numreg; err = id.next())
|
||||
const TDate data = rid.get("DATAREGP");
|
||||
if (data > fine)
|
||||
continue;
|
||||
const real imp = rid.get(RMI_IMPOSTA);
|
||||
if (!imp.is_zero())
|
||||
{
|
||||
const TDate data = rid.get("DATAREGP");
|
||||
if (data > fine)
|
||||
continue;
|
||||
const real imp = rid.get(RMI_IMPOSTA);
|
||||
if (!imp.is_zero())
|
||||
{
|
||||
const char sez = rid.get_char("SEZIONE");
|
||||
tot += TImporto(sez, imp);
|
||||
if (rid.get_int(MOV_TIPOMOV) > 1)
|
||||
some_pag = true;
|
||||
}
|
||||
const char sez = rid.get_char("SEZIONE");
|
||||
tot += TImporto(sez, imp);
|
||||
if (rid.get_int(MOV_TIPOMOV) > 1)
|
||||
some_pag = true;
|
||||
}
|
||||
chiusa = some_pag && tot.valore() < 0.01;
|
||||
}
|
||||
chiusa = some_pag && tot.valore() < 0.01;
|
||||
}
|
||||
return chiusa;
|
||||
}
|
||||
@ -1465,8 +1461,9 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
|
||||
error_box("Errore %d in aggiornamento file IVADIFF", err);
|
||||
LOG_IVA_DIFF(id.curr());
|
||||
|
||||
// 18-06-2014 Aggiorna flag di chiusura IVADIFF solo nei mesi normali, ma lascialo stare se _isannual
|
||||
const long numreg = _rmoviva->get_long(RMI_NUMREG);
|
||||
if (numreg > 0) // Chiude o riapre la partita
|
||||
if (numreg > 0 && !_isannual) // Chiude o riapre la partita
|
||||
{
|
||||
TISAM_recordset recset("USE IVADIFF\nFROM NUMREG=#NR\nTO NUMREG=#NR");
|
||||
recset.set_var("#NR", numreg);
|
||||
@ -3294,10 +3291,12 @@ void TLiquidazione_app::iva11_set_arr_phase_2(const TString& codatt)
|
||||
// ATTENZIONE: solo per i regimi 74ter (ag. viaggio)
|
||||
for (_plm->first();!_plm->eof();_plm->next())
|
||||
{
|
||||
if (_year != *_plm_anno || atoi(*_plm_mese) != 13) continue;
|
||||
if (_year != *_plm_anno || atoi(*_plm_mese) != 13)
|
||||
continue;
|
||||
cur_att = *_plm_codatt;
|
||||
cur_att.rtrim(1);
|
||||
if (codatt != cur_att) continue;
|
||||
if (codatt != cur_att)
|
||||
continue;
|
||||
if (_isviaggio)
|
||||
{
|
||||
array.add(_plm->get_real("R5"),TAB11_T1,LF_TAB1100B);
|
||||
@ -3478,8 +3477,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
||||
|
||||
for (int m = 1; m <= 13; m++)
|
||||
{
|
||||
// ciclo su tutti i mesi del caso (1 o 3;
|
||||
// tutti se annuale)
|
||||
// ciclo su tutti i mesi del caso (1 o 3; tutti se annuale)
|
||||
if (!is_month_ok(m, month))
|
||||
continue;
|
||||
|
||||
|
@ -638,11 +638,14 @@ void TLiquidazione_app::zero_diff(int month, const char* codatt)
|
||||
|
||||
TFast_isamfile fid(LF_IVADIFF);
|
||||
TString query;
|
||||
query << "USE IVADIFF KEY 2";
|
||||
query << "USE IVADIFF KEY 2"; // Key 2 = ANNOLIQ+MESELIQ+...
|
||||
query << "\nFROM ANNOLIQ=" << _year;
|
||||
// Se calcolo gennaio (o marzo trimestrale) azzero tutto l'anno, altrimenti solo il mese selezionato
|
||||
if (month > (_freqviva == "T" ? 3 : 1))
|
||||
query << " MESELIQ=" << month;
|
||||
|
||||
query << "\nTO ANNOLIQ=" << _year; // Dal 18-06-2014 lascia stare l'anno prossimo!
|
||||
|
||||
TISAM_recordset id(query);
|
||||
|
||||
TString msg;
|
||||
|
@ -810,9 +810,9 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt, const bool
|
||||
art40_iva += va7v;
|
||||
}
|
||||
}
|
||||
// if (tipomov == vendita)
|
||||
// if (tipomov == vendita) // ci sono anche gli acquisti per cassa!
|
||||
{
|
||||
/* Non voglio piu' il riepilogo delle fatture emesse IVA diff
|
||||
/* Non voglio piu' il riepilogo delle fatture emesse IVA diff
|
||||
if (!diffimp.is_zero() || !diffiva.is_zero() ||
|
||||
!diffimp_acq.is_zero() || !diffiva_acq.is_zero())
|
||||
{
|
||||
@ -2461,7 +2461,7 @@ void TLiquidazione_app::print_importo(int rw, const char* prompt, real imp, bool
|
||||
// d._flags == THE_END
|
||||
void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw)
|
||||
{
|
||||
real risultato = d._r0; // Figuccia lo puo' cambiare
|
||||
const real risultato = d._r0; // Figuccia lo poteva cambiare, ora tornato const :-)
|
||||
const real& rimborso = d._r1;
|
||||
const real& cred_cost = d._r2;
|
||||
const real& deb_mens = d._r3;
|
||||
@ -2645,21 +2645,79 @@ static void imp2string(const real& n, TString& str)
|
||||
if (!n.is_zero())
|
||||
{
|
||||
const TCurrency c(n);
|
||||
str = c.string(TRUE);
|
||||
str = c.string(true);
|
||||
str.right_just(15);
|
||||
}
|
||||
else
|
||||
str.spaces(15);
|
||||
}
|
||||
|
||||
void TLiquidazione_app::set_iva_succ(int& rw)
|
||||
{
|
||||
TString query;
|
||||
query << "USE IVADIFF KEY 2 SELECT (BETWEEN(DATAREG,#DAL,#AL))&&(BETWEEN(DATAREGP,0,#AL))"
|
||||
<< "\nFROM ANNOLIQ=" << _year;
|
||||
TISAM_recordset id(query);
|
||||
const TDate da_datareg(1, 1, atoi(_year));
|
||||
const TDate a_datareg(31, 12, atoi(_year));
|
||||
id.set_var("#DAL", da_datareg);
|
||||
id.set_var("#AL", a_datareg);
|
||||
|
||||
TImporto ven_diff, ven_xcas, acq_xcas;
|
||||
long cur_numreg = 0;
|
||||
int cur_tipodif = 0;
|
||||
int cur_tipoiva = 0;
|
||||
|
||||
for (bool ok = id.move_first(); ok; ok = id.move_next())
|
||||
{
|
||||
const long numreg = id.get(RMI_NUMREG).as_int();
|
||||
if (numreg != cur_numreg)
|
||||
{
|
||||
cur_numreg = numreg;
|
||||
cur_tipodif = id.get("TIPODIFF").as_int();
|
||||
cur_tipoiva = id.get("TIPOIVA").as_int();
|
||||
}
|
||||
const char sezione = id.get("SEZIONE").as_string()[0];
|
||||
const TImporto imp(sezione, id.get(RMI_IMPONIBILE).as_real());
|
||||
if (!imp.is_zero())
|
||||
{
|
||||
if (cur_tipoiva == 1) // Vendite
|
||||
{
|
||||
if (cur_tipodif == 1)
|
||||
ven_diff += imp;
|
||||
else
|
||||
ven_xcas += imp;
|
||||
}
|
||||
else
|
||||
acq_xcas += imp;
|
||||
}
|
||||
}
|
||||
|
||||
if (!ven_diff.is_zero() || !ven_xcas.is_zero() || !acq_xcas.is_zero())
|
||||
{
|
||||
set_row(rw++,FR("@11g@bOPERAZIONI EFFETTUATE NELL'ANNO CON IMPOSTA ESIGIBILE NEGLI ANNI SUCCESSIVI@r"));
|
||||
const real vd = ven_diff.valore();
|
||||
const real vc = ven_xcas.valore();
|
||||
const real vt = vc+vd;
|
||||
const real at = acq_xcas.valore();
|
||||
|
||||
set_row(rw++, "Totale vendite con IVA esigibile negli anni successivi@66g%r", &vt);
|
||||
set_row(rw++, "Di cui con IVA per cassa@66g%r", &vc);
|
||||
set_row(rw++, "Totale acquisti con IVA detraibile negli anni successivi@66g%r", &at);
|
||||
set_row(rw++, "Di cui con IVA per cassa@66g%r", &at);
|
||||
}
|
||||
}
|
||||
|
||||
void TLiquidazione_app::set_grand(_DescrItem& d)
|
||||
{
|
||||
set_bookmark(TR("Riepilogativo liquidazione"), _firm_bookmark);
|
||||
int rw = 1;
|
||||
|
||||
set_row(1,""); set_row(2,""); set_row(3,""); set_row(4,"");
|
||||
set_row(5,FR("@11g@bCALCOLO LIQUIDAZIONE D'IMPOSTA@r"));
|
||||
set_row(6,"");
|
||||
int rw = 7;
|
||||
if (_isannual) // Stampa annuale evidenzia importi esigibili l'anno dopo
|
||||
set_iva_succ(rw);
|
||||
|
||||
set_bookmark(TR("Riepilogativo liquidazione"), _firm_bookmark);
|
||||
set_row(rw++,""); set_row(rw++,""); set_row(rw++,""); set_row(rw++,"");
|
||||
set_row(rw++,FR("@11g@bCALCOLO LIQUIDAZIONE D'IMPOSTA@r"));
|
||||
|
||||
/*
|
||||
const bool new_print = atoi(_year) >= 2000;
|
||||
|
@ -268,9 +268,8 @@ bool TRigaiva_array::add_riga(const TRectype& iva)
|
||||
// TRiga_array
|
||||
///////////////////////////////////////////////
|
||||
|
||||
bool TRiga_array::add_riga(const real& imponibile, const real& imposta,
|
||||
const real& implordo, const real& imponibilep,
|
||||
const real& impostap, const real& implordop,
|
||||
bool TRiga_array::add_riga(const real& imponibile, const real& imposta, const real& implordo,
|
||||
const real& imponibilep, const real& impostap, const real& implordop,
|
||||
const char* codiva)
|
||||
{
|
||||
bool found = false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user