Advertisement
jzgeorge

vistas

Mar 31st, 2017
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- View: esq_distributivos.v_distribucion_academica
  2.  
  3. -- DROP VIEW esq_distributivos.v_distribucion_academica;
  4.  
  5. CREATE OR REPLACE VIEW esq_distributivos.v_distribucion_academica AS
  6.  SELECT da.iddepartamento_periodo,
  7.     dp.idperiodo AS idperiodo_academico,
  8.     ( SELECT pe_1.nombre
  9.            FROM esq_periodos_academicos.periodo_academico pe_1
  10.           WHERE pe_1.idperiodo = dp.idperiodo) AS nperiodo_academico,
  11.     ( SELECT pe_1.actual
  12.            FROM esq_periodos_academicos.periodo_academico pe_1
  13.           WHERE pe_1.idperiodo = dp.idperiodo) AS actual_periodo_academico,
  14.     mu.iddepartamento AS iddepartamento_asignatura,
  15.     ( SELECT dp_1.nombre
  16.            FROM esq_distributivos.departamento dp_1
  17.           WHERE dp_1.iddepartamento = mu.iddepartamento) AS ndepartamento_asignatura,
  18.     mu.idmateria_unica,
  19.     translate(mu.nombre::text, 'áéíóúÁÉÍÓÚäëïöüÄËÏÖÜ'::text, 'aeiouAEIOUaeiouAEIOU'::text) AS nmateria_unica,
  20.     ( SELECT count(mm.idmalla) AS count
  21.            FROM esq_mallas.malla_materia_nivel mm
  22.           WHERE mm.idmateria_unica = da.idmateria_unica AND (mm.idmalla IN ( SELECT m.idmalla
  23.                    FROM esq_mallas.malla_escuela m
  24.                   WHERE m.cerrada::text = 'N'::text))) AS num_mallas,
  25.     ( SELECT max(mm.materia_virtual::text) AS count
  26.            FROM esq_mallas.malla_materia_nivel mm
  27.           WHERE mm.idmateria_unica = da.idmateria_unica) AS materia_virtual,
  28.     ( SELECT COALESCE(max(m.horas), 0) AS "coalesce"
  29.            FROM esq_mallas.malla_materia_nivel m
  30.              JOIN esq_mallas.malla_escuela me ON me.idmalla = m.idmalla
  31.           WHERE me.cerrada::text = 'N'::text AND m.idmateria_unica = mu.idmateria_unica) AS horas,
  32.     0 AS horas_materia_compartida,
  33.     da.iddistributivo,
  34.     da.idparalelo,
  35.     p.nombre AS paralelo,
  36.     da.cupo,
  37.     ( SELECT count(t_1.idpersonal) AS count
  38.            FROM ( SELECT DISTINCT id.idpersonal
  39.                    FROM esq_inscripciones.inscripcion_detalle id
  40.                   WHERE id.iddistributivo = da.iddistributivo AND id.anulado::text = 'N'::text AND (id.idperiodo IN ( SELECT pa.idperiodo
  41.                            FROM esq_periodos_academicos.periodo_academico pa
  42.                              JOIN esq_distributivos.departamento_periodo dp_1 ON dp_1.idperiodo = pa.idperiodo
  43.                           WHERE dp_1.id_departamento_periodo = da.iddepartamento_periodo))) t_1) AS num_estudiantes_registrados,
  44.     ( SELECT count(da1.idparalelo) AS count
  45.            FROM esq_distributivos.distribucion_academica da1
  46.           WHERE da1.idmateria_unica = da.idmateria_unica AND da1.iddepartamento_periodo = da.iddepartamento_periodo) AS num_paralelos,
  47.     da.observacion,
  48.     da.habilitado,
  49.     da.autorizado AS paralelo_autorizado,
  50.     ( SELECT count(es.idpersonal) AS count
  51.            FROM esq_solicitudes.inscripcion_detalle_espera es
  52.           WHERE es.iddistributivo = da.iddistributivo) AS num_solicitud_cupo,
  53.     ( SELECT count(es.idpersonal) AS count
  54.            FROM esq_solicitudes.inscripcion_detalle_espera es
  55.           WHERE es.iddistributivo_actual = da.iddistributivo) AS num_solicitud_eliminar,
  56.     dc.iddepartamento AS iddepartamento_docente,
  57.     ( SELECT dp_1.nombre
  58.            FROM esq_distributivos.departamento dp_1
  59.           WHERE dp_1.iddepartamento = dc.iddepartamento) AS ndepartamento_docente,
  60.     da.idpersonal,
  61.     pe.cedula,
  62.     (((COALESCE(pe.apellido1, ''::character varying)::text || ' '::text) || COALESCE(pe.apellido2, ''::character varying)::text) || ' '::text) || COALESCE(pe.nombres, ''::character varying)::text AS docente,
  63.     da.ver_datos,
  64.     ( SELECT t.r_iddedicacion
  65.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  66.           WHERE t.r_idpersonal = da.idpersonal
  67.          LIMIT 1) AS iddedicacion,
  68.     ( SELECT t.r_idcategoria
  69.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  70.           WHERE t.r_idpersonal = da.idpersonal
  71.          LIMIT 1) AS idcategoria,
  72.     ( SELECT t.r_idmodalidad_laboral
  73.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  74.           WHERE t.r_idpersonal = da.idpersonal
  75.          LIMIT 1) AS idmodalidad_laboral,
  76.     COALESCE(( SELECT ( SELECT dt.nombre
  77.                    FROM esq_distributivos.dedicacion_tipo dt
  78.                   WHERE dt.iddedicacion = t.r_iddedicacion) AS nombre
  79.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  80.           WHERE t.r_idpersonal = da.idpersonal
  81.          LIMIT 1), '-'::character varying) AS ndedicacion,
  82.     COALESCE(( SELECT ( SELECT ct.nombre
  83.                    FROM esq_distributivos.categoria_tipo ct
  84.                   WHERE ct.idcategoria = t.r_idcategoria) AS nombre
  85.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  86.           WHERE t.r_idpersonal = da.idpersonal
  87.          LIMIT 1), '-'::character varying) AS ncategoria,
  88.     COALESCE(( SELECT ( SELECT mt.nombre
  89.                    FROM esq_distributivos.modalidad_laboral mt
  90.                   WHERE mt.idmodadalidad_laboral = t.r_idmodalidad_laboral) AS nombre
  91.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  92.           WHERE t.r_idpersonal = da.idpersonal
  93.          LIMIT 1), '-'::character varying) AS nmodalidad_laboral,
  94.     ( SELECT t.r_idtipo_resolucion
  95.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  96.           WHERE t.r_idpersonal = da.idpersonal
  97.          LIMIT 1) AS idtipo_resolucion,
  98.     ( SELECT t.r_codigo_ap_contrato
  99.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  100.           WHERE t.r_idpersonal = da.idpersonal
  101.          LIMIT 1) AS codigo_ap_contrato,
  102.     ( SELECT t.r_fecha_inicio
  103.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  104.           WHERE t.r_idpersonal = da.idpersonal
  105.          LIMIT 1) AS fecha_inicio,
  106.     ( SELECT t.r_fecha_final
  107.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  108.           WHERE t.r_idpersonal = da.idpersonal
  109.          LIMIT 1) AS fecha_final,
  110.     ( SELECT t.r_fecha_eliminado
  111.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  112.           WHERE t.r_idpersonal = da.idpersonal
  113.          LIMIT 1) AS fecha_eliminado,
  114.     ( SELECT t.r_horas_autorizadas
  115.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  116.           WHERE t.r_idpersonal = da.idpersonal
  117.          LIMIT 1) AS horas_autorizadas,
  118.     ( SELECT t.r_horas_autorizadas_justificacion
  119.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  120.           WHERE t.r_idpersonal = da.idpersonal
  121.          LIMIT 1) AS horas_autorizadas_justificacion,
  122.     0::bigint AS iddistributivo_compartido,
  123.     0 AS idconfiguracion,
  124.     0 AS idparalelo_materia_compartida,
  125.     ''::character varying AS paralelo_materia_compartida,
  126.     ''::character varying AS d_habilitado_materia_compartida,
  127.     ''::character varying AS observacion_materia_compartida,
  128.     'N'::text AS es_materia_compartida,
  129.     '0'::text AS num_estudiantes_registrados_materia_compartida
  130.    FROM esq_distributivos.distribucion_academica da
  131.      JOIN esq_distributivos.departamento_periodo dp ON dp.id_departamento_periodo = da.iddepartamento_periodo
  132.      JOIN esq_distributivos.departamento_docente dc ON dc.idpersonal = da.idpersonal
  133.      JOIN esq_distributivos.materia_unica mu ON mu.idmateria_unica = da.idmateria_unica
  134.      JOIN esq_distributivos.paralelo p ON p.idparalelo = da.idparalelo
  135.      JOIN esq_datos_personales.personal pe ON pe.idpersonal = da.idpersonal
  136. UNION ALL
  137.  SELECT dac.iddepartamento_periodo,
  138.     dp.idperiodo AS idperiodo_academico,
  139.     ( SELECT pa.nombre
  140.            FROM esq_periodos_academicos.periodo_academico pa
  141.              JOIN esq_distributivos.departamento_periodo dp_1 ON dp_1.idperiodo = pa.idperiodo
  142.           WHERE dp_1.id_departamento_periodo = dac.iddepartamento_periodo) AS nperiodo_academico,
  143.     ( SELECT pa.actual
  144.            FROM esq_periodos_academicos.periodo_academico pa
  145.              JOIN esq_distributivos.departamento_periodo dp_1 ON dp_1.idperiodo = pa.idperiodo
  146.           WHERE dp_1.id_departamento_periodo = dac.iddepartamento_periodo) AS actual_periodo_academico,
  147.     mc.iddepartamento AS iddepartamento_asignatura,
  148.     ( SELECT dp_1.nombre
  149.            FROM esq_distributivos.departamento dp_1
  150.           WHERE dp_1.iddepartamento = mc.iddepartamento) AS ndepartamento_asignatura,
  151.     mc.idmateria_unica,
  152.     ((((mc.nombre::text || ' ('::text) || c.descripcion::text) || ' '::text) || c.numero_horas) || 'HRS. )'::text AS nmateria_unica,
  153.     ( SELECT count(mm.idmalla) AS count
  154.            FROM esq_mallas.malla_materia_nivel mm
  155.           WHERE mm.idmateria_unica = dac.idmateria_unica AND (mm.idmalla IN ( SELECT m.idmalla
  156.                    FROM esq_mallas.malla_escuela m
  157.                   WHERE m.cerrada::text = 'N'::text))) AS num_mallas,
  158.     ( SELECT max(mm.materia_virtual::text) AS count
  159.            FROM esq_mallas.malla_materia_nivel mm
  160.           WHERE mm.idmateria_unica = dac.idmateria_unica) AS materia_virtual,
  161.     ( SELECT COALESCE(max(m.horas), 0) AS "coalesce"
  162.            FROM esq_mallas.malla_materia_nivel m
  163.              JOIN esq_mallas.malla_escuela me ON me.idmalla = m.idmalla
  164.           WHERE me.cerrada::text = 'N'::text AND m.idmateria_unica = mc.idmateria_unica) AS horas,
  165.     c.numero_horas AS horas_materia_compartida,
  166.     dac.iddistributivo,
  167.     dac.idparalelo,
  168.     ( SELECT p.nombre
  169.            FROM esq_distributivos.paralelo p
  170.           WHERE p.idparalelo = dac.idparalelo) AS paralelo,
  171.     da1.cupo,
  172.     ( SELECT count(t_1.idpersonal) AS count
  173.            FROM ( SELECT DISTINCT id.idpersonal
  174.                    FROM esq_inscripciones.inscripcion_detalle id
  175.                   WHERE id.iddistributivo = dac.iddistributivo AND id.anulado::text = 'N'::text AND (id.idperiodo IN ( SELECT pa.idperiodo
  176.                            FROM esq_periodos_academicos.periodo_academico pa
  177.                              JOIN esq_distributivos.departamento_periodo dp_1 ON dp_1.idperiodo = pa.idperiodo
  178.                           WHERE dp_1.id_departamento_periodo = dac.iddepartamento_periodo))) t_1) AS num_estudiantes_registrados,
  179.     ( SELECT count(da1_1.idparalelo) AS count
  180.            FROM esq_distributivos.distribucion_academica da1_1
  181.           WHERE da1_1.idmateria_unica = dac.idmateria_unica AND da1_1.iddepartamento_periodo = dac.iddepartamento_periodo) AS num_paralelos,
  182.     dac.observacion,
  183.     dac.habilitado,
  184.     dac.autorizado AS paralelo_autorizado,
  185.     ( SELECT count(es.idpersonal) AS count
  186.            FROM esq_solicitudes.inscripcion_detalle_espera es
  187.           WHERE es.iddistributivo = dac.iddistributivo) AS num_solicitud_cupo,
  188.     ( SELECT count(es.idpersonal) AS count
  189.            FROM esq_solicitudes.inscripcion_detalle_espera es
  190.           WHERE es.iddistributivo_actual = dac.iddistributivo) AS num_solicitud_eliminar,
  191.     dc.iddepartamento AS iddepartamento_docente,
  192.     ( SELECT dp_1.nombre
  193.            FROM esq_distributivos.departamento dp_1
  194.           WHERE dp_1.iddepartamento = dc.iddepartamento) AS ndepartamento_docente,
  195.     da1.idpersonal,
  196.     pec.cedula,
  197.     (((COALESCE(pec.apellido1, ''::character varying)::text || ' '::text) || COALESCE(pec.apellido2, ''::character varying)::text) || ' '::text) || COALESCE(pec.nombres, ''::character varying)::text AS docente,
  198.     dac.ver_datos,
  199.     ( SELECT t.r_iddedicacion
  200.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  201.           WHERE t.r_idpersonal = da1.idpersonal
  202.          LIMIT 1) AS iddedicacion,
  203.     ( SELECT t.r_idcategoria
  204.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  205.           WHERE t.r_idpersonal = da1.idpersonal
  206.          LIMIT 1) AS idcategoria,
  207.     ( SELECT t.r_idmodalidad_laboral
  208.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  209.           WHERE t.r_idpersonal = da1.idpersonal
  210.          LIMIT 1) AS idmodalidad_laboral,
  211.     COALESCE(( SELECT ( SELECT dt.nombre
  212.                    FROM esq_distributivos.dedicacion_tipo dt
  213.                   WHERE dt.iddedicacion = t.r_iddedicacion) AS nombre
  214.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  215.           WHERE t.r_idpersonal = da1.idpersonal
  216.          LIMIT 1), '-'::character varying) AS ndedicacion,
  217.     COALESCE(( SELECT ( SELECT ct.nombre
  218.                    FROM esq_distributivos.categoria_tipo ct
  219.                   WHERE ct.idcategoria = t.r_idcategoria) AS nombre
  220.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  221.           WHERE t.r_idpersonal = da1.idpersonal
  222.          LIMIT 1), '-'::character varying) AS ncategoria,
  223.     COALESCE(( SELECT ( SELECT mt.nombre
  224.                    FROM esq_distributivos.modalidad_laboral mt
  225.                   WHERE mt.idmodadalidad_laboral = t.r_idmodalidad_laboral) AS nombre
  226.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  227.           WHERE t.r_idpersonal = da1.idpersonal
  228.          LIMIT 1), '-'::character varying) AS nmodalidad_laboral,
  229.     ( SELECT t.r_idtipo_resolucion
  230.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  231.           WHERE t.r_idpersonal = da1.idpersonal
  232.          LIMIT 1) AS idtipo_resolucion,
  233.     ( SELECT t.r_codigo_ap_contrato
  234.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  235.           WHERE t.r_idpersonal = da1.idpersonal
  236.          LIMIT 1) AS codigo_ap_contrato,
  237.     ( SELECT t.r_fecha_inicio
  238.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  239.           WHERE t.r_idpersonal = da1.idpersonal
  240.          LIMIT 1) AS fecha_inicio,
  241.     ( SELECT t.r_fecha_final
  242.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  243.           WHERE t.r_idpersonal = da1.idpersonal
  244.          LIMIT 1) AS fecha_final,
  245.     ( SELECT t.r_fecha_eliminado
  246.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  247.           WHERE t.r_idpersonal = da1.idpersonal
  248.          LIMIT 1) AS fecha_eliminado,
  249.     ( SELECT t.r_horas_autorizadas
  250.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  251.           WHERE t.r_idpersonal = da1.idpersonal
  252.          LIMIT 1) AS horas_autorizadas,
  253.     ( SELECT t.r_horas_autorizadas_justificacion
  254.            FROM esq_distributivos.f_historia_laboral_obtener(dp.idperiodo, dc.iddepartamento) t(r_idhistoria_laboral, r_ndepartamento, r_idpersonal, r_cedula, r_docente, r_iddedicacion, r_idcategoria, r_idmodalidad_laboral, r_idtipo_resolucion, r_codigo_ap_contrato, r_fecha_inicio, r_fecha_final, r_fecha_eliminado, r_horas_autorizadas, r_horas_autorizadas_justificacion, r_docente_investigador, r_idrol, r_fichero_nombre)
  255.           WHERE t.r_idpersonal = da1.idpersonal
  256.          LIMIT 1) AS horas_autorizadas_justificacion,
  257.     da1.iddistributivo_compartido,
  258.     da1.idconfiguracion,
  259.     da1.idparalelo AS idparalelo_materia_compartida,
  260.     ( SELECT p.nombre
  261.            FROM esq_distributivos.paralelo p
  262.           WHERE p.idparalelo = da1.idparalelo) AS paralelo_materia_compartida,
  263.     da1.habilitado AS d_habilitado_materia_compartida,
  264.     da1.observacion AS observacion_materia_compartida,
  265.     'S'::text AS es_materia_compartida,
  266.     '0'::text AS num_estudiantes_registrados_materia_compartida
  267.    FROM esq_distributivos.distribucion_academica dac
  268.      JOIN esq_distributivos.distribucion_academica_compartida da1 ON da1.iddistributivo = dac.iddistributivo
  269.      JOIN esq_distributivos.departamento_docente dc ON dc.idpersonal = da1.idpersonal
  270.      JOIN esq_distributivos.departamento_periodo dp ON dp.id_departamento_periodo = dac.iddepartamento_periodo
  271.      JOIN esq_distributivos.materia_unica_compartida_configuracion c ON c.idconfiguracion = da1.idconfiguracion
  272.      JOIN esq_distributivos.materia_unica mc ON mc.idmateria_unica = c.idmateria_unica
  273.      JOIN esq_datos_personales.personal pec ON pec.idpersonal = da1.idpersonal;
  274.  
  275. ALTER TABLE esq_distributivos.v_distribucion_academica
  276.   OWNER TO postgres;
  277.  
  278.  
  279. -- View: esq_distributivos.v_distribucion_academica_asignaturas
  280.  
  281. -- DROP VIEW esq_distributivos.v_distribucion_academica_asignaturas;
  282.  
  283. CREATE OR REPLACE VIEW esq_distributivos.v_distribucion_academica_asignaturas AS
  284.  SELECT da.iddistributivo,
  285.     da.iddepartamento_periodo,
  286.     dp.idperiodo AS idperiodo_academico,
  287.     mu.iddepartamento AS iddepartamento_asignatura,
  288.     ( SELECT dp_1.nombre
  289.            FROM esq_distributivos.departamento dp_1
  290.           WHERE dp_1.iddepartamento = mu.iddepartamento) AS ndepartamento_asignatura,
  291.     mu.idmateria_unica,
  292.     mu.nombre AS nmateria_unica,
  293.     ( SELECT count(mm.idmalla) AS count
  294.            FROM esq_mallas.malla_materia_nivel mm
  295.           WHERE mm.idmateria_unica = da.idmateria_unica AND (mm.idmalla IN ( SELECT m.idmalla
  296.                    FROM esq_mallas.malla_escuela m
  297.                   WHERE m.cerrada::text = 'N'::text))) AS num_mallas,
  298.     da.idparalelo,
  299.     p.nombre AS paralelo,
  300.     ( SELECT COALESCE(max(m.horas), 0) AS "coalesce"
  301.            FROM esq_mallas.malla_materia_nivel m
  302.              JOIN esq_mallas.malla_escuela me ON me.idmalla = m.idmalla
  303.           WHERE me.cerrada::text = 'N'::text AND m.idmateria_unica = mu.idmateria_unica) AS horas_asignatura_total,
  304.     0 AS horas_asignatura_compartida,
  305.     da.idpersonal,
  306.     pr.cedula,
  307.     (((COALESCE(pr.apellido1, ''::character varying)::text || ' '::text) || COALESCE(pr.apellido2, ''::character varying)::text) || ' '::text) || COALESCE(pr.nombres, ''::character varying)::text AS docente,
  308.     da.ver_datos,
  309.     da.cupo,
  310.     ( SELECT count(t_1.idpersonal) AS count
  311.            FROM ( SELECT DISTINCT id.idpersonal
  312.                    FROM esq_inscripciones.inscripcion_detalle id
  313.                   WHERE id.iddistributivo = da.iddistributivo AND id.anulado::text = 'N'::text AND (id.idperiodo IN ( SELECT pa.idperiodo
  314.                            FROM esq_periodos_academicos.periodo_academico pa
  315.                              JOIN esq_distributivos.departamento_periodo dp_1 ON dp_1.idperiodo = pa.idperiodo
  316.                           WHERE dp_1.id_departamento_periodo = da.iddepartamento_periodo))) t_1) AS num_estudiantes_registrados,
  317.     da.observacion,
  318.     ( SELECT count(es.idpersonal) AS count
  319.            FROM esq_solicitudes.inscripcion_detalle_espera es
  320.           WHERE es.iddistributivo = da.iddistributivo) AS num_solicitud_cupo,
  321.     ( SELECT count(es.idpersonal) AS count
  322.            FROM esq_solicitudes.inscripcion_detalle_espera es
  323.           WHERE es.iddistributivo_actual = da.iddistributivo) AS num_solicitud_eliminar,
  324.     ( SELECT count(da1.idparalelo) AS count
  325.            FROM esq_distributivos.distribucion_academica da1
  326.           WHERE da1.idmateria_unica = da.idmateria_unica AND da1.iddepartamento_periodo = da.iddepartamento_periodo) AS num_paralelos,
  327.     da.habilitado AS paralelo_habilitado,
  328.     da.autorizado AS paralelo_autorizado,
  329.     ( SELECT max(mm.materia_virtual::text) AS count
  330.            FROM esq_mallas.malla_materia_nivel mm
  331.           WHERE mm.idmateria_unica = da.idmateria_unica) AS materia_virtual,
  332.     0::bigint AS iddistributivo_compartido,
  333.     0 AS idconfiguracion,
  334.     0 AS idparalelo_materia_compartida,
  335.     ''::character varying AS paralelo_materia_compartida,
  336.     ''::character varying AS d_habilitado_materia_compartida,
  337.     ''::character varying AS observacion_materia_compartida,
  338.     'N'::text AS es_materia_compartida,
  339.     '0'::text AS num_estudiantes_registrados_materia_compartida
  340.    FROM esq_distributivos.distribucion_academica da
  341.      JOIN esq_distributivos.departamento_periodo dp ON dp.id_departamento_periodo = da.iddepartamento_periodo
  342.      JOIN esq_distributivos.materia_unica mu ON mu.idmateria_unica = da.idmateria_unica
  343.      JOIN esq_distributivos.paralelo p ON p.idparalelo = da.idparalelo
  344.      JOIN esq_datos_personales.personal pr ON pr.idpersonal = da.idpersonal
  345. UNION ALL
  346.  SELECT dac.iddistributivo,
  347.     dac.iddepartamento_periodo,
  348.     ( SELECT pa.idperiodo
  349.            FROM esq_periodos_academicos.periodo_academico pa
  350.              JOIN esq_distributivos.departamento_periodo dp ON dp.idperiodo = pa.idperiodo
  351.           WHERE dp.id_departamento_periodo = dac.iddepartamento_periodo) AS idperiodo_academico,
  352.     mc.iddepartamento AS iddepartamento_asignatura,
  353.     ( SELECT dp_1.nombre
  354.            FROM esq_distributivos.departamento dp_1
  355.           WHERE dp_1.iddepartamento = mc.iddepartamento) AS ndepartamento_asignatura,
  356.     mc.idmateria_unica,
  357.     ((((mc.nombre::text || ' ('::text) || c.descripcion::text) || ' '::text) || c.numero_horas) || 'HRS. )'::text AS nmateria_unica,
  358.     ( SELECT count(mm.idmalla) AS count
  359.            FROM esq_mallas.malla_materia_nivel mm
  360.           WHERE mm.idmateria_unica = dac.idmateria_unica AND (mm.idmalla IN ( SELECT m.idmalla
  361.                    FROM esq_mallas.malla_escuela m
  362.                   WHERE m.cerrada::text = 'N'::text))) AS num_mallas,
  363.     dac.idparalelo,
  364.     ( SELECT p.nombre
  365.            FROM esq_distributivos.paralelo p
  366.           WHERE p.idparalelo = dac.idparalelo) AS paralelo,
  367.     ( SELECT COALESCE(max(m.horas), 0) AS "coalesce"
  368.            FROM esq_mallas.malla_materia_nivel m
  369.              JOIN esq_mallas.malla_escuela me ON me.idmalla = m.idmalla
  370.           WHERE me.cerrada::text = 'N'::text AND m.idmateria_unica = mc.idmateria_unica) AS horas_asignatura_total,
  371.     c.numero_horas AS horas_asignatura_compartida,
  372.     da1.idpersonal,
  373.     pec.cedula,
  374.     (((COALESCE(pec.apellido1, ''::character varying)::text || ' '::text) || COALESCE(pec.apellido2, ''::character varying)::text) || ' '::text) || COALESCE(pec.nombres, ''::character varying)::text AS docente,
  375.     dac.ver_datos,
  376.     da1.cupo,
  377.     ( SELECT count(t_1.idpersonal) AS count
  378.            FROM ( SELECT DISTINCT id.idpersonal
  379.                    FROM esq_inscripciones.inscripcion_detalle id
  380.                   WHERE id.iddistributivo = dac.iddistributivo AND id.anulado::text = 'N'::text AND (id.idperiodo IN ( SELECT pa.idperiodo
  381.                            FROM esq_periodos_academicos.periodo_academico pa
  382.                              JOIN esq_distributivos.departamento_periodo dp_1 ON dp_1.idperiodo = pa.idperiodo
  383.                           WHERE dp_1.id_departamento_periodo = dac.iddepartamento_periodo))) t_1) AS num_estudiantes_registrados,
  384.     dac.observacion,
  385.     ( SELECT count(es.idpersonal) AS count
  386.            FROM esq_solicitudes.inscripcion_detalle_espera es
  387.           WHERE es.iddistributivo = dac.iddistributivo) AS num_solicitud_cupo,
  388.     ( SELECT count(es.idpersonal) AS count
  389.            FROM esq_solicitudes.inscripcion_detalle_espera es
  390.           WHERE es.iddistributivo_actual = dac.iddistributivo) AS num_solicitud_eliminar,
  391.     ( SELECT count(da1_1.idparalelo) AS count
  392.            FROM esq_distributivos.distribucion_academica da1_1
  393.           WHERE da1_1.idmateria_unica = dac.idmateria_unica AND da1_1.iddepartamento_periodo = dac.iddepartamento_periodo) AS num_paralelos,
  394.     dac.habilitado AS paralelo_habilitado,
  395.     dac.autorizado AS paralelo_autorizado,
  396.     ( SELECT max(mm.materia_virtual::text) AS count
  397.            FROM esq_mallas.malla_materia_nivel mm
  398.           WHERE mm.idmateria_unica = dac.idmateria_unica) AS materia_virtual,
  399.     da1.iddistributivo_compartido,
  400.     da1.idconfiguracion,
  401.     da1.idparalelo AS idparalelo_materia_compartida,
  402.     ( SELECT p.nombre
  403.            FROM esq_distributivos.paralelo p
  404.           WHERE p.idparalelo = da1.idparalelo) AS paralelo_materia_compartida,
  405.     da1.habilitado AS d_habilitado_materia_compartida,
  406.     da1.observacion AS observacion_materia_compartida,
  407.     'S'::text AS es_materia_compartida,
  408.     '0'::text AS num_estudiantes_registrados_materia_compartida
  409.    FROM esq_distributivos.distribucion_academica dac
  410.      JOIN esq_distributivos.distribucion_academica_compartida da1 ON da1.iddistributivo = dac.iddistributivo
  411.      JOIN esq_distributivos.materia_unica_compartida_configuracion c ON c.idconfiguracion = da1.idconfiguracion
  412.      JOIN esq_distributivos.materia_unica mc ON mc.idmateria_unica = c.idmateria_unica
  413.      JOIN esq_datos_personales.personal pec ON pec.idpersonal = da1.idpersonal;
  414.  
  415. ALTER TABLE esq_distributivos.v_distribucion_academica_asignaturas
  416.   OWNER TO postgres;
  417.  
  418. -- View: esq_distributivos.v_distribucion_administrativa
  419.  
  420. -- DROP VIEW esq_distributivos.v_distribucion_administrativa;
  421.  
  422. CREATE OR REPLACE VIEW esq_distributivos.v_distribucion_administrativa AS
  423.  SELECT da.idperiodo AS idperiodo_academico,
  424.     ( SELECT dp.id_departamento_periodo
  425.            FROM esq_distributivos.departamento_periodo dp
  426.           WHERE dp.idperiodo = da.idperiodo AND dp.iddepartamento = dd.iddepartamento) AS idepartamento_periodo,
  427.     ( SELECT pa.nombre
  428.            FROM esq_periodos_academicos.periodo_academico pa
  429.           WHERE pa.idperiodo = da.idperiodo) AS nperiodo_acaemico,
  430.     da.idotra_actividad,
  431.     pe.idpersonal,
  432.     pe.cedula,
  433.     (((COALESCE(pe.apellido1, ''::character varying)::text || ' '::text) || COALESCE(pe.apellido2, ''::character varying)::text) || ' '::text) || COALESCE(pe.nombres, ''::character varying)::text AS docente,
  434.     dd.iddepartamento,
  435.     ( SELECT d.nombre
  436.            FROM esq_distributivos.departamento d
  437.           WHERE d.iddepartamento = dd.iddepartamento) AS ndepartamento,
  438.     esq_distributivos.f_obtiene_dedicacion_categoria_modalidad_laboral(pe.idpersonal, da.idperiodo, 1) AS iddedicacion,
  439.     COALESCE(( SELECT dt.nombre
  440.            FROM esq_distributivos.dedicacion_tipo dt
  441.           WHERE dt.iddedicacion = esq_distributivos.f_obtiene_dedicacion_categoria_modalidad_laboral(pe.idpersonal, da.idperiodo, 1)), '-'::character varying) AS ndedicacion,
  442.     esq_distributivos.f_obtiene_dedicacion_categoria_modalidad_laboral(pe.idpersonal, da.idperiodo, 2) AS idcategoria,
  443.     COALESCE(( SELECT ct.nombre
  444.            FROM esq_distributivos.categoria_tipo ct
  445.           WHERE ct.idcategoria = esq_distributivos.f_obtiene_dedicacion_categoria_modalidad_laboral(pe.idpersonal, da.idperiodo, 2)), '-'::character varying) AS ncategoria,
  446.     esq_distributivos.f_obtiene_dedicacion_categoria_modalidad_laboral(pe.idpersonal, da.idperiodo, 3) AS idmodalidad_laboral,
  447.     COALESCE(( SELECT mt.nombre
  448.            FROM esq_distributivos.modalidad_laboral mt
  449.           WHERE mt.idmodadalidad_laboral = esq_distributivos.f_obtiene_dedicacion_categoria_modalidad_laboral(pe.idpersonal, da.idperiodo, 3)), '-'::character varying) AS nmodalidad_laboral,
  450.     COALESCE(( SELECT dt.num_horas_clase_min
  451.            FROM esq_distributivos.dedicacion_categoria_personal_academico dc
  452.              JOIN esq_distributivos.dedicacion_tipo dt ON dt.iddedicacion = dc.iddedicacion
  453.           WHERE dc.idpersonal = dd.idpersonal
  454.           ORDER BY dc.fecha DESC
  455.          LIMIT 1), 0) AS num_horas_clase_min,
  456.     COALESCE(( SELECT dt.num_horas_clase
  457.            FROM esq_distributivos.dedicacion_categoria_personal_academico dc
  458.              JOIN esq_distributivos.dedicacion_tipo dt ON dt.iddedicacion = dc.iddedicacion
  459.           WHERE dc.idpersonal = dd.idpersonal
  460.           ORDER BY dc.fecha DESC
  461.          LIMIT 1), 0) AS num_horas_clase,
  462.     COALESCE(( SELECT dt.num_horas_otros
  463.            FROM esq_distributivos.dedicacion_categoria_personal_academico dc
  464.              JOIN esq_distributivos.dedicacion_tipo dt ON dt.iddedicacion = dc.iddedicacion
  465.           WHERE dc.idpersonal = dd.idpersonal
  466.           ORDER BY dc.fecha DESC
  467.          LIMIT 1), 0) AS num_horas_otros,
  468.     COALESCE(( SELECT dt.num_horas_total
  469.            FROM esq_distributivos.dedicacion_categoria_personal_academico dc
  470.              JOIN esq_distributivos.dedicacion_tipo dt ON dt.iddedicacion = dc.iddedicacion
  471.           WHERE dc.idpersonal = dd.idpersonal
  472.           ORDER BY dc.fecha DESC
  473.          LIMIT 1), 0) AS num_horas_total,
  474.     da.idcarga_administrativa,
  475.     ca.abrevia AS rcarga_administrativa,
  476.     ca.nombre AS ncarga_administrativa,
  477.     ca.habilitado AS carga_administrativa_habilitada,
  478.     ca.opcional AS carga_administrativa_opcional,
  479.     tca.orden,
  480.     ca.idcarga_administrativa_tipo,
  481.     tca.nombre AS ncarga_administrativa_tipo,
  482.     da.numero_horas,
  483.     COALESCE(( SELECT sum(( SELECT COALESCE(max(m.horas), 0) AS "coalesce"
  484.                    FROM esq_mallas.malla_materia_nivel m
  485.                      JOIN esq_mallas.malla_escuela me ON me.idmalla = m.idmalla
  486.                   WHERE me.cerrada::text = 'N'::text AND m.idmateria_unica = d.idmateria_unica)) AS t_horas
  487.            FROM esq_distributivos.distribucion_academica d
  488.           WHERE d.habilitado::text = 'S'::text AND d.cupo > 0 AND NOT (d.idmateria_unica IN ( SELECT mu.idmateria_unica
  489.                    FROM esq_distributivos.materia_unica mu
  490.                   WHERE mu.es_compartida::text = 'S'::text AND da.idperiodo >= 47)) AND d.idpersonal = pe.idpersonal AND (d.iddepartamento_periodo IN ( SELECT p.id_departamento_periodo
  491.                    FROM esq_distributivos.departamento_periodo p
  492.                   WHERE p.idperiodo = da.idperiodo))), 0::bigint) + COALESCE(( SELECT sum(c.numero_horas) AS sum
  493.            FROM esq_distributivos.distribucion_academica_compartida dc
  494.              JOIN esq_distributivos.materia_unica_compartida_configuracion c ON c.idconfiguracion = dc.idconfiguracion
  495.              JOIN esq_distributivos.distribucion_academica da1 ON da1.iddistributivo = dc.iddistributivo
  496.           WHERE dc.habilitado::text = 'S'::text AND dc.idpersonal = pe.idpersonal AND (da1.iddepartamento_periodo IN ( SELECT p.id_departamento_periodo
  497.                    FROM esq_distributivos.departamento_periodo p
  498.                   WHERE p.idperiodo = da.idperiodo))), 0::bigint) AS num_horas_clase_asignadas,
  499.     da.habilitado AS distribucion_administrativa_habilitada,
  500.     ca.idcarga_administrativa_relacion
  501.    FROM esq_distributivos.distribucion_administrativa da
  502.      JOIN esq_distributivos.carga_administrativa ca ON ca.idcarga_administrativa = da.idcarga_administrativa
  503.      JOIN esq_distributivos.carga_administrativa_tipo tca ON tca.idcarga_administrativa_tipo = ca.idcarga_administrativa_tipo
  504.      JOIN esq_datos_personales.personal pe ON pe.idpersonal = da.idpersonal
  505.      JOIN esq_distributivos.departamento_docente dd ON dd.idpersonal = pe.idpersonal;
  506.  
  507. ALTER TABLE esq_distributivos.v_distribucion_administrativa
  508.   OWNER TO postgres;
  509.  
  510. -- View: esq_distributivos.v_horario
  511.  
  512. -- DROP VIEW esq_distributivos.v_horario;
  513.  
  514. CREATE OR REPLACE VIEW esq_distributivos.v_horario AS
  515.  SELECT ha.iddia,
  516.     hd.nombre AS dia,
  517.     ha.idhora,
  518.     hh.hora_inicio,
  519.     hh.hora_final,
  520.     hh.intervalo AS hora,
  521.     hh.hora_catedra,
  522.     da.iddistributivo,
  523.     da.iddepartamento_periodo,
  524.     ( SELECT pa.idperiodo
  525.            FROM esq_periodos_academicos.periodo_academico pa
  526.              JOIN esq_distributivos.departamento_periodo dp ON dp.idperiodo = pa.idperiodo
  527.           WHERE dp.id_departamento_periodo = da.iddepartamento_periodo) AS idperiodo_academico,
  528.     m.iddepartamento,
  529.     ( SELECT d.nombre
  530.            FROM esq_distributivos.departamento d
  531.           WHERE d.iddepartamento = m.iddepartamento) AS ndepartamento,
  532.     da.idmateria_unica,
  533.     m.nombre AS nmateria,
  534.     ( SELECT COALESCE(max(m_1.horas), 0) AS "coalesce"
  535.            FROM esq_mallas.malla_materia_nivel m_1
  536.           WHERE m_1.idmateria_unica = da.idmateria_unica AND NOT (m_1.idmalla IN ( SELECT me.idmalla
  537.                    FROM esq_mallas.malla_escuela me
  538.                   WHERE me.estado::text = 'N'::text))) AS num_horas,
  539.     da.idparalelo,
  540.     p.nombre AS paralelo,
  541.     da.idpersonal,
  542.     (((COALESCE(pe.apellido1, ''::character varying)::text || ' '::text) || COALESCE(pe.apellido2, ''::character varying)::text) || ' '::text) || COALESCE(pe.nombres, ''::character varying)::text AS docente,
  543.     ha.idambiente,
  544.     a.codigo_utm,
  545.         CASE a.idtipo_ambiente
  546.             WHEN 7 THEN a.otro_tipo_ambiente
  547.             ELSE ( SELECT at.nombre
  548.                FROM esq_distributivos.ambiente_tipo at
  549.               WHERE at.idtipo_ambiente = a.idtipo_ambiente)
  550.         END AS ntipo_ambiente,
  551.     a.piso,
  552.     a.numero_ambiente,
  553.     ( SELECT f.nombre
  554.            FROM esq_inscripciones.facultad f
  555.           WHERE f.idfacultad = a.idfacultad) AS nfacultad,
  556.     ( SELECT (ae.nombre::text || ' - '::text) || ac.nombre::text
  557.            FROM esq_distributivos.ambiente_edificio ae
  558.              JOIN esq_distributivos.ambiente_campus ac ON ac.idambiente_campus::double precision = ae.idambiente_campus
  559.           WHERE ae.idedificio = a.idedificio) AS nedificio,
  560.     a.descripcion,
  561.     da.habilitado AS d_habilitado,
  562.     da.observacion,
  563.     da.ver_datos,
  564.     da.habilitado AS paralelo_habilitado,
  565.     hh.idfranja,
  566.     ( SELECT hf.intervalo
  567.            FROM esq_distributivos.horario_hora_franja hf
  568.           WHERE hf.idfranja = hh.idfranja) AS franja_intervalo,
  569.     ( SELECT hf.habilitado
  570.            FROM esq_distributivos.horario_hora_franja hf
  571.           WHERE hf.idfranja = hh.idfranja) AS franja_habilitado,
  572.     a.compartido AS ambiente_compartido,
  573.     pe.cedula,
  574.     0::bigint AS iddistributivo_compartido,
  575.     0 AS idconfiguracion,
  576.     0 AS idparalelo_materia_compartida,
  577.     ''::character varying AS paralelo_materia_compartida,
  578.     ''::character varying AS d_habilitado_materia_compartida,
  579.     ''::character varying AS observacion_materia_compartida,
  580.     'N'::text AS es_materia_compartida
  581.    FROM esq_distributivos.horario_asignatura ha
  582.      JOIN esq_distributivos.distribucion_academica da ON da.iddistributivo = ha.iddistributivo
  583.      JOIN esq_distributivos.horario_hora hh ON hh.idhora = ha.idhora
  584.      JOIN esq_distributivos.horario_dia hd ON hd.iddia = ha.iddia
  585.      JOIN esq_distributivos.materia_unica m ON m.idmateria_unica = da.idmateria_unica
  586.      JOIN esq_distributivos.paralelo p ON p.idparalelo = da.idparalelo
  587.      JOIN esq_datos_personales.personal pe ON pe.idpersonal = da.idpersonal
  588.      JOIN esq_distributivos.ambiente a ON a.idambiente = ha.idambiente
  589. UNION ALL
  590.  SELECT hac.iddia,
  591.     hdc.nombre AS dia,
  592.     hac.idhora,
  593.     hhc.hora_inicio,
  594.     hhc.hora_final,
  595.     hhc.intervalo AS hora,
  596.     hhc.hora_catedra,
  597.     dac.iddistributivo,
  598.     dac.iddepartamento_periodo,
  599.     ( SELECT pa.idperiodo
  600.            FROM esq_periodos_academicos.periodo_academico pa
  601.              JOIN esq_distributivos.departamento_periodo dp ON dp.idperiodo = pa.idperiodo
  602.           WHERE dp.id_departamento_periodo = dac.iddepartamento_periodo) AS idperiodo_academico,
  603.     mc.iddepartamento,
  604.     ( SELECT d.nombre
  605.            FROM esq_distributivos.departamento d
  606.           WHERE d.iddepartamento = mc.iddepartamento) AS ndepartamento,
  607.     dac.idmateria_unica,
  608.     ((((mc.nombre::text || ' ('::text) || c.descripcion::text) || ' '::text) || c.numero_horas) || 'HRS. )'::text AS nmateria,
  609.     c.numero_horas AS num_horas,
  610.     dac.idparalelo,
  611.     ( SELECT p.nombre
  612.            FROM esq_distributivos.paralelo p
  613.           WHERE p.idparalelo = dac.idparalelo) AS paralelo,
  614.     da1.idpersonal,
  615.     (((COALESCE(pec.apellido1, ''::character varying)::text || ' '::text) || COALESCE(pec.apellido2, ''::character varying)::text) || ' '::text) || COALESCE(pec.nombres, ''::character varying)::text AS docente,
  616.     hac.idambiente,
  617.     ac.codigo_utm,
  618.         CASE ac.idtipo_ambiente
  619.             WHEN 7 THEN ac.otro_tipo_ambiente
  620.             ELSE ( SELECT at.nombre
  621.                FROM esq_distributivos.ambiente_tipo at
  622.               WHERE at.idtipo_ambiente = ac.idtipo_ambiente)
  623.         END AS ntipo_ambiente,
  624.     ac.piso,
  625.     ac.numero_ambiente,
  626.     ( SELECT f.nombre
  627.            FROM esq_inscripciones.facultad f
  628.           WHERE f.idfacultad = ac.idfacultad) AS nfacultad,
  629.     ( SELECT (ae.nombre::text || ' - '::text) || ac1.nombre::text
  630.            FROM esq_distributivos.ambiente_edificio ae
  631.              JOIN esq_distributivos.ambiente_campus ac1 ON ac1.idambiente_campus::double precision = ae.idambiente_campus
  632.           WHERE ae.idedificio = ac.idedificio) AS nedificio,
  633.     ac.descripcion,
  634.     dac.habilitado AS d_habilitado,
  635.     dac.observacion,
  636.     dac.ver_datos,
  637.     dac.habilitado AS paralelo_habilitado,
  638.     hhc.idfranja,
  639.     ( SELECT hf.intervalo
  640.            FROM esq_distributivos.horario_hora_franja hf
  641.           WHERE hf.idfranja = hhc.idfranja) AS franja_intervalo,
  642.     ( SELECT hf.habilitado
  643.            FROM esq_distributivos.horario_hora_franja hf
  644.           WHERE hf.idfranja = hhc.idfranja) AS franja_habilitado,
  645.     ac.compartido AS ambiente_compartido,
  646.     pec.cedula,
  647.     da1.iddistributivo_compartido,
  648.     da1.idconfiguracion,
  649.     da1.idparalelo AS idparalelo_materia_compartida,
  650.     ( SELECT p.nombre
  651.            FROM esq_distributivos.paralelo p
  652.           WHERE p.idparalelo = da1.idparalelo) AS paralelo_materia_compartida,
  653.     da1.habilitado AS d_habilitado_materia_compartida,
  654.     da1.observacion AS observacion_materia_compartida,
  655.     'S'::text AS es_materia_compartida
  656.    FROM esq_distributivos.horario_asignatura hac
  657.      JOIN esq_distributivos.distribucion_academica dac ON dac.iddistributivo = hac.iddistributivo
  658.      JOIN esq_distributivos.distribucion_academica_compartida da1 ON da1.iddistributivo_compartido = hac.iddistributivo_compartido
  659.      JOIN esq_distributivos.horario_hora hhc ON hhc.idhora = hac.idhora
  660.      JOIN esq_distributivos.horario_dia hdc ON hdc.iddia = hac.iddia
  661.      JOIN esq_distributivos.materia_unica_compartida_configuracion c ON c.idconfiguracion = da1.idconfiguracion
  662.      JOIN esq_distributivos.materia_unica mc ON mc.idmateria_unica = c.idmateria_unica
  663.      JOIN esq_datos_personales.personal pec ON pec.idpersonal = da1.idpersonal
  664.      JOIN esq_distributivos.ambiente ac ON ac.idambiente = hac.idambiente;
  665.  
  666. ALTER TABLE esq_distributivos.v_horario
  667.   OWNER TO postgres;
  668.  
  669.  
  670. -- View: esq_distributivos.v_horario_carga_administrativa
  671.  
  672. -- DROP VIEW esq_distributivos.v_horario_carga_administrativa;
  673.  
  674. CREATE OR REPLACE VIEW esq_distributivos.v_horario_carga_administrativa AS
  675.  SELECT da.idperiodo AS idperiodo_academico,
  676.     ( SELECT dp.id_departamento_periodo
  677.            FROM esq_distributivos.departamento_periodo dp
  678.           WHERE dp.idperiodo = da.idperiodo AND dp.iddepartamento = dd.iddepartamento) AS iddepartamento_periodo,
  679.     ( SELECT pa.nombre
  680.            FROM esq_periodos_academicos.periodo_academico pa
  681.           WHERE pa.idperiodo = da.idperiodo) AS nperiodo_academico,
  682.     da.idotra_actividad,
  683.     pe.idpersonal,
  684.     pe.cedula,
  685.     (((COALESCE(pe.apellido1, ''::character varying)::text || ' '::text) || COALESCE(pe.apellido2, ''::character varying)::text) || ' '::text) || COALESCE(pe.nombres, ''::character varying)::text AS docente,
  686.     dd.iddepartamento,
  687.     ( SELECT d.nombre
  688.            FROM esq_distributivos.departamento d
  689.           WHERE d.iddepartamento = dd.iddepartamento) AS ndepartamento,
  690.     da.idcarga_administrativa,
  691.     ca.nombre AS ncarga_administrativa,
  692.     ca.abrevia AS rcarga_administrativa,
  693.     ca.idcarga_administrativa_tipo,
  694.     tca.nombre AS ncarga_administrativa_tipo,
  695.     ca.opcional,
  696.     da.numero_horas,
  697.     ha.iddia,
  698.     hd.nombre AS dia,
  699.     ha.idhora,
  700.     hh.hora_inicio,
  701.     hh.hora_final,
  702.     hh.intervalo AS hora,
  703.     hh.hora_catedra,
  704.     ha.idambiente,
  705.     a.codigo_utm,
  706.         CASE a.idtipo_ambiente
  707.             WHEN 7 THEN a.otro_tipo_ambiente
  708.             ELSE ( SELECT at.nombre
  709.                FROM esq_distributivos.ambiente_tipo at
  710.               WHERE at.idtipo_ambiente = a.idtipo_ambiente)
  711.         END AS ntipo_ambiente,
  712.     a.piso,
  713.     a.numero_ambiente,
  714.     ( SELECT f.nombre
  715.            FROM esq_inscripciones.facultad f
  716.           WHERE f.idfacultad = a.idfacultad) AS nfacultad,
  717.     ( SELECT (ae.nombre::text || ' - '::text) || ac.nombre::text
  718.            FROM esq_distributivos.ambiente_edificio ae
  719.              JOIN esq_distributivos.ambiente_campus ac ON ac.idambiente_campus::double precision = ae.idambiente_campus
  720.           WHERE ae.idedificio = a.idedificio) AS nedificio,
  721.     a.descripcion,
  722.     da.habilitado AS distribucion_administrativa_habilitada,
  723.     a.compartido AS ambiente_compartido,
  724.     hh.idfranja,
  725.     ( SELECT hf.intervalo
  726.            FROM esq_distributivos.horario_hora_franja hf
  727.           WHERE hf.idfranja = hh.idfranja) AS franja_intervalo,
  728.     ( SELECT hf.habilitado
  729.            FROM esq_distributivos.horario_hora_franja hf
  730.           WHERE hf.idfranja = hh.idfranja) AS franja_habilitado
  731.    FROM esq_distributivos.horario_actividad_administrativa ha
  732.      JOIN esq_distributivos.distribucion_administrativa da ON da.idotra_actividad = ha.idotra_actividad
  733.      JOIN esq_distributivos.horario_hora hh ON hh.idhora = ha.idhora
  734.      JOIN esq_distributivos.horario_dia hd ON hd.iddia = ha.iddia
  735.      JOIN esq_distributivos.carga_administrativa ca ON ca.idcarga_administrativa = da.idcarga_administrativa
  736.      JOIN esq_distributivos.carga_administrativa_tipo tca ON tca.idcarga_administrativa_tipo = ca.idcarga_administrativa_tipo
  737.      JOIN esq_datos_personales.personal pe ON pe.idpersonal = da.idpersonal
  738.      JOIN esq_distributivos.departamento_docente dd ON dd.idpersonal = pe.idpersonal
  739.      JOIN esq_distributivos.ambiente a ON a.idambiente = ha.idambiente;
  740.  
  741. ALTER TABLE esq_distributivos.v_horario_carga_administrativa
  742.   OWNER TO postgres;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement