Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6 | Andrea | 1 | CREATE OR REPLACE PACKAGE PCK_GESTIONE_UTENTE IS |
2 | |||
3 | PROCEDURE CREAUTENTE(P_USERNAME VARCHAR2,P_PASSWORD VARCHAR2,P_NOME VARCHAR2,P_COGNOME VARCHAR2,P_EMAIL VARCHAR2,P_TIPOUTENTE NUMBER,P_RAGGRENTE NUMBER,P_ID_ENTE NUMBER,P_ID_LOGO NUMBER,P_FLAG_PLAN NUMBER,RESULT OUT VARCHAR2 ); |
||
4 | |||
5 | PROCEDURE ABILITA_UTENTE_ENTE(P_USERNAME VARCHAR2,P_TIPOUTENTE NUMBER,P_RAGGRENTE NUMBER,P_ID_ENTE NUMBER,P_ID_LOGO NUMBER,RESULT OUT VARCHAR2); |
||
6 | |||
7 | END PCK_GESTIONE_UTENTE; |
||
8 | / |
||
9 | CREATE OR REPLACE PACKAGE BODY PCK_GESTIONE_UTENTE IS |
||
10 | |||
11 | |||
12 | PROCEDURE CREAUTENTE(P_USERNAME VARCHAR2,P_PASSWORD VARCHAR2,P_NOME VARCHAR2,P_COGNOME VARCHAR2,P_EMAIL VARCHAR2,P_TIPOUTENTE NUMBER,P_RAGGRENTE NUMBER,P_ID_ENTE NUMBER,P_ID_LOGO NUMBER,P_FLAG_PLAN NUMBER,RESULT OUT VARCHAR2 ) IS |
||
13 | USER_PRESENTE NUMBER; |
||
14 | BEGIN |
||
15 | RESULT := 'OK'; |
||
16 | -- CONTROLLO SE L'UTENTE È PRESENTE |
||
17 | SELECT COUNT(*) INTO USER_PRESENTE |
||
18 | FROM WS_UTENTI S |
||
19 | WHERE S.USERNAME = P_USERNAME; |
||
20 | |||
21 | IF USER_PRESENTE = 1 THEN |
||
22 | RESULT:= 'UTENTE PRESENTE'; |
||
23 | RETURN; |
||
24 | END IF; |
||
25 | |||
26 | -- INSERIMENTO UTENTE |
||
27 | INSERT INTO WS_UTENTI (USERNAME,PASSWORD,COGNOME,NOME, |
||
28 | EMAIL,LOGIN,USR_LOGO,USR_FLAG_PLAN, |
||
29 | USR_CREATE_DATE,USR_EXPIRATION_DATE) |
||
30 | VALUES (P_USERNAME,P_PASSWORD,P_COGNOME,P_NOME, |
||
31 | P_EMAIL,UPPER(P_USERNAME),P_ID_LOGO,P_FLAG_PLAN, |
||
32 | SYSDATE,SYSDATE+365); |
||
33 | |||
34 | |||
35 | ABILITA_UTENTE_ENTE(P_USERNAME,P_TIPOUTENTE,P_RAGGRENTE,P_ID_ENTE,P_ID_LOGO,RESULT); |
||
36 | |||
37 | EXCEPTION |
||
38 | WHEN OTHERS THEN |
||
39 | RESULT:= 'ERRORE INSERIMENTO UTENTE: '|| SQLCODE ||' - '||SQLERRM; |
||
40 | ROLLBACK; |
||
41 | |||
42 | END CREAUTENTE; |
||
43 | |||
44 | |||
45 | PROCEDURE ABILITA_UTENTE_ENTE(P_USERNAME VARCHAR2,P_TIPOUTENTE NUMBER,P_RAGGRENTE NUMBER,P_ID_ENTE NUMBER,P_ID_LOGO NUMBER,RESULT OUT VARCHAR2 ) IS |
||
46 | -- CURSORE SULLE COMUNITÀ MONTANE |
||
47 | CURSOR CUR_RAGG_COMUNI (R_ID_ENTE NUMBER) IS |
||
48 | SELECT D.ID_ENTE |
||
49 | FROM WS_RAGGR_ENTI S, WS_CROSS_RAGGR_ENTI D |
||
50 | WHERE S.ID_RAGGR = D.ID_RAGG AND |
||
51 | S.TIPO_UTENTE = P_TIPOUTENTE AND |
||
52 | S.ID_RAGGR = R_ID_ENTE; |
||
53 | -- CODICE BELFIORE DEL COMUNE |
||
54 | LOC_ID_ENTE WS_CROSS_RAGGR_ENTI.ID_ENTE%TYPE; |
||
55 | |||
56 | V_ID_ENTE NUMBER; |
||
57 | |||
58 | BEGIN |
||
59 | RESULT := 'OK'; |
||
60 | -- delete |
||
61 | DELETE FROM WS_CROSS_ENTI_UTENTI where USERNAME = P_USERNAME; |
||
62 | |||
63 | IF P_TIPOUTENTE = 4 THEN |
||
64 | -- INSERISCO L'ABILITAZIONE |
||
65 | INSERT INTO WS_CROSS_ENTI_UTENTI VALUES(P_USERNAME,P_ID_ENTE); |
||
66 | ELSE |
||
67 | IF P_ID_ENTE IS NULL THEN |
||
68 | V_ID_ENTE := 1; |
||
69 | ELSE |
||
70 | V_ID_ENTE := P_ID_ENTE; |
||
71 | END IF; |
||
72 | OPEN CUR_RAGG_COMUNI(V_ID_ENTE); |
||
73 | LOOP |
||
74 | FETCH CUR_RAGG_COMUNI INTO LOC_ID_ENTE; |
||
75 | EXIT WHEN CUR_RAGG_COMUNI%NOTFOUND; |
||
76 | INSERT INTO WS_CROSS_ENTI_UTENTI VALUES(P_USERNAME,LOC_ID_ENTE); |
||
77 | END LOOP; |
||
78 | CLOSE CUR_RAGG_COMUNI; |
||
79 | END IF; |
||
80 | |||
81 | -- update tipo utente |
||
82 | UPDATE WS_UTENTI |
||
83 | SET USR_LEVEL = P_TIPOUTENTE, |
||
84 | USR_RAGGR_ENTI = P_RAGGRENTE, |
||
85 | USR_LOGO = P_ID_LOGO |
||
86 | WHERE USERNAME = P_USERNAME; |
||
87 | COMMIT; |
||
88 | EXCEPTION |
||
89 | WHEN OTHERS THEN |
||
90 | RESULT:= 'ERRORE INSERIMENTO UTENTE: '|| SQLCODE ||' - '||SQLERRM; |
||
91 | ROLLBACK; |
||
92 | |||
93 | END ABILITA_UTENTE_ENTE; |
||
94 | |||
95 | |||
96 | END PCK_GESTIONE_UTENTE; |
||
97 | / |