You are on page 1of 7

CREATE OR REPLACE PACKAGE BODY GPI.PKG_COPIA_POI IS PROCEDURE SP_PKG_COPIA_POI_BUS( PI_CODIGO_POI IN TAB_PLAN_OPER_INST.

N_CODIGO_POI%TYPE, PO_CURSOR_RESULTADO OUT RESULTADO_CURSOR, PO_RESULTADO OUT INTEGER, PO_ERR_DESC OUT VARCHAR ) AS BEGIN PO_RESULTADO := 1; BEGIN OPEN PO_CURSOR_RESULTADO FOR SELECT DISTINCT A.N_CODIGO_AAI, B.C_NOMBRE, C.C_SIGLA, B.C_MNEMONICO FROM TAB_TAREA A INNER JOIN TAB_ACTI_ACCI_INVE B ON A.N_CODIGO_AAI=B.N_CODIGO_AAI INNER JOIN TAB_UNIDAD_ORGANICA C ON B.N_CODIGO_ORG=C.N_CODIGO_UNI_ORG WHERE N_CODIGO_POI= CASE WHEN PI_CODIGO_POI IS NULL THEN N_CODIGO_POI ELSE PI_CODIGO_POI END GROUP BY A.N_CODIGO_AAI,B.C_NOMBRE ,B.N_CODIGO_ORG,C.C_SIGLA,B.C_MNEMONI CO; EXCEPTION WHEN OTHERS THEN PO_RESULTADO := SQLCODE; PO_ERR_DESC := SUBSTR(SQLERRM,1,100); END; END SP_PKG_COPIA_POI_BUS; PROCEDURE SP_PKG_COPIA_POINUEV_BUS( PI_CODIGO IN TAB_PLAN_OPER_INST.N_CODIGO%TYPE, PI_ANIO IN TAB_PLAN_OPER_INST.N_ANIO%TYPE, PI_CODIGO_ORG IN TAB_ACTI_ACCI_INVE.N_CODIGO_ORG%TYPE, PI_MNEMONICO IN TAB_ACTI_ACCI_INVE.C_MNEMONICO%TYPE, PI_NOMBRE IN TAB_ACTI_ACCI_INVE.C_NOMBRE%TYPE, PO_CURSOR_RESULTADO OUT RESULTADO_CURSOR, PO_RESULTADO OUT INTEGER, PO_ERR_DESC OUT VARCHAR ) AS BEGIN PO_RESULTADO :=1; BEGIN OPEN PO_CURSOR_RESULTADO FOR SELECT A.N_CODIGO_AAI, A.C_NOMBRE , B.C_SIGLA , A.C_MNEMONICO FROM TAB_ACTI_ACCI_INVE A INNER JOIN TAB_UNIDAD_ORGANICA B ON A.N_CODIGO_ORG=B.N_CODIGO_UNI_ORG WHERE A.C_NOMBRE like '%'|| PI_NOMBRE || '%'

AND A.N_CODIGO=

CASE WHEN PI_CODIGO IS NULL THEN N_CODIGO ELSE PI_CODIGO END CASE WHEN PI_ANIO IS NULL THEN N_ANIO ELSE PI_ANIO END

AND A.N_ANIO=

AND A.C_MNEMONICO= END AND A.N_CODIGO_ORG=

CASE WHEN PI_MNEMONICO IS NULL THEN C_MNEMONICO ELSE PI_MNEMONICO CASE WHEN PI_CODIGO_ORG IS NULL THEN N_CODIGO_ORG ELSE PI_CODIGO_ORG END;

EXCEPTION WHEN OTHERS THEN PO_RESULTADO := SQLCODE; PO_ERR_DESC := SUBSTR(SQLERRM,1,100); END; END SP_PKG_COPIA_POINUEV_BUS; PROCEDURE SP_PKG_COPIA_POI_INS( PI_CODIGO_AAI_ANTE IN TAB_ACTI_ACCI_INVE.N_CODIGO_AAI%TYPE, PI_CODIGO_AAI_NUEV IN TAB_ACTI_ACCI_INVE.N_CODIGO_AAI%TYPE, PO_RESULTADO OUT INTEGER, PO_ERR_DESC OUT VARCHAR) AS BEGIN PO_RESULTADO := 1; BEGIN INSERT INTO TAB_APOYO_COPIAPOI( N_CODIGO_AAI_ANTE, N_CODIGO_AAI_NUEV) VALUES( PI_CODIGO_AAI_ANTE, PI_CODIGO_AAI_NUEV);

