From 42279d33b516a25f332a1f8d33194ef2ea657021 Mon Sep 17 00:00:00 2001 From: villa Date: Mon, 9 Jan 1995 12:14:11 +0000 Subject: [PATCH] Sistemata visualizzazione liq. (tutto va tranne 2 kazzatine library-dependent) git-svn-id: svn://10.65.10.50/trunk@835 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cg4300.cpp | 6 ++-- cg/cg5500.cpp | 74 ++++++++++++++++++++++++++++++++++++++------------ cg/cg5500.h | 8 ++++-- cg/cg5500b.uml | 6 +++- cg/cg5500c.uml | 6 +++- cg/cg5500t.h | 18 ++++++++++++ cg/cg5501.cpp | 13 ++++----- 7 files changed, 99 insertions(+), 32 deletions(-) create mode 100755 cg/cg5500t.h diff --git a/cg/cg4300.cpp b/cg/cg4300.cpp index 7e6cc9cbe..b3e46dfcc 100755 --- a/cg/cg4300.cpp +++ b/cg/cg4300.cpp @@ -54,6 +54,7 @@ bool TLiquidazione_app::user_create() if (_is_interactive) pnd = new TProgind (3,"Preparazione archivi\nPrego attendere", FALSE, TRUE, 30); + else begin_wait(); _nditte = new TRelation(LF_NDITTE); _nditte->add(LF_ATTIV,"CODDITTA=CODDITTA"); @@ -176,7 +177,7 @@ bool TLiquidazione_app::user_create() _recalc = needed; TApplication::set_firm(ditta); - if (!look_lia()) return FALSE; + if (!look_lia()) { end_wait(); return FALSE; } _nditte->zero(); _nditte_r->put("CODDITTA", ditta); @@ -195,7 +196,8 @@ bool TLiquidazione_app::user_create() if (is_month_ok(_month)) update_firm(_month); if (_isprint) print(); - TApplication::set_firm(__firm); + TApplication::set_firm(__firm); + end_wait(); } else delete pnd; diff --git a/cg/cg5500.cpp b/cg/cg5500.cpp index be5c4df93..d3a59413c 100755 --- a/cg/cg5500.cpp +++ b/cg/cg5500.cpp @@ -182,8 +182,12 @@ bool Visliq_app::sel_mese_sh1 (TMask_field& f, KEY k) TMask& m = *(((Visliq_app&)main_app()).get_main_mask()); TSheet_field& sh = (TSheet_field&)m.field(F_VISLIQ1); int month = sh.selected()+1; + TToken_string& tt = sh.row(sh.selected()); if (sh.items() == 4) month *= 3; - ((Visliq_app&)main_app()).vis_one(month); + ((Visliq_app&)main_app()).vis_one(month); + ((Visliq_app&)main_app()).look_lim(month); + ((Visliq_app&)main_app()).update_sheet_row(tt); + sh.force_update(); return TRUE; } @@ -199,6 +203,15 @@ bool Visliq_app::sel_mese_sh2 (TMask_field& f, KEY k) return TRUE; } +void Visliq_app::update_sheet_row(TToken_string& t) +{ + t.add(abs(_lim->get_real("R0")).string(),2); + t.add((_lim->get_real("R0")).sign() > 0 ? "D" : "C", 3); + t.add((_lim->get_real("R1")).string(),4); + t.add(abs(_lim->get_real("R5")).string(),5); + t.add((_lim->get_real("R5")).sign() > 0 ? "D" : "C", 3); +} + bool Visliq_app::vis_liq() { long ditta = get_firm(); @@ -234,6 +247,10 @@ bool Visliq_app::vis_all() // mask diverse per trimestrale e annuale TMask m(_freqviva == "M" ? "cg5500b" : "cg5500c"); + + TString abi(5); + TString cab(5); + TString cnc(5); _mask = &m; @@ -279,7 +296,7 @@ bool Visliq_app::vis_all() atoi(*_del_anno) != _year) continue; - // TBC uso solo deleghe normali (tipo == 1) e acconti (tipo == 7) + // uso solo deleghe normali (tipo == 1) e acconti (tipo == 7) int tipod = atoi(*_del_tipo); if (tipod != 1 || tipod != 7) continue; @@ -292,6 +309,9 @@ bool Visliq_app::vis_all() versamenti[m-1] += _del->get_real("R0"); date[m-1] = _del->get_date("D0"); + abi = _del->get("S7"); + cab = _del->get("S8"); + cnc = _del->get("S9"); } TString nomemese(26); @@ -310,11 +330,11 @@ bool Visliq_app::vis_all() tt->add(""); // questo e' il bottone tt->add(nomemese); // mese tt->add(date[i-1].string()); // data vers. - tt->add(""); // TBI azienda - tt->add(""); // TBI dipendenza - tt->add(""); // TBI concessionaria + tt->add(abi); // azienda + tt->add(cab); // dipendenza + tt->add(cnc); // concessionaria tt->add(versamenti[i-1].string());// versamenti - tt->add(versamenti[i-1].sign() < 0 ? "C" : "D"); // debito/credito + tt->add(versamenti[i-1].sign() < 0 ? "C" : "D"); // debito/credito (che senso ha?) sv.row(i-1) = (*tt); } @@ -331,7 +351,9 @@ bool Visliq_app::vis_all() bool Visliq_app::vis_one(int m) { + begin_wait(); TMask msk("cg5500d"); + bool recorded = FALSE; // ricalcolo liquidazione TMessage msg; TFilename f; @@ -384,7 +406,8 @@ bool Visliq_app::vis_one(int m) long line; TExternal_app liq("cg4 -2"); { - TProgind(10l,"Estrazione liquidazione\nPrego attendere", FALSE,FALSE); + end_wait(); + TProgind(10l,"Estrazione liquidazione: prego attendere", FALSE,FALSE); liq.run(); if (liq.error()) @@ -415,14 +438,16 @@ bool Visliq_app::vis_one(int m) if (lrisd == -1l || lrisc == -1l) return FALSE; if (lvers == -1l) lvers = lrisc+1l; + bool write_lia = FALSE, write_lim = FALSE; end_wait(); for(;;) { + begin_wait(); KEY k = msk.run(); - bool write_lia = FALSE, write_lim = FALSE; + end_wait(); - if (k == K_SAVE) // TBI registra: dovra' essere RICALCOLA + if (k == K_INS || k == K_SAVE) // TBI registra: dovra' essere RICALCOLA { real n_acconto (msk.get(F_ACCONTO)); real n_rimborso (msk.get(F_RIMBORSO)); @@ -450,15 +475,20 @@ bool Visliq_app::vis_one(int m) risultato -= rettifica; // vecchia rettifica + // scorporo vecchia + if (rettifica.sign() > 0) + risd -= rettifica; + else + risc += rettifica; + + // incorporo nuova if (msk.get(F_DEBCRE) == "C") { - risc -= rettifica; risc += n_rettifica; n_rettifica = -n_rettifica; } else { - risd -= rettifica; risd += n_rettifica; } @@ -469,7 +499,11 @@ bool Visliq_app::vis_one(int m) _lim->put("R5", n_rettifica); _lim->put("S7", msk.get(F_DEBCRE)); - set_risultato(vsw, lvers, risultato); + + set_risultato(vsw, lvers, risultato); + + // altro giro, altro regalo + rettifica = n_rettifica; } write_lim = TRUE; } @@ -483,7 +517,7 @@ bool Visliq_app::vis_one(int m) risultato -= n_acconto; risc -= acconto; risc += n_acconto; - _lia->put("R4", acconto); + _lia->put("R4", n_acconto); vsw->replace(lrisc, risc.string("###.###.###.###"), 58); set_risultato(vsw, lvers, risultato); } @@ -497,10 +531,11 @@ bool Visliq_app::vis_one(int m) risultato += n_rimborso; risd -= rimborso; risd += n_rimborso; - _lim->put("R1", rimborso); + _lim->put("R1", n_rimborso); vsw->replace(lrisd, risd.string("###.###.###.###"), 75); set_risultato(vsw, lvers, risultato); } + if (msk.field(F_DESCR1).dirty()) { _lim->put("S0", n_desc1); @@ -514,24 +549,27 @@ bool Visliq_app::vis_one(int m) // TBI abilitare ricalcolo liquidazione - if (write_lia && FALSE /* TBI k == K_END */) + if (write_lia && k == K_SAVE) _lia->rewrite(); - if ((write_lim || write_lia) && FALSE /* TBI k == K_END */) + if ((write_lim || write_lia) && k == K_SAVE) { _lim->put("B0", ""); _lim->rewrite(); } + + if (k == K_SAVE) recorded = TRUE; + if (write_lim || write_lia) vsw->refresh(); } -else if (k == K_ESC || k == K_END) break; +else if (k == K_ESC || k == K_QUIT) break; } } remove(f); -return TRUE; +return recorded; } void Visliq_app::set_risultato(TViswin* vsw, long line, real& r) diff --git a/cg/cg5500.h b/cg/cg5500.h index 9c92aff81..6104b276f 100755 --- a/cg/cg5500.h +++ b/cg/cg5500.h @@ -28,9 +28,6 @@ class Visliq_app : public TApplication bool is_trim(int x); bool is_month_ok(int x, int month = -1); - bool look_lia(int year = 0); - bool look_lim(int m); - bool look_del(int month, int type); void set_risultato(TViswin*, long, real&); protected: @@ -50,12 +47,17 @@ protected: static bool sheet_action(int r, KEY k); public: + + bool look_lia(int year = 0); + bool look_lim(int m); + bool look_del(int month, int type); void set_freqviva(); void set_mask_freq(TMask&); void set_year(int y) { _year = y; } TMask* get_main_mask() { return _mask; } + void update_sheet_row(TToken_string& t); // workhorses bool vis_liq(); diff --git a/cg/cg5500b.uml b/cg/cg5500b.uml index 007ccf04a..002f4b135 100755 --- a/cg/cg5500b.uml +++ b/cg/cg5500b.uml @@ -2,7 +2,11 @@ TOOLBAR "" 0 20 0 2 -#include +BUTTON DLG_QUIT 8 2 +BEGIN +PROMPT -11 -1 "" +MESSAGE EXIT,K_QUIT +END ENDPAGE diff --git a/cg/cg5500c.uml b/cg/cg5500c.uml index 992253971..8a686415f 100755 --- a/cg/cg5500c.uml +++ b/cg/cg5500c.uml @@ -2,7 +2,11 @@ TOOLBAR "" 0 20 0 2 -#include +BUTTON DLG_QUIT 8 2 +BEGIN +PROMPT -11 -1 "" +MESSAGE EXIT,K_QUIT +END ENDPAGE diff --git a/cg/cg5500t.h b/cg/cg5500t.h new file mode 100755 index 000000000..1137ef799 --- /dev/null +++ b/cg/cg5500t.h @@ -0,0 +1,18 @@ +BUTTON DLG_SAVEREC 8 2 +BEGIN +PROMPT -13 -1 "~Registra" +MESSAGE EXIT,K_SAVE +END + +BUTTON DLG_RECALC 8 2 +BEGIN +PROMPT -23 -1 "Ri~calcola" +MESSAGE EXIT,K_INS +END + +BUTTON DLG_QUIT 8 2 +BEGIN +PROMPT -33 -1 "" +MESSAGE EXIT,K_QUIT +END + diff --git a/cg/cg5501.cpp b/cg/cg5501.cpp index 2d865dc21..f40b6a498 100755 --- a/cg/cg5501.cpp +++ b/cg/cg5501.cpp @@ -7,9 +7,8 @@ bool Visliq_app::look_lim(int m) _lim_r->zero(); (*_lim_mese) = format("%d",m); - (*_lim_anno) = _year; + (*_lim_anno) = format("%d",_year); - TString s = _lim_r->get("CODTAB"); _lim->read(); return _lim->good(); } @@ -17,12 +16,12 @@ bool Visliq_app::look_lim(int m) bool Visliq_app::look_del(int month, int type) { long ditta = get_firm(); + _del->zero(); - (*_del_ditta) = ditta; - (*_del_anno) = _year; - (*_del_mese) = month; - (*_del_tipo) = type; - TString ctab = _del->get("CODTAB"); + (*_del_ditta) = format("%ld",ditta); + (*_del_anno) = format("%d",_year); + (*_del_mese) = format("%d",month); + (*_del_tipo) = format("%d",type); _del->read(); return _del->good();