CREATE OR REPLACE PROCEDURE sp_fco_baja_tablas
(
    vvc_tabla    char
)
AS
    vvc_sql         varchar2(255);
    vin_id_cursor   integer;
    vin_rows	    integer;
BEGIN
    -- Eliminar la tabla
    BEGIN
        vin_id_cursor := dbms_sql.open_cursor;
        dbms_sql.parse(vin_id_cursor, 'DROP TABLE ' || vvc_tabla, dbms_sql.v7);
        vin_rows := dbms_sql.execute(vin_id_cursor);
        dbms_sql.close_cursor(vin_id_cursor);
    EXCEPTION
        WHEN OTHERS THEN
            raise_application_error (-20001, 'Error al eliminar la tabla');
    END;

    -- Eliminar el sinonimo
    BEGIN
        vin_id_cursor := dbms_sql.open_cursor;
        dbms_sql.parse(vin_id_cursor, 'DROP PUBLIC SYNONYM ' || vvc_tabla, dbms_sql.v7);
        vin_rows := dbms_sql.execute(vin_id_cursor);
        dbms_sql.close_cursor(vin_id_cursor);
    EXCEPTION
        WHEN OTHERS THEN
            raise_application_error (-20001, 'Error al eliminar el sinonimo de la tabla');
    END;


    -- Eliminar la informacion relacionada a la tabla
    BEGIN
        vin_id_cursor := dbms_sql.open_cursor;
        dbms_sql.parse(vin_id_cursor, 'DELETE ADAM.fco_ala_datos_adi WHERE Upper(RTrim(tabla)) = ''' || Upper(RTrim(vvc_tabla)) || '''', dbms_sql.v7);
        vin_rows := dbms_sql.execute(vin_id_cursor);
        dbms_sql.close_cursor(vin_id_cursor);
    EXCEPTION
        WHEN OTHERS THEN
            raise_application_error (-20001, 'Error al eliminar los datos relacionados con la tabla');
    END;


    COMMIT;
    
END;
/
CREATE PUBLIC SYNONYM sp_fco_baja_tablas FOR ADAM.sp_fco_baja_tablas;
GRANT EXECUTE ON sp_fco_baja_tablas TO adama;
CREATE OR REPLACE PROCEDURE sp_fco_cambio_iss
(
	CIA  		char,
	TABLA  		varchar2,
	COD_TRAB	char,
	C03  		char,
	C09  		char,
	C10  		char,
	C11  		char,
	C12  		char,
	C13  		char,
	C14  		char,
	C15  		char,
	C16  		char,
	C17  		char,
	C18  		char,
	C19  		char,
	C20  		char,
	C21  		char,
	C22  		number,
  C23     number,
  C24     number,
  C26     number,
  C28     number,
  C29     number,
  C31     number,
  C32     number,
  C36     number,
  C38     number
)
/******************************************************************************************/
/*** Nombre:      sp_fco_cambio_iss	                            			***/
/*** Modulo:      ADAM V3. (Fiscal Colombiano)                                          ***/
/*** Descripcion: permite al usuario corregir las leves inconsistencias que             ***/
/***    ocasionalmente puedan presentarse en el reporte ISS             		***/
/***              o en el medio magnético        					***/
/******************************************************************************************/
AS
	w_sql  		VARCHAR2(2000);
    	nombre_cursor	integer;
    	iRows		integer;
BEGIN
	w_sql := 'UPDATE ' || TABLA ||
     	' SET' ||
	' C03=''' || NVL(C03,'C') || ''',' ||
     	' C09=''' || NVL(C09,'') || ''',' ||
     	' C10=''' || NVL(C10,'') || ''',' ||
     	' C11=''' || NVL(C11,'') || ''',' ||
     	' C12=''' || NVL(C12,'') || ''',' ||
     	' C13=''' || NVL(C13,'') || ''',' ||
     	' C14=''' || NVL(C14,'') || ''',' ||
     	' C15=''' || NVL(C15,'') || ''',' ||
     	' C16=''' || NVL(C16,'') || ''',' ||
     	' C17=''' || NVL(C17,'') || ''',' ||
     	' C18=''' || NVL(C18,'') || ''',' ||
     	' C19=''' || NVL(C19,'') || ''',' ||
     	' C20=''' || NVL(C20,'') || ''',' ||
     	' C21=''' || NVL(C21,'') || ''',' ||
     	' C22=' || NVL(TO_CHAR(C22),'0') || ',' ||
     	' C23=' || NVL(TO_CHAR(C23),'0') || ',' ||
     	' C24=' || NVL(TO_CHAR(C24),'0') || ',' ||
     	' C26=' || NVL(TO_CHAR(C26),'0') || ',' ||
     	' C28=' || NVL(TO_CHAR(C28),'0') || ',' ||
     	' C29=' || NVL(TO_CHAR(C29),'0') || ',' ||
     	' C31=' || NVL(TO_CHAR(C31),'0') || ',' ||
     	' C32=' || NVL(TO_CHAR(C32),'0') || ',' ||
     	' C36=' || NVL(TO_CHAR(C36),'0') || ',' ||
     	' C38=' || NVL(TO_CHAR(C38),'0') || 
    	' WHERE CIA=''' || CIA || '''' ||
    	' AND COD_TRAB=''' || COD_TRAB || '''';

        BEGIN
		nombre_cursor := dbms_sql.open_cursor;
		dbms_sql.parse(nombre_cursor, w_sql, dbms_sql.v7);
		iRows := dbms_sql.execute(nombre_cursor);
		dbms_sql.close_cursor(nombre_cursor);
	EXCEPTION
        	WHEN OTHERS THEN
		raise_application_error(-20001, 'Error al Actualizar la Tabla');
		return;
	END;
	commit work;
END;
/
CREATE PUBLIC SYNONYM sp_fco_cambio_iss FOR ADAM.sp_fco_cambio_iss;
GRANT EXECUTE ON sp_fco_cambio_iss TO adama;
CREATE OR REPLACE PROCEDURE sp_fco_cambio_pension
(
	CIA  		char,
	TABLA  		varchar2,
	COD_TRAB	char,
	C11A  		char,
	C13A  		char,
	C13B  		char,
	C13C  		char,
	C13D  		char,
	C13E  		char,
	C13F  		char,
	C13G  		char,
	C13H  		char,
	C13I  		char,
	C13J  		char,
	C13K  		char,
	C13L  		char,
  C14A      number,
  C15A      number,
  C17A      number,
  C18A      number,
  C19A      number,
  C20A      number,
  C20B      number,
  C22A      number,
  C23A      number
)
/******************************************************************************************/
/*** Nombre:      sp_fco_cambio_pension                                             	***/
/*** Modulo:      ADAM V3. (Fiscal Colombiano)                                          ***/
/*** Descripcion: permite al usuario corregir las leves inconsistencias que             ***/
/***    ocasionalmente puedan presentarse en el reporte ALA Pensiones          		***/
/***              o en el medio magnético        					***/
/******************************************************************************************/
AS
	w_sql  VARCHAR2(3000);
	nombre_cursor	integer;
	iRows		integer;
BEGIN
	w_sql := 'UPDATE ' || TABLA ||
     	' SET' ||
	' C11A=''' || NVL(C11A,'C') || ''',' ||
     	' C13A=''' || NVL(C13A,'') || ''',' ||
     	' C13B=''' || NVL(C13B,'') || ''',' ||
     	' C13C=''' || NVL(C13C,'') || ''',' ||
     	' C13D=''' || NVL(C13D,'') || ''',' ||
     	' C13E=''' || NVL(C13E,'') || ''',' ||
     	' C13F=''' || NVL(C13F,'') || ''',' ||
     	' C13G=''' || NVL(C13G,'') || ''',' ||
     	' C13H=''' || NVL(C13H,'') || ''',' ||
     	' C13I=''' || NVL(C13I,'') || ''',' ||
     	' C13J=''' || NVL(C13J,'') || ''',' ||
     	' C13K=''' || NVL(C13K,'') || ''',' ||
     	' C13L=''' || NVL(C13L,'') || ''',' ||
      ' C14A=' || NVL(TO_CHAR(C14A), '0') || ',' ||
      ' C15A=' || NVL(TO_CHAR(C15A), '0') || ',' ||
      ' C17A=' || NVL(TO_CHAR(C17A), '0') || ',' ||
      ' C19A=' || NVL(TO_CHAR(C19A), '0') || ',' ||
      ' C20A=' || NVL(TO_CHAR(C20A), '0') || ',' ||
      ' C20B=' || NVL(TO_CHAR(C20B), '0') || ',' ||
      ' C22A=' || NVL(TO_CHAR(C22A), '0') || ',' ||
      ' C23A=' || NVL(TO_CHAR(C23A), '0') || 
    	' WHERE CIA=''' || CIA || '''' ||
    	' AND COD_TRAB=''' || COD_TRAB || '''';
        BEGIN
		nombre_cursor := dbms_sql.open_cursor;
		dbms_sql.parse(nombre_cursor, w_sql, dbms_sql.v7);
		iRows := dbms_sql.execute(nombre_cursor);
		dbms_sql.close_cursor(nombre_cursor);
	EXCEPTION
        	WHEN OTHERS THEN
		raise_application_error(-20001, 'Error al Actualizar la Tabla');
		return;
	END;
	commit work;
END;
/
CREATE PUBLIC SYNONYM sp_fco_cambio_pension FOR ADAM.sp_fco_cambio_pension;
GRANT EXECUTE ON sp_fco_cambio_pension TO adama;
CREATE OR REPLACE PROCEDURE sp_fco_cambio_riesgos
(
	CIA  		char,
	TABLA  		varchar2,
	COD_TRAB	char,
	C11A  		char,
	C13A  		char,
	C13B  		char,
	C13C  		char,
	C13D  		char,
	C13E  		char,
	C13F  		char,
	C13G  		char,
	C13H  		char,
	C13I  		char,
	C13J  		char,
	C13K  		number,
  C14A      number,
  C15A      number,
  C17A      number,
	C28A  		number,
	C28B  		number,
  C29A      number,
  C30A      varchar2,
  C30B      varchar2
)
/******************************************************************************************/
/*** Nombre:      sp_fco_cambio_riesgos                                                	***/
/*** Modulo:      ADAM V3. (Fiscal Colombiano)                                          ***/
/*** Descripcion: permite al usuario corregir las leves inconsistencias que             ***/
/***    ocasionalmente puedan presentarse en el reporte ALA ARP             		***/
/***              o en el medio magnético        					***/
/******************************************************************************************/
AS
	w_sql  VARCHAR(3000);
    	nombre_cursor	integer;
    	iRows		integer;
BEGIN
	w_sql := 'UPDATE ' || TABLA || ' SET' ||
	' C11A=''' || NVL(C11A,'C') || ''',' ||
     	' C13A=''' || NVL(C13A,'') || ''',' ||
     	' C13B=''' || NVL(C13B,'') || ''',' ||
     	' C13C=''' || NVL(C13C,'') || ''',' ||
     	' C13D=''' || NVL(C13D,'') || ''',' ||
     	' C13E=''' || NVL(C13E,'') || ''',' ||
     	' C13F=''' || NVL(C13F,'') || ''',' ||
     	' C13G=''' || NVL(C13G,'') || ''',' ||
     	' C13H=''' || NVL(C13H,'') || ''',' ||
     	' C13I=''' || NVL(C13I,'') || ''',' ||
     	' C13J=''' || NVL(C13J,'') || ''',' ||
     	' C13K=' || NVL(TO_CHAR(C13K),'0') || ',' ||
     	' C14A=' || NVL(TO_CHAR(C14A),'0') || ',' ||
     	' C15A=' || NVL(TO_CHAR(C15A),'0') || ',' ||
     	' C17A=' || NVL(TO_CHAR(C17A),'0') || ',' ||
     	' C28A=' || NVL(TO_CHAR(C28A),'0') || ',' ||
     	' C28B=' || NVL(TO_CHAR(C28B),'0') || ',' ||
     	' C29A=' || NVL(TO_CHAR(C29A),'0') || ',' ||
     	' C30A=''' || NVL(C30A,'') || ''',' ||
     	' C30B=''' || NVL(C30B,'') || '''' ||
    	' WHERE CIA=''' || CIA || '''' ||
    	' AND COD_TRAB=''' || COD_TRAB || '''' ||
    	' AND C17A <> 0';

        BEGIN
		nombre_cursor := dbms_sql.open_cursor;
		dbms_sql.parse(nombre_cursor, w_sql, dbms_sql.v7);
		iRows := dbms_sql.execute(nombre_cursor);
		dbms_sql.close_cursor(nombre_cursor);
	EXCEPTION
        	WHEN OTHERS THEN
		raise_application_error(-20001, 'Error al Actualizar la Tabla');
		return;
	END;
	commit work;
END;
/
CREATE PUBLIC SYNONYM sp_fco_cambio_riesgos FOR ADAM.sp_fco_cambio_riesgos;
GRANT EXECUTE ON sp_fco_cambio_riesgos TO adama;
CREATE OR REPLACE PROCEDURE sp_fco_cambio_salud
(
    CIA  	char,
    TABLA      	varchar2,
    COD_TRAB   	char,
    C11A  	char,
    C13A  	char,
    C13B  	char,
    C13C  	char,
    C13D  	char,
    C13E  	char,
    C13F  	char,
    C13G  	char,
    C13H  	char,
    C13I  	char,
    C13J  	char,
    C14A       	number,
    C15A       	number,
    C17A       	number,
    C24A       	number,
    C25A  	varchar2,
    C25B       	number,
    C26A  	varchar2,
    C26B       	number,
    C27A       	number
)
/******************************************************************************************/
/*** Nombre:      sp_fco_cambio_salud                                                ***/
/*** Modulo:      ADAM V3. (Fiscal Colombiano)                                          ***/
/*** Descripcion: permite al usuario corregir las leves inconsistencias que             ***/
/***    	  ocasionalmente puedan presentarse en el reporte ALA Salud             ***/
/***              o en el medio magnético        					***/
/******************************************************************************************/
AS
	w_sql  VARCHAR(3000);
    	nombre_cursor	integer;
    	iRows		integer;
BEGIN
	w_sql := 'UPDATE ' || TABLA ||
     	' SET' ||
	' C11A=''' || NVL(C11A,'C') || ''',' ||
     	' C13A=''' || NVL(C13A,'') || ''',' ||
     	' C13B=''' || NVL(C13B,'') || ''',' ||
     	' C13C=''' || NVL(C13C,'') || ''',' ||
     	' C13D=''' || NVL(C13D,'') || ''',' ||
     	' C13E=''' || NVL(C13E,'') || ''',' ||
     	' C13F=''' || NVL(C13F,'') || ''',' ||
     	' C13G=''' || NVL(C13G,'') || ''',' ||
     	' C13H=''' || NVL(C13H,'') || ''',' ||
     	' C13I=''' || NVL(C13I,'') || ''',' ||
     	' C13J=''' || NVL(C13J,'') || ''',' ||
        ' C14A=' || NVL(TO_CHAR(C14A),'0') || ',' ||
        ' C15A=' || NVL(TO_CHAR(C15A),'0') || ',' ||
        ' C17A=' || NVL(TO_CHAR(C17A),'0') || ',' ||
        ' C24A=' || NVL(TO_CHAR(C24A),'0') || ',' ||
     	' C25A=''' || NVL(C25A,'') || ''',' ||
        ' C25B=' || NVL(TO_CHAR(C25B),'0') || ',' ||
     	' C26A=''' || NVL(C26A,'') || ''',' ||
        ' C26B=' || NVL(TO_CHAR(C26B),'0') || ',' ||
        ' C27A=' || NVL(TO_CHAR(C27A),'0') ||
    	' WHERE CIA=''' || CIA || '''' ||
    	' AND COD_TRAB=''' || COD_TRAB || '''';

        BEGIN
		nombre_cursor := dbms_sql.open_cursor;
		dbms_sql.parse(nombre_cursor, w_sql, dbms_sql.v7);
		iRows := dbms_sql.execute(nombre_cursor);
		dbms_sql.close_cursor(nombre_cursor);
	EXCEPTION
        	WHEN OTHERS THEN
		raise_application_error(-20001, 'Error al Actualizar la Tabla');
		return;
	END;
	commit work;
END;
/
CREATE PUBLIC SYNONYM sp_fco_cambio_salud FOR ADAM.sp_fco_cambio_salud;
GRANT EXECUTE ON sp_fco_cambio_salud TO adama;

CREATE OR REPLACE PROCEDURE sp_fco_cambio_vw_iss
(
	CIA  		char,
	TABLA  		varchar2,
	COD_TRAB	char,
	C10A  		char,
	C11A  		char,
	C11B  		char,
	C11C  		char,
	C11D  		char,
	C11E  		char,
  C12A      number,
	C13A  		number,
  C14A      number,
  C14B      number,
  C14C      number
)
/******************************************************************************************/
/*** Nombre:      sp_fco_cambio_vw_iss	                            			***/
/*** Modulo:      ADAM V3. (Fiscal Colombiano)                                          ***/
/*** Descripcion: permite al usuario corregir las leves inconsistencias que             ***/
/***    ocasionalmente puedan presentarse en el reporte ISS             		***/
/***              o en el medio magnético        					***/
/******************************************************************************************/
AS
  w_sql  VARCHAR(1500);
  nombre_cursor	integer;
  iRows		integer;
BEGIN
	w_sql := 'UPDATE ' || TABLA ||
     	' SET' ||
	' C10A=''' || NVL(C10A,'C') || ''',' ||
     	' C11A=''' || NVL(C11A,'') || ''',' ||
     	' C11B=''' || NVL(C11B,'') || ''',' ||
     	' C11C=''' || NVL(C11C,'') || ''',' ||
     	' C11D=''' || NVL(C11D,'0') || ''',' ||
     	' C11E=''' || NVL(C11E,'0') || ''',' ||
     	' C12A=' || NVL(TO_CHAR(C12A),'0') || ',' || 
     	' C13A=' || NVL(TO_CHAR(C13A),'0') || ',' ||
     	' C14A=' || NVL(TO_CHAR(C14A),'0') || ',' ||
     	' C14B=' || NVL(TO_CHAR(C14B),'0') || ',' ||
     	' C14C=' || NVL(TO_CHAR(C14C),'0') ||
    	' WHERE CIA=''' || CIA || '''' ||
    	' AND COD_TRAB=''' || COD_TRAB || '''';

        BEGIN
		nombre_cursor := dbms_sql.open_cursor;
		dbms_sql.parse(nombre_cursor, w_sql, dbms_sql.v7);
		iRows := dbms_sql.execute(nombre_cursor);
		dbms_sql.close_cursor(nombre_cursor);
	EXCEPTION
        	WHEN OTHERS THEN
		raise_application_error(-20001, 'Error al Actualizar la Tabla');
		return;
	END;
	commit work;
END;
/
CREATE PUBLIC SYNONYM sp_fco_cambio_vw_iss FOR ADAM.sp_fco_cambio_vw_iss;
GRANT EXECUTE ON sp_fco_cambio_vw_iss TO adama;

