Cita:
esta parte (negrita) esta fuera de la validación a null, no debería de estar dentro del begin-end del IF?
|
No,
debe estar fuera del begin-end del IF. El rubro se crea una sola vez, es una relacion de uno (rubro) a muchos (el monto para cada período puede variar).
La verdad el monto deberá tener su propia validación - eventualmente
El problema es que no ejecuta/valida la inserción.
PD Uso Firebird 2 + ibexpert
Ejemplo de los datos:
Código:
MONTOSDERUBROS ---------------------------
/*
Select r.idrubro, codrubro, rubro, idtiporubro, periodo, monto, idgruporub
from rubros r, montos m
Where r.IdRubro = m.IdRubro
*/
idrubro; codrubro, rubro, idtiporubro, periodo, monto, idgruporub
1; '5101'; 'Rubro1'; 1; 1; 1500,00; 1
1; '5101'; 'Rubro1'; 1; 2; 1510,00; 1
2; '5102'; 'Rubro2'; 1; 1; 1000,00; 1
2; '5102'; 'Rubro2'; 1; 2; 900,00 ; 1
RUBROS --------------------------------------
idrubro, codrubro, rubro, idgruporub, idtiporubro
1; '5101'; 'Rubro1'; 1; 1
2; '5102'; 'Rubro2'; 1; 1
MONTOS -------------------------------------
idMonto; idrubro, periodo, monto
1; 1; 1; 1500,00
2; 1; 2; 1510,00
3; 2; 1; 1000,00
4; 2; 2; 900,00
Los grupos de rubros se usan por lo siguiente:
Es un sistema de cobranzas para un colegio, los grupos representan los rubros y precios para cada grupo de niveles: Preescolar, Básica, Bachillerato, diversificado. Los Grupos repiten +- igual los rubros con distintos códigos (de contabilidad y en algunos casos la cambia la descripción) y los montos son distintos para cada periodo / grupo.
La idea es crear el primero a mano y luego copiarlo para no tener que repetir toda la información (solo modificar lo que cambie).
Pero el problema es que al ejecutar
Código SQL
[-]EXECUTE PROCEDURE COPIARRUBROSXGRUPO(2,3)
Me da un error (sonido) aparentemente por una violacion a las validaciones
Rubros.IDRUBRO indice primario.
Montos.IDRUBRO,PERIODO indice unico.
todos estos campos son not null