diff --git a/ba/ba4200.cpp b/ba/ba4200.cpp index 1f15e10d6..2208b27ee 100755 --- a/ba/ba4200.cpp +++ b/ba/ba4200.cpp @@ -290,8 +290,12 @@ 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); - if (msk.get(F_UFFCONC).empty() || msk.is_running()) - msk.set(F_UFFCONC, comuni.get("UFFCONC")); + if (msk.get_bool(F_TITCF)) + { + if (msk.get(F_UFFCONC).empty() || msk.is_running()) + msk.set(F_UFFCONC, comuni.get("UFFCONC")); + msk.set(F_CONFIS, msk.get(giuridica ? FLD_AG1_COFI : FLD_AF1_COFI)); + } msk.set(F_UFFCONC_P, comuni.get("UFFCONC")); msk.field(F_UFFCONC_P).on_key(K_TAB); msk.set(F_UFFSERV, comuni.get("UFFCSERV")); msk.field(F_UFFSERV).on_key(K_TAB); @@ -302,6 +306,37 @@ bool gest_uff_imp(TMask_field& f, KEY key) return TRUE; } +// Handler del titolare conto fiscale +bool tit_cf(TMask_field& f, KEY key) +{ + if (key == K_SPACE && f.mask().get_bool(F_TITCF)) + { + 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 ); + if (comuni.read() == NOERR) + { + if (msk.get(F_UFFCONC).empty() || msk.is_running()) + msk.set(F_UFFCONC, comuni.get("UFFCONC")); + } + } + msk.set(F_CONFIS, msk.get(giuridica ? FLD_AG1_COFI : FLD_AF1_COFI)); + } + return TRUE; +} + // Handler dell'ufficio concessione bool uff_conc(TMask_field& f, KEY key) { @@ -329,7 +364,8 @@ bool uff_conc(TMask_field& f, KEY key) } } return TRUE; -} +} + bool no_dup_fis(TMask_field& f, KEY key) { if (f.mask().query_mode() || !f.to_check(key)) return TRUE; @@ -379,11 +415,8 @@ bool gest_iva(TMask_field& f, KEY key , short fd_sta ,short fd_iva ) const char t = anag.get_char(N_TIPOA), t1 = app.tip_ana(); const TFixed_string s(anag.get(N_CODANAGR)), s1(app.cod_ana()); if (anag.good() && (t1 != t || s1 != s)) - { - f.error_box("Partita iva gia' definita per il codice : %c/%s", - t, (const char*) s); - return FALSE ; - } + f.message_box("Partita iva gia' definita per il codice : %c/%s", + t, (const char*) s); } return TRUE ; } @@ -430,6 +463,7 @@ TMask* TPersone_app::get_mask(int mode) _msk[MSKF]->set_handler(FLD_AF2_COMRF, gest_uff_imp); _msk[MSKF]->set_handler(FLD_AF2_COMCORR, clear_cap); _msk[MSKF]->set_handler(F_UFFCONC, uff_conc); + _msk[MSKF]->set_handler(F_TITCF, tit_cf); _msk[MSKF]->set_handler(ba4200_handler); } else @@ -443,6 +477,7 @@ TMask* TPersone_app::get_mask(int mode) // _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()]; diff --git a/ba/ba4200b.uml b/ba/ba4200b.uml index 6abb773dc..53b3717b3 100755 --- a/ba/ba4200b.uml +++ b/ba/ba4200b.uml @@ -176,7 +176,6 @@ OUTPUT FLD_ANAG_RAGSOC2 RAGSOC[31,0] HELP "Codice fiscale della persona fisica" CHECKTYPE REQUIRED VALIDATE XTCF_FUNC FLD_AF1_STATOPAIV LST_AF1_SESSO FLD_AF1_DATANASC FLD_AF1_COMNASC -MESSAGE COPY,F_CONFIS END STRING F_COFIEST 20 @@ -768,7 +767,10 @@ BOOLEAN F_TITCF BEGIN PROMPT 2 14 "Titolare conto fiscale" FIELD LF_ANAG->TITCF -HELP "La persona e' titolare di un conto corrente fiscale" +HELP "La persona e' titolare di un conto corrente fiscale" +MESSAGE TRUE ENABLE,F_UFFCONC +MESSAGE FALSE CLEAR,F_UFFCONC +MESSAGE FALSE RESET,F_CONFIS END LIST F_TIPOSTDEL 12 diff --git a/ba/ba4200c.uml b/ba/ba4200c.uml index 65af9167e..aca3a770c 100755 --- a/ba/ba4200c.uml +++ b/ba/ba4200c.uml @@ -120,7 +120,6 @@ BEGIN DISPLAY "Codice" CODANAGR COPY OUTPUT FLD_CODANAGR CHECKTYPE REQUIRED - MESSAGE COPY,F_CONFIS KEY 3 END @@ -887,7 +886,10 @@ BOOLEAN F_TITCF BEGIN PROMPT 2 14 "Titolare conto fiscale" FIELD LF_ANAG->TITCF - HELP "Indicare se e' titolare di conto fiscale" + HELP "Indicare se e' titolare di conto fiscale" + MESSAGE TRUE ENABLE,F_UFFCONC + MESSAGE FALSE CLEAR,F_UFFCONC + MESSAGE FALSE RESET,F_CONFIS END LIST F_TIPOSTDEL 12