The following lines contain the word 'select', 'insert', 'update' or 'delete':
x_last_update_date IN DATE,
x_last_updated_by IN NUMBER,
x_last_update_login IN NUMBER
) AS
CURSOR cur_old_ref_values IS
SELECT *
FROM IGS_PE_PERSENC_EFFCT
WHERE rowid = x_rowid;
IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
IF (p_action = 'UPDATE') THEN
new_references.creation_date := old_references.creation_date;
new_references.last_update_date := x_last_update_date;
new_references.last_updated_by := x_last_updated_by;
new_references.last_update_login := x_last_update_login;
PROCEDURE BeforeRowInsertUpdate1(
p_inserting IN BOOLEAN,
p_updating IN BOOLEAN,
p_deleting IN BOOLEAN
) AS
CURSOR cur_hold_ovr IS
SELECT HOLD_OLD_END_DT
FROM igs_pe_hold_rel_ovr HOVR, IGS_EN_ELGB_OVR_ALL OVR
WHERE OVR.ELGB_OVERRIDE_ID =HOVR.ELGB_OVERRIDE_ID AND
OVR.PERSON_ID = new_references.PERSON_ID AND new_references.pee_start_dt = HOVR.START_DATE
AND new_references.encumbrance_typE = HOVR.HOLD_TYPE;
IF p_inserting OR (p_updating AND (old_references.s_encmb_effect_type <> new_references.s_encmb_effect_type)) THEN
IF IGS_EN_VAL_ETDE.enrp_val_seet_closed (
new_references.s_encmb_effect_type,
v_message_name ) = FALSE THEN
Fnd_Message.Set_Name('IGS', v_message_name);
IF p_inserting OR (p_updating AND
(NVL(old_references.pee_start_dt, IGS_GE_DATE.IGSDATE('1900/01/01'))
<> new_references.pee_start_dt)) THEN
IF IGS_EN_VAL_PCE.enrp_val_encmb_dt (
new_references.pee_start_dt,
v_message_name ) = FALSE THEN
Fnd_Message.Set_Name('IGS', v_message_name);
IF p_inserting THEN
IF IGS_EN_VAL_PCE.enrp_val_encmb_dts (
new_references.pen_start_dt,
new_references.pee_start_dt,
v_message_name ) = FALSE THEN
Fnd_Message.Set_Name('IGS', v_message_name);
IF p_inserting OR (p_updating AND
(NVL(old_references.expiry_dt, IGS_GE_DATE.IGSDATE('1900/01/01'))
<> new_references.expiry_dt)) THEN
IF IGS_EN_VAL_PCE.enrp_val_strt_exp_dt (
new_references.pee_start_dt,
new_references.expiry_dt,
v_message_name ) = FALSE THEN
Fnd_Message.Set_Name('IGS', v_message_name);
IF p_inserting THEN
IF IGS_EN_VAL_PEE.enrp_val_pee_enrol (
new_references.person_id,
new_references.s_encmb_effect_type,
v_message_name ) = FALSE THEN
Fnd_Message.Set_Name('IGS', v_message_name);
IF (p_inserting OR p_updating) AND
(new_references.course_cd IS NOT NULL) AND
(NVL(old_references.course_cd, 'NULL') <> new_references.course_cd) THEN
IF IGS_EN_VAL_PEE.enrp_val_pee_crs (
new_references.person_id,
new_references.course_cd,
v_message_name ) = FALSE THEN
Fnd_Message.Set_Name('IGS', 'IGS_EN_CAN_SPEC_RESTR_ATT');
IF (p_inserting OR p_updating) AND
(new_references.restricted_attendance_type IS NOT NULL) AND
(new_references.s_encmb_effect_type <> 'RSTR_AT_TY') THEN
Fnd_Message.Set_Name('IGS', v_message_name);
IF (p_inserting OR p_updating) AND
(new_references.course_cd IS NOT NULL) AND
(NVL(old_references.course_cd, 'NULL') <> new_references.course_cd) AND
(new_references.s_encmb_effect_type = 'RSTR_AT_TY') THEN
IF IGS_EN_VAL_PEE.enrp_val_pee_crs_att (
new_references.person_id,
new_references.s_encmb_effect_type,
nvl(new_references.sequence_number,0),
new_references.course_cd,
v_message_name ) = FALSE THEN
Fnd_Message.Set_Name('IGS', v_message_name);
IF (p_inserting OR p_updating) AND
(new_references.restricted_enrolment_cp > 0) AND
(new_references.s_encmb_effect_type <> 'RSTR_GE_CP' AND
new_references.s_encmb_effect_type <> 'RSTR_LE_CP') THEN
Fnd_Message.Set_Name('IGS','IGS_EN_CANT_SPEC_ENRL_CRDT');
IF (p_inserting OR p_updating) AND
(new_references.course_cd IS NOT NULL) AND
(NVL(old_references.course_cd, 'NULL') <> new_references.course_cd) AND
(new_references.s_encmb_effect_type IN ('RSTR_LE_CP','RSTR_GE_CP')) THEN
IF IGS_EN_VAL_PEE.enrp_val_pee_crs_cp (
new_references.person_id,
new_references.s_encmb_effect_type,
nvl(new_references.sequence_number,0),
new_references.course_cd,
v_message_name ) = FALSE THEN
Fnd_Message.Set_Name('IGS', v_message_name);
END BeforeRowInsertUpdate1;
PROCEDURE AfterRowInsertUpdate2(
p_inserting IN BOOLEAN,
p_updating IN BOOLEAN,
p_deleting IN BOOLEAN
) AS
v_message_name varchar2(30);
-- effect has been updated.
IF new_references.expiry_dt IS NOT NULL THEN
IGS_EN_GEN_011.ENRP_SET_PEE_EXPRY (new_references.person_id,
new_references.encumbrance_type,
new_references.pen_start_dt,
new_references.s_encmb_effect_type,
new_references.pee_start_dt,
new_references.sequence_number,
new_references.expiry_dt,
v_message_name);
-- date of the effect has been updated and no other active effect records
-- remain.
IF new_references.expiry_dt IS NOT NULL AND igs_pe_pers_encumb_pkg.initialised IS NULL THEN
IGS_EN_GEN_011.ENRP_SET_PEN_EXPRY (new_references.person_id,
new_references.encumbrance_type,
new_references.pen_start_dt,
new_references.sequence_number,
new_references.expiry_dt,
v_message_name);
END AfterRowInsertUpdate2;
Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
SELECT rowid
FROM IGS_PE_PERSENC_EFFCT
WHERE person_id = x_person_id
AND encumbrance_type = x_encumbrance_type
AND pen_start_dt = x_pen_start_dt
AND s_encmb_effect_type = x_s_encmb_effect_type
AND pee_start_dt = x_pee_start_dt
AND sequence_number = x_sequence_number
FOR UPDATE NOWAIT;
SELECT rowid
FROM IGS_PE_PERSENC_EFFCT
WHERE restricted_attendance_type = x_attendance_type ;
SELECT rowid
FROM IGS_PE_PERSENC_EFFCT
WHERE person_id = x_person_id
AND encumbrance_type = x_encumbrance_type
AND pen_start_dt = x_start_dt ;
x_last_update_date IN DATE,
x_last_updated_by IN NUMBER,
x_last_update_login IN NUMBER
) AS
BEGIN
Set_Column_Values (
p_action,
x_rowid,
x_person_id,
x_encumbrance_type,
x_pen_start_dt,
x_s_encmb_effect_type,
x_pee_start_dt,
x_sequence_number,
x_expiry_dt,
x_course_cd,
x_restricted_enrolment_cp,
x_restricted_attendance_type,
x_creation_date,
x_created_by,
x_last_update_date,
x_last_updated_by,
x_last_update_login
);
IF (p_action = 'INSERT') THEN
-- Call all the procedures related to Before Insert.
BeforeRowInsertUpdate1 (
p_inserting => TRUE,
p_updating => FALSE,
p_deleting => FALSE);
ELSIF (p_action = 'UPDATE') THEN
-- Call all the procedures related to Before Update.
BeforeRowInsertUpdate1 (
p_inserting => FALSE,
p_updating => TRUE,
p_deleting => FALSE);
ELSIF (p_action = 'DELETE') THEN
-- Call all the procedures related to Before Delete.
Check_Child_Existance; -- if procedure present
ELSIF (p_action = 'VALIDATE_INSERT') THEN
IF Get_PK_For_Validation (
new_references.person_id ,
new_references.encumbrance_type ,
new_references.pen_start_dt ,
new_references.s_encmb_effect_type,
new_references.pee_start_dt,
new_references.sequence_number) THEN
Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
ELSIF (p_action = 'VALIDATE_UPDATE') THEN
Check_Constraints; -- if procedure present
ELSIF (p_action = 'VALIDATE_DELETE') THEN
Check_Child_Existance; -- if procedure present
IF (p_action = 'INSERT') THEN
-- Call all the procedures related to After Insert.
AfterRowInsertUpdate2 (
p_inserting => TRUE,
p_updating => FALSE,
p_deleting => FALSE);
ELSIF (p_action = 'UPDATE') THEN
-- Call all the procedures related to After Update.
AfterRowInsertUpdate2 (
p_inserting => FALSE,
p_updating => TRUE,
p_deleting => FALSE);
ELSIF (p_action = 'DELETE') THEN
-- Call all the procedures related to After Delete.
Null;
procedure INSERT_ROW (
X_ROWID in out NOCOPY VARCHAR2,
X_PERSON_ID in NUMBER,
X_ENCUMBRANCE_TYPE in VARCHAR2,
X_PEN_START_DT in DATE,
X_S_ENCMB_EFFECT_TYPE in VARCHAR2,
X_PEE_START_DT in DATE,
X_SEQUENCE_NUMBER in NUMBER,
X_EXPIRY_DT in DATE,
X_COURSE_CD in VARCHAR2,
X_RESTRICTED_ENROLMENT_CP in NUMBER,
X_RESTRICTED_ATTENDANCE_TYPE in VARCHAR2,
X_MODE in VARCHAR2
) AS
cursor C is select ROWID from IGS_PE_PERSENC_EFFCT
where PERSON_ID = X_PERSON_ID
and ENCUMBRANCE_TYPE = X_ENCUMBRANCE_TYPE
and PEN_START_DT = X_PEN_START_DT
and S_ENCMB_EFFECT_TYPE = X_S_ENCMB_EFFECT_TYPE
and PEE_START_DT = X_PEE_START_DT
and SEQUENCE_NUMBER = X_SEQUENCE_NUMBER;
X_LAST_UPDATE_DATE DATE;
X_LAST_UPDATED_BY NUMBER;
X_LAST_UPDATE_LOGIN NUMBER;
X_LAST_UPDATE_DATE := SYSDATE;
X_LAST_UPDATED_BY := 1;
X_LAST_UPDATE_LOGIN := 0;
X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
if X_LAST_UPDATED_BY is NULL then
X_LAST_UPDATED_BY := -1;
X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
if X_LAST_UPDATE_LOGIN is NULL then
X_LAST_UPDATE_LOGIN := -1;
p_action=>'INSERT',
x_rowid=>X_ROWID,
x_course_cd=>X_COURSE_CD,
x_encumbrance_type=>X_ENCUMBRANCE_TYPE,
x_expiry_dt=>X_EXPIRY_DT,
x_pee_start_dt=>X_PEE_START_DT,
x_pen_start_dt=>X_PEN_START_DT,
x_person_id=>X_PERSON_ID,
x_restricted_attendance_type=>X_RESTRICTED_ATTENDANCE_TYPE,
x_restricted_enrolment_cp=> NVL(X_RESTRICTED_ENROLMENT_CP,0),
x_s_encmb_effect_type=>X_S_ENCMB_EFFECT_TYPE,
x_sequence_number=>X_SEQUENCE_NUMBER,
x_creation_date=>X_LAST_UPDATE_DATE,
x_created_by=>X_LAST_UPDATED_BY,
x_last_update_date=>X_LAST_UPDATE_DATE,
x_last_updated_by=>X_LAST_UPDATED_BY,
x_last_update_login=>X_LAST_UPDATE_LOGIN
);
insert into IGS_PE_PERSENC_EFFCT (
PERSON_ID,
ENCUMBRANCE_TYPE,
PEN_START_DT,
S_ENCMB_EFFECT_TYPE,
PEE_START_DT,
SEQUENCE_NUMBER,
EXPIRY_DT,
COURSE_CD,
RESTRICTED_ENROLMENT_CP,
RESTRICTED_ATTENDANCE_TYPE,
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
LAST_UPDATE_LOGIN
) values (
NEW_REFERENCES.PERSON_ID,
NEW_REFERENCES.ENCUMBRANCE_TYPE,
NEW_REFERENCES.PEN_START_DT,
NEW_REFERENCES.S_ENCMB_EFFECT_TYPE,
NEW_REFERENCES.PEE_START_DT,
NEW_REFERENCES.SEQUENCE_NUMBER,
NEW_REFERENCES.EXPIRY_DT,
NEW_REFERENCES.COURSE_CD,
NEW_REFERENCES.RESTRICTED_ENROLMENT_CP,
NEW_REFERENCES.RESTRICTED_ATTENDANCE_TYPE,
X_LAST_UPDATE_DATE,
X_LAST_UPDATED_BY,
X_LAST_UPDATE_DATE,
X_LAST_UPDATED_BY,
X_LAST_UPDATE_LOGIN
);
p_action => 'INSERT',
x_rowid => X_ROWID
);
end INSERT_ROW;
cursor c1 is select
EXPIRY_DT,
COURSE_CD,
RESTRICTED_ENROLMENT_CP,
RESTRICTED_ATTENDANCE_TYPE
from IGS_PE_PERSENC_EFFCT
where ROWID = X_ROWID
for update nowait;
fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
procedure UPDATE_ROW (
X_ROWID in VARCHAR2,
X_PERSON_ID in NUMBER,
X_ENCUMBRANCE_TYPE in VARCHAR2,
X_PEN_START_DT in DATE,
X_S_ENCMB_EFFECT_TYPE in VARCHAR2,
X_PEE_START_DT in DATE,
X_SEQUENCE_NUMBER in NUMBER,
X_EXPIRY_DT in DATE,
X_COURSE_CD in VARCHAR2,
X_RESTRICTED_ENROLMENT_CP in NUMBER,
X_RESTRICTED_ATTENDANCE_TYPE in VARCHAR2,
X_MODE in VARCHAR2
) AS
X_LAST_UPDATE_DATE DATE;
X_LAST_UPDATED_BY NUMBER;
X_LAST_UPDATE_LOGIN NUMBER;
X_LAST_UPDATE_DATE := SYSDATE;
X_LAST_UPDATED_BY := 1;
X_LAST_UPDATE_LOGIN := 0;
X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
if X_LAST_UPDATED_BY is NULL then
X_LAST_UPDATED_BY := -1;
X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
if X_LAST_UPDATE_LOGIN is NULL then
X_LAST_UPDATE_LOGIN := -1;
p_action=>'UPDATE',
x_rowid=>X_ROWID,
x_course_cd=>X_COURSE_CD,
x_encumbrance_type=>X_ENCUMBRANCE_TYPE,
x_expiry_dt=>X_EXPIRY_DT,
x_pee_start_dt=>X_PEE_START_DT,
x_pen_start_dt=>X_PEN_START_DT,
x_person_id=>X_PERSON_ID,
x_restricted_attendance_type=>X_RESTRICTED_ATTENDANCE_TYPE,
x_restricted_enrolment_cp=>X_RESTRICTED_ENROLMENT_CP,
x_s_encmb_effect_type=>X_S_ENCMB_EFFECT_TYPE,
x_sequence_number=>X_SEQUENCE_NUMBER,
x_creation_date=>X_LAST_UPDATE_DATE,
x_created_by=>X_LAST_UPDATED_BY,
x_last_update_date=>X_LAST_UPDATE_DATE,
x_last_updated_by=>X_LAST_UPDATED_BY,
x_last_update_login=>X_LAST_UPDATE_LOGIN
);
update IGS_PE_PERSENC_EFFCT set
EXPIRY_DT = NEW_REFERENCES.EXPIRY_DT,
COURSE_CD = NEW_REFERENCES.COURSE_CD,
RESTRICTED_ENROLMENT_CP = NEW_REFERENCES.RESTRICTED_ENROLMENT_CP,
RESTRICTED_ATTENDANCE_TYPE = NEW_REFERENCES.RESTRICTED_ATTENDANCE_TYPE,
LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
LAST_UPDATED_BY = X_LAST_UPDATED_BY,
LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
where ROWID = X_ROWID
;
p_action => 'UPDATE',
x_rowid => X_ROWID
);
end UPDATE_ROW;
cursor c1 is select rowid from IGS_PE_PERSENC_EFFCT
where PERSON_ID = X_PERSON_ID
and ENCUMBRANCE_TYPE = X_ENCUMBRANCE_TYPE
and PEN_START_DT = X_PEN_START_DT
and S_ENCMB_EFFECT_TYPE = X_S_ENCMB_EFFECT_TYPE
and PEE_START_DT = X_PEE_START_DT
and SEQUENCE_NUMBER = X_SEQUENCE_NUMBER
;
INSERT_ROW (
X_ROWID,
X_PERSON_ID,
X_ENCUMBRANCE_TYPE,
X_PEN_START_DT,
X_S_ENCMB_EFFECT_TYPE,
X_PEE_START_DT,
X_SEQUENCE_NUMBER,
X_EXPIRY_DT,
X_COURSE_CD,
X_RESTRICTED_ENROLMENT_CP,
X_RESTRICTED_ATTENDANCE_TYPE,
X_MODE);
UPDATE_ROW (
X_ROWID,
X_PERSON_ID,
X_ENCUMBRANCE_TYPE,
X_PEN_START_DT,
X_S_ENCMB_EFFECT_TYPE,
X_PEE_START_DT,
X_SEQUENCE_NUMBER,
X_EXPIRY_DT,
X_COURSE_CD,
X_RESTRICTED_ENROLMENT_CP,
X_RESTRICTED_ATTENDANCE_TYPE,
X_MODE);
procedure DELETE_ROW (
X_ROWID in VARCHAR2
) AS
begin
Before_DML(
p_action => 'DELETE',
x_rowid => X_ROWID
);
delete from IGS_PE_PERSENC_EFFCT
where ROWID = X_ROWID;
p_action => 'DELETE',
x_rowid => X_ROWID
);
end DELETE_ROW;