Patch level : 12.0 562

Files correlati     : cg4.exe

Modificata la liquidazione delle fatture in ritardo
Aggiunta la gestione dell'uscita dal regime di cassa

git-svn-id: svn://10.65.10.50/branches/R_10_00@24464 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
bonazzi 2018-04-19 22:47:28 +00:00
parent 8151b3b8f1
commit 0cbe5ff7b6
2 changed files with 53 additions and 30 deletions

View File

@ -1087,8 +1087,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
}
data_rif_cassa.set_end_month();
todate.set_end_month();
fine.set_end_month();
todate.set_end_month();
fine.set_end_month();
from.put(MOV_REG, fromreg);
to.put(MOV_REG, toreg);
@ -1114,7 +1114,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
_cur->setfilter(filter);
const long items = _cur->items();
_cur->freeze();
_cur->freeze();
*_cur = 0;
@ -1235,7 +1236,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
#ifdef DBG
nr = _mov->get_long(MOV_NUMREG);
if (nr == 27891)
if (nr == 25722 ||
nr == 25863 ||
nr == 27888 ||
nr == 28033)
int i = 1;
#endif
@ -1295,7 +1299,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
}
}
}
if (iva_diff || sarebbe_maturata(_mov->curr(), inizio+1L, fine) || end_cassa)
if (iva_diff || sarebbe_maturata(_mov->curr(), inizio+1L, fine) || (iva_cass && end_cassa))
{
TPointer_array pagscaold;
TImporto pg_tot, nc_tot;
@ -1362,7 +1366,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
else
{
// Fattura più vecchia di un anno a ente NON pubblico
if (sarebbe_maturata(_mov->curr(), inizio+1L, fine) || end_cassa)
if (sarebbe_maturata(_mov->curr(), inizio+1L, fine) || (iva_cass && end_cassa))
tot_da_incassare = _mov->get_real(MOV_TOTDOC);
}
}
@ -1372,11 +1376,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
tot_incassato = tot_da_incassare;
datainc = data_maturazione_IVA_diff(_mov->curr());
if (end_cassa)
{
if (!datainc.ok() || datainc > data_end_cassa)
datainc = data_end_cassa;
}
if (iva_cass && end_cassa)
datainc = data_end_cassa;
_mov->put(MOV_DATAINC, datainc);
if (datainc < date)
datainc = date;
@ -1523,10 +1524,13 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
const int tp = clifo.get_int(CLI_ALLEG);
#ifdef DBG
const long nr = _mov->get_long(MOV_NUMREG);
nr = _mov->get_long(MOV_NUMREG);
if (nr == 214882)
int i = 1 ;
if (nr == 25722 ||
nr == 25863 ||
nr == 27888 ||
nr == 28033)
int i = 1;
#endif
if ((soloiva &&
@ -1558,8 +1562,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
long numreg = _rmoviva->get_long(RMI_NUMREG);
const TDate datareg = _mov->get_date(MOV_DATAREG);
int mesereg = datareg.month();
const bool ok = is_month_ok(mesereg, month) && (atoi(_year) == datareg.year());
bool ok = is_month_ok(mesereg, month) && (atoi(_year) == datareg.year());
if (!ok && (iva_cass && end_cassa && month < 13))
ok = (datareg.year() < atoi(_year)) || (mesereg <= month);
if (!ok || is_detr_diff == 1 || civa.tipo() == "NS")
continue;
if (bIsMovDiff && tm == tm_fattura)
@ -1721,19 +1727,36 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
bool pag_found = false;
int err = rid.read(_isgteq);
#ifdef DBG
if (nr == 29283)
int i = 1;
#endif
TDate orizzonte = fine; // caso tradizionale
if (iva_cass)
{
const TDate data_rif = data_maturazione_IVA_diff(_mov->curr());
if (data_rif < fine)
orizzonte = data_rif;
}
for (; err == NOERR && rid.get_long(RMI_NUMREG) == numreg && rid.get_int(RMI_NUMRIG) == numrig; err = rid.next())
{
const int ridnumpro = rid.get_int(ID_NUMPRO);
const tipo_movimento ridtipopag = (tipo_movimento) rid.get_int(PART_TIPOMOV);
if (ridtipopag != tm_fattura && ridtipopag != tm_nessuno &&ridnumpro != numpro)
if (ridtipopag != tm_fattura && ridtipopag != tm_nessuno && ridnumpro != numpro)
{
pag_found = true;
if (sezfat != sezpag)
val_iva -= rid.get_real(RMI_IMPOSTA);
else
val_iva += rid.get_real(RMI_IMPOSTA);
const TDate datapag = rid.get_date(ID_DATAREGP);
if (datapag <= orizzonte)
{
pag_found = true;
if (sezfat != sezpag)
val_iva -= rid.get_real(RMI_IMPOSTA);
else
val_iva += rid.get_real(RMI_IMPOSTA);
}
}
}
if (!pag_found)
@ -1756,14 +1779,14 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
if (iva_cass)
_imposta_inc_cassa_ven += val_iva;
else
_imposta_inc_diff_ven+= val_iva;
_imposta_inc_diff_ven += val_iva;
}
else
{
if (iva_cass)
_imposta_inc_cassa_acq+= val_iva;
_imposta_inc_cassa_acq += val_iva;
else
_imposta_inc_diff_acq+= val_iva;
_imposta_inc_diff_acq += val_iva;
}
incdiff_imp += val_imp;
incdiff_iva += val_iva;
@ -2686,8 +2709,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
else
{
// fatture acquisto a liquidazione differita
tab->curr().add("R30", incdiff_imp);
tab->curr().add("R31", incdiff_iva);
tab->curr().add("R30", diff_imp);
tab->curr().add("R31", diff_iva);
tab->curr().add("R32", incdiff_imp);
tab->curr().add("R33", incdiff_iva);
fdiff_imp_acq += diff_imp;

View File

@ -1620,9 +1620,9 @@ int TLiquidazione_app::print_acc_diff_xcassa(const _DescrItem& d)
set_row(i++,FR("@11gIVA a liquidazione differita pagata@64g%r"), &ivadiff_pag);
if (ivadiff_inc > ZERO)
set_row(i++,FR("@11gIVA per cassa incassata@75g%r"), &ivadiff_inc);
set_row(i++,FR("@11gIVA per cassa incassata@75g%r"), &ivaxcas_inc);
if (ivadiff_pag > ZERO)
set_row(i++,FR("@11gIVA per cassa pagata@64g%r"), &ivadiff_pag);
set_row(i++,FR("@11gIVA per cassa pagata@64g%r"), &ivaxcas_pag);
}
return i;
}