First Commit - Source Code from Reply
This commit is contained in:
123
dbcmnpsrc/FE/mnpapp/script/dbUpDate/KitLuglio10/PrcCalcSim.sql
Normal file
123
dbcmnpsrc/FE/mnpapp/script/dbUpDate/KitLuglio10/PrcCalcSim.sql
Normal file
@@ -0,0 +1,123 @@
|
||||
CREATE OR REPLACE PROCEDURE "CALCOLO_SIM_PRJHOC" (dataRif IN DATE )
|
||||
|
||||
AS
|
||||
-- PURPOSE: Aggiorna la tabella MNP_DW_SLA_3GG_OUT
|
||||
-- valorizzando il numero delle SIM per i progetti ad HOC.
|
||||
-- Elabora i record che hanno come mese di competenza
|
||||
-- il mese precedente a dataRif.
|
||||
--
|
||||
--
|
||||
-- MODIFICATION HISTORY
|
||||
-- Person Date Comments
|
||||
-- Letizia MOnosilio 04/11/2010 Creazione script
|
||||
---------------------------------------
|
||||
num_sim NUMBER :=0;
|
||||
memo_richiesta VARCHAR2(23);
|
||||
memo_gruppo VARCHAR2(12);
|
||||
n_rec INTEGER := 0;
|
||||
|
||||
|
||||
CURSOR record_sim_rec
|
||||
IS
|
||||
SELECT ric.codice_gruppo codiceGruppo, sla.ID_RICHIESTA idRichiesta
|
||||
FROM dwh.mnp_dw_sla_3gg_out sla, mnp.mnp_gestione_richiesta_rec ric
|
||||
WHERE sla.id_richiesta=ric.id_richiesta AND
|
||||
sla.mese_comp_finale = TO_CHAR ( Last_Day(ADD_MONTHS(dataRif,-2))+1, 'MM/YYYY') AND
|
||||
sla.processo ='R' AND
|
||||
sla.flag_calcolo_numsim = 1
|
||||
ORDER BY ric.codice_gruppo, sla.ID_RICHIESTA;
|
||||
|
||||
CURSOR record_sim_don
|
||||
IS
|
||||
SELECT ric.codice_gruppo codiceGruppo, sla.ID_RICHIESTA idRichiesta
|
||||
FROM dwh.mnp_dw_sla_3gg_out sla, mnp.mnp_gestione_richiesta ric
|
||||
WHERE sla.id_richiesta=ric.id_richiesta AND
|
||||
sla.mese_comp_finale = TO_CHAR ( Last_Day(ADD_MONTHS(dataRif,-2))+1, 'MM/YYYY') AND
|
||||
sla.processo ='D' AND
|
||||
sla.flag_calcolo_numsim = 1
|
||||
ORDER BY ric.codice_gruppo, sla.ID_RICHIESTA;
|
||||
|
||||
BEGIN
|
||||
|
||||
|
||||
DBMS_OUTPUT.put_line ('CALCOLO_SIM_PRJHOC: INIZIO PROCEDURA calcolo SIM Recipient- '||TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS'));
|
||||
DBMS_OUTPUT.put_line('Periodo di competenza = '|| TO_CHAR ( Last_Day(ADD_MONTHS(dataRif,-2))+1, 'MM/YYYY'));
|
||||
|
||||
memo_richiesta:=null;
|
||||
memo_gruppo := null;
|
||||
|
||||
FOR rec IN record_sim_rec LOOP
|
||||
n_rec := n_rec +1;
|
||||
BEGIN
|
||||
|
||||
IF (memo_richiesta is null) OR (memo_richiesta <> rec.idRichiesta)
|
||||
THEN
|
||||
BEGIN
|
||||
memo_richiesta:= rec.idRichiesta;
|
||||
IF (memo_gruppo is null) OR (memo_gruppo <> rec.codiceGruppo)
|
||||
THEN
|
||||
BEGIN
|
||||
memo_gruppo:= rec.codiceGruppo;
|
||||
SELECT COUNT(*)
|
||||
INTO num_sim
|
||||
FROM mnp.mnp_gestione_richiesta_rec ric
|
||||
WHERE ric.CODICE_GRUPPO=rec.codiceGruppo;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
UPDATE dwh.mnp_dw_sla_3gg_out
|
||||
SET numero_sim = num_sim
|
||||
WHERE
|
||||
mese_comp_finale = TO_CHAR ( Last_Day(ADD_MONTHS(dataRif,-2))+1, 'MM/YYYY') AND
|
||||
id_richiesta = rec.idRichiesta;
|
||||
END;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
DBMS_OUTPUT.put_line ('CALCOLO_SIM_PRJHOC: terminato calcolo SIM Recipient');
|
||||
|
||||
FOR rec IN record_sim_don LOOP
|
||||
n_rec := n_rec +1;
|
||||
BEGIN
|
||||
|
||||
IF (memo_richiesta is null) OR (memo_richiesta <> rec.idRichiesta)
|
||||
THEN
|
||||
BEGIN
|
||||
memo_richiesta:= rec.idRichiesta;
|
||||
IF (memo_gruppo is null) OR (memo_gruppo <> rec.codiceGruppo)
|
||||
THEN
|
||||
BEGIN
|
||||
memo_gruppo:= rec.codiceGruppo;
|
||||
SELECT COUNT(*)
|
||||
INTO num_sim
|
||||
FROM mnp.mnp_gestione_richiesta ric
|
||||
WHERE ric.CODICE_GRUPPO=rec.codiceGruppo;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
UPDATE dwh.mnp_dw_sla_3gg_out
|
||||
SET numero_sim = num_sim
|
||||
WHERE
|
||||
mese_comp_finale = TO_CHAR ( Last_Day(ADD_MONTHS(dataRif,-2))+1, 'MM/YYYY') AND
|
||||
id_richiesta = rec.idRichiesta;
|
||||
END;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
DBMS_OUTPUT.put_line ('CALCOLO_SIM_PRJHOC: terminato calcolo SIM Donor');
|
||||
|
||||
COMMIT;
|
||||
|
||||
DBMS_OUTPUT.put_line ('PCALCOLO_SIM_PRJHOC: FINE PROCEDURA - '||TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS')||' - RECORDS TRATTATI: '||N_REC);
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
if record_sim_rec%ISOPEN then CLOSE record_sim_rec;
|
||||
end if;
|
||||
if record_sim_don%ISOPEN then CLOSE record_sim_don;
|
||||
end if;
|
||||
DBMS_OUTPUT.put_line ('Errore in CALCOLO_SIM_PRJHOC ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));
|
||||
RETURN;
|
||||
END calcolo_sim_prjhoc;
|
||||
/
|
||||
Reference in New Issue
Block a user