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
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; |