Denormalizzazione codoice concessione e rimozione degli "slock"inanagrafiche

git-svn-id: svn://10.65.10.50/trunk@1248 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1995-04-14 11:03:59 +00:00
parent 9fd3b7e10a
commit d87a2cfd29
5 changed files with 108 additions and 40 deletions

View File

@ -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();
}

View File

@ -378,5 +378,6 @@
#define F_VARDF 407
#define F_DVARDF 408
#define F_STATORES 409
#define F_LOCCORR 410
#endif // __BA4200_H

View File

@ -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

View File

@ -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

View File

@ -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;
}