From bb993a1e730f216a66095303b612ad4bb3a1d154 Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 13 Apr 2012 15:07:32 +0000 Subject: [PATCH] Versione finale anagrafica contatti Gestione stato abilitazioni anche con SSA remoto git-svn-id: svn://10.65.10.50/branches/R_10_00@22639 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ba/ba1500.cpp | 49 +++++---- ba/ba1500a.uml | 2 +- ba/ba4700.cpp | 11 +++ ba/ba4700a.h | 39 ++++++-- ba/ba4700a.uml | 262 ++++++++++++++++++++++++++++++++++++++++++++++--- ba/bamenu.men | 17 ++-- 6 files changed, 331 insertions(+), 49 deletions(-) diff --git a/ba/ba1500.cpp b/ba/ba1500.cpp index 5aa409974..68112cf65 100755 --- a/ba/ba1500.cpp +++ b/ba/ba1500.cpp @@ -455,14 +455,17 @@ bool TAttivazione_moduli::change_users_handler(TMask_field& fld, KEY key) { if (key == K_SPACE) { + TDongle& d = ::dongle(); + if (d.hardware() == _dongle_ssa) + return message_box(TR("E' necessario contattare attivazione_moduli@sirio-is.it")); + TMask m(TR("Utenti"), 1, 26, 7); m.add_number(101, 0, PR("Utenti "), 1, 1, 4, "U"); m.add_string(102, 0, PR("Codice "), 1, 2, 8, "DU"); - TDongle& dongle = ::dongle(); - if (dongle.type() == _user_dongle) + if (d.type() == _user_dongle) { - m.set(101, dongle.max_users()); + m.set(101, d.max_users()); m.enable(102); } else @@ -476,7 +479,7 @@ bool TAttivazione_moduli::change_users_handler(TMask_field& fld, KEY key) if (m.run() == K_ENTER) { const int utenti = m.get_int(101); - if (dongle.type() == _user_dongle) + if (d.type() == _user_dongle) { if (utenti > 0 && utenti < 1000) { @@ -493,7 +496,7 @@ bool TAttivazione_moduli::change_users_handler(TMask_field& fld, KEY key) app().garble_users(utenti, str1, str2); if ((m.get(102) == str1) || (m.get(102) == str2)) { - dongle.set_max_users(utenti); + d.set_max_users(utenti); fld.mask().set(F_USERS, utenti); } else @@ -540,14 +543,18 @@ bool TAttivazione_moduli::change_assist_handler(TMask_field& fld, KEY key) { if (key == K_SPACE) { + TDongle& d = ::dongle(); + + if (d.hardware() == _dongle_ssa) + return message_box(TR("E' necessario contattare attivazione_moduli@sirio-is.it")); + TMask m(TR("Assistenza"), 1, 26, 9); m.add_number(101, 0, PR("Anno "), 1, 1, 4, "U"); m.add_string(102, 0, PR("Codice "), 1, 2, 8, "DU"); - TDongle& dongle = ::dongle(); - if (dongle.type() == _user_dongle) + if (d.type() == _user_dongle) { - m.set(101, dongle.year_assist()); + m.set(101, d.year_assist()); m.enable(102); } else @@ -561,7 +568,7 @@ bool TAttivazione_moduli::change_assist_handler(TMask_field& fld, KEY key) if (m.run() == K_ENTER) { word year = m.get_int(101); - if (dongle.type() == _user_dongle) + if (d.type() == _user_dongle) { if (year >= YEAR_MIN && year <= YEAR_MAX) { @@ -578,7 +585,7 @@ bool TAttivazione_moduli::change_assist_handler(TMask_field& fld, KEY key) bool ok = (m.get(102) == str1) || (m.get(102) == str2); if (ok) { - dongle.set_year_assist(year); + d.set_year_assist(year); fld.mask().set(F_ASSIST, year); } else @@ -659,10 +666,12 @@ void TAttivazione_moduli::init_mask() const TDate oggi(TODAY); const int nmod = build_sheet(); const TDongle& d = ::dongle(); - if (d.hardware() == _dongle_hardlock) - _msk->set_caption(TR("Attivazione HARDLOCK")); - else - _msk->set_caption(TR("Attivazione EUTRON")); + switch (d.hardware()) + { + case _dongle_hardlock: _msk->set_caption(TR("Attivazione HARDLOCK")); break; + case _dongle_eutron : _msk->set_caption(TR("Attivazione EUTRON")); break; + default : _msk->set_caption(TR("Attivazione SSA")); break; + } _msk->set(F_SN, d.number()); _msk->set(F_DT, oggi); @@ -685,7 +694,7 @@ bool TAttivazione_moduli::date_hnd(TMask_field& f, KEY k) const TDate oggi(TODAY); if (data > oggi) return f.error_box(FR("La data deve essere antecedente a quella di sistema")); - + /* const TDate& last_update = ::dongle().last_update(); if (data < last_update) return f.error_box(FR("La data deve essere successiva al %s"), last_update.string()); @@ -693,6 +702,7 @@ bool TAttivazione_moduli::date_hnd(TMask_field& f, KEY k) const int year_assist = ::dongle().year_assist()+1; if (data.year() > year_assist) return f.error_box(FR("La data deve essere antecedente al 31-12-%d"), year_assist); + */ } return true; } @@ -1000,16 +1010,17 @@ bool TAttivazione_moduli::create() TSheet_field& sf = _msk->sfield(F_MODULI); sf.set_notify(k_notify); + const bool can_edit = serno() != 0 && d.hardware() != _dongle_ssa; + switch (mydongle) { case _user_dongle: - _msk->enable(F_DT); _msk->set_handler(F_DT, date_hnd); case _developer_dongle: init_mask(); _serno=_msk->get_int(F_SN); - sf.enable_column(F_ENABLE, serno() != 0); - sf.enable_column(F_KEY, serno() != 0); + sf.enable_column(F_ENABLE, can_edit); + sf.enable_column(F_KEY, can_edit); break; case _aga_dongle: _msk->set_handler(F_SN, serno_hnd); @@ -1018,7 +1029,7 @@ bool TAttivazione_moduli::create() _serno=_msk->get_int(F_SN); build_sheet(false); - sf.enable_column(1); + sf.enable_column(1, can_edit); build_key_column(); break; default: diff --git a/ba/ba1500a.uml b/ba/ba1500a.uml index 49ca9bf1f..6884cfb3b 100755 --- a/ba/ba1500a.uml +++ b/ba/ba1500a.uml @@ -22,7 +22,7 @@ END DATE F_DT BEGIN PROMPT 54 2 "Data " - FLAGS "AD" + FLAGS "A" END NUMBER F_USERS 4 diff --git a/ba/ba4700.cpp b/ba/ba4700.cpp index 3443489d5..f8175cca1 100644 --- a/ba/ba4700.cpp +++ b/ba/ba4700.cpp @@ -13,10 +13,21 @@ protected: virtual bool user_destroy() ; virtual TMask* get_mask(int mode) { return _msk;} virtual TRelation* get_relation() const { return _rel;} + virtual bool get_next_key(TToken_string& key); public: }; +bool TContact_application::get_next_key(TToken_string& key) +{ + TRecnotype n = 1; + TLocalisamfile& f = _rel->file(); + if (f.last() == NOERR) + n += f.get_long("CONTACT"); + key.format("%d|%ld", F_CONTACT, n); + return true; +} + bool TContact_application::user_create() { _rel = new TRelation(LF_CONTACT) ; diff --git a/ba/ba4700a.h b/ba/ba4700a.h index 0624c140d..e5617a01c 100644 --- a/ba/ba4700a.h +++ b/ba/ba4700a.h @@ -1,7 +1,34 @@ -#define F_CONTACT 101 -#define F_COGNOME 102 -#define F_NOME 103 +#define F_CONTACT 101 +#define F_COGNOME 102 +#define F_NOME 103 +#define F_CODALT 104 +#define F_TITOLO 105 -#define F_TIPOCF 111 -#define F_CODCF 112 -#define F_RAGSOC 113 +#define F_TIPOCF 111 +#define F_CODCF 112 +#define F_RAGSOC 113 +#define F_QUALIFICA 114 + +#define F_MAIL 121 +#define F_NUMTEL 122 +#define F_NUMCEL 123 +#define F_NUMFAX 124 + +#define F_STATO 131 +#define F_COMUNE 132 +#define F_DENCOM 133 +#define F_INDIRIZZO 134 +#define F_CAP 135 +#define F_LOCALITA 136 + +#define F_MAIL2 221 +#define F_NUMTEL2 222 +#define F_NUMCEL2 223 +#define F_NUMFAX2 224 + +#define F_STATO2 231 +#define F_COMUNE2 232 +#define F_DENCOM2 233 +#define F_INDIRIZZO2 234 +#define F_CAP2 235 +#define F_LOCALITA2 236 diff --git a/ba/ba4700a.uml b/ba/ba4700a.uml index 8c8be809a..be22427e0 100644 --- a/ba/ba4700a.uml +++ b/ba/ba4700a.uml @@ -4,16 +4,21 @@ TOOLBAR "" 0 0 0 2 #include ENDPAGE -PAGE "Contatti" -1 -1 77 20 +PAGE "Ufficio" -1 -1 77 20 -GROUPBOX DLG_NULL 76 5 +GROUPBOX DLG_NULL 76 6 BEGIN - PROMPT 1 0 "@bCodici" + PROMPT 1 0 "@bContatto" END - + +TEXT DLG_NULL +BEGIN + PROMPT 2 1 "@bCodice" +END + NUMBER F_CONTACT 6 BEGIN - PROMPT 2 1 "Cod." + PROMPT 2 2 "" USE LF_CONTACT INPUT CONTACT F_CONTACT DISPLAY "Codice" CONTACT @@ -21,14 +26,25 @@ BEGIN DISPLAY "Nome@50" NOME DISPLAY "Alternativo@20" CODALT OUTPUT F_CONTACT CONTACT - CHECKTYPE FORCED + OUTPUT F_COGNOME COGNOME + OUTPUT F_NOME NOME + OUTPUT F_TIPOCF TIPOCF + OUTPUT F_CODCF CODCF + OUTPUT F_CODALT CODALT + CHECKTYPE REQUIRED FIELD CONTACT - KEY 1 3 + KEY 1 END +STRING F_TITOLO 20 +BEGIN + PROMPT 15 1 "Titolo " + FIELD TITOLO +END + STRING F_COGNOME 50 BEGIN - PROMPT 16 1 "Cognome " + PROMPT 15 2 "Cognome " USE LF_CONTACT KEY 2 INPUT COGNOME F_COGNOME INPUT NOME F_NOME @@ -36,7 +52,7 @@ BEGIN DISPLAY "Nome@50" NOME DISPLAY "Codice" CONTACT DISPLAY "Alternativo@20" CODALT - OUTPUT F_CONTACT CONTACT + COPY OUTPUT F_CONTACT CHECKTYPE REQUIRED FIELD COGNOME KEY 2 @@ -44,24 +60,46 @@ END STRING F_NOME 50 BEGIN - PROMPT 16 2 "Nome " + PROMPT 15 3 "Nome " COPY ALL F_COGNOME CHECKTYPE REQUIRED FIELD NOME KEY 2 END +STRING F_CODALT 20 +BEGIN + PROMPT 2 4 "Codice alternativo " + FLAGS "U" + USE LF_CONTACT KEY 4 + INPUT CODALT F_CODALT + DISPLAY "Cod. Alt.@15" RICALT + DISPLAY "Titolo@10" TITOLO + DISPLAY "Cognome@50" COGNOME + DISPLAY "Nome@50" NOME + DISPLAY "Codice" CONTACT + COPY OUTPUT F_CONTACT + CHECKTYPE NORMAL + KEY 4 + FIELD CODALT +END + +GROUPBOX DLG_NULL 76 6 +BEGIN + PROMPT 1 6 "@bCliente/Fornitore" +END + LIST F_TIPOCF 1 10 BEGIN - PROMPT 2 3 "" + PROMPT 2 7 "" ITEM "C|Cliente" ITEM "F|Fornitore" - KEY 3 + FIELD TIPOCF END NUMBER F_CODCF 6 BEGIN - PROMPT 15 3 "" + PROMPT 16 7 "" USE LF_CLIFO INPUT TIPOCF F_TIPOCF DISPLAY "Codice" CODCF @@ -71,12 +109,12 @@ BEGIN DISPLAY "Partita IVA@15" PAIV OUTPUT F_CODCF CODCF CHECKTYPE NORMAL - KEY 3 + FIELD CODCF END STRING F_RAGSOC 50 BEGIN - PROMPT 24 3 "" + PROMPT 2 8 "Ragione sociale " USE LF_CLIFO KEY 2 DISPLAY "Ragione Sociale@50" RAGSOC DISPLAY "Cod. Alt.@15" RICALT @@ -87,4 +125,198 @@ BEGIN CHECKTYPE NORMAL END +STRING F_QUALIFICA 20 +BEGIN + PROMPT 45 7 "Qualifica " + FIELD QUALIFICA +END + +GROUPBOX DLG_NULL 76 4 +BEGIN + PROMPT 1 10 "@bUfficio" +END + +STRING F_MAIL 30 +BEGIN + PROMPT 2 11 "Mail " + FIELD MAIL +END + +STRING F_NUMTEL 30 +BEGIN + PROMPT 40 11 "Tel. " + FIELD NUMTEL +END + +STRING F_NUMFAX 30 +BEGIN + PROMPT 2 12 "FAX " + FIELD NUMFAX +END + +STRING F_NUMCEL 30 +BEGIN + PROMPT 40 12 "Cell." + FIELD NUMCEL +END + +GROUPBOX DLG_NULL 76 6 +BEGIN + PROMPT 1 14 "@bIndirizzo" +END + +NUMBER F_STATO 3 +BEGIN + PROMPT 2 15 "Stato " + USE %STA + INPUT CODTAB F_STATO + DISPLAY "Codice " CODTAB + DISPLAY "Denominazione@50" S0 + OUTPUT F_STATO CODTAB + CHECKTYPE NORMAL + FIELD STATO +END + +STRING F_COMUNE 4 +BEGIN + PROMPT 16 15 "Comune " + FLAGS "U" + USE LF_COMUNI + INPUT STATO F_STATO + INPUT COM F_COMUNE + DISPLAY "Stato" STATO + DISPLAY "Codice" COM + DISPLAY "Denominazione@50" DENCOM + OUTPUT F_STATO STATO + OUTPUT F_COMUNE COM + OUTPUT F_DENCOM DENCOM + CHECKTYPE NORMAL + FIELD CODCOM +END + +STRING F_DENCOM 50 +BEGIN + PROMPT 2 16 "Denominazione " + USE LF_COMUNI KEY 2 + INPUT STATO F_STATO + INPUT DENCOM F_COMUNE + DISPLAY "Denominazione@50" DENCOM + DISPLAY "Stato" STATO + DISPLAY "Codice" COM + COPY OUTPUT F_COMUNE + CHECKTYPE NORMAL +END + +STRING F_INDIRIZZO 50 +BEGIN + PROMPT 2 17 "Indirizzo " + FIELD INDIR +END + +NUMER F_CAP 5 +BEGIN + PROMPT 2 18 "C.A.P. " + FIELD CAP +END + +STRING F_LOCALITA 30 +BEGIN + PROMPT 34 18 "Località " + FIELD LOCALITA +END + +ENDPAGE + +PAGE "Casa" -1 -1 77 20 + +GROUPBOX DLG_NULL 76 4 +BEGIN + PROMPT 1 1 "@bCasa" +END + +STRING F_MAIL2 30 +BEGIN + PROMPT 2 2 "Mail " + FIELD MAIL2 +END + +STRING F_NUMTEL2 30 +BEGIN + PROMPT 40 2 "Tel. " + FIELD NUMTEL2 +END + +STRING F_NUMFAX2 30 +BEGIN + PROMPT 2 3 "FAX " + FIELD NUMFAX2 +END + +STRING F_NUMCEL2 30 +BEGIN + PROMPT 40 3 "Cell." + FIELD NUMCEL2 +END + +GROUPBOX DLG_NULL 76 6 +BEGIN + PROMPT 1 5 "@bIndirizzo di casa" +END + +NUMBER F_STATO2 3 +BEGIN + PROMPT 2 6 "Stato " + USE %STA + INPUT CODTAB F_STATO2 + COPY DISPLAY F_STATO + OUTPUT F_STATO2 CODTAB + CHECKTYPE NORMAL + FIELD STATO2 +END + +STRING F_COMUNE2 4 +BEGIN + PROMPT 16 6 "Comune " + FLAGS "U" + COPY USE F_COMUNE + INPUT STATO F_STATO2 + INPUT COM F_COMUNE2 + COPY DISPLAY F_COMUNE + OUTPUT F_STATO2 STATO + OUTPUT F_COMUNE2 COM + OUTPUT F_DENCOM2 DENCOM + CHECKTYPE NORMAL + FIELD CODCOM2 +END + +STRING F_DENCOM2 50 +BEGIN + PROMPT 2 7 "Denominazione " + COPY USE F_DENCOM + INPUT DENCOM F_COMUNE2 + COPY DISPLAY F_DENCOM + COPY OUTPUT F_COMUNE2 + CHECKTYPE NORMAL +END + +STRING F_INDIRIZZO2 50 +BEGIN + PROMPT 2 8 "Indirizzo " + FIELD INDIR2 +END + +NUMER F_CAP2 5 +BEGIN + PROMPT 2 9 "C.A.P. " + FIELD CAP2 +END + +STRING F_LOCALITA2 30 +BEGIN + PROMPT 34 9 "Località " + FIELD LOCALITA2 +END + +ENDPAGE + ENDMASK diff --git a/ba/bamenu.men b/ba/bamenu.men index 2c9bed3b2..23b46d2fe 100755 --- a/ba/bamenu.men +++ b/ba/bamenu.men @@ -19,14 +19,15 @@ Flags = "" Item_01 = "Persone fisiche", "ba4 -1 F", "" Item_02 = "Persone giuridiche", "ba4 -1 G", "" Item_03 = "Ditte", "ba4 -2", "" -Item_04 = "Ricerca Soci", "ba5", "" -Item_05 = "Tabelle ministeriali", [MENU_011] -Item_06 = "Tabelle", [MENU_002] -Item_07 = "Stampa anagrafiche", "ba6 -0", "" -Item_08 = "Stampa tabelle", [MENU_003] -Item_09 = "Stampa tabelle ministeriali", [MENU_012] -Item_10 = "Stampa fogli libri bollati", "ba3 -2", "F" -Item_11 = "Moduli aggiuntivi", +Item_04 = "Contatti", "ba4 -6", "" +Item_05 = "Ricerca Soci", "ba5", "" +Item_06 = "Tabelle ministeriali", [MENU_011] +Item_07 = "Tabelle", [MENU_002] +Item_08 = "Stampa anagrafiche", "ba6 -0", "" +Item_09 = "Stampa tabelle", [MENU_003] +Item_10 = "Stampa tabelle ministeriali", [MENU_012] +Item_11 = "Stampa fogli libri bollati", "ba3 -2", "F" +Item_12 = "Moduli aggiuntivi", [MENU_002] Caption = "Tabelle"