Blame | Last modification | View Log | Download | RSS feed
CREATE OR REPLACE PACKAGE PCK_GESTIONE_UTENTE IS
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 );
PROCEDURE ABILITA_UTENTE_ENTE(P_USERNAME VARCHAR2,P_TIPOUTENTE NUMBER,P_RAGGRENTE NUMBER,P_ID_ENTE NUMBER,P_ID_LOGO NUMBER,RESULT OUT VARCHAR2);
END PCK_GESTIONE_UTENTE;
/
CREATE OR REPLACE PACKAGE BODY PCK_GESTIONE_UTENTE IS
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
USER_PRESENTE NUMBER;
BEGIN
RESULT := 'OK';
-- CONTROLLO SE L'UTENTE È PRESENTE
SELECT COUNT(*) INTO USER_PRESENTE
FROM WS_UTENTI S
WHERE S.USERNAME = P_USERNAME;
IF USER_PRESENTE = 1 THEN
RESULT:= 'UTENTE PRESENTE';
RETURN;
END IF;
-- INSERIMENTO UTENTE
INSERT INTO WS_UTENTI (USERNAME,PASSWORD,COGNOME,NOME,
EMAIL,LOGIN,USR_LOGO,USR_FLAG_PLAN,
USR_CREATE_DATE,USR_EXPIRATION_DATE)
VALUES (P_USERNAME,P_PASSWORD,P_COGNOME,P_NOME,
P_EMAIL,UPPER(P_USERNAME),P_ID_LOGO,P_FLAG_PLAN,
SYSDATE,SYSDATE+365);
ABILITA_UTENTE_ENTE(P_USERNAME,P_TIPOUTENTE,P_RAGGRENTE,P_ID_ENTE,P_ID_LOGO,RESULT);
EXCEPTION
WHEN OTHERS THEN
RESULT:= 'ERRORE INSERIMENTO UTENTE: '|| SQLCODE ||' - '||SQLERRM;
ROLLBACK;
END CREAUTENTE;
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
-- CURSORE SULLE COMUNITÀ MONTANE
CURSOR CUR_RAGG_COMUNI (R_ID_ENTE NUMBER) IS
SELECT D.ID_ENTE
FROM WS_RAGGR_ENTI S, WS_CROSS_RAGGR_ENTI D
WHERE S.ID_RAGGR = D.ID_RAGG AND
S.TIPO_UTENTE = P_TIPOUTENTE AND
S.ID_RAGGR = R_ID_ENTE;
-- CODICE BELFIORE DEL COMUNE
LOC_ID_ENTE WS_CROSS_RAGGR_ENTI.ID_ENTE%TYPE;
V_ID_ENTE NUMBER;
BEGIN
RESULT := 'OK';
-- delete
DELETE FROM WS_CROSS_ENTI_UTENTI where USERNAME = P_USERNAME;
IF P_TIPOUTENTE = 4 THEN
-- INSERISCO L'ABILITAZIONE
INSERT INTO WS_CROSS_ENTI_UTENTI VALUES(P_USERNAME,P_ID_ENTE);
ELSE
IF P_ID_ENTE IS NULL THEN
V_ID_ENTE := 1;
ELSE
V_ID_ENTE := P_ID_ENTE;
END IF;
OPEN CUR_RAGG_COMUNI(V_ID_ENTE);
LOOP
FETCH CUR_RAGG_COMUNI INTO LOC_ID_ENTE;
EXIT WHEN CUR_RAGG_COMUNI%NOTFOUND;
INSERT INTO WS_CROSS_ENTI_UTENTI VALUES(P_USERNAME,LOC_ID_ENTE);
END LOOP;
CLOSE CUR_RAGG_COMUNI;
END IF;
-- update tipo utente
UPDATE WS_UTENTI
SET USR_LEVEL = P_TIPOUTENTE,
USR_RAGGR_ENTI = P_RAGGRENTE,
USR_LOGO = P_ID_LOGO
WHERE USERNAME = P_USERNAME;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
RESULT:= 'ERRORE INSERIMENTO UTENTE: '|| SQLCODE ||' - '||SQLERRM;
ROLLBACK;
END ABILITA_UTENTE_ENTE;
END PCK_GESTIONE_UTENTE;
/