COMMIT; EXCEPTION WHEN OTHERS THEN PO_RESULTADO := SQLCODE; PO_ERR_DESC := SUBSTR(SQLERRM,1,100); END; END SP_PKG_COPIA_POI_INS; PROCEDURE SP_PKG_COPIA_POI_GEN( PI_CODIGO IN TAB_PLAN_OPER_INST.N_CODIGO%TYPE, PI_CODIGO_POI IN TAB_PLAN_OPER_INST.N_CODIGO_POI%TYPE, PI_ANIO PI_USUARIO_CREACION PO_RESULTADO PO_ERR_DESC IN TAB_PLAN_OPER_INST.N_ANIO%TYPE, IN TAB_PLAN_OPER_INST.C_USUARIO_CREACION%TYPE, OUT INTEGER, OUT VARCHAR )

AS BEGIN PO_RESULTADO := 1; DECLARE CURSOR CUR_COP_TAR IS SELECT N_CODIGO_TAREA FROM TAB_TAREA_COPIA; CURSOR CUR_COP_STA IS SELECT A.N_CODIGO_ST,B.N_CODIGO_ORGANO FROM TAB_SUBTAREA_COPIA A, TAB_TAREA_ COPIA B WHERE A.N_CODIGO_TAREA=B.N_CODIGO_TAREA; CURSOR CUR_COP_SST IS SELECT A.N_CODIGO_SST,B.N_CODIGO_ST_NUEV,B.N_CODIGO_ORG FROM TAB_SSUBTAREA_C OPIA A ,TAB_SUBTAREA_COPIA B WHERE A.N_CODIGO_ST=B.N_CODIGO_ST; CURSOR ACTU_COD_AAI IS SELECT N_CODIGO_AAI_ANTE , N_CODIGO_AAI_NUEV FROM TAB_APOYO_COPIAPOI; VN_COD_POI_SQ TAB_PLAN_OPER_INST.N_CODIGO_POI%TYPE; VN_COD_AAI_ANTE TAB_ACTI_ACCI_INVE.N_CODIGO_AAI%TYPE; VN_COD_AAI_NUEV TAB_ACTI_ACCI_INVE.N_CODIGO_AAI%TYPE; VN_COD_TARE TAB_TAREA.N_CODIGO_TAREA%TYPE; VN_COD_TARE_SQ TAB_TAREA.N_CODIGO_TAREA%TYPE; VN_COD_STAR TAB_SUBTAREA.N_CODIGO_ST%TYPE; VN_COD_STAR_SQ TAB_SUBTAREA.N_CODIGO_ST%TYPE; VN_COD_SSTA TAB_SSUBTAREA.N_CODIGO_SST%TYPE; VN_COD_SSTA_SQ TAB_SSUBTAREA.N_CODIGO_SST%TYPE; VN_COD_ST_SST TAB_SSUBTAREA.N_CODIGO_SST%TYPE; VN_COD_UNID_ORG TAB_TAREA.N_CODIGO_UNID_ORGA%TYPE; VN_COD_OOI TAB_TAREA.N_CODIGO_OOI%TYPE; N_COD_ORG_NUEV_ST N_COD_ORG_NUEV_SST BEGIN BEGIN DELETE FROM TAB_TAREA_COPIA; DELETE FROM TAB_SSUBTAREA_COPIA; DELETE FROM TAB_SUBTAREA_COPIA; END; BEGIN SELECT SQ_TAB_PLAN_OPER_INST.NEXTVAL INTO VN_COD_POI_SQ FROM DUAL; INSERT INTO TAB_PLAN_OPER_INST (N_CODIGO_POI, N_CODIGO_OOI, N_CODIGO, N_ANIO, C_ACRONIMO, D_FECHA_APROBACION, C_RESOLUCION, D_FECHA_CREACION, C_USUARIO_CREACION, C_SITU_VIGE, C_DESC_ESTA) SELECT VN_COD_POI_SQ, N_CODIGO_OOI, PI_CODIGO, PI_ANIO, 'POI '||PI_ANIO, NULL, NULL, SYSDATE, C_USUARIO_CREACION, 1, NULL FROM TAB_PLAN_OPER_INST WHERE N_CODIGO_POI=PI_CODIGO_POI; END; TAB_SUBTAREA.N_CODIGO_ORG%TYPE; TAB_SSUBTAREA.N_CODIGO_ORG%TYPE;

BEGIN INSERT INTO TAB_TAREA_COPIA (C_NOMBRE, C_ORDEN_OOI, N_CODIGO_AAI, N_CODIGO_OOI, N_CODIGO_ORGANO, N_CODIGO_POI, N_CODIGO_TAREA, N_CODIGO_UNID_ORGA, N_METAS_FISICAS, N_ORD EN, N_PONDERACION) SELECT C_NOMBRE, C_ORDEN_OOI, N_CODIGO_AAI, N_CODIGO_OOI, N_CODIGO_ORGANO, VN_COD_POI_SQ, N_CODIGO_TAREA, NULL, N_METAS_FISICAS, N_ORDEN, N_PONDERACION FROM TAB_TAREA WHERE N_CODIGO_POI=PI_CODIGO_POI; END; BEGIN INSERT INTO TAB_SUBTAREA_COPIA (N_CODIGO_ST, N_CODIGO_ORG, N_CODIGO_TAREA, N_ORDEN_ST, C_NOMBRE_ST, N_CODIGO_MEDIDA, N_PONDERACION, C_SITU_STC, N_MF_ENERO, N_MF_FEBRERO, N_MF_MARZO, N_MF_ABRIL, N_MF_MAYO,N_MF_JUNIO, N_MF_JULIO, N_MF_AGOSTO, N_MF_SETIEMBRE, N_MF_OCTUBRE, N_MF_NOVIEMBRE, N_MF_DICIEMBRE, N_REPRESENTANTE_UO_ID) SELECT N_CODIGO_ST, N_CODIGO_ORG, N_CODIGO_TAREA, N_ORDEN_ST, C_NOMBRE_ST, N_CODIGO_MEDIDA, N_PONDERACION, C_SITU_STC, N_MF_ENERO, N_MF_FEBRERO, N_MF_MARZO, N_MF_ABRIL, N_MF_MAYO, N_MF_JUNIO, N_MF_JULIO, N_MF_AGOSTO, N_MF_SETIEMBRE, N_MF_OCTUBRE, N_MF_NOVIEMBRE, N_MF_DICIEMBRE, NULL FROM TAB_SUBTAREA WHERE N_CODIGO_TAREA IN (SELECT N_CODIGO_TAREA FROM TAB_TAREA_COPIA); END; BEGIN INSERT INTO TAB_SSUBTAREA_COPIA (N_CODIGO_SST,N_CODIGO_ORG, N_CODIGO_ST, C_DESC_ST, N_ORDEN_SST, C_NOMBRE_SST, D_FECHA_INICIO_SST, D_FECHA_FIN_SST, N_CODIGO_EJECUTOR) SELECT N_CODIGO_SST,N_CODIGO_ORG, N_CODIGO_ST, C_DESC_ST, N_ORDEN_SST, C_NOMBRE_SST, NULL, NULL, NULL FROM TAB_SSUBTAREA WHERE N_CODIGO_ST IN (SELECT N_CODIGO_ST FROM TAB_SUBTAREA_COPIA); END; /* begin insert into TWPUEB select N_CODIGO_SST, 'tabla', 'tabla' from TAB_SSUBT AREA_COPIA WHERE N_CODIGO_ST IN (SELECT N_CODIGO_ST FROM TAB_SUBTAREA_COPIA); end; */ BEGIN OPEN ACTU_COD_AAI; LOOP FETCH ACTU_COD_AAI INTO VN_COD_AAI_ANTE,VN_COD_AAI_ NUEV; EXIT WHEN ACTU_COD_AAI%NOTFOUND; SELECT N_CODIGO_ORG,N_CODIGO_OOI INTO VN_COD_UNID_O RG,VN_COD_OOI FROM TAB_ACTI_ACCI_INVE

WHERE N_CODIGO_AAI=VN_COD_AAI_NUEV; UPDATE TAB_TAREA_COPIA SET N_CODIGO_AAI= VN_COD_AAI_NUEV, N_CODIGO_OOI=VN_COD_OOI, N_CODIGO_ORGANO=VN_COD_UNID_ORG WHERE N_CODIGO_AAI=VN_COD_AAI_ANTE; end loop; CLOSE ACTU_COD_AAI; END; ----------------------------BEGIN OPEN CUR_COP_TAR; LOOP FETCH CUR_COP_TAR INTO VN_COD_TARE; EXIT WHEN CUR_COP_TAR%NOTFOUND; SELECT SQ_TAB_TAREA.NEXTVAL INTO VN_COD_TARE_SQ FR OM DUAL; UPDATE TAB_TAREA_COPIA SET N_CODIGO_TAREA= VN_COD_TARE_SQ WHERE N_CODIGO_TAREA=VN_COD_TARE; OPEN CUR_COP_STA; LOOP FETCH CUR_COP_STA INTO VN_COD_STAR,N_COD_ORG_NU EV_ST ; EXIT WHEN CUR_COP_STA%NOTFOUND; SELECT SQ_TAB_SUBTAREA.NEXTVAL INTO VN_COD_ STAR_SQ FROM DUAL; UPDATE TAB_SUBTAREA_COPIA SET N_CODIGO_ST_NUEV=VN_COD_STAR_SQ, N_CODIGO_TAREA=VN_COD_TARE_SQ, N_CODIGO_ORG=N_COD_ORG_NUEV_ST WHERE N_CODIGO_ST= VN_COD_STAR AND N_CODIGO_TAREA= VN_COD_TARE; end loop; CLOSE CUR_COP_STA; end loop; CLOSE CUR_COP_TAR; END; BEGIN OPEN CUR_COP_SST; LOOP FETCH CUR_COP_SST INTO VN_COD_SSTA,VN_COD_ST_SST,N_COD_ORG_ NUEV_SST; EXIT WHEN CUR_COP_SST%NOTFOUND; SELECT SQ_TAB_SSUBTAREA.NEXTVAL INTO VN_COD_SSTA_SQ FROM D UAL; UPDATE TAB_SSUBTAREA_COPIA

SET N_CODIGO_SST=VN_COD_SSTA_SQ, N_CODIGO_ST=VN_COD_ST_SST, N_CODIGO_ORG=N_COD_ORG_NUEV_SST WHERE N_CODIGO_SST= VN_COD_SSTA; --AND N_CODIGO_ST= VN_COD_ST_SST; ----AGRGADO 21092012 -- INSERT INTO TWPUEB VALUES (VN_COD_SSTA,'NUEVO',VN_COD_S STA_SQ); end loop; CLOSE CUR_COP_SST; END; ----------------------------BEGIN INSERT INTO TAB_SSUBTAREA (N_CODIGO_SST, N_CODIGO_ORG, N_CODIGO_ST, C_DESC_ST, N_ORDEN_SST, C_NOMBRE_SST, D_FECHA_INICIO_SST, D_FECHA_FIN_SST, N_CODIGO_EJECUTOR, D_FECHA_CREACION,C_USUARIO_CREACION) SELECT DISTINCT N_CODIGO_SST, N_CODIGO_ORG, N_CODIGO_ST, C_DESC_ST, N_ORDEN_SST, C_NOMBRE_SST, D_FECHA_INICIO_SST, D_FECHA_FIN_SST, N_CODIGO_EJECUTOR, SYSDATE,PI_USUARIO_CREACION FROM TAB_SSUBTAREA_COPIA; END; BEGIN INSERT INTO TAB_SUBTAREA (N_CODIGO_ST, N_CODIGO_ORG, N_CODIGO_TAREA, N_ORDEN_ST, C_NOMBRE_ST, N_CODIGO_MEDIDA, N_PONDERACION, C_SITU_STC, N_MF_ENERO, N_MF_FEBRERO, N_MF_MARZO, N_MF_ABRIL, N_MF_MAYO, N_MF_JUNIO, N_MF_JULIO, N_MF_AGOSTO, N_MF_SETIEMBRE, N_MF_OCTUBRE, N_MF_NOVIEMBRE, N_MF_DICIEMBR E, D_FECHA_CREACION, C_USUARIO_CREACION, N_REPRESENTANTE_UO_ID) SELECT --N_CODIGO_ST, N_CODIGO_ORG, N_CODIGO_TAREA, N_ORDEN_ST, C_NOMBRE_ST, N_CODIGO_ST_NUEV, N_CODIGO_ORG, N_CODIGO_TAREA, N_ORDEN_ST, C_NOMBRE_ST, N_CODIGO_MEDIDA, N_PONDERACION, C_SITU_STC, N_MF_ENERO, N_MF_FEBRERO, N_MF_MARZO, N_MF_ABRIL, N_MF_MAYO, N_MF_JUNIO, N_MF_JULIO, N_MF_AGOSTO, N_MF_SETIEMBRE, N_MF_OCTUBRE, N_MF_NOVIEMBRE, N_MF_DICIEMBR E, SYSDATE, PI_USUARIO_CREACION, N_REPRESENTANTE_UO_ID FROM TAB_SUBTAREA_CO PIA; END; BEGIN INSERT INTO TAB_TAREA (N_CODIGO_TAREA, N_CODIGO_POI, N_CODIGO_OOI, N_PONDERACION, N_METAS_FISI CAS, N_ORDEN, C_NOMBRE, N_CODIGO_ORGANO, N_CODIGO_UNID_ORGA, N_CODIGO_AAI, D_FECHA_CREACION, C_USUARIO_CREACION,C_ORDEN_OOI) SELECT N_CODIGO_TAREA, N_CODIGO_POI, N_CODIGO_OOI, N_PONDERACION, N_METAS_FISIC AS, N_ORDEN, C_NOMBRE, N_CODIGO_ORGANO, N_CODIGO_UNID_ORGA, N_CODIGO_AAI, SYSDATE,PI_USUARIO_CREACION,C_ORDEN_OOI FROM TAB_TAREA_COPIA; END; BEGIN DELETE FROM TAB_APOYO_COPIAPOI; END;

END; END SP_PKG_COPIA_POI_GEN; end PKG_COPIA_POI; /

You might also like