diff --git a/ba/ba4200.cpp b/ba/ba4200.cpp index fc40e704a..ca292bef7 100755 --- a/ba/ba4200.cpp +++ b/ba/ba4200.cpp @@ -88,16 +88,8 @@ bool TPersone_app::ba4200_handler(TMask& m, KEY k) TMessage msg(cmd2name(cmd), MSG_FS, (const char*) body); msg.send(); - // TLocalisamfile& d = app.get_relation()->lfile(); - - // d.setkey(1); - // d.zero(); - // d.put(N_TIPOA, app.ana_fis() ? "F" : "G"); - // d.put(N_CODANAGR, m.get(FLD_CODANAGR)); - // d.read(_isequal, _unlock) ; TExternal_app a(cmd); a.run(); - // d.read(_iscurr, _lock) ; m.set_focus(); return FALSE; } @@ -289,7 +281,7 @@ bool gest_uff_imp(TMask_field& f, KEY key) if (msk.get(F_UFFIIDD).empty() || msk.is_running()) { msk.set(F_UFFIIDD, s) ; msk.field(F_UFFIIDD).on_key(K_TAB); - } + } s = comuni.get(N_IVA1); if (s.empty()) s = comuni.get(N_IVA2) ; if (s.empty()) s = comuni.get(N_IVA3) ; @@ -418,9 +410,6 @@ bool no_dup_fis(TMask_field& f, KEY key) const TString16 cofi(f.get()); if ( cofi.not_empty() ) { - // TRelation * r = app.get_relation(); - - // r->save_status(); anag.zero() ; anag.put(N_TIPOA, app.tip_ana()); anag.put(N_COFI, cofi ) ; @@ -433,7 +422,6 @@ bool no_dup_fis(TMask_field& f, KEY key) if (anag.good() && (t1 != t || s1 != s)) f.message_box("Codice fiscale gia' utilizzato per il codice %c/%s", t, (const char*)s); - // r->restore_status(); } return TRUE ; } @@ -494,10 +482,8 @@ bool no_dup_iva_g(TMask_field& f, KEY key) TMask* TPersone_app::get_mask(int mode) { if (!changing_mask(mode)) return _msk[tip_msk()]; - if (ana_fis()) - { - if (_msk[MSKG] != NULL) delete _msk[MSKG]; - _msk[MSKG] = NULL; + if (ana_fis() && _msk[MSKF] == NULL) + { _msk[MSKF] = new TMask("ba4200b") ; _msk[MSKF]->set_handler(F_STATO, stato_hnd); _msk[MSKF]->set_handler(FLD_AF1_PAIV, no_dup_iva_f); @@ -511,19 +497,18 @@ TMask* TPersone_app::get_mask(int mode) _msk[MSKF]->set_handler(ba4200_handler); } else - { - if (_msk[MSKF] != NULL) delete _msk[MSKF]; - _msk[MSKF] = NULL; - _msk[MSKG] = new TMask("ba4200c") ; - _msk[MSKG]->set_handler(FLD_AG2_COMRES, gest_uff_imp); - _msk[MSKG]->set_handler(FLD_AG1_COMRF, gest_uff_imp); - _msk[MSKG]->set_handler(FLD_AG2_COMCORR, clear_cap); - // _msk[MSKG]->set_handler(FLD_AG1_COFI, no_dup_iva_g); - _msk[MSKG]->set_handler(FLD_AG1_PAIV, no_dup_iva_g); - _msk[MSKG]->set_handler(F_UFFCONC, uff_conc); - _msk[MSKG]->set_handler(F_TITCF, tit_cf); - _msk[MSKG]->set_handler(ba4200_handler); - } + if (ana_giu() && _msk[MSKG] == NULL) + { + _msk[MSKG] = new TMask("ba4200c") ; + _msk[MSKG]->set_handler(FLD_AG2_COMRES, gest_uff_imp); + _msk[MSKG]->set_handler(FLD_AG1_COMRF, gest_uff_imp); + _msk[MSKG]->set_handler(FLD_AG2_COMCORR, clear_cap); + // _msk[MSKG]->set_handler(FLD_AG1_COFI, no_dup_iva_g); + _msk[MSKG]->set_handler(FLD_AG1_PAIV, no_dup_iva_g); + _msk[MSKG]->set_handler(F_UFFCONC, uff_conc); + _msk[MSKG]->set_handler(F_TITCF, tit_cf); + _msk[MSKG]->set_handler(ba4200_handler); + } return _msk[tip_msk()]; } @@ -597,7 +582,7 @@ void TPersone_app::manual_save(const TMask& m) int TPersone_app::read(TMask& m) { - const TRelation& r = *get_relation(); + const TRelation & r = *get_relation(); m.autoload(r); _cod_ana = r.lfile().get(N_CODANAGR); return NOERR; @@ -606,7 +591,7 @@ int TPersone_app::read(TMask& m) int TPersone_app::write(const TMask& m) { - TRelation& r = *get_relation(); + TRelation &r = *get_relation(); r.zero(); m.autosave(r); set_cod_ana(r.lfile().get(N_CODANAGR)); @@ -627,7 +612,7 @@ int TPersone_app::write(const TMask& m) int TPersone_app::rewrite(const TMask& m) { - TRelation& r = *get_relation(); + TRelation & r = *get_relation(); m.autosave(r); if (_reset_uff_conc) diff --git a/ba/ba4300.cpp b/ba/ba4300.cpp index 8ca66a6d2..64d16209a 100755 --- a/ba/ba4300.cpp +++ b/ba/ba4300.cpp @@ -129,8 +129,7 @@ bool ba4300_handler(TMask& m, KEY k) if (appname.not_empty()) { TString body(16); - // TLocalisamfile& d = app.get_relation()->lfile(); - + if (fldbrowse) body << fldbrowse << "|"; if (fld) @@ -144,16 +143,11 @@ bool ba4300_handler(TMask& m, KEY k) TMailbox mb; mb.send(msg); } - // d.setkey(1); - // d.zero(); - // d.put("CODDITTA", m.get(FLD_GD1_CODDITTA)); - // d.read(_isequal, _unlock) ; TExternal_app a(appname); const long oldditta = main_app().get_firm(); if (k == K_F8) main_app().set_firm(m.get_long(FLD_GD1_CODDITTA)); a.run(); if (k == K_F8) main_app().set_firm(oldditta); - // d.read(_iscurr, _lock) ; m.set_focus(); return FALSE; } @@ -216,7 +210,7 @@ void TDitte_application::set_att_prev(const TMask& m) _attiv->put(CODATT, _oldattprev); if (_attiv->read(_isequal, _lock) == NOERR) { - _attiv->put("ATTPREV", FALSE); + _attiv->put("ATTPREV", bool(FALSE)); if (_attiv->rewrite() != NOERR) error_box("Non posso aggiornare l'attivita' prevalente precedente : errore n. %d", _attiv->status()); } @@ -238,8 +232,8 @@ void TDitte_application::set_att_prev(const TMask& m) tabatt.put(CODTAB, ditte.get(CODATTPREV)) ; if (tabatt.read() == NOERR) _attiv->put(DESCR, tabatt.get(S0)) ; - } - _attiv->put("ATTPREV", TRUE) ; + } + _attiv->put("ATTPREV", bool(TRUE)) ; if (itwas) { if (_attiv->rewrite() != NOERR) diff --git a/ba/ba4400.cpp b/ba/ba4400.cpp index b103d4807..f8318a36e 100755 --- a/ba/ba4400.cpp +++ b/ba/ba4400.cpp @@ -24,23 +24,26 @@ public: HIDDEN bool clear_cap(TMask_field& f, KEY key) { - if (f.mask().query_mode()) - return TRUE; - TMask& msk = f.mask() ; - const short dlg = f.dlg(); + if (!f.mask().query_mode() && key == K_TAB) + { + TMask& msk = f.mask() ; + const TString16 val(f.get()); + const bool com_ulc = f.dlg() == FLD_UL1_COMULC; - if (dlg != FLD_UL1_COMULC && !f.to_check(key, TRUE)) - return TRUE; - - const TString16 val(f.get()); - const int capid = dlg == FLD_UL1_COMULC ? FLD_UL1_CAPULC : FLD_UL2_CAPTRIB; - - if (val.empty()) - msk.set(capid, ""); + if (val.empty()) + { + msk.set(com_ulc ? FLD_UL1_CAPULC : FLD_UL2_CAPTRIB, "", TRUE); + if (com_ulc) + { + msk.reset(-7); + msk.set(FLD_UL1_COMULC_COMUNI_PROVCOM, "", TRUE); + } + msk.set(com_ulc ? FLD_UL1_COMULC_COMUNI_DENCOM : FLD_UL2_COMTRIB_COMUNI_DENCOM, "", TRUE); + } + } return TRUE; } - bool BA4400_application::user_create() { _msk = new TMask("ba4400a") ; diff --git a/ba/ba4500.cpp b/ba/ba4500.cpp index a7a8391f8..dab1eefcd 100755 --- a/ba/ba4500.cpp +++ b/ba/ba4500.cpp @@ -43,70 +43,72 @@ bool TAttivita_application::gest_res(TMask_field& f, KEY key) msk.set( FLD_AT2_DEP_ANAGR_COMUNI_DESCR , "" ) ; msk.set( FLD_AT2_DEP_ANAGR_COMUNI_PROV , "" ) ; } - if (!f.to_check(key)) return TRUE; - - TLocalisamfile & anag = *app()._anag; - TLocalisamfile & comuni = *app()._comuni; - - anag.setkey(1); - anag.zero(); - anag.put(N_TIPOA, msk.get(LST_AT2_TIPOADS)); - anag.put(N_CODANAGR, msk.get(FLD_AT2_CODANGRDS)); - if (anag.read() != NOERR) - return FALSE; - - TArray comarr(2), f1(2), f2(2), f3(2); - TString cod_com = anag.get(N_CODCOMRF); - - msk.set( FLD_AT2_CODANGRDS_ANAGR_RAGSOC , anag.get(N_RAGSOC) ) ; - comarr.add(cod_com); - cod_com = anag.get(N_CODCOMRES); - comarr.add(cod_com); - cod_com = N_INDRF; - f1.add(cod_com); - cod_com = N_CIVRF; - f2.add(cod_com); - cod_com = N_CAPRF; - f3.add(cod_com); - cod_com = N_INDRES; - f1.add(cod_com); - cod_com = N_CIVRES; - f2.add(cod_com); - cod_com = N_CAPRES; - f3.add(cod_com); - - for (int i = 0; i < comarr.items(); i++) + if (f.to_check(key)) { - cod_com = (TString&) comarr[i]; - if ( cod_com.not_empty() ) + + TLocalisamfile & anag = *app()._anag; + TLocalisamfile & comuni = *app()._comuni; + + anag.setkey(1); + anag.zero(); + anag.put(N_TIPOA, msk.get(LST_AT2_TIPOADS)); + anag.put(N_CODANAGR, msk.get(FLD_AT2_CODANGRDS)); + if (anag.read() != NOERR) + return FALSE; + + TArray comarr(2), f1(2), f2(2), f3(2); + TString cod_com = anag.get(N_CODCOMRF); + + msk.set( FLD_AT2_CODANGRDS_ANAGR_RAGSOC , anag.get(N_RAGSOC) ) ; + comarr.add(cod_com); + cod_com = anag.get(N_CODCOMRES); + comarr.add(cod_com); + cod_com = N_INDRF; + f1.add(cod_com); + cod_com = N_CIVRF; + f2.add(cod_com); + cod_com = N_CAPRF; + f3.add(cod_com); + cod_com = N_INDRES; + f1.add(cod_com); + cod_com = N_CIVRES; + f2.add(cod_com); + cod_com = N_CAPRES; + f3.add(cod_com); + + for (int i = 0; i < comarr.items(); i++) { - comuni.zero() ; - comuni.put(N_COM, cod_com ); - comuni.setkey(1) ; - if (comuni.read() == NOERR) + cod_com = (TString&) comarr[i]; + if ( cod_com.not_empty() ) { - msk.set( FLD_AT2_ANAGR_DEP_IND , (const char*) anag.get((TString&) f1[i]) ) ; - msk.set( FLD_AT2_ANAGR_DEP_CIV , (const char*) anag.get((TString&) f2[i]) ) ; - msk.set( FLD_AT2_ANAGR_DEP_CAP , (const char*) anag.get((TString&) f3[i]) ) ; - msk.set( FLD_AT2_DEP_ANAGR_COMUNI_DESCR , (const char*) comuni.get(N_DENCOM) ) ; - msk.set( FLD_AT2_DEP_ANAGR_COMUNI_PROV , (const char*) comuni.get(N_PROV) ) ; - break; + comuni.zero() ; + comuni.put(N_COM, cod_com ); + comuni.setkey(1) ; + if (comuni.read() == NOERR) + { + msk.set( FLD_AT2_ANAGR_DEP_IND , (const char*) anag.get((TString&) f1[i]) ) ; + msk.set( FLD_AT2_ANAGR_DEP_CIV , (const char*) anag.get((TString&) f2[i]) ) ; + msk.set( FLD_AT2_ANAGR_DEP_CAP , (const char*) anag.get((TString&) f3[i]) ) ; + msk.set( FLD_AT2_DEP_ANAGR_COMUNI_DESCR , (const char*) comuni.get(N_DENCOM) ) ; + msk.set( FLD_AT2_DEP_ANAGR_COMUNI_PROV , (const char*) comuni.get(N_PROV) ) ; + break; + } } - } - } + } + } return TRUE; } HIDDEN bool clear_cap(TMask_field& f, KEY key) { - if (f.mask().query_mode() || !f.to_check(key, TRUE)) - return TRUE; + if (!f.mask().query_mode() && key == K_TAB) + { + TMask& msk = f.mask() ; + const TString16 val(f.get()); - TMask& msk = f.mask() ; - const TString16 val(f.get()); - - if (val.empty()) - msk.set(FLD_AT2_CAPCS, ""); + if (val.empty()) + msk.set(FLD_AT2_CAPCS, ""); + } return TRUE; } diff --git a/ba/ba4600.cpp b/ba/ba4600.cpp index dcc3a4db7..e53b7ae7d 100755 --- a/ba/ba4600.cpp +++ b/ba/ba4600.cpp @@ -23,8 +23,11 @@ public: virtual ~TSoci_application() {} virtual void init_query_mode(TMask& m) ; virtual void init_query_insert_mode(TMask& m) ; + virtual void init_modify_mode(TMask& m) ; + virtual void init_insert_mode(TMask& m) { init_modify_mode(m) ; } virtual int rewrite(const TMask& m); virtual int write(const TMask& m); + virtual bool remove(); virtual void update_ap_socio(const TMask& m); }; @@ -34,6 +37,7 @@ void TSoci_application::init_query_mode(TMask& m) m.show(FLD_SC1_CODANAGRSOH); m.hide(FLD_SC1_CODANAGRSO); m.set(FLD_SC1_CODANAGR_ANAGR_RAGSOC, ""); + m.enable(FLD_SC1_CODANAGR_ANAGR_RAGSOC); } @@ -45,12 +49,18 @@ void TSoci_application::init_query_insert_mode(TMask& m) m.set(FLD_SC1_CODANAGR_ANAGR_RAGSOC, ""); } +void TSoci_application::init_modify_mode(TMask& m) + +{ + m.disable(FLD_SC1_CODANAGR_ANAGR_RAGSOC); +} + void TSoci_application::update_ap_socio(const TMask& m) { int err = NOERR; const char ap = (m.get(FLD_SC1_ANNO)[0] == 'A') ? 'P' : 'A'; - if (yesno_box(format("Aggiornare anche il socio %s?", ap == 'A' ? "attuale" : "precedente"))) + if (yesno_box(format("Aggiornare il socio anche per l' anno %s?", ap == 'A' ? "in corso" : "precedente"))) { _rel->save_status(); m.autosave(*_rel); @@ -61,9 +71,9 @@ void TSoci_application::update_ap_socio(const TMask& m) if (was) err = _rel->rewrite(); else err = _rel->write(); if (err != NOERR) - error_box("Aggiornamento socio %s - Errore : %d", ap == 'A' ? "attuale" : "precedente", err); + error_box("Aggiornamento socio anno %s - Errore : %d", ap == 'A' ? "in corso" : "precedente", err); _rel->restore_status(); - } + } } int TSoci_application::write(const TMask& m) @@ -82,6 +92,25 @@ int TSoci_application::rewrite(const TMask& m) return err; } +bool TSoci_application::remove() +{ + const char ap = (curr_mask().get(FLD_SC1_ANNO)[0] == 'A') ? 'P' : 'A'; + + if (yesno_box(format("Cancellare il socio anche per l' anno %s?", ap == 'A' ? "in corso" : "precedente"))) + { + _rel->save_status(); + _rel->lfile().put("ATTPREC", ap); + if (_rel->read(_isequal, _lock) == NOERR) + { + const int err = _rel->remove(); + if (err != NOERR) + error_box("Cancellazione socio anno %s - Errore : %d", ap == 'A' ? "in corso" : "precedente", err); + } + _rel->restore_status(); + } + return TRelation_application::remove(); +} + bool TSoci_application::user_create() { _rel = new TRelation(LF_SOCI) ;