Subversion Repositories Sigmater

Rev

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
/