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, real _r0, _r1, _r2, _r3, _r4, _r5, _r6, _r7, _r8, _r9,
_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, _r34;
real _ra0, _ra1, _ra2, _ra3, _ra4 ,_ra5, _ra6, _ra7, _ra8; real _ra0, _ra1, _ra2, _ra3, _ra4 ,_ra5, _ra6, _ra7, _ra8;
TArray _arr; TArray _arr;
TDate _d0, _d1; TDate _d0, _d1;
@ -304,6 +304,7 @@ class TLiquidazione_app : public TPrint_application
int _monthinatt; // mese inizio attivita' (serve per differita) int _monthinatt; // mese inizio attivita' (serve per differita)
bool _lim_cleared; bool _lim_cleared;
bool _definitiva; bool _definitiva;
bool _is_liq_acconto;
bool _end_cassa; bool _end_cassa;
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;

View File

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

View File

@ -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 else // Nuova selezione dal 1998 in poi
{ {
if (month <= 12) 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 else // Annuale, month == 13
return (regyear == year && liqmonth != 12) || (regyear == year + 1 && liqmonth == 12); 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; ret += importo_dovuto_arrotondato;
//gli interessi vengono memorizzati solo se si //gli interessi vengono memorizzati solo se si
//devono pagare (=> nessun controllo su intra) //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 if (!intr)
ret -= interessi; // al netto degli interessi 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 // In caso di 13a liq e per trimestrali... devo fare la somma
// degli importi netti dovuti, ecco perche' leggo R2, // degli importi netti dovuti, ecco perche' leggo R2,
// perche togliendo poi gli interessi ottengo il dovuto netto! // perche togliendo poi gli interessi ottengo il dovuto netto!

View File

@ -1297,6 +1297,7 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts, _DescrItem*
// analogamente in Visualizzazione ma solo nel caso dell'annuale. // analogamente in Visualizzazione ma solo nel caso dell'annuale.
// In tutti gli altri casi va a cercare la delega // 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) if (_month == 13)
{ {
@ -2296,6 +2297,7 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw)
const real& detrazioni = d._r6; const real& detrazioni = d._r6;
const real& interessi = d._r7; const real& interessi = d._r7;
const real& versamenti = d._r8; const real& versamenti = d._r8;
const real& versamenti_interessi = d._r34;
const real& vers_int = d._r9; const real& vers_int = d._r9;
real diffinc_iva = d._ra5; 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); set_row(rw++,FR("@11gInteressi dovuti per liquidazioni trimestrali %6.2r%%@75g%r"),&interesse, &interessi);
else else
if (_is_visliq) rw++; if (_is_visliq) rw++;
if (!acc_dec.is_zero()) if (!acc_dec.is_zero())
set_row(rw++,FR("%s@11gAcconto versato%s@58g%r"), set_row(rw++,FR("%s@11gAcconto versato%s@58g%r"),
_is_visliq ? "$[r]" : "", _is_visliq ? "$[n]" : "", &acc_dec); _is_visliq ? "$[r]" : "", _is_visliq ? "$[n]" : "", &acc_dec);
else else
if (_is_visliq) rw++; if (_is_visliq) rw++;
// versamenti effettuati // versamenti effettuati
if (!versamenti.is_zero() && (_month==13 || !_is_visliq)) if (!versamenti.is_zero() && (_month == 13 || !_is_visliq))
set_row(rw++,FR("@11gVersamenti effettuati@58g%r"), &versamenti); set_row(rw++, FR("@11gVersamenti effettuati@58g%r"), &versamenti);
else else
if (_is_visliq) rw++; if (_is_visliq) rw++;
// versamenti integrativi // versamenti integrativi
if (!vers_int.is_zero() && !_is_visliq) if (!vers_int.is_zero() && !_is_visliq)
set_row(rw++,FR("@11gVersamenti integrativi@58g%r"), &vers_int); set_row(rw++,FR("@11gVersamenti integrativi@58g%r"), &vers_int);
else else
if (_is_visliq) rw++; 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) if (_month == 13 && credito_compensabile)
{ {
real credito_utilizzabile = lia.get_real("R0"); real credito_utilizzabile = lia.get_real("R0");
@ -2507,6 +2512,9 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw)
set_row(rw++, ""); set_row(rw++, "");
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) 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("@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("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("@6gdi cui cessione beni ammortizzabili @69g%r"), &(d._r9));
// set_row(row++, FR("Volume d'affari @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_row(row++, FR("Totale vendite al fine del calcolo del pro-rata @69g%r"), &vol_aff);
set_print_zero(false); set_print_zero(false);
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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