CREATE OR REPLACE PROCEDURE sp_fco_upd_centros_trabajo
(
    pch_compania char,
    pch_centro_trabajo char,
    pvc_descripcion varchar2,
    pdc_cod_reporte number,
    pdc_tarifa number
)
AS
    vti_existe number(1);
BEGIN
    vti_existe := 0;

    BEGIN
      SELECT 1 INTO vti_existe 
      FROM fco_centros_trabajo 
      WHERE compania = pch_compania AND centro_trabajo = pch_centro_trabajo;
    EXCEPTION
      WHEN OTHERS THEN vti_existe := 0;
    END;

    IF vti_existe = 1 THEN
        UPDATE fco_centros_trabajo
        SET descripcion = pvc_descripcion,
            codigo_reporte = pdc_cod_reporte,
            tarifa = pdc_tarifa
        WHERE compania = pch_compania
          AND centro_trabajo = pch_centro_trabajo;
    ELSE
        INSERT INTO fco_centros_trabajo
        (compania, centro_trabajo, descripcion, codigo_reporte, tarifa)
        VALUES (pch_compania, pch_centro_trabajo, pvc_descripcion, pdc_cod_reporte, pdc_tarifa);
    END IF;
END;
/
CREATE PUBLIC SYNONYM sp_fco_upd_centros_trabajo FOR ADAM.sp_fco_upd_centros_trabajo;
GRANT EXECUTE ON sp_fco_upd_centros_trabajo TO adama;
