-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- Tabla: sga_escala_notas -- Escala de Notas -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INSERT INTO sga_escalas_notas_concepto (concepto, nombre) VALUES (1,'Insuficiente'); INSERT INTO sga_escalas_notas_concepto (concepto, nombre) VALUES (2,'Suficiente' ); INSERT INTO sga_escalas_notas_concepto (concepto, nombre) VALUES (3,'Regular' ); INSERT INTO sga_escalas_notas_concepto (concepto, nombre) VALUES (4,'Bueno' ); INSERT INTO sga_escalas_notas_concepto (concepto, nombre) VALUES (5,'Muy Bueno'); INSERT INTO sga_escalas_notas_concepto (concepto, nombre) VALUES (6,'Sobresaliente'); INSERT INTO sga_escalas_notas_concepto (concepto, nombre) VALUES (7,'Excelente'); INSERT INTO sga_escalas_notas (escala_nota, nombre, tipo, es_numerica, estado ) VALUES (1, '0 a 10', 'DISCRETA', 'S', 'A'); INSERT INTO sga_escalas_notas (escala_nota, nombre, tipo, es_numerica, estado ) VALUES (2, 'Aprobado-Desaprobado', 'DISCRETA', 'N', 'A'); INSERT INTO sga_escalas_notas (escala_nota, nombre, tipo, es_numerica, estado ) VALUES (3, 'Promociones', 'DISCRETA', 'N', 'A'); INSERT INTO sga_escalas_notas (escala_nota, nombre, tipo, es_numerica, estado ) VALUES (4, 'Parciales con Decimales', 'DISCRETA', 'S', 'A'); INSERT INTO sga_escalas_notas (escala_nota, nombre, tipo, es_numerica, estado ) VALUES (5, 'Parciales con Decimales - No se usa mas', 'DISCRETA', 'S', 'B'); INSERT INTO sga_escalas_notas (escala_nota, nombre, tipo, es_numerica, estado ) VALUES (6, 'De 1 a 5', 'DISCRETA', 'S', 'A'); -- Escala 1 INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (1, '0', 0,'R','Cero',1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (1, '1', 1,'R','Uno' ,1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (1, '2', 2,'R','Dos' ,1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (1, '3', 3,'R','Tres',1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (1, '4', 4,'A','Cuatro',2); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (1, '5', 5,'A','Cinco' ,2); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (1, '6', 6,'A','Seis' ,4); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (1, '7', 7,'A','Siete' ,4); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (1, '8', 8,'A','Ocho' ,5); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (1, '9', 9,'A','Nueve' ,5); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (1,'10',10,'A','Diez',7); -- Escala 2 INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (2,'D',3,'R','Desaprobado',1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (2,'A',7,'A','Aprobado' ,2); -- Escala 3 INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 3, '0', 0, 'R', 'Cero',1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 3, '1', 1, 'R', 'Uno' ,1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 3, '2', 2, 'R', 'Dos' ,1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 3, '3', 3, 'R', 'Tres',1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 3, '4', 4, 'R', 'Cuatro',2); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 3, '5', 5, 'R', 'Cinco' ,2); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 3, '6', 6, 'R', 'Seis' ,4); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 3, '7', 7, 'A', 'Siete' ,4); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 3, '8', 8, 'A', 'Ocho' ,5); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 3, '9', 9, 'A', 'Nueve' ,5); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 3,'10',10, 'A', 'Diez',7); -- Escala 4 INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'0.0',0 ,'R','Cero',1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'0.5',0.5,'R','Cero 50/100' ,1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'1.0',1 ,'R','Uno' ,1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'1.5',1.5,'R','Uno 50/100' ,1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'2.0',2 ,'R','Dos' ,1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'2.5',2.5,'R','Dos 50/100' ,1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'3.0',3 ,'R','Tres',1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'3.5',3.5,'R','Tres 50/100',1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'4.0',4 ,'A','Cuatro',2); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'4.5',4.5,'A','Cuatro 50/100',2); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'5.0',5 ,'A','Cinco' ,2); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'5.5',5.5,'A','Cinco 50/100' ,2); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'6.0',6 ,'A','Seis' ,4); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'6.5',6.5,'A','Seis 50/100' ,4); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'7.0',7,'A','Siete' ,4); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'7.5',7.5,'A','Siete 50/100' ,4); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'8.0',8 ,'A','Ocho' ,5); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'8.5',8.5,'A','Ocho' ,5); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'9.0',9 ,'A','Nueve' ,5); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'9.5',9.5,'A','Nueve 50/100' ,5); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES ( 4,'10.0',10,'A','Diez',7); -- Escala 6 INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (6, '1', 1,'R','Uno' ,1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (6, '2', 3,'R','Dos' ,1); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (6, '3', 6,'A','Tres',3); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (6, '4', 8,'A','Cuatro',4); INSERT INTO sga_escalas_notas_det (escala_nota, nota, valor_numerico, resultado, descripcion, concepto) VALUES (6, '5', 10,'A','Cinco' ,5); -- drop function crear_escala_notas_100(); CREATE OR REPLACE FUNCTION crear_escala_notas_100() RETURNS text AS $BODY$ DECLARE i integer; DECLARE j integer; DECLARE _escala integer; DECLARE _nota varchar(10); DECLARE _concepto integer; DECLARE _resultado char(1); DECLARE _valor decimal(5,1); DECLARE _valor2 decimal(6,2); BEGIN SELECT max(escala_nota) INTO _escala FROM sga_escalas_notas; _escala := _escala + 1; INSERT INTO sga_escalas_notas (escala_nota, nombre, descripcion, estado, tipo, es_numerica, cantidad_decimales, separador_decimal, nota_inicial, nota_final) VALUES (_escala,'0 a 10 con 1 decimal','Escala de 0 a 10 con un decimal','A', 'CONTINUA', 'S', 1, '.', 0, 10); INSERT INTO sga_escalas_notas_rangos_conceptos (escala_nota, concepto, nota_inicial, nota_final) VALUES (_escala, 1, 0 , 3.9); -- Insuficiente INSERT INTO sga_escalas_notas_rangos_conceptos (escala_nota, concepto, nota_inicial, nota_final) VALUES (_escala, 3, 4 , 5.9); -- Regular INSERT INTO sga_escalas_notas_rangos_conceptos (escala_nota, concepto, nota_inicial, nota_final) VALUES (_escala, 5, 6 , 7.9); -- Muy Bueno INSERT INTO sga_escalas_notas_rangos_conceptos (escala_nota, concepto, nota_inicial, nota_final) VALUES (_escala, 7, 8 , 10 ); -- Excelente INSERT INTO sga_escalas_notas_rangos_resultados (escala_nota, resultado, nota_inicial, nota_final) VALUES (_escala, 'R', 0 , 3.9); -- Desaprobado INSERT INTO sga_escalas_notas_rangos_resultados (escala_nota, resultado, nota_inicial, nota_final) VALUES (_escala, 'A', 4 , 10.0); -- Aprobado FOR i IN 0..10 LOOP if i <= 3 then _resultado := 'R'; _concepto := 1; elseif i >= 4 and i <= 5 then _resultado := 'A'; _concepto := 3; elseif i >= 6 and i <= 8 then _resultado := 'A'; _concepto := 5; elseif i >= 9 and i <= 10 then _resultado := 'A'; _concepto := 7; end if; for j IN 0..9 LOOP if i < 10 or i = 10 and j = 0 then _valor := i + (j * 0.1); _nota := _valor::varchar; INSERT INTO sga_escalas_notas_det (escala_nota, nota, descripcion, concepto, resultado, valor_numerico) VALUES (_escala, _nota, _nota, _concepto, _resultado,_valor); end if; END LOOP; END LOOP; _escala := _escala + 1; INSERT INTO sga_escalas_notas (escala_nota, nombre, descripcion, estado, tipo, es_numerica, cantidad_decimales, separador_decimal, nota_inicial, nota_final) VALUES (_escala,'0 a 10 con 2 decimales','Escala de 0 a 10 con dos decimales','A', 'CONTINUA', 'S', 2, '.', 0, 10); INSERT INTO sga_escalas_notas_rangos_conceptos (escala_nota, concepto, nota_inicial, nota_final) VALUES (_escala, 1, 0 , 3.99); -- Insuficiente INSERT INTO sga_escalas_notas_rangos_conceptos (escala_nota, concepto, nota_inicial, nota_final) VALUES (_escala, 3, 4 , 5.99); -- Regular INSERT INTO sga_escalas_notas_rangos_conceptos (escala_nota, concepto, nota_inicial, nota_final) VALUES (_escala, 5, 6 , 7.99); -- Muy Bueno INSERT INTO sga_escalas_notas_rangos_conceptos (escala_nota, concepto, nota_inicial, nota_final) VALUES (_escala, 7, 8 , 10 ); -- Excelente INSERT INTO sga_escalas_notas_rangos_resultados (escala_nota, resultado, nota_inicial, nota_final) VALUES (_escala, 'R', 0 , 3.99); -- Desaprobado INSERT INTO sga_escalas_notas_rangos_resultados (escala_nota, resultado, nota_inicial, nota_final) VALUES (_escala, 'A', 4 , 10.00); -- Aprobado FOR i IN 0..10 LOOP if i <= 3 then _resultado := 'R'; _concepto := 1; elseif i >= 4 and i <= 5 then _resultado := 'A'; _concepto := 3; elseif i >= 6 and i <= 8 then _resultado := 'A'; _concepto := 5; elseif i >= 9 and i <= 10 then _resultado := 'A'; _concepto := 7; end if; for j IN 0..99 LOOP if i < 10 or i = 10 and j = 0 then _valor2 := i + (j * 0.01); _nota := _valor2::varchar; INSERT INTO sga_escalas_notas_det (escala_nota, nota, descripcion, concepto, resultado, valor_numerico) VALUES (_escala, _nota, _nota, _concepto, _resultado,_valor2); end if; END LOOP; END LOOP; _escala := _escala + 1; INSERT INTO sga_escalas_notas (escala_nota, nombre, descripcion, estado, tipo, es_numerica, cantidad_decimales, separador_decimal, nota_inicial, nota_final) VALUES (_escala,'0 a 100 con 2 decimales','Escala de 0 a 100 con dos decimales','A', 'CONTINUA', 'S', 2, '.', 0, 100); INSERT INTO sga_escalas_notas_rangos_conceptos (escala_nota, concepto, nota_inicial, nota_final) VALUES (_escala, 1, 0 , 39.99); -- Insuficiente INSERT INTO sga_escalas_notas_rangos_conceptos (escala_nota, concepto, nota_inicial, nota_final) VALUES (_escala, 3, 40 , 59.99); -- Regular INSERT INTO sga_escalas_notas_rangos_conceptos (escala_nota, concepto, nota_inicial, nota_final) VALUES (_escala, 5, 60 , 79.99); -- Muy Bueno INSERT INTO sga_escalas_notas_rangos_conceptos (escala_nota, concepto, nota_inicial, nota_final) VALUES (_escala, 7, 80 , 100.00); -- Excelente INSERT INTO sga_escalas_notas_rangos_resultados (escala_nota, resultado, nota_inicial, nota_final) VALUES (_escala, 'R', 0 , 39.99); -- Desaprobado INSERT INTO sga_escalas_notas_rangos_resultados (escala_nota, resultado, nota_inicial, nota_final) VALUES (_escala, 'A', 40 , 100.00); -- Aprobado FOR i IN 0..100 LOOP if i <= 39.99 then _resultado := 'R'; _concepto := 1; elseif i >= 40 and i <= 59.99 then _resultado := 'A'; _concepto := 3; elseif i >= 60 and i <= 79.99 then _resultado := 'A'; _concepto := 5; elseif i >= 80 and i <= 100 then _resultado := 'A'; _concepto := 7; end if; for j IN 0..99 LOOP if i < 100 or i = 100 and j = 0 then _valor2 := i + (j * 0.01); _nota := _valor2::varchar; INSERT INTO sga_escalas_notas_det (escala_nota, nota, descripcion, concepto, resultado, valor_numerico) VALUES (_escala, _nota, _nota, _concepto, _resultado,_valor2); end if; END LOOP; END LOOP; RETURN 'OK'; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; GRANT EXECUTE ON FUNCTION crear_escala_notas_100() to public; -- Creo dos escalas de notas con 1 y 2 decimales select * from crear_escala_notas_100(); -- Actualizo la secuencia SELECT setval('sga_escalas_notas_seq',(SELECT MAX(escala_nota) FROM sga_escalas_notas));