Patch level : 12.0 1032
Files correlati : cg5.exe Commento : Corretto salvataggio versamenti a saldo di dicembre e scorporo interessi sui versamenti dei trimestrali.
This commit is contained in:
parent
e5c7066e37
commit
802beb8639
@ -398,7 +398,7 @@ bool Visliq_app::sel_mese_sh1 (TMask_field& f, KEY k)
|
|||||||
if (sh.items() == 5)
|
if (sh.items() == 5)
|
||||||
month *= 3;
|
month *= 3;
|
||||||
|
|
||||||
if (month >13)
|
if (month > 13)
|
||||||
month = 13;
|
month = 13;
|
||||||
|
|
||||||
if (sm.is_running() && !sm.stop_run(K_ENTER))
|
if (sm.is_running() && !sm.stop_run(K_ENTER))
|
||||||
@ -426,7 +426,7 @@ bool Visliq_app::sel_mese_sh1 (TMask_field& f, KEY k)
|
|||||||
|
|
||||||
app().set_liq_rows(sh);
|
app().set_liq_rows(sh);
|
||||||
|
|
||||||
if (sm.is_running())
|
/*if (sm.is_running())
|
||||||
{
|
{
|
||||||
// TBC controllare se sono i dati giusti in tt
|
// TBC controllare se sono i dati giusti in tt
|
||||||
sm.field(S_RISULTATO).set(tt.get(cid2index(S_RISULTATO)));
|
sm.field(S_RISULTATO).set(tt.get(cid2index(S_RISULTATO)));
|
||||||
@ -450,7 +450,7 @@ bool Visliq_app::sel_mese_sh1 (TMask_field& f, KEY k)
|
|||||||
sv.set_row_cell(S_CONC, app().del()->get("S9"), nrow);
|
sv.set_row_cell(S_CONC, app().del()->get("S9"), nrow);
|
||||||
sv.set_row_cell(S_VERSAMENTO, app().del()->get("R0"), nrow);
|
sv.set_row_cell(S_VERSAMENTO, app().del()->get("R0"), nrow);
|
||||||
sv.force_update(nrow);
|
sv.force_update(nrow);
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -548,28 +548,24 @@ bool Visliq_app::sel_mese_sh2 (TMask_field& f, KEY k)
|
|||||||
|
|
||||||
bool Visliq_app::calc_int(TMask_field& f, KEY k)
|
bool Visliq_app::calc_int(TMask_field& f, KEY k)
|
||||||
{
|
{
|
||||||
if (k == K_TAB && f.dirty())
|
if (f.running_check(k) && app()._freqviva == "T")
|
||||||
{
|
{
|
||||||
TSheet_field& sv = *app()._vers_sheet;
|
TSheet_field& sv = *app()._vers_sheet;
|
||||||
|
const int sel = sv.selected();
|
||||||
|
int m = (sv.selected() + 1) * 3;
|
||||||
|
|
||||||
int sel = sv.selected();
|
if (m > 12)
|
||||||
int m = sv.selected() + 1;
|
m = 12;
|
||||||
if (sv.items() < 12)
|
if (app().look_lim(m))
|
||||||
{
|
|
||||||
m *= 3;
|
|
||||||
if (app().look_lim(m))
|
|
||||||
{
|
{
|
||||||
const real intt = app()._lim->get_real("R10");
|
const real intt = app()._lim->get_real("R10");
|
||||||
|
TExchange c;
|
||||||
if (intt > ZERO) // interessi
|
|
||||||
{
|
|
||||||
TExchange c;
|
|
||||||
real vers(f.get());
|
real vers(f.get());
|
||||||
real vers_netto = vers * CENTO / (intt + CENTO);
|
real vers_netto = vers * CENTO / (intt + CENTO);
|
||||||
|
|
||||||
vers_netto.round(c.decimals());
|
vers_netto.round(c.decimals());
|
||||||
|
|
||||||
real intr = vers - vers_netto;
|
real intr = vers - vers_netto;
|
||||||
|
|
||||||
round_imposta(intr);
|
round_imposta(intr);
|
||||||
vers = vers_netto + intr;
|
vers = vers_netto + intr;
|
||||||
@ -581,9 +577,7 @@ bool Visliq_app::calc_int(TMask_field& f, KEY k)
|
|||||||
sv.set_row_cell(row, S_VERSAMENTO, vers);
|
sv.set_row_cell(row, S_VERSAMENTO, vers);
|
||||||
sv.set_row_cell(row, S_INTERESSI, intr);
|
sv.set_row_cell(row, S_INTERESSI, intr);
|
||||||
sv.force_update(sel);
|
sv.force_update(sel);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -926,7 +920,7 @@ bool Visliq_app::vis_one(int m)
|
|||||||
if (k == K_SAVE)
|
if (k == K_SAVE)
|
||||||
{
|
{
|
||||||
{ write_liq(); recalc_next_liq(m, _liq_sheet, _vers_sheet); }
|
{ write_liq(); recalc_next_liq(m, _liq_sheet, _vers_sheet); }
|
||||||
if (d_mod) { write_del(m); }
|
if (d_mod) { write_del(m, 1); }
|
||||||
l_mod = d_mod = false;
|
l_mod = d_mod = false;
|
||||||
recorded = true;
|
recorded = true;
|
||||||
}
|
}
|
||||||
@ -938,7 +932,7 @@ bool Visliq_app::vis_one(int m)
|
|||||||
if (kk == K_YES)
|
if (kk == K_YES)
|
||||||
{
|
{
|
||||||
if (l_mod) { write_liq(); recalc_next_liq(m, _liq_sheet, _vers_sheet); }
|
if (l_mod) { write_liq(); recalc_next_liq(m, _liq_sheet, _vers_sheet); }
|
||||||
if (d_mod) { write_del(m); }
|
if (d_mod) { write_del(m, 1); }
|
||||||
l_mod = d_mod = false;
|
l_mod = d_mod = false;
|
||||||
recorded = true;
|
recorded = true;
|
||||||
}
|
}
|
||||||
@ -1139,9 +1133,9 @@ void Visliq_app::recalc_liq_data(TViswin* vsw, real& rimb, real& rett, real& ver
|
|||||||
_lim->put("B0", "X");
|
_lim->put("B0", "X");
|
||||||
}
|
}
|
||||||
|
|
||||||
real intr;
|
real intr = itt;
|
||||||
|
|
||||||
if (!itt.is_zero() && risul > ZERO)
|
if (_freqviva == "T" && itt != ZERO && risul > ZERO)
|
||||||
{
|
{
|
||||||
// calcola interesse
|
// calcola interesse
|
||||||
intr = risul * itt / CENTO;
|
intr = risul * itt / CENTO;
|
||||||
@ -1472,13 +1466,14 @@ void Visliq_app::recalc_next_liq(int start_month, TSheet_field* sl, TSheet_field
|
|||||||
_lim->put("R0", risl);
|
_lim->put("R0", risl);
|
||||||
_lim->put("R12", risc);
|
_lim->put("R12", risc);
|
||||||
_lim->put("R13", risd);
|
_lim->put("R13", risd);
|
||||||
if (intt > ZERO) // interessi
|
if (_freqviva == "T" && intt > ZERO) // interessi
|
||||||
{
|
{
|
||||||
real intr = risl * intt / real(100.0);
|
intt = risl * intt / CENTO;
|
||||||
if (_year >= 2000)
|
if (_year >= 2000)
|
||||||
round_imposta(intr);
|
round_imposta(intt);
|
||||||
_lim->put("R14",intr);
|
|
||||||
}
|
}
|
||||||
|
_lim->put("R14", intt);
|
||||||
_lim->put("R16", crf24);
|
_lim->put("R16", crf24);
|
||||||
_lim->put("R20", autf24);
|
_lim->put("R20", autf24);
|
||||||
|
|
||||||
@ -1563,36 +1558,23 @@ void Visliq_app::recalc_next_liq(int start_month, TSheet_field* sl, TSheet_field
|
|||||||
look_lim(start_month);
|
look_lim(start_month);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Visliq_app::write_del(const int month, const char * codabi, const char * codcab, const char * codcon,
|
void Visliq_app::write_del(const int month, const int tipodel, const char * codabi, const char * codcab, const char * codcon,
|
||||||
const TDate & d, const real& v, const real& i, bool stampato)
|
const TDate & d, const real& v, const real& i, bool stampato)
|
||||||
{
|
{
|
||||||
int tipodel = 1;
|
const bool wasdel = look_del(month, tipodel, true);
|
||||||
|
|
||||||
if (month == 12)
|
|
||||||
tipodel = 7;
|
|
||||||
else
|
|
||||||
if (month == 13)
|
|
||||||
tipodel = 2;
|
|
||||||
const bool wasdel = look_del(month, tipodel);
|
|
||||||
TString8 abi(codabi == nullptr ? _lim->get("S4") : codabi);
|
TString8 abi(codabi == nullptr ? _lim->get("S4") : codabi);
|
||||||
TString8 cab(codcab == nullptr ? _lim->get("S5") : codcab);
|
TString8 cab(codcab == nullptr ? _lim->get("S5") : codcab);
|
||||||
TString4 con(codcon == nullptr ? _lim->get("S6") : codcon);
|
TString4 con(codcon == nullptr ? _lim->get("S6") : codcon);
|
||||||
TDate date(d == TDate(NULLDATE) ? _lim->get_date("D0") : d);
|
TDate date(d == TDate(NULLDATE) ? _lim->get_date("D0") : d);
|
||||||
const real vers(v >= ZERO ? v : _lim->get_real("R8"));
|
const real vers(v >= ZERO ? v : _lim->get_real("R8"));
|
||||||
|
|
||||||
if (!wasdel)
|
|
||||||
{
|
|
||||||
|
|
||||||
look_del(month, tipodel, true); // Crea delega
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vers == ZERO)
|
if (vers == ZERO)
|
||||||
_del->remove();
|
_del->remove();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
real inter = i;
|
real inter = i;
|
||||||
|
|
||||||
if (i == ZERO)
|
if (_freqviva == "T" && i == ZERO)
|
||||||
{
|
{
|
||||||
real percint = _lim->get_real("R10");
|
real percint = _lim->get_real("R10");
|
||||||
|
|
||||||
@ -1731,26 +1713,24 @@ void Visliq_app::read_general(TMask& m)
|
|||||||
|
|
||||||
// uso solo deleghe normali (tipo == 1), annuali (tipo == 2) e acconti (tipo == 7)
|
// uso solo deleghe normali (tipo == 1), annuali (tipo == 2) e acconti (tipo == 7)
|
||||||
int tipod = atoi(*_del_tipo);
|
int tipod = atoi(*_del_tipo);
|
||||||
|
// somma versamenti nel mese adeguato
|
||||||
|
int month = atoi(*_del_mese);
|
||||||
|
|
||||||
if (tipod < 3 || tipod == 7)
|
if (tipod == 1 || tipod == 7)
|
||||||
{
|
{
|
||||||
|
if (month >= 12)
|
||||||
// somma versamenti nel mese adeguato
|
month = tipod == 7 ? 12 : 13;
|
||||||
int m = atoi(*_del_mese);
|
|
||||||
|
|
||||||
if (m >= 12)
|
|
||||||
m = tipod == 7 ? 12 : 13;
|
|
||||||
// supercauto
|
// supercauto
|
||||||
if (m > 0)
|
if (month > 0)
|
||||||
{
|
{
|
||||||
versamenti[m - 1] += _del->get_real("R0");
|
versamenti[month - 1] += _del->get_real("R0");
|
||||||
interessi[m - 1] += _del->get_real("R1");
|
interessi[month - 1] += _del->get_real("R1");
|
||||||
date[m - 1] = _del->get_date("D0");
|
date[month - 1] = _del->get_date("D0");
|
||||||
TToken_string& b = banche[m - 1];
|
TToken_string& b = banche[month - 1];
|
||||||
b.add(_del->get("S7"), 0);
|
b.add(_del->get("S7"), 0);
|
||||||
b.add(_del->get("S8"), 1);
|
b.add(_del->get("S8"), 1);
|
||||||
b.add(_del->get("S9"), 2);
|
b.add(_del->get("S9"), 2);
|
||||||
stampato[m - 1] = _del->get_bool("B0");
|
stampato[month - 1] = _del->get_bool("B0");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1833,7 +1813,7 @@ void Visliq_app::write_general(TMask& m)
|
|||||||
|
|
||||||
for (int i = step; i < last_month; i += step)
|
for (int i = step; i < last_month; i += step)
|
||||||
{
|
{
|
||||||
int m = (i > 12) ? 13 : i;
|
int m = (i > 12) ? 12 : i;
|
||||||
// this is a true bordel
|
// this is a true bordel
|
||||||
const int row = (i/step) - 1;
|
const int row = (i/step) - 1;
|
||||||
|
|
||||||
@ -1890,7 +1870,9 @@ void Visliq_app::write_general(TMask& m)
|
|||||||
if (ndbcr == "C") nrett = -nrett;
|
if (ndbcr == "C") nrett = -nrett;
|
||||||
|
|
||||||
// acconto (si considererà solo a dicembre)
|
// acconto (si considererà solo a dicembre)
|
||||||
|
// crea/aggiorna le deleghe
|
||||||
|
if (nvers != overs || nint != oint || ndate != odate || nabi != oabi || ncab != ocab || ncon != ocon || osta != nsta)
|
||||||
|
write_del(m, i == 12 ? 7 : 1, nabi, ncab, ncon, ndate, nvers, nint, nsta);
|
||||||
was_lim = look_lim(m);
|
was_lim = look_lim(m);
|
||||||
if (!was_lim)
|
if (!was_lim)
|
||||||
carry = false; // blocca riporto crediti e debiti
|
carry = false; // blocca riporto crediti e debiti
|
||||||
@ -1916,8 +1898,6 @@ void Visliq_app::write_general(TMask& m)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ricalcola versamenti se occorre
|
// ricalcola versamenti se occorre
|
||||||
// e crea/aggiorna le deleghe
|
|
||||||
|
|
||||||
if (nvers != overs || nint != oint|| ndate != odate || nabi != oabi || ncab != ocab || ncon != ocon || osta != nsta)
|
if (nvers != overs || nint != oint|| ndate != odate || nabi != oabi || ncab != ocab || ncon != ocon || osta != nsta)
|
||||||
{
|
{
|
||||||
_lim->put("R8", nvers);
|
_lim->put("R8", nvers);
|
||||||
@ -1929,9 +1909,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(m, nabi, ncab, ncon, ndate, nvers, nint, nsta);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// se modificate rettifiche
|
// se modificate rettifiche
|
||||||
// sistemare
|
// sistemare
|
||||||
if (nrett != orett && !_from_one)
|
if (nrett != orett && !_from_one)
|
||||||
@ -2032,13 +2010,14 @@ void Visliq_app::write_general(TMask& m)
|
|||||||
_lim->put("R12", risc);
|
_lim->put("R12", risc);
|
||||||
_lim->put("R13", risd);
|
_lim->put("R13", risd);
|
||||||
|
|
||||||
if (intt > ZERO) // interessi
|
if (_freqviva == "T" && intt > ZERO) // interessi
|
||||||
{
|
{
|
||||||
real intr = risl * intt / real(100.0);
|
intt = risl * intt / CENTO;
|
||||||
if (_year >= 2000)
|
if (_year >= 2000)
|
||||||
round_imposta(intr);
|
round_imposta(intt);
|
||||||
_lim->put("R14",intr);
|
|
||||||
}
|
}
|
||||||
|
_lim->put("R14", intt);
|
||||||
_lim->put("R16", crf24);
|
_lim->put("R16", crf24);
|
||||||
_lim->put("R20", autf24);
|
_lim->put("R20", autf24);
|
||||||
_lim->put("D1", dautf24);
|
_lim->put("D1", dautf24);
|
||||||
|
@ -87,7 +87,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() { _lim->rewrite(); }
|
void write_liq() { _lim->rewrite(); }
|
||||||
void write_del(const int month, const char * codabi = nullptr, const char * codcab = nullptr, const char * codcon = nullptr,
|
void write_del(const int month, const int tipodel, const char * codabi = nullptr, const char * codcab = nullptr, const char * codcon = nullptr,
|
||||||
const TDate & d = TDate(NULLDATE), const real &v = MENOUNO, const real &i = ZERO, bool stampato = false);
|
const TDate & d = TDate(NULLDATE), const real &v = MENOUNO, const real &i = ZERO, bool stampato = false);
|
||||||
|
|
||||||
void set_freqviva();
|
void set_freqviva();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user