From 8b840eb174066d2e1e525804ec38df8324e9b05a Mon Sep 17 00:00:00 2001 From: villa Date: Mon, 24 Jul 1995 10:32:59 +0000 Subject: [PATCH] Non e' ver che sia la fame il peggior di tutti i mali per noi poveri mortali che siam stanchi di bonaz git-svn-id: svn://10.65.10.50/trunk@1635 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cg4300.h | 14 +++----- cg/cg4304.cpp | 27 +++++++++----- cg/cg5500.cpp | 98 ++++++++++++++++++++++++++++++--------------------- cg/cg5500.h | 1 + 4 files changed, 82 insertions(+), 58 deletions(-) diff --git a/cg/cg4300.h b/cg/cg4300.h index 3a3e22562..2f8e375e2 100755 --- a/cg/cg4300.h +++ b/cg/cg4300.h @@ -138,16 +138,12 @@ class _DescrItem : public TObject { public: word _flags; - word _f0, _f1, _f2, - _f3; - TString _s0, _s1, _s2, - _s3, _s4, _s5; - real _r0, _r1, _r2, - _r3, _r4, _r5, - _r6, _r7, _r8, - _r9, _r10,_r11; + word _f0, _f1, _f2, _f3; + TString _s0, _s1, _s2, _s3, _s4, _s5; + real _r0, _r1, _r2, _r3, _r4, _r5, + _r6, _r7, _r8, _r9, _r10,_r11; TArray _arr; - TDate _d0; + TDate _d0; _DescrItem(word f) : _f0(0), _f1(0), _f2(0) { _flags = f; } diff --git a/cg/cg4304.cpp b/cg/cg4304.cpp index 5fa283438..2152d8615 100755 --- a/cg/cg4304.cpp +++ b/cg/cg4304.cpp @@ -748,9 +748,14 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts, d->_s0 = tt; d->_s1 = _lim->get_real("R11").string(); d->_s2 = _lim->get_real("R12").string(); - d->_s3 = _lim->get_real("R13").string(); - d->_s4 = _lim->get("S0"); - d->_s5 = _lim->get("S1"); + d->_s3 = _lim->get_real("R13").string(); + + // descrizione rettifiche + if (month < 13) + { + d->_s4 = _lim->get("S0"); + d->_s5 = _lim->get("S1"); + } d->_r11 = (const char*)_lim->get("R10"); // tasso di interesse d->_f1 = is_first_month(month); @@ -1298,12 +1303,7 @@ void TLiquidazione_app::set_grand(_DescrItem& d) set_row(rw++,"%s@11gRettifiche IVA a credito%s@58g%r", _is_visliq ? "$[r]" : "", _is_visliq ? "$[n]" : "", &rett_cred); - if (_is_visliq) - { - // stampa ad uso visualizzazione liquidazione IVA - set_row(rw++,"@11g$[r]Versamenti effettuati$[n]@58g%r", &versamenti); - } - else + if (!_is_visliq) { // versamenti effettuati if (!versamenti.is_zero()) @@ -1355,6 +1355,15 @@ void TLiquidazione_app::set_grand(_DescrItem& d) } } + if (_is_visliq) + { + // stampa versamenti (anche 0) ad uso visualizzazione liquidazione IVA + rw ++; + set_row(rw++,"@11g$[r]Versamenti effettuati$[n]@58g%r", &versamenti); + set_row(rw++, ""); + set_row(rw++, ""); + } + if (!_is_visliq) { // descrizione rettifiche diff --git a/cg/cg5500.cpp b/cg/cg5500.cpp index b6dbba522..eaedbba5d 100755 --- a/cg/cg5500.cpp +++ b/cg/cg5500.cpp @@ -342,6 +342,8 @@ bool Visliq_app::sel_mese_sh1 (TMask_field& f, KEY k) TMask& m = *(app().get_main_mask()); TSheet_field& sh = (TSheet_field&)m.field(F_VISLIQ1); + TSheet_field& sv = (TSheet_field&)m.field(F_VISLIQ2); + int sel = sh.selected(); int month = sh.selected()+1; TToken_string& tt = sh.row(sh.selected()); if (sh.items() == 4) month *= 3; @@ -367,6 +369,17 @@ bool Visliq_app::sel_mese_sh1 (TMask_field& f, KEY k) sm.field(104).set(tt.get(3)); sm.field(105).set(tt.get(4)); sm.field(106).set(tt.get(5)); + + if (app().look_del(month,1)) + { + TToken_string& tv = sv.row(sel == (sh.items() - 1) ? sel -1 : sel); + tv.add(app().del()->get("D0"),1); + tv.add(app().del()->get("S7"),2); + tv.add(app().del()->get("S8"),3); + tv.add(app().del()->get("S9"),4); + tv.add(app().del()->get("R0"),5); + sv.force_update(sel == (sh.items() - 1) ? sel -1 : sel); + } return TRUE; } @@ -378,6 +391,7 @@ bool Visliq_app::sel_mese_sh2 (TMask_field& f, KEY k) TMask& m = *(app().get_main_mask()); TSheet_field& sh = (TSheet_field&)m.field(F_VISLIQ2); + int sel = sh.selected(); int month = sh.selected()+1; if (sh.items() < 12) month *= 3; @@ -399,6 +413,17 @@ bool Visliq_app::sel_mese_sh2 (TMask_field& f, KEY k) if (ok) app().vis_one(month); + TMask& sv = sh.sheet_mask(); + + if (app().look_del(month, sel == (sh.items() - 1) ? 7 : 1)) + { + sv.field(102).set(app().del()->get("D0")); + sv.field(103).set(app().del()->get("S7")); + sv.field(104).set(app().del()->get("S8")); + sv.field(105).set(app().del()->get("S9")); + sv.field(106).set(app().del()->get("R0")); + } + return TRUE; } @@ -674,13 +699,13 @@ bool Visliq_app::vis_one(int m) if (msk.field(F_DELIMP).dirty()) { real itt = _lim->get_real("R10"); - if (!itt.is_zero()) - { - // uso importi al netto degli interessi - // (vengono riapplicati dopo in write_del) - n_vers = n_vers/((itt+real(100.0))/real(100.0)); - n_vers.round(0); - } + // if (!itt.is_zero()) + // { + // uso importi al netto degli interessi + // (vengono riapplicati dopo in write_del) + // n_vers = n_vers/((itt+real(100.0))/real(100.0)); + // n_vers.round(0); + // } vers = n_vers; d_mod = TRUE; } @@ -1012,12 +1037,13 @@ void Visliq_app::write_del() if (!wasdel) look_del(month,1,TRUE); + real inter(0.0); + // riapplica il tasso di interesse // se trimstrale e' stato scorporato rispetto // all'eventuale input utente - real inter = vers*(intr/real(100.0)); + inter = vers/(real(100.0)/(real(100.0)+intr)); inter.ceil(); - vers += inter; _del->put("R0",vers); _del->put("R1",inter); @@ -1169,6 +1195,7 @@ void Visliq_app::write_general(TMask& m) // indicatore ricalcolo crediti e debiti OK int step = _freqviva == "M" ? 1 : 3; bool carry = TRUE; + bool was_lim; for (int i = step; i < 13; i += step) { @@ -1240,7 +1267,7 @@ void Visliq_app::write_general(TMask& m) TString aocon (vo.get(4)); TString ancon (vn.get(4)); - if (!look_lim(i)) + if (!(was_lim = look_lim(i))) // blocca riporto crediti e debiti carry = FALSE; @@ -1289,20 +1316,6 @@ void Visliq_app::write_general(TMask& m) // e crea/aggiorna le deleghe if (nvers != overs) { - real itt = _lim->get_real("R10"); - if (!itt.is_zero()) - { - // uso importi al netto degli interessi - // (vengono riapplicati dopo in write_del) - nvers = nvers/((itt+real(100.0))/real(100.0)); - // overs = overs/((itt+real(100.0))/real(100.0)); - nvers.round(0); - // overs.round(0); - } - // risc -= overs; - // risc += nvers; - // risl += overs; - // risl -= nvers; vr_mod = TRUE; } if (vr_mod || ndate != odate || nabi != oabi || @@ -1411,27 +1424,32 @@ void Visliq_app::write_general(TMask& m) else { // salva i valori modificati senza fare controlli - // e rimetti a lui i suoi debiti mettendo B0 a FALSE - if (orett != nrett) - _lim->put("R5", nrett); - if (orimb != nrimb) - _lim->put("R1", nrimb); - _lim->put("B0", ""); - _lim->rewrite(); + // e rimetti a lui i suoi debiti mettendo B0 a FALSE + if (was_lim) + { + if (orett != nrett) + _lim->put("R5", nrett); + if (orimb != nrimb) + _lim->put("R1", nrimb); + _lim->put("B0", ""); + _lim->rewrite(); + } } // Rimetti a posto righe sheet se serve -int sr0 = (_lim->get_real("R0")).sign(); -int sr5 = (_lim->get_real("R5")).sign(); +if (was_lim) +{ + int sr0 = (_lim->get_real("R0")).sign(); + int sr5 = (_lim->get_real("R5")).sign(); -tt_ln.add(abs(_lim->get_real("R0")).string(),1); -tt_ln.add(sr0 == 0 ? "" : (sr0 > 0 ? "D" : "C"), 2); -tt_ln.add((_lim->get_real("R1")).string(),3); -tt_ln.add(abs(_lim->get_real("R5")).string(),4); -tt_ln.add(sr5 == 0 ? "" : (sr5 > 0 ? "D" : "C"),5); - -sh.force_update(row); + tt_ln.add(abs(_lim->get_real("R0")).string(),1); + tt_ln.add(sr0 == 0 ? "" : (sr0 > 0 ? "D" : "C"), 2); + tt_ln.add((_lim->get_real("R1")).string(),3); + tt_ln.add(abs(_lim->get_real("R5")).string(),4); + tt_ln.add(sr5 == 0 ? "" : (sr5 > 0 ? "D" : "C"),5); + sh.force_update(row); +} } // for mese liq. (riga sheet) // Rileggi array righe vecchie diff --git a/cg/cg5500.h b/cg/cg5500.h index 9f8950b36..9d908e814 100755 --- a/cg/cg5500.h +++ b/cg/cg5500.h @@ -90,6 +90,7 @@ public: // 2 palle TMask* get_main_mask() { return _mask; } bool select_butt(TMask& m); + TTable* del() { return _del; } // riaggiusta la liquidazione del mese dato void recalc_liq_data(TViswin* v, real& rimb, real& rett, real& vers,