SET TERM !!
CREATE PROCEDURE INS_ALUMNO (FOTO VARCHAR(100),
NOMBRE1 VARCHAR(15), NOMBRE2 VARCHAR(15),
APELLIDO1 VARCHAR(15), APELLIDO2 VARCHAR(15),
FECHA_NAC DATE, LIBRO NUMERIC(8),
FECHA_INC DATE, FECHA_RET DATE,
RETIRADO VARCHAR(1), CCO_CODIGO NUMERIC(8),
VIVE_PADRES VARCHAR(1), CNA_CODIGO NUMERIC(8),
SEXO VARCHAR(1), TELEFONO NUMERIC(10),
CELULAR NUMERIC(10), EMAIL VARCHAR(60),
OBSERVACION VARCHAR(60), GT_CODIGO NUMERIC(8),
CCU_CODIGO NUMERIC(8), CPR_CODIGO NUMERIC(8),
CC_CODIGO NUMERIC(8), CU_CODIGO NUMERIC(8),
DIRECCION VARCHAR(80), GE_CODIGO NUMERIC(8),
GHA_CODIGO NUMERIC(8), GS_CODIGO NUMERIC(8),
SECCION VARCHAR(1), NUMERO NUMERIC(2),
GHA_REPETIDOCURSO VARCHAR(1), GHA_RAZONREPETIR VARCHAR(50),
GHA_NOCOLEGIO NUMERIC(2), GHA_RAZONCAMBIOCOLEGIO VARCHAR(30),
GHA_CONDCOLEGIOANT VARCHAR(10), GHA_COLANT VARCHAR(30),
GHA_TELCOLANT NUMERIC(10), GS_GA_MATRICULA VARCHAR(8),
GS_TIPODESANGRE VARCHAR(3), GS_ANALGESICOQUEUSA VARCHAR(30),
GS_ALERGICOA VARCHAR(30), GS_BAJOTRATAMIENTOMEDICO VARCHAR(1),
GS_PADECENERVIOS VARCHAR(1), GS_PADECIDOENFERMEDADGRAVE VARCHAR(1),
GS_SUMAYORPROBLEMA VARCHAR(30), GE_CI_CODIGO NUMERIC(8),
GE_IGLESIAPADRES VARCHAR(20), GE_LEENBIBLIA VARCHAR(20)
)
AS
DECLARE VARIABLE SECNUM NUMERIC(8);
DECLARE VARIABLE GENMAT NUMERIC(8);
DECLARE VARIABLE MATRI VARCHAR(8);
DECLARE VARIABLE CODIG0 NUMERIC(8);
BEGIN
SELECT COUNT(*) FROM G_ALUMNO INTO :SECNUM;
SELECT COUNT(GA_FECHA_INC) FROM G_ALUMNO
WHERE EXTRACT(YEAR FROM GA_FECHA_INC) = EXTRACT(YEAR FROM :FECHA_INC) INTO :GENMAT;
INSERT INTO G_ALUMNO VALUES( (:SECNUM + 1001),
((CAST(EXTRACT(YEAR FROM :FECHA_INC) AS INTEGER) * 10000) + (:GENMAT + 1)),
:FOTO, :NOMBRE1, :NOMBRE2, :APELLIDO1, :APELLIDO2, :FECHA_NAC, :LIBRO,
:FECHA_INC, :FECHA_RET, :RETIRADO, :CCO_CODIGO, :VIVE_PADRES, :CNA_CODIGO, :SEXO,
:TELEFONO, :CELULAR, :EMAIL, :OBSERVACION, :GT_CODIGO, :CCU_CODIGO, :CPR_CODIGO,
:CC_CODIGO, :CU_CODIGO, IRECCION, :GE_CODIGO, :GHA_CODIGO, :GS_CODIGO, :SECCION,
:NUMERO
);
SELECT GA_MATRICULA FROM G_ALUMNO WHERE GA_ORDEN = (:SECNUM + 1001) INTO :MATRI;
EXECUTE PROCEDURE INS_HIST_ALUMN :MATRI, :CCU_CODIGO, :GHA_REPETIDOCURSO,
:GHA_RAZONREPETIR, :GHA_NOCOLEGIO, :GHA_RAZONCAMBIOCOLEGIO,
:GHA_CONDCOLEGIOANT, :GHA_COLANT, :GHA_TELCOLANT;
EXECUTE PROCEDURE INS_SALUD :MATRI, :GS_TIPODESANGRE, :GS_ANALGESICOQUEUSA,
:GS_ALERGICOA, :GS_BAJOTRATAMIENTOMEDICO, :GS_PADECENERVIOS,
:GS_PADECIDOENFERMEDADGRAVE, :GS_SUMAYORPROBLEMA;
EXECUTE PROCEDURE INS_ESPIRITUAL :MATRI, :GE_CI_CODIGO, :GE_IGLESIAPADRES, :GE_LEENBIBLIA;
SELECT GE_CODIGO FROM G_ESPIRITUAL WHERE GE_GA_MATRICULA = :MATRI INTO :CODIGO;
UPDATE G_ALUMNO SET GA_GE_CODIGO = :CODIGO WHERE GA_MATRICULA = :MATRI;
SELECT GHA_CODIGO FROM G_HIST_ALUMN WHERE GHA_GA_MATRICULA = :MATRI INTO :CODIGO;
UPDATE G_ALUMNO SET GA_GHA_CODIGO = :CODIGO WHERE GA_MATRICULA = :MATRI;
SELECT GS_CODIGO FROM G_SALUD WHERE GS_GA_MATRICULA = :MATRI INTO :CODIGO;
UPDATE G_ALUMNO SET GA_GS_CODIGO = :CODIGO WHERE GA_MATRICULA = :MATRI;
SUSPEND;
END !!
SET TERM !!