Patch level : 12.0 754

Files correlati     : cg4.exe cg5.exe cg5300a.msk cg5500b.msk cg5500c.msk
Commento            :
Esposto il totale versamenti e il totale interessi in IVA
Aggiunta la colonna interessi allo sheet versamenti IVA
This commit is contained in:
AlexBonazzi 2019-04-03 15:21:07 +02:00
parent e124a1b3ff
commit a703f9f7b5
10 changed files with 123 additions and 39 deletions

View File

@ -168,7 +168,7 @@ public:
real _r0, _r1, _r2, _r3, _r4, _r5, _r6, _r7, _r8, _r9,
_r10, _r11, _r12, _r13, _r14, _r15, _r16, _r17, _r18, _r19,
_r20, _r21, _r22, _r23, _r24, _r25, _r26, _r27, _r28, _r29,
_r30, _r31, _r32, _r33;
_r30, _r31, _r32, _r33, _r34;
real _ra0, _ra1, _ra2, _ra3, _ra4 ,_ra5, _ra6, _ra7, _ra8;
TArray _arr;
TDate _d0, _d1;
@ -304,6 +304,7 @@ class TLiquidazione_app : public TPrint_application
int _monthinatt; // mese inizio attivita' (serve per differita)
bool _lim_cleared;
bool _definitiva;
bool _is_liq_acconto;
bool _end_cassa;
real _diff_ven_ap, _diff_ven_ap_iva, _diff_acq_ap, _diff_acq_ap_iva;

View File

@ -3730,6 +3730,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
real detrazioni = ZERO;
real versamenti = ZERO;
real versamenti_interessi = ZERO;
real vers_int = ZERO;
real rimborsi = ZERO;
real rettifiche = ZERO;
@ -3943,7 +3944,9 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
// nei casi previsti e non in annuale (vedi sotto)
real vs(versamenti_IVA(m , m == 12 ? "1" : "1|7"));
real vi(versamenti_IVA(m,"5"));
real vls(versamenti_IVA(m, m == 12 ? "1" : "1|7", true));
versamenti += vs;
versamenti_interessi += (vls - vs);
vers_int += vi;
res_cred += vs + vi;
}
@ -4367,15 +4370,16 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
lim.put("R12", res_cred);
lim.put("R13", res_debt);
lim.put("R26", fdiff_imp); // Imponibile IVA diff Fatture di vendita
lim.put("R27", fdiff_iva); // Imposta IVA diff Fatture di vendita
lim.put("R28", fdiffinc_imp); // Imponibile IVA diff Incassi
lim.put("R29", fdiffinc_iva); // Imposta IVA diff Incassi
lim.put("R26", fdiff_imp); // Imponibile IVA diff Fatture di vendita
lim.put("R27", fdiff_iva); // Imposta IVA diff Fatture di vendita
lim.put("R28", fdiffinc_imp); // Imponibile IVA diff Incassi
lim.put("R29", fdiffinc_iva); // Imposta IVA diff Incassi
lim.put("R30", fdiff_imp_acq); // Imponibile IVA diff Fatture di acquisto
lim.put("R31", fdiff_iva_acq); // Imposta IVA diff Fatture di acquisto
lim.put("R32", fdiffinc_imp_acq); // Imponibile IVA diff Pagamenti
lim.put("R33", fdiffinc_iva_acq); // Imposta IVA diff Pagamenti
lim.put("R31", fdiff_iva_acq); // Imposta IVA diff Fatture di acquisto
lim.put("R32", fdiffinc_imp_acq); // Imponibile IVA diff Pagamenti
lim.put("R33", fdiffinc_iva_acq); // Imposta IVA diff Pagamenti
lim.put("R34", versamenti_interessi);
look_lam(month+deltam, true);
_lam->put("R0", iva_vend);

View File

@ -57,7 +57,7 @@ bool TLiquidazione_app::is_month_ok(int x, int mtocalc) const
{
// per l'annuale ritorna true per tutti i mesi da liquidare
ret = x <= 13;
}
}
return ret;
}
@ -138,7 +138,7 @@ bool TLiquidazione_app::is_date_ok(const TDate& d, int month, int liqmonth, int
else // Nuova selezione dal 1998 in poi
{
if (month <= 12)
return (regyear == year) && ((regmonth == month && liqmonth == 0) || (liqmonth == month));
return (regyear == year) && ((regmonth == month && liqmonth == 0) || (liqmonth == month));
else // Annuale, month == 13
return (regyear == year && liqmonth != 12) || (regyear == year + 1 && liqmonth == 12);
}
@ -930,8 +930,9 @@ real TLiquidazione_app::versamenti_IVA(int month, const char* types, bool intr)
ret += importo_dovuto_arrotondato;
//gli interessi vengono memorizzati solo se si
//devono pagare (=> nessun controllo su intra)
if (!(_is_visliq && _freqviva == "T" && _month != 13)) // toglie gli interessi se non siamo in visualiz. o la ditta non e' TRIM o siamo in annuale
ret -= interessi; // al netto degli interessi
if (!intr)
if (!(_is_visliq && _freqviva == "T" && _month != 13)) // toglie gli interessi se non siamo in visualiz. o la ditta non e' TRIM o siamo in annuale
ret -= interessi; // al netto degli interessi
// In caso di 13a liq e per trimestrali... devo fare la somma
// degli importi netti dovuti, ecco perche' leggo R2,
// perche togliendo poi gli interessi ottengo il dovuto netto!

View File

@ -1296,7 +1296,8 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts, _DescrItem*
// rispettiamo tutte le casistiche per i versamenti se non siamo in visualizzazione
// analogamente in Visualizzazione ma solo nel caso dell'annuale.
// In tutti gli altri casi va a cercare la delega
d->_r8 = (_month == 13 || !_is_visliq) ? lim.get_real("R8") : versamenti_IVA(_month, "1");
d->_r8 = (_month == 13 || !_is_visliq) ? lim.get_real("R8") : versamenti_IVA(_month, "1");
d->_r34 = (_month == 13 || !_is_visliq) ? lim.get_real("R34") : ZERO;
if (_month == 13)
{
@ -2296,6 +2297,7 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw)
const real& detrazioni = d._r6;
const real& interessi = d._r7;
const real& versamenti = d._r8;
const real& versamenti_interessi = d._r34;
const real& vers_int = d._r9;
real diffinc_iva = d._ra5;
@ -2446,26 +2448,29 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw)
set_row(rw++,FR("@11gInteressi dovuti per liquidazioni trimestrali %6.2r%%@75g%r"),&interesse, &interessi);
else
if (_is_visliq) rw++;
if (!acc_dec.is_zero())
set_row(rw++,FR("%s@11gAcconto versato%s@58g%r"),
_is_visliq ? "$[r]" : "", _is_visliq ? "$[n]" : "", &acc_dec);
else
if (_is_visliq) rw++;
// versamenti effettuati
if (!versamenti.is_zero() && (_month==13 || !_is_visliq))
set_row(rw++,FR("@11gVersamenti effettuati@58g%r"), &versamenti);
if (!versamenti.is_zero() && (_month == 13 || !_is_visliq))
set_row(rw++, FR("@11gVersamenti effettuati@58g%r"), &versamenti);
else
if (_is_visliq) rw++;
// versamenti integrativi
if (!vers_int.is_zero() && !_is_visliq)
set_row(rw++,FR("@11gVersamenti integrativi@58g%r"), &vers_int);
else
if (_is_visliq) rw++;
const real iva = risultato + interessi;
const real tot_vers = acc_dec + versamenti + vers_int;
if (!tot_vers.is_zero() && (_month == 13 || !_is_visliq))
set_row(rw++, FR("@11gTotale versamenti effettuati@58g%r"), &tot_vers);
else
if (_is_visliq) rw++;
const real iva = risultato + interessi;
if (_month == 13 && credito_compensabile)
{
real credito_utilizzabile = lia.get_real("R0");
@ -2506,7 +2511,10 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw)
set_row(rw++,FR("@11g$[r]Versamenti effettuati$[n]@58g%r"), &versamenti);
set_row(rw++, "");
set_row(rw++, "");
}
}
else
if (_month == 13 && !versamenti_interessi.is_zero())
set_row(rw++, FR("@11gVersamenti effettuati interessi @58g%r"), &versamenti_interessi);
if (!_is_visliq)
{
@ -2861,8 +2869,8 @@ bool TLiquidazione_app::set_annual(_DescrItem& d)
set_row(row++,FR("@6gdi cui cessione beni ammortizzabili @69g%r"), &(d._r8));
set_row(row++,FR("C1A - Operazioni esenti di cui all'art.10 n. 27 quinquies @69g%r"), &(d._r7));
set_row(row++,FR("@6gdi cui cessione beni ammortizzabili @69g%r"), &(d._r9));
// set_row(row++, FR("Volume d'affari @69g%r"), &vol_aff);
// set_row(row++, FR("Totale vendite al fine del calcolo del pro-rata @69g%r"), &vol_aff);
// set_row(row++, FR("Volume d'affari @69g%r"), &vol_aff);
// set_row(row++, FR("Totale vendite al fine del calcolo del pro-rata @69g%r"), &vol_aff);
set_print_zero(false);
}

View File

@ -19,7 +19,7 @@
#define F_GESMANCRED 219
#define F_RCDAL 223
#define F_RCAL 224
#define F_PRORATA 225
#define F_PRORATAC 225
#define F_ROUNDLIQ 221
#define F_ROUNDDIC 222

View File

@ -151,7 +151,7 @@ BEGIN
FIELD B6
END
BOOLEAN F_PRORATA
BOOLEAN F_PRORATAC
BEGIN
PROMPT 50 9 "Calcolo Pro rata"
FIELD B7

View File

@ -532,6 +532,48 @@ bool Visliq_app::sel_mese_sh2 (TMask_field& f, KEY k)
return true;
}
bool Visliq_app::calc_int(TMask_field& f, KEY k)
{
if (k == K_TAB && f.dirty())
{
TSheet_field& sv = *app()._vers_sheet;
int sel = sv.selected();
int m = sv.selected() + 1;
if (sv.items() < 12)
{
m *= 3;
if (app().look_lim(m))
{
const real intt = app()._lim->get_real("R10");
if (intt > ZERO) // interessi
{
TExchange c;
real vers(f.get());
real vers_netto = vers * CENTO / (intt + CENTO);
vers_netto.round(c.decimals());
real intr = vers - vers_netto;
round_imposta(intr);
vers = vers_netto + intr;
f.mask().set(106, vers);
f.mask().set(107, intr);
TToken_string& row = sv.row(sel);
row.add(vers, 5);
row.add(intr, 6);
sv.force_update(sel);
}
}
}
}
return true;
}
void Visliq_app::vis_liq()
{
@ -601,7 +643,8 @@ bool Visliq_app::vis_all()
sh.sheet_mask().set_handler(110, check_date);
sv.sheet_mask().set_handler(100, sel_mese_sh2);
sv.sheet_mask().set_handler(106, calc_int);
const bool new_print_2000 = true; // _year >= 2000;
const bool compensabile = _lia->get("S9") == "CM";
TMask& shm = sh.sheet_mask();
@ -1513,7 +1556,7 @@ void Visliq_app::write_liq()
_lim->rewrite();
}
void Visliq_app::write_del()
void Visliq_app::write_del(const real& v)
{
bool wasdel = false;
@ -1522,7 +1565,10 @@ void Visliq_app::write_del()
TString8 cab(_lim->get("S5"));
TString4 con(_lim->get("S6"));
TDate date(_lim->get("D0"));
real vers(_lim->get_real("R8"));
real vers = v;
if (vers == ZERO)
vers = _lim->get_real("R8");
real intr(_lim->get_real("R10"));
if (vers.is_zero() && (wasdel = look_del(month,1)))
@ -1536,14 +1582,18 @@ void Visliq_app::write_del()
look_del(month,1,true); // Crea delega
real inter;
if (!intr.is_zero())
{
// riapplica il tasso di interesse
// se trimestrale e' stato scorporato rispetto all'eventuale input utente
inter = vers*CENTO/(CENTO+intr);
inter = vers - inter;
inter.ceil();
TExchange c;
real vers_netto = vers * CENTO / (intr + CENTO);
vers_netto.round(c.decimals());
inter = vers - vers_netto;
round_imposta(inter);
vers = vers_netto + inter;
}
_del->put("R0",vers);
@ -1671,8 +1721,9 @@ void Visliq_app::read_general(TMask& m)
sh.force_update();
// calcola versamenti
real versamenti[13];
TDate date[13];
real versamenti[13];
real interessi[13];
TDate date[13];
TToken_string banche[13];
for (_del->first(); !_del->eof(); _del->next())
@ -1694,7 +1745,8 @@ void Visliq_app::read_general(TMask& m)
// supercauto
if (m <= 0) continue;
versamenti[m-1] += _del->get_real("R0");
versamenti[m - 1] += _del->get_real("R0");
interessi[m - 1] += _del->get_real("R1");
date[m-1] = _del->get_date("D0");
TToken_string& b = banche[m-1];
b.add(_del->get("S7"),0);
@ -1722,8 +1774,9 @@ void Visliq_app::read_general(TMask& m)
tt.add(banche[i-1].get(0),2); // azienda
tt.add(banche[i-1].get(1),3); // dipendenza
tt.add(banche[i-1].get(2),4); // concessionaria
tt.add(versamenti[i-1].string(),5);// versamenti
tt.add(versamenti[i - 1].string(), 5);// versamenti
tt.add(interessi[i - 1].string(), 6);// interessi
sv.row(-1) = tt;
if (i == 12)
sv.enable_cell(sv.items() - 1, -1, false);
@ -1900,7 +1953,7 @@ void Visliq_app::write_general(TMask& m)
_lim->put("S4", nabi);
_lim->put("S5", ncab);
_lim->put("S6", ncon);
write_del();
write_del(nvers);
vr_mod = true;
}

View File

@ -60,7 +60,8 @@ protected:
static bool sel_mese_sh1 (TMask_field&, KEY);
static bool enable_date (TMask_field&, KEY);
static bool check_date (TMask_field&, KEY);
static bool sel_mese_sh2 (TMask_field&, KEY);
static bool sel_mese_sh2(TMask_field&, KEY);
static bool calc_int(TMask_field&, KEY);
static bool ch_year_handler(TMask_field& f, KEY key);
static const char* link_handler(TMask&, int, const char*, bool doubleclick);
@ -85,7 +86,7 @@ public:
void read_general(TMask& m);
void write_general(TMask& m);
void write_liq();
void write_del();
void write_del(const real &v = ZERO);
void set_freqviva();
void set_freqviva(const char* f) { _freqviva = f; }

View File

@ -108,6 +108,7 @@ BEGIN
ITEM "CAB@5"
ITEM "Conc.@5"
ITEM "Versamenti@15"
ITEM "Interessi@15"
END
ENDPAGE
@ -311,6 +312,14 @@ BEGIN
PROMPT 1 6 "Versamenti "
END
CURRENCY 107 15
BEGIN
PROMPT 1 6 "Interessi "
FLAGS "RD"
END
BUTTON 100 10 2
BEGIN
PROMPT -11 -1 "Dettaglio"

View File

@ -84,6 +84,7 @@ BEGIN
ITEM "CAB@5"
ITEM "Conc.@5"
ITEM "Versamenti@15"
ITEM "Interessi@15"
END
ENDPAGE
@ -259,6 +260,12 @@ BEGIN
FLAGS "R"
END
CURRENCY 107 15
BEGIN
PROMPT 1 6 "Interessi "
FLAGS "RD"
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 ""