Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE FUNCTION esq_distributivos.f_historia_laboral_autoridad(IN p_idperiodo_academico integer)
- RETURNS TABLE(r_idhistoria_laboral bigint, r_tipo_entidad character varying, r_identidad integer, r_entidad character varying, r_idrol bigint, r_rol character varying, r_idpersonal bigint, r_cedula character varying, r_docente character varying, r_iddedicacion integer, r_idcategoria integer, r_idmodalidad_laboral integer, r_idtipo_resolucion integer, r_codigo_ap_contrato character varying, r_fecha_inicio date, r_fecha_final date, r_fecha_eliminado date, r_fichero_nombre character varying, r_nivel_jerarquico integer) AS
- $BODY$
- DECLARE
- v_idhistoria_laboral BIGINT:=0;
- v_idpersonal BIGINT:=0;
- v_cedula VARCHAR := '';
- v_docente VARCHAR := '';
- v_iddepartamento_docente INTEGER:=0;
- v_iddedicacion integer:=0;
- v_idcategoria integer:=0;
- v_idmodalidad_laboral integer:=0;
- v_horas_autorizadas integer:=0;
- v_horas_autorizadas_justificacion varchar:='';
- v_fecha_inicial date; v_fecha_inicial_max date; v_fecha_reintegro date;
- v_fecha_final date;
- v_fecha_eliminado TIMESTAMP; v_fecha_eliminado_max TIMESTAMP;
- v_idtipo_resolucion integer:=0;
- v_codigo_ap_contrato varchar:='';
- v_num_contratos integer := 0;
- v_docente_investigador integer:= 0;
- v_fichero_nombre varchar; v_id_rol bigint;
- v_periodo_fecha_inicial date;
- v_periodo_fecha_final date;
- v_fecha_final_max date;
- v_idtipo_entidad INTEGER;
- filasAfectadas integer:= 0;
- v_tiene_licencia BOOLEAN:= false; v_registrar boolean:= false;
- r RECORD;
- BEGIN
- /*obtener fechas del periodo*/
- select p.fecha_inicio, p.fecha_final into v_periodo_fecha_inicial, v_periodo_fecha_final from esq_periodos_academicos.periodo_academico p where p.idperiodo = p_idperiodo_academico;
- for r in (
- select d.idhistoria_laboral, d.idpersonal, d.iddedicacion, d.idcategoria, d.idmodalidad_laboral, d.idtipo_resolucion, d.iddepartamento, d.fecha, d.fecha_final,
- d.fecha_eliminado, horas_autorizadas, idtipo_resolucion, codigo_ap_contrato, horas_autorizadas_justificacion, docente_investigador,
- fichero_nombre, id_rol
- FROM esq_distributivos.dedicacion_categoria_personal_academico d
- where d.iddepartamento > 0
- and d.id_rol <> 5 --and d.iddepartamento = 1 and d.idpersonal = 53890
- and (d.fecha between v_periodo_fecha_inicial and v_periodo_fecha_final
- or coalesce(d.fecha_final, '2999/12/31') between v_periodo_fecha_inicial and v_periodo_fecha_final
- or v_periodo_fecha_inicial BETWEEN d.fecha and coalesce(d.fecha_final, '2999/12/31')
- or v_periodo_fecha_final BETWEEN d.fecha and coalesce(d.fecha_final, '2999/12/31')
- )) loop
- r_identidad := r.iddepartamento;
- v_idpersonal := r.idpersonal;
- v_idhistoria_laboral := r.idhistoria_laboral ;
- v_iddedicacion := r.iddedicacion ;
- v_idcategoria := r.idcategoria ;
- v_idmodalidad_laboral := r.idmodalidad_laboral ;
- v_idtipo_resolucion := r.idtipo_resolucion ;
- v_fecha_inicial := r.fecha ;
- v_fecha_final := r.fecha_final ;
- v_fecha_eliminado := r.fecha_eliminado ;
- v_codigo_ap_contrato := r.codigo_ap_contrato;
- v_fichero_nombre := r.fichero_nombre;
- v_id_rol := r.id_rol;
- select rl.nombre, rl.nivel_jerarquico into r_rol, r_nivel_jerarquico from esq_configuraciones.configuracion_hoja_vida_tipo_formulario rl where rl.idtipo_usuario = v_id_rol;
- select f.idtipo_entidad, tt.nombre into v_idtipo_entidad, r_tipo_entidad
- from esq_configuraciones.configuracion_hoja_vida_tipo_formulario f inner join esq_catalogos.tipo tt on tt.idtipo = f.idtipo_entidad
- where f.idtipo_usuario = v_id_rol;
- if v_idtipo_entidad = 2523 then
- select fa.nombre into r_entidad from esq_inscripciones.facultad fa where fa.idfacultad = r_identidad;
- end if;
- if v_idtipo_entidad = 2524 then
- select nombre INTO r_entidad from esq_inscripciones.escuela ee where ee.idescuela = r_identidad;
- end if;
- if v_idtipo_entidad = 2525 then
- select nombre into r_entidad from esq_distributivos.departamento dd where dd.iddepartamento = r_identidad;
- end if;
- if v_idtipo_entidad = -1 then
- select fa.nombre into r_entidad from esq_inscripciones.facultad fa where fa.habilitado = 'S' AND fa.idfacultad = 99 and fa.idfacultad = r_identidad;
- end if;
- select max(d.fecha) into v_fecha_inicial_max
- FROM esq_distributivos.dedicacion_categoria_personal_academico d
- where d.iddepartamento = r_identidad and d.id_rol = v_id_rol
- and d.iddepartamento > 0 and d.id_rol <>5
- and (d.fecha between v_periodo_fecha_inicial and v_periodo_fecha_final
- or coalesce(d.fecha_final, '2999/12/31') between v_periodo_fecha_inicial and v_periodo_fecha_final
- or v_periodo_fecha_inicial BETWEEN d.fecha and coalesce(d.fecha_final, '2999/12/31')
- or v_periodo_fecha_final BETWEEN d.fecha and coalesce(d.fecha_final, '2999/12/31')
- );
- if(v_fecha_inicial_max = v_fecha_inicial) then v_registrar := true; else v_registrar := false; end if;
- --v_registrar := true;
- if(v_registrar = true) THEN
- /*datos del docente*/
- select
- (((COALESCE(pe.apellido1, ''::character varying)::text || ' '::text) ||
- COALESCE(pe.apellido2, ''::character varying)::text) || ' '::text) || COALESCE(pe.nombres, ''::character varying)::text AS docente,
- pe.cedula
- into v_docente, v_cedula
- from esq_datos_personales.personal pe
- where pe.idpersonal = v_idpersonal;
- r_idpersonal := v_idpersonal;
- r_cedula := v_cedula;
- r_docente := v_docente ;
- r_iddedicacion := v_iddedicacion;
- r_idcategoria := v_idcategoria;
- r_idmodalidad_laboral := v_idmodalidad_laboral;
- r_idtipo_resolucion := v_idtipo_resolucion;
- r_codigo_ap_contrato := v_codigo_ap_contrato;
- r_fecha_inicio := v_fecha_inicial;
- r_fecha_final := v_fecha_final;
- r_fecha_eliminado := v_fecha_eliminado;
- r_idhistoria_laboral := v_idhistoria_laboral;
- r_fichero_nombre := v_fichero_nombre;
- r_idrol := v_id_rol;
- v_registrar := FALSE;
- return next;
- end if; /*if(v_fecha_inicial = v_fecha_inicial_max)*/
- end loop;
- END;
- $BODY$
- LANGUAGE plpgsql VOLATILE
- COST 100
- ROWS 1000;
- ALTER FUNCTION esq_distributivos.f_historia_laboral_autoridad(integer)
- OWNER TO adminsga;
- GRANT EXECUTE ON FUNCTION esq_distributivos.f_historia_laboral_autoridad(integer) TO adminsga;
- GRANT EXECUTE ON FUNCTION esq_distributivos.f_historia_laboral_autoridad(integer) TO public;
- GRANT EXECUTE ON FUNCTION esq_distributivos.f_historia_laboral_autoridad(integer) TO sistemasga;
- GRANT EXECUTE ON FUNCTION esq_distributivos.f_historia_laboral_autoridad(integer) TO ceac_analitico;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement