diff --git a/m770/771230.cpp b/m770/771230.cpp index f5c2eec84..57cbc2bf3 100755 --- a/m770/771230.cpp +++ b/m770/771230.cpp @@ -18,8 +18,8 @@ class TQuadroC_E2 : public TRelation_application { private: - TString _quadro; // Codice del quadro in gestione - bool _registra; // Se TRUE fa i riporti + TString _quadro; // Codice del quadro in gestione + bool _registra; // Se TRUE fa i riporti struct righe_pag { @@ -35,20 +35,20 @@ class TQuadroC_E2 : public TRelation_application bool bInps; real inps; }; - righe_pag* _rig; - TRelation* _rel; - TMask* _msk[2]; - TSort* _sort; - long _codanagr; - char _tipoa, _tipoq; - int _nproga; - int _mode; - int _anno_dic; // anno dichiarazione - TLocalisamfile* _per, *_scper, *_rpag, *_qd; - TTable* _ca7; - TRiporti _rip; - long _codditta; - int _file; + righe_pag* _rig; + TRelation* _rel; + TMask* _msk[2]; + TSort* _sort; + long _codanagr; + char _tipoa, _tipoq; + int _nproga; + int _mode; + int _anno_dic; // anno dichiarazione + TLocalisamfile* _per, *_scper, *_rpag, *_qd; + TTable* _ca7; + TRiporti _rip; + long _codditta; + int _file; private: static bool nprog_handler (TMask_field& f, KEY key); @@ -106,8 +106,8 @@ TQuadroC_E2::TQuadroC_E2(char tipo): _rel(NULL), _mode(0), _tipoq(tipo) bool TQuadroC_E2::changing_mask(int mode) { if ((mode == MODE_MOD) && (_mode == MODE_INS)) - return FALSE; - else + return FALSE; + else return _mode != mode; } @@ -392,7 +392,7 @@ bool TQuadroC_E2::generazione() TRectype cau = look_causali(codcaus); TString16 qua = cau.get(bCODICE_QUADRO); bool acc_imp = cau.get_bool(bSOMME_ASSOG_RAC); - bool bContrInps = cau.get_bool(bCONTRIBUTO_INPS); + bool bContrInps = cau.get_bool(bCONTRIBUTO_INPS); if (_tipoq == 'D' && qua != "D") continue; if (_tipoq == 'C' && qua != "C") continue; @@ -557,11 +557,11 @@ void TQuadroC_E2::leggi_sort(TProgind& p) { p.addstatus(1); esiste_record = TRUE; - rp = (struct righe_pag*)buf; - tipoa = rp->tipoa; - codanag = atol(rp->codan); - codcaus = atoi(rp->codcau); - perc = rp->perc; + rp = (struct righe_pag*)buf; + tipoa = rp->tipoa; + codanag = atol(rp->codan); + codcaus = atoi(rp->codcau); + perc = rp->perc; bAssoggettateRacc = rp->acim; // non frega un tubo bInps = rp->bInps; // se la riga aveva il contributo inps nella caus. rQCInps = rp->inps; @@ -626,11 +626,11 @@ void TQuadroC_E2::leggi_sort(TProgind& p) rTotQCInps = tot_impo = tot_somme = tot_rite = tot_comp = ZERO; } - tot_somme += rp->somme; - tot_rite += rp->rite; - tot_impo += rp->impo; - tot_comp += rp->comp; - rTotQCInps += rQCInps; + tot_somme += rp->somme; + tot_rite += rp->rite; + tot_impo += rp->impo; + tot_comp += rp->comp; + rTotQCInps += rQCInps; if (tipoa_p != tipoa || codanag != codanag_p) nprog = 1; @@ -824,7 +824,7 @@ bool TQuadroC_E2::user_create() _rel = new TRelation(_file); _rpag = new TLocalisamfile(LF_RPAG); _ca7 = new TTable ("%CA7"); - _codditta = get_firm_770(); + _codditta = get_firm_770(); set_search_field(F_CODANAGRPERC); _registra = FALSE; diff --git a/m770/771231.cpp b/m770/771231.cpp index 9dba459c9..71f64caa1 100755 --- a/m770/771231.cpp +++ b/m770/771231.cpp @@ -1,133 +1,85 @@ // 771231.cpp - Quadri F // -#include #include +#include #include +#include +#include +#include #include #include -#include -#include -#include + #include "77lib.h" #include "prospe1.h" #include "774200.h" -#include "771231a.h" // F, F-1 -#include "771232.h" // quadro G +#include "771231a.h" // F, F-1 +#include "771232.h" // quadro G #include "quadrif.h" #include "ca7.h" - -#define S_CODC 101 -#define S_DESC 102 -#define S_ALIQ 103 -#define S_SOGG 104 -#define S_ROPE 105 -// Solo nel prospetto A -#define S_TACC 106 -#define S_SALD 107 -#define S_VECC 108 - -const int RIGHE_PA = 6; - -HIDDEN TString80 __dep; - -void ss_pack(TSheet_field& ss); -void do_output(TString& quadro, TMask& m, const bool bOutputAliq); -bool check_caus(const char* codcau); + +// Righe spreadsheet F +#define S_CODC 101 +#define S_DESC 102 +#define S_ALIQ 103 +#define S_SOGG 104 +#define S_ROPE 105 +#define S_SOMM 106 class TQuadroF : public TRelation_application { private: - TRelation* _rel; - TMask* _msk; - int _anno_dic; // anno dichiarazione - long _codditta; - TLocalisamfile* _qf, *_rf; - TTable* _ca7; - TRecord_array* _prosp_a, *_prosp_b, *_prosp_c, *_prosp_d; - TRiporti _rip; - bool _registra; - char _tipo_prosp; - TString _sAliqPrec; // in set_notify per det.se cambiata aliq. - static real calcola_rope(TMask_field& f, const real& sogg, const bool force); - static bool codc_handler(TMask_field& f, KEY k); - static bool aliq_handler(TMask_field& f, KEY k); - static bool sogg_handler(TMask_field& f, KEY k); - static bool sald_handler(TMask_field& f, KEY k); - static bool vecc_handler(TMask_field& f, KEY k); - static bool tacc_handler(TMask_field& f, KEY k); - static bool eprov_handler(TMask_field& f, KEY k); - static bool ealiq_handler(TMask_field& f, KEY k); - static bool fsogg_handler(TMask_field& f, KEY k); - static bool faliq_handler(TMask_field& f, KEY k); - static bool mainmsk_handler(TMask& m, KEY k); - static bool a_notify(TSheet_field& s, int r, KEY k); - static bool b_notify(TSheet_field& s, int r, KEY k); - static bool c_notify(TSheet_field& s, int r, KEY k); - static bool d_notify(TSheet_field& s, int r, KEY k); - int salva_prosp_a(const TMask& m, bool re); - int salva_prosp_b(const TMask& m, bool re); - int salva_prosp_c(const TMask& m, bool re); - int salva_prosp_d(const TMask& m, bool re); -// const char* get_desc_cau(const char* codcau); + TRelation* _rel; + TMask* _msk; + + int _anno_dic; // anno dichiarazione + long _codditta; + TRecord_array* _prosp_a, *_prosp_b, *_prosp_c; + bool _registra; + + static void calcola_ritenuta_operata(TMask& m, char prosp); + static bool aliq_handler(TMask_field& f, KEY k); + static bool sogg_handler(TMask_field& f, KEY k); + static bool rope_handler(TMask_field& f, KEY k); + + static bool dprov_handler(TMask_field& f, KEY k); + static bool daliq_handler(TMask_field& f, KEY k); + + static bool mainmsk_handler(TMask& m, KEY k); + + int salva_prospetto(char prosp, bool re); + protected: - virtual bool user_create(); - virtual bool user_destroy(); - virtual int read(TMask& m); - virtual int rewrite(const TMask& m); - virtual int write (const TMask& m); - virtual bool remove(); - virtual TRelation* get_relation() const { return _rel; } - virtual TMask* get_mask(int mode) { return _msk; } - virtual bool changing_mask(int mode) { return FALSE; } - virtual void init_query_mode (TMask&); - virtual void init_insert_mode (TMask&); - virtual void init_modify_mode (TMask&); - void init_mask (TMask&); - void fill_ss(TMask& m); - void riempi_prospetto(TMask& m, const char prosp); - int re_write(const TMask& m, bool re); + virtual bool user_create(); + virtual bool user_destroy(); + virtual int read(TMask& m); + virtual int rewrite(const TMask& m); + virtual int write (const TMask& m); + virtual bool remove(); + virtual TRelation* get_relation() const { return _rel; } + virtual TMask* get_mask(int mode) { return _msk; } + virtual bool changing_mask(int mode) { return FALSE; } + virtual void init_query_mode (TMask&); + virtual void init_insert_mode (TMask&); + virtual void init_modify_mode (TMask&); + + void init_mask (TMask&); + void init_sheet(TSheet_field& s); + void fill_ss(); + void ss_pack(TSheet_field& ss) const; + void riempi_prospetto(const char prosp); + int re_write(bool re); public: - TString16 _quadro, _aliq_caus; - TString80 _title, _desc_caus; - TSheet_field& sfProspA() const; - TSheet_field& sfProspB() const; - TSheet_field& sfProspC() const; - TSheet_field& sfProspD() const; - const char* taitol() { return (const char*)_title; } + TString _quadro, _title; + const char* taitol() const { return _title; } - TQuadroF(const char quadro='0'); + TQuadroF(char quadro = '0'); virtual ~TQuadroF() {}; }; -TSheet_field& TQuadroF::sfProspA() const +TQuadroF::TQuadroF(char quadro) { - TSheet_field& s = (TSheet_field&)curr_mask().field(F_A); - return s; -} - -TSheet_field& TQuadroF::sfProspB() const -{ - TSheet_field& s = (TSheet_field&)curr_mask().field(F_B); - return s; -} - -TSheet_field& TQuadroF::sfProspC() const -{ - TSheet_field& s = (TSheet_field&)curr_mask().field(F_C); - return s; -} - -TSheet_field& TQuadroF::sfProspD() const -{ - TSheet_field& s = (TSheet_field&)curr_mask().field(F_D); - return s; -} - -TQuadroF::TQuadroF(const char quadro) -{ - _registra = FALSE; - _tipo_prosp = 'A'; + _registra = FALSE; switch (quadro) { case '0': @@ -137,12 +89,10 @@ TQuadroF::TQuadroF(const char quadro) case '1': _quadro = "F1"; _title = "Quadro F1"; - _tipo_prosp = 'B'; break; case '2': _quadro = "F2"; _title = "Quadro F2"; - _tipo_prosp = 'B'; break; default: break; @@ -163,62 +113,72 @@ void TQuadroF::init_modify_mode (TMask& m) void TQuadroF::init_query_mode (TMask& m) { - TString16 codditta; + TString16 codditta; codditta << _codditta; - TMask_field& f = m.field(F_CODDITTA); + TMask_field& f = m.field(DLG_CODDITTA); f.set(codditta); f.check(); m.send_key(K_AUTO_ENTER,0); } -void TQuadroF::init_mask (TMask& m) +void TQuadroF::init_mask (TMask&) { - fill_ss(m); + fill_ss(); +} + +void TQuadroF::init_sheet(TSheet_field& s) +{ + const int delta = _quadro == "F1" ? 3 : 0; + + TMask& m = s.sheet_mask(); + for (short id = S_CODC; id <= S_DESC; id++) + { + TEdit_field& e = m.efield(id+delta); + TBrowse* browse = e.browse(); + CHECKD(browse, "Manca la ricerca sul file delle causali nel campo ", id); + TCursor* cur = browse->cursor(); + TString16 filter; filter << "S1=" << _quadro; + cur->setfilter(filter); + } + + m.set_handler(S_ALIQ + delta, aliq_handler); + m.set_handler(S_SOGG + delta, sogg_handler); + m.set_handler(S_ROPE + delta, rope_handler); } bool TQuadroF::user_create() { + _codditta = get_firm_770(); + if (_quadro == "F") { _msk = new TMask("771231a"); - _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar - _msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar - _msk->disable(DLG_DELREC); // disabilito Elimina nella toolbar - _msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar - _msk->set_handler(E_PROVENTI, eprov_handler); - _msk->set_handler(E_ALI, ealiq_handler); - _msk->set_handler(F_SOGG, fsogg_handler); - _msk->set_handler(F_ALI, faliq_handler); - _msk->set_handler(mainmsk_handler); - TSheet_field& p_a = (TSheet_field&) _msk->field(F_A); - p_a.set_notify(a_notify); - p_a.sheet_mask().set_handler(S_CODC, codc_handler); - p_a.sheet_mask().set_handler(S_ALIQ, aliq_handler); - p_a.sheet_mask().set_handler(S_SOGG, sogg_handler); - p_a.sheet_mask().set_handler(S_SALD, sald_handler); - p_a.sheet_mask().set_handler(S_VECC, vecc_handler); - p_a.sheet_mask().set_handler(S_TACC, tacc_handler); - TSheet_field& p_b = (TSheet_field&) _msk->field(F_B); - p_b.set_notify(b_notify); - p_b.sheet_mask().set_handler(S_CODC, codc_handler); - p_b.sheet_mask().set_handler(S_ALIQ, aliq_handler); - p_b.sheet_mask().set_handler(S_SOGG, sogg_handler); - TSheet_field& p_c = (TSheet_field&) _msk->field(F_C); - p_c.set_notify(c_notify); - p_c.sheet_mask().set_handler(S_CODC, codc_handler); - p_c.sheet_mask().set_handler(S_ALIQ, aliq_handler); - p_c.sheet_mask().set_handler(S_SOGG, sogg_handler); - TSheet_field& p_d = (TSheet_field&) _msk->field(F_D); - p_d.set_notify(d_notify); - p_d.sheet_mask().set_handler(S_CODC, codc_handler); - p_d.sheet_mask().set_handler(S_ALIQ, aliq_handler); - p_d.sheet_mask().set_handler(S_SOGG, sogg_handler); - - _rel = new TRelation(LF_QUAF); - _rf = new TLocalisamfile(LF_RIGHEF); + _msk->set_handler(D_PROVENTI, dprov_handler); + _msk->set_handler(D_ALI, daliq_handler); - _codditta = get_firm_770(); - TRectype dep(_rf->curr()); + _msk->set_handler(mainmsk_handler); + + TSheet_field& p_a = (TSheet_field&) _msk->field(F_A); + init_sheet(p_a); + + TSheet_field& p_b = (TSheet_field&) _msk->field(F_B); + init_sheet(p_b); + + TSheet_field& p_c = (TSheet_field&) _msk->field(F_C); + init_sheet(p_c); + + _rel = new TRelation(LF_QUAF); + for (char prosp = 'D'; prosp <= 'H'; prosp++) + { + TString80 filter; + filter.format("CODDITTA=%ld|TIPOPRO=\"%c\"|NPROG=1", + _codditta, prosp); + const int alias = -PROSP_A + prosp - 'A'; + _rel->add(LF_RIGHEF, filter, 1, 0, alias); + _rel->write_enable(-alias); + } + + TRectype dep(LF_RIGHEF); dep.zero(); dep.put("CODDITTA", _codditta); dep.put("TIPOPRO", "A"); @@ -227,57 +187,50 @@ bool TQuadroF::user_create() _prosp_b = new TRecord_array(dep, "NPROG"); dep.put("TIPOPRO", "C"); _prosp_c = new TRecord_array(dep, "NPROG"); - dep.put("TIPOPRO", "D"); - _prosp_d = new TRecord_array(dep, "NPROG"); } if (_quadro == "F1") { _msk = new TMask("771232a"); - _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar - _msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar - _msk->disable(DLG_DELREC); // disabilito Elimina nella toolbar - _msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar _msk->set_handler(mainmsk_handler); - TSheet_field& p_b = (TSheet_field&) _msk->field(F_B); - p_b.sheet_mask().set_handler(S_CODC, codc_handler); - p_b.sheet_mask().set_handler(S_ALIQ, aliq_handler); - p_b.sheet_mask().set_handler(S_SOGG, sogg_handler); + TSheet_field& p_a = (TSheet_field&) _msk->field(F_A); + init_sheet(p_a); _rel = new TRelation(LF_QUAF1); - _rf = new TLocalisamfile(LF_RIGHEF1); + TString80 filter; + filter.format("CODDITTA=%ld|NPROG=1", _codditta); + _rel->add(LF_RIGHEF1, filter); - _codditta = get_firm_770(); - TRectype dep(_rf->curr()); + TRectype dep(LF_RIGHEF1); dep.zero(); dep.put("CODDITTA", _codditta); - dep.put("TIPOPRO", "B"); - _prosp_b = new TRecord_array(dep, "NPROG"); + dep.put("TIPOPRO", "A"); + _prosp_a = new TRecord_array(dep, "NPROG"); } if (_quadro == "F2") { _msk = new TMask("771233a"); - _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar - _msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar - _msk->disable(DLG_DELREC); // disabilito Elimina nella toolbar - _msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar _msk->set_handler(mainmsk_handler); - TSheet_field& p_b = (TSheet_field&) _msk->field(F_B); - p_b.sheet_mask().set_handler(S_CODC, codc_handler); - p_b.sheet_mask().set_handler(S_ALIQ, aliq_handler); - p_b.sheet_mask().set_handler(S_SOGG, sogg_handler); + TSheet_field& p_a = (TSheet_field&)_msk->field(F_A); + init_sheet(p_a); _rel = new TRelation(LF_QUAF2); - _rf = new TLocalisamfile(LF_RIGHEF2); + TString80 filter; + filter.format("CODDITTA=%ld|NPROG=1", _codditta); + _rel->add(LF_RIGHEF2, filter); - _codditta = get_firm_770(); - TRectype dep(_rf->curr()); + TRectype dep(LF_RIGHEF2); dep.zero(); dep.put("CODDITTA", _codditta); - dep.put("TIPOPRO", "B"); - _prosp_b = new TRecord_array(dep, "NPROG"); + dep.put("TIPOPRO", "A"); + _prosp_a = new TRecord_array(dep, "NPROG"); } + + _msk->disable(DLG_CANCEL); // disabilito Annulla nella toolbar + _msk->disable(DLG_NEWREC); // disabilito Nuovo nella toolbar + _msk->disable(DLG_DELREC); // disabilito Elimina nella toolbar + _msk->disable(DLG_FINDREC); // disabilito Ricerca nella toolbar return TRUE; } @@ -286,179 +239,80 @@ bool TQuadroF::user_destroy() { delete _msk; delete _rel; - delete _rf; - delete _prosp_b; + delete _prosp_a; if (_quadro == "F") { - delete _prosp_a; + delete _prosp_b; delete _prosp_c; - delete _prosp_d; } - if (_registra) _rip.set(_quadro); + if (_registra) + { + TRiporti rip; + rip.set(_quadro); + } + return TRUE; } -HIDDEN const int PROSP_RIGHE = 10; +HIDDEN const int PROSP_RIGHE = 16; -/*********************************** -const char* TQuadroF::get_desc_cau(const char* codcau) +void TQuadroF::riempi_prospetto(const char prosp) { - TTable ca7("%ca7"); - __dep = ""; - ca7.zero(); - ca7.put("CODTAB", codcau); - const int rc = ca7.read(); - if (rc == NOERR) - __dep = ca7.get("S0"); - return __dep; -} -**************************/ - -void TQuadroF::riempi_prospetto(TMask& m, const char prosp) -{ - switch (prosp) + TSheet_field& ss = (TSheet_field&)_msk->field(F_A + prosp - 'A'); + TRecord_array& prosp_x = *(prosp == 'B' ? _prosp_b : (prosp == 'C' ? _prosp_c : _prosp_a)); + const int last = prosp_x.last_row(); + for (int i = 0; i < last; i++) { - case 'A': - { - TSheet_field& ss = (TSheet_field&)m.field(F_A); - const int last_a = _prosp_a->last_row(); - for (int i = 1; i <= last_a; i++) - { - TRectype& r = _prosp_a->row(i, TRUE); - TToken_string& row = ss.row(i-1); - TString16 codcau(r.get(QUF_CODCAUS)); - TString descr_cau(get_desc_cau(codcau)); - TString16 aliq (r.get(QUF_ALIQUOTA)); - TString sogg (r.get(QUF_SOGRIT)); - TString rope (r.get(QUF_ROPE)); - row.add(codcau); - row.add(descr_cau); - row.add(aliq); - row.add(sogg); - row.add(rope); - // Solo se (prosp == 'A') - TString acc(r.get(QUF_ACCONTI)); - TString ecc(r.get(QUF_VERSECC)); - TString sal(r.get(QUF_VERSALDO)); - row.add(acc); - row.add(sal); - row.add(ecc); - } - for (i = last_a; i < PROSP_RIGHE; i++) - ss.row(i); -// dava origine ad una indesiderata doppia visualizzazione -// ss.force_update(); - break; + TRectype& r = prosp_x.row(i+1, TRUE); + TToken_string& row = ss.row(i); + if (_quadro == "F1") + { + row.add(r.get(RQF1_TIPOA)); + row.add(r.get(RQF1_CODANAGR)); + row.add(""); } - case 'B': { - TSheet_field& ss = (TSheet_field&)m.field(F_B); - const int last_b = _prosp_b->last_row(); - for (int i = 1; i <= last_b; i++) - { - TRectype& r = _prosp_b->row(i, TRUE); - TToken_string& row = ss.row(i-1); - TString dep(50); -// if (_quadro != "F2") - dep = r.get(QUF_CODCAUS); - TString descr_cau(get_desc_cau(dep)); -// else dep = r.get("DENFONDO"); - TString16 aliq (r.get(QUF_ALIQUOTA)); - TString sogg (r.get(QUF_SOGRIT)); - TString rope (r.get(QUF_ROPE)); - row.add(dep); - row.add(descr_cau); - row.add(aliq); - row.add(sogg); - row.add(rope); - } - for (i = last_b+1; i < PROSP_RIGHE; i++) - ss.row(i); -// dava origine ad una indesiderata doppia visualizzazione -// if (_quadro != "F") -// ss.force_update(); - break; } - case 'C': { - TSheet_field& ss = (TSheet_field&)m.field(F_C); - const int last_c = _prosp_c->last_row(); - for (int i = 1; i <= last_c; i++) - { - TRectype& r = _prosp_c->row(i, TRUE); - TToken_string& row = ss.row(i-1); - TString16 codcau(r.get(QUF_CODCAUS)); - TString descr_cau(get_desc_cau(codcau)); - TString16 aliq (r.get(QUF_ALIQUOTA)); - TString sogg (r.get(QUF_SOGRIT)); - TString rope (r.get(QUF_ROPE)); - row.add(codcau); - row.add(descr_cau); - row.add(aliq); - row.add(sogg); - row.add(rope); - } - for (i = last_c+1; i < PROSP_RIGHE; i++) - ss.row(i); - break; } - case 'D': { - TSheet_field& ss = (TSheet_field&)m.field(F_D); - const int last_d = _prosp_d->last_row(); - for (int i = 1; i <= last_d; i++) - { - TRectype& r = _prosp_d->row(i, TRUE); - TToken_string& row = ss.row(i-1); - TString16 codcau(r.get(QUF_CODCAUS)); - TString descr_cau(get_desc_cau(codcau)); - TString16 aliq (r.get(QUF_ALIQUOTA)); - TString sogg (r.get(QUF_SOGRIT)); - TString rope (r.get(QUF_ROPE)); - row.add(codcau); - row.add(descr_cau); - row.add(aliq); - row.add(sogg); - row.add(rope); - } - for (i = last_d+1; i < PROSP_RIGHE; i++) - ss.row(i); - break; } - default: - break; + row.add(r.get(QUF_CODCAUS)); + row.add(r.get(QUF_DENCAUS)); + row.add(r.get(QUF_ALIQUOTA)); + + const real sogg = r.get_real(QUF_SOGRIT); + const real rope = r.get_real(QUF_ROPE); + const real somm = sogg - rope; + row.add(sogg.string()); + row.add(rope.string()); + row.add(somm.string()); + + ss.check_row(i); } + for (i = last; i < PROSP_RIGHE; i++) + ss.row(i); } -void TQuadroF::fill_ss(TMask& m) +void TQuadroF::fill_ss() { - riempi_prospetto(m, 'B'); + riempi_prospetto('A'); if (_quadro == "F") { - riempi_prospetto(m, 'A'); - riempi_prospetto(m, 'C'); - riempi_prospetto(m, 'D'); + riempi_prospetto('B'); + riempi_prospetto('C'); } } int TQuadroF::read(TMask& m) { int err = TRelation_application::read(m); - if (err == NOERR) - { - TRectype r = _rf->curr(); - r.zero(); - r.put("CODDITTA", m.get(F_CODDITTA)); - r.put("TIPOPRO", "B"); - _prosp_b->read(r); + { + _prosp_a->read(_prosp_a->key()); if (_quadro == "F") { - r.put("TIPOPRO", "A"); - _prosp_a->read(r); - r.put("TIPOPRO", "C"); - _prosp_c->read(r); - r.put("TIPOPRO", "D"); - _prosp_d->read(r); + _prosp_b->read(_prosp_b->key()); + _prosp_c->read(_prosp_c->key()); } + fill_ss(); } - fill_ss(m); return err; } @@ -466,22 +320,21 @@ int TQuadroF::write(const TMask& m) { int err = TRelation_application::write(m); if (err == NOERR) - err = re_write(m, FALSE); + err = re_write(FALSE); _registra = err == NOERR; return err; } int TQuadroF::rewrite(const TMask& m) { - int err = re_write(m, TRUE); - int err1 = TRelation_application::rewrite(m); -// _registra = err == NOERR; -// 12.6.96 se compilo solo prosp.A del F-1 non fa i riporti - _registra = err == NOERR || err1 == NOERR; - return err == NOERR ? err1 : err; + int err = re_write(TRUE); + if (err == NOERR) + err = TRelation_application::rewrite(m); + _registra = err == NOERR; + return err; } -void ss_pack(TSheet_field& ss) +void TQuadroF::ss_pack(TSheet_field& ss) const { TString_array& rows = ss.rows_array(); @@ -489,504 +342,199 @@ void ss_pack(TSheet_field& ss) for (int i = 0; i < max; i++) { TToken_string& r = (TToken_string&)rows[i]; - TString16 codcaus(r.get(0)); - codcaus.trim(); - if (codcaus.empty()) + const int pos = _quadro == "F1" ? 4 : 1; + const char* desc = r.get(pos); + bool destroy = desc == NULL; + if (!destroy) + { + const TFixed_string desccaus(desc); + destroy = desccaus.blank(); + } + if (destroy) rows.destroy(i, FALSE); } rows.pack(); } -int TQuadroF::salva_prosp_a(const TMask& m, bool re) -{ - _prosp_a->destroy_rows(); - if (m.insert_mode()) - _prosp_a->renum_key("CODDITTA", m.get(F_CODDITTA)); - - TSheet_field& p_a = (TSheet_field&)m.field(F_A); - TString_array& rows = p_a.rows_array(); - ss_pack(p_a); +int TQuadroF::salva_prospetto(char prosp, bool re) +{ + TRecord_array& prosp_x = *(prosp == 'B' ? _prosp_b : (prosp == 'C' ? _prosp_c : _prosp_a)); + prosp_x.destroy_rows(); + prosp_x.renum_key("CODDITTA", _codditta); - for (int i = 0; i < p_a.items(); i++) + TSheet_field& p_x = (TSheet_field&)_msk->field(F_A + prosp - 'A'); + TString_array& rows = p_x.rows_array(); + ss_pack(p_x); + + TString caus, desc, aliq, sogg, rope; + + for (int i = 0; i < p_x.items(); i++) { - TToken_string& riga = p_a.row(i); - TString16 codcaus(riga.get(0)); - if (codcaus.empty()) continue; - TString16 aliq (riga.get(2)); // salta descr. caus. -// const float aliq = atof(riga.get()); - TString sogg (riga.get()); - TString rope (riga.get()); - TString totacc (riga.get()); - TString vers_a_saldo (riga.get()); - TString somm_versata (riga.get()); - const int row = i + 1 ; + TToken_string &riga = p_x.row(i); + + const int delta = _quadro == "F1" ? 3 : 0; + caus = riga.get(delta); + desc = riga.get(); + aliq = riga.get(); + sogg = riga.get(); + rope = riga.get(); + + const int row = i + 1; TRectype& r = _prosp_a->row(row, TRUE); - r.zero(); - r.put (QUF_CODDITTA, (long)_codditta); - r.put (QUF_TIPOPRO, "A"); - r.put (QUF_NPROG, i+1); - r.put (QUF_CODCAUS, codcaus); - r.put (QUF_ALIQUOTA , (const char*)aliq); - r.put (QUF_SOGRIT , sogg); - r.put (QUF_ROPE, rope); - r.put (QUF_ACCONTI, totacc); - r.put (QUF_VERSALDO, vers_a_saldo); - r.put (QUF_VERSECC, somm_versata); - } - return _prosp_a->write(re); -} + r.zero(); // Probabilmente inutile + r.put (QUF_CODDITTA, _codditta); // Probabilmente inutile + r.put (QUF_TIPOPRO, prosp); // Probabilmente inutile + r.put (QUF_NPROG, row); // Probabilmente inutile -int TQuadroF::salva_prosp_b(const TMask& m, bool re) -{ - _prosp_b->destroy_rows(); - TSheet_field& p_b = (TSheet_field&)m.field(F_B); - TString_array& rowsb = p_b.rows_array(); - ss_pack(p_b); - - if (m.insert_mode()) - _prosp_b->renum_key("CODDITTA", m.get(F_CODDITTA)); - - for (int i = 0; i < p_b.items(); i++) - { - TToken_string &riga = p_b.row(i); - TString dep(40); - dep = riga.get(0); dep.trim(); -// if (_quadro != "F2" && dep.empty()) continue; - if (dep.empty()) continue; - TString aliq (riga.get(2)); - TString sogg (riga.get()); - TString rope (riga.get()); - - const int row = i + 1 ; - TRectype& r = _prosp_b->row(row, TRUE); - r.zero(); - r.put (QUF_CODDITTA, (long)_codditta); - r.put (QUF_TIPOPRO, "B"); - r.put (QUF_NPROG, i+1); - r.put (QUF_ALIQUOTA, (const char*)aliq); -// r.put (_quadro == "F2" ? "DENFONDO" : "CODCAUS" , dep); - r.put (QUF_CODCAUS , dep); - r.put (QUF_SOGRIT , sogg); + if (app()._quadro == "F1") + { + r.put (RQF1_TIPOA, riga.get(0)); + r.put (RQF1_CODANAGR, riga.get()); + } + r.put (QUF_ALIQUOTA, aliq); + r.put (QUF_CODCAUS, caus); + r.put (QUF_DENCAUS, desc); + r.put (QUF_SOGRIT, sogg); r.put (QUF_ROPE, rope); } - return _prosp_b->write(re); + return _prosp_a->write(re); } -int TQuadroF::salva_prosp_c(const TMask& m, bool re) +int TQuadroF::re_write(bool re) { - _prosp_c->destroy_rows(); - TSheet_field& p_c = (TSheet_field&)m.field(F_C); - TString_array& rowsc = p_c.rows_array(); - ss_pack(p_c); - - if (m.insert_mode()) - _prosp_c->renum_key("CODDITTA", m.get(F_CODDITTA)); - - for (int i = 0; i < p_c.items(); i++) - { - TToken_string &riga = p_c.row(i); - TString16 codcaus(riga.get(0)); - if (codcaus.empty()) continue; - TString16 aliq (riga.get(2)); - TString sogg (riga.get()); - TString rope (riga.get()); - - const int row = i + 1 ; - TRectype& r = _prosp_c->row(row, TRUE); - r.zero(); - r.put (QUF_CODDITTA, (long)_codditta); - r.put (QUF_TIPOPRO, "C"); - r.put (QUF_NPROG, i+1); - r.put (QUF_CODCAUS, codcaus); - r.put (QUF_ALIQUOTA , (const char*)aliq); - r.put (QUF_SOGRIT , sogg); - r.put (QUF_ROPE, rope); - } - return _prosp_c->write(re); -} - -int TQuadroF::salva_prosp_d(const TMask& m, bool re) -{ - _prosp_d->destroy_rows(); - TSheet_field& p_d = (TSheet_field&)m.field(F_D); - TString_array& rowsd = p_d.rows_array(); - ss_pack(p_d); - - if (m.insert_mode()) - _prosp_d->renum_key("CODDITTA", m.get(F_CODDITTA)); - - for (int i = 0; i < p_d.items(); i++) - { - TToken_string &riga = p_d.row(i); - TString16 codcaus(riga.get(0)); - if (codcaus.empty()) continue; - TString16 aliq (riga.get(2)); - TString sogg (riga.get()); - TString rope (riga.get()); - - const int row = i + 1 ; - TRectype& r = _prosp_d->row(row, TRUE); - r.zero(); - r.put (QUF_CODDITTA, (long)_codditta); - r.put (QUF_TIPOPRO, "D"); - r.put (QUF_NPROG, i+1); - r.put (QUF_CODCAUS, codcaus); - r.put (QUF_ALIQUOTA , (const char*)aliq); - r.put (QUF_SOGRIT , sogg); - r.put (QUF_ROPE, rope); - } - return _prosp_d->write(re); -} - -int TQuadroF::re_write(const TMask& m, bool re) -{ - int err_a, err_b, err_c, err_d; - - err_b = salva_prosp_b(m, re); + int err = salva_prospetto('A', re); if (_quadro == "F") - { - err_a = salva_prosp_a(m, re); - err_c = salva_prosp_c(m, re); - err_d = salva_prosp_d(m, re); - return err_a | err_b | err_c | err_d; + { + if (err == NOERR) + err = salva_prospetto('B', re); + if (err == NOERR) + err = salva_prospetto('C', re); } - else - return err_b; + return err; } bool TQuadroF::remove() { - bool ok, ok_a, ok_b, ok_c, ok_d; + bool ok, ok_a, ok_b, ok_c; ok = TRelation_application::remove(); - ok_b = _prosp_b->remove() == NOERR; - _prosp_b->destroy_rows(); + ok_a = _prosp_a->remove() == NOERR; + _prosp_a->destroy_rows(); if (_quadro == "F") { - ok_a = _prosp_a->remove() == NOERR; - _prosp_a->destroy_rows(); + ok_b = _prosp_b->remove() == NOERR; + _prosp_b->destroy_rows(); ok_c = _prosp_c->remove() == NOERR; _prosp_c->destroy_rows(); - ok_d = _prosp_d->remove() == NOERR; - _prosp_d->destroy_rows(); - return _registra = ok && ok_a && ok_b && ok_c && ok_d; + return _registra = ok && ok_a && ok_b && ok_c; } else - return _registra = ok && ok_b; + return _registra = ok && ok_a; } -bool TQuadroF::a_notify(TSheet_field& s, int r, KEY k) -{ - switch(k) - { - case K_SPACE: - { - TSheet_field& sfProspA = app().sfProspA(); - TToken_string& row = sfProspA.row(r); - app()._sAliqPrec = row.get(2); - app()._sAliqPrec.trim(); - } - case K_TAB: - app()._tipo_prosp = 'A'; - break; - case K_INS: - break; - default: - break; - } - return TRUE; -} - -bool TQuadroF::b_notify(TSheet_field& s, int r, KEY k) -{ - switch(k) - { - case K_SPACE: - { - TSheet_field& sfProspB = app().sfProspB(); - TToken_string& row = sfProspB.row(r); - app()._sAliqPrec = row.get(2); - app()._sAliqPrec.trim(); - } - case K_TAB: - app()._tipo_prosp = 'B'; - break; - case K_INS: - break; - default: - break; - } - return TRUE; -} - -bool TQuadroF::c_notify(TSheet_field& s, int r, KEY k) -{ - switch(k) - { - case K_SPACE: - { - TSheet_field& sfProspC = app().sfProspC(); - TToken_string& row = sfProspC.row(r); - app()._sAliqPrec = row.get(2); - app()._sAliqPrec.trim(); - } - case K_TAB: - app()._tipo_prosp = 'C'; - break; - case K_INS: - break; - default: - break; - } - return TRUE; -} - -bool TQuadroF::d_notify(TSheet_field& s, int r, KEY k) -{ - switch(k) - { - case K_SPACE: - { - TSheet_field& sfProspD = app().sfProspD(); - TToken_string& row = sfProspD.row(r); - app()._sAliqPrec = row.get(2); - app()._sAliqPrec.trim(); - } - case K_TAB: - app()._tipo_prosp = 'D'; - break; - case K_INS: - break; - default: - break; - } - return TRUE; -} - bool TQuadroF::mainmsk_handler(TMask& m, KEY k) { if (k == K_ESC) { - TOperable_field& f = m.focus_field(); - m.set_focus_field(f.dlg()); - } + TOperable_field& f = m.focus_field(); + m.set_focus_field(f.dlg()); + } return TRUE; } -bool TQuadroF::eprov_handler(TMask_field& f, KEY k) +bool TQuadroF::dprov_handler(TMask_field& f, KEY k) { if (k == K_TAB && f.focusdirty()) - { - app()._tipo_prosp = 'E'; - const real sogg(f.mask().get(E_PROVENTI)); - calcola_rope(f, sogg, f.focusdirty()); + { + calcola_ritenuta_operata(f.mask(), 'D'); } return TRUE; } -bool TQuadroF::ealiq_handler(TMask_field& f, KEY k) +bool TQuadroF::daliq_handler(TMask_field& f, KEY k) { if (k == K_TAB && f.focusdirty()) { - app()._tipo_prosp = 'E'; - const real sogg(f.mask().get(E_PROVENTI)); - calcola_rope(f, sogg, f.focusdirty()); - } - return TRUE; -} - -bool TQuadroF::fsogg_handler(TMask_field& f, KEY k) -{ - if (k == K_TAB && f.focusdirty()) - { - app()._tipo_prosp = 'F'; - const real sogg(f.mask().get(F_SOGG)); - calcola_rope(f, sogg, f.focusdirty()); - } - return TRUE; -} - -bool TQuadroF::faliq_handler(TMask_field& f, KEY k) -{ - if (k == K_TAB && f.focusdirty()) - { - app()._tipo_prosp = 'F'; - const real sogg(f.mask().get(F_SOGG)); - calcola_rope(f, sogg, f.focusdirty()); - } - return TRUE; -} - -// Se scrivo S_SALD devo pulire S_VECC e viceversa -bool TQuadroF::sald_handler(TMask_field& f, KEY k) -{ - if (k == K_TAB && f.focusdirty()) - { - TString16 dep(f.get()); - if (dep.not_empty()) - f.mask().reset(S_VECC); - } - return TRUE; -} - -bool TQuadroF::vecc_handler(TMask_field& f, KEY k) -{ - if (k == K_TAB && f.focusdirty()) - { - TString16 dep(f.get()); - if (dep.not_empty()) - f.mask().reset(S_SALD); - } - return TRUE; -} - -bool TQuadroF::tacc_handler(TMask_field& f, KEY k) -{ - if (k == K_TAB) - { - const real sogg(f.mask().get(S_SOGG)); - calcola_rope(f, sogg, f.focusdirty()); + calcola_ritenuta_operata(f.mask(), 'D'); } return TRUE; } bool TQuadroF::aliq_handler(TMask_field& f, KEY k) { - if (k == K_TAB) - { - const real sogg(f.mask().get(S_SOGG)); - calcola_rope(f, sogg, f.focusdirty()); + if (k == K_TAB && f.focusdirty()) + { + TMask& m = f.mask(); + TSheet_field* s = m.get_sheet(); + char prosp = 'A' + s->dlg() - F_A; + calcola_ritenuta_operata(m, prosp); } return TRUE; } bool TQuadroF::sogg_handler(TMask_field& f, KEY k) { - if (k == K_TAB) + if (k == K_TAB && f.focusdirty()) { - const real sogg(f.mask().get(S_SOGG)); - calcola_rope(f, sogg, f.focusdirty()); - } - return TRUE; -} - -void do_output(TString& quadro, TMask& m, const bool bOutputAliq) -{ - m.set(S_DESC, app()._desc_caus); - if (bOutputAliq) - m.set(S_ALIQ, app()._aliq_caus); -} - -bool check_caus(const char* codcau) -{ - TTable ca7("%ca7"); - bool ok = FALSE; - TString& quadro = app()._quadro; - - ca7.zero(); - ca7.put(CA7_CODTAB, codcau); - ok = ca7.read(); - if (ok != NOERR) - __dep = ""; - else - __dep = ca7.get(CA7_CODQUA); - - if (__dep != quadro) - return FALSE; - else - { - app()._aliq_caus = ca7.get(CA7_ALIQ); - app()._desc_caus = ca7.get(CA7_DESCR); - return TRUE; - } -} - -bool TQuadroF::codc_handler(TMask_field& f, KEY k) -{ -// Controlla codice quadro - if (k == K_TAB) - { - TString16 codcau(f.get()); - if (codcau.empty()) - return TRUE; TMask& m = f.mask(); - TString& quadro = app()._quadro; - const bool ok = check_caus(codcau); - TString sAliqCorr(m.get(S_ALIQ)); - sAliqCorr.trim(); -// Se sono diverse vuol dire che e' stata cambiata l'aliq.e non va scritta - bool bAliqCorrVuota = sAliqCorr.empty(); - bool bOutputAliq = app()._sAliqPrec == sAliqCorr || bAliqCorrVuota; - if (ok) - do_output(quadro, f.mask(), bOutputAliq); - else - return warning_box("Causale con codice quadro diverso da %s", (const char*)quadro); + TSheet_field* s = m.get_sheet(); + char prosp = 'A' + s->dlg() - F_A; + calcola_ritenuta_operata(m, prosp); } return TRUE; } -real TQuadroF::calcola_rope(TMask_field& f, const real& sogg, const bool force) +bool TQuadroF::rope_handler(TMask_field& f, KEY k) { - real pa_col4 = ZERO; - int id_rope, id_ali; - TMask& m = f.mask(); - - if (app()._tipo_prosp == 'E') - { - id_rope = E_ROP; - id_ali = E_ALI; + if (k == K_TAB && f.focusdirty()) + { + TMask& m = f.mask(); + const real sogg = m.get_real(f.dlg()-1); + const real rope = m.get_real(f.dlg()); + const real somm = sogg - rope; + m.set(f.dlg()+1, somm); } - else - if (app()._tipo_prosp == 'F') - { - id_rope = F_ROP; - id_ali = F_ALI; - } - else // prospetti A,B,C,D - { - id_rope = S_ROPE; - id_ali = S_ALIQ; - } + return TRUE; +} - real ali = m.get_real(id_ali); - const real pa_col4_prec(m.get(id_rope)); // rit.operata - if (pa_col4_prec != ZERO && !force) - return pa_col4_prec; - - pa_col4 = (sogg * ali) / 100.00; - pa_col4.round(0); - - TString ropest(20); - if (pa_col4 != ZERO) // Evita di scrivere "0" nel campo (v. reqif_func nella msk) +void TQuadroF::calcola_ritenuta_operata(TMask& m, char prosp) +{ + if (app()._msk->is_running()) { - ropest = pa_col4.string(); - m.set(id_rope, ropest); - } - else - m.reset(id_rope); - -// Nel prospetto A oltre alla ritenuta operata setto anche S_SALD - if ((app()._tipo_prosp == 'A') && (m.get_sheet()->dlg() == F_A)) - { - const real pa_col5(f.mask().get(S_TACC)); - real pa_col6 = pa_col4 - pa_col5; + int id_ali, id_sogg, id_rope, id_somm; - if (pa_col6 > ZERO) - { - TString col6_st(pa_col6.string()); - m.set(S_SALD, col6_st); - m.reset(S_VECC); + if (prosp == 'D') + { + id_ali = D_ALI; + id_sogg = D_PROVENTI; + id_rope = D_ROP; + id_somm = 0; } + else // A, B, C + { + const int delta = app()._quadro == "F1" ? 3 : 0; + id_ali = S_ALIQ + delta; + id_sogg = S_SOGG + delta; + id_rope = S_ROPE + delta; + id_somm = S_SOMM + delta; + } + + real sogg = m.get_real(id_sogg); + real ali = m.get_real(id_ali); + real rope = (sogg * ali) / 100.00; + rope.round(); + + if (rope != ZERO) // Evita di scrivere "0" nel campo (v. reqif_func nella msk) + m.set(id_rope, rope); else - { -// Sempre positiva, la somma versata in ecc. - pa_col6 *= -1.00; - TString col7_st(pa_col6.string()); - m.set(S_VECC, col7_st); - m.reset(S_SALD); + m.reset(id_rope); + + if (id_somm) + { + real somma = sogg - rope; + m.set(id_somm, somma); } } - return pa_col4; } diff --git a/m770/771231a.h b/m770/771231a.h index 9d78019ec..a7e6487b2 100755 --- a/m770/771231a.h +++ b/m770/771231a.h @@ -1,25 +1,39 @@ // 771231a.h - quadro F // *NOTA* gli identificatori fino al 119 sono per spreadsheet -#define F_A1 120 -#define F_A2 121 -#define F_A3 122 -#define F_A4 123 -#define E_CAMBIAL 124 -#define E_PROVENTI 125 -#define E_ALI 126 -#define E_ROP 127 -#define F_DESCRCAUS 128 -#define F_ALI 129 -#define F_SOGG 130 -#define F_ROP 131 -#define F_CODCAU 132 -#define DLG_AZZERA 133 -#define F_CODDITTA 134 -#define F_RAGDITTA 135 -#define F_A 136 -#define F_B 137 -#define F_C 138 -#define F_D 139 +#define PROSP_A -11 +#define PROSP_B -12 +#define PROSP_C -13 +#define PROSP_D -14 +#define PROSP_E -15 +#define PROSP_F -16 +#define PROSP_G -17 +#define PROSP_H -18 +#define DLG_AZZERA 120 +#define DLG_CODDITTA 121 +#define DLG_RAGDITTA 122 +#define D_CAMBIAL 130 +#define D_PROVENTI 131 +#define D_ALI 132 +#define D_ROP 133 + +#define E_SOGG 140 +#define E_ROP 141 + +#define F_PLUSVAL 160 +#define F_ROP 161 + +#define G_PROVENTI 150 +#define G_ROP 151 + +#define H_PLUSVAL 170 +#define H_ROP 171 + +#define F_A1 181 +#define F_A2 182 + +#define F_A 201 +#define F_B 202 +#define F_C 203 diff --git a/m770/771231a.uml b/m770/771231a.uml index ad6ae9d9b..e396dbaf2 100755 --- a/m770/771231a.uml +++ b/m770/771231a.uml @@ -8,19 +8,19 @@ TOOLBAR "" 0 20 0 2 #include "toolbar.h" ENDPAGE -PAGE "Prospetto A" -1 -1 78 18 +PAGE "Prospetto A,B" -1 -1 78 18 GROUPBOX DLG_NULL 78 3 BEGIN PROMPT 1 0 "" END -NUMBER F_CODDITTA 5 +NUMBER DLG_CODDITTA 5 BEGIN PROMPT 3 1 "Ditta " USE LF_NDITTE - INPUT CODDITTA F_CODDITTA - OUTPUT F_RAGDITTA RAGSOC + INPUT CODDITTA DLG_CODDITTA + OUTPUT DLG_RAGDITTA RAGSOC FIELD LF_QUAF->CODDITTA KEY 1 CHECKTYPE REQUIRED @@ -28,7 +28,7 @@ BEGIN MESSAGE COPY,1@ END -STRING F_RAGDITTA 50 +STRING DLG_RAGDITTA 50 BEGIN PROMPT 17 1 "Ragione " FLAGS "D" @@ -40,75 +40,36 @@ BEGIN PROMPT 1 3 "@bProspetto A" END -SPREADSHEET F_A 78 8 +SPREADSHEET F_A 0 6 BEGIN PROMPT 0 4 "" ITEM "Causale" - ITEM "Descrizione@50" + ITEM "Descrizione@35" ITEM "Aliquota" - ITEM "Sogg. a rit.@15" - ITEM "Ritenuta@15" - ITEM "Totale acconti@15" - ITEM "Vers. a saldo@15" + ITEM "Somme sogg.a rit.@15" + ITEM "Ritenuta@15" ITEM "Somma versata@15" END -GROUPBOX DLG_NULL 0 6 -BEGIN - PROMPT 1 13 "" -END - TEXT DLG_NULL BEGIN - PROMPT 3 14 "A1 Importo di col.7 ..." + PROMPT 1 12 "@bProspetto B" END -NUMBER F_A1 15 +SPREADSHEET F_B 0 6 BEGIN - PROMPT 60 14 "" - PICTURE "." - FIELD LF_QUAF->A1 -END - -TEXT DLG_NULL -BEGIN - PROMPT 3 15 "A2 Importo di col.7 di cui si chiede il rimborso" -END - -NUMBER F_A2 15 -BEGIN - PROMPT 60 15 "" - PICTURE "." - FIELD LF_QUAF->A2 -END - -TEXT DLG_NULL -BEGIN - PROMPT 3 16 "A3 Somme soggette a ritenuta ..." -END - -NUMBER F_A3 15 -BEGIN - PROMPT 60 16 "" - PICTURE "." - FIELD LF_QUAF->A3 -END - -TEXT DLG_NULL -BEGIN - PROMPT 3 17 "A4 Ritenute operate ..." -END - -NUMBER F_A4 15 -BEGIN - PROMPT 60 17 "" - PICTURE "." - FIELD LF_QUAF->A4 + PROMPT 0 13 "" + ITEM "Causale" + ITEM "Descrizione@35" + ITEM "Aliquota" + ITEM "Somme sogg.a rit.@15" + ITEM "Ritenuta@15" + ITEM "Somma versata@15" END ENDPAGE -PAGE "Prospetto B,C" -1 -1 78 18 +PAGE "Prospetti C,D,E" -1 -1 78 18 GROUPBOX DLG_NULL 78 3 BEGIN @@ -131,177 +92,297 @@ END TEXT DLG_NULL BEGIN - PROMPT 1 3 "@bProspetto B" + PROMPT 1 3 "@bProspetto C" END -SPREADSHEET F_B 78 6 +SPREADSHEET F_C 0 6 BEGIN PROMPT 0 4 "" ITEM "Causale" - ITEM "Descrizione@50" + ITEM "Descrizione@35" ITEM "Aliquota" ITEM "Somme sogg.a rit.@15" ITEM "Ritenuta@15" + ITEM "Somma versata@15" END -TEXT DLG_NULL +GROUPBOX DLG_NULL 78 5 BEGIN - PROMPT 1 11 "@bProspetto C" -END - -SPREADSHEET F_C 78 6 -BEGIN - PROMPT 0 12 "" - ITEM "Causale" - ITEM "Descrizione@50" - ITEM "Aliquota" - ITEM "Somme sogg.a rit.@15" - ITEM "Ritenuta@15" -END - -ENDPAGE - -PAGE "Prospetto D,E,F" -1 -1 78 18 - -GROUPBOX DLG_NULL 78 3 -BEGIN - PROMPT 1 0 "" -END - -NUMBER DLG_NULL 5 -BEGIN - PROMPT 3 1 "Ditta " - FLAGS "RD" - GROUP 1 -END - -STRING DLG_NULL 50 -BEGIN - PROMPT 17 1 "Ragione " - FLAGS "D" - GROUP 2 -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 3 "@bProspetto D" -END - -SPREADSHEET F_D 78 6 -BEGIN - PROMPT 0 4 "" - ITEM "Causale" - ITEM "Descrizione@50" - ITEM "Aliquota" - ITEM "Somme sogg.a rit.@15" - ITEM "Ritenuta@15" -END - -GROUPBOX DLG_NULL 0 5 -BEGIN - PROMPT 1 11 "@bProspetto E" + PROMPT 1 12 "@bProspetto D" END -TEXT DLG_NULL +NUMBER DLG_NULL 5 BEGIN - PROMPT 2 12 "Importo complessivo delle cambiali " + PROMPT 1 80 "CODDITTA" + FLAGS "D" + FIELD PROSP_D->CODDITTA + GROUP 1 END -NUMBER E_CAMBIAL 15 +LIST DLG_NULL 1 BEGIN - PROMPT 60 12 "" - PICTURE "." - FIELD LF_QUAF->E_CAMBIALI + PROMPT 1 80 "TIPOPRO" + FLAGS "D" + ITEM "D|D" + FIELD PROSP_D->TIPOPRO +END + +LIST DLG_NULL 1 +BEGIN + PROMPT 1 80 "NPROG" + FLAGS "D" + ITEM "1|1" + FIELD PROSP_D->NPROG END TEXT DLG_NULL -BEGIN - PROMPT 2 13 "Proventi soggetti a ritenuta " +BEGIN + PROMPT 2 13 "Importo complessivo delle cambiali " END -NUMBER E_PROVENTI 15 -BEGIN +NUMBER D_CAMBIAL 15 +BEGIN PROMPT 60 13 "" - PICTURE "." - FIELD LF_QUAF->E_SOGRIT + PICTURE "." + FIELD PROSP_D->IMPCAMB END -NUMBER E_ALI 5 +TEXT DLG_NULL +BEGIN + PROMPT 2 14 "Proventi soggetti a ritenuta " +END + +NUMBER D_PROVENTI 15 +BEGIN + PROMPT 60 14 "" + PICTURE "." + FIELD PROSP_D->SOGRIT +END + +NUMBER D_ALI 5 BEGINE - PROMPT 2 14 "Aliquota " - FIELD LF_QUAF->E_ALIQUOTA + PROMPT 2 15 "Aliquota " + FIELD PROSP_D->ALIQUOTA PICTURE ".2" - NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + NUM_EXPR {(#D_ALI>=0) && (#D_ALI<=100)} +END + +NUMBER D_ROP 15 +BEGIN + PROMPT 43 15 "Ritenuta operata " + PICTURE "." + FIELD PROSP_D->ROPE +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 17 "@bProspetto E" +END + +NUMBER DLG_NULL 5 +BEGIN + PROMPT 1 80 "CODDITTA" + FLAGS "D" + FIELD PROSP_E->CODDITTA + GROUP 1 +END + +LIST DLG_NULL 1 +BEGIN + PROMPT 1 80 "TIPOPRO" + FLAGS "D" + ITEM "E|E" + FIELD PROSP_E->TIPOPRO +END + +LIST DLG_NULL 1 +BEGIN + PROMPT 1 80 "NPROG" + FLAGS "D" + ITEM "1|1" + FIELD PROSP_E->NPROG +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 18 "Ammontare dei proventi imponibili" +END + +NUMBER E_SOGG 15 +BEGIN + PROMPT 60 18 "" + PICTURE "." + FIELD PROSP_E->SOGRIT +END + +TEXT DLG_NULL +BEGIN + PROMPT 2 19 "Ritenuta operata" END NUMBER E_ROP 15 BEGIN - PROMPT 43 14 "Ritenuta operata " + PROMPT 60 19 "" PICTURE "." - FIELD LF_QUAF->E_ROPE + FIELD PROSP_E->ROPE END -GROUPBOX DLG_NULL 0 5 -BEGIN - PROMPT 1 16 "@bProspetto F" -END +ENDPAGE -STRING F_CODCAU 2 +PAGE "Prospetti F,G,H" -1 -1 78 18 + +GROUPBOX DLG_NULL 78 3 BEGIN - PROMPT 2 17 "Causale " - USE %CA7 SELECT (S1="F") - VALIDATE REQIF_FUNC 3 F_SOGG F_ALI F_ROP - INPUT CODTAB F_CODCAU - DISPLAY "Codice " CODTAB - DISPLAY "Descrizione @60" S0 - DISPLAY "Codice tributo" I0 - DISPLAY "Articolo di bilancio" I3 - DISPLAY "C.T." B2 - DISPLAY "I.C." B1 - DISPLAY "R.A." B0 - OUTPUT F_CODCAU CODTAB - OUTPUT F_DESCRCAUS S0 - OUTPUT F_ALI R0 - FLAGS "Z" - WARNING "Manca la causale" - CHECKTYPE NORMAL - ADD RUN 773mod -3 %CA7 - FIELD LF_QUAF->F_CODCAUS + PROMPT 1 0 "" END -STRING F_DESCRCAUS 60 +NUMBER DLG_NULL 5 BEGIN - PROMPT 16 17 "" + PROMPT 3 1 "Ditta " + FLAGS "RD" + GROUP 1 +END + +STRING DLG_NULL 50 +BEGIN + PROMPT 17 1 "Ragione " FLAGS "D" + GROUP 2 END -NUMBER F_SOGG 15 +GROUPBOX DLG_NULL 78 4 BEGIN - PROMPT 2 18 "Somme soggette a ritenuta " + PROMPT 1 3 "@bProspetto F" +END + +NUMBER DLG_NULL 5 +BEGIN + PROMPT 1 80 "CODDITTA" + FLAGS "D" + FIELD PROSP_F->CODDITTA + GROUP 1 +END + +LIST DLG_NULL 1 +BEGIN + PROMPT 1 80 "TIPOPRO" + FLAGS "D" + ITEM "F|F" + FIELD PROSP_F->TIPOPRO +END + +LIST DLG_NULL 1 +BEGIN + PROMPT 1 80 "NPROG" + FLAGS "D" + ITEM "1|1" + FIELD PROSP_F->NPROG +END + +NUMBER F_PLUSVAL 15 +BEGIN + PROMPT 2 4 "Ammontare delle plusvalenze imponibili " PICTURE "." - FIELD LF_QUAF->F_SOGRIT -END - -NUMBER F_ALI 5 -BEGIN - PROMPT 51 18 "Aliquota " - PICTURE ".2" - NUM_EXPR {(#THIS>=0) && (#THIS<=100)} - FIELD LF_QUAF->F_ALIQUOTA + FIELD PROSP_F->SOGRIT END NUMBER F_ROP 15 BEGIN - PROMPT 2 19 "Ritenuta operata " + PROMPT 2 5 "Ritenuta operata " PICTURE "." - FIELD LF_QUAF->F_ROPE + FIELD PROSP_F->ROPE +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 8 "@bProspetto G" +END + +NUMBER DLG_NULL 5 +BEGIN + PROMPT 1 80 "CODDITTA" + FLAGS "D" + FIELD PROSP_G->CODDITTA + GROUP 1 +END + +LIST DLG_NULL 1 +BEGIN + PROMPT 1 80 "TIPOPRO" + FLAGS "D" + ITEM "G|G" + FIELD PROSP_G->TIPOPRO +END + +LIST DLG_NULL 1 +BEGIN + PROMPT 1 80 "NPROG" + FLAGS "D" + ITEM "1|1" + FIELD PROSP_G->NPROG +END + +NUMBER G_PROVENTI 15 +BEGIN + PROMPT 2 9 "Ammontare dei proventi imponibili " + PICTURE "." + FIELD PROSP_G->SOGRIT +END + +NUMBER G_ROP 15 +BEGIN + PROMPT 2 10 "Ritenuta operata " + PICTURE "." + FIELD PROSP_G->ROPE +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 13 "@bProspetto H" +END + +NUMBER DLG_NULL 5 +BEGIN + PROMPT 1 80 "CODDITTA" + FLAGS "D" + FIELD PROSP_H->CODDITTA + GROUP 1 +END + +LIST DLG_NULL 1 +BEGIN + PROMPT 1 80 "TIPOPRO" + FLAGS "D" + ITEM "H|H" + FIELD PROSP_H->TIPOPRO +END + +LIST DLG_NULL 1 +BEGIN + PROMPT 1 80 "NPROG" + FLAGS "D" + ITEM "1|1" + FIELD PROSP_H->NPROG +END + +NUMBER H_PLUSVAL 15 +BEGIN + PROMPT 2 14 "Ammontare delle plusvalenze imponibili " + PICTURE "." + FIELD PROSP_H->SOGRIT +END + +NUMBER H_ROP 15 +BEGIN + PROMPT 2 15 "Prelievo operato " + PICTURE "." + FIELD PROSP_H->ROPE END ENDPAGE ENDMASK -#include "771231b.uml" // mask prospetto A -#include "771231c.uml" // prospetto B -#include "771231c.uml" // prospetto C -#include "771231c.uml" // prospetto D +#include "771231b.uml" // prospetto A +#include "771231b.uml" // prospetto B +#include "771231b.uml" // prospetto C diff --git a/m770/771231b.uml b/m770/771231b.uml index 595bed641..926338f01 100755 --- a/m770/771231b.uml +++ b/m770/771231b.uml @@ -1,90 +1,87 @@ -// 771231b.uml - quadro F prospetto A +// 771231b.uml - quadro F prospetto A-B-C -PAGE "Prospetto A" -1 -1 76 12 +PAGE "" -1 -1 52 9 NUMBER 101 2 BEGIN PROMPT 1 1 "Causale " USE %CA7 SELECT (S1="F") - VALIDATE REQIF_FUNC 6 102 103 104 105 106 107 INPUT CODTAB 101 DISPLAY "Codice " CODTAB - DISPLAY "Descrizione @60" S0 + DISPLAY "Descrizione @35" S0 DISPLAY "Codice tributo" I0 DISPLAY "Articolo di bilancio" I3 OUTPUT 101 CODTAB - OUTPUT 102 S0 + OUTPUT 102 S0 OUTPUT 103 R0 - FLAGS "Z" - WARNING "Manca la causale" + CHECKTYPE SEARCH + FLAGS "Z" + FIELD CODTAB ADD RUN 773mod -3 %CA7 GROUP 1 END -STRING 102 60 +STRING 102 35 BEGIN PROMPT 15 1 "" - FLAGS "D" + USE %CA7 KEY 2 SELECT (S1="F") + INPUT S0 102 + DISPLAY "Descrizione @35" S0 + DISPLAY "Codice " CODTAB + DISPLAY "Codice tributo" I0 + DISPLAY "Articolo di bilancio" I3 + COPY OUTPUT 101 + VALIDATE REQIF_FUNC 2 103 104 + FIELD S0 + WARNING "Descrizione obbligatoria" GROUP 1 END NUMBER 103 6 BEGIN - PROMPT 1 3 "Aliquota applicata " + PROMPT 1 3 "Aliquota applicata " PICTURE ".2" - NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + NUM_EXPR {(#103>=0) && (#103<=100)} + FIELD R0 GROUP 1 END NUMBER 104 15 BEGIN - PROMPT 1 4 "Somme soggette a ritenuta " + PROMPT 1 4 "Somme soggette a ritenuta " PICTURE "." GROUP 1 END NUMBER 105 15 BEGIN - PROMPT 1 5 "Ritenuta operata " + PROMPT 1 5 "Ritenuta operata " PICTURE "." GROUP 1 END NUMBER 106 15 BEGIN - PROMPT 1 6 "Totale acconti " - PICTURE "." + PROMPT 1 6 "Somma versata " + FLAGS "D" + PICTURE "." GROUP 1 END -NUMBER 107 15 +BUTTON DLG_OK 10 2 BEGIN - PROMPT 1 7 "Versamento a saldo " - PICTURE "." - GROUP 1 + PROMPT -13 -1 "" END -NUMBER 108 15 +BUTTON DLG_CANCEL 10 2 BEGIN - PROMPT 1 8 "Somma versata in eccedenza " - PICTURE "." - GROUP 1 + PROMPT -23 -1 "" END -BUTTON DLG_OK 9 2 +BUTTON DLG_AZZERA 10 2 BEGIN - PROMPT -13 -1 "" -END - -BUTTON DLG_CANCEL 9 2 -BEGIN - PROMPT -23 -1 "" -END - -BUTTON DLG_AZZERA 9 2 -BEGIN - PROMPT -33 -1 "A~zzera" - MESSAGE RESET,1@ + PROMPT -33 -1 "A~zzera" + MESSAGE RESET,1@ END ENDPAGE diff --git a/m770/771232a.uml b/m770/771232a.uml index 8951b4b32..a68588b0e 100755 --- a/m770/771232a.uml +++ b/m770/771232a.uml @@ -11,60 +11,40 @@ BEGIN PROMPT 1 0 "" END -NUMBER F_CODDITTA 5 +NUMBER DLG_CODDITTA 5 BEGIN PROMPT 3 1 "Ditta " USE LF_NDITTE KEY 1 - INPUT CODDITTA F_CODDITTA - OUTPUT F_RAGDITTA RAGSOC + INPUT CODDITTA DLG_CODDITTA + OUTPUT DLG_RAGDITTA RAGSOC FIELD LF_QUAF1->CODDITTA KEY 1 CHECKTYPE REQUIRED FLAGS "GRD" END -STRING F_RAGDITTA 50 +STRING DLG_RAGDITTA 50 BEGIN PROMPT 17 1 "Ragione " FLAGS "D" END -GROUPBOX DLG_NULL 0 4 +SPREADSHEET F_A 0 15 BEGIN - PROMPT 1 3 "@bProspetto A" -END - -NUMBER F_A1 15 -BEGIN - PROMPT 2 4 "Ammontare complessivo delle plusvalenze imponibili " - PICTURE "." - FIELD LF_QUAF1->F1_A1 -END - -NUMBER F_A2 15 -BEGIN - PROMPT 2 5 "Ritenuta operata " - PICTURE "." - FIELD LF_QUAF1->F1_A2 -END - -TEXT DLG_NULL -BEGIN - PROMPT 1 7 "@bProspetto B" -END - -SPREADSHEET F_B 78 8 -BEGIN - PROMPT 0 8 "" + PROMPT 0 4 "" + ITEM "Tipo" + ITEM "Codice" + ITEM "Denominazione@50" ITEM "Causale" - ITEM "Descrizione@50" + ITEM "Descrizione@35" ITEM "Aliquota" ITEM "Sogg. a rit.@15" ITEM "Ritenuta@15" + ITEM "Somma versata@15" END ENDPAGE ENDMASK -#include "771232b.uml" // mask prospetto B +#include "771232b.uml" // mask prospetto A diff --git a/m770/771232b.uml b/m770/771232b.uml index 2cdff29e3..67350a300 100755 --- a/m770/771232b.uml +++ b/m770/771232b.uml @@ -1,69 +1,123 @@ -// 771232b.uml - quadro F1 prospetto B +// 771232b.uml - quadro F1 prospetto A -PAGE "Prospetto B" -1 -1 76 9 +PAGE "" -1 -1 54 10 -NUMBER 101 2 +LIST 101 10 BEGIN - PROMPT 1 1 "Causale " + PROMPT 1 1 "Tipo persona " + ITEM "F|Fisica" + ITEM "G|Giuridica" +END + +NUMBER 102 5 +BEGIN + PROMPT 39 1 "Codice " + USE LF_ANAG + INPUT TIPOA 101 SELECT + INPUT CODANAGR 102 + DISPLAY "Tipo" TIPOA + DISPLAY "Codice" CODANAGR + DISPLAY "Denominazione@50" RAGSOC + OUTPUT 102 CODANAGR + OUTPUT 103 RAGSOC + CHECKTYPE NORMAL + ADD RUN ba4 -1 +END + +STRING 103 50 +BEGIN + PROMPT 1 2 "" + USE LF_ANAG KEY 2 + INPUT TIPOA 101 SELECT + INPUT RAGSOC 103 + DISPLAY "Tipo" TIPOA + DISPLAY "Denominazione@50" RAGSOC + DISPLAY "Codice" CODANAGR + COPY OUTPUT 102 + CHECKTYPE NORMAL + ADD RUN ba4 -1 +END + +NUMBER 104 2 +BEGIN + PROMPT 1 3 "Causale " USE %CA7 SELECT (S1="F1") - VALIDATE REQIF_FUNC 3 102 103 104 - INPUT CODTAB 101 + INPUT CODTAB 104 DISPLAY "Codice " CODTAB - DISPLAY "Descrizione @60" S0 + DISPLAY "Descrizione @35" S0 DISPLAY "Codice tributo" I0 DISPLAY "Articolo di bilancio" I3 - OUTPUT 101 CODTAB - OUTPUT 102 S0 - OUTPUT 103 R0 - FLAGS "Z" - WARNING "Manca la causale" + OUTPUT 104 CODTAB + OUTPUT 105 S0 + OUTPUT 106 R0 + CHECKTYPE SEARCH + FLAGS "Z" + FIELD CODTAB ADD RUN 773mod -3 %CA7 GROUP 1 END -STRING 102 60 +STRING 105 35 BEGIN - PROMPT 15 1 "" - FLAGS "D" + PROMPT 16 3 "" + USE %CA7 KEY 2 SELECT (S1="F1") + INPUT S0 105 + DISPLAY "Descrizione @35" S0 + DISPLAY "Codice " CODTAB + DISPLAY "Codice tributo" I0 + DISPLAY "Articolo di bilancio" I3 + COPY OUTPUT 104 + VALIDATE REQIF_FUNC 2 106 107 + FIELD S0 + WARNING "Descrizione obbligatoria" GROUP 1 END -NUMBER 103 6 +NUMBER 106 6 BEGIN - PROMPT 1 3 "Aliquota applicata " + PROMPT 1 4 "Aliquota applicata " PICTURE ".2" - NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + NUM_EXPR {(#106>=0) && (#106<=100)} + FIELD R0 GROUP 1 END -NUMBER 104 15 +NUMBER 107 15 BEGIN - PROMPT 1 4 "Somme soggette a ritenuta " + PROMPT 1 5 "Somme soggette a ritenuta " PICTURE "." GROUP 1 END -NUMBER 105 15 +NUMBER 108 15 BEGIN - PROMPT 1 5 "Ritenuta operata " + PROMPT 1 6 "Ritenuta operata " PICTURE "." GROUP 1 END -BUTTON DLG_OK 9 2 +NUMBER 109 15 BEGIN - PROMPT -13 -1 "" + PROMPT 1 7 "Somme corrisposte " + PICTURE "." + GROUP 1 + FLAGS "D" END -BUTTON DLG_CANCEL 9 2 +BUTTON DLG_OK 10 2 BEGIN - PROMPT -23 -1 "" + PROMPT -13 -1 "" END -BUTTON DLG_AZZERA 9 2 +BUTTON DLG_CANCEL 10 2 BEGIN - PROMPT -33 -1 "A~zzera" - MESSAGE RESET,1@ + PROMPT -23 -1 "" +END + +BUTTON DLG_AZZERA 10 2 +BEGIN + PROMPT -33 -1 "A~zzera" + MESSAGE RESET,1@ END ENDPAGE diff --git a/m770/771233a.uml b/m770/771233a.uml index f544ed17d..797fc9949 100755 --- a/m770/771233a.uml +++ b/m770/771233a.uml @@ -11,19 +11,19 @@ BEGIN PROMPT 1 0 "" END -NUMBER F_CODDITTA 5 +NUMBER DLG_CODDITTA 5 BEGIN PROMPT 3 1 "Ditta " USE LF_NDITTE KEY 1 - INPUT CODDITTA F_CODDITTA - OUTPUT F_RAGDITTA RAGSOC + INPUT CODDITTA DLG_CODDITTA + OUTPUT DLG_RAGDITTA RAGSOC FIELD LF_QUAF2->CODDITTA KEY 1 CHECKTYPE REQUIRED FLAGS "GRD" END -STRING F_RAGDITTA 50 +STRING DLG_RAGDITTA 50 BEGIN PROMPT 17 1 "Ragione " FLAGS "D" @@ -34,14 +34,15 @@ BEGIN PROMPT 1 3 "@bProspetto delle somme soggette a ritenuta e delle ritenute operate " END -SPREADSHEET F_B 0 8 +SPREADSHEET F_A 0 16 BEGIN PROMPT 0 4 "" ITEM "Causale" - ITEM "Denominazione del fondo@60" + ITEM "Denominazione del fondo@35" ITEM "Aliquota" ITEM "Sogg. a rit.@15" ITEM "Ritenuta@15" + ITEM "Somma versata@15" END ENDPAGE diff --git a/m770/771233b.uml b/m770/771233b.uml index 61777b6bd..8e9bad3e7 100755 --- a/m770/771233b.uml +++ b/m770/771233b.uml @@ -1,12 +1,12 @@ -// 771232b.uml - quadro F2 prospetto B +// 771232b.uml - quadro F2 prospetto -PAGE "Prospetto B" -1 -1 76 9 +PAGE "Prospetto" -1 -1 76 9 NUMBER 101 2 BEGIN PROMPT 1 1 "Causale " - USE %CA7 SELECT (S1="F2") - VALIDATE REQIF_FUNC 4 102 103 104 105 + USE %CA7 SELECT S1="F2" + VALIDATE REQIF_FUNC 3 103 104 105 INPUT CODTAB 101 DISPLAY "Codice " CODTAB DISPLAY "Descrizione @60" S0 @@ -15,6 +15,7 @@ BEGIN OUTPUT 101 CODTAB OUTPUT 102 S0 OUTPUT 103 R0 + CHECKTYPE SEARCH FLAGS "Z" WARNING "Manca la causale" ADD RUN 773mod -3 %CA7 @@ -24,7 +25,15 @@ END STRING 102 60 BEGIN PROMPT 15 1 "" - FLAGS "D" + FIELD DENCAUS + USE %CA7 KEY 2 SELECT S1="F2" + INPUT S0 102 + DISPLAY "Descrizione @35" S0 + DISPLAY "Codice " CODTAB + DISPLAY "Codice tributo" I0 + DISPLAY "Articolo di bilancio" I3 + COPY OUTPUT 101 + ADD RUN 773mod -3 %CA7 GROUP 1 END @@ -32,7 +41,8 @@ NUMBER 103 6 BEGIN PROMPT 1 3 "Aliquota applicata " PICTURE ".2" - NUM_EXPR {(#THIS>=0) && (#THIS<=100)} + FIELD ALIQUOTA + NUM_EXPR {(#103>=0) && (#103<=100)} GROUP 1 END @@ -50,17 +60,25 @@ BEGIN GROUP 1 END -BUTTON DLG_OK 9 2 +NUMBER 106 15 +BEGIN + PROMPT 1 5 "Somma versata " + FLAGS "D" + PICTURE "." + GROUP 1 +END + +BUTTON DLG_OK 10 2 BEGIN PROMPT -13 -1 "" END -BUTTON DLG_CANCEL 9 2 +BUTTON DLG_CANCEL 10 2 BEGIN PROMPT -23 -1 "" END -BUTTON DLG_AZZERA 9 2 +BUTTON DLG_AZZERA 10 2 BEGIN PROMPT -33 -1 "A~zzera" MESSAGE RESET,1@ diff --git a/m770/774200.cpp b/m770/774200.cpp index 9a59c0e86..ea15d5451 100755 --- a/m770/774200.cpp +++ b/m770/774200.cpp @@ -53,7 +53,7 @@ // inizializzato in TRiporti::set() - usato in filter_func() HIDDEN TRiporti* this_riporti = NULL; -HIDDEN TString80 __tmp; +HIDDEN TString80 __tmp; // Costanti usate per il calcolo dei fogli compilati HIDDEN const int QE2_FISICHE_PER_FOGLIO = 16; @@ -198,27 +198,27 @@ void TRiporti::setta_flag_quadri_comp(const long codditta, const int quadro, con if (ha_dichiarante || sono_dichiarante) { const long lRecno=basebis.recno(); - basebis.setkey(1); - basebis.zero(); - basebis.put("TIPOQUA", COD_QUA_I_DIC); - basebis.put(BSE_CODDITTA, sono_dichiarante ? codditta : ha_dichiarante); - if (basebis.read(_isequal, _lock) == NOERR) - { - TString qcomp(basebis.get(BSE_QCOMP)); - TString dep(build_fill_string(qcomp)); - qcomp << dep; - - if (almeno_una_riga) - qcomp[(int)quadro] = 'X'; - else - qcomp[(int)quadro] = ' '; - - basebis.put(BSE_QCOMP, qcomp); - basebis.rewrite(); - basebis.readat(lRecno); - } - else - warning_box("Dichiarazione non presente: impossibile registrare il campo Quadri compilati"); + basebis.setkey(1); + basebis.zero(); + basebis.put("TIPOQUA", COD_QUA_I_DIC); + basebis.put(BSE_CODDITTA, sono_dichiarante ? codditta : ha_dichiarante); + if (basebis.read(_isequal, _lock) == NOERR) + { + TString qcomp(basebis.get(BSE_QCOMP)); + TString dep(build_fill_string(qcomp)); + qcomp << dep; + + if (almeno_una_riga) + qcomp[(int)quadro] = 'X'; + else + qcomp[(int)quadro] = ' '; + + basebis.put(BSE_QCOMP, qcomp); + basebis.rewrite(); + basebis.readat(lRecno); + } + else + warning_box("Dichiarazione non presente: impossibile registrare il campo Quadri compilati"); } } @@ -460,7 +460,7 @@ bool TRiporti::riporta_I_globale(const long dich) e0aimp += ee0aimp ; e0snsrit += ee0snsrit ; e0rope += ee0rope ; - h0codlav += hh0codlav ; + h0codlav += hh0codlav ; h0coldip += hh0coldip ; c0nfcom += cc0nfcom ; c0nlass += cc0nlass ; @@ -701,7 +701,7 @@ void TRiporti::calcola_riporti_A(TCursor* cur, const long dich) TLocalisamfile base (LF_BASE); real totale,somme,ritenute; bool almeno_una_riga = FALSE; - long dipendenti,num_rec; + long dipendenti,num_rec; real a0cobb,a0cnet,a0eprev,a0iitra,a0cter,a0timp,a0ilor,a0tdet,a0rter,a0rdat; real a0erit,a0carr,a0aarr,a0darr,a0rarr,a0cinps,a0ciiaut,a0crimpras,a0incdet; @@ -814,11 +814,11 @@ void TRiporti::calcola_riporti_A(TCursor* cur, const long dich) base.put(BSE_A0RARR, a0rarr); base.put("A0INCDET", a0incdet); base.rewrite(); - TLocalisamfile basebis(LF_BASEBIS); - basebis.setkey(1); - basebis.zero(); - basebis.put(BSE_CODDITTA, _codditta); - if (basebis.read(_isequal, _lock) == NOERR) + TLocalisamfile basebis(LF_BASEBIS); + basebis.setkey(1); + basebis.zero(); + basebis.put(BSE_CODDITTA, _codditta); + if (basebis.read(_isequal, _lock) == NOERR) setta_flag_quadri_comp(_codditta, A, almeno_una_riga, basebis, dich); else warning_box("Lock fallito in calcola_riporti A"); @@ -893,11 +893,11 @@ void TRiporti::calcola_riporti_A3(TCursor* cur, const long dich) base.put(BSE_A3REPT10, a3rept10); base.put(BSE_A3REPT12, a3rept12); base.rewrite(); - TLocalisamfile basebis(LF_BASEBIS); - basebis.setkey(1); - basebis.zero(); - basebis.put(BSE_CODDITTA, _codditta); - if (basebis.read(_isequal, _lock) == NOERR) + TLocalisamfile basebis(LF_BASEBIS); + basebis.setkey(1); + basebis.zero(); + basebis.put(BSE_CODDITTA, _codditta); + if (basebis.read(_isequal, _lock) == NOERR) setta_flag_quadri_comp(_codditta, A3, almeno_una_riga, basebis, dich); else warning_box("Lock fallito in calcola_riporti A3"); @@ -1025,7 +1025,7 @@ void TRiporti::calcola_riporti_C(TCursor* cur, const long dich) TLocalisamfile base (LF_BASE); real totale,somme,ritenute,rTotCSSN; bool almeno_una_riga = FALSE; - long percipienti=0L; + long percipienti=0L; totale = ZERO; somme = ZERO; @@ -1088,11 +1088,11 @@ void TRiporti::calcola_riporti_C(TCursor* cur, const long dich) base.put(BSE_C0ROPE, ritenute); base.put(BSE_C0CONTSSN, rTotCSSN); base.rewrite(); - TLocalisamfile basebis(LF_BASEBIS); - basebis.setkey(1); - basebis.zero(); - basebis.put(BSE_CODDITTA, _codditta); - if (basebis.read(_isequal, _lock) == NOERR) + TLocalisamfile basebis(LF_BASEBIS); + basebis.setkey(1); + basebis.zero(); + basebis.put(BSE_CODDITTA, _codditta); + if (basebis.read(_isequal, _lock) == NOERR) setta_flag_quadri_comp(_codditta, C, almeno_una_riga, basebis, dich); else warning_box("Lock fallito in calcola_riporti C"); @@ -1176,11 +1176,11 @@ void TRiporti::calcola_riporti_D(TCursor* cur, const long dich) base.put(BSE_D0SNSRIT, somme); base.put(BSE_D0ROPE, ritenute); base.rewrite(); - TLocalisamfile basebis(LF_BASEBIS); - basebis.setkey(1); - basebis.zero(); - basebis.put(BSE_CODDITTA, _codditta); - if (basebis.read(_isequal, _lock) == NOERR) + TLocalisamfile basebis(LF_BASEBIS); + basebis.setkey(1); + basebis.zero(); + basebis.put(BSE_CODDITTA, _codditta); + if (basebis.read(_isequal, _lock) == NOERR) setta_flag_quadri_comp(_codditta, D, almeno_una_riga, basebis, dich); else warning_box("Lock fallito in calcola_riporti D"); @@ -1262,11 +1262,11 @@ void TRiporti::calcola_riporti_D1(TCursor* cur, const long dich) base.put(BSE_D1SNSRIT, somme); base.put(BSE_D1ROPE, importo); base.rewrite(); - TLocalisamfile basebis(LF_BASEBIS); - basebis.setkey(1); - basebis.zero(); - basebis.put(BSE_CODDITTA, _codditta); - if (basebis.read(_isequal, _lock) == NOERR) + TLocalisamfile basebis(LF_BASEBIS); + basebis.setkey(1); + basebis.zero(); + basebis.put(BSE_CODDITTA, _codditta); + if (basebis.read(_isequal, _lock) == NOERR) setta_flag_quadri_comp(_codditta, D1, almeno_una_riga,basebis,dich); else warning_box("Lock fallito in calcola_riporti D1"); @@ -1546,24 +1546,23 @@ void TRiporti::calcola_riporti_E2(TCursor* cur, const long dich) } void TRiporti::calcola_riporti_F(TCursor* cur, const long dich) -{ +{ + return; // Per ora non devo riportare una minchia: Tracciati della bega. + TLocalisamfile basebis (LF_BASEBIS); - TLocalisamfile* rf; - TRecord_array* _prosp_a, *_prosp_b, *_prosp_c, *_prosp_d; - real a_sogrit, a_rope, a_totacc, f_rope, e_rope, f_sogrit, e_sogrit; - real b_sogrit, b_rope, c_sogrit, c_rope, d_sogrit, d_rope; + TRecord_array* _prosp_a, *_prosp_b, *_prosp_c; + + real a_sogrit, a_rope, b_sogrit, b_rope, c_sogrit, c_rope; + real e_sogrit, e_rope, f_rope, f_sogrit; + real g_sogrit, g_rope, h_rope, h_sogrit; + real i20_1, i20_2, i20_3, i20_4, i20_5, i20_6, i21_1, i21_2, i21_3; bool almeno_una_riga = FALSE; - a_sogrit = a_rope = a_totacc = ZERO; - b_sogrit = b_rope = c_sogrit = c_rope = d_sogrit = d_rope = ZERO; - f_rope = e_rope = f_sogrit = e_sogrit = ZERO; - i20_1 = i20_2 = i20_3 = i20_4 = i20_5 = i20_6 = i21_1 = i21_2 = i21_3 = ZERO; - (*cur) = 0L; TRecnotype items = cur->items(); - TString scritta(60); + TString scritta(60); scritta.format("Calcolo riporti del quadro F per la ditta %ld", _codditta); i20_4 = cur->curr().get_real(QF0_A1); @@ -1581,9 +1580,9 @@ void TRiporti::calcola_riporti_F(TCursor* cur, const long dich) i21_1 != ZERO || e_sogrit != ZERO || f_sogrit != ZERO || e_rope != ZERO || f_rope != ZERO; - rf = new TLocalisamfile(LF_RIGHEF); + TLocalisamfile rf(LF_RIGHEF); - TRectype dep(rf->curr()); + TRectype dep(rf.curr()); dep.zero(); dep.put("CODDITTA", _codditta); dep.put("TIPOPRO", "A"); @@ -1595,11 +1594,8 @@ void TRiporti::calcola_riporti_F(TCursor* cur, const long dich) dep.put("TIPOPRO", "C"); _prosp_c = new TRecord_array(dep, "NPROG"); _prosp_c->read(dep); - dep.put("TIPOPRO", "D"); - _prosp_d = new TRecord_array(dep, "NPROG"); - _prosp_d->read(dep); - items = _prosp_a->last_row() + _prosp_b->last_row() + _prosp_c->last_row() + _prosp_d->last_row(); + items = _prosp_a->last_row() + _prosp_b->last_row() + _prosp_c->last_row(); TProgind progn(items, scritta, FALSE, TRUE); for (int i = 1; i <= _prosp_a->last_row(); i++) @@ -1607,20 +1603,18 @@ void TRiporti::calcola_riporti_F(TCursor* cur, const long dich) TRectype& r = _prosp_a->row(i, TRUE); a_sogrit += r.get_real(RQF0_SOGRIT); a_rope += r.get_real(RQF0_ROPE); - a_totacc += r.get_real(RQF0_TOTACC); - if (!almeno_una_riga) almeno_una_riga = TRUE; + almeno_una_riga = TRUE; progn.addstatus(1); } i20_1 = a_sogrit; i20_2 = a_rope; - i20_3 = a_totacc; for (i = 1; i <= _prosp_b->last_row(); i++) { TRectype& r = _prosp_b->row(i, TRUE); b_sogrit += r.get_real(RQF0_SOGRIT); b_rope += r.get_real(RQF0_ROPE); - if (!almeno_una_riga) almeno_una_riga = TRUE; + almeno_una_riga = TRUE; progn.addstatus(1); } @@ -1629,21 +1623,12 @@ void TRiporti::calcola_riporti_F(TCursor* cur, const long dich) TRectype& r = _prosp_c->row(i, TRUE); c_sogrit += r.get_real(RQF0_SOGRIT); c_rope += r.get_real(RQF0_ROPE); - if (!almeno_una_riga) almeno_una_riga = TRUE; - progn.addstatus(1); - } - - for (i = 1; i <= _prosp_d->last_row(); i++) - { - TRectype& r = _prosp_d->row(i, TRUE); - d_sogrit += r.get_real(RQF0_SOGRIT); - d_rope += r.get_real(RQF0_ROPE); - if (!almeno_una_riga) almeno_una_riga = TRUE; + almeno_una_riga = TRUE; progn.addstatus(1); } - i21_2 += b_sogrit + c_sogrit + d_sogrit + e_sogrit + f_sogrit; - i21_3 += b_rope + c_rope + d_rope + e_rope + f_rope; + i21_2 += b_sogrit + c_sogrit + e_sogrit + f_sogrit; + i21_3 += b_rope + c_rope + e_rope + f_rope; basebis.setkey(1); basebis.zero(); @@ -1680,7 +1665,7 @@ void TRiporti::calcola_riporti_F1(TCursor* cur, const long dich) TRecord_array* _prosp_b; real b_sogrit, b_rope; real i22_1, i22_2; - real f1a1=ZERO, f1a2=ZERO; + real f1a1=ZERO, f1a2=ZERO; bool almeno_una_riga = FALSE; b_sogrit = b_rope = ZERO; @@ -1701,21 +1686,18 @@ void TRiporti::calcola_riporti_F1(TCursor* cur, const long dich) TRectype dep(rf->curr()); dep.zero(); dep.put("CODDITTA", _codditta); - dep.put("TIPOPRO", "B"); +// dep.put("TIPOPRO", "B"); _prosp_b = new TRecord_array(dep, "NPROG"); _prosp_b->read(dep); items = _prosp_b->last_row(); TProgind progn(items, scritta, FALSE, TRUE); - i22_1 = cur->curr().get_real(QF1_A1); - i22_2 = cur->curr().get_real(QF1_A2); - for (int i = 1; i <= _prosp_b->last_row(); i++) { TRectype& r = _prosp_b->row(i, TRUE); - b_sogrit += r.get_real(RQF1_SOGRIT); - b_rope += r.get_real(RQF1_ROPE); + b_sogrit += r.get_real(QUF_SOGRIT); + b_rope += r.get_real(QUF_ROPE); if (!almeno_una_riga) almeno_una_riga = TRUE; progn.addstatus(1); } @@ -2010,12 +1992,12 @@ void TRiporti::calcola_riporti_B (TCursor* cur, const long dich) TLocalisamfile base (LF_BASE); real c3,c4,c5,c6,c7,c8,c9,c10; real tc3,tc4,tc5,tc6,tc7,tc8,tc9,tc10; - int c2=0; - long c1=0L; + int c2=0; + long c1=0L; bool almeno_una_riga = FALSE; - int NumPerc=0; - long fogli_comp=0L; - TBit_array baGiaVisto; + int NumPerc=0; + long fogli_comp=0L; + TBit_array baGiaVisto; c3=c4=c5=c6=c7=c8=c9=c10=ZERO; tc3=tc5=tc6=tc7=tc8=tc9=tc10=ZERO; @@ -2091,11 +2073,11 @@ void TRiporti::calcola_riporti_B (TCursor* cur, const long dich) base.put(I9_9,tc9); base.put(I9_10,tc10); base.rewrite(); - TLocalisamfile basebis(LF_BASEBIS); - basebis.setkey(1); - basebis.zero(); - basebis.put(BSE_CODDITTA, _codditta); - if (basebis.read(_isequal, _lock) == NOERR) + TLocalisamfile basebis(LF_BASEBIS); + basebis.setkey(1); + basebis.zero(); + basebis.put(BSE_CODDITTA, _codditta); + if (basebis.read(_isequal, _lock) == NOERR) setta_flag_quadri_comp(_codditta, B, almeno_una_riga,basebis,dich); else warning_box("Lock fallito in calcola_riporti B"); @@ -2113,10 +2095,10 @@ void TRiporti::calcola_riporti_B1(TCursor* cur, const long dich) TLocalisamfile base (LF_BASE); real c3,c4,c5; real tc3,tc4,tc5; - int c2=0; + int c2=0; bool almeno_una_riga = FALSE; - int NumPerc=0; - long fogli_comp=0L, c1=0L; + int NumPerc=0; + long fogli_comp=0L, c1=0L; c3=c4=c5=ZERO; tc3=tc4=tc5=ZERO; @@ -2169,11 +2151,11 @@ void TRiporti::calcola_riporti_B1(TCursor* cur, const long dich) base.put(I11_4,tc4); base.put(I11_5,tc5); base.rewrite(); - TLocalisamfile basebis(LF_BASEBIS); - basebis.setkey(1); - basebis.zero(); - basebis.put(BSE_CODDITTA, _codditta); - if (basebis.read(_isequal, _lock) == NOERR) + TLocalisamfile basebis(LF_BASEBIS); + basebis.setkey(1); + basebis.zero(); + basebis.put(BSE_CODDITTA, _codditta); + if (basebis.read(_isequal, _lock) == NOERR) setta_flag_quadri_comp(_codditta, B1, almeno_una_riga,basebis,dich); else warning_box("Lock fallito in calcola_riporti B1"); diff --git a/m770/quadrif.h b/m770/quadrif.h index d2fa29371..aba84a44c 100755 --- a/m770/quadrif.h +++ b/m770/quadrif.h @@ -1,37 +1,36 @@ // quadrif.h // righe f2 -#define RQF2_SOGRIT "SOGRIT" -#define RQF2_ROPE "ROPE" +#define RQF2_SOGRIT "SOGRIT" +#define RQF2_ROPE "ROPE" // righe f1 -#define RQF1_SOGRIT "SOGRIT" -#define RQF1_ROPE "ROPE" -// f1 -#define QF1_A1 "F1_A1" -#define QF1_A2 "F1_A2" +#define RQF1_TIPOA "TIPOA" +#define RQF1_CODANAGR "CODANAGR" + // righe f -#define RQF0_SOGRIT "SOGRIT" -#define RQF0_ROPE "ROPE" -#define RQF0_TOTACC "ACCONTI" +#define RQF0_SOGRIT "SOGRIT" +#define RQF0_ROPE "ROPE" +#define RQF0_TOTACC "ACCONTI" // f -#define QF0_A1 "A1" -#define QF0_A2 "A2" -#define QF0_A3 "A3" -#define QF0_A4 "A4" -#define QF0_ESOGRIT "E_SOGRIT" -#define QF0_EROPE "E_ROPE" -#define QF0_FSOGRIT "F_SOGRIT" -#define QF0_FROPE "F_ROPE" +#define QF0_A1 "A1" +#define QF0_A2 "A2" +#define QF0_A3 "A3" +#define QF0_A4 "A4" +#define QF0_ESOGRIT "E_SOGRIT" +#define QF0_EROPE "E_ROPE" +#define QF0_FSOGRIT "F_SOGRIT" +#define QF0_FROPE "F_ROPE" -#define QUF_CODDITTA "CODDITTA" -#define QUF_TIPOPRO "TIPOPRO" -#define QUF_CODCAUS "CODCAUS" -#define QUF_ALIQUOTA "ALIQUOTA" -#define QUF_SOGRIT "SOGRIT" -#define QUF_ROPE "ROPE" -#define QUF_ACCONTI "ACCONTI" -#define QUF_VERSECC "VERSECC" -#define QUF_VERSALDO "VERSALDO" -#define QUF_NPROG "NPROG" -#define QUF_FCAUS "F_CODCAUS" +#define QUF_CODDITTA "CODDITTA" +#define QUF_TIPOPRO "TIPOPRO" +#define QUF_CODCAUS "CODCAUS" +#define QUF_DENCAUS "DENCAUS" +#define QUF_ALIQUOTA "ALIQUOTA" +#define QUF_SOGRIT "SOGRIT" +#define QUF_ROPE "ROPE" +#define QUF_ACCONTI "ACCONTI" +#define QUF_VERSECC "VERSECC" +#define QUF_VERSALDO "VERSALDO" +#define QUF_NPROG "NPROG" +#define QUF_FCAUS "F_CODCAUS"