diff --git a/ba/ba4200.cpp b/ba/ba4200.cpp index 6795615f9..80278496c 100755 --- a/ba/ba4200.cpp +++ b/ba/ba4200.cpp @@ -17,6 +17,7 @@ class TPersone_app : public TRelation_application { char _tip_ana ; + bool _reset_uff_conc; TString16 _cod_ana ; TMask* _msk[2] ; TRelation* _rel[2]; @@ -50,8 +51,9 @@ public: const char* cod_ana() { return _cod_ana;} char tip_ana() { return _tip_ana;} virtual bool force_cursor_usage() const { return TRUE;} + void set_reset_uff_conc(bool reset) { _reset_uff_conc = reset; } - TPersone_app(char ta) { set_tip_ana(ta); } + TPersone_app(char ta) : _reset_uff_conc(FALSE) { set_tip_ana(ta); } virtual ~TPersone_app() {} }; @@ -84,16 +86,16 @@ 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(); + // 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) ; + // 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) ; + // d.read(_iscurr, _lock) ; m.set_focus(); return FALSE; } @@ -267,9 +269,10 @@ bool gest_uff_imp(TMask_field& f, KEY key) cod_com = msk.get(giuridica ? FLD_AG2_COMRES : FLD_AF1_COMRES) ; if (cod_com.empty()) - return TRUE; + return TRUE; + + TLocalisamfile comuni(LF_COMUNI); - TLocalisamfile comuni(LF_COMUNI) ; comuni.setkey(1) ; comuni.zero() ; comuni.put(N_COM, cod_com ); @@ -287,7 +290,11 @@ bool gest_uff_imp(TMask_field& f, KEY key) if (s.empty()) s = comuni.get(N_IVA3) ; msk.set(F_UFFIVA, s) ; msk.field(F_UFFIVA).on_key(K_TAB); msk.set(F_UFFREG, comuni.get("UFFREG")); msk.field(F_UFFREG).on_key(K_TAB); - msk.set(F_UFFCONC, comuni.get("UFFCONC")); msk.field(F_UFFCONC).on_key(K_TAB); + if (msk.get(F_UFFCONC).empty() || msk.is_running()) + { + msk.set(F_UFFCONC, comuni.get("UFFCONC")); + msk.field(F_UFFCONC).on_key(K_TAB); + } msk.set(F_UFFSERV, comuni.get("UFFCSERV")); msk.field(F_UFFSERV).on_key(K_TAB); msk.set(F_CODCONTR_EP, comuni.get("UFFESPROV").mid(1, 2)); @@ -297,6 +304,34 @@ bool gest_uff_imp(TMask_field& f, KEY key) return TRUE; } +// Handler dell'ufficio concessione +bool uff_conc(TMask_field& f, KEY key) +{ + if (f.mask().query_mode()) + return TRUE; + + if (key == K_ENTER) + { + TMask& msk = f.mask() ; + TPersone_app& app = (TPersone_app&)main_app(); + const bool giuridica = app.ana_giu(); + TString16 cod_com(msk.get(giuridica ? FLD_AG1_COMRF : FLD_AF2_COMRF)); + + if (cod_com.empty()) + cod_com = msk.get(giuridica ? FLD_AG2_COMRES : FLD_AF1_COMRES) ; + + if (cod_com.not_empty()) + { + TLocalisamfile comuni(LF_COMUNI); + + comuni.setkey(1) ; + comuni.zero() ; + comuni.put(N_COM, cod_com ); + app.set_reset_uff_conc(comuni.read() == NOERR && msk.get(F_UFFCONC) == comuni.get("UFFCONC")); + } + } + return TRUE; +} bool no_dup_fis(TMask_field& f, KEY key) { if (f.mask().query_mode() || !f.to_check(key)) return TRUE; @@ -397,6 +432,7 @@ TMask* TPersone_app::get_mask(int mode) _msk[MSKF]->set_handler(FLD_AF2_COMCORR, clear_cap); _msk[MSKF]->set_handler(FLD_AF1_PAIV, no_dup_iva_f); _msk[MSKF]->set_handler(FLD_AF1_COFI, no_dup_fis); + _msk[MSKF]->set_handler(F_UFFCONC, uff_conc); _msk[MSKF]->set_handler(ba4200_handler); } else @@ -409,6 +445,7 @@ TMask* TPersone_app::get_mask(int mode) _msk[MSKG]->set_handler(FLD_AG2_COMCORR, clear_cap); _msk[MSKG]->set_handler(FLD_AG1_COFI, no_dup_fis); _msk[MSKG]->set_handler(FLD_AG1_PAIV, no_dup_iva_g); + _msk[MSKG]->set_handler(F_UFFCONC, uff_conc); _msk[MSKG]->set_handler(ba4200_handler); } return _msk[tip_msk()]; @@ -496,6 +533,11 @@ int TPersone_app::write(const TMask& m) TRelation *r = get_relation(); m.autosave(r); set_cod_ana(r->lfile().get(N_CODANAGR)); + if (_reset_uff_conc) + { + _reset_uff_conc = FALSE; + r->lfile().zero("UFFCONC"); + } manual_save(m); return r->write(); } @@ -506,6 +548,11 @@ int TPersone_app::rewrite(const TMask& m) TRelation *r = get_relation(); m.autosave(r); + if (_reset_uff_conc) + { + _reset_uff_conc = FALSE; + r->lfile().zero("UFFCONC"); + } manual_save(m); return r->rewrite(); } diff --git a/ba/ba4200.h b/ba/ba4200.h index 03f4ac830..43cff6921 100755 --- a/ba/ba4200.h +++ b/ba/ba4200.h @@ -378,5 +378,6 @@ #define F_VARDF 407 #define F_DVARDF 408 #define F_STATORES 409 +#define F_LOCCORR 410 #endif // __BA4200_H diff --git a/ba/ba4200b.uml b/ba/ba4200b.uml index 12aa6d073..e044ecc50 100755 --- a/ba/ba4200b.uml +++ b/ba/ba4200b.uml @@ -491,7 +491,7 @@ BEGIN GROUP 3 END -GROUPBOX DLG_NULL 76 6 +GROUPBOX DLG_NULL 76 7 BEGIN PROMPT 0 5 "Corrispondenza" END @@ -513,9 +513,16 @@ BEGIN VALIDATE EMPTYCOPY_FUNC FLD_AF1_CIVRES END +STRING F_LOCCORR 35 +BEGIN + PROMPT 2 7 "Localita' " + FIELD LF_ANAG->LOCCORR + HELP "Localita' in cui spedire la corrispondenza" +END + NUMBER FLD_AF2_STATOCORR 3 BEGIN - PROMPT 2 7 "Comune : Stato " + PROMPT 2 8 "Comune : Stato " FIELD LF_ANAG->STATOCORR FLAGS "Z" COPY USE F_STATO @@ -529,7 +536,7 @@ END STRING FLD_AF2_COMCORR 4 BEGIN - PROMPT 9 8 ": Codice " + PROMPT 9 9 ": Codice " FIELD LF_ANAG->COMCORR FLAGS "U" COPY USE FLD_AF1_COMNASC @@ -549,21 +556,21 @@ END STRING FLD_AF2_COMCORR_COMUNI_PROVCOM 5 BEGIN - PROMPT 38 8 "Provincia " + PROMPT 38 9 "Provincia " FLAGS "D" VALIDATE EMPTYCOPY_FUNC FLD_AF1_COMRES_COMUNI_PROVCOM END STRING FLD_AF2_CAPCORR 5 BEGIN - PROMPT 56 8 "CAP " + PROMPT 56 9 "CAP " FIELD LF_ANAG->CAPCORR HELP "CAP del comune al quale spedire la corrispondenza" END STRING FLD_AF2_COMCORR_COMUNI_DENCOM 50 BEGIN - PROMPT 9 9 ": Denom. " + PROMPT 9 10 ": Denom. " HELP "Nome del comune al quale spedire la corrispondenza" COPY USE FLD_AF1_COMRES_COMUNI_DENCOM INPUT DENCOM FLD_AF2_COMCORR_COMUNI_DENCOM @@ -1058,9 +1065,12 @@ END NUMBER F_UFFCONC 3 BEGIN PROMPT 1 11 "Concessioni " - FLAGS "DGZ" - USE %UCC + FLAGS "Z" + USE %UCC + FIELD LF_ANAG->UFFCONC INPUT CODTAB F_UFFCONC + DISPLAY "Codice" CODTAB + DISPLAY "Denominazione@50" S0 OUTPUT F_UFFCONC CODTAB OUTPUT F_DENUFFCONC S0 CHECKTYPE NORMAL diff --git a/ba/ba4200c.uml b/ba/ba4200c.uml index 5e538478c..3535d932e 100755 --- a/ba/ba4200c.uml +++ b/ba/ba4200c.uml @@ -237,7 +237,7 @@ BEGIN DISPLAY "Codice" CODTAB DISPLAY "Stato@50" S0 OUTPUT F_STATORES CODTAB - HELP "Codice dello stato a cui mandare la corrispondenza" + HELP "Codice dello stato di residenza" CHECKTYPE NORMAL END @@ -423,7 +423,7 @@ BEGIN GROUP 2 END -GROUPBOX DLG_NULL 75 6 +GROUPBOX DLG_NULL 75 7 BEGIN PROMPT 0 4 "Corrispondenza" END @@ -445,9 +445,16 @@ BEGIN VALIDATE EMPTYCOPY_FUNC FLD_AG2_CIVRES END +STRING F_LOCCORR 35 +BEGIN + PROMPT 2 6 "Localita' " + FIELD LF_ANAG->LOCCORR + HELP "Localita' in cui spedire la corrispondenza" +END + NUMBER FLD_AG2_STATOCORR 3 BEGIN - PROMPT 2 6 "Comune : Stato " + PROMPT 2 7 "Comune : Stato " FIELD LF_ANAG->STATOCORR FLAGS "Z" USE %STA @@ -461,7 +468,7 @@ END STRING FLD_AG2_COMCORR 4 BEGIN - PROMPT 9 7 ": Codice " + PROMPT 9 8 ": Codice " FIELD LF_ANAG->COMCORR FLAGS "U" COPY USE FLD_AG2_COMRES @@ -481,21 +488,21 @@ END STRING FLD_AG2_COMCORR_COMUNI_PROVCOM 5 BEGIN - PROMPT 38 7 "Provincia " + PROMPT 38 8 "Provincia " FLAGS "D" VALIDATE EMPTYCOPY_FUNC FLD_AG2_COMRES_COMUNI_PROVCOM END STRING FLD_AG2_CAPCORR 5 BEGIN - PROMPT 56 7 "CAP " + PROMPT 56 8 "CAP " FIELD LF_ANAG->CAPCORR HELP "CAP al quale spedire la corrispondenza" END STRING FLD_AG2_COMCORR_COMUNI_DENCOM 50 BEGIN - PROMPT 9 8 ": Denom. " + PROMPT 9 9 ": Denom. " HELP "Nome del comune a cui mandare la corrispondenza" COPY USE FLD_AG2_COMRES_COMUNI_DENCOM INPUT DENCOM FLD_AG2_COMCORR_COMUNI_DENCOM @@ -511,47 +518,47 @@ END GROUPBOX DLG_NULL 75 5 BEGIN - PROMPT 0 10 "Telefoni" + PROMPT 0 11 "Telefoni" END STRING FLD_AG2_PTELRF 10 BEGIN - PROMPT 2 11 "Telefono : Prefisso " + PROMPT 2 12 "Telefono : Prefisso " FIELD LF_ANAG->PTELRF HELP "Prefisso telefonico della persona giuridica" END STRING FLD_AG2_TELRF 30 BEGIN - PROMPT 35 11 "Numero " + PROMPT 35 12 "Numero " FIELD LF_ANAG->TELRF HELP "Numero di telefono della persona giuridica" END STRING FLD_AG2_PFAXRF 10 BEGIN - PROMPT 2 12 "Telefax : Prefisso " + PROMPT 2 13 "Telefax : Prefisso " FIELD LF_ANAG->PFAXRF HELP "Prefisso del fax della persona giuridica" END STRING FLD_AG2_FAXRF 30 BEGIN - PROMPT 35 12 "Numero " + PROMPT 35 13 "Numero " FIELD LF_ANAG->FAXRF HELP "Numero di telefono della persona giuridica" END STRING FLD_AG2_PTLEXRF 10 BEGIN - PROMPT 2 13 "Telex : Prefisso " + PROMPT 2 14 "Telex : Prefisso " FIELD LF_ANAG->PTLEXRF HELP "Prefisso del telex della persona giuridica" END STRING FLD_AG2_TLEXRF 30 BEGIN - PROMPT 35 13 "Numero " + PROMPT 35 14 "Numero " FIELD LF_ANAG->TLEXRFX HELP "Numero del telex della perosna giuridica" END @@ -1183,6 +1190,8 @@ BEGIN PROMPT 1 10 "Registro " USE %URE INPUT CODTAB F_UFFREG + DISPLAY "Codice" CODTAB + DISPLAY "Denominazione@50" S0 OUTPUT F_UFFREG CODTAB OUTPUT F_DENUFFREG S0 CHECKTYPE NORMAL @@ -1198,7 +1207,8 @@ END NUMBER F_UFFCONC 3 BEGIN PROMPT 1 11 "Concessioni " - FLAGS "DRZG" + FLAGS "Z" + FIELD LF_ANAG->UFFCONC USE %UCC INPUT CODTAB F_UFFCONC OUTPUT F_UFFCONC CODTAB diff --git a/ba/ba4300.cpp b/ba/ba4300.cpp index c513cde61..a03b42df1 100755 --- a/ba/ba4300.cpp +++ b/ba/ba4300.cpp @@ -128,7 +128,7 @@ bool ba4300_handler(TMask& m, KEY k) if (appname.not_empty()) { TString body(16); - TLocalisamfile& d = app.get_relation()->lfile(); + // TLocalisamfile& d = app.get_relation()->lfile(); if (fldbrowse) body << fldbrowse << "|"; @@ -143,16 +143,16 @@ 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) ; + // 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) ; + // d.read(_iscurr, _lock) ; m.set_focus(); return FALSE; }