diff --git a/src/cg/cg5500.cpp b/src/cg/cg5500.cpp index fcead0086..7ffd957a8 100755 --- a/src/cg/cg5500.cpp +++ b/src/cg/cg5500.cpp @@ -423,11 +423,11 @@ bool Visliq_app::sel_mese_sh1 (TMask_field& f, KEY k) if (sm.is_running()) { // TBC controllare se sono i dati giusti in tt - sm.field(102).set(tt.get(1)); - sm.field(103).set(tt.get(2)); - sm.field(104).set(tt.get(3)); - sm.field(105).set(tt.get(4)); - sm.field(106).set(tt.get(5)); + sm.field(S_RISULTATO).set(tt.get(cid2index(S_RISULTATO))); + sm.field(S_DEBCRED1 ).set(tt.get(cid2index(S_DEBCRED1))); + sm.field(S_RIMBORSO).set(tt.get(cid2index(S_RIMBORSO))); + sm.field(S_RETTIFICHE).set(tt.get(cid2index(S_RETTIFICHE))); + sm.field(S_DEBCRED2).set(tt.get(cid2index(S_DEBCRED2))); } sh.row(sel) = tt; @@ -436,13 +436,14 @@ bool Visliq_app::sel_mese_sh1 (TMask_field& f, KEY k) 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); + const int nrow = sel == (sh.items() - 1) ? sel - 1 : sel; + + sv.set_row_cell(S_DATA, app().del()->get("D0"), nrow); + sv.set_row_cell(S_ABI, app().del()->get("S7"), nrow); + sv.set_row_cell(S_CAB, app().del()->get("S8"),nrow); + sv.set_row_cell(S_CONC, app().del()->get("S9"),nrow); + sv.set_row_cell(S_VERSAMENTO, app().del()->get("R0"), nrow); + sv.force_update(nrow); } return true; @@ -452,11 +453,11 @@ bool Visliq_app::enable_date(TMask_field& f, KEY k) { if (k == K_TAB && (f.focusdirty()|| !f.mask().is_running())) { - const bool enable = f.mask().get(104).full() || f.mask().get(109).full(); + const bool enable = f.mask().get(S_RIMBORSO).full() || f.mask().get(S_CREDF24).full(); - f.mask().enable(110, enable); + f.mask().enable(S_DATAAUT, enable); if (!enable) - f.mask().set(110, ""); + f.mask().set(S_DATAAUT, ""); } return true; } @@ -1657,19 +1658,25 @@ void Visliq_app::read_general(TMask& m) const real r1 = _lim->get_real("R1"); const real r5 = _lim->get_real("R5"); const int row = sh.set_row_cell(S_MESE, itoname(i)); - + const TString debcred1 = ris == ZERO ? "" : (ris > ZERO ? "D" : "C"); + real r0 = _lim->get_real("R0"); + const TString debcred3 = r0 == ZERO ? "" : (r0 > ZERO ? "D" : "C"); + + sh.set_row_cell(S_IVA, abs(r0), row); + sh.set_row_cell(S_DEBCRED3, debcred3, row); sh.set_row_cell(S_RISULTATO, abs(ris), row); - sh.set_row_cell(S_DEBCRED1, ris == ZERO ? "" : (ris > ZERO ? "D" : "C"), row); + sh.set_row_cell(S_DEBCRED1, debcred1, row); sh.set_row_cell(S_RIMBORSO, r1, row); sh.set_row_cell(S_RETTIFICHE, abs(r5), row); sh.set_row_cell(S_DEBCRED2, r5 == ZERO ? "" : (r5 > ZERO ? "D" : "C"), row); - const real criva = _lim->get_real("R15"); + const real criva = debcred1 == "C" ? ZERO : _lim->get_real("R15"); const real crf24 = _lim->get_real("R16"); const real autf24 = _lim->get_real("R20"); bool enable_date = r1 != ZERO; sh.set_row_cell(S_CREDIVA, criva, row); + sh.enable_cell(row, S_CREDIVA, debcred3 == "D"); sh.set_row_cell(S_CREDF24PRE,crf24, row); sh.set_row_cell(S_CREDF24, autf24 , row); enable_date |= autf24 != ZERO; @@ -1698,11 +1705,6 @@ void Visliq_app::read_general(TMask& m) } else sh.set_row_cell(S_CREDRES, ZERO, row); - - real r0 = _lim->get_real("R0"); - - sh.set_row_cell(S_IVA, abs(r0).string(), row); - sh.set_row_cell(S_DEBCRED3, r0 == ZERO ? "" : (r0 > ZERO ? "D" : "C"), row); sh.set_row_cell(S_DESCR, _lim->get("S3"), row); // sh.row(row) = (*tt); } @@ -1819,12 +1821,12 @@ void Visliq_app::write_general(TMask& m) bool vfrommask = sv.selected() == (i == 12 ? row + 1 : row) && svm.is_running(); TToken_string& tt_lo = (TToken_string&)_liq_rows[row]; - TToken_string& tt_ln = sh.row(row); +// TToken_string& tt_ln = sh.row(row); // risolve menata del dettaglio si'/no if (lfrommask) for (int i = 1; i <= 13; i++) - tt_ln.add(shm.get(101+i),i); + sh.set_row_cell(101 + i, shm.get(101+i), row); // saltare una riga se dicembre (riga 11 == acconto) TToken_string& tt_vo = (TToken_string&)_vers_rows[i == 12 ? row + 1 : row]; @@ -1833,7 +1835,7 @@ void Visliq_app::write_general(TMask& m) if (vfrommask) { for (int i = 1; i <= 5; i++) - tt_vn.add(svm.get(101+i),i); + sh.set_row_cell(101 + i, svm.get(101+i), row); } // traduci contenuto righe in real pila @@ -1841,7 +1843,6 @@ void Visliq_app::write_general(TMask& m) real nrett(sh.get_real_row_cell(row, S_RETTIFICHE)); real orimb(tt_lo.get(cid2index(S_RIMBORSO))); real nrimb(sh.get_real_row_cell(row, S_RIMBORSO)); - real crcode(sh.get_real_row_cell(row, S_CREDIVA)); real crf24(sh.get_real_row_cell(row, S_CREDF24PRE)); real oautf24(tt_lo.get(cid2index(S_CREDF24))); real autf24(sh.get_real_row_cell(row, S_CREDF24)); @@ -1852,8 +1853,8 @@ void Visliq_app::write_general(TMask& m) real overs(tt_vo.get(cid2index(S_VERSAMENTO))); real nvers(sv.get_real_row_cell(row, S_VERSAMENTO)); - TDate odate(tt_vo.get(cid2index(S_DATAAUT))); - TDate ndate(sv.get_date_row_cell(row, S_DATAAUT)); + TDate odate(tt_vo.get(cid2index(S_DATA))); + TDate ndate(sv.get_date_row_cell(row, S_DATA)); TString8 oabi(tt_vo.get(cid2index(S_ABI))); TString8 nabi(sv.get_str_row_cell(row, S_ABI)); TString8 ocab(tt_vo.get(cid2index(S_CAB))); @@ -2047,16 +2048,16 @@ void Visliq_app::write_general(TMask& m) round_imposta(intr); _lim->put("R14",intr); } - if (gestione_manuale) - _lim->put("R15", crcode); - _lim->put("R16", crf24); _lim->put("R20", autf24); _lim->put("D1", dautf24); if (compensabile) { - const real criva(tt_ln.get(6)); + if (row == 3) + int i = 1; + const real criva(sh.get_real_row_cell(row, S_CREDIVA)); + cr_res += autf24; cr_res -= crf24; cr_res -= criva; @@ -2064,7 +2065,9 @@ void Visliq_app::write_general(TMask& m) sh.set_back_and_fore_color(COLOR_LTYELLOW, COLOR_DKRED, row, 7); else sh.set_back_and_fore_color(NORMAL_BACK_COLOR, NORMAL_COLOR, row, 7); - } + if (gestione_manuale) + _lim->put("R15", criva); + } _lim->put("S3", descr); _lim->rewrite(); @@ -2099,25 +2102,21 @@ void Visliq_app::write_general(TMask& m) const real iva_acq = _lam->get_real("R1"); // IVA vendite const real ris = iva_ven - iva_acq; - tt_ln.add(abs(ris).string(), 1); - tt_ln.add(ris == 0 ? "" : (ris > 0 ? "D" : "C"), 2); + sh.set_row_cell(S_RISULTATO, abs(ris), row); + sh.set_row_cell(S_DEBCRED1, ris == ZERO ? "" : (ris > ZERO ? "D" : "C"), row); - tt_ln.add((_lim->get_real("R1")).string(),3); + sh.set_row_cell( S_RIMBORSO, _lim->get_real("R1"), row); - int sr5 = (_lim->get_real("R5")).sign(); - real r5abs = abs(_lim->get_real("R5")); + real r5 = (_lim->get_real("R5")); - tt_ln.add(r5abs.string(),4); - tt_ln.add(sr5 == 0 ? "" : (sr5 > 0 ? "D" : "C"),5); - if ( cr_res < ZERO) - tt_ln.add("",10); - else - tt_ln.add(cr_res.string(), 10); + sh.set_row_cell(S_RETTIFICHE, abs(r5), row); + sh.set_row_cell(S_DEBCRED2, r5 == ZERO ? "" : (r5 > ZERO? "D" : "C"), row); + sh.set_row_cell(S_CREDRES, cr_res < ZERO ? ZERO : cr_res, row); real r0 = _lim->get_real("R0"); - tt_ln.add(abs(r0).string(), 11); - tt_ln.add(r0 == ZERO ? "" : (r0 > ZERO ? "D" : "C"), 12); + sh.set_row_cell(S_IVA, abs(r0), row); + sh.set_row_cell(S_DEBCRED3, r0 == ZERO ? "" : (r0 > ZERO ? "D" : "C"), row); } _from_one = false; } // for mese liq. (riga sheet)