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
This commit is contained in:
guy 2012-04-13 15:07:32 +00:00
parent 9f287b3844
commit bb993a1e73
6 changed files with 331 additions and 49 deletions

View File

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

View File

@ -22,7 +22,7 @@ END
DATE F_DT
BEGIN
PROMPT 54 2 "Data "
FLAGS "AD"
FLAGS "A"
END
NUMBER F_USERS 4

View File

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

View File

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

View File

@ -4,16 +4,21 @@ TOOLBAR "" 0 0 0 2
#include <relapbar.h>
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

View File

@ -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", <baaddon.men>
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", <baaddon.men>
[MENU_002]
Caption = "Tabelle"