Advertisement
jzgeorge

fucio

Apr 19th, 2017
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION esq_distributivos.f_historia_laboral_autoridad(IN p_idperiodo_academico integer)
  2.   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
  3. $BODY$
  4. DECLARE
  5.   v_idhistoria_laboral BIGINT:=0;
  6.   v_idpersonal BIGINT:=0;
  7.   v_cedula VARCHAR := '';
  8.   v_docente VARCHAR := '';
  9.   v_iddepartamento_docente INTEGER:=0;
  10.   v_iddedicacion integer:=0;
  11.   v_idcategoria integer:=0;
  12.   v_idmodalidad_laboral integer:=0;
  13.   v_horas_autorizadas integer:=0;
  14.   v_horas_autorizadas_justificacion varchar:='';
  15.   v_fecha_inicial date; v_fecha_inicial_max date; v_fecha_reintegro date;
  16.   v_fecha_final date;
  17.   v_fecha_eliminado TIMESTAMP; v_fecha_eliminado_max TIMESTAMP;
  18.   v_idtipo_resolucion integer:=0;
  19.   v_codigo_ap_contrato varchar:='';
  20.   v_num_contratos integer := 0;
  21.   v_docente_investigador integer:= 0;
  22.   v_fichero_nombre varchar; v_id_rol bigint;
  23.  
  24.   v_periodo_fecha_inicial date;
  25.   v_periodo_fecha_final date;
  26.   v_fecha_final_max date;
  27.  
  28.   v_idtipo_entidad INTEGER;
  29.  
  30.   filasAfectadas integer:= 0;
  31.   v_tiene_licencia BOOLEAN:= false; v_registrar boolean:= false;
  32.   r RECORD;
  33. BEGIN
  34.     /*obtener fechas del periodo*/
  35.     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;
  36.          
  37.     for r in (
  38.                 select d.idhistoria_laboral, d.idpersonal, d.iddedicacion, d.idcategoria, d.idmodalidad_laboral, d.idtipo_resolucion, d.iddepartamento, d.fecha, d.fecha_final,
  39.                        d.fecha_eliminado, horas_autorizadas, idtipo_resolucion, codigo_ap_contrato, horas_autorizadas_justificacion, docente_investigador,
  40.                        fichero_nombre, id_rol
  41.                 FROM esq_distributivos.dedicacion_categoria_personal_academico d
  42.                 where d.iddepartamento > 0
  43.                     and d.id_rol <> 5 --and d.iddepartamento = 1 and d.idpersonal = 53890
  44.                     and (d.fecha between v_periodo_fecha_inicial and v_periodo_fecha_final
  45.                           or coalesce(d.fecha_final, '2999/12/31') between v_periodo_fecha_inicial and v_periodo_fecha_final
  46.                           or v_periodo_fecha_inicial BETWEEN d.fecha and coalesce(d.fecha_final, '2999/12/31')
  47.                           or v_periodo_fecha_final BETWEEN d.fecha and coalesce(d.fecha_final, '2999/12/31')
  48.                         )) loop
  49.        
  50.         r_identidad             := r.iddepartamento;            
  51.         v_idpersonal            := r.idpersonal;
  52.         v_idhistoria_laboral    := r.idhistoria_laboral ;
  53.         v_iddedicacion          := r.iddedicacion ;
  54.         v_idcategoria           := r.idcategoria ;
  55.         v_idmodalidad_laboral   := r.idmodalidad_laboral ;
  56.         v_idtipo_resolucion     := r.idtipo_resolucion ;
  57.         v_fecha_inicial         := r.fecha ;
  58.         v_fecha_final           := r.fecha_final ;
  59.         v_fecha_eliminado       := r.fecha_eliminado ;
  60.         v_codigo_ap_contrato    := r.codigo_ap_contrato;
  61.         v_fichero_nombre        := r.fichero_nombre;
  62.         v_id_rol                := r.id_rol;
  63.        
  64.         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;
  65.        
  66.         select f.idtipo_entidad, tt.nombre into v_idtipo_entidad, r_tipo_entidad
  67.         from esq_configuraciones.configuracion_hoja_vida_tipo_formulario f inner join esq_catalogos.tipo tt on tt.idtipo = f.idtipo_entidad
  68.         where f.idtipo_usuario = v_id_rol;
  69.         if v_idtipo_entidad = 2523 then
  70.             select fa.nombre into r_entidad  from esq_inscripciones.facultad fa where fa.idfacultad = r_identidad;
  71.         end if;    
  72.         if v_idtipo_entidad = 2524 then
  73.             select nombre INTO r_entidad from esq_inscripciones.escuela ee where ee.idescuela = r_identidad;
  74.         end if;
  75.         if v_idtipo_entidad = 2525 then
  76.             select nombre into r_entidad from esq_distributivos.departamento dd where dd.iddepartamento = r_identidad;
  77.         end if;
  78.         if v_idtipo_entidad = -1 then
  79.             select fa.nombre into r_entidad from esq_inscripciones.facultad fa where fa.habilitado = 'S' AND fa.idfacultad = 99 and  fa.idfacultad = r_identidad;
  80.         end if;
  81.        
  82.         select max(d.fecha) into v_fecha_inicial_max
  83.         FROM esq_distributivos.dedicacion_categoria_personal_academico d
  84.         where d.iddepartamento = r_identidad and d.id_rol = v_id_rol
  85.             and d.iddepartamento > 0 and d.id_rol <>5
  86.             and (d.fecha between v_periodo_fecha_inicial and v_periodo_fecha_final
  87.                   or coalesce(d.fecha_final, '2999/12/31') between v_periodo_fecha_inicial and v_periodo_fecha_final
  88.                   or v_periodo_fecha_inicial BETWEEN d.fecha and coalesce(d.fecha_final, '2999/12/31')
  89.                   or v_periodo_fecha_final BETWEEN d.fecha and coalesce(d.fecha_final, '2999/12/31')
  90.                 );
  91.         if(v_fecha_inicial_max = v_fecha_inicial) then v_registrar := true; else v_registrar := false; end if;        
  92.        
  93.         --v_registrar := true;            
  94.         if(v_registrar = true) THEN
  95.             /*datos del docente*/
  96.             select
  97.               (((COALESCE(pe.apellido1, ''::character varying)::text || ' '::text) ||
  98.               COALESCE(pe.apellido2, ''::character varying)::text) || ' '::text) || COALESCE(pe.nombres, ''::character varying)::text AS docente,
  99.               pe.cedula
  100.             into v_docente, v_cedula
  101.             from esq_datos_personales.personal pe
  102.             where pe.idpersonal = v_idpersonal;
  103.            
  104.             r_idpersonal            := v_idpersonal;
  105.             r_cedula                := v_cedula;
  106.             r_docente               := v_docente ;
  107.             r_iddedicacion          := v_iddedicacion;
  108.             r_idcategoria           := v_idcategoria;
  109.             r_idmodalidad_laboral   := v_idmodalidad_laboral;
  110.             r_idtipo_resolucion     := v_idtipo_resolucion;
  111.             r_codigo_ap_contrato    := v_codigo_ap_contrato;
  112.             r_fecha_inicio          := v_fecha_inicial;
  113.             r_fecha_final           := v_fecha_final;
  114.             r_fecha_eliminado       := v_fecha_eliminado;
  115.             r_idhistoria_laboral    := v_idhistoria_laboral;
  116.             r_fichero_nombre        := v_fichero_nombre;
  117.             r_idrol                 := v_id_rol;
  118.            
  119.             v_registrar             := FALSE;
  120.             return next;
  121.         end if; /*if(v_fecha_inicial = v_fecha_inicial_max)*/
  122.     end loop;
  123. END;
  124. $BODY$
  125.   LANGUAGE plpgsql VOLATILE
  126.   COST 100
  127.   ROWS 1000;
  128. ALTER FUNCTION esq_distributivos.f_historia_laboral_autoridad(integer)
  129.   OWNER TO adminsga;
  130. GRANT EXECUTE ON FUNCTION esq_distributivos.f_historia_laboral_autoridad(integer) TO adminsga;
  131. GRANT EXECUTE ON FUNCTION esq_distributivos.f_historia_laboral_autoridad(integer) TO public;
  132. GRANT EXECUTE ON FUNCTION esq_distributivos.f_historia_laboral_autoridad(integer) TO sistemasga;
  133. GRANT EXECUTE ON FUNCTION esq_distributivos.f_historia_laboral_autoridad(integer) TO ceac_analitico;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement