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,
|
||||
_r20, _r21, _r22, _r23, _r24, _r25, _r26, _r27, _r28, _r29,
|
||||
_r30, _r31, _r32, _r33;
|
||||
real _ra0, _ra1, _ra2, _ra3, _ra4 ,_ra5, _ra6, _ra7, _ra8;
|
||||
TArray _arr;
|
||||
TDate _d0, _d1;
|
||||
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;
|
||||
|
||||
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
|
||||
TRelation* _rel;
|
||||
|
@ -233,6 +233,7 @@ bool TLiquidazione_app::update_firm(int month, bool recalc)
|
||||
// stato effettuato per scelta dello stronzo commercialista.
|
||||
|
||||
// Gestione IVA differita, da non confondere con _isdifferita
|
||||
|
||||
_isdiff = ini_get_bool(CONFIG_DITTA, "cg", "GesLiqDiff");
|
||||
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
|
||||
_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
|
||||
// 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);
|
||||
|
||||
// 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
|
||||
const long nr = _mov->get_long(MOV_NUMREG);
|
||||
|
||||
if (nr == 25144 || nr == 25145)
|
||||
if (nr == 92218)
|
||||
int i = 1 ;
|
||||
#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);
|
||||
TDate datainc;
|
||||
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;
|
||||
|
||||
if (has_sc)
|
||||
@ -1216,8 +1222,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt, TAssoc_array &
|
||||
orizzonte = data_rif;
|
||||
}
|
||||
|
||||
TImporto pg_per, nc_per;
|
||||
flag_pg_nc = rp.calcola_pagato_periodo(inizio+1L, orizzonte, pg_per, nc_per, &pagscatt);
|
||||
TImporto pg_per, nc_per;
|
||||
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)
|
||||
{
|
||||
// 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());
|
||||
_mov->put(MOV_DATAINC, datainc);
|
||||
if (datainc < date)
|
||||
datainc = date;
|
||||
}
|
||||
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)
|
||||
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 meseliq = id.get_date(MOV_DATAREG).month();
|
||||
const int annoliq = _mov->get_date(MOV_DATAREG).year();
|
||||
const int meseliq = _mov->get_date(MOV_DATAREG).month();
|
||||
|
||||
id.put("ANNOLIQ", annoliq);
|
||||
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());
|
||||
|
||||
id.put("IMPORTO", val_imp + val_iva);
|
||||
|
||||
id.put(RMI_IMPONIBILE, val_imp);
|
||||
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)
|
||||
{
|
||||
incdiff_imp += val_imp;
|
||||
@ -4205,7 +4232,11 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
||||
_lam->put("R1", iva_acq);
|
||||
_lam->put("R2", cred_prec);
|
||||
_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","");
|
||||
|
||||
// AWFUL! se siamo in annuale, occorre arrotondare alle 1000 lire
|
||||
@ -4315,7 +4346,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
|
||||
lim.put("R30", fdiff_imp_acq);
|
||||
lim.put("R31", fdiff_iva_acq);
|
||||
lim.put("R32", fdiffinc_imp_acq);
|
||||
lim.put("R33", fdiffinc_iva_acq);
|
||||
lim.put("R21", fdiffinc_iva_acq);
|
||||
// ciapa
|
||||
}
|
||||
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("R3")); // Debito precedente
|
||||
tt.add(_lam->get("R4"));
|
||||
|
||||
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->_s2 = lim.get("R12");
|
||||
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));
|
||||
real p = ip.get("R12").as_real();
|
||||
if (m == _month && p != ZERO)
|
||||
if (m == _month && (p > ZERO && p <= CENTO))
|
||||
perc_prorata = p;
|
||||
}
|
||||
|
||||
@ -2506,25 +2509,25 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw)
|
||||
const real& versamenti = d._r8;
|
||||
const real& vers_int = d._r9;
|
||||
|
||||
real diffinc_iva = d._r29;
|
||||
real diffinc_iva_acq = d._r33;
|
||||
real xcasinc_iva = ZERO;
|
||||
real xcasinc_iva_acq = ZERO;
|
||||
real diffinc_iva = d._ra5;
|
||||
real diffinc_iva_acq = d._ra7;
|
||||
real xcasinc_iva = d._ra6;
|
||||
real xcasinc_iva_acq = d._ra8;
|
||||
|
||||
if (has_module(ICAUT) && (!diffinc_iva.is_zero() || !diffinc_iva_acq.is_zero()))
|
||||
{
|
||||
real dimp, diva, ximp, xiva;
|
||||
|
||||
if (!diffinc_iva.is_zero() && calc_inc_diff(1, dimp, diva, ximp, xiva))
|
||||
{
|
||||
diffinc_iva = diva;
|
||||
xcasinc_iva = xiva;
|
||||
}
|
||||
if (!diffinc_iva_acq.is_zero() && calc_inc_diff(2, dimp, diva, ximp, xiva))
|
||||
{
|
||||
diffinc_iva_acq = diva;
|
||||
xcasinc_iva_acq = xiva;
|
||||
}
|
||||
// if (!diffinc_iva.is_zero() && calc_inc_diff(1, dimp, diva, ximp, xiva))
|
||||
// {
|
||||
// diffinc_iva = _imposta_inc_diff_ven;
|
||||
// xcasinc_iva = _imposta_inc_cassa_ven;
|
||||
// }
|
||||
// if (!diffinc_iva_acq.is_zero() && calc_inc_diff(2, dimp, diva, ximp, xiva))
|
||||
// {
|
||||
// diffinc_iva_acq = _imposta_inc_diff_acq;
|
||||
// xcasinc_iva_acq = _imposta_inc_cassa_acq;
|
||||
// }
|
||||
}
|
||||
|
||||
TToken_string tt(d._s0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user