Patch level : 12.0 384
Files correlati : cg4.exe Corretto in funzionamento per fatture per cassa pagate in anticipo e calcolo pro-rata per le fatture per cassa. git-svn-id: svn://10.65.10.50/branches/R_10_00@23783 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
66db6678e5
commit
d750fa72d5
@ -169,6 +169,7 @@ public:
|
|||||||
_r10, _r11, _r12, _r13, _r14, _r15, _r16, _r17, _r18, _r19,
|
_r10, _r11, _r12, _r13, _r14, _r15, _r16, _r17, _r18, _r19,
|
||||||
_r20, _r21, _r22, _r23, _r24, _r25, _r26, _r27, _r28, _r29,
|
_r20, _r21, _r22, _r23, _r24, _r25, _r26, _r27, _r28, _r29,
|
||||||
_r30, _r31, _r32, _r33;
|
_r30, _r31, _r32, _r33;
|
||||||
|
real _ra0, _ra1, _ra2, _ra3, _ra4 ,_ra5, _ra6, _ra7, _ra8;
|
||||||
TArray _arr;
|
TArray _arr;
|
||||||
TDate _d0, _d1;
|
TDate _d0, _d1;
|
||||||
real _diff_ven_ap, _diff_ven_ap_iva, _diff_acq_ap, _diff_acq_ap_iva;
|
real _diff_ven_ap, _diff_ven_ap_iva, _diff_acq_ap, _diff_acq_ap_iva;
|
||||||
@ -305,6 +306,7 @@ class TLiquidazione_app : public TPrint_application
|
|||||||
bool _definitiva;
|
bool _definitiva;
|
||||||
|
|
||||||
real _diff_ven_ap, _diff_ven_ap_iva, _diff_acq_ap, _diff_acq_ap_iva;
|
real _diff_ven_ap, _diff_ven_ap_iva, _diff_acq_ap, _diff_acq_ap_iva;
|
||||||
|
real _imposta_inc_diff_ven, _imposta_inc_cassa_ven, _imposta_inc_diff_acq, _imposta_inc_cassa_acq;
|
||||||
|
|
||||||
// main cursor
|
// main cursor
|
||||||
TRelation* _rel;
|
TRelation* _rel;
|
||||||
|
@ -233,6 +233,7 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
|
|||||||
// stato effettuato per scelta dello stronzo commercialista.
|
// stato effettuato per scelta dello stronzo commercialista.
|
||||||
|
|
||||||
// Gestione IVA differita, da non confondere con _isdifferita
|
// Gestione IVA differita, da non confondere con _isdifferita
|
||||||
|
|
||||||
_isdiff = ini_get_bool(CONFIG_DITTA, "cg", "GesLiqDiff");
|
_isdiff = ini_get_bool(CONFIG_DITTA, "cg", "GesLiqDiff");
|
||||||
TAssoc_array caus_reg;
|
TAssoc_array caus_reg;
|
||||||
|
|
||||||
@ -249,6 +250,11 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_imposta_inc_diff_ven = ZERO;
|
||||||
|
_imposta_inc_cassa_ven = ZERO;
|
||||||
|
_imposta_inc_diff_acq = ZERO;
|
||||||
|
_imposta_inc_cassa_acq = ZERO;
|
||||||
|
|
||||||
_isdiffacc = is_acconto_differito(); // Gestione differimento acconto IVA
|
_isdiffacc = is_acconto_differito(); // Gestione differimento acconto IVA
|
||||||
_isdifferita = _isdiffacc;
|
_isdifferita = _isdiffacc;
|
||||||
|
|
||||||
@ -467,7 +473,7 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
|
|||||||
|
|
||||||
// Se siamo in annuale e se non e' stato indicato di ricalcolare (stampa liquidazione chiamata
|
// Se siamo in annuale e se non e' stato indicato di ricalcolare (stampa liquidazione chiamata
|
||||||
// dalla stampa registri) non riscrivere i risultati delle liquidazioni,
|
// dalla stampa registri) non riscrivere i risultati delle liquidazioni,
|
||||||
if ((is_month_ok_strict(month) && _month != 13 && _recalc != never) || _is_interactive /*month == 13*/ )
|
if ((is_month_ok_strict(month) && _month != 13 && _recalc != never) || (_is_interactive && _recalc != never))
|
||||||
write_liq(month, atts);
|
write_liq(month, atts);
|
||||||
|
|
||||||
// occorre poterla chiamare altre volte con mesi diversi
|
// occorre poterla chiamare altre volte con mesi diversi
|
||||||
@ -1178,7 +1184,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
const long nr = _mov->get_long(MOV_NUMREG);
|
const long nr = _mov->get_long(MOV_NUMREG);
|
||||||
|
|
||||||
if (nr == 25144 || nr == 25145)
|
if (nr == 92218)
|
||||||
int i = 1 ;
|
int i = 1 ;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1194,7 +1200,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
const long numreg = _mov->get_long(MOV_NUMREG);
|
const long numreg = _mov->get_long(MOV_NUMREG);
|
||||||
TDate datainc;
|
TDate datainc;
|
||||||
real tot_incassato, tot_da_incassare;
|
real tot_incassato, tot_da_incassare;
|
||||||
int flag_pg_nc = 0; // Ci sono pagamenti (0x1) e/o note di credito(0x2) ?
|
int flag_pg_nc = 0; // Ci sono pagamenti (0x1) e/o note di credito(0x2) ?
|
||||||
bool game_found = false;
|
bool game_found = false;
|
||||||
|
|
||||||
if (has_sc)
|
if (has_sc)
|
||||||
@ -1217,7 +1223,9 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
}
|
}
|
||||||
|
|
||||||
TImporto pg_per, nc_per;
|
TImporto pg_per, nc_per;
|
||||||
flag_pg_nc = rp.calcola_pagato_periodo(inizio+1L, orizzonte, pg_per, nc_per, &pagscatt);
|
bool regular_month = orizzonte >= date;
|
||||||
|
bool first_month = regular_month && date > inizio + 1L;
|
||||||
|
flag_pg_nc = rp.calcola_pagato_periodo(first_month ? botime : inizio + 1L, orizzonte, pg_per, nc_per, &pagscatt) && regular_month;
|
||||||
if (pagscatt.items() >= 2)
|
if (pagscatt.items() >= 2)
|
||||||
{
|
{
|
||||||
// Fondo tra loro le righe generate dallo stesso pagamento
|
// Fondo tra loro le righe generate dallo stesso pagamento
|
||||||
@ -1311,6 +1319,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
|
|
||||||
datainc = data_maturazione_IVA_diff(_mov->curr());
|
datainc = data_maturazione_IVA_diff(_mov->curr());
|
||||||
_mov->put(MOV_DATAINC, datainc);
|
_mov->put(MOV_DATAINC, datainc);
|
||||||
|
if (datainc < date)
|
||||||
|
datainc = date;
|
||||||
}
|
}
|
||||||
if (tot_incassato > ZERO && is_date_ok(datainc, month, liqmonth, year_int))
|
if (tot_incassato > ZERO && is_date_ok(datainc, month, liqmonth, year_int))
|
||||||
{
|
{
|
||||||
@ -1592,10 +1602,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
if (resto > 0)
|
if (resto > 0)
|
||||||
meseliq += 3-resto;
|
meseliq += 3-resto;
|
||||||
}
|
}
|
||||||
if (is_detr_diff > 0) // indetraibile
|
if (is_detr_diff > 0 || civa.senza_imposta()) // indetraibile
|
||||||
{
|
{
|
||||||
const int annoliq = id.get_date(MOV_DATAREG).year();
|
const int annoliq = _mov->get_date(MOV_DATAREG).year();
|
||||||
const int meseliq = id.get_date(MOV_DATAREG).month();
|
const int meseliq = _mov->get_date(MOV_DATAREG).month();
|
||||||
|
|
||||||
id.put("ANNOLIQ", annoliq);
|
id.put("ANNOLIQ", annoliq);
|
||||||
id.put("MESELIQ", meseliq);
|
id.put("MESELIQ", meseliq);
|
||||||
@ -1649,9 +1659,26 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
|||||||
val_iva = civa.scorpora(val_imp, TCurrency::get_firm_dec());
|
val_iva = civa.scorpora(val_imp, TCurrency::get_firm_dec());
|
||||||
|
|
||||||
id.put("IMPORTO", val_imp + val_iva);
|
id.put("IMPORTO", val_imp + val_iva);
|
||||||
|
|
||||||
id.put(RMI_IMPONIBILE, val_imp);
|
id.put(RMI_IMPONIBILE, val_imp);
|
||||||
id.put(RMI_IMPOSTA, val_iva);
|
id.put(RMI_IMPOSTA, val_iva);
|
||||||
|
if (is_detr_diff == 0) // detraibile
|
||||||
|
{
|
||||||
|
if (tipomov == vendita)
|
||||||
|
{
|
||||||
|
if (iva_cass)
|
||||||
|
_imposta_inc_cassa_ven += val_iva;
|
||||||
|
else
|
||||||
|
_imposta_inc_diff_ven+= val_iva;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (iva_cass)
|
||||||
|
_imposta_inc_cassa_acq+= val_iva;
|
||||||
|
else
|
||||||
|
_imposta_inc_diff_acq+= val_iva;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (tipomov_pag >= tm_pagamento && is_detr_diff == 0)
|
if (tipomov_pag >= tm_pagamento && is_detr_diff == 0)
|
||||||
{
|
{
|
||||||
incdiff_imp += val_imp;
|
incdiff_imp += val_imp;
|
||||||
@ -4205,6 +4232,10 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
|||||||
_lam->put("R1", iva_acq);
|
_lam->put("R1", iva_acq);
|
||||||
_lam->put("R2", cred_prec);
|
_lam->put("R2", cred_prec);
|
||||||
_lam->put("R3", debt_precd);
|
_lam->put("R3", debt_precd);
|
||||||
|
_lam->put("R5", _imposta_inc_diff_ven);
|
||||||
|
_lam->put("R6", _imposta_inc_cassa_ven);
|
||||||
|
_lam->put("R7", _imposta_inc_diff_acq);
|
||||||
|
_lam->put("R8", _imposta_inc_cassa_acq);
|
||||||
|
|
||||||
lim.put("B0","");
|
lim.put("B0","");
|
||||||
|
|
||||||
@ -4315,7 +4346,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
|||||||
lim.put("R30", fdiff_imp_acq);
|
lim.put("R30", fdiff_imp_acq);
|
||||||
lim.put("R31", fdiff_iva_acq);
|
lim.put("R31", fdiff_iva_acq);
|
||||||
lim.put("R32", fdiffinc_imp_acq);
|
lim.put("R32", fdiffinc_imp_acq);
|
||||||
lim.put("R33", fdiffinc_iva_acq);
|
lim.put("R21", fdiffinc_iva_acq);
|
||||||
// ciapa
|
// ciapa
|
||||||
}
|
}
|
||||||
put_lim(lim);
|
put_lim(lim);
|
||||||
|
@ -1249,8 +1249,11 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts, _DescrItem*
|
|||||||
tt.add(_lam->get("R2")); // Credito precedente
|
tt.add(_lam->get("R2")); // Credito precedente
|
||||||
tt.add(_lam->get("R3")); // Debito precedente
|
tt.add(_lam->get("R3")); // Debito precedente
|
||||||
tt.add(_lam->get("R4"));
|
tt.add(_lam->get("R4"));
|
||||||
|
|
||||||
d->_s0 = tt;
|
d->_s0 = tt;
|
||||||
|
d->_ra5 = _lam->get_real("R5");
|
||||||
|
d->_ra6 = _lam->get_real("R6");
|
||||||
|
d->_ra7 = _lam->get_real("R7");
|
||||||
|
d->_ra8 = _lam->get_real("R8");
|
||||||
d->_s1 = lim.get("R11"); // Acc. dec.
|
d->_s1 = lim.get("R11"); // Acc. dec.
|
||||||
d->_s2 = lim.get("R12");
|
d->_s2 = lim.get("R12");
|
||||||
d->_s3 = lim.get("R13");
|
d->_s3 = lim.get("R13");
|
||||||
@ -1682,7 +1685,7 @@ int TLiquidazione_app::calc_inc_diff(int tipoiva, real& imponibile_diff, real& i
|
|||||||
{
|
{
|
||||||
int m = atoi(ip.get("CODTAB").as_string().mid(10));
|
int m = atoi(ip.get("CODTAB").as_string().mid(10));
|
||||||
real p = ip.get("R12").as_real();
|
real p = ip.get("R12").as_real();
|
||||||
if (m == _month && p != ZERO)
|
if (m == _month && (p > ZERO && p <= CENTO))
|
||||||
perc_prorata = p;
|
perc_prorata = p;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2506,25 +2509,25 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw)
|
|||||||
const real& versamenti = d._r8;
|
const real& versamenti = d._r8;
|
||||||
const real& vers_int = d._r9;
|
const real& vers_int = d._r9;
|
||||||
|
|
||||||
real diffinc_iva = d._r29;
|
real diffinc_iva = d._ra5;
|
||||||
real diffinc_iva_acq = d._r33;
|
real diffinc_iva_acq = d._ra7;
|
||||||
real xcasinc_iva = ZERO;
|
real xcasinc_iva = d._ra6;
|
||||||
real xcasinc_iva_acq = ZERO;
|
real xcasinc_iva_acq = d._ra8;
|
||||||
|
|
||||||
if (has_module(ICAUT) && (!diffinc_iva.is_zero() || !diffinc_iva_acq.is_zero()))
|
if (has_module(ICAUT) && (!diffinc_iva.is_zero() || !diffinc_iva_acq.is_zero()))
|
||||||
{
|
{
|
||||||
real dimp, diva, ximp, xiva;
|
real dimp, diva, ximp, xiva;
|
||||||
|
|
||||||
if (!diffinc_iva.is_zero() && calc_inc_diff(1, dimp, diva, ximp, xiva))
|
// if (!diffinc_iva.is_zero() && calc_inc_diff(1, dimp, diva, ximp, xiva))
|
||||||
{
|
// {
|
||||||
diffinc_iva = diva;
|
// diffinc_iva = _imposta_inc_diff_ven;
|
||||||
xcasinc_iva = xiva;
|
// xcasinc_iva = _imposta_inc_cassa_ven;
|
||||||
}
|
// }
|
||||||
if (!diffinc_iva_acq.is_zero() && calc_inc_diff(2, dimp, diva, ximp, xiva))
|
// if (!diffinc_iva_acq.is_zero() && calc_inc_diff(2, dimp, diva, ximp, xiva))
|
||||||
{
|
// {
|
||||||
diffinc_iva_acq = diva;
|
// diffinc_iva_acq = _imposta_inc_diff_acq;
|
||||||
xcasinc_iva_acq = xiva;
|
// xcasinc_iva_acq = _imposta_inc_cassa_acq;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
TToken_string tt(d._s0);
|
TToken_string tt(d._s0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user