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