The following lines contain the word 'select', 'insert', 'update' or 'delete':
x_last_update_date IN DATE DEFAULT NULL,
x_last_updated_by IN NUMBER DEFAULT NULL,
x_last_update_login IN NUMBER DEFAULT NULL
) AS
CURSOR cur_old_ref_values IS
SELECT *
FROM IGS_PS_ANL_LOAD
WHERE rowid = x_rowid;
IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
Close cur_old_ref_values;
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;
SELECT 'X'
FROM igs_ps_anl_load
WHERE course_cd=cp_course_cd
AND version_number=cp_version_number
AND yr_num = cp_yr_num
AND cp_start_dt >= effective_start_dt AND cp_start_dt <= NVL(effective_end_dt,cp_start_dt)
AND (rowid <> cp_row_id OR (cp_row_id IS NULL));
SELECT 'X'
FROM igs_ps_anl_load
WHERE course_cd=cp_course_cd
AND version_number=cp_version_number
AND yr_num = cp_yr_num
AND (cp_end_dt >= effective_start_dt OR (cp_end_dt IS NULL)) AND cp_start_dt <= effective_start_dt
AND (rowid <> cp_row_id OR (cp_row_id IS NULL));
PROCEDURE BeforeRowInsertUpdateDelete1(
p_inserting IN BOOLEAN DEFAULT FALSE,
p_updating IN BOOLEAN DEFAULT FALSE,
p_deleting IN BOOLEAN DEFAULT FALSE
) AS
v_message_name varchar2(30);
ELSE -- p_inserting or p_updating
v_course_cd := new_references.course_cd;
-- Validate the insert/update/delete.
IF IGS_PS_VAL_CRS.crsp_val_iud_crv_dtl (
v_course_cd,
v_version_number,
v_message_name) = FALSE THEN
Fnd_Message.Set_Name('IGS',v_message_name);
IF p_inserting OR p_updating THEN
-- Because start date is part of the key it will be set and
-- is not updateable, so only need to check the end date.
IF ( new_references.effective_end_dt IS NOT NULL AND
(NVL(substr(new_references.effective_end_dt,1,10),'1990/01/01') <>
NVL(substr(old_references.effective_end_dt,1,10),'1900/01/01'))) THEN
IF igs_ad_val_edtl.genp_val_strt_end_dt (
new_references.effective_start_dt,
new_references.effective_end_dt,
v_message_name) = FALSE THEN
Fnd_Message.Set_Name('IGS',v_message_name);
END BeforeRowInsertUpdateDelete1;
PROCEDURE AfterRowInsertUpdate2(
p_inserting IN BOOLEAN DEFAULT FALSE,
p_updating IN BOOLEAN DEFAULT FALSE,
p_deleting IN BOOLEAN DEFAULT FALSE
) AS
v_message_name varchar2(30);
END AfterRowInsertUpdate2;
Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
SELECT rowid
FROM IGS_PS_ANL_LOAD
WHERE course_cd = x_course_cd
AND version_number = x_version_number
AND yr_num = x_yr_num
AND effective_start_dt = x_effective_start_dt
FOR UPDATE NOWAIT;
SELECT rowid
FROM IGS_PS_ANL_LOAD
WHERE course_cd = x_course_cd
AND version_number = x_version_number ;
x_last_update_date IN DATE DEFAULT NULL,
x_last_updated_by IN NUMBER DEFAULT NULL,
x_last_update_login IN NUMBER DEFAULT NULL
) AS
BEGIN
Set_Column_Values (
p_action,
x_rowid,
x_course_cd,
x_version_number,
x_yr_num,
x_effective_start_dt,
x_effective_end_dt,
x_annual_load_val,
x_creation_date,
x_created_by,
x_last_update_date,
x_last_updated_by,
x_last_update_login
);
IF p_action IN ( 'INSERT', 'VALIDATE_INSERT','UPDATE','VALIDATE_UPDATE') THEN
IF NOT validate_overlapping(x_course_cd , x_version_number,x_yr_num ,
x_effective_start_dt , x_effective_end_dt,x_rowid ) THEN
fnd_message.set_name('IGS','IGS_PS_OVERLAP_PERIODS');
IF (p_action = 'INSERT') THEN
-- Call all the procedures related to Before Insert.
BeforeRowInsertUpdateDelete1 ( p_inserting => TRUE );
ELSIF (p_action = 'UPDATE') THEN
-- Call all the procedures related to Before Update.
BeforeRowInsertUpdateDelete1 ( p_updating => TRUE );
ELSIF (p_action = 'DELETE') THEN
-- Call all the procedures related to Before Delete.
BeforeRowInsertUpdateDelete1 ( p_deleting => TRUE );
ELSIF (p_action = 'VALIDATE_INSERT') THEN
IF Get_PK_For_Validation (
new_references.course_cd,
new_references.version_number,
new_references.yr_num,
new_references.effective_start_dt) THEN
Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
ELSIF (p_action = 'VALIDATE_UPDATE') THEN
Check_Constraints;
ELSIF (p_action = 'VALIDATE_DELETE') THEN
Check_Child_Existance;
procedure INSERT_ROW (
X_ROWID in out NOCOPY VARCHAR2,
X_VERSION_NUMBER in NUMBER,
X_COURSE_CD in VARCHAR2,
X_YR_NUM in NUMBER,
X_EFFECTIVE_START_DT in DATE,
X_EFFECTIVE_END_DT in DATE,
X_ANNUAL_LOAD_VAL in NUMBER,
X_MODE in VARCHAR2 default 'R'
) AS
cursor C is select ROWID from IGS_PS_ANL_LOAD
where VERSION_NUMBER = X_VERSION_NUMBER
and COURSE_CD = X_COURSE_CD
and YR_NUM = X_YR_NUM
and EFFECTIVE_START_DT = X_EFFECTIVE_START_DT;
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_version_number => X_VERSION_NUMBER,
x_yr_num => X_YR_NUM,
x_effective_start_dt => X_EFFECTIVE_START_DT,
x_effective_end_dt => X_EFFECTIVE_END_DT ,
x_annual_load_val => X_ANNUAL_LOAD_VAL ,
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_PS_ANL_LOAD (
VERSION_NUMBER,
COURSE_CD,
YR_NUM,
EFFECTIVE_START_DT,
EFFECTIVE_END_DT,
ANNUAL_LOAD_VAL,
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
LAST_UPDATE_LOGIN
) values (
NEW_REFERENCES.VERSION_NUMBER,
NEW_REFERENCES.COURSE_CD,
NEW_REFERENCES.YR_NUM,
NEW_REFERENCES.EFFECTIVE_START_DT,
NEW_REFERENCES.EFFECTIVE_END_DT,
NEW_REFERENCES.ANNUAL_LOAD_VAL,
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
EFFECTIVE_END_DT,
ANNUAL_LOAD_VAL
from IGS_PS_ANL_LOAD
where ROWID = X_ROWID
for update nowait;
fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
procedure UPDATE_ROW (
X_ROWID IN VARCHAR2,
X_VERSION_NUMBER in NUMBER,
X_COURSE_CD in VARCHAR2,
X_YR_NUM in NUMBER,
X_EFFECTIVE_START_DT in DATE,
X_EFFECTIVE_END_DT in DATE,
X_ANNUAL_LOAD_VAL in NUMBER,
X_MODE in VARCHAR2 default 'R'
) 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_version_number => X_VERSION_NUMBER,
x_yr_num => X_YR_NUM,
x_effective_start_dt => X_EFFECTIVE_START_DT,
x_effective_end_dt => X_EFFECTIVE_END_DT ,
x_annual_load_val => X_ANNUAL_LOAD_VAL ,
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_PS_ANL_LOAD set
EFFECTIVE_END_DT = NEW_REFERENCES.EFFECTIVE_END_DT,
ANNUAL_LOAD_VAL = NEW_REFERENCES.ANNUAL_LOAD_VAL,
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_PS_ANL_LOAD
where VERSION_NUMBER = X_VERSION_NUMBER
and COURSE_CD = X_COURSE_CD
and YR_NUM = X_YR_NUM
and EFFECTIVE_START_DT = X_EFFECTIVE_START_DT
;
INSERT_ROW (
X_ROWID,
X_VERSION_NUMBER,
X_COURSE_CD,
X_YR_NUM,
X_EFFECTIVE_START_DT,
X_EFFECTIVE_END_DT,
X_ANNUAL_LOAD_VAL,
X_MODE);
UPDATE_ROW (
X_ROWID,
X_VERSION_NUMBER,
X_COURSE_CD,
X_YR_NUM,
X_EFFECTIVE_START_DT,
X_EFFECTIVE_END_DT,
X_ANNUAL_LOAD_VAL,
X_MODE);
procedure DELETE_ROW (
X_ROWID in VARCHAR2
) AS
begin
Before_DML (
p_action => 'DELETE',
x_rowid => X_ROWID
);
delete from IGS_PS_ANL_LOAD
where ROWID = X_ROWID;
p_action => 'DELETE',
x_rowid => X_ROWID
);
end DELETE_ROW;