preinscripcion 3.22.0 personalizado para colegios preuniversitarios de UADER
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

458 lines
28 KiB

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Script de conversion de version 3.11 a 3.12
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BEGIN WORK;
-- Versión de la base
INSERT INTO app_versiones_base(version_base, fecha_actualizacion, observaciones)
VALUES ('3.12', CURRENT_TIMESTAMP, 'Versión 3.12 de la base de Preinscripción');
-- +++++++++++++++ Agrega el campo "es_mayor_15_sin_secundario" ++++++++++++++++++++++++++++++
DO $BODY$
DECLARE cant INTEGER;
BEGIN
SELECT COUNT(*) INTO cant
FROM pg_tables
JOIN pg_namespace ON pg_namespace.nspname = pg_tables.schemaname
JOIN pg_class ON (pg_class.relname = pg_tables.tablename AND pg_class.relnamespace = pg_namespace.oid)
JOIN pg_attribute as a0 ON a0.attrelid = pg_class.oid
WHERE pg_tables.schemaname = trim(current_schema())
AND pg_tables.tablename = 'sga_preinscripcion'
AND a0.attname = 'es_mayor_25_sin_secundario'
AND a0.attnum > 0;
IF cant = 0 THEN
ALTER TABLE sga_preinscripcion ADD COLUMN es_mayor_25_sin_secundario Char(1) NOT NULL DEFAULT 'N';
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_es_mayor_25_sin_secundario CHECK (es_mayor_25_sin_secundario IN ('N', 'S'));
-- Datos de configuracion
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('es_mayor_25_sin_secundario','Es mayor de 25 años y no tiene estudios secundarios');
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200','es_mayor_25_sin_secundario',1,1,1);
END IF;
END $BODY$;
-- ++++++++++++++++++ Fin agregado campo es_mayor_25_sin_secundario +++++++++++++++++++
-- +++++++++++++++ Agrega campos de Discapacidad en la tabla "sga_preinscripcion" ++++++++++++++++++++++++++++++
DO $BODY$
DECLARE cant INTEGER;
DECLARE c_p RECORD;
DECLARE c_d RECORD;
DECLARE _tipo integer;
DECLARE _tiene_cud char(1);
DECLARE _condicion_discapacidad char(1);
DECLARE _desde_hasta text;
DECLARE _desc text;
DECLARE _desc_otras_discapacidades text;
BEGIN
SELECT COUNT(*) INTO cant
FROM pg_tables
JOIN pg_namespace ON pg_namespace.nspname = pg_tables.schemaname
JOIN pg_class ON (pg_class.relname = pg_tables.tablename AND pg_class.relnamespace = pg_namespace.oid)
JOIN pg_attribute as a0 ON a0.attrelid = pg_class.oid
WHERE pg_tables.schemaname = trim(current_schema())
AND pg_tables.tablename = 'sga_preinscripcion'
AND a0.attname = 'condicion_discapacidad'
AND a0.attnum > 0;
IF cant = 0 THEN
ALTER TABLE sga_preinscripcion
ADD COLUMN condicion_discapacidad Char(1) NOT NULL DEFAULT 'N',
ADD COLUMN tiene_cud Char(1) DEFAULT 'N',
ADD COLUMN disc_auditiva Char(1) DEFAULT 'N',
ADD COLUMN aud_tipo Smallint DEFAULT 1,
ADD COLUMN aud_lenguaje_senias Char(1) DEFAULT 'N',
ADD COLUMN aud_lenguaje_labial Char(1) DEFAULT 'N',
ADD COLUMN aud_comunicacion_otra Text,
ADD COLUMN aud_apoyo_vida_diaria Text,
ADD COLUMN aud_req_interprete_lengua_senias Char(1) DEFAULT 'N',
ADD COLUMN aud_req_aro_magnetico Char(1) DEFAULT 'N',
ADD COLUMN aud_req_otros_apoyos Char(1) DEFAULT 'N',
ADD COLUMN aud_otros_apoyos Text,
ADD COLUMN disc_visual Char(1) DEFAULT 'N',
ADD COLUMN vis_dificultad_para_ver Smallint DEFAULT 1,
ADD COLUMN vis_apoyo_vida_diaria Text,
ADD COLUMN vis_req_archivo_audio Char(1) DEFAULT 'N',
ADD COLUMN vis_req_texto_digital Char(1) DEFAULT 'N',
ADD COLUMN vis_req_texto_braile Char(1) DEFAULT 'N',
ADD COLUMN vis_req_otros_apoyos Char(1) DEFAULT 'N',
ADD COLUMN vis_otros_apoyos Text,
ADD COLUMN disc_motora Char(1) DEFAULT 'N',
ADD COLUMN mot_apoyo_vida_diaria Text,
ADD COLUMN mot_req_apoyo_aula Char(1) DEFAULT 'N',
ADD COLUMN mot_apoyo_aula Text,
ADD COLUMN mot_req_otros_apoyos Char(1) DEFAULT 'N',
ADD COLUMN mot_otros_apoyos Text,
ADD COLUMN disc_cond_psicosocial Char(1) DEFAULT 'N',
ADD COLUMN psi_descripcion Text,
ADD COLUMN psi_apoyo_vida_diaria Text,
ADD COLUMN psi_req_otros_apoyos Char(1) DEFAULT 'N',
ADD COLUMN psi_otros_apoyos Text,
ADD COLUMN disc_otra Char(1) DEFAULT 'N',
ADD COLUMN otra_descripcion Text,
ADD COLUMN otra_req_apoyo_vida_diaria Char(1) DEFAULT 'N',
ADD COLUMN otra_apoyo_vida_diaria Text,
ADD COLUMN informacion_importante Text;
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_condicion_discapacidad CHECK (condicion_discapacidad IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_tiene_cud CHECK (tiene_cud IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_disc_auditiva CHECK (disc_auditiva IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_aud_lenguaje_senias CHECK (aud_lenguaje_senias IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_aud_lenguaje_labial CHECK (aud_lenguaje_labial IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_aud_req_interprete_lengua_senias CHECK (aud_req_interprete_lengua_senias IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_aud_req_aro_magnetico CHECK (aud_req_aro_magnetico IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_aud_req_otros_apoyos CHECK (aud_req_otros_apoyos IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_disc_visual CHECK (disc_visual IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_vis_req_archivo_audio CHECK (vis_req_archivo_audio IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_vis_req_texto_digital CHECK (vis_req_texto_digital IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_vis_req_texto_braile CHECK (vis_req_texto_braile IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_vis_req_otros_apoyos CHECK (vis_req_otros_apoyos IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_disc_motora CHECK (disc_motora IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_mot_req_apoyo_aula CHECK (mot_req_apoyo_aula IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_mot_req_otros_apoyos CHECK (mot_req_otros_apoyos IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_disc_cond_psicosocial CHECK (disc_cond_psicosocial IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_psi_req_otros_apoyos CHECK (psi_req_otros_apoyos in ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_disc_otra CHECK (disc_otra IN ('S','N'));
ALTER TABLE sga_preinscripcion ADD CONSTRAINT ck_sga_preinscripcion_otra_req_apoyo_vida_diaria CHECK (otra_req_apoyo_vida_diaria IN ('S','N'));
-- Se modifica a 300 caracteres para los datos de discapacidad
ALTER TABLE sga_campos_form ALTER COLUMN descripcion TYPE VARCHAR(300);
-- Datos de configuracion
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('condicion_discapacidad', 'Condición de Discapacidad');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('tiene_cud', 'Tenés CUD');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('disc_auditiva', 'Auditiva');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('aud_tipo', '¿Tenés dificultad para oír, incluso si usás un audífono o implante coclear?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('aud_lenguaje_senias', 'Lengua de Señas');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('aud_lenguaje_labial', 'Lectura labial');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('aud_comunicacion_otra', 'Otra forma');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('aud_apoyo_vida_diaria', '¿Qué apoyos utilizás en tu vida diaria?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('aud_req_interprete_lengua_senias', 'Requerís Intérprete de Lengua de Señas Argentina');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('aud_req_aro_magnetico', 'Requerís Aro magnético');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('aud_req_otros_apoyos', '¿Requerís otros apoyos?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('aud_otros_apoyos', 'Especificar cuáles');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('disc_visual', 'Visual');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('vis_dificultad_para_ver', '¿Tenés dificultad para ver, incluso si usás lentes?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('vis_apoyo_vida_diaria', '¿Qué apoyos utilizás en tu vida diaria?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('vis_req_archivo_audio', 'Requerís Archivos de audio');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('vis_req_texto_digital', 'Requerís Texto digital accesible');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('vis_req_texto_braile', 'Requerís Texto en Braille');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('vis_req_otros_apoyos', '¿Requerís otros apoyos?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('vis_otros_apoyos', 'Especificar cuáles');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('disc_motora', 'Motora');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('mot_apoyo_vida_diaria', '¿Qué apoyos utilizás en tu vida diaria?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('mot_req_apoyo_aula', '¿Requerís apoyos para la permanencia en el aula?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('mot_apoyo_aula', '¿Cuáles?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('mot_req_otros_apoyos', '¿Requerís otros apoyos?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('mot_otros_apoyos', 'Especificar cuáles');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('disc_cond_psicosocial', 'Condición Psicosocial');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('psi_descripcion', '¿Cuál?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('psi_apoyo_vida_diaria', '¿Qué apoyos utilizás en tu vida diaria?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('psi_req_otros_apoyos', '¿Requerís otros apoyos?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('psi_otros_apoyos', 'Especificar cuáles');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('disc_otra', 'Otra');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('otra_descripcion', '¿Cuál/cuáles?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('otra_req_apoyo_vida_diaria', '¿Requiere otros apoyos?');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('otra_apoyo_vida_diaria', 'Especificar cuáles');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('informacion_importante', 'Alguna otra información que consideres importante comunicar');
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'condicion_discapacidad', 1, 1, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'tiene_cud', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'disc_auditiva', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'aud_tipo', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'aud_lenguaje_senias', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'aud_lenguaje_labial', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'aud_comunicacion_otra', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'aud_apoyo_vida_diaria', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'aud_req_interprete_lengua_senias', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'aud_req_aro_magnetico', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'aud_req_otros_apoyos', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'aud_otros_apoyos', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'disc_visual', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'vis_dificultad_para_ver', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'vis_apoyo_vida_diaria', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'vis_req_archivo_audio', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'vis_req_texto_digital', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'vis_req_texto_braile', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'vis_req_otros_apoyos', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'vis_otros_apoyos', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'disc_motora', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'mot_apoyo_vida_diaria', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'mot_req_apoyo_aula', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'mot_apoyo_aula', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'mot_req_otros_apoyos', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'mot_otros_apoyos', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'disc_cond_psicosocial', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'psi_descripcion', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'psi_apoyo_vida_diaria', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'psi_req_otros_apoyos', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'psi_otros_apoyos', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'disc_otra', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'otra_descripcion', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'otra_req_apoyo_vida_diaria', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'otra_apoyo_vida_diaria', 1, 0, 1);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200', 'informacion_importante', 1, 0, 1);
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Se replica la config. inicial de propuestas de Grado para los demás tipos
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime)
SELECT sga_propuestas_tipos.propuesta_tipo,
sga_campos_conf.columna,
sga_campos_conf.visible,
sga_campos_conf.obligatorio,
sga_campos_conf.se_imprime
FROM sga_campos_conf,
sga_propuestas_tipos
WHERE sga_campos_conf.propuesta_tipo = '200'
AND sga_propuestas_tipos.propuesta_tipo != '200'
AND NOT EXISTS (SELECT * FROM sga_campos_conf AS config WHERE config.propuesta_tipo = sga_propuestas_tipos.propuesta_tipo AND config.columna = sga_campos_conf.columna)
ORDER BY sga_propuestas_tipos.propuesta_tipo,
sga_campos_conf.columna;
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Se pasan los datos de discapacidad de la tabla 'mdp_datos_salud' a 'sga_preinscripcion'
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
FOR c_p IN ( SELECT id_preinscripcion
FROM sga_preinscripcion
ORDER BY id_preinscripcion)
LOOP
SELECT condicion_discapacidad INTO _condicion_discapacidad
FROM sga_preinscripcion
WHERE id_preinscripcion = c_p.id_preinscripcion
LIMIT 1;
IF _condicion_discapacidad = 'S' THEN
-- Ya fue procesado, sigo con el siguiente alumno.
CONTINUE;
END IF;
_tiene_cud := 'N';
_desde_hasta := '';
_desc_otras_discapacidades := 'Otras discapacidades: ';
-- Recorro los datos cargados por tipo de discapacidad
-- Solo paso el ultimo registro por cada tipo de discapacidad (con fecha_desde mayor)
_tipo := 0;
FOR c_d IN (SELECT * FROM mdp_datos_salud WHERE id_preinscripcion = c_p.id_preinscripcion ORDER BY tipo, fecha_desde DESC)
LOOP
IF c_d.tipo = _tipo THEN
_tipo := c_d.tipo;
CONTINUE;
END IF;
IF c_d.certificado = 'S' THEN
_tiene_cud := 'S';
END IF;
IF c_d.fecha_desde IS NOT NULL THEN
_desde_hasta := 'Desde ' || to_char(c_d.fecha_desde,'DD/MM/YYYY');
END IF;
IF c_d.fecha_hasta IS NOT NULL THEN
_desde_hasta := COALESCE(_desde_hasta,'') || ' hasta ' || to_char(c_d.fecha_hasta,'DD/MM/YYYY') || '.';
END IF;
/* Carácter:
"T" "Transitoria"
"P" "Permanente"
Grado:
"S" "Severa"
"M" "Moderada"
"L" "Leve"
*/
_desc := 'Carácter: ' || CASE c_d.caracter WHEN 'T' THEN 'Transitoria' WHEN 'P' THEN 'Permanente' END;
_desc := _desc || '. Grado: ' || CASE c_d.grado WHEN 'S' THEN 'Severa' WHEN 'M' THEN 'Moderada' WHEN 'L' THEN 'Leve' END;
IF c_d.observaciones IS NOT NULL THEN
_desc := _desc || '. ' || c_d.observaciones || '. ';
END IF;
_desc := _desc || _desde_hasta;
/* Tipos de Discapacidades */
IF c_d.tipo = 1 THEN -- "Neurológica"
_desc_otras_discapacidades := _desc_otras_discapacidades || ' * Neurológica > ' || _desc;
ELSIF c_d.tipo = 2 THEN -- "Psicológica"
UPDATE sga_preinscripcion
SET disc_cond_psicosocial = 'S',
psi_descripcion = _desc
WHERE id_preinscripcion = c_p.id_preinscripcion;
ELSIF c_d.tipo = 3 THEN -- "Motora"
UPDATE sga_preinscripcion
SET disc_motora = 'S',
mot_req_otros_apoyos = 'S',
mot_otros_apoyos = _desc
WHERE id_preinscripcion = c_p.id_preinscripcion;
ELSIF c_d.tipo = 4 THEN -- "Renal"
_desc_otras_discapacidades := _desc_otras_discapacidades || ' * Renal > ' || _desc;
ELSIF c_d.tipo = 5 THEN -- "Respiratoria"
_desc_otras_discapacidades := _desc_otras_discapacidades || ' * Respiratoria > ' || _desc;
ELSIF c_d.tipo = 6 THEN -- "Auditiva"
UPDATE sga_preinscripcion
SET disc_auditiva = 'S',
aud_tipo = CASE c_d.grado WHEN 'S' THEN 4 WHEN 'M' THEN 3 WHEN 'L' THEN 2 ELSE 1 END,
aud_req_otros_apoyos = 'S',
aud_otros_apoyos = _desc
WHERE id_preinscripcion = c_p.id_preinscripcion;
ELSIF c_d.tipo = 7 THEN -- "Cardiaca"
_desc_otras_discapacidades := _desc_otras_discapacidades || ' * Cardíaca > ' || _desc;
ELSIF c_d.tipo = 8 THEN -- "Visual"
UPDATE sga_preinscripcion
SET disc_visual = 'S',
vis_dificultad_para_ver = CASE c_d.grado WHEN 'S' THEN 4 WHEN 'M' THEN 3 WHEN 'L' THEN 2 ELSE 1 END,
vis_req_otros_apoyos = 'S',
vis_otros_apoyos = _desc
WHERE id_preinscripcion = c_p.id_preinscripcion;
ELSIF c_d.tipo = 9 THEN -- "Metabólica"
_desc_otras_discapacidades := _desc_otras_discapacidades || ' * Metabólica > ' || _desc;
ELSIF c_d.tipo = 10 THEN -- "Trastornos del lenguaje"
_desc_otras_discapacidades := _desc_otras_discapacidades || ' * Trastornos del lenguaje > ' || _desc;
ELSIF c_d.tipo = 11 THEN -- "Otras"
_desc_otras_discapacidades := _desc_otras_discapacidades || ' * Otras > ' || _desc;
END IF;
IF _desc_otras_discapacidades <> 'Otras discapacidades: ' THEN
UPDATE sga_preinscripcion
SET disc_otra = 'S',
otra_descripcion = _desc_otras_discapacidades
WHERE id_preinscripcion = c_p.id_preinscripcion;
END IF;
-- Actualizo datos genericos del registro de discapacidad de la persona.
UPDATE sga_preinscripcion
SET condicion_discapacidad = 'S',
tiene_cud = _tiene_cud
WHERE id_preinscripcion = c_p.id_preinscripcion;
_tipo := c_d.tipo;
END LOOP;
END LOOP;
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Se eliminan tablas viejas de discapacidad
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DROP TABLE IF EXISTS mdp_datos_salud;
DROP SEQUENCE IF EXISTS mdp_datos_salud_seq;
END IF;
END $BODY$;
-- ++++++++++++++++++ Fin agregado campos de Discapacidad en la tabla "sga_preinscripcion" +++++++++++++++++++
-- Cambia el tipo de datos de la columna "fecha_registro" de DATE a TIMESTAMP. Para poder controlar el tiempo permitido para confirmar el mail.
ALTER TABLE sga_preinscripcion ALTER COLUMN fecha_registro TYPE TIMESTAMP WITH TIME ZONE;
ALTER TABLE sga_preinscripcion ALTER COLUMN fecha_registro SET DEFAULT CURRENT_TIMESTAMP;
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Se agregan campos de IDENTIDAD DE GENERO
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DO $BODY$
DECLARE cant INTEGER;
BEGIN
SELECT COUNT(*) INTO cant
FROM pg_tables
JOIN pg_namespace ON pg_namespace.nspname = pg_tables.schemaname
JOIN pg_class ON (pg_class.relname = pg_tables.tablename AND pg_class.relnamespace = pg_namespace.oid)
JOIN pg_attribute as a0 ON a0.attrelid = pg_class.oid
WHERE pg_tables.schemaname = trim(current_schema())
AND pg_tables.tablename = 'sga_preinscripcion'
AND a0.attname = 'identidad_genero'
AND a0.attnum > 0;
IF cant = 0 THEN
ALTER TABLE sga_preinscripcion ADD COLUMN identidad_genero Integer;
ALTER TABLE sga_preinscripcion ADD COLUMN identidad_genero_otro Varchar(100);
-- Datos de configuracion
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('identidad_genero','identidad de genero elegido');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('identidad_genero_otro','campo para especificar identidad de genero');
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200','identidad_genero',1,0,0);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200','identidad_genero_otro',1,0,0);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime)
SELECT sga_propuestas_tipos.propuesta_tipo,
sga_campos_conf.columna,
sga_campos_conf.visible,
sga_campos_conf.obligatorio,
sga_campos_conf.se_imprime
FROM sga_campos_conf,
sga_propuestas_tipos
WHERE sga_campos_conf.propuesta_tipo = '200'
AND sga_propuestas_tipos.propuesta_tipo != '200'
AND NOT EXISTS (SELECT * FROM sga_campos_conf AS config WHERE config.propuesta_tipo = sga_propuestas_tipos.propuesta_tipo AND config.columna = sga_campos_conf.columna)
ORDER BY sga_propuestas_tipos.propuesta_tipo,
sga_campos_conf.columna;
END IF;
END $BODY$;
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Se agregan campos de diversidad e identidad de genero
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DO $BODY$
DECLARE cant INTEGER;
BEGIN
SELECT COUNT(*) INTO cant
FROM pg_tables
JOIN pg_namespace ON pg_namespace.nspname = pg_tables.schemaname
JOIN pg_class ON (pg_class.relname = pg_tables.tablename AND pg_class.relnamespace = pg_namespace.oid)
JOIN pg_attribute as a0 ON a0.attrelid = pg_class.oid
WHERE pg_tables.schemaname = trim(current_schema())
AND pg_tables.tablename = 'sga_preinscripcion'
AND (a0.attname = 'apellido_elegido' OR a0.attname = 'nombres_elegido')
AND a0.attnum > 0;
IF cant = 0 THEN
ALTER TABLE sga_preinscripcion ADD COLUMN apellido_elegido VARCHAR(30) ;
ALTER TABLE sga_preinscripcion ADD COLUMN nombres_elegido VARCHAR(30);
-- Datos de configuracion
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('apellido_elegido','apellido elegido');
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('nombres_elegido','nombres elegido');
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200','apellido_elegido',1,0,0);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200','nombres_elegido',1,0,0);
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime)
SELECT sga_propuestas_tipos.propuesta_tipo,
sga_campos_conf.columna,
sga_campos_conf.visible,
sga_campos_conf.obligatorio,
sga_campos_conf.se_imprime
FROM sga_campos_conf,
sga_propuestas_tipos
WHERE sga_campos_conf.propuesta_tipo = '200'
AND sga_propuestas_tipos.propuesta_tipo != '200'
AND NOT EXISTS (SELECT * FROM sga_campos_conf AS config WHERE config.propuesta_tipo = sga_propuestas_tipos.propuesta_tipo AND config.columna = sga_campos_conf.columna)
ORDER BY sga_propuestas_tipos.propuesta_tipo,
sga_campos_conf.columna;
END IF;
END $BODY$;
COMMIT WORK;