/* Created 02/03/2006 Modified 11/12/2008 Project SIU-Tehuelche Model Sistema Integral de Bienestar Universitario Company Programa SIU - Tehuelche Author Emiliano Jaureguiber Version 2.3.0 Database PostgreSQL 8.0 */ -- Funciones Agregadas / Modificadas CREATE OR REPLACE FUNCTION sp_vga_transferir_datos_academicos(integer, integer) RETURNS boolean AS $BODY$ DECLARE convocatoria ALIAS FOR $1; id_fd ALIAS FOR $2; datos RECORD; resumen RECORD; ha RECORD; result bool; anio_pm DATE; mat_aprob INT2; mat_aprob_pe INT2; mat_reg INT2; mat_reg_pe INT2; reg_procesados INT4; f_desde DATE; f_hasta DATE; li_resul int2; BEGIN reg_procesados := 0; -- Saco el periodo de evaluaci�n de la convocatoria seleccionada SELECT c.pe_desde, c.pe_hasta FROM sbc_convocatorias c INTO f_desde, f_hasta WHERE c.convocatoria = convocatoria; --Recorro los formularios en estado distinto de CANCELADO y EVALUADO, para la convocatoria seleccionada FOR datos IN SELECT s.solicitud, p.tipo_documento, p.nro_documento, da.unidad_acad, da.carrera, da.libreta_univ FROM sbc_solicitud s, mdc_personas p, sbc_datos_academicos da WHERE s.persona = p.persona AND s.solicitud = da.solicitud AND s.estado_solicitud <> 4 AND s.estado_solicitud <> 5 AND solicitud_original is NULL AND s.convocatoria = convocatoria LOOP SELECT * FROM vga_datos_academicos da INTO resumen WHERE da.id_fuente_datos = id_fd AND da.tipo_documento = datos.tipo_documento AND da.nro_documento = datos.nro_documento AND da.unidad_acad = datos.unidad_acad AND da.carrera = datos.carrera; -- Actualizo los datos en la tabla de datos academicos IF FOUND THEN -- -------------------------------------------------------------------------- -- PRIMERO HAGO ALGUNAS SELECT PARA LUEGO SI HACER EL INSERT -- -------------------------------------------------------------------------- -- A�o de la primer materia aprobada SELECT min(fecha) FROM vga_hist_academica h INTO anio_pm WHERE h.id_fuente_datos = id_fd AND h.tipo_documento = datos.tipo_documento AND h.nro_documento = datos.nro_documento AND h.unidad_academica = datos.unidad_acad AND h.carrera = datos.carrera AND (resultado = 'A' OR resultado = 'P'); -- Cantidad total de materias aprobadas SELECT count(*) FROM vga_hist_academica h INTO mat_aprob WHERE h.id_fuente_datos = id_fd AND h.tipo_documento = datos.tipo_documento AND h.nro_documento = datos.nro_documento AND h.unidad_academica = datos.unidad_acad AND h.carrera = datos.carrera AND (resultado = 'A' OR resultado = 'P'); -- Saco la cantidad de materias aprobadas en el periodo de evaluaci�n si es que no es nulo IF f_desde IS NULL OR f_hasta IS NULL THEN mat_aprob_pe := mat_aprob; ELSE SELECT count(*) FROM vga_hist_academica h INTO mat_aprob_pe WHERE h.id_fuente_datos = id_fd AND h.tipo_documento = datos.tipo_documento AND h.nro_documento = datos.nro_documento AND h.unidad_academica = datos.unidad_acad AND h.carrera = datos.carrera AND (resultado = 'A' OR resultado = 'P') AND fecha between f_desde AND f_hasta; END IF; -- Cantidad total de materias regularizadas SELECT count(*) FROM vga_hist_academica h INTO mat_reg WHERE h.id_fuente_datos = id_fd AND h.tipo_documento = datos.tipo_documento AND h.nro_documento = datos.nro_documento AND h.unidad_academica = datos.unidad_acad AND h.carrera = datos.carrera AND (resultado = 'R'); -- Saco la cantidad de materias regularizadas en el periodo de evaluaci�n si es que no es nulo IF f_desde IS NULL OR f_hasta IS NULL THEN mat_reg_pe := mat_reg; ELSE SELECT count(*) FROM vga_hist_academica h INTO mat_reg_pe WHERE h.id_fuente_datos = id_fd AND h.tipo_documento = datos.tipo_documento AND h.nro_documento = datos.nro_documento AND h.unidad_academica = datos.unidad_acad AND h.carrera = datos.carrera AND (resultado = 'R') AND fecha between f_desde AND f_hasta; END IF; -- -------------------------------------------------------------------------- -- AHORA SI HAGO LOS UPDATES NECESARIOS -- -------------------------------------------------------------------------- UPDATE sbc_datos_academicos SET anio_ingreso_carrera = resumen.anio_ingreso, cnt_anios_carrera = resumen.duracion_anios, cnt_materias_total = resumen.total_materias, anio_cursa = resumen.anio_cursada, anio_primer_materia = extract(year from anio_pm), cnt_materias_a_cursar = resumen.cant_mat_hab_cursar, cnt_mat_aprob = mat_aprob, cnt_mat_aprob_pe = mat_aprob_pe, cnt_mat_reg = mat_reg, cnt_mat_reg_pe = mat_reg_pe, porc_aprob_carrera = resumen.porc_aprob_carrera, promedio_univ_ca = resumen.promedio_con_aplazos, promedio_univ_sa = resumen.promedio_sin_aplazos WHERE solicitud = datos.solicitud; li_resul := sp_generarCopia(datos.solicitud, convocatoria, 'interno_importacion'); reg_procesados := reg_procesados + 1; END IF; END LOOP; RETURN 't'; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION sp_vga_transferir_datos_academicos(integer, integer) OWNER TO postgres; -- Tablas Agregadas Create table sbc_solicitud_canc_susp ( fecha_canc_susp timestamp without time zone DEFAULT ('now'::text)::timestamp(6) with time zone NOT NULL, observaciones Text, motivo Integer NOT NULL, solicitud Integer NOT NULL, primary key (fecha_canc_susp,motivo,solicitud) ) With Oids; /* Create Foreign Keys */ Create index IX_Relationship245 on sbc_solicitud_canc_susp (solicitud); Alter table sbc_solicitud_canc_susp add foreign key (solicitud) references sbc_solicitud (solicitud) on update restrict on delete restrict; Create index IX_Relationship244 on sbc_solicitud_canc_susp (motivo); Alter table sbc_solicitud_canc_susp add foreign key (motivo) references sbc_motivos_canc_susp (motivo) on update restrict on delete restrict; Create table sbc_institucion ( id_institucion Serial NOT NULL, nombre_institucion Varchar(50) NOT NULL, sigla_institucion Varchar(10), imagen_dependencia Varchar(50), nombre_dependencia Varchar(40) UNIQUE, sigla_dependencia Varchar(10), dir_dependencia Varchar(50), tel_dependencia Varchar(15) NOT NULL, mail_dependencia Varchar(50) NOT NULL, primary key (id_institucion) ) With Oids; /* Create Comment on Columns */ Comment on column sbc_institucion.id_institucion is 'Identificador interno para la Instituci�n'; Comment on column sbc_institucion.imagen_dependencia is 'Nombre del archivo que contiene la imagen a mostrar'; /* Arreglos en vista de entrevistadores */ /* Se ordena por apellido y nombres, se eliminan los campos id_pais e id_provincia */ DROP VIEW vw_entrevistadores; CREATE OR REPLACE VIEW vw_entrevistadores AS SELECT p.persona, p.tipo_documento, p.nro_documento, p.apellido, p.nombre, p.nacionalidad, p.fecha_nacimiento, p.id_localidad_nacimiento, p.sexo, p.cuit_cuil, p.visa, p.tipo_visa, p.residencia, p.f_visa, p.vencimiento, p.institucion, p.modo_ingreso, p.anio_ingreso_univ, p.promedio_polimodal, td.desc_abreviada FROM mdc_personas p, sbc_entrevistadores e, mdc_tipos_documentos td WHERE p.persona = e.persona AND p.tipo_documento = td.tipo_documento ORDER BY p.apellido, p.nombre; /* * Se crea la tabla sbc_exepcio para exepciones de nros de cuit/cuil mal informados por afip */ CREATE TABLE sbc_excepcio ( nro_cuit character(11) NOT NULL ); COMMENT ON COLUMN sbc_excepcio.nro_cuit IS 'N�mero de CUIT - Excepci�n'; INSERT INTO sbc_excepcio (nro_cuit) VALUES ('11111111111'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20308516149'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20313451977'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20325103710'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20325562235'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20328893992'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20329456782'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20336695377'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20338118393'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20351170604'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20353765087'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20364248076'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20369101103'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20378660956'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20384815201'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20398339445'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20399999589'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20403550419'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20436333715'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20441672501'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20444302594'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20444487403'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20446336534'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20454963300'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20460825009'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20461602216'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20463197092'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20482297413'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20501485005'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20516115603'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20533411712'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20550985900'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20580844104'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20598520977'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20600550137'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20604366667'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20609068370'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20611725893'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20617426359'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20619871309'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20624237804'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20628359106'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20629002309'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20629995588'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20633969001'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20635476932'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20635522187'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20643042305'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20647074481'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20654605603'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20660093436'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20660285599'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20661330121'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20662791726'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20662870790'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20662980308'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20663607570'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20666311613'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20702904111'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20727920502'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20773438227'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20781192865'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20849893026'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20883717660'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('20885501797'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('22222222222'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('23324610944'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('23350783199'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('23394222259'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('23398803604'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('23444411384'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('23504336409'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('23514415544'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('23597532229'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('23600347004'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('23653071809'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('23658395009'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('23660397469'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('23697449884'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27322758001'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27334579501'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27339000633'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27344006283'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27349004319'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27356444219'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27358875640'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27359958760'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27366377420'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27368242816'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27372205232'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27377596892'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27379968746'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27385344002'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27388554415'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27388818498'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27392859395'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27394815611'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27398013609'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27416300033'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27484229975'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27501836171'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27549044943'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27577171306'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27610282844'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27613000173'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27618529350'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27640357733'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27642227799'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27643552804'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27655543533'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27666169420'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27698805949'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27711727081'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('27895074506'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30500199608'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30500886761'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30501214325'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30501607300'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30502290459'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30503217151'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30503634666'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30503914561'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30504208105'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30505200620'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30507154782'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30507233011'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30509177291'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30510638154'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30510913236'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30510932222'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30511220447'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30512254159'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30512303443'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30513167101'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30513814441'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30514050321'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30515432163'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30515714487'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30516150420'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30516675310'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30516788255'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30517014415'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30517226250'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30517714085'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30517869402'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30518403164'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30520380228'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30520467560'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30521162895'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30522007893'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30522358416'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30522473258'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30523039098'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30523359807'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30524423215'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30526240401'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30526995100'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30527679822'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30527918762'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30528564891'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30528728347'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30529280293'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30529336205'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30529445632'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30530520370'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30531316130'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30531374521'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30531379639'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30532251164'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30532460448'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30533092574'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30533422264'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30533479428'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30533899648'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30534957560'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30535437994'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30535676026'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30536117020'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30537602682'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30540251394'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30540555148'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30540569295'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30540746180'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30541587183'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30543262087'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30543821868'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30544039500'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30544300667'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30544927953'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30545796844'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30545806033'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30546698870'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30547016919'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30547339564'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30547410706'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30547596265'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30548111079'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30548149726'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30549474191'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30549858704'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30550032984'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30550072374'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30550876317'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30551641127'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30552172619'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30552234827'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30552442888'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30552529169'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30552646858'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30552691470'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30553246152'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30553293274'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30553486951'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30553976878'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30555382649'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30556097352'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30556523912'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30556937237'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30559106204'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30559394951'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30559679859'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30559833106'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30560863752'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30561077122'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30561101627'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30561822294'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30562332053'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30563153470'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30563452109'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30564665386'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30564943408'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30565138746'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30565667773'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30566507516'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30566966146'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30567044323'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30567185016'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30567288834'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30568646173'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30569139097'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30569180941'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30569834615'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30569869311'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30570021687'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30570057614'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30570272981'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30570646849'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30571402307'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30571568396'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30571619268'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30571813730'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30572757419'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30573080595'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30573301540'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30573360725'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30574243013'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30574421655'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30575235758'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30575412595'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30576623255'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30576634087'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30577763158'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30577970250'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30578437084'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30578621241'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30579800964'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30579884076'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30580314844'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30580481759'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30581036104'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30581196896'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30581408087'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30582274254'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30583273146'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30583689768'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30583912319'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30584020268'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30584410236'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30584476881'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30584499059'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30584993657'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30585069481'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30585076178'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30585389494'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30585945206'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30586076120'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30586146889'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30586171999'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30586181935'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30586278106'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30587310135'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30587415557'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30587758594'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30587866397'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30588184826'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30588263750'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30588349620'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30588906171'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30588914840'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30589093476'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30589156451'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30589262286'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30590603410'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30591306924'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30591494089'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30591781398'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30592148540'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30592234684'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30592542729'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30593648199'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30593835207'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30593863405'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30594128512'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30594231852'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30594372251'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30594384829'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30594559920'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30594561577'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30594562484'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30594659410'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30595308581'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30595509307'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30595590856'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30595799410'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30596217709'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30596698375'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30596832594'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30596906059'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30597685854'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30597856780'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30598141211'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30598356218'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30598495234'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30598530188'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30598767234'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30598786727'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30598979312'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30598998635'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30599192421'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30600331082'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30600536776'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30600544442'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30601374834'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30601615114'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30603829626'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30604549880'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30606496571'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30607159811'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30609483624'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30612134231'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30613843414'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30614963561'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30624607526'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30627453066'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30632847218'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30638237756'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30653243142'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30656230165'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30665287889'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30667754212'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30669452086'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30673845203'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30683214155'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30685200151'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30687624846'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30693620852'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('30698617590'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33333333333'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33505431249'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33518968039'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33548185829'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33549653389'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33560373789'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33563555659'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33567890029'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33573461369'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33584039219'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33584127959'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33585501099'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33591722129'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33592509259'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33593189819'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33595014889'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33602761849'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33602879459'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33607930479'); INSERT INTO sbc_excepcio (nro_cuit) VALUES ('33621557179'); ALTER TABLE ONLY sbc_excepcio ADD CONSTRAINT sbc_excepcio_pkey PRIMARY KEY (nro_cuit); /* * Elimino las columnas id_pais, id_provincia e id_departamento de la tabla mdc_personas */ ALTER TABLE mdc_personas DROP COLUMN id_pais, DROP COLUMN id_provincia, DROP COLUMN id_departamento ; /* * Elimino las columnas id_pais, id_provincia e id_departamento de la tabla sbc_datos_personales_actuales */ ALTER TABLE sbc_datos_personales_actuales DROP COLUMN id_pais, DROP COLUMN id_provincia, DROP COLUMN id_departamento ; /* * Elimino las columnas id_pais, id_provincia e id_departamento de la tabla sbc_datos_grupo_familiar */ ALTER TABLE sbc_datos_grupo_familiar DROP COLUMN id_pais, DROP COLUMN id_provincia, DROP COLUMN id_departamento ; /* * Elimino las columnas id_pais, id_provincia e id_departamento de la tabla vga_personas */ ALTER TABLE vga_personas DROP COLUMN id_pais, DROP COLUMN id_provincia, DROP COLUMN id_departamento ; /* * Elimino las columnas id_pais, id_provincia e id_departamento de la tabla vga_datos_personales_actuales */ ALTER TABLE vga_datos_personales_actuales DROP COLUMN id_pais, DROP COLUMN id_provincia, DROP COLUMN id_departamento ; /* * Sp modificados a raiz de la eliminacion de los campos id_pais, id_provincia e id_departamento */ -- Function: sp_datos_iniciales_desde_guarani(integer, numeric, integer) -- DROP FUNCTION sp_datos_iniciales_desde_guarani(integer, numeric, integer); CREATE OR REPLACE FUNCTION sp_datos_iniciales_desde_guarani(integer, numeric, integer) RETURNS smallint AS $BODY$ DECLARE ai_tipo_doc ALIAS FOR $1; an_nro_doc ALIAS FOR $2; ai_solicitud ALIAS FOR $3; li_cnt INT4; BEGIN -- INSERTO EN DATOS PERSONALES ACTUALES INSERT INTO sbc_datos_personales_actuales(solicitud, id_localidad, calle, altura, piso, depto, barrio, codigo_postal, telefono_fijo, telefono_celular, email, tiene_hijos, cnt_hijos, estado_civil) SELECT ai_solicitud, pa.id_localidad, pa.calle, pa.altura::int4, pa.piso, pa.depto, pa.barrio, pa.codigo_postal, pa.telefono_fijo, pa.telefono_celular, pa.email, pa.tiene_hijos, pa.cnt_hijos, pa.estado_civil FROM vga_datos_personales_actuales pa, vga_personas p, vga_fuentes_datos fd WHERE pa.id_persona = p.id_persona AND p.tipo_documento = ai_tipo_doc AND p.nro_documento = an_nro_doc AND fd.id_fuente_datos = pa.id_fuente_datos ORDER BY fd.fecha_incorporacion DESC LIMIT 1; -- INSERTO EN DATOS DE SALUD INSERT INTO sbc_datos_salud (solicitud, problemas_salud, erogacion_problemas_salud, cobertura_salud, tipo_cobertura) SELECT ai_solicitud, ds.problemas_salud, ds.erogacion_problemas_salud, ds.cobertura_salud, ds.tipo_cobertura FROM vga_datos_salud ds, vga_personas p, vga_fuentes_datos fd WHERE ds.id_persona = p.id_persona AND p.tipo_documento = ai_tipo_doc AND p.nro_documento = an_nro_doc AND fd.id_fuente_datos = ds.id_fuente_datos ORDER BY fd.fecha_incorporacion DESC LIMIT 1; -- INSERTO EN DATOS DE SALUD - DISCAPACIDADES INSERT INTO sbc_datos_salud_discapacidades (solicitud, tipo_discapacidad, caracter_discapacidad, grado_discapacidad) SELECT ai_solicitud, dd.tipo_discapacidad, dd.caracter_discapacidad, dd.grado_discapacidad FROM vga_datos_salud_discapacidades dd, vga_personas p, vga_fuentes_datos fd WHERE dd.id_persona = p.id_persona AND p.tipo_documento = ai_tipo_doc AND p.nro_documento = an_nro_doc AND fd.id_fuente_datos = dd.id_fuente_datos AND fd.fecha_incorporacion IN (SELECT MAX(fd.fecha_incorporacion) FROM vga_datos_salud_discapacidades dd, vga_personas p, vga_fuentes_datos fd WHERE dd.id_persona = p.id_persona AND p.tipo_documento = ai_tipo_doc AND p.nro_documento = an_nro_doc AND fd.id_fuente_datos = dd.id_fuente_datos); -- INSERTO EN DATOS LABORALES INSERT INTO sbc_datos_laborales (solicitud, cnt_hs_trabajo, relacion_trabajo_est, tipo_perfil, actividad) SELECT ai_solicitud, dl.cnt_hs_trabajo, dl.relacion_trabajo_est, dl.tipo_perfil, dl.actividad FROM vga_datos_laborales dl, vga_personas p, vga_fuentes_datos fd WHERE dl.id_persona = p.id_persona AND p.tipo_documento = ai_tipo_doc AND p.nro_documento = an_nro_doc AND fd.id_fuente_datos = dl.id_fuente_datos ORDER BY fd.fecha_incorporacion DESC LIMIT 1; -- INSERTO EN DATOS ECONOMICOS INSERT INTO sbc_datos_economicos (solicitud, otra_fuente, forma_vivir, fuente_financiamiento) SELECT ai_solicitud, de.otra_fuente, de.forma_vivir, de.fuente_financiamiento FROM vga_datos_economicos de, vga_personas p, vga_fuentes_datos fd WHERE de.id_persona = p.id_persona AND p.tipo_documento = ai_tipo_doc AND p.nro_documento = an_nro_doc AND fd.id_fuente_datos = de.id_fuente_datos ORDER BY fd.fecha_incorporacion DESC LIMIT 1; -- INSERTO EN DATOS PERSONALES GRP FAMILIARES INSERT INTO sbc_datos_personales_grp_fam (solicitud, apellido, nombre, nivel_educacion, parentesco) SELECT ai_solicitud, df.apellido_familiar, df.nombre_familiar, df.nivel_educ_fam, df.parentesco FROM vga_datos_personales_grp_fam df, vga_personas p, vga_fuentes_datos fd WHERE df.id_persona = p.id_persona AND p.tipo_documento = ai_tipo_doc AND p.nro_documento = an_nro_doc AND fd.id_fuente_datos = df.id_fuente_datos AND fd.fecha_incorporacion IN (SELECT max(fd.fecha_incorporacion) FROM vga_datos_personales_grp_fam df, vga_personas p, vga_fuentes_datos fd WHERE df.id_persona = p.id_persona AND p.tipo_documento = ai_tipo_doc AND p.nro_documento = an_nro_doc AND fd.id_fuente_datos = df.id_fuente_datos); -- INSERTO EN LA CABECERA DE DATOS PERSONALES GRP FAMILIARES SELECT COUNT(*) INTO li_cnt FROM sbc_datos_personales_grp_fam WHERE solicitud = ai_solicitud; INSERT INTO sbc_cabecera_grp_fam (solicitud, cnt_personas_grp_fam) VALUES (ai_solicitud, li_cnt); -- INSERTO EN DATOS DE BECAS Y PASANTIAS INSERT INTO sbc_datos_becas_pasantias (solicitud, beneficiario_beca, pasantias, f_fin_pasantia, rentada) SELECT ai_solicitud, db.beneficiario_beca, db.pasantias, db.f_fin_pasantia, db.rentada FROM vga_datos_becas_pasantias db, vga_personas p, vga_fuentes_datos fd WHERE db.id_persona = p.id_persona AND p.tipo_documento = ai_tipo_doc AND p.nro_documento = an_nro_doc AND fd.id_fuente_datos = db.id_fuente_datos ORDER BY fd.fecha_incorporacion DESC LIMIT 1; -- INSERTO EN DATOS DE BECAS ANTERIORES INSERT INTO sbc_datos_beca_anteriores (solicitud, tipo_beca, tipo_beca_economica, fuente_beca, anio, monto) SELECT ai_solicitud, dp.tipo_beca, dp.tipo_beca_economica, dp.fuente_beca, dp.anio, dp.monto FROM vga_datos_beca_anteriores dp, vga_personas p, vga_fuentes_datos fd WHERE dp.id_persona = p.id_persona AND p.tipo_documento = ai_tipo_doc AND p.nro_documento = an_nro_doc AND fd.id_fuente_datos = dp.id_fuente_datos AND fd.fecha_incorporacion IN (SELECT MAX(fd.fecha_incorporacion) FROM vga_datos_beca_anteriores dp, vga_personas p, vga_fuentes_datos fd WHERE dp.id_persona = p.id_persona AND p.tipo_documento = ai_tipo_doc AND p.nro_documento = an_nro_doc AND fd.id_fuente_datos = dp.id_fuente_datos); return 1; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION sp_datos_iniciales_desde_guarani(integer, numeric, integer) OWNER TO postgres; /************************************************/ /* Modificaciones en el Type vgs_datos_censales */ /************************************************/ DROP FUNCTION sp_vga_actualizar_datos_persona(vga_datos_censales, integer, integer); DROP FUNCTION sp_vga_importar_datos(character varying, character varying, character varying, bpchar); DROP FUNCTION sp_vga_insertar_datos_persona(vga_datos_censales, integer, integer); DROP TYPE vga_datos_censales; CREATE TYPE vga_datos_censales AS (unidad_academica character varying(5), nro_inscripcion character varying(10), apellido character varying(30), nombre character varying(30), fecha_nacimiento date, nacionalidad integer, loc_nacim integer, sexo character(1), tipo_documento smallint, nro_documento character varying(15), nro_cuil_cuit character varying(15), tipo_de_visa character varying(20), residencia character(1), fecha_visa date, vencimiento_visa date, calle character varying(50), numero character varying(10), piso character varying(3), depto character varying(5), barrio character varying(60), localidad_act integer, codigo_postal character varying(15), telefono_fijo character varying(20), telefono_celular character varying(20), email character varying(50), estado_civil integer, cantidad_hijos smallint, fue_beneficiario_beca character(1), fuente_beca character(1), fuente_financiamiento integer, con_quien_vive integer, cond_act_laboral integer, cant_hs_trabajo smallint, relacion_trabajo character(1), parentesco integer, apellido_familiar character varying(30), nombre_familiar character varying(30), nivel_educ_fam integer, padre_vive character(1), madre_vive character(1), cobertura_salud character(1), tipo_cobertura integer); -- Function: sp_vga_actualizar_datos_persona(vga_datos_censales, integer, integer) -- DROP FUNCTION sp_vga_actualizar_datos_persona(vga_datos_censales, integer, integer); CREATE OR REPLACE FUNCTION sp_vga_actualizar_datos_persona(vga_datos_censales, integer, integer) RETURNS boolean AS $BODY$ DECLARE datos ALIAS FOR $1; idpersona ALIAS FOR $2; idfuente ALIAS FOR $3; tiene_h CHAR(1); t_visa CHAR(1); BEGIN --Actualizo los datos economicos UPDATE vga_datos_economicos SET fuente_financiamiento = datos.fuente_financiamiento, forma_vivir = datos.con_quien_vive WHERE id_persona = idpersona AND id_fuente_datos = idfuente; --Actualizo los datos laborales UPDATE vga_datos_laborales SET actividad = datos.cond_act_laboral, cnt_hs_trabajo = datos.cant_hs_trabajo, relacion_trabajo_est = datos.relacion_trabajo WHERE id_persona = idpersona AND id_fuente_datos = idfuente; --Actualizo los datos actuales de la persona IF (datos.cantidad_hijos > 0) THEN tiene_h := 'S'; ELSE tiene_h := 'N'; END IF; UPDATE vga_datos_personales_actuales SET calle = datos.calle, altura = datos.numero, piso = datos.piso, depto = datos.depto, barrio = datos.barrio, id_localidad = datos.localidad_act, telefono_fijo = datos.telefono_fijo, telefono_celular = datos.telefono_celular, email = datos.email, estado_civil = datos.estado_civil, tiene_hijos = tiene_h, cnt_hijos = datos.cantidad_hijos WHERE id_persona = idpersona AND id_fuente_datos = idfuente; -- Actualizo los datos de la visa t_visa := NULL; IF (datos.tipo_de_visa NOTNULL) THEN IF (trim(datos.tipo_de_visa) = 'PERMANENTE') THEN t_visa := 'P'; UPDATE vga_datos_visa_persona SET tipo_de_visa = t_visa, residencia = datos.residencia, fecha_visa = datos.fecha_visa, vencimiento = datos.vencimiento_visa WHERE id_persona = idpersona AND id_fuente_datos = idfuente; END IF; IF (trim(datos.tipo_de_visa) = 'PERMANENTE') THEN t_visa := 'T'; UPDATE vga_datos_visa_persona SET tipo_de_visa = t_visa, residencia = datos.residencia, fecha_visa = datos.fecha_visa, vencimiento = datos.vencimiento_visa WHERE id_persona = idpersona AND id_fuente_datos = idfuente; END IF; END IF; --Actualizo los datos del grupo familiar /*UPDATE vga_datos_personales_grp_fam SET parentesco = datos.parentesco, apellido_familiar = datos.apellido_familiar, nombre_familiar = datos.nombre_familiar, nivel_educ_fam = datos.nivel_educ_fam WHERE id_persona = idpersona AND id_fuente_datos = idfuente;*/ -- Actualizo los datos de las becas UPDATE vga_datos_becas_pasantias SET beneficiario_beca = datos.fue_beneficiario_beca WHERE id_persona = idpersona AND id_fuente_datos = idfuente; -- Actualizo los datos de las becas anteriores /*UPDATE vga_datos_beca_anteriores SET fuente_beca = datos.fuente_beca WHERE id_persona = idpersona AND id_fuente_datos = idfuente;*/ -- Actualizo los datos de salud de la persona /*UPDATE vga_datos_salud SET cobertura_salud = datos.cobertura_salud, tipo_cobertura = datos.tipo_cobertura WHERE id_persona = idpersona AND id_fuente_datos = idfuente;*/ -- Actualizo los datos de discapacidades de la persona /* UPDATE vga_datos_salud_discapacidades SET tipo_discapacidad = datos.tipo_discapacidad, caracter_discapacidad = datos.caracter_discapacidad, grado_discapacidad = datos.grado_discapacidad WHERE id_persona = idpersona AND id_fuente_datos = idfuente;*/ RETURN 't'; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION sp_vga_actualizar_datos_persona(vga_datos_censales, integer, integer) OWNER TO postgres; -- Function: sp_vga_importar_datos(character varying, character varying, character varying, bpchar) -- DROP FUNCTION sp_vga_importar_datos(character varying, character varying, character varying, bpchar); CREATE OR REPLACE FUNCTION sp_vga_importar_datos(character varying, character varying, character varying, bpchar) RETURNS boolean AS $BODY$ DECLARE arch_origen ALIAS FOR $1; descr_origen ALIAS FOR $2; ua ALIAS FOR $3; tipo ALIAS FOR $4; id_origen INT4; id_fuente INT4; id_pers INT4; datos RECORD; d vga_datos_censales; result bool; reg_procesados INT4; pers_agregadas INT4; nro_inscrip VARCHAR(10); familiar INT4; beca CHAR(1); BEGIN reg_procesados := 0; pers_agregadas := 0; nro_inscrip = ' '; -- Si es una importacion nueva, creo la fuente, caso contraior la obtengo. IF (tipo = 'I') THEN --Creo el origen de datos SELECT nextval('vga_origen_datos_id_origen_datos_seq') INTO id_origen; INSERT INTO vga_origen_datos (id_origen_datos, nombre_archivo, descripcion) VALUES (id_origen, arch_origen, descr_origen); --Creo la fuente de datos SELECT nextval('vga_fuentes_datos_id_fuente_datos_seq') INTO id_fuente; INSERT INTO vga_fuentes_datos (id_fuente_datos, fecha_incorporacion, unidad_academica, origen) VALUES (id_fuente, CURRENT_TIMESTAMP, ua, id_origen); ELSE --Selecciono el que existe SELECT f.id_fuente_datos INTO id_fuente FROM vga_fuentes_datos f INNER JOIN vga_origen_datos o ON (f.origen = o.id_origen_datos) WHERE o.nombre_archivo = arch_origen; END IF; --Por cada persona agergada actualizo los datos FOR datos IN SELECT * FROM vga_temp_datos_censales LOOP --Cargo el TYPE vga_datos_censales para poder pasar como parametro a los distintos SP. -- Datos generales d.unidad_academica := datos.unidad_academica; d.nro_inscripcion := datos.nro_inscripcion; --Datos Personales Generales d.apellido := datos.apellido; d.nombre := datos.nombre; d.fecha_nacimiento := datos.fecha_nacimiento; d.nacionalidad := datos.nacionalidad; d.loc_nacim := datos.loc_nacim; d.sexo := datos.sexo; d.tipo_documento := datos.tipo_documento; d.nro_documento := datos.nro_documento; d.nro_cuil_cuit := datos.nro_cuil_cuit; d.tipo_de_visa := datos.tipo_de_visa; d.residencia := datos.residencia; d.fecha_visa := datos.fecha_visa; d.vencimiento_visa := datos.vencimiento_visa; --Datos Personales actuales d.calle := datos.calle; d.numero := datos.numero; d.piso := datos.piso; d.depto := datos.depto; d.barrio := datos.barrio; d.localidad_act := datos.localidad_act; d.codigo_postal := datos.codigo_postal; d.telefono_fijo := datos.telefono_fijo; d.telefono_celular := datos.telefono_celular; d.email := datos.email; d.estado_civil := datos.estado_civil; d.cantidad_hijos := datos.cantidad_hijos; --Datos de Becas y Pasantias d.fue_beneficiario_beca := datos.fue_beneficiario_beca; d.fuente_beca := datos.fuente_beca; --Datos Economicos d.fuente_financiamiento := datos.fuente_financiamiento; --d.especif_fuente := datos.especif_fuente; d.con_quien_vive := datos.con_quien_vive; --datos laborales d.cond_act_laboral := datos.cond_act_laboral; d.cant_hs_trabajo := datos.cant_hs_trabajo; d.relacion_trabajo := datos.relacion_trabajo; --datos del grupo conviviente y/o dependencia d.parentesco := datos.parentesco; d.apellido_familiar := datos.apellido_familiar; d.nombre_familiar := datos.nombre_familiar; d.nivel_educ_fam := datos.nivel_educ_fam; --datos socio economicos del grupo familiar d.padre_vive := datos.padre_vive; d.madre_vive := datos.madre_vive; --datos de salud -- d.problemas_salud := datos.problemas_salud; --d.cobertura_salud := datos.cobertura_salud; --d.tipo_cobertura := datos.tipo_covertura; -- d.erogacion_problemas_salud := datos.erogacion_problemas_salud; --Datos discapacidad -- d.tipo_discapacidad := datos.tipo_discapacidad; -- d.caracter_discapacidad := datos.caracter_discapacidad; -- d.grado_discapacidad := datos.grado_discapacidad; /* El unico caso donde se deben actualizar los datos es que la persona ya haya sido cargada en importaciones previas, o bien, ya haya sido cargada en esta importacions. Para el primer caso utilizo la funcion sp_vga_existe_persona. Para el segundo, basta con conparar el nro de inscripcion del registro anterior, si son iguales es que la persona ya fue guardada, en caso contrario se trata de una nueva persona. */ IF (nro_inscrip <> datos.nro_inscripcion) THEN SELECT sp_vga_existe_persona(datos.tipo_documento, datos.nro_documento) INTO id_pers; IF (tipo = 'A') AND (id_pers <> -1) THEN SELECT sp_vga_actualizar_datos_persona(d,id_pers, id_fuente) INTO result; ELSE --Si la persona no existe creo el registro, sino en la variable id_pers ya tengo el id de la persona IF (id_pers = -1) THEN SELECT nextval('vga_personas_id_persona_seq') INTO id_pers; INSERT INTO vga_personas (id_persona, tipo_documento, nro_documento, apellido, nombre, fecha_nacimiento, sexo, id_localidad, nro_cuil_cuit) VALUES (id_pers, d.tipo_documento, d.nro_documento, d.apellido, d.nombre, d.fecha_nacimiento, d.sexo, d.loc_nacim, d.nro_cuil_cuit); pers_agregadas := pers_agregadas + 1; END IF; SELECT sp_vga_insertar_datos_persona(d,id_pers, id_fuente) INTO result; END IF; ELSE /* La persona ya fue porcesada en este registro.. por lo tanto pueden venir los datos que se repiten que son los datos de las becas o los datos de los familiares. Hay que tener en cuenta que si los datos se est�n actualizando puede ser que los datos ya existan */ IF (tipo = 'I') THEN --Se esta insertando un nuevo conjunto de datos. IF (datos.parentesco NOTNULL) THEN INSERT INTO vga_datos_personales_grp_fam(id_persona, id_fuente_datos, parentesco, apellido_familiar, nombre_familiar)--, nivel_educ_fam) VALUES (id_pers, id_fuente, datos.parentesco, datos.apellido_familiar, datos.nombre_familiar);--, END IF; IF (datos.fue_beneficiario_beca NOTNULL) AND (datos.fuente_beca NOTNULL) THEN INSERT INTO vga_datos_beca_anteriores(id_persona, id_fuente_datos, fuente_beca) VALUES (id_pers, id_fuente, datos.fuente_beca); END IF; ELSE --Se estan actualizando, por lo tanto es necesario verificar que no esten cargados SELECT parentesco INTO familiar FROM vga_datos_personales_grp_fam WHERE (id_persona = id_pers) AND (id_fuente_datos = id_fuente) AND (parentesco = datos.parentesco); --Si no es null (osea hay familiar para insertar) y si no existe lo inserto IF (datos.parentesco NOTNULL) AND (familiar ISNULL) THEN INSERT INTO vga_datos_personales_grp_fam(id_persona, id_fuente_datos, parentesco, apellido_familiar, nombre_familiar)--, nivel_educ_fam) VALUES (id_pers, id_fuente, datos.parentesco, datos.apellido_familiar, datos.nombre_familiar); END IF; --Si no es null (osea hay familiar para insertar) y si existe entonces actualizo IF (datos.parentesco NOTNULL) AND (familiar NOTNULL) THEN UPDATE vga_datos_personales_grp_fam SET apellido_familiar = datos.apellido_familiar, nombre_familiar = datos.nombre_familiar WHERE (id_persona = id_pers) AND (id_fuente_datos = id_fuente) AND (parentesco = datos.parentesco); END IF; SELECT fuente_beca INTO beca FROM vga_datos_beca_anteriores WHERE (id_persona = id_pers) AND (id_fuente_datos = id_fuente) AND (fuente_beca = datos.fuente_beca); IF (datos.fue_beneficiario_beca NOTNULL) AND (datos.fuente_beca ISNULL) THEN INSERT INTO vga_datos_beca_anteriores(id_persona, id_fuente_datos, fuente_beca) VALUES (id_pers, id_fuente, datos.fuente_beca); END IF; END IF; END IF; reg_procesados := reg_procesados + 1; nro_inscrip = datos.nro_inscripcion; END LOOP; UPDATE vga_fuentes_datos SET registros_procesados = reg_procesados, personas_agregadas = pers_agregadas WHERE (id_fuente_datos = id_fuente); RETURN 't'; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION sp_vga_importar_datos(character varying, character varying, character varying, bpchar) OWNER TO postgres; -- Function: sp_vga_insertar_datos_persona(vga_datos_censales, integer, integer) -- DROP FUNCTION sp_vga_insertar_datos_persona(vga_datos_censales, integer, integer); CREATE OR REPLACE FUNCTION sp_vga_insertar_datos_persona(vga_datos_censales, integer, integer) RETURNS boolean AS $BODY$ DECLARE datos ALIAS FOR $1; idpersona_origen ALIAS FOR $2; idfuente ALIAS FOR $3; hijos CHAR(1); t_visa CHAR(1); BEGIN -- Inserto los datos de la visa si es que tiene. IF (datos.tipo_de_visa NOTNULL) THEN IF (trim(datos.tipo_de_visa) = 'PERMANENTE') THEN t_visa := 'P'; INSERT INTO vga_datos_visa_persona(id_persona, id_fuente_datos, tipo_de_visa, residencia, fecha_visa, vencimiento) VALUES (idpersona_origen, idfuente, t_visa, datos.residencia, datos.fecha_visa, datos.vencimiento_visa); END IF; IF (trim(datos.tipo_de_visa) = 'TEMPORAL') THEN t_visa := 'T'; INSERT INTO vga_datos_visa_persona(id_persona, id_fuente_datos, tipo_de_visa, residencia, fecha_visa, vencimiento) VALUES (idpersona_origen, idfuente, t_visa, datos.residencia, datos.fecha_visa, datos.vencimiento_visa); END IF; END IF; -- Inserto los datos personales actuales IF (datos.cantidad_hijos > 0) THEN hijos := 'S'; ELSE hijos := 'N'; END IF; INSERT INTO vga_datos_personales_actuales(id_persona, id_fuente_datos, calle, altura, piso, depto, barrio, id_localidad, codigo_postal, telefono_fijo, telefono_celular, email, estado_civil, tiene_hijos, cnt_hijos) VALUES (idpersona_origen, idfuente, datos.calle, datos.numero, datos.piso, datos.depto, datos.barrio, datos.localidad_act, datos.codigo_postal, datos.telefono_fijo, datos.telefono_celular, datos.email, datos.estado_civil, hijos, datos.cantidad_hijos); -- Inserto los datos laborales INSERT INTO vga_datos_laborales(id_persona, id_fuente_datos, actividad, cnt_hs_trabajo, relacion_trabajo_est) VALUES (idpersona_origen, idfuente, datos.cond_act_laboral, datos.cant_hs_trabajo, datos.relacion_trabajo); -- Inserto los datos economicos INSERT INTO vga_datos_economicos(id_persona,id_fuente_datos,fuente_financiamiento,forma_vivir) VALUES (idpersona_origen, idfuente, datos.fuente_financiamiento, datos.con_quien_vive); -- Inserto los datos del grupo familiar INSERT INTO vga_datos_personales_grp_fam(id_persona, id_fuente_datos, parentesco, apellido_familiar, nombre_familiar)--, nivel_educ_fam) VALUES (idpersona_origen, idfuente, datos.parentesco, datos.apellido_familiar, datos.nombre_familiar);--, --datos.nivel_educ_fam); -- Inserto los datos si tubo pasantias o becas anteriores INSERT INTO vga_datos_becas_pasantias(id_persona, id_fuente_datos, beneficiario_beca) VALUES (idpersona_origen, idfuente, datos.fue_beneficiario_beca); --Insero los datos de la beca anterior /* IF (datos.fue_beneficiario_beca = 'S') THEN INSERT INTO vga_datos_beca_anteriores(id_persona, id_fuente_datos, fuente_beca) VALUES (idpersona_origen, idfuente, datos.fuente_beca); END IF; */ -- Inserto los datos de salud /*INSERT INTO vga_datos_salud(id_persona, id_fuente_datos, cobertura_salud, tipo_cobertura) VALUES (idpersona, idfuente, datos.cobertura_salud, datos.tipo_cobertura);*/ RETURN 't'; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION sp_vga_insertar_datos_persona(vga_datos_censales, integer, integer) OWNER TO postgres; -- Function: sp_datos_iniciales_desde_solicitud(integer, numeric, integer, integer) -- DROP FUNCTION sp_datos_iniciales_desde_solicitud(integer, numeric, integer, integer); CREATE OR REPLACE FUNCTION sp_datos_iniciales_desde_solicitud(integer, numeric, integer, integer) RETURNS smallint AS $BODY$ DECLARE ai_tipo_doc ALIAS FOR $1; an_nro_doc ALIAS FOR $2; ai_solicitud ALIAS FOR $3; ai_solic_version ALIAS FOR $4; li_cnt INT4; BEGIN -- Tabla sbc_datos_becas_pasantias INSERT INTO sbc_datos_becas_pasantias (solicitud, beneficiario_beca, pasantias, f_fin_pasantia, rentada) SELECT ai_solicitud, beneficiario_beca, pasantias, f_fin_pasantia, rentada FROM sbc_datos_becas_pasantias WHERE solicitud = ai_solic_version; -- Tabla sbc_datos_beca_anteriores INSERT INTO sbc_datos_beca_anteriores (solicitud, tipo_beca, tipo_beca_economica, fuente_beca, anio, monto) SELECT ai_solicitud, tipo_beca, tipo_beca_economica, fuente_beca, anio, monto FROM sbc_datos_beca_anteriores WHERE solicitud = ai_solic_version; -- Tabla sbc_datos_laborales INSERT INTO sbc_datos_laborales (solicitud, actividad, tipo_perfil, actividad_no_laboral, desc_jubilatorio, empresa_familiar, recibe_pago, cnt_hs_trabajo, monto_mensual, tipo_ocup_laboral, relacion_trabajo_est) SELECT ai_solicitud, actividad, tipo_perfil, actividad_no_laboral, desc_jubilatorio, empresa_familiar, recibe_pago, cnt_hs_trabajo, monto_mensual, tipo_ocup_laboral, relacion_trabajo_est FROM sbc_datos_laborales WHERE solicitud = ai_solic_version; -- Tabla sbc_datos_salud INSERT INTO sbc_datos_salud (solicitud, problemas_salud, cobertura_salud, tipo_cobertura) SELECT ai_solicitud, problemas_salud, cobertura_salud, tipo_cobertura FROM sbc_datos_salud WHERE solicitud = ai_solic_version; -- Tabla sbc_datos_salud_discapacidades INSERT INTO sbc_datos_salud_discapacidades (solicitud, tipo_discapacidad, caracter_discapacidad, grado_discapacidad) SELECT ai_solicitud, tipo_discapacidad, caracter_discapacidad, grado_discapacidad FROM sbc_datos_salud_discapacidades WHERE solicitud = ai_solic_version; -- Tabla sbc_cabecera_grp_fam INSERT INTO sbc_cabecera_grp_fam (solicitud, padre_vive, madre_vive, cnt_personas_grp_fam) SELECT ai_solicitud, padre_vive, madre_vive, cnt_personas_grp_fam FROM sbc_cabecera_grp_fam WHERE solicitud = ai_solic_version; -- Tabla sbc_datos_personales_grp_fam INSERT INTO sbc_datos_personales_grp_fam (solicitud, persona_familiar, parentesco, apellido, nombre, edad, nacionalidad, sexo, nivel_educacion, situacion, tipo_establecimiento, profesion, cond_actividad_laboral, tipo_perfil, cnt_hs_trabaja, rango_ingresos, convive_grupo, no_trabaja, estado_civil) SELECT ai_solicitud, persona_familiar, parentesco, apellido, nombre, edad, nacionalidad, sexo, nivel_educacion, situacion, tipo_establecimiento, profesion, cond_actividad_laboral, tipo_perfil, cnt_hs_trabaja, rango_ingresos, convive_grupo, no_trabaja, estado_civil FROM sbc_datos_personales_grp_fam WHERE solicitud = ai_solic_version; -- Tabla sbc_datos_pers_grp_fam_discap INSERT INTO sbc_datos_pers_grp_fam_discap (solicitud, persona_familiar, tipo_discapacidad, caracter_discapacidad, grado_discapacidad) SELECT ai_solicitud, persona_familiar, tipo_discapacidad, caracter_discapacidad, grado_discapacidad FROM sbc_datos_pers_grp_fam_discap WHERE solicitud = ai_solic_version; -- Tabla sbc_datos_economicos INSERT INTO sbc_datos_economicos (solicitud, otra_fuente, forma_vivir, tipo_transporte, tipo_vivienda, cnt_pers_vivienda, cnt_ambientes, zona_vivienda, gas, luz, cloacas, agua, tipo_locacion, monto_total_alquiler, costo_agua, costo_abl, costo_luz, costo_expensas, costo_telefonico, costo_automotor, costo_inmobiliario, costo_internet, costo_tv, costo_transporte, aporte_personal_total_egresos, costo_gas) SELECT ai_solicitud, otra_fuente, forma_vivir, tipo_transporte, tipo_vivienda, cnt_pers_vivienda, cnt_ambientes, zona_vivienda, gas, luz, cloacas, agua, tipo_locacion, monto_total_alquiler, costo_agua, costo_abl, costo_luz, costo_expensas, costo_telefonico, costo_automotor, costo_inmobiliario, costo_internet, costo_tv, costo_transporte, aporte_personal_total_egresos, costo_gas FROM sbc_datos_economicos WHERE solicitud = ai_solic_version; -- Tabla sbc_financiamiento_solicitud INSERT INTO sbc_financiamiento_solicitud (solicitud, fuente_financiamiento) SELECT ai_solicitud, fuente_financiamiento FROM sbc_financiamiento_solicitud WHERE solicitud = ai_solic_version; -- Tabla sbc_datos_grupo_familiar INSERT INTO sbc_datos_grupo_familiar (solicitud, calle, altura, piso, depto, barrio, id_localidad, cp, codigo_area, telefono) SELECT ai_solicitud, calle, altura, piso, depto, barrio, id_localidad, cp, codigo_area, telefono FROM sbc_datos_grupo_familiar WHERE solicitud = ai_solic_version; -- Tabla sbc_vivienda_solicitud INSERT INTO sbc_vivienda_solicitud (solicitud, tipo_vivienda, tipo_locacion, cant_ambientes, cant_personas, descripcion_otra, zona_vivienda) SELECT ai_solicitud, tipo_vivienda, tipo_locacion, cant_ambientes, cant_personas, descripcion_otra, zona_vivienda FROM sbc_vivienda_solicitud WHERE solicitud = ai_solic_version; -- Tabla sbc_vehiculo_solicitud INSERT INTO sbc_vehiculo_solicitud (solicitud, tipo_vehiculo, tipo_uso_vehiculo, anio, marca, modelo) SELECT ai_solicitud, tipo_vehiculo, tipo_uso_vehiculo, anio, marca, modelo FROM sbc_vehiculo_solicitud WHERE solicitud = ai_solic_version; -- Tabla de sbc_datos_personales_actuales INSERT INTO sbc_datos_personales_actuales (solicitud, calle, altura, piso, depto, barrio, id_localidad, codigo_postal, distancia_sede, codigo_area, telefono_fijo, telefono_celular, email, estado_civil, tiene_hijos, cnt_hijos) SELECT ai_solicitud, calle, altura, piso, depto, barrio, id_localidad, codigo_postal, distancia_sede, codigo_area, telefono_fijo, telefono_celular, email, estado_civil, tiene_hijos, cnt_hijos FROM sbc_datos_personales_actuales WHERE solicitud = ai_solic_version; -- Tabla sbc_datos_academicos INSERT INTO sbc_datos_academicos (solicitud, libreta_univ, anio_ingreso_carrera, cnt_anios_carrera, tipo_duracion_carrera, cnt_periodo_duracion, cnt_materias_total, anio_primer_materia, anio_cursa, cnt_materias_a_cursar, cnt_materias_hab_cursar, cnt_mat_aprob, cnt_mat_aprob_pe, cnt_mat_a_aprob_pe, cnt_mat_na_aprob_pe_na, cnt_mat_reg, cnt_mat_reg_pe, cnt_mat_a_reg_pe, cnt_mat_na_reg_pe, cnt_hs_catedra_regularizadas, promedio_univ_ca, promedio_univ_sa, porc_aprob_carrera, otros_estudios_curso, desc_otro_estudio, unidad_acad, carrera) SELECT ai_solicitud, libreta_univ, anio_ingreso_carrera, cnt_anios_carrera, tipo_duracion_carrera, cnt_periodo_duracion, cnt_materias_total, anio_primer_materia, anio_cursa, cnt_materias_a_cursar, cnt_materias_hab_cursar, cnt_mat_aprob, cnt_mat_aprob_pe, cnt_mat_a_aprob_pe, cnt_mat_na_aprob_pe_na, cnt_mat_reg, cnt_mat_reg_pe, cnt_mat_a_reg_pe, cnt_mat_na_reg_pe, cnt_hs_catedra_regularizadas, promedio_univ_ca, promedio_univ_sa, porc_aprob_carrera, otros_estudios_curso, desc_otro_estudio, unidad_acad, carrera FROM sbc_datos_academicos WHERE solicitud = ai_solic_version; return 1; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION sp_datos_iniciales_desde_solicitud(integer, numeric, integer, integer) OWNER TO postgres; -- Function: sp_generarcopia(integer, integer, character varying) -- DROP FUNCTION sp_generarcopia(integer, integer, character varying); CREATE OR REPLACE FUNCTION sp_generarcopia(integer, integer, character varying) RETURNS smallint AS $BODY$ DECLARE ai_solicitud ALIAS FOR $1; ai_convocatoria ALIAS FOR $2; as_usuario ALIAS FOR $3; li_nueva_solic int4; li_version int4; BEGIN -- Saco el valor del proximo registro a insertar en la tabla solicitud a traves de la secuencia SELECT NEXTVAL('sbc_solicitud_solicitud_seq') INTO li_nueva_solic; -- Saco el nro de version SELECT MAX(version) INTO li_version FROM sbc_solicitud WHERE solicitud_original = ai_solicitud; IF NOT FOUND OR li_version IS NULL THEN li_version := 1; ELSE li_version := li_version + 1; END IF; -- --------------------------------------------------------------------------------------- -- TENGO QUE INSERTAR EN TODAS LAS TABLAS DEL MODELO -- --------------------------------------------------------------------------------------- -- Tabla de solicitudes INSERT INTO sbc_solicitud (solicitud, persona, convocatoria, estado_solicitud, observaciones, version, f_version, usuario, solicitud_original) SELECT li_nueva_solic, solic.persona, solic.convocatoria, solic.estado_solicitud, solic.observaciones, li_version, CURRENT_DATE, as_usuario, ai_solicitud FROM sbc_solicitud as solic WHERE solicitud = ai_solicitud; -- Tabla de sbc_solicitudes_beca INSERT INTO sbc_solicitudes_becas (convocatoria, tipo_beca, solicitud) SELECT ai_convocatoria, tipo_beca, li_nueva_solic FROM sbc_solicitudes_becas WHERE solicitud = ai_solicitud; -- Tabla de sbc_evaluacion_solicitudes. -- En la nueva version las solicitudes deben estar SIN evaluar, por ello en la modificacion de una -- solicitud se genera una copia de estos datos, pero luego para no generar errores de FK, estas -- evaluaciones 'viejas' se eliminan en codigo. INSERT INTO sbc_evaluacion_solicitudes (convocatoria, tipo_beca, solicitud, version, tipo_evaluacion, observacion_evaluacion, estado_actual, f_beneficio) SELECT ai_convocatoria, tipo_beca, li_nueva_solic, li_version, tipo_evaluacion, observacion_evaluacion, estado_actual, f_beneficio FROM sbc_evaluacion_solicitudes WHERE solicitud = ai_solicitud; -- Tabla de sbc_estado_solicitudes. -- Se realiza una copia de esta tabla y se quita el trigger que disparaba la misma al hacer un insert INSERT INTO sbc_estado_solicitudes (convocatoria, tipo_beca, solicitud, version, estado, motivo, fecha, f_cambio_real) SELECT ai_convocatoria, tipo_beca, li_nueva_solic, li_version, estado, motivo, fecha, f_cambio_real FROM sbc_estado_solicitudes WHERE solicitud = ai_solicitud; -- Tabla de sbc_datos_personales_actuales INSERT INTO sbc_datos_personales_actuales (solicitud, calle, altura, piso, depto, barrio, id_localidad, codigo_postal, distancia_sede, codigo_area, telefono_fijo, telefono_celular, email, estado_civil, tiene_hijos, cnt_hijos) SELECT li_nueva_solic, calle, altura, piso, depto, barrio, id_localidad, codigo_postal, distancia_sede, codigo_area, telefono_fijo, telefono_celular, email, estado_civil, tiene_hijos, cnt_hijos FROM sbc_datos_personales_actuales WHERE solicitud = ai_solicitud; -- Tabla sbc_datos_tutor INSERT INTO sbc_datos_tutor (solicitud, apellido_tutor, nombre_tutor, tipo_documento_tutor, nro_documento_tutor, f_nacimiento_tutor, sexo_tutor, cuil_tutor) SELECT li_nueva_solic, apellido_tutor, nombre_tutor, tipo_documento_tutor, nro_documento_tutor, f_nacimiento_tutor, sexo_tutor, cuil_tutor FROM sbc_datos_tutor WHERE solicitud = ai_solicitud; -- Tabla sbc_datos_academicos INSERT INTO sbc_datos_academicos (solicitud, libreta_univ, anio_ingreso_carrera, cnt_anios_carrera, tipo_duracion_carrera, cnt_periodo_duracion, cnt_materias_total, anio_primer_materia, anio_cursa, cnt_materias_a_cursar, cnt_materias_hab_cursar, cnt_mat_aprob, cnt_mat_aprob_pe, cnt_mat_a_aprob_pe, cnt_mat_na_aprob_pe_na, cnt_mat_reg, cnt_mat_reg_pe, cnt_mat_a_reg_pe, cnt_mat_na_reg_pe, cnt_hs_catedra_regularizadas, promedio_univ_ca, promedio_univ_sa, porc_aprob_carrera, otros_estudios_curso, desc_otro_estudio, unidad_acad, carrera) SELECT li_nueva_solic, libreta_univ, anio_ingreso_carrera, cnt_anios_carrera, tipo_duracion_carrera, cnt_periodo_duracion, cnt_materias_total, anio_primer_materia, anio_cursa, cnt_materias_a_cursar, cnt_materias_hab_cursar, cnt_mat_aprob, cnt_mat_aprob_pe, cnt_mat_a_aprob_pe, cnt_mat_na_aprob_pe_na, cnt_mat_reg, cnt_mat_reg_pe, cnt_mat_a_reg_pe, cnt_mat_na_reg_pe, cnt_hs_catedra_regularizadas, promedio_univ_ca, promedio_univ_sa, porc_aprob_carrera, otros_estudios_curso, desc_otro_estudio, unidad_acad, carrera FROM sbc_datos_academicos WHERE solicitud = ai_solicitud; -- Tabla sbc_datos_becas_pasantias INSERT INTO sbc_datos_becas_pasantias (solicitud, beneficiario_beca, pasantias, f_fin_pasantia, rentada) SELECT li_nueva_solic, beneficiario_beca, pasantias, f_fin_pasantia, rentada FROM sbc_datos_becas_pasantias WHERE solicitud = ai_solicitud; -- Tabla sbc_datos_beca_anteriores INSERT INTO sbc_datos_beca_anteriores (solicitud, tipo_beca, tipo_beca_economica, fuente_beca, anio, monto) SELECT li_nueva_solic, tipo_beca, tipo_beca_economica, fuente_beca, anio, monto FROM sbc_datos_beca_anteriores WHERE solicitud = ai_solicitud; -- Tabla sbc_datos_laborales INSERT INTO sbc_datos_laborales (solicitud, actividad, tipo_perfil, actividad_no_laboral, desc_jubilatorio, empresa_familiar, recibe_pago, cnt_hs_trabajo, monto_mensual, tipo_ocup_laboral, relacion_trabajo_est) SELECT li_nueva_solic, actividad, tipo_perfil, actividad_no_laboral, desc_jubilatorio, empresa_familiar, recibe_pago, cnt_hs_trabajo, monto_mensual, tipo_ocup_laboral, relacion_trabajo_est FROM sbc_datos_laborales WHERE solicitud = ai_solicitud; -- Tabla sbc_datos_salud INSERT INTO sbc_datos_salud (solicitud, problemas_salud, erogacion_problemas_salud, cobertura_salud, tipo_cobertura) SELECT li_nueva_solic, problemas_salud, erogacion_problemas_salud, cobertura_salud, tipo_cobertura FROM sbc_datos_salud WHERE solicitud = ai_solicitud; -- Tabla sbc_datos_salud_discapacidades INSERT INTO sbc_datos_salud_discapacidades (solicitud, tipo_discapacidad, caracter_discapacidad, grado_discapacidad) SELECT li_nueva_solic, tipo_discapacidad, caracter_discapacidad, grado_discapacidad FROM sbc_datos_salud_discapacidades WHERE solicitud = ai_solicitud; -- Tabla sbc_cabecera_grp_fam INSERT INTO sbc_cabecera_grp_fam (solicitud, madre_vive, padre_vive) SELECT li_nueva_solic, madre_vive, padre_vive FROM sbc_cabecera_grp_fam WHERE solicitud = ai_solicitud; -- Tabla sbc_datos_personales_grp_fam INSERT INTO sbc_datos_personales_grp_fam (solicitud, persona_familiar, parentesco, apellido, nombre, edad, nacionalidad, sexo, erogaciones_problema_salud, nivel_educacion, situacion, tipo_establecimiento, profesion, cond_actividad_laboral, tipo_perfil, cnt_hs_trabaja, ingresos_mensuales, rango_ingresos, convive_grupo, aporte_grupo, no_trabaja, estado_civil) SELECT li_nueva_solic, persona_familiar, parentesco, apellido, nombre, edad, nacionalidad, sexo, erogaciones_problema_salud, nivel_educacion, situacion, tipo_establecimiento, profesion, cond_actividad_laboral, tipo_perfil, cnt_hs_trabaja, ingresos_mensuales, rango_ingresos, convive_grupo, aporte_grupo, no_trabaja, estado_civil FROM sbc_datos_personales_grp_fam WHERE solicitud = ai_solicitud; -- Tabla sbc_datos_pers_grp_fam_discap INSERT INTO sbc_datos_pers_grp_fam_discap (solicitud, persona_familiar, tipo_discapacidad, caracter_discapacidad, grado_discapacidad) SELECT li_nueva_solic, persona_familiar, tipo_discapacidad, caracter_discapacidad, grado_discapacidad FROM sbc_datos_pers_grp_fam_discap WHERE solicitud = ai_solicitud; -- Tabla sbc_datos_economicos INSERT INTO sbc_datos_economicos (solicitud, otra_fuente, forma_vivir, tipo_transporte, tipo_vivienda, cnt_pers_vivienda, cnt_ambientes, zona_vivienda, gas, luz, cloacas, agua, tipo_locacion, monto_total_alquiler, costo_agua, costo_abl, costo_luz, costo_expensas, costo_telefonico, costo_automotor, costo_inmobiliario, costo_internet, costo_tv, costo_transporte, aporte_personal_total_egresos, costo_gas) SELECT li_nueva_solic, otra_fuente, forma_vivir, tipo_transporte, tipo_vivienda, cnt_pers_vivienda, cnt_ambientes, zona_vivienda, gas, luz, cloacas, agua, tipo_locacion, monto_total_alquiler, costo_agua, costo_abl, costo_luz, costo_expensas, costo_telefonico, costo_automotor, costo_inmobiliario, costo_internet, costo_tv, costo_transporte, aporte_personal_total_egresos, costo_gas FROM sbc_datos_economicos WHERE solicitud = ai_solicitud; -- Tabla sbc_financiamiento_solicitud INSERT INTO sbc_financiamiento_solicitud (solicitud, fuente_financiamiento) SELECT li_nueva_solic, fuente_financiamiento FROM sbc_financiamiento_solicitud WHERE solicitud = ai_solicitud; -- Tabla sbc_datos_grupo_familiar INSERT INTO sbc_datos_grupo_familiar (solicitud, calle, altura, piso, depto, barrio, id_localidad, cp, codigo_area, telefono, beca_ayuda_eco, ing_extras_hogar, gasto_luz, gasto_agua, gasto_gas, gasto_expensas, gasto_otros, gasto_telefono, gasto_abl, impuesto_automotor, impuesto_inmobiliario, gasto_internet, gasto_tv, gasto_univ_col, gasto_cobertura_medica) SELECT li_nueva_solic, calle, altura, piso, depto, barrio, id_localidad, cp, codigo_area, telefono, beca_ayuda_eco, ing_extras_hogar, gasto_luz, gasto_agua, gasto_gas, gasto_expensas, gasto_otros, gasto_telefono, gasto_abl, impuesto_automotor, impuesto_inmobiliario, gasto_internet, gasto_tv, gasto_univ_col, gasto_cobertura_medica FROM sbc_datos_grupo_familiar WHERE solicitud = ai_solicitud; -- Tabla sbc_vivienda_solicitud INSERT INTO sbc_vivienda_solicitud (solicitud, tipo_vivienda, tipo_locacion, monto_locacion, cant_ambientes, cant_personas, descripcion_otra, zona_vivienda) SELECT li_nueva_solic, tipo_vivienda, tipo_locacion, monto_locacion, cant_ambientes, cant_personas, descripcion_otra, zona_vivienda FROM sbc_vivienda_solicitud WHERE solicitud = ai_solicitud; -- Tabla sbc_vehiculo_solicitud INSERT INTO sbc_vehiculo_solicitud (solicitud, tipo_vehiculo, tipo_uso_vehiculo, anio, marca, modelo) SELECT li_nueva_solic, tipo_vehiculo, tipo_uso_vehiculo, anio, marca, modelo FROM sbc_vehiculo_solicitud WHERE solicitud = ai_solicitud; return 1; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION sp_generarcopia(integer, integer, character varying) OWNER TO postgres; /*************************************************************** * Modificaciones para importacion de datos censales ***************************************************************/ -- Agrando el campo codigo postal a varchar 15 ALTER TABLE sbc_datos_personales_actuales ALTER codigo_postal TYPE character varying(15); ALTER TABLE vga_temp_datos_censales ALTER codigo_postal TYPE character varying(15); ALTER TABLE vga_datos_personales_actuales ALTER codigo_postal TYPE character varying(15); -- Fuente de financiamiento ALTER TABLE vga_temp_datos_censales ALTER fuente_financiamiento_otra TYPE character varying(255); ALTER TABLE vga_datos_economicos ALTER otra_fuente TYPE character varying(255); -- Parentesco Profesion ALTER TABLE sbc_datos_personales_grp_fam ALTER profesion TYPE character varying(255); ALTER TABLE vga_temp_datos_censales ALTER parentesco_profesion TYPE character varying(255);