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.
 
 
 
 
 

172 lines
7.1 KiB

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Script de conversion de version 3.21.0 a 3.22.0
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BEGIN WORK;
-- Versión de la base
INSERT INTO app_versiones_base(version_base, fecha_actualizacion, observaciones)
VALUES ('3.22.0', CURRENT_TIMESTAMP, 'Versión 3.22.0 de la base de Preinscripción');
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Scripts de versiones de 3er digito de 3.21
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- 3.21.1
DO $BODY$
BEGIN
ALTER TABLE sga_preinscripcion
DROP CONSTRAINT ck_sga_preinscripcion_aud_lenguaje_labial
, ADD CONSTRAINT ck_sga_preinscripcion_aud_lenguaje_labial CHECK (aud_lenguaje_labial IN ('S', 'N'));
END $BODY$;
-- 3.21.2
-- 3.21.3
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 = 'duplicada'
AND a0.attnum > 0;
IF cant = 0 THEN
ALTER TABLE sga_preinscripcion ADD COLUMN duplicada Char(1) NOT NULL DEFAULT 'N';
-- Datos de configuracion
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('duplicada','duplicada');
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200','duplicada',1,0,1);
END IF;
END $BODY$;
-- ++++++++++++++++++ Fin Agrego campos de pregunta_secreta +++++++++++++++++++
-- +++++++++++++++ Agrego campos de pregunta_secreta ++++++++++++++++++++++++++++++
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 = 'pregunta_secreta'
AND a0.attnum > 0;
IF cant = 0 THEN
ALTER TABLE sga_preinscripcion ADD COLUMN pregunta_secreta Char(255) NOT NULL DEFAULT '';
-- Datos de configuracion
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('pregunta_secreta','pregunta secreta');
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200','pregunta_secreta',1,0,1);
END IF;
END $BODY$;
-- ++++++++++++++++++ Fin Agrego campos de pregunta_secreta +++++++++++++++++++
-- +++++++++++++++ Agrego campos de respuesta secreta ++++++++++++++++++++++++++++++
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 = 'respuesta_secreta'
AND a0.attnum > 0;
IF cant = 0 THEN
ALTER TABLE sga_preinscripcion ADD COLUMN respuesta_secreta Char(255) NOT NULL DEFAULT '';
-- Datos de configuracion
INSERT INTO sga_campos_form (columna, descripcion) VALUES ('respuesta_secreta','respuesta secreta');
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime) VALUES ('200','respuesta_secreta',1,0,1);
END IF;
END $BODY$;
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Scripts de la version 3.22.0
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Se elimina campo "Empresa" dentro de "Situación laboral"
DELETE FROM sga_campos_conf WHERE columna = 'empresa';
DELETE FROM sga_campos_form WHERE columna = 'empresa';
ALTER TABLE sga_preinscripcion DROP COLUMN IF EXISTS empresa;
-- Se elimina campo "Otra empresa" dentro de "Situación laboral"
DELETE FROM sga_campos_conf WHERE columna = 'empresa_otra';
DELETE FROM sga_campos_form WHERE columna = 'empresa_otra';
ALTER TABLE sga_preinscripcion DROP COLUMN IF EXISTS empresa_otra;
-- Se elimina campo "Facilidad de estudio en la empresa" dentro de "Situación laboral"
DELETE FROM sga_campos_conf WHERE columna = 'facilidad_est_emp';
DELETE FROM sga_campos_form WHERE columna = 'facilidad_est_emp';
ALTER TABLE sga_preinscripcion DROP COLUMN IF EXISTS facilidad_est_emp;
-- Se elimina campo "Facilidad de estudio en la institución" dentro de "Situación laboral"
DELETE FROM sga_campos_conf WHERE columna = 'facilidad_est_inst';
DELETE FROM sga_campos_form WHERE columna = 'facilidad_est_inst';
ALTER TABLE sga_preinscripcion DROP COLUMN IF EXISTS facilidad_est_inst;
-- Creo la extensión unaccent
CREATE EXTENSION IF NOT EXISTS unaccent;
-- Modifico la función f_limpiar_acentos
CREATE OR REPLACE FUNCTION f_limpiar_acentos(text)
RETURNS text
IMMUTABLE
STRICT
LANGUAGE SQL
AS $$
SELECT REPLACE(REPLACE(unaccent(REPLACE(REPLACE($1, 'Ñ', '%enie_may%'), 'ñ', '%enie_min%')), '%enie_may%', 'Ñ'), '%enie_min%', 'ñ');
$$;
GRANT EXECUTE ON FUNCTION f_limpiar_acentos(text) to public;
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Ticket 44988
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
alter table sga_preinscripcion alter column usuario type varchar(100);
alter table sga_preinscripcion alter column e_mail type varchar(100);
alter table sga_preinscripcion alter column apellido_padre type varchar(60);
alter table sga_preinscripcion alter column apellido_madre type varchar(60);
alter table sga_preinscripcion alter column nombres_padre type varchar(60);
alter table sga_preinscripcion alter column nombres_madre type varchar(60);
CREATE INDEX IF NOT EXISTS id__sga_preinscripcion__codigo_validacion ON sga_preinscripcion (codigo_validacion);
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Ticket 25423
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
alter table sga_preinscripcion alter column pregunta_secreta type VARCHAR(255);
alter table sga_preinscripcion alter column respuesta_secreta type VARCHAR(255);
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Ticket 47688
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CREATE INDEX IF NOT EXISTS id__sga_preinscripcion__apellido_nombres_fecha_nac ON sga_preinscripcion (apellido, nombres, fecha_nacimiento);
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Ticket 46901 se reemplaza usuario por email
ALTER TABLE sga_preinscripcion DROP COLUMN IF EXISTS usuario;-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
COMMIT WORK;