Está en la página 1de 66

ALTER TABLE `tactividadinstitucional` MODIFY COLUMN `hasta` DATETIME; Drop table tdetallejunta; Drop table tpartidajuntas; Drop table

tmiembro; INSERT INTO tparametro VALUES(38,'CedulaJuridica','Cedula Jurdica de la junta','0 000000000',1); INSERT INTO tparametro VALUES(39,'CuentaBancaria','cuenta bancaria de la junta', '0000000000',1); INSERT INTO tparametro VALUES(40,'CuentaCajaUnica','Cuenta de la caja unica de l a junta','0000000000',1); INSERT INTO tparametro VALUES(41,'correoelectronico','Correo electrnico de la esc uela','aaaaaa@aaaa.com',1); INSERT INTO tparametro VALUES(42,'provincia','Provincia pertenece la escuela','S an Jse',1); INSERT INTO tparametro VALUES(43,'distrito','distrito pertenece la escuela','San Rafael',1); INSERT INTO tparametro VALUES(44,'canton','canton pertenece la escuela','Desampa rados',1); ALTER TABLE TDocente ADD COLUMN cantidadLeccionesInterinas int not null default 0; DELIMITER $$ DROP PROCEDURE IF EXISTS `SPAgregarFuncion` $$ CREATE PROCEDURE `SPAgregarFuncion`(in pnombre varchar(20)) BEGIN

DECLARE mcodFuncion INT;

INSERT INTO TFuncion (nombre, tipo) VALUES (pnombre,0);

INSERT INTO TFuncion (nombre, tipo) VALUES (pnombre,1);

SELECT LAST_INSERT_ID() INTO mcodFuncion;

INSERT INTO TPerfilFuncion(codPerfil, codFuncion) VALUES(8, mcodFuncion);

END $$ DELIMITER ; CREATE TABLE TRuta( codigo int auto_increment not null, nombre VARCHAR(200), PRIMARY KEY(codigo) )ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE TEstudianteRuta( cedEstudiante VARCHAR(20) NOT NULL, codRuta int not null, PRIMARY KEY(cedEstudiante, codRuta), CONSTRAINT FKEstudianteTransporte1 FOREIGN KEY (cedEstudiante) REFERENCES TEst udiante (cedula) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FKEstudianteTransporte2 FOREIGN KEY (codRuta) REFERENCES TRuta (cod igo) ON DELETE CASCADE ON UPDATE CASCADE )ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE TBeca( codigo int auto_increment not null, nombre VARCHAR(200), PRIMARY KEY(codigo) )ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE TEstudianteBeca( cedEstudiante VARCHAR(20) NOT NULL, codBeca int not null, PRIMARY KEY(cedEstudiante, codBeca), CONSTRAINT FKEstudianteBeca1 FOREIGN KEY (cedEstudiante) REFERENCES TEstudiant e (cedula) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FKEstudianteBeca2 FOREIGN KEY (codBeca) REFERENCES TBeca (codigo) O N DELETE CASCADE ON UPDATE CASCADE )ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Ttipo Partida Junta*/ CREATE TABLE `ttipopartida` ( `codigo` int(11) NOT NULL auto_increment, `nombre` varchar(100) default NULL, PRIMARY KEY (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*Tabla de partidas de la junta */ CREATE TABLE `tpartidajuntas` ( `codigo` int(11) NOT NULL auto_increment, `codigopartida` varchar(20) NOT NULL default '', `partida` longtext, `codtipopartida` int(11) NOT NULL default '0', `tipo` int(11) default NULL, PRIMARY KEY (`codigo`),

KEY `Fk_PartidaJuntas` (`codtipopartida`), CONSTRAINT `fk_tpartidajuntas_1` FOREIGN KEY (`codtipopartida`) REFERENCES `tt ipopartida` (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*Tabla de detale junta*/ CREATE TABLE `tdetallejunta` ( `codigo` int(11) NOT NULL auto_increment, `codpartidaJunta` int(20) NOT NULL, `cedula` varchar(100) NOT NULL, `fechaIngreso` datetime NOT NULL, `valor` decimal(10,0) default NULL, `descripcion` varchar(200) default NULL, `tipo` int(11) default NULL, PRIMARY KEY (`codigo`), KEY `tdetallejunta_ibfk_1` (`codpartidaJunta`), CONSTRAINT `fk_partidajunta_detallejunta` FOREIGN KEY (`codpartidaJunta`) REFE RENCES `tpartidajuntas` (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*presupuesto de la junta */ CREATE TABLE `tpresupuestojuntas` ( `codigo` int(11) NOT NULL auto_increment, `tipopresupuesto` int(11) NOT NULL, `fecharealizado` date default NULL, `codcursolectivo` int(11) default NULL, `corresponde` int(11) default NULL, `aprobado` int(11) default NULL, PRIMARY KEY (`codigo`), KEY `fk_presupuesto_curso` (`codcursolectivo`), CONSTRAINT `fk_presupuesto_curso` FOREIGN KEY (`codcursolectivo`) REFERENCES ` tcursolectivo` (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*tt partida presupuesto */ CREATE TABLE `tpartidapresupuesto` ( `codigopartida` int(11) NOT NULL default '0', `codpresupuesto` int(11) NOT NULL default '0', `monto` double default NULL, PRIMARY KEY (`codigopartida`,`codpresupuesto`), KEY `fk_tpartidapresipuesto_2` (`codpresupuesto`), CONSTRAINT `fk_tpartidapresipuesto_2` FOREIGN KEY (`codpresupuesto`) REFERENCE S `tpresupuestojuntas` (`codigo`), CONSTRAINT `fk_tpartidapresupuesto_1` FOREIGN KEY (`codigopartida`) REFERENCES `tpartidajuntas` (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*Proveedores*/ CREATE TABLE `tproveedor` ( `codigo` int(11) NOT NULL auto_increment, `telefono1` int(11) default NULL, `telefono2` int(11) default NULL, `fechaingreso` datetime default NULL, `direccion` varchar(100) default NULL,

`tipo` int(11) NOT NULL, `tipoServicio` varchar(100) NOT NULL default '', PRIMARY KEY (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*Tabla de tdetalle junta proveedor*/ CREATE TABLE `tdetallejuntaproveedor` ( `codigo` int(11) NOT NULL auto_increment, `codigoProveedor` int(11) default NULL, `codDetalle` int(11) default NULL, `cheque` varchar(100) default NULL, `factura` varchar(20) default NULL, PRIMARY KEY (`codigo`), KEY `tdetalleProveedor_fk` (`codigoProveedor`), KEY `tjuntadetalle_proveedor_fk` (`codDetalle`), CONSTRAINT `tdetalleProveedor_fk` FOREIGN KEY (`codigoProveedor`) REFERENCES ` tproveedor` (`codigo`), CONSTRAINT `tjuntadetalle_proveedor_fk` FOREIGN KEY (`codDetalle`) REFERENCES `tdetallejunta` (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*Los proveedores que son emrpesas*/ CREATE TABLE `tempresa` ( `cedulaJuridica` varchar(100) NOT NULL default '', `razonSocial` varchar(100) default NULL, `codproveedor` int(11) NOT NULL default '0', PRIMARY KEY (`cedulaJuridica`,`codproveedor`), KEY `tprovedor_empresa_fk` (`codproveedor`), CONSTRAINT `tprovedor_empresa_fk` FOREIGN KEY (`codproveedor`) REFERENCES `tpr oveedor` (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*Proveedores personas fisicas*/ CREATE TABLE `tproveedorpersona` ( `codproveedor` int(11) NOT NULL default '0', `cedula` varchar(100) NOT NULL default '', `carnet` int(11) default NULL, PRIMARY KEY (`cedula`,`codproveedor`), KEY `tproveedor_fk` (`codproveedor`), CONSTRAINT `tpersona_proveedor_fk` FOREIGN KEY (`cedula`) REFERENCES `tpersona ` (`cedula`), CONSTRAINT `tproveedor_fk` FOREIGN KEY (`codproveedor`) REFERENCES `tproveedor ` (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Miembros de la Junta*/ CREATE TABLE `tmiembro` ( `cedula` varchar(100) NOT NULL default '', `fechaNacimiento` date default NULL, `puesto` varchar(100) default NULL, `escolaridad` int(11) default NULL, `fechaInicio` date default NULL, `fechaFin` date default NULL, `estadoCivil` int(11) default NULL, `trabaja` tinyint(4) default NULL,

`direccionCasa` varchar(100) default NULL, `telefonoCasa` int(11) default NULL, `telefonoCelular` int(11) default NULL, `miembro` varchar(100) default NULL, PRIMARY KEY (`cedula`), CONSTRAINT `tmiembro_ibfk_1` FOREIGN KEY (`cedula`) REFERENCES `tpersona` (`ce dula`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Proyectos de la Junta*/ CREATE TABLE `tproyectojunta` ( `codigo` int(11) NOT NULL auto_increment, `nombre` varchar(100) default NULL, `descripcionGeneral` longtext, `razones` longtext, `disponibilidad` longtext, `fechaingreso` datetime default NULL, PRIMARY KEY (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*Los proyectos relacionados con los activos*/ CREATE TABLE `tactivoproyecto` ( `codigo` int(11) NOT NULL auto_increment, `codigoactivo` int(11) default NULL, `codigoproyecto` int(11) default NULL, `necesidad` longtext, PRIMARY KEY (`codigo`), KEY `fk_activo_proyecto` (`codigoactivo`), KEY `fk_proyecto_necesidad` (`codigoproyecto`), CONSTRAINT `fk_activo_proyecto` FOREIGN KEY (`codigoactivo`) REFERENCES `tacti vo` (`codigo`), CONSTRAINT `fk_proyecto_necesidad` FOREIGN KEY (`codigoproyecto`) REFERENCES ` tproyectojunta` (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*Proyecciones de matricula y grupos*/ CREATE TABLE `tproyeccion` ( `codigo` int(11) NOT NULL auto_increment, `gruposoptimo` int(11) default NULL, `matricula` int(11) default NULL, `codnivel` int(11) default NULL, `codproyecto` int(11) default NULL, PRIMARY KEY (`codigo`), KEY `fk_nivel_proyeccion` (`codnivel`), KEY `fk_tproyecto_proyeccion` (`codproyecto`), CONSTRAINT `fk_nivel_proyeccion` FOREIGN KEY (`codnivel`) REFERENCES `tnivel` (`numero`), CONSTRAINT `fk_tproyecto_proyeccion` FOREIGN KEY (`codproyecto`) REFERENCES `t proyectojunta` (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*Terrenos de la institucion*/ CREATE TABLE `tterrenos` ( `codigo` int(11) NOT NULL auto_increment, `terreno` varchar(100) default NULL, `planocatastro` varchar(50) default NULL, `area` double default NULL, `disponible` double default NULL,

PRIMARY KEY (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

DELIMITER $$ DROP PROCEDURE IF EXISTS `SPFragmentacion` $$ CREATE PROCEDURE `SPFragmentacion`(in pestado int, in pcodCursoLectivo int,in pg rupo int,in pnivel int,in pnota int, in pperiodo int) BEGIN

DECLARE mValor int DEFAULT 0;

if pgrupo <> 0 then

Select count(total.cedula) from( Select con1.*,count(distinct con1.parentesco)as contar from (SELECT TPersona.cedula,tencargado.parentesco FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po,trendimiento WHERE TESTUDIANTE.ESTADO = pestado AND TGrupoEstudiante.cedula=TEstudiante.cedula and tgrupo.codcursolectivo= pcodCursoLectivo and tgrupo.codigo = pgrupo AND TPersona.cedula=TEstudiante.cedula and testudianteencargado.cedestudiante = TEstudiante.cedula and testudianteencargado.cedencargado = tencargado.cedula and testudiante.cedula = trendimiento.cedula and trendimiento.codperiodo = pperiodo and trendimiento.nota < pnota and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1

where con1.parentesco = 1 or con1.parentesco = 0 group by con1.cedula Having contar < 2) as Total;

end if;

if pnivel <> 0 then

Select count(total.cedula) from( Select con1.*,count(distinct con1.parentesco)as contar from (SELECT TPersona.cedula,tencargado.parentesco FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po,trendimiento WHERE TESTUDIANTE.ESTADO = pestado AND TGrupoEstudiante.cedula=TEstudiante.cedula and tgrupo.codcursolectivo= pcodCursoLectivo and tgrupo.numnivel = pnivel AND TPersona.cedula=TEstudiante.cedula and testudianteencargado.cedestudiante = TEstudiante.cedula and testudianteencargado.cedencargado = tencargado.cedula and testudiante.cedula = trendimiento.cedula and trendimiento.codperiodo = pperiodo and trendimiento.nota < pnota and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1 where con1.parentesco = 1 or con1.parentesco = 0 group by con1.cedula Having contar < 2) as Total;

end if;

if pnivel = 0 and pgrupo = 0 then

Select count(total.cedula) from(

Select con1.*,count(distinct con1.parentesco)as contar from (SELECT TPersona.cedula,tencargado.parentesco FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po,trendimiento WHERE TESTUDIANTE.ESTADO = pestado AND TGrupoEstudiante.cedula=TEstudiante.cedula and tgrupo.codcursolectivo= pcodCursoLectivo AND TPersona.cedula=TEstudiante.cedula and testudianteencargado.cedestudiante = TEstudiante.cedula and testudianteencargado.cedencargado = tencargado.cedula and testudiante.cedula = trendimiento.cedula and trendimiento.codperiodo = pperiodo and trendimiento.nota < pnota and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1 where con1.parentesco = 1 or con1.parentesco = 0 group by con1.cedula Having contar < 2) as Total;

end if; END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS `SPMayoresMenores` $$ CREATE PROCEDURE `SPMayoresMenores`(in pcodPeriodo int, in pcodCursoLectivo int

, in pcodNivel int,in pcodestado int, in pgrupo int) BEGIN

DECLARE mValor int DEFAULT 0;

IF pgrupo <> 0 then

SELECT Round(Count(Distinct(TRendimiento.cedula))) FROM TGrupo,TGrupoEstudiante,TEstudiante,TRendimiento WHERE TGrupo.codCursoLectivo=pcodCursoLectivo AND TRendimiento.codPeriodo=pcodPeriodo AND TRendimiento.nota>=65 and tgrupo.codigo = pgrupo AND TGrupo.numNivel=pcodNivel AND TEstudiante.estado=pcodestado AND TGrupoEstudiante.codigo=TGrupo.codigo AND TGrupoEstudiante.cedula=TEstudiante.cedula AND TRendimiento.cedula=TEstudiante.cedula and trendimiento.cedula not in(SELECT TRendimiento.cedula FROM TGrupo,TGrupoEstudiante,TEstudiante,TRendimiento WHERE TGrupo.codCursoLectivo=pcodCursoLectivo AND TRendimiento.codPeriodo=pcodPeriodo AND TRendimiento.nota<65 and tgrupo.codigo = pgrupo AND TGrupo.numNivel=pcodNivel AND TEstudiante.estado=pcodestado AND TGrupoEstudiante.codigo=TGrupo.codigo AND TGrupoEstudiante.cedula=TEstudiante.cedula AND TRendimiento.cedula=TEstudiante.cedula);

END IF;

IF pgrupo = 0 then

SELECT Round(Count(Distinct(TRendimiento.cedula))) FROM TGrupo,TGrupoEstudiante,TEstudiante,TRendimiento WHERE TGrupo.codCursoLectivo=pcodCursoLectivo AND TRendimiento.codPeriodo=pcodPeriodo AND TRendimiento.nota>=65 AND TGrupo.numNivel=pcodNivel AND TEstudiante.estado=pcodestado AND TGrupoEstudiante.codigo=TGrupo.codigo AND TGrupoEstudiante.cedula=TEstudiante.cedula AND TRendimiento.cedula=TEstudiante.cedula and trendimiento.cedula not in(SELECT TRendimiento.cedula FROM TGrupo,TGrupoEstudiante,TEstudiante,TRendimiento WHERE TGrupo.codCursoLectivo=pcodCursoLectivo AND TRendimiento.codPeriodo=pcodPeriodo AND TRendimiento.nota<65 AND TGrupo.numNivel=pcodNivel AND TEstudiante.estado=pcodestado AND TGrupoEstudiante.codigo=TGrupo.codigo AND TGrupoEstudiante.cedula=TEstudiante.cedula AND TRendimiento.cedula=TEstudiante.cedula); END IF;

END $$ DELIMITER ;

INSERT INTO tgrupoprofesional VALUES(26,'KT1','Docente de preescolar'); INSERT INTO tgrupoprofesional VALUES(27,'KT2','Docente de preescolar'); INSERT INTO tgrupoprofesional VALUES(28,'KT3','Docente de preescolar'); INSERT INTO `ttipopartida` (`codigo`,`nombre`) VALUES (1,'INGRESOS CORRIENTES'),

(2,'SERVICIOS PROFESIONALES'), (3,'MATERIALES Y SUMINISTROS'), (4,'MAQUINARIA Y EQUIPO'), (5,'OBRAS POR CONTRATO'), (6,'OBRAS POR ADMINISTRACIN'), (7,'TRANSFERENCIAS CORRIENTES'), (8,'DEUDA PBLICA'), (9,'DESEMBOLSOS FINANCIEROS'), (10,' '); INSERT INTO `tpartidajuntas` (`codigo`,`codigopartida`,`partida`,`codtipopartida `,`tipo`) VALUES (1,'01-01-01','IMPUESTO DEL TABACO',1,1), (2,'01-02-01','PATENTES DE LICORES Y CERVEZAS',1,1), (3,'01-03-01','MULTAS',1,1), (4,'01-03-02','MORTUALES',1,1), (5,'01-04-03','ALQUILERES',1,1), (6,'01-04-04','INTERESES PERCIBIDOS',1,1), (7,'01-05-02','VENTA DE PRODUCTOS DE TALLERES',1,1), (8,'01-05-03','VENTA DE MATERIALES',1,1), (9,'01-05-05','VENTA DE ESCUDETES',1,1), (10,'01-05-06','VENTA DE CUADERNOS DE COMUNICACIN',1,1), (11,'01-05-07','VENTA DE CARNS DE IDENTIFICACIN',1,1), (12,'01-05-08','VENTA DE UNIFORMES Y VESTUARIO',1,1), (13,'01-06-01','CONTRIBUCIN VOLUNTARIA (MATRCULA)',1,1), (14,'01-06-03','MENSUALIDAD Y/O CONTRIBUCIONES DE ALUMNOS',1,1), (15,'01-06-04','SERVICIOS TELEFNICOS',1,1), (16,'01-06-05','SERVICIOS DE LABORATORIO',1,1), (17,'01-06-06','SERVICIOS DE TRANSPORTE',1,1), (18,'01-07-03','PRODUCTOS DE SODA',1,1), (19,'01-07-04','RIFAS, FERIAS, OTROS',1,1), (20,'01-07-05','INGRESOS VARIOS',1,1); INSERT INTO `tpartidajuntas` (`codigo`,`codigopartida`,`partida`,`codtipopartida `,`tipo`) VALUES (21,'01-08-01','LEY BIENES INMUEBLES I Y II CICLOS',1,1), (22,'01-08-03','LEY 6746 I Y II CICLOS',1,1), (23,'01-08-04','LEY 6746 COLEGIO ACADMICO DIURNO',1,1), (24,'01-08-05','APORTES DE GOBIERNO ESPECFICO (partidas y transferencias)',1,1), (25,'01-08-06','TIMBRE EDUCATIVO',1,1), (26,'01-08-08','APORTE COMPRA ALIMENTOS DANEA',1,1), (27,'01-08-09','APORTE PAGO SERVIDORAS DOMSTICAS',1,1), (28,'01-08-10','LEY 6982 COMEDORES ESCOLARES',1,1), (29,'01-10-01','HERENCIAS VACANTES',1,1), (30,'01-10-03','DONACIONES',1,1), (31,'02-04-01','SUPERAVIT LIBRE',1,1), (32,'02-04-02','SUPERAVIT ESPECIFICO',1,1), (33,'02-04-04','APORTE MUNICIPAL',1,1), (34,'02-04-05','DIFERENCIA SALARIO TESORERO',1,1), (35,'01-01-01','SUELDOS PARA PROFESIONALES Y TCNICOS',2,0), (36,'01-00-01','SUELDOS PARA CARGOS FIJOS',2,0), (37,'01-01-02','SUPLENCIAS',2,0), (38,'01-02-01','HONORARIOS A PROFESIONALES',2,0), (39,'01-02-02','HONORARIOS A TESOREROS',2,0); INSERT INTO `tpartidajuntas` (`codigo`,`codigopartida`,`partida`,`codtipopartida `,`tipo`) VALUES (40,'01-03-01','HORAS EXTRA',2,0), (41,'01-03-02','PAGO DE VACACIONES',2,0), (42,'01-04-01','JORNALES FIJOS',2,0), (43,'01-04-02','JORNALES OCASIONALES',2,0), (44,'01-05-01','CUOTA DE SEGURO SOCIAL',2,0),

(45,'01-06-01','DCIMO TERCER MES SUELDOS FIJOS',2,0), (46,'01-06-02','DCIMO TERCER MES TRANSITORIOS',2,0), (47,'01-06-03','DCIMO TERCER MES TESORERO',2,0), (48,'01-06-04','DCIMO TERCER MES JORNALES FIJOS',2,0), (49,'01-06-05','DCIMO TERCER MES JORNALES OCASIONALES',2,0), (50,'01-06-06','DCIMO TERCER MES SOBRE VACACIONES',2,0), (51,'01-07-01','CUOTA PATRONAL BCO POPULAR',2,0), (52,'01-07-02','CUOTA PATRONAL ASIGNACIONES FAMILIARES',2,0), (53,'01-07-03','CUOTA PATRONAL IMAS',2,0), (54,'01-07-05','FONDO CAPITALIZACIN LABORAL',2,0), (55,'01-07-06','FONDO DE PENSIONES COMPLEMENTARIA OBLIGATORIA',2,0), (56,'02-01-00','SERVICIOS PBLICOS',10,0), (57,'02-05-00','SEGUROS Y PLIZAS',10,0), (58,'02-09-00','MANTENIMIENTO Y REPARACIN DE EQUIPO',10,0); INSERT INTO `tpartidajuntas` (`codigo`,`codigopartida`,`partida`,`codtipopartida `,`tipo`) VALUES (59,'02-10-00','MANTENIMIENTO Y REPARACIN MENORES DE EDIFICIO',10,0), (60,'02-11-00','OTROS SERVICIOS NO PERSONALES (CELEBRACIONES ESCOLARES)',10,0), (61,'03-01-00','PRODUCTOS DE PAPEL, CARTN',3,0), (62,'03-02-00','ALIMENTOS Y PRODUCTOS AGROFORESTALES',3,0), (63,'03-04-00','PRODUCTOS QUMICOS Y CONEXOS ',3,0), (64,'03-05-00','TEXTILES Y VESTUARIO',3,0), (65,'03-07-00','PRODUCTOS VARIOS Y TILES DIVERSOS',3,0), (66,'04-01-00','MOBILIARIO Y EQUIPO DE OFICIA',4,0), (67,'04-02-00','EQUIPOS EDUCACIONALES Y RECREATIVOS',4,0), (68,'04-07-00','EQUIPO DE RESGUARDO Y SEGURIDAD',4,0), (69,'04-09-00','MUEBLES Y EQUIPO DOMESTICO',4,0), (70,'06-00-01','CONTRUCCIONES, ADICIONES Y MEJORAS POR CONTRATO',5,0), (71,'07-00-01','CONSTRUCCIONES, ADICIONES Y MEJORAS POR ADMINISTRACIN',6,0), (72,'08-00-01','PRESTACIONES LEGALES',7,0), (73,'08-03-01','BECAS',7,0), (74,'10-00-01','PAGO PENDIENTES DE AO ANTERIOR',8,0), (75,'11-00-01','ADQUISICIN DE VALORES FINANCIEROS',9,0); INSERT INTO `tpartidajuntas` (`codigo`,`codigopartida`,`partida`,`codtipopartida `,`tipo`) VALUES (76,'12-01-00','RECURSOS SIN ASOGNACIN PRESUPUESTARIA',10,0); Call SPAgregarFuncion('GestionFinanciera'); DELIMITER $$ DROP PROCEDURE IF EXISTS SPAgregarPermiso $$ CREATE PROCEDURE SPAgregarPermiso(in pnombre varchar(35), in pdescripcion varcha r(100), in pfuncion varchar(20)) BEGIN DECLARE codPermiso INT; DECLARE codFuncion INT; /*SE SACA EL CDIGO DE LA FUNCIN DEL SISTEMA */ SELECT codigo INTO codFuncion FROM TFuncion WHERE nombre=pfuncion AND tipo= 0; /*SE INSERTA LA FUNCIN */ INSERT INTO TPermiso (nombre,descripcion) VALUES (pnombre,pdescripcion); /*SE SACA EL LTIMO ID GENERADO */ SELECT LAST_INSERT_ID() INTO codPermiso; /*SE LIGAN LA FUNCIN Y EL PERMISO */ INSERT INTO TFuncionPermiso (codFuncion, codPermiso, asignado) VALUES (codF uncion,codPermiso,1); /*SE EXTRAE EL CDIGO DE LA FUNCIN ASOCIADA AL ADMINISTRADOR */ SELECT TFuncion.codigo INTO codFuncion FROM TFuncion,TPerfilFuncion

WHERE TFuncion.nombre=pfuncion AND TFuncion.tipo=1 AND TFuncion.codigo=TPerfilFuncion.codFuncion AND TPerfilFuncion.codPerfil=8; /*SE LIGAN LA FUNCIN Y EL PERMISO */ INSERT INTO TFuncionPermiso (codFuncion, codPermiso, asignado) VALUES (codF uncion,codPermiso,1); END $$ DELIMITER ; CALL SPAgregarPermiso('PresupuestoJuntas', 'PresupuestoJuntas', 'GestionFinancie ra'); CALL SPAgregarPermiso('DetallePatronato', 'PresupuestoJuntas', 'GestionFinancier a'); CALL SPAgregarPermiso('IngresoMiembrosJuntas', 'PresupuestoJuntas', 'GestionFina nciera'); CALL SPAgregarPermiso('IngresoMiembrosPatronato', 'PresupuestoJuntas', 'GestionF inanciera'); CALL SPAgregarPermiso('SolicitudConstruccion', 'Solicitud de construccion y mant enimiento', 'GestionFinanciera'); CALL SPAgregarPermiso('ConstruccionPresupuesto', 'Construccion Presupuesto', 'Ge stionFinanciera'); CALL SPAgregarPermiso('DetallesPartidas', 'Construccion Presupuesto', 'GestionFi nanciera'); CALL SPAgregarPermiso('ProyectoJunta', 'Construccion Presupuesto', 'GestionFinan ciera'); CALL SPAgregarPermiso('ReporteDetalleJunta', 'Construccion Presupuesto', 'Gestio nFinanciera'); CALL SPAgregarPermiso('DiagnosticoNecesidades', 'Diagnostico Necesidades', 'Gest ionFinanciera'); CALL SPAgregarPermiso('Proveedores', 'Se agregran los proveedores de la junta', 'GestionFinanciera'); CALL SPAgregarPermiso('ReporteIntegrantesJunta', 'Reporte Integrantes Junta', 'G estionFinanciera'); CALL SPAgregarPermiso('ReporteBecaEstudiantes', 'Reporte de estudiantes por tipo de beca', 'Reportes'); CALL SPAgregarPermiso('ReporteRutaEstudiantes', 'Reporte de estudiantes por ruta de transporte', 'Reportes'); CALL SPAgregarPermiso('GestionRutas', 'Gestin de las rutas de transporte de estud iantes', 'Administracin'); CALL SPAgregarPermiso('GestionBecas', 'Gestin de las becas de estudiantes', 'Admi nistracin'); CALL SPAgregarPermiso('PlanEstudios', 'Gestin de los planes de estudios', 'Matric ula'); CALL SPAgregarPermiso('GestionCentros', 'Gestin de las becas de estudiantes', 'Ad ministracin'); DELIMITER $$ DROP PROCEDURE IF EXISTS `SPContarVisita` $$ CREATE PROCEDURE `SPContarVisita`(IN pcodigo INT, OUT cont INT) BEGIN UPDATE TContador SET cantidad=cantidad+1 WHERE codigo=pcodigo;

SELECT cantidad INTO cont FROM TContador WHERE codigo=pcodigo;

END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS `SPTodosGruposDocente` $$ CREATE PROCEDURE `SPTodosGruposDocente`(in pcedDocente VARCHAR(20), in pcodCurs o INT, in pcodAsignatura INT) BEGIN

SELECT g.codigo, g.numero, g.cedula, g.cupo, g.codcursolectivo, g.numNivel, g.estado FROM tcargaacademica c, Tgrupo g WHERE g.codigo=c.codgrupo AND g.codCursoLectivo=pcodCurso AND c.cedula=pcedDocente AND c.codAsignatura=pcodAsignatura GROUP BY g.codigo;

END $$ DELIMITER $$ DROP PROCEDURE IF EXISTS `SPTodasAsignaturasDocente` $$ CREATE PROCEDURE `SPTodasAsignaturasDocente`(in pcodCurso int, in pcedDocente VA RCHAR(20)) BEGIN SELECT a.* FROM TAsignatura a JOIN TCargaAcademica c ON c.codAsignatura=a.codigo LEFT JOIN TGrupo g ON g.codigo=c.codGrupo JOIN TDocente d ON d.cedula=c.cedula WHERE g.codCursoLectivo=pcodCurso AND d.cedula=pcedDocente group by a.codigo ; END $$ DELIMITER ; UPDATE TPlantillaRegistro SET ubicacion='Registro de Calificaciones Secundaria y Complementarias 2011 PIAD.accde' WHERE codigo=2; UPDATE TPlantillaRegistro SET ubicacion='Registro Digital I y II Ciclos, Bsicas 2011.xls' WHERE codigo=1;

CREATE TABLE `tregistroadecuacionasignatura` ( `codigo` int(11) DEFAULT NULL, `codasignatura` int(11) DEFAULT NULL, KEY `FORENKEY1` (`codigo`), KEY `codasignatura` (`codasignatura`), CONSTRAINT `FORENKEY1` FOREIGN KEY (`codigo`) REFERENCES `tregistroadecuacionc urricular` (`codigo`), CONSTRAINT `tregistroadecuacionasignatura_ibfk_1` FOREIGN KEY (`codasignatura` ) REFERENCES `tasignatura` (`codigo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO tasignatura VALUES(100, 'Sin Asignar', 'Sin Asignar', 1, 0, '', ''); INSERT INTO tregistroadecuacionasignatura Select codigo,100 from tregistroadecuacioncurricular; DELIMITER $$ DROP PROCEDURE IF EXISTS `SPContarVisita` $$ CREATE PROCEDURE `SPContarVisita`(IN pcodigo INT, OUT cont INT) BEGIN UPDATE TContador SET cantidad=cantidad+1 WHERE codigo=pcodigo;

SELECT cantidad INTO cont FROM TContador WHERE codigo=pcodigo;

END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS `SPEstudiantesGrupoAsig` $$ CREATE PROCEDURE `SPEstudiantesGrupoAsig`(in pcodGrupo INT, in pcodAsignatura IN T, in pactivos TINYINT) BEGIN IF pactivos=1 THEN SELECT p.*,e.* FROM TPersona p, TEstudiante e, TGrupoEstudiante ge JOIN TGrupo g ON g.codigo=ge.codigo JOIN TCargaAcademica c ON c.codGrupo=g.codigo WHERE p.cedula IN(SELECT cedula FROM TGrupoEstudiante WHERE codigo=pcodGrupo ) AND ge.codigo=pcodGrupo AND e.estado IN(2,3) AND c.codAsignatura=pcodAsignatura AND p.cedula=e.cedula AND e.cedula=ge.cedula;

ELSE SELECT p.*,e.* FROM TPersona p, TEstudiante e, TGrupoEstudiante ge JOIN TGrupo g ON g.codigo=ge.codigo JOIN TCargaAcademica c ON c.codGrupo=g.codigo WHERE p.cedula IN(SELECT cedula FROM TGrupoEstudiante WHERE codigo=pcodGrupo ) AND ge.codigo=pcodGrupo AND p.cedula=e.cedula AND e.cedula=ge.cedula AND c.codAsignatura=pcodAsignat ura; END IF;

END $$ DELIMITER ; ALTER TABLE `tasistencia` ADD COLUMN `llegadasTardiasJustificadas` INTEGER AFTER `cedula`; UPDATE tasistencia t SET llegadastardiasjustificadas =0;

ALTER TABLE TPlanEstudio ADD COLUMN codCursoLectivo int null, ADD CONSTRAINT TPl anEstudio_FK3 FOREIGN KEY TPlanEstudio_FK3(codCursoLectivo) REFERENCES tcursolec tivo (codigo) ON DELETE SET NULL ON UPDATE SET NULL; UPDATE TPlanEstudio SET codCursoLectivo=13; UPDATE tdocente t SET codgrupoprofesional = 1 WHERE CEDULA = '0-0000-0000'; ALTER TABLE tasignatura ADD COLUMN cantidad INTEGER UNSIGNED NOT NULL DEFAULT 0 AFTER iniciales, ADD COLUMN codTecnologia VARCHAR(45) NOT NULL DEFAULT '' AFTER cantidad, ADD COLUMN tipoEvaluacion INTEGER UNSIGNED NOT NULL DEFAULT 2 AFTER codTecnolog ia, ADD COLUMN configuracionManual INTEGER UNSIGNED NOT NULL DEFAULT 0 AFTER tipoEv aluacion; ALTER TABLE tasignatura MODIFY COLUMN codTecnologia VARCHAR(45) CHARACTER SET u tf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS tdisponibilidad; CREATE TABLE tdisponibilidad ( codigo int(11) NOT NULL auto_increment, disponible tinyint(1) NOT NULL default '0', cedula varchar(20) NOT NULL, numLapso int(11) NOT NULL, PRIMARY KEY (codigo), KEY cedula (cedula), KEY numLapso (numLapso), CONSTRAINT tdisponibilidad_ibfk_1 FOREIGN KEY (cedula) REFERENCES tdocente (ce

dula) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT tdisponibilidad_ibfk_2 FOREIGN KEY (numLapso) REFERENCES tlapso (nu mero) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS taulausada; CREATE TABLE taulausada ( codigo int(11) NOT NULL auto_increment, codAula int(11) NOT NULL, cedula varchar(20) NOT NULL, PRIMARY KEY (codigo), KEY cedula (cedula), KEY codAula (codAula), CONSTRAINT taulausada_ibfk_1 FOREIGN KEY (cedula) REFERENCES tdocente (cedula) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT taulausada_ibfk_2 FOREIGN KEY (codAula) REFERENCES taula (codigo) O N DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO tparametro VALUES(50, 'FotoInicial', 'Fotografia inicial', '~/img/ni nnosestudiando.jpg', 1); DELIMITER $$ DROP PROCEDURE IF EXISTS SPPuedeBorrarAsignatura $$ CREATE PROCEDURE SPPuedeBorrarAsignatura(IN pcodAsignatura INT) BEGIN DECLARE mcantRendimiento INT; DECLARE mcantCargaAcademica INT; DECLARE mcantAsignaturaImpartida INT; DECLARE msePuede INT;

SET msePuede = 0;

SELECT COUNT(codigo) INTO mcantRendimiento FROM TRendimiento WHERE codAsignatu ra=pcodAsignatura; SELECT COUNT(codigo) INTO mcantCargaAcademica FROM TCargaAcademica WHERE codAs ignatura=pcodAsignatura; SELECT COUNT(codigo) INTO mcantAsignaturaImpartida FROM TAsignaturaImpartida W HERE codAsignatura=pcodAsignatura; IF mcantRendimiento<>0 THEN SET msePuede = 1; END IF; IF mcantCargaAcademica<>0 THEN SET msePuede = 1; END IF; IF mcantAsignaturaImpartida<>0 THEN SET msePuede = 1;

END IF; SELECT msePuede;

END $$ DELIMITER ; ALTER TABLE `testudiantebeca` ADD COLUMN `codCursoLectivo` INTEGER UNSIGNED NOT NULL DEFAULT 0 AFTER `codBeca`; CREATE TABLE `taltorendimiento` ( `cedula` varchar(100) NOT NULL DEFAULT '', `promedio` int(10) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`cedula`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; DELIMITER $$ DROP PROCEDURE IF EXISTS `SPEstudiantesAltoRendimiento` $$ CREATE PROCEDURE `SPEstudiantesAltoRendimiento`(in pcodCursoLectivo int, in dato int,in promedioMen int,in promedioMax int,in pcantAusencias int,in anno int,in pescolaridad int) BEGIN

IF DATO = 0 THEN DELETE FROM taltorendimiento; iNSERT INTO taltorendimiento SELECT Distinct TRendimiento.cedula,round(avg(trendimiento.nota)) FROM TGrupo,TGrupoEstudiante,TEstudiante,TRendimiento, TNivel, TPeriodo WHERE TGrupo.codCursoLectivo=pcodCursoLectivo AND TRendimiento.nota>=TNIVEL.NOTAMINIMA AND TGrupoEstudiante.codigo=TGrupo.codigo AND TGrupoEstudiante.cedula=TEstudiante.cedula AND TRendimiento.cedula=TEstudiante.cedula AND TRendimiento.codPeriodo=TPeriodo.codigo AND TPeriodo.codCursoLectivo=TGrupo.codCursoLectivo AND TNivel.numero=TGrupo.numNivel and trendimiento.cedula not in( SELECT r.cedula FROM TRendimiento r JOIN TPeriodo p on p.codigo=r.codPeriodo WHERE p.codCursoLectivo=pcodCursoLectivo AND r.tipo=0 AND r.nota<TNIVEL.NOTAMINIMA) group by trendimiento.cedula; Select count(*) from taltorendimiento where promedio between promedioMen and pro medioMax; END IF; if dato=1 then

SELECT Count(Distinct(taltorendimiento.cedula)) FROM TExpediente,TExpedienteEst ,THistorialEscolar,TAnnoEscolar,TNivel,taltorendimiento WHERE TAnnoEscolar.esRepitente=1 AND TAnnoEscolar.codCursoLectivo=pcodcursolectivo AND taltorendimiento.cedula=TExpediente.cedula AND TExpediente.codigo=TExpedienteEst.codigo AND TExpedienteEst.codigo=THistorialEscolar.codExpedienteEst AND THistorialEscolar.codigo=TAnnoEscolar.codHistorialEscolar AND TAnnoEscolar.numNivel=TNivel.numero and taltorendimiento.promedio between pr omedioMen and promedioMax ; end if; if dato=2 then Select count(*) from testudiante,taltorendimiento where taltorendimiento.cedula = testudiante.cedula and testudiante.adecuacion <> 0 and promedio between promed ioMen and promedioMax; end if; If dato=3 then Select count(Con.c) from ( SELECT sum(ausenciasinjustificadas) as c FROM tasistencia,tperiodo,taltorendimiento where tasistencia.codperiodo = tperiodo.codigo and tperiodo.codcursolectivo = pcodcursolectivo and taltorendimiento.cedula = ta sistencia.cedula and taltorendimiento.promedio between promedioMen and promedioMax group by talto rendimiento.cedula having c>pcantAusencias) as Con; end if; if dato = 5 then SELECT count(distinct codexpedienteest) FROM taltorendimiento,texpediente,thoja datos where taltorendimiento.cedula = texpediente.cedula and texpediente.codigo = thojadatos.codexpedienteest and poseebeca= 1 and prome dio between promedioMen and promedioMax; end if; if dato = 6 then SELECT count(distinct codexpedienteest) FROM taltorendimiento,texpediente,thoja datos where taltorendimiento.cedula = texpediente.cedula and texpediente.codigo = thojadatos.codexpedienteest and asistecomedor= 1 and p romedio between promedioMen and promedioMax; end if; if dato=7 then SELECT count(*) FROM testudianteencargado t, taltorendimiento a, tencargado e w here t.cedestudiante = a.cedula and t.cedencargado = e.cedula and parentesco = 0 and e.cedula <> '_-____-____' and escolaridad <= pescolaridad and promedio between promedioMen and promedioMax ; end if; if dato=8 then Select count(total.cedula) from( Select con1.*,count(distinct con1.parentesco)as contar from (SELECT taltorendimiento.cedula,tencargado.parentesco

FROM taltorendimiento,testudianteencargado,tencargado WHERE testudianteencargado.cedestudiante = taltorendimiento.cedula and testudianteencargado.cedencargado = tencargado.cedula and tencargado.viveconestudiante = 1 and promedio between promedioMen and promedioMax) as Con1 where con1.parentesco in(1,0) group by con1.cedula Having contar < 2) as Total; end if; END $$ DELIMITER ;

DELIMITER $$ DROP PROCEDURE IF EXISTS `SPAsignaturasGrupo` $$ CREATE PROCEDURE `SPAsignaturasGrupo`(in pcodGrupo int) BEGIN

SELECT a.* FROM TCargaAcademica c, TAsignatura a

WHERE c.codAsignatura=a.codigo

AND c.codGrupo=pcodGrupo

GROUP BY a.codigo;

END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS SPAgregarPermiso $$

CREATE PROCEDURE SPAgregarPermiso(in pnombre varchar(35), in pdescripcion varcha r(100), in pfuncion varchar(20)) BEGIN DECLARE codPermiso INT; DECLARE codFuncion INT; /*SE SACA EL CDIGO DE LA FUNCIN DEL SISTEMA */ SELECT codigo INTO codFuncion FROM TFuncion WHERE nombre=pfuncion AND tipo= 0; /*SE INSERTA LA FUNCIN */ INSERT INTO TPermiso (nombre,descripcion) VALUES (pnombre,pdescripcion); /*SE SACA EL LTIMO ID GENERADO */ SELECT LAST_INSERT_ID() INTO codPermiso; /*SE LIGAN LA FUNCIN Y EL PERMISO */ INSERT INTO TFuncionPermiso (codFuncion, codPermiso, asignado) VALUES (codF uncion,codPermiso,1); /*SE EXTRAE EL CDIGO DE LA FUNCIN ASOCIADA AL ADMINISTRADOR */ SELECT TFuncion.codigo INTO codFuncion FROM TFuncion,TPerfilFuncion WHERE TFuncion.nombre=pfuncion AND TFuncion.tipo=1 AND TFuncion.codigo=TPerfilFuncion.codFuncion AND TPerfilFuncion.codPerfil=8; /*SE LIGAN LA FUNCIN Y EL PERMISO */ INSERT INTO TFuncionPermiso (codFuncion, codPermiso, asignado) VALUES (codF uncion,codPermiso,1); END $$ DELIMITER ; CALL SPAgregarPermiso('AvanceUsoSistema', 'Reporte de avance en el uso del siste ma', 'Sistema'); CALL SPAgregarPermiso('ServiciosEstudiantes', 'Reporte complementos del estudian te', 'Expedientes'); CALL SPAgregarPermiso('ReporteListaAsignatura', 'Listado de estudiantes por asig natura', 'Reportes'); CALL SPAgregarPermiso('ReporteListaFuncionarios', 'Reporte de lista de funcionar ios', 'Reportes'); CALL SPAgregarPermiso('ReporteGraficoGlobal', 'Reporte grafico global', 'Reporte s'); CALL SPAgregarPermiso('ReporteMejoresPromedios', 'Reporte mejores Promedios', 'R eportes'); CALL SPAgregarPermiso('ReporteNotasIngresadas', 'Reporte mejores Promedios', 'Re portes'); CALL SPAgregarPermiso('TrasladoExpediente', 'Traslados del expediente', 'Expedie ntes');

DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceBecas $$ CREATE PROCEDURE SPAvanceBecas (IN pcodCursoLectivo INT) BEGIN SELECT ROUND(COUNT(DISTINCT becas.estudiante)/COUNT(DISTINCT mat.estudiante)*1 00,2) FROM (

SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo JOIN TEstudianteBeca eb ON eb.cedEstudiante=e.cedula AND eb.codCursoLectivo=g. codCursoLectivo WHERE g.codCursoLectivo=13) as becas, (SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo JOIN TEstudianteEncargado ee on ee.cedEstudiante=e.cedula WHERE g.codCursoLectivo=13) as mat;

END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceResidencia $$ CREATE PROCEDURE SPAvanceResidencia (IN pcodCursoLectivo INT) BEGIN SELECT ROUND(COUNT(DISTINCT lugar.estudiante)/COUNT(DISTINCT mat.estudiante)*1 00,2) FROM ( SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo JOIN TLugarResidencia l ON l.cedestudiante=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo) as lugar, (SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo WHERE g.codCursoLectivo=pcodCursoLectivo) as mat; END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceAdecuaciones $$ CREATE PROCEDURE SPAvanceAdecuaciones (IN pcodCursoLectivo INT) BEGIN SELECT ROUND(COUNT(DISTINCT becas.estudiante)/COUNT(DISTINCT mat.estudiante)*1 00,2) FROM ( SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo

JOIN TEstudianteBeca eb ON eb.cedEstudiante=e.cedula AND eb.codCursoLectivo=g. codCursoLectivo WHERE g.codCursoLectivo=pcodCursoLectivo) as becas, (SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo JOIN TEstudianteEncargado ee on ee.cedEstudiante=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo) as mat; END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceComedor $$ CREATE PROCEDURE SPAvanceComedor (IN pcodCursoLectivo INT) BEGIN SELECT ROUND(COUNT(DISTINCT comedor.estudiante)/COUNT(DISTINCT mat.estudiante) *100,2) FROM ( SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo JOIN TExpediente ex ON ex.cedula=e.cedula JOIN TExpedienteEst exEst ON exEst.codigo=ex.codigo JOIN THojaDatos h ON h.codExpedienteEst=exEst.codigo AND h.codCursoLectivo=g.c odCursoLectivo WHERE g.codCursoLectivo=pcodCursoLectivo AND h.asisteComedor=1) as comedor, (SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo JOIN TEstudianteEncargado ee on ee.cedEstudiante=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo) as mat; END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceEncargados $$ CREATE PROCEDURE SPAvanceEncargados (IN pcodCursoLectivo INT) BEGIN SELECT ROUND(COUNT(DISTINCT enc.estudiante)/COUNT(DISTINCT mat.estudiante)*100 ,2) FROM ( SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo JOIN TEstudianteEncargado ee on ee.cedEstudiante=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo) as enc,

(SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo JOIN TEstudianteEncargado ee on ee.cedEstudiante=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo) as mat; END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceGenerarRegistro $$ CREATE PROCEDURE SPAvanceGenerarRegistro (IN pcodCursoLectivo INT) BEGIN SELECT ROUND((asignados.cantidad/total.cantidad*100),2) as AvanceGenerarRegist ro FROM (SELECT COUNT(c.codigo) as cantidad FROM TCargaAcademica c JOIN TGrupo g ON g.codigo=c.codGrupo JOIN TAsignatura a ON a.codigo=c.codAsignatura WHERE g.codCursoLectivo=pcodCursoLectivo AND NOT ISNULL(c.cedula) AND a.cantidad=0) as asignados, (SELECT COUNT(c.codigo) as cantidad FROM TCargaAcademica c JOIN TGrupo g ON g.codigo=c.codGrupo JOIN TAsignatura a ON a.codigo=c.codAsignatura WHERE g.codCursoLectivo=pcodCursoLectivo AND a.cantidad=0) as total; END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceHorario $$ CREATE PROCEDURE SPAvanceHorario (IN pcodCursoLectivo INT) BEGIN SELECT ROUND(h.cantidad/g.cantidad * 100,2) as AvanceHorario FROM (SELECT COUNT(DISTINCT g.codigo) as cantidad FROM THorario h JOIN TGrupo g ON g.codigo=h.codGrupo WHERE g.codCursoLectivo=pcodCursoLectivo) as h, (SELECT COUNT(g.codigo) as cantidad FROM TGrupo g WHERE g.codCursoLectivo=pcodCursoLectivo) as g; END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceMatricula $$ CREATE PROCEDURE SPAvanceMatricula (IN pcodCursoLectivo INT) BEGIN DECLARE cantNiveles INT; SELECT COUNT(numero) INTO cantNiveles FROM TNivel;

SELECT ROUND(SUM(niveles.ptj)) AS AvanceMatricula FROM (SELECT (grupo.cantidad/matricula.cantidad) * (100/cantNiveles) as ptj, grupo. numnivel FROM (SELECT COUNT(DISTINCT ge.cedula) as cantidad, g.numnivel FROM TGrupoEstudiante ge JOIN TGrupo g ON g.codigo=ge.codigo WHERE g.codCursoLectivo=pcodCursoLectivo GROUP BY g.numNivel) as grupo, (SELECT COUNT(m.codigo) as cantidad, m.numNivel FROM TMatricula m WHERE m.codCursoLectivo=pcodCursoLectivo GROUP BY m.numNivel) as matricula WHERE grupo.numnivel=matricula.numnivel) AS niveles; END $$ DELIMITER ; UPDATE tdocente t SET codgrupoprofesional = 1 where cedula = "0-0000-0000"; UPDATE tasignatura t SET codtecnologia = Null; ALTER TABLE `testudiantebeca` DROP PRIMARY KEY, ADD PRIMARY KEY(`cedEstudiante`, `codBeca`, `codCursoLectivo`); DELIMITER $$ DROP PROCEDURE IF EXISTS `SPMejoresPromedios` $$ CREATE PROCEDURE `SPMejoresPromedios`(in pcodPeriodo int) BEGIN

DECLARE done INT DEFAULT 0;

DECLARE morden int DEFAULT 0;

DECLARE mcedula VARCHAR(20);

DECLARE mnombre VARCHAR(20);

DECLARE mprimerApellido VARCHAR(20);

DECLARE msegundoApellido VARCHAR(20);

DECLARE mpromedio decimal;

DECLARE mcodGrupo int;

DECLARE mnumNivel int;

DECLARE mseccion VARCHAR(5);

DECLARE tabla CURSOR FOR SELECT TPersona.cedula, TPersona.nombre,

TPersona.primerApellido, TPersona.segundoApellido, TGrupoEstudiante.codigo AS co dGrupo, AVG(TRendimiento.nota) AS promedio,

TGrupo.numNivel, CONCAT(TGrupo.numNivel,"-",TGrupo.numero)

FROM TPersona, TEstudiante, TGrupoEstudiante, TRendimiento, TGrupo

WHERE TPersona.cedula=TEstudiante.cedula

AND TEstudiante.cedula=TGrupoEstudiante.cedula

AND TEstudiante.cedula=TRendimiento.cedula

AND TGrupoEstudiante.codigo=TGrupo.codigo

AND TRendimiento.tipo=0

AND TRendimiento.codPeriodo=pcodPeriodo

GROUP BY TPersona.cedula

ORDER BY AVG(TRendimiento.nota) DESC;

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

DROP TABLE IF EXISTS TMejorPromedio;

CREATE TABLE TMejorPromedio(

orden int,

cedula VARCHAR(20),

nombre VARCHAR(20),

primerApellido VARCHAR(20),

segundoApellido VARCHAR(20),

promedio decimal,

codGrupo int,

numNivel int,

seccion VARCHAR(5),

PRIMARY KEY(cedula)

);

OPEN tabla;

REPEAT

FETCH tabla INTO mcedula, mnombre, mprimerApellido, msegundoApellido, mcodGrup o, mpromedio, mnumNivel, mseccion;

IF NOT done THEN

SET morden = morden + 1;

INSERT INTO TMejorPromedio (orden, cedula, nombre, primerApellido, segundo Apellido, promedio, codGrupo, numNivel, seccion)

VALUES(morden, mcedula, mnombre, mprimerApellido, msegundoApellido, mprome dio, mcodGrupo, mnumNivel, mseccion);

END IF;

UNTIL done END REPEAT;

CLOSE tabla;

SELECT * FROM TMejorPromedio ORDER BY orden;

END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS `SPFragmentacion` $$ CREATE PROCEDURE `SPFragmentacion`(in pestado int, in pcodCursoLectivo int,in pg rupo int,in pnivel int,in pnota int, in pperiodo int) BEGIN

DECLARE mValor int DEFAULT 0;

if pgrupo <> 0 then

Select count(total.cedula) from(

Select con1.*,count(distinct con1.parentesco)as contar

from (SELECT TPersona.cedula,tencargado.parentesco

FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po,trendimiento

WHERE TESTUDIANTE.ESTADO = pestado

AND TGrupoEstudiante.cedula=TEstudiante.cedula

and tgrupo.codcursolectivo= pcodCursoLectivo

and tgrupo.codigo = pgrupo

AND TPersona.cedula=TEstudiante.cedula

and testudianteencargado.cedestudiante = TEstudiante.cedula

and testudianteencargado.cedencargado = tencargado.cedula

and testudiante.cedula = trendimiento.cedula

and trendimiento.codperiodo = pperiodo

and trendimiento.nota < pnota

and trendimiento.Tipo = 0

and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1

where con1.parentesco = 1 or con1.parentesco = 0

group by con1.cedula Having contar < 2) as Total;

end if;

if pnivel <> 0 then

Select count(total.cedula) from(

Select con1.*,count(distinct con1.parentesco)as contar

from (SELECT TPersona.cedula,tencargado.parentesco

FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po,trendimiento

WHERE TESTUDIANTE.ESTADO = pestado

AND TGrupoEstudiante.cedula=TEstudiante.cedula

and tgrupo.codcursolectivo= pcodCursoLectivo

and tgrupo.numnivel = pnivel

AND TPersona.cedula=TEstudiante.cedula

and testudianteencargado.cedestudiante = TEstudiante.cedula

and testudianteencargado.cedencargado = tencargado.cedula and testudiante.cedula = trendimiento.cedula and trendimiento.codperiodo = pperiodo and trendimiento.nota < pnota and trendimiento.Tipo = 0 and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1

where con1.parentesco = 1 or con1.parentesco = 0

group by con1.cedula Having contar < 2) as Total;

end if;

if pnivel = 0 and pgrupo = 0 then

Select count(total.cedula) from(

Select con1.*,count(distinct con1.parentesco)as contar

from (SELECT TPersona.cedula,tencargado.parentesco

FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po,trendimiento

WHERE TESTUDIANTE.ESTADO = pestado

AND TGrupoEstudiante.cedula=TEstudiante.cedula

and tgrupo.codcursolectivo= pcodCursoLectivo

AND TPersona.cedula=TEstudiante.cedula

and testudianteencargado.cedestudiante = TEstudiante.cedula

and testudianteencargado.cedencargado = tencargado.cedula and testudiante.cedula = trendimiento.cedula and trendimiento.codperiodo = pperiodo and trendimiento.nota < pnota and trendimiento.Tipo = 0 and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1

where con1.parentesco = 1 or con1.parentesco = 0

group by con1.cedula Having contar < 2) as Total;

end if;

END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS `SPGruposDocente` $$ CREATE PROCEDURE `SPGruposDocente`(in pcedula VARCHAR(20), in pcodCurso INT, in pnumNivel INT) BEGIN

IF pcedula<>'' THEN

(SELECT g.codigo, g.numero, g.cedula, g.cupo, g.codcursolectivo,

g.numNivel, g.estado FROM tasignatura a, tcargaacademica c, Tgrupo g

WHERE a.codigo=c.codasignatura AND g.codigo=c.codgrupo

AND g.codCursoLectivo=pcodCurso AND g.numNivel=pnumNivel

AND c.cedula=pcedula

GROUP BY g.codigo)

ELSE

SELECT g.codigo, g.numero, g.cedula, g.cupo, g.codcursolectivo,

g.numNivel, g.estado FROM TGrupo g

WHERE g.codCursoLectivo=pcodCurso AND g.numNivel=pnumNivel

GROUP BY g.codigo ORDER BY g.numNivel, g.numero;

END IF;

END $$

DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS `SPMayoresMenores` $$ CREATE PROCEDURE `SPMayoresMenores`(in pcodPeriodo int, in pcodCursoLectivo int

, in pcodNivel int,in pcodestado int, in pgrupo int, in ptipo int) BEGIN

DECLARE mValor int DEFAULT 0;

IF pgrupo <> 0 then

SELECT Round(Count(Distinct(TRendimiento.cedula)))

FROM TGrupo,TGrupoEstudiante,TEstudiante,TRendimiento

WHERE TGrupo.codCursoLectivo=pcodCursoLectivo

AND TRendimiento.codPeriodo=pcodPeriodo

AND TRendimiento.nota>=65

and tgrupo.codigo = pgrupo

AND TGrupo.numNivel=pcodNivel

AND TEstudiante.estado=pcodestado AND TRendimiento.tipo = ptipo

AND TGrupoEstudiante.codigo=TGrupo.codigo

AND TGrupoEstudiante.cedula=TEstudiante.cedula

AND TRendimiento.cedula=TEstudiante.cedula

and trendimiento.cedula not in(SELECT TRendimiento.cedula

FROM TGrupo,TGrupoEstudiante,TEstudiante,TRendimiento

WHERE TGrupo.codCursoLectivo=pcodCursoLectivo

AND TRendimiento.codPeriodo=pcodPeriodo

AND TRendimiento.nota<65

and tgrupo.codigo = pgrupo

AND TGrupo.numNivel=pcodNivel

AND TEstudiante.estado=pcodestado AND TRendimiento.tipo = ptipo

AND TGrupoEstudiante.codigo=TGrupo.codigo

AND TGrupoEstudiante.cedula=TEstudiante.cedula

AND TRendimiento.cedula=TEstudiante.cedula);

END IF;

IF pgrupo = 0 then

SELECT Round(Count(Distinct(TRendimiento.cedula)))

FROM TGrupo,TGrupoEstudiante,TEstudiante,TRendimiento

WHERE TGrupo.codCursoLectivo=pcodCursoLectivo

AND TRendimiento.codPeriodo=pcodPeriodo

AND TRendimiento.nota>=65

AND TGrupo.numNivel=pcodNivel

AND TEstudiante.estado=pcodestado AND TRendimiento.tipo = ptipo

AND TGrupoEstudiante.codigo=TGrupo.codigo

AND TGrupoEstudiante.cedula=TEstudiante.cedula

AND TRendimiento.cedula=TEstudiante.cedula

and trendimiento.cedula not in(SELECT TRendimiento.cedula

FROM TGrupo,TGrupoEstudiante,TEstudiante,TRendimiento

WHERE TGrupo.codCursoLectivo=pcodCursoLectivo

AND TRendimiento.codPeriodo=pcodPeriodo

AND TRendimiento.nota<65

AND TGrupo.numNivel=pcodNivel

AND TEstudiante.estado=pcodestado AND TRendimiento.tipo = ptipo

AND TGrupoEstudiante.codigo=TGrupo.codigo

AND TGrupoEstudiante.cedula=TEstudiante.cedula

AND TRendimiento.cedula=TEstudiante.cedula);

END IF;

END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS `SPEstudiantesGrupoAsig` $$ CREATE PROCEDURE `SPEstudiantesGrupoAsig`(in pcodGrupo INT, in pcodAsignatura IN T, in pactivos TINYINT) BEGIN IF pactivos=1 THEN SELECT p.*,e.* FROM TPersona p, TEstudiante e, TGrupoEstudiante ge JOIN TGrupo g ON g.codigo=ge.codigo JOIN TCargaAcademica c ON c.codGrupo=g.codigo WHERE p.cedula IN(SELECT cedula FROM TGrupoEstudiante WHERE codigo=pcodGrupo ) AND ge.codigo=pcodGrupo AND e.estado IN(2,3) AND c.codAsignatura=pcodAsignatura AND p.cedula=e.cedula AND e.cedula=ge.cedula group by p.cedula order by p.pr imerapellido; ELSE SELECT p.*,e.* FROM TPersona p, TEstudiante e, TGrupoEstudiante ge JOIN TGrupo g ON g.codigo=ge.codigo JOIN TCargaAcademica c ON c.codGrupo=g.codigo WHERE p.cedula IN(SELECT cedula FROM TGrupoEstudiante WHERE codigo=pcodGrupo ) AND ge.codigo=pcodGrupo AND p.cedula=e.cedula AND e.cedula=ge.cedula AND c.codAsignatura=pcodAsignat ura order by p.primerapellido; END IF; END $$ DELIMITER ; /*02-DIC-2011 SPAgregarPermiso Formulta 14*/ /*se agrega el permiso*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPAgregarPermiso $$ CREATE PROCEDURE SPAgregarPermiso(in pnombre varchar(35), in pdescripcion varcha r(100), in pfuncion varchar(20)) BEGIN DECLARE codPermiso INT;

DECLARE codFuncion INT; /*SE SACA EL CDIGO DE LA FUNCIN DEL SISTEMA */ SELECT codigo INTO codFuncion FROM TFuncion WHERE nombre=pfuncion AND tipo= 0; /*SE INSERTA LA FUNCIN */ INSERT INTO TPermiso (nombre,descripcion) VALUES (pnombre,pdescripcion); /*SE SACA EL LTIMO ID GENERADO */ SELECT LAST_INSERT_ID() INTO codPermiso; /*SE LIGAN LA FUNCIN Y EL PERMISO */ INSERT INTO TFuncionPermiso (codFuncion, codPermiso, asignado) VALUES (codF uncion,codPermiso,1); /*SE EXTRAE EL CDIGO DE LA FUNCIN ASOCIADA AL ADMINISTRADOR */ SELECT TFuncion.codigo INTO codFuncion FROM TFuncion,TPerfilFuncion WHERE TFuncion.nombre=pfuncion AND TFuncion.tipo=1 AND TFuncion.codigo=TPerfilFuncion.codFuncion AND TPerfilFuncion.codPerfil=8; /*SE LIGAN LA FUNCIN Y EL PERMISO */ INSERT INTO TFuncionPermiso (codFuncion, codPermiso, asignado) VALUES (codF uncion,codPermiso,1); END $$ DELIMITER ; CALL SPAgregarPermiso('GenerarFormula14', 'Generar la frmula 14', 'Notas'); /*12-DIC-2011 SPEstudiantesGrupoAsig*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPEstudiantesGrupoAsig $$ CREATE PROCEDURE SPEstudiantesGrupoAsig(in pcodGrupo INT, in pcodAsignatura INT, in pactivos TINYINT) BEGIN IF pactivos=1 THEN SELECT p.*,e.* FROM TPersona p, TEstudiante e, TGrupoEstudiante ge JOIN TGrupo g ON g.codigo=ge.codigo JOIN TCargaAcademica c ON c.codGrupo=g.codigo WHERE p.cedula IN(SELECT cedula FROM TGrupoEstudiante WHERE codigo=pcodGrupo ) AND ge.codigo=pcodGrupo AND e.estado IN(2,3) AND c.codAsignatura=pcodAsignatura AND p.cedula=e.cedula AND e.cedula=ge.cedula ORDER BY p.primerapellido, p.segundoapellido, p.nombre; ELSE SELECT p.*,e.* FROM TPersona p, TEstudiante e, TGrupoEstudiante ge JOIN TGrupo g ON g.codigo=ge.codigo JOIN TCargaAcademica c ON c.codGrupo=g.codigo WHERE p.cedula IN(SELECT cedula FROM TGrupoEstudiante WHERE codigo=pcodGrupo ) AND ge.codigo=pcodGrupo AND p.cedula=e.cedula AND e.cedula=ge.cedula AND c.codAsignatura=pcodAsignat ura ORDER BY p.primerapellido, p.segundoapellido, p.nombre; END IF; END $$

DELIMITER ; /*25-ENE-2012 Cambio requisitos preescolar*/ update tnivel set numnivelrequisito=null where numero=30; update tnivel set numnivelrequisito=31 where numero=1; /*15-FEB-2012 Parmetro puesto del supervisor*/ INSERT INTO tparametro (nombre, descripcion, valor, tipo) SELECT 'puestoSupervisor', 'Puesto del supervisor de circuito', 'Supervisor de Centros Educativos',0 FROM tparametro WHERE nombre='puestoSupervisor' HAVING COUNT(*) = 0; /**************************VERSIN 20120726******************************/ /*28-OCT-2011 Agregar campo puesto a la calificacin*/ alter table tcalificaciondesempenno add column puesto VARCHAR(100) null; update tcalificaciondesempenno c, texpedientefunc e set c.puesto=e.puestoespecia lidad where c.codexpediente=e.codigo; /*16-MAR-2012 TActaEstudiante*/ drop table if exists tactaestudiante; create table TActaEstudiante( codigo int not null auto_increment, nota1Convocatoria decimal not null default -2, nota2Convocatoria decimal not null default -2, condicion int not null default 0, cedEstudiante VARCHAR(20), codActa int not null, codAsignatura int not null, codGrupo int not null, PRIMARY KEY(codigo), CONSTRAINT FK_TActaEstudianteEstudiante FOREIGN KEY (cedEstudiante) REFERENCES TEstudiante(cedula) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FK_TActaEstudianteActa FOREIGN KEY (codActa) REFERENCES TActa(codig o) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FK_TActaEstudianteAsignatura FOREIGN KEY (codAsignatura) REFERENCES TAsignatura(codigo) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FK_TActaEstudianteGrupo FOREIGN KEY (codGrupo) REFERENCES TGrupo(co digo) ON DELETE CASCADE ON UPDATE CASCADE )ENGINE=InnoDB DEFAULT CHARSET=utf8; /*22-MAR-2012 SPDocenteDisponible*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPDocenteDisponible $$ CREATE PROCEDURE SPDocenteDisponible(in pcodCurso int, in pnumLapso int, in pcod Asignatura int) BEGIN IF pnumlapso=0 THEN SELECT p.*, f.*, d.* FROM TPersona p JOIN TFuncionario f ON f.cedula=p.cedula JOIN TDocente d ON d.cedula=p.cedula JOIN TAsignaturaImpartida a ON a.cedula=p.cedula WHERE a.codAsignatura=pcodAsignatura; ELSE

SELECT p.*, f.*, d.* FROM TPersona p JOIN TFuncionario f ON f.cedula=p.cedula JOIN TDocente d ON d.cedula=p.cedula JOIN TDisponibilidad ds ON ds.cedula=p.cedula JOIN TAsignaturaImpartida a ON a.cedula=p.cedula WHERE p.cedula NOT IN(SELECT c.cedula FROM TCargaAcademica c JOIN TGrupo g ON g.codigo=c.codGrupo JOIN TLeccion l ON l.codCarga=c.codigo WHERE g.codCursoLectivo=pcodCurso AND l.numero=pnumLapso AND NOT ISNULL(c.cedu la)) AND a.codAsignatura=pcodAsignatura AND ds.numLapso=pnumLapso GROUP BY p.cedula; END IF;

END $$ DELIMITER ; /*21-MAR-2012 Motivos traslado*/ drop table if exists tmotivotraslado; drop table if exists tmotivo; create table tmotivo( codigo int not null, nombre varchar(100) not null, primary key(codigo) ); create table tmotivotraslado( codMotivo int not null, codTraslado int not null, constraint fk_tmotivotraslado_tmotivo foreign key (codMotivo) references tmoti vo(codigo) on update cascade on delete cascade, constraint fk_tmotivotraslado_ttraslado foreign key (codTraslado) references t traslado(codigo) on update cascade on delete cascade ); insert into tmotivo (codigo, nombre) values (1, 'Situacin Econmica'), (2, 'Enfermedad'), (3, 'Trabajo'), (4, 'Desinters'), (5, 'Problemas Familiares'), (6, 'Fallecimiento'); /*19-ABR-2012 Asignatura modificable*/ ALTER TABLE TAsignatura ADD COLUMN modificable tinyint default 1; ALTER TABLE TAsignatura ADD COLUMN esTaller tinyint default 1; update tasignatura set modificable=0 where codigo in(1,2,3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,22,26); create table ttaller(codtecnologia int not null, primary key(codtecnologia)); insert into ttaller (codtecnologia) select codtecnologia from tasignatura where

not isnull(codtecnologia) group by codtecnologia; update tasignatura set estaller=1 where codigo in(select codtecnologia from ttal ler); update tasignatura set estaller=0 where codigo not in(select codtecnologia from ttaller); drop table ttaller; /*11-MAY-2012 SPAgregarPermiso EliminarHojaDatos*/ /*11-MAY-2012 SPAgregarPermiso ReporteGraficoPrematricula*/ /*SIN FECHA - Permisos Avancemos*/ /*se agrega la funcin*/ DELIMITER $$ /*se agrega el permiso*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPAgregarPermiso $$ CREATE PROCEDURE SPAgregarPermiso(in pnombre varchar(35), in pdescripcion varcha r(100), in pfuncion varchar(20)) BEGIN DECLARE codPermiso INT; DECLARE codFuncion INT; DECLARE cant INT; SELECT COUNT(codigo) INTO cant FROM TPermiso WHERE nombre=pnombre; IF cant=0 THEN /*SE SACA EL CDIGO DE LA FUNCIN DEL SISTEMA */ SELECT codigo INTO codFuncion FROM TFuncion WHERE nombre=pfuncion AND tipo= 0 GROUP BY nombre; /*SE INSERTA LA FUNCIN */ INSERT INTO TPermiso (nombre,descripcion) VALUES (pnombre,pdescripcion); /*SE SACA EL LTIMO ID GENERADO */ SELECT LAST_INSERT_ID() INTO codPermiso; /*SE LIGAN LA FUNCIN Y EL PERMISO */ INSERT INTO TFuncionPermiso (codFuncion, codPermiso, asignado) VALUES (codF uncion,codPermiso,1); /*SE EXTRAE EL CDIGO DE LA FUNCIN ASOCIADA AL ADMINISTRADOR */ SELECT TFuncion.codigo INTO codFuncion FROM TFuncion,TPerfilFuncion WHERE TFuncion.nombre=pfuncion AND TFuncion.tipo=1 AND TFuncion.codigo=TPerfilFuncion.codFuncion AND TPerfilFuncion.codPerfil=8; /*SE LIGAN LA FUNCIN Y EL PERMISO */ INSERT INTO TFuncionPermiso (codFuncion, codPermiso, asignado) VALUES (codF uncion,codPermiso,1); END IF; END $$ DELIMITER ; CALL SPAgregarPermiso('EliminarHojaDatos', 'Eliminar hoja de datos', 'Expediente s');

CALL SPAgregarPermiso('ReporteGraficoPrematricula', 'Reporte grfico de prematrcula ', 'Reportes'); CALL SPAgregarPermiso('ReporteGraficoBecas', 'Reporte grfico de becas', 'Reportes '); DROP PROCEDURE SPAgregarPermiso; /*04-MAY-2012 SPConsultarLecciones*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPConsultarLecciones $$ CREATE PROCEDURE SPConsultarLecciones (IN pcodCurso INT, IN pcedula VARCHAR(20), IN pnumJornada int) BEGIN SELECT la.numero, la.numJornada, la.dia, la.codHora, le.codigo, le.codHorario, le.codCarga, h.inicio FROM TLapso la JOIN TLeccion le ON la.numero=le.numero JOIN TCargaAcademica c ON le.codCarga=c.codigo JOIN TGrupo g ON c.codGrupo=g.codigo JOIN THora h ON la.codHora=h.codigo WHERE g.codCursoLectivo=pcodCurso AND c.cedula=pcedula AND la.numJornada=pnumJ ornada GROUP BY la.numero ORDER BY h.inicio,la.dia; END $$ DELIMITER ; /*04-MAY-2012 SPAusentismoBecasSexo*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPAusentismoBecasSexo $$ CREATE PROCEDURE `SPAusentismoBecasSexo`(in pestado int, in pcodCursoLectivo int , in pnivel int, in pgrupo int, in ptipoLeccion int, in pcantidad int, in pcodBeca int, in pcodPeriodo int, in p sexo int) BEGIN DECLARE mValor int DEFAULT 0; IF pnivel <> 0 THEN if pestado <> -1 then SELECT Count(consulta.cedula) FROM( SELECT e.cedula,sum(a.ausenciasInjustificadas) as cant FROM TGrupo g JOIN TGrupoEstudiante ge ON ge.codigo=g.codigo JOIN TEstudiante e ON e.cedula=ge.cedula JOIN TAsistencia a ON a.cedula=e.cedula JOIN TEstudianteBeca eb ON eb.cedestudiante=e.cedula AND eb.codCursoLectivo=g.co dCursoLectivo JOIN TPersona p ON p.cedula=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo AND a.codPeriodo=pcodPeriodo AND a.ausenciasInjustificadas>pcantidad AND eb.codBeca=pcodBeca and e.estado=pestado AND g.numNivel=pnivel AND p.sexo=psexo

group by e.cedula) AS Consulta; else SELECT Count(consulta.cedula) FROM( SELECT e.cedula,sum(a.ausenciasInjustificadas) as cant FROM TGrupo g JOIN TGrupoEstudiante ge ON ge.codigo=g.codigo JOIN TEstudiante e ON e.cedula=ge.cedula JOIN TAsistencia a ON a.cedula=e.cedula JOIN TEstudianteBeca eb ON eb.cedestudiante=e.cedula AND eb.codCursoLectivo=g.co dCursoLectivo JOIN TPersona p ON p.cedula=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo AND a.codPeriodo=pcodPeriodo AND a.ausenciasInjustificadas>pcantidad AND eb.codBeca=pcodBeca AND g.numNivel=pnivel AND p.sexo=psexo group by e.cedula) AS Consulta; END IF ; end if; IF pgrupo <> 0 THEN if pestado<>-1 then SELECT Count(consulta.cedula) FROM( SELECT e.cedula,sum(a.ausenciasInjustificadas) as cant FROM TGrupo g JOIN TGrupoEstudiante ge ON ge.codigo=g.codigo JOIN TEstudiante e ON e.cedula=ge.cedula JOIN TAsistencia a ON a.cedula=e.cedula JOIN TEstudianteBeca eb ON eb.cedestudiante=e.cedula AND eb.codCursoLectivo=g.co dCursoLectivo JOIN TPersona p ON p.cedula=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo AND a.codPeriodo=pcodPeriodo AND a.ausenciasInjustificadas>pcantidad AND eb.codBeca=pcodBeca and e.estado=pestado AND p.sexo=psexo AND g.codigo=pcodGrupo group by e.cedula) AS Consulta; else SELECT Count(consulta.cedula) FROM( SELECT e.cedula,sum(a.ausenciasInjustificadas)as cant FROM TGrupo g JOIN TGrupoEstudiante ge ON ge.codigo=g.codigo JOIN TEstudiante e ON e.cedula=ge.cedula JOIN TAsistencia a ON a.cedula=e.cedula JOIN TEstudianteBeca eb ON eb.cedestudiante=e.cedula AND eb.codCursoLectivo=g.co dCursoLectivo JOIN TPersona p ON p.cedula=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo AND a.codPeriodo=pcodPeriodo AND a.ausenciasInjustificadas>pcantidad AND eb.codBeca=pcodBeca and g.codigo=pcodgrupo AND p.sexo=psexo group by e.cedula) AS Consulta; end if; END IF ;

IF pnivel = 0 and pgrupo = 0 THEN if pestado<>-1 then SELECT Count(consulta.cedula) FROM( SELECT e.cedula,sum(a.ausenciasInjustificadas) as cant FROM TGrupo g JOIN TGrupoEstudiante ge ON ge.codigo=g.codigo JOIN TEstudiante e ON e.cedula=ge.cedula JOIN TAsistencia a ON a.cedula=e.cedula JOIN TEstudianteBeca eb ON eb.cedestudiante=e.cedula AND eb.codCursoLectivo=g.co dCursoLectivo JOIN TPersona p ON p.cedula=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo AND a.codPeriodo=pcodPeriodo AND a.ausenciasInjustificadas>pcantidad AND eb.codBeca=pcodBeca and e.estado=pestado AND p.sexo=psexo group by e.cedula) AS Consulta; else SELECT Count(consulta.cedula) FROM( SELECT e.cedula,sum(a.ausenciasInjustificadas) as cant FROM TGrupo g JOIN TGrupoEstudiante ge ON ge.codigo=g.codigo JOIN TEstudiante e ON e.cedula=ge.cedula JOIN TAsistencia a ON a.cedula=e.cedula JOIN TEstudianteBeca eb ON eb.cedestudiante=e.cedula AND eb.codCursoLectivo=g.co dCursoLectivo JOIN TPersona p ON p.cedula=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo AND a.codPeriodo=pcodPeriodo AND a.ausenciasInjustificadas>pcantidad AND eb.codBeca=pcodBeca AND p.sexo=psexo group by e.cedula) AS Consulta; end if; END IF ; END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS SPAusentismoBecas $$ CREATE PROCEDURE SPAusentismoBecas(in pestado int, in pcodCursoLectivo int, in p nivel int, in pgrupo int, in ptipoLeccion int, in pcantidad int, in pcodBeca int, in pcodPeriodo int) BEGIN DECLARE mValor int DEFAULT 0; IF pnivel <> 0 THEN if pestado <> -1 then SELECT Count(consulta.cedula) FROM( SELECT e.cedula,sum(a.ausenciasInjustificadas) as cant FROM TGrupo g JOIN TGrupoEstudiante ge ON ge.codigo=g.codigo JOIN TEstudiante e ON e.cedula=ge.cedula JOIN TAsistencia a ON ad.cedula=e.cedula JOIN TEstudianteBeca eb ON eb.cedestudiante=e.cedula AND eb.codCursoLectivo=g.co

dCursoLectivo JOIN TPersona p ON p.cedula=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo AND a.codPeriodo=pcodPeriodo AND a.ausenciasInjustificadas>pcantidad AND eb.codBeca=pcodBeca and e.estado=pestado AND g.numNivel=pnivel group by e.cedula) AS Consulta; else SELECT Count(consulta.cedula) FROM( SELECT e.cedula,sum(a.ausenciasInjustificadas) as cant FROM TGrupo g JOIN TGrupoEstudiante ge ON ge.codigo=g.codigo JOIN TEstudiante e ON e.cedula=ge.cedula JOIN TAsistencia a ON ad.cedula=e.cedula JOIN TEstudianteBeca eb ON eb.cedestudiante=e.cedula AND eb.codCursoLectivo=g.co dCursoLectivo JOIN TPersona p ON p.cedula=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo AND a.codPeriodo=pcodPeriodo AND a.ausenciasInjustificadas>pcantidad AND eb.codBeca=pcodBeca AND g.numNivel=pnivel group by e.cedula) AS Consulta; END IF ; end if; IF pgrupo <> 0 THEN if pestado<>-1 then SELECT Count(consulta.cedula) FROM( SELECT e.cedula,sum(a.ausenciasInjustificadas) as cant FROM TGrupo g JOIN TGrupoEstudiante ge ON ge.codigo=g.codigo JOIN TEstudiante e ON e.cedula=ge.cedula JOIN TAsistencia a ON ad.cedula=e.cedula JOIN TEstudianteBeca eb ON eb.cedestudiante=e.cedula AND eb.codCursoLectivo=g.co dCursoLectivo JOIN TPersona p ON p.cedula=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo AND a.codPeriodo=pcodPeriodo AND a.ausenciasInjustificadas>pcantidad AND eb.codBeca=pcodBeca and e.estado=pestado AND g.codigo=pcodGrupo group by e.cedula) AS Consulta; else SELECT Count(consulta.cedula) FROM( SELECT e.cedula,sum(a.ausenciasInjustificadas) as cant FROM TGrupo g JOIN TGrupoEstudiante ge ON ge.codigo=g.codigo JOIN TEstudiante e ON e.cedula=ge.cedula JOIN TAsistencia a ON ad.cedula=e.cedula JOIN TEstudianteBeca eb ON eb.cedestudiante=e.cedula AND eb.codCursoLectivo=g.co dCursoLectivo JOIN TPersona p ON p.cedula=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo AND a.codPeriodo=pcodPeriodo AND a.ausenciasInjustificadas>pcantidad AND eb.codBeca=pcodBeca

and g.codigo=pcodgrupo group by e.cedula) AS Consulta; end if; END IF ; IF pnivel = 0 and pgrupo = 0 THEN if pestado<>-1 then SELECT Count(consulta.cedula) FROM( SELECT e.cedula,sum(a.ausenciasInjustificadas) as cant FROM TGrupo g JOIN TGrupoEstudiante ge ON ge.codigo=g.codigo JOIN TEstudiante e ON e.cedula=ge.cedula JOIN TAsistencia a ON a.cedula=e.cedula JOIN TEstudianteBeca eb ON eb.cedestudiante=e.cedula AND eb.codCursoLectivo=g.co dCursoLectivo JOIN TPersona p ON p.cedula=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo AND a.codPeriodo=pcodPeriodo AND a.ausenciasInjustificadas>pcantidad AND eb.codBeca=pcodBeca and e.estado=pestado group by e.cedula) AS Consulta; else SELECT Count(consulta.cedula) FROM( SELECT e.cedula,sum(a.ausenciasInjustificadas) as cant FROM TGrupo g JOIN TGrupoEstudiante ge ON ge.codigo=g.codigo JOIN TEstudiante e ON e.cedula=ge.cedula JOIN TAsistencia a ON a.cedula=e.cedula JOIN TEstudianteBeca eb ON eb.cedestudiante=e.cedula AND eb.codCursoLectivo=g.co dCursoLectivo JOIN TPersona p ON p.cedula=e.cedula WHERE g.codCursoLectivo=pcodCursoLectivo AND a.codPeriodo=pcodPeriodo AND a.ausenciasInjustificadas>pcantidad AND eb.codBeca=pcodBeca group by e.cedula) AS Consulta; end if; END IF ; END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS SPFragmentacionBecas $$ CREATE PROCEDURE `SPFragmentacionBecas`(in pestado int, in pcodCursoLectivo int, in pnivel int, in pgrupo int, in pcodBeca int) BEGIN IF pnivel=0 AND pgrupo=0 THEN Select count(total.cedula) from( Select con1.*,count(distinct con1.parentesco)as contar from (SELECT TPersona.cedula,tencargado.parentesco FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po, tEstudianteBeca WHERE TESTUDIANTE.ESTADO = pestado AND TGrupoEstudiante.cedula=TEstudiante.cedula

and tgrupo.codcursolectivo= pcodCursoLectivo AND TPersona.cedula=TEstudiante.cedula and testudianteencargado.cedestudiante = TEstudiante.cedula and testudianteencargado.cedencargado = tencargado.cedula AND TEstudianteBeca.cedestudiante=TEstudiante.cedula AND TEstudianteBeca.codCursoLectivo=TGrupo.codCursoLectivo and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1 where con1.parentesco in(1,0) group by con1.cedula Having contar < 2) as Total; END IF; IF pnivel<> 0 THEN Select count(total.cedula) from( Select con1.*,count(distinct con1.parentesco)as contar from (SELECT TPersona.cedula,tencargado.parentesco FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po, TEstudianteBeca WHERE TESTUDIANTE.ESTADO = pestado AND TGrupoEstudiante.cedula=TEstudiante.cedula and tgrupo.codcursolectivo= pcodCursoLectivo and tgrupo.numNivel=pnivel AND TPersona.cedula=TEstudiante.cedula and testudianteencargado.cedestudiante = TEstudiante.cedula and testudianteencargado.cedencargado = tencargado.cedula AND TEstudianteBeca.cedestudiante=TEstudiante.cedula AND TEstudianteBeca.codCursoLectivo=TGrupo.codCursoLectivo and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1 where con1.parentesco in (1,0) group by con1.cedula Having contar < 2) as Total; END IF; IF pgrupo <> 0 THEN Select count(total.cedula) from( Select con1.*,count(distinct con1.parentesco)as contar from (SELECT TPersona.cedula,tencargado.parentesco FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po,TEstudianteBeca WHERE TESTUDIANTE.ESTADO = pestado AND TGrupoEstudiante.cedula=TEstudiante.cedula and tgrupo.codigo= pgrupo AND TPersona.cedula=TEstudiante.cedula and testudianteencargado.cedestudiante = TEstudiante.cedula and testudianteencargado.cedencargado = tencargado.cedula AND TEstudianteBeca.cedestudiante=TEstudiante.cedula AND TEstudianteBeca.codCursoLectivo=TGrupo.codCursoLectivo and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1 where con1.parentesco in(1,0) group by con1.cedula Having contar < 2) as Total; END IF; END $$ DELIMITER ; /*04-MAY-2012 SPFragmentacionBecasSexo*/ DELIMITER $$

DROP PROCEDURE IF EXISTS SPFragmentacionBecasSexo $$ CREATE PROCEDURE SPFragmentacionBecasSexo(in pestado int, in pcodCursoLectivo in t, in pnivel int, in pgrupo int, in pcodBeca int, in psexo int) BEGIN DECLARE mValor int DEFAULT 0; IF pnivel=0 AND pgrupo=0 THEN if pestado <> -1 then Select count(distinct total.cedula) from( Select con1.*,count(distinct con1.parentesco)as contar from (SELECT TPersona.cedula,tencargado.parentesco FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po, tEstudianteBeca WHERE TESTUDIANTE.ESTADO = pestado AND TGrupoEstudiante.cedula=TEstudiante.cedula and tgrupo.codcursolectivo= pcodCursoLectivo AND TPersona.cedula=TEstudiante.cedula and testudianteencargado.cedestudiante = TEstudiante.cedula and testudianteencargado.cedencargado = tencargado.cedula AND TEstudianteBeca.cedestudiante=TEstudiante.cedula AND TEstudianteBeca.codCursoLectivo=TGrupo.codCursoLectivo AND TPersona.sexo=psexo and testudiantebeca.codbeca=pcodbeca and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1 where con1.parentesco in(1,0) group by con1.cedula Having contar < 2) as Total; else Select count(distinct total.cedula) from( Select con1.*,count(distinct con1.parentesco)as contar from (SELECT TPersona.cedula,tencargado.parentesco FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po, tEstudianteBeca where TGrupoEstudiante.cedula=TEstudiante.cedula and tgrupo.codcursolectivo= pcodCursoLectivo AND TPersona.cedula=TEstudiante.cedula and testudianteencargado.cedestudiante = TEstudiante.cedula and testudianteencargado.cedencargado = tencargado.cedula AND TEstudianteBeca.cedestudiante=TEstudiante.cedula AND TEstudianteBeca.codCursoLectivo=TGrupo.codCursoLectivo AND TPersona.sexo=psexo and testudiantebeca.codbeca=pcodbeca and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1 where con1.parentesco in(1,0) group by con1.cedula Having contar < 2) as Total; end if; END IF; IF pnivel<> 0 THEN if pestado<>-2 then Select count(distinct total.cedula) from( Select con1.*,count(distinct con1.parentesco)as contar

from (SELECT TPersona.cedula,tencargado.parentesco FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po, TEstudianteBeca WHERE TESTUDIANTE.ESTADO = pestado AND TGrupoEstudiante.cedula=TEstudiante.cedula and tgrupo.codcursolectivo= pcodCursoLectivo and tgrupo.numNivel=pnivel AND TPersona.cedula=TEstudiante.cedula and testudianteencargado.cedestudiante = TEstudiante.cedula and testudianteencargado.cedencargado = tencargado.cedula AND TEstudianteBeca.cedestudiante=TEstudiante.cedula AND TEstudianteBeca.codCursoLectivo=TGrupo.codCursoLectivo AND TPersona.sexo=psexo and testudiantebeca.codbeca=pcodbeca and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1 where con1.parentesco in (1,0) group by con1.cedula Having contar < 2) as Total; else Select count(distinct total.cedula) from( Select con1.*,count(distinct con1.parentesco)as contar from (SELECT TPersona.cedula,tencargado.parentesco FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po, TEstudianteBeca where TGrupoEstudiante.cedula=TEstudiante.cedula and tgrupo.codcursolectivo= pcodCursoLectivo and tgrupo.numNivel=pnivel AND TPersona.cedula=TEstudiante.cedula and testudianteencargado.cedestudiante = TEstudiante.cedula and testudianteencargado.cedencargado = tencargado.cedula AND TEstudianteBeca.cedestudiante=TEstudiante.cedula AND TEstudianteBeca.codCursoLectivo=TGrupo.codCursoLectivo AND TPersona.sexo=psexo and testudiantebeca.codbeca=pcodbeca and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1 where con1.parentesco in (1,0) group by con1.cedula Having contar < 2) as Total; end if; END IF; IF pgrupo <> 0 THEN if pestado<>-1 then Select count(distinct total.cedula) from( Select con1.*,count(distinct con1.parentesco)as contar from (SELECT TPersona.cedula,tencargado.parentesco FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po,TEstudianteBeca WHERE TESTUDIANTE.ESTADO = pestado AND TGrupoEstudiante.cedula=TEstudiante.cedula and tgrupo.codigo= pgrupo AND TPersona.cedula=TEstudiante.cedula and testudianteencargado.cedestudiante = TEstudiante.cedula and testudianteencargado.cedencargado = tencargado.cedula AND TEstudianteBeca.cedestudiante=TEstudiante.cedula AND TEstudianteBeca.codCursoLectivo=TGrupo.codCursoLectivo AND TPersona.sexo=psexo and testudiantebeca.codbeca=pcodbeca and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo.

codigo) as Con1 where con1.parentesco in(1,0) group by con1.cedula Having contar < 2) as Total; else Select count(distinct total.cedula) from( Select con1.*,count(distinct con1.parentesco)as contar from (SELECT TPersona.cedula,tencargado.parentesco FROM TGrupoEstudiante,TEstudiante,TPersona,testudianteencargado,tencargado,tgru po,TEstudianteBeca where TGrupoEstudiante.cedula=TEstudiante.cedula and tgrupo.codigo= pgrupo AND TPersona.cedula=TEstudiante.cedula and testudianteencargado.cedestudiante = TEstudiante.cedula and testudianteencargado.cedencargado = tencargado.cedula AND TEstudianteBeca.cedestudiante=TEstudiante.cedula AND TEstudianteBeca.codCursoLectivo=TGrupo.codCursoLectivo AND TPersona.sexo=psexo and testudiantebeca.codbeca=pcodbeca and tencargado.viveconestudiante = 1 and tgrupoestudiante.codigo = tgrupo. codigo) as Con1 where con1.parentesco in(1,0) group by con1.cedula Having contar < 2) as Total; end if; END IF;

END $$ DELIMITER ; /*10-MAY-2012 SPAvanceAdecuaciones*/ DELIMITER $$ DROP PROCEDURE IF EXISTS `SPAvanceAdecuaciones` $$ CREATE PROCEDURE `SPAvanceAdecuaciones`(IN pcodCursoLectivo INT) BEGIN SELECT ROUND(COUNT(DISTINCT adec.estudiante)/COUNT(DISTINCT mat.estudiante)*100, 2) FROM ( SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo AND g.codCursoLectivo=pcodCursoLectivo AND e.adecuacion in(1,2,3)) as adec, (SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo JOIN TEstudianteEncargado ee on ee.cedEstudiante=e.cedula AND g.codCursoLectivo=pcodCursoLectivo) as mat; END $$ DELIMITER ; /*10-MAY-2012 TOopia confirmada*/ alter table tcopia add column confirmado tinyint not null default 0;

/*10-MAY-2012 SPAvanceNotas*/ DELIMITER $$ DROP PROCEDURE IF EXISTS `SPAvanceNotas` $$ CREATE PROCEDURE `SPAvanceNotas`(IN pcodCursoLectivo INT) BEGIN SELECT ROUND(COUNT(DISTINCT notas.estudiante)/COUNT(DISTINCT mat.estudiante)*100 ,2) FROM ( SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo JOIN TRendimiento r ON r.cedula=e.cedula JOIN TPeriodo p ON p.codigo=r.codPeriodo and p.codCursoLectivo=g.codCursoLectivo AND g.codCursoLectivo=pcodCursoLectivo AND r.tipo=0 GROUP BY e.cedula) as notas, (SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo AND g.codCursoLectivo=pcodCursoLectivo) as mat; END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceMatricula $$ CREATE PROCEDURE SPAvanceMatricula(IN pcodCursoLectivo INT) BEGIN DECLARE cantNiveles INT; SELECT COUNT(numero) into cantNiveles FROM TNivel; SELECT ROUND(SUM(niveles.ptj),2) AS AvanceMatricula FROM (SELECT (grupo.cantidad/matricula.cantidad) * (100/cantNiveles) as ptj, grupo. numnivel FROM (SELECT COUNT(DISTINCT ge.cedula) as cantidad, g.numnivel FROM TGrupoEstudiante ge JOIN TGrupo g ON g.codigo=ge.codigo WHERE g.codCursoLectivo=pcodCursoLectivo GROUP BY g.numNivel) as grupo, (SELECT COUNT(m.codigo) as cantidad, m.numNivel FROM TMatricula m WHERE m.codCursoLectivo=pcodCursoLectivo GROUP BY m.numNivel) as matricula WHERE grupo.numnivel=matricula.numnivel) AS niveles; END $$ DELIMITER ; /*14-MAY-2012 TCopia fecha*/ alter table tcopia add column fechaConfirmacion datetime; update tcopia set fechaConfirmacion=now();

/*23-MAY-2012 SPTrasladoExclusion*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPTrasladosExclusion $$ CREATE PROCEDURE SPTrasladosExclusion(IN pcodCurso INT, IN pnivel INT, IN psexo INT) BEGIN IF (pnivel=0 AND psexo=-1) THEN SELECT COUNT(DISTINCT TMatricula.codigo) FROM TMatricula, TEstudiante,TPersona,TNivel,TCursoLectivo,TPeriodo, TTraslado WHERE TMatricula.cedEstudiante=TEstudiante.cedula AND TEstudiante.cedula=TPersona.cedula AND TNivel.numero=TMatricula.numNivel AND TCursoLectivo.codigo=TMatricula.codCursoLectivo AND TCursoLectivo.codigo=TPeriodo.codCursoLectivo AND TEstudiante.cedula=TTraslado.cedula AND TTraslado.tipo=1 AND TCursoLectivo.codigo=pcodCurso AND YEAR(TTraslado.fecha)=TCursoLectivo.anno AND TEstudiante.estado=6; END IF; IF (pnivel<>0 AND psexo=-1) THEN SELECT COUNT(DISTINCT TMatricula.codigo) FROM TMatricula, TEstudiante,TPersona,TNivel,TCursoLectivo,TPeriodo, TTraslado WHERE TMatricula.cedEstudiante=TEstudiante.cedula AND TEstudiante.cedula=TPersona.cedula AND TNivel.numero=TMatricula.numNivel AND TCursoLectivo.codigo=TMatricula.codCursoLectivo AND TCursoLectivo.codigo=TPeriodo.codCursoLectivo AND TEstudiante.cedula=TTraslado.cedula AND TTraslado.tipo=1 AND TCursoLectivo.codigo=pcodCurso AND TNivel.numero=pnivel AND YEAR(TTraslado.fecha)=TCursoLectivo.anno AND TEstudiante.estado=6; END IF; IF (pnivel=0 AND psexo<>-1) THEN SELECT COUNT(DISTINCT TMatricula.codigo) FROM TMatricula, TEstudiante,TPersona,TNivel,TCursoLectivo,TPeriodo, TTraslado WHERE TMatricula.cedEstudiante=TEstudiante.cedula AND TEstudiante.cedula=TPersona.cedula AND TNivel.numero=TMatricula.numNivel AND TCursoLectivo.codigo=TMatricula.codCursoLectivo AND TCursoLectivo.codigo=TPeriodo.codCursoLectivo AND TEstudiante.cedula=TTraslado.cedula AND TTraslado.tipo=1 AND TCursoLectivo.codigo=pcodCurso AND TPersona.sexo=psexo AND YEAR(TTraslado.fecha)=TCursoLectivo.anno AND TEstudiante.estado=6; END IF; IF (pnivel<>0 AND psexo<>-1) THEN SELECT COUNT(DISTINCT TMatricula.codigo) FROM TMatricula, TEstudiante,TPersona,TNivel,TCursoLectivo,TPeriodo, TTraslado WHERE TMatricula.cedEstudiante=TEstudiante.cedula AND TEstudiante.cedula=TPersona.cedula

AND AND AND AND AND AND AND AND AND AND

TNivel.numero=TMatricula.numNivel TCursoLectivo.codigo=TMatricula.codCursoLectivo TCursoLectivo.codigo=TPeriodo.codCursoLectivo TEstudiante.cedula=TTraslado.cedula TTraslado.tipo=1 TCursoLectivo.codigo=pcodCurso TNivel.numero=pnivel TPersona.sexo=psexo YEAR(TTraslado.fecha)=TCursoLectivo.anno TEstudiante.estado=6;

END IF; END $$ DELIMITER ; /*23-MAY-2012 SPTrasladoInclusion*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPTrasladosInclusion $$ CREATE PROCEDURE SPTrasladosInclusion(IN pcodCurso INT, IN pnivel INT, IN psexo INT) BEGIN DECLARE manno INT; DECLARE mdiaMes VARCHAR(6); DECLARE mfechaLimite DATE; SELECT anno INTO manno FROM TCursoLectivo WHERE codigo=pcodCurso; SELECT valor INTO mdiaMes FROM TParametro WHERE nombre='fechaLimite'; SET mfechaLimite = CONCAT(manno,"-",mdiaMes); IF (pnivel=0 AND psexo=-1) THEN SELECT COUNT(DISTINCT TMatricula.codigo) FROM TMatricula, TEstudiante,TPersona,TNivel,TCursoLectivo,TPeriodo, TTraslado WHERE TMatricula.cedEstudiante=TEstudiante.cedula AND TEstudiante.cedula=TPersona.cedula AND TNivel.numero=TMatricula.numNivel AND TCursoLectivo.codigo=TMatricula.codCursoLectivo AND TCursoLectivo.codigo=TPeriodo.codCursoLectivo AND TEstudiante.cedula=TTraslado.cedula AND TTraslado.tipo=0 AND TEstudiante.estado=3 AND TCursoLectivo.codigo=pcodCurso AND TMatricula.fecha>mfechaLimite AND YEAR(TTraslado.fecha)=TCursoLectivo.anno; END IF; IF (pnivel<>0 AND psexo=-1) THEN SELECT COUNT(DISTINCT TMatricula.codigo) FROM TMatricula, TEstudiante,TPersona,TNivel,TCursoLectivo,TPeriodo, TTraslado WHERE TMatricula.cedEstudiante=TEstudiante.cedula AND TEstudiante.cedula=TPersona.cedula AND TNivel.numero=TMatricula.numNivel AND TCursoLectivo.codigo=TMatricula.codCursoLectivo AND TCursoLectivo.codigo=TPeriodo.codCursoLectivo AND TEstudiante.cedula=TTraslado.cedula AND TTraslado.tipo=0 AND TEstudiante.estado=3 AND TCursoLectivo.codigo=pcodCurso AND TMatricula.fecha>mfechaLimite AND TNivel.numero=pnivel

AND YEAR(TTraslado.fecha)=TCursoLectivo.anno; END IF; IF (pnivel=0 AND psexo<>-1) THEN SELECT COUNT(DISTINCT TMatricula.codigo) FROM TMatricula, TEstudiante,TPersona,TNivel,TCursoLectivo,TPeriodo, TTraslado WHERE TMatricula.cedEstudiante=TEstudiante.cedula AND TEstudiante.cedula=TPersona.cedula AND TNivel.numero=TMatricula.numNivel AND TCursoLectivo.codigo=TMatricula.codCursoLectivo AND TCursoLectivo.codigo=TPeriodo.codCursoLectivo AND TEstudiante.cedula=TTraslado.cedula AND TTraslado.tipo=0 AND TEstudiante.estado=3 AND TCursoLectivo.codigo=pcodCurso AND TMatricula.fecha>mfechaLimite AND TPersona.sexo=psexo AND YEAR(TTraslado.fecha)=TCursoLectivo.anno; END IF; IF (pnivel<>0 AND psexo<>-1) THEN SELECT COUNT(DISTINCT TMatricula.codigo) FROM TMatricula, TEstudiante,TPersona,TNivel,TCursoLectivo,TPeriodo, TTraslado WHERE TMatricula.cedEstudiante=TEstudiante.cedula AND TEstudiante.cedula=TPersona.cedula AND TNivel.numero=TMatricula.numNivel AND TCursoLectivo.codigo=TMatricula.codCursoLectivo AND TCursoLectivo.codigo=TPeriodo.codCursoLectivo AND TEstudiante.cedula=TTraslado.cedula AND TTraslado.tipo=0 AND TEstudiante.estado=3 AND TCursoLectivo.codigo=pcodCurso AND TMatricula.fecha>mfechaLimite AND TNivel.numero=pnivel AND TPersona.sexo=psexo AND YEAR(TTraslado.fecha)=TCursoLectivo.anno; END IF; END $$ DELIMITER ; /*23-MAY-2012 SPDesercionMatricula*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPDesercionMatricula $$ CREATE PROCEDURE SPDesercionMatricula(IN pcodCurso INT, IN pnivel INT, IN psexo INT) BEGIN IF (pnivel=0 AND psexo=-1) THEN SELECT COUNT(DISTINCT TMatricula.codigo) FROM TMatricula, TEstudiante,TPersona,TNivel,TCursoLectivo,TPeriodo, TTraslado WHERE TMatricula.cedEstudiante=TEstudiante.cedula AND TEstudiante.cedula=TPersona.cedula AND TNivel.numero=TMatricula.numNivel AND TCursoLectivo.codigo=TMatricula.codCursoLectivo AND TCursoLectivo.codigo=TPeriodo.codCursoLectivo AND TEstudiante.cedula=TTraslado.cedula AND TTraslado.tipo=2 AND TEstudiante.estado=5 AND TCursoLectivo.codigo=pcodCurso

AND YEAR(TTraslado.fecha)=TCursoLectivo.anno; END IF; IF (pnivel<>0 AND psexo=-1) THEN SELECT COUNT(DISTINCT TMatricula.codigo) FROM TMatricula, TEstudiante,TPersona,TNivel,TCursoLectivo,TPeriodo, TTraslado WHERE TMatricula.cedEstudiante=TEstudiante.cedula AND TEstudiante.cedula=TPersona.cedula AND TNivel.numero=TMatricula.numNivel AND TCursoLectivo.codigo=TMatricula.codCursoLectivo AND TCursoLectivo.codigo=TPeriodo.codCursoLectivo AND TEstudiante.cedula=TTraslado.cedula AND TTraslado.tipo=2 AND TEstudiante.estado=5 AND TCursoLectivo.codigo=pcodCurso AND TNivel.numero=pnivel AND YEAR(TTraslado.fecha)=TCursoLectivo.anno; END IF; IF (pnivel=0 AND psexo<>-1) THEN SELECT COUNT(DISTINCT TMatricula.codigo) FROM TMatricula, TEstudiante,TPersona,TNivel,TCursoLectivo,TPeriodo, TTraslado WHERE TMatricula.cedEstudiante=TEstudiante.cedula AND TEstudiante.cedula=TPersona.cedula AND TNivel.numero=TMatricula.numNivel AND TCursoLectivo.codigo=TMatricula.codCursoLectivo AND TCursoLectivo.codigo=TPeriodo.codCursoLectivo AND TEstudiante.cedula=TTraslado.cedula AND TTraslado.tipo=2 AND TEstudiante.estado=5 AND TCursoLectivo.codigo=pcodCurso AND TPersona.sexo=psexo AND YEAR(TTraslado.fecha)=TCursoLectivo.anno; END IF; IF (pnivel<>0 AND psexo<>-1) THEN SELECT COUNT(DISTINCT TMatricula.codigo) FROM TMatricula, TEstudiante,TPersona,TNivel,TCursoLectivo,TPeriodo, TTraslado WHERE TMatricula.cedEstudiante=TEstudiante.cedula AND TEstudiante.cedula=TPersona.cedula AND TNivel.numero=TMatricula.numNivel AND TCursoLectivo.codigo=TMatricula.codCursoLectivo AND TCursoLectivo.codigo=TPeriodo.codCursoLectivo AND TEstudiante.cedula=TTraslado.cedula AND TTraslado.tipo=2 AND TEstudiante.estado=5 AND TCursoLectivo.codigo=pcodCurso AND TNivel.numero=pnivel AND TPersona.sexo=psexo AND YEAR(TTraslado.fecha)=TCursoLectivo.anno; END IF; END $$ DELIMITER ; /*28-MAY-2012 SPAvanceGenerarRegistro*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceGenerarRegistro $$

CREATE PROCEDURE SPAvanceGenerarRegistro(IN pcodCursoLectivo INT) BEGIN SELECT ROUND((asignados.cantidad/total.cantidad*100),2) as AvanceGenerarRegist ro FROM (SELECT COUNT(c.codigo) as cantidad FROM TCargaAcademica c JOIN TGrupo g ON g.codigo=c.codGrupo JOIN TAsignatura a ON a.codigo=c.codAsignatura WHERE g.codCursoLectivo=pcodCursoLectivo AND ISNULL(c.cedula) AND a.cantidad=0) as asignados, (SELECT COUNT(c.codigo) as cantidad FROM TCargaAcademica c JOIN TGrupo g ON g.codigo=c.codGrupo JOIN TAsignatura a ON a.codigo=c.codAsignatura WHERE g.codCursoLectivo=pcodCursoLectivo AND a.cantidad=0) as total; END$$ DELIMITER ; /*28-MAY-2012 SPAvanceComedor*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceComedor $$ CREATE PROCEDURE SPAvanceComedor(IN pcodCursoLectivo INT) BEGIN SELECT ROUND(COUNT(DISTINCT comedor.estudiante)/COUNT(DISTINCT mat.estudiante) *100,2) FROM ( SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo JOIN TExpediente ex ON ex.cedula=e.cedula JOIN TExpedienteEst exEst ON exEst.codigo=ex.codigo JOIN THojaDatos h ON h.codExpedienteEst=exEst.codigo AND h.codCursoLectivo=g.c odCursoLectivo WHERE g.codCursoLectivo=pcodCursoLectivo AND h.asisteComedor=1) as comedor, (SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo WHERE g.codCursoLectivo=pcodCursoLectivo) as mat; END$$ DELIMITER ; /*28-MAY-2012 SPAvanceBecas*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceBecas $$ CREATE PROCEDURE SPAvanceBecas(IN pcodCursoLectivo INT) BEGIN

declare total int; declare becas int; SELECT total=COUNT(DISTINCT mat.estudiante) FROM (SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo WHERE g.codCursoLectivo=pcodCursoLectivo) as mat; SELECT becas=COUNT(DISTINCT becas.estudiante) FROM ( SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo JOIN TEstudianteBeca eb ON eb.cedEstudiante=e.cedula AND eb.codCursoLectivo=g. codCursoLectivo WHERE g.codCursoLectivo=pcodCursoLectivo) as becas; if total > 0 then select round((becas/total)*100,2); else select 0; end if; END$$ DELIMITER ; /*28-MAY-2012 SPAvanceNotas*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceNotas $$ CREATE PROCEDURE SPAvanceNotas(IN pcodCursoLectivo INT) BEGIN declare total int; declare notas int; SELECT total=COUNT(DISTINCT mat.estudiante) FROM (SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo WHERE g.codCursoLectivo=pcodCursoLectivo) as mat; SELECT notas=COUNT(DISTINCT notas.estudiante) FROM ( SELECT e.cedula as estudiante FROM TEstudiante e JOIN TGrupoEstudiante ge on ge.cedula=e.cedula JOIN TGrupo g ON g.codigo=ge.codigo JOIN TRendimiento r ON r.cedula=e.cedula JOIN TPeriodo p ON p.codigo=r.codPeriodo and p.codCursoLectivo=g.codCursoLectivo WHERE g.codCursoLectivo=pcodCursoLectivo AND r.tipo=0 GROUP BY e.cedula) as notas;

if total>0 THEN SELECT ROUND((notas/total)*100,2); else select 0; end if; END $$ DELIMITER ; /*28-MAY-2012 SPAvanceMatricula*/ DELIMITER $$ DROP PROCEDURE IF EXISTS SPAvanceMatricula $$ CREATE PROCEDURE SPAvanceMatricula(IN pcodCursoLectivo INT) BEGIN DECLARE cantNiveles INT; SELECT cantNiveles=COUNT(numero) FROM TNivel; SELECT ROUND(SUM(niveles.ptj),2) AS AvanceMatricula FROM (SELECT (grupo.cantidad/matricula.cantidad) * (100/cantNiveles) as ptj, grupo. numnivel FROM (SELECT COUNT(DISTINCT ge.cedula) as cantidad, g.numnivel FROM TGrupoEstudiante ge JOIN TGrupo g ON g.codigo=ge.codigo WHERE g.codCursoLectivo=pcodCursoLectivo GROUP BY g.numNivel) as grupo, (SELECT COUNT(m.codigo) as cantidad, m.numNivel FROM TMatricula m WHERE m.codCursoLectivo=pcodCursoLectivo GROUP BY m.numNivel) as matricula WHERE grupo.numnivel=matricula.numnivel) AS niveles; END $$ DELIMITER ; /*15-MAY-2012 VistaLeccionesEfectivas*/ DROP VIEW IF EXISTS VSemanas; DROP VIEW IF EXISTS VistaLeccionesEfectivas; CREATE VIEW VSemanas AS SELECT FLOOR(DATEDIFF(desde, hasta)/7) AS semanas, codig o, codCursoLectivo FROM tperiodo; CREATE VIEW VistaLeccionesEfectivas AS SELECT pa.codAsignatura, pa.cantidadLecciones * v.semanas AS cantidad, pa.cantid adLecciones, v.semanas, v.codigo AS codperiodo, v.codCursoLectivo, p.numNivel FROM TPlanEstudio p INNER JOIN TPlanEstudioAsignatura pa ON pa.codPlanEstudio=p.codigo INNER JOIN VSemanas v ON v.codCursoLectivo=p.codCursoLectivo GROUP BY p.numNivel, v.codCursoLectivo, pa.codAsignatura, v.codigo, v.semanas, p a.cantidadLecciones; /*23-JUL-2012 SPAsignaturasDocente*/ DELIMITER $$

DROP PROCEDURE IF EXISTS SPAsignaturasDocente $$ CREATE PROCEDURE `SPAsignaturasDocente`(in pcedula VARCHAR(20), in pcodGrupo int ) BEGIN SELECT a.* FROM TCargaAcademica c, TAsignatura a WHERE c.codAsignatura=a.codigo AND c.cedula=pcedula AND c.codGrupo=pcodGrupo GROUP BY a.codigo; END $$ DELIMITER ; INSERT INTO tparametro (nombre, descripcion, valor, tipo) SELECT 'cantidadCasoAusentismo', 'Cantidad de ausencias injustificadas para cons derar un caso de ausentismo', '10',1 FROM tparametro WHERE nombre='cantidadCasoAusentismo' HAVING COUNT(*) = 0; UPDATE TParametro set descripcion='Smbolo separador para el ingreso de notas 0 pa ra el punto(.) 1 para la coma(,)', valor='1' where nombre='separadorIngresoNotas'; /*ltima plantilla del registro*/ UPDATE TPlantillaRegistro SET ubicacion='Registro de Calificaciones 2012 v1.3 PIAD.accde' WHERE tipo=1; /*se actualiza la versin*/ CREATE TABLE IF NOT EXISTS tversion ( codigo int(11) NOT NULL AUTO_INCREMENT, version varchar(45) NOT NULL DEFAULT '', scriptcorrido varchar(45) NOT NULL DEFAULT '', PRIMARY KEY (codigo) ); INSERT INTO TVersion (version, scriptcorrido) VALUES ('20120726', '20120216');

También podría gustarte