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(); data_rif_cassa.set_end_month();
todate.set_end_month(); todate.set_end_month();
fine.set_end_month(); fine.set_end_month();
from.put(MOV_REG, fromreg); from.put(MOV_REG, fromreg);
to.put(MOV_REG, toreg); to.put(MOV_REG, toreg);
@ -1114,7 +1114,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
_cur->setfilter(filter); _cur->setfilter(filter);
const long items = _cur->items(); const long items = _cur->items();
_cur->freeze();
_cur->freeze();
*_cur = 0; *_cur = 0;
@ -1235,7 +1236,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
#ifdef DBG #ifdef DBG
nr = _mov->get_long(MOV_NUMREG); nr = _mov->get_long(MOV_NUMREG);
if (nr == 27891) if (nr == 25722 ||
nr == 25863 ||
nr == 27888 ||
nr == 28033)
int i = 1; int i = 1;
#endif #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; TPointer_array pagscaold;
TImporto pg_tot, nc_tot; TImporto pg_tot, nc_tot;
@ -1362,7 +1366,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
else else
{ {
// Fattura più vecchia di un anno a ente NON pubblico // 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); 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; tot_incassato = tot_da_incassare;
datainc = data_maturazione_IVA_diff(_mov->curr()); datainc = data_maturazione_IVA_diff(_mov->curr());
if (end_cassa) if (iva_cass && end_cassa)
{ datainc = data_end_cassa;
if (!datainc.ok() || datainc > data_end_cassa)
datainc = data_end_cassa;
}
_mov->put(MOV_DATAINC, datainc); _mov->put(MOV_DATAINC, datainc);
if (datainc < date) if (datainc < date)
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); const int tp = clifo.get_int(CLI_ALLEG);
#ifdef DBG #ifdef DBG
const long nr = _mov->get_long(MOV_NUMREG); nr = _mov->get_long(MOV_NUMREG);
if (nr == 214882) if (nr == 25722 ||
int i = 1 ; nr == 25863 ||
nr == 27888 ||
nr == 28033)
int i = 1;
#endif #endif
if ((soloiva && 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); long numreg = _rmoviva->get_long(RMI_NUMREG);
const TDate datareg = _mov->get_date(MOV_DATAREG); const TDate datareg = _mov->get_date(MOV_DATAREG);
int mesereg = datareg.month(); 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") if (!ok || is_detr_diff == 1 || civa.tipo() == "NS")
continue; continue;
if (bIsMovDiff && tm == tm_fattura) 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; bool pag_found = false;
int err = rid.read(_isgteq); 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()) 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 int ridnumpro = rid.get_int(ID_NUMPRO);
const tipo_movimento ridtipopag = (tipo_movimento) rid.get_int(PART_TIPOMOV); 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; const TDate datapag = rid.get_date(ID_DATAREGP);
if (sezfat != sezpag)
val_iva -= rid.get_real(RMI_IMPOSTA); if (datapag <= orizzonte)
else {
val_iva += rid.get_real(RMI_IMPOSTA); pag_found = true;
if (sezfat != sezpag)
val_iva -= rid.get_real(RMI_IMPOSTA);
else
val_iva += rid.get_real(RMI_IMPOSTA);
}
} }
} }
if (!pag_found) if (!pag_found)
@ -1756,14 +1779,14 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
if (iva_cass) if (iva_cass)
_imposta_inc_cassa_ven += val_iva; _imposta_inc_cassa_ven += val_iva;
else else
_imposta_inc_diff_ven+= val_iva; _imposta_inc_diff_ven += val_iva;
} }
else else
{ {
if (iva_cass) if (iva_cass)
_imposta_inc_cassa_acq+= val_iva; _imposta_inc_cassa_acq += val_iva;
else else
_imposta_inc_diff_acq+= val_iva; _imposta_inc_diff_acq += val_iva;
} }
incdiff_imp += val_imp; incdiff_imp += val_imp;
incdiff_iva += val_iva; incdiff_iva += val_iva;
@ -2686,8 +2709,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
else else
{ {
// fatture acquisto a liquidazione differita // fatture acquisto a liquidazione differita
tab->curr().add("R30", incdiff_imp); tab->curr().add("R30", diff_imp);
tab->curr().add("R31", incdiff_iva); tab->curr().add("R31", diff_iva);
tab->curr().add("R32", incdiff_imp); tab->curr().add("R32", incdiff_imp);
tab->curr().add("R33", incdiff_iva); tab->curr().add("R33", incdiff_iva);
fdiff_imp_acq += diff_imp; 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); set_row(i++,FR("@11gIVA a liquidazione differita pagata@64g%r"), &ivadiff_pag);
if (ivadiff_inc > ZERO) 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) 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; return i;
} }