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
/*
|| Created By :
|| Created On : 30-MAY-2005
|| Purpose : Initialises the Old and New references for the columns of the table.
|| Known limitations, enhancements or remarks :
|| Change History :
|| Who When What
|| (reverse chronological order - newest change first)
*/
CURSOR cur_old_ref_values IS
SELECT *
FROM igs_en_plan_units
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;
fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
SELECT rowid
FROM igs_en_plan_units
WHERE person_id = x_person_id
AND course_cd = x_course_cd
AND uoo_id = x_uoo_id
AND cart_error_flag = x_cart_error_flag
FOR UPDATE NOWAIT;
SELECT rowid
FROM igs_en_plan_units
WHERE ((course_cd = x_course_cd) AND
(person_id = x_person_id));
SELECT rowid
FROM igs_en_plan_units
WHERE ((course_cd = x_program_cd) AND
(person_id = x_person_id) AND
(term_cal_type = x_term_cal_type) AND
(term_ci_sequence_number = x_term_sequence_number));
PROCEDURE before_insert_update(p_action IN VARCHAR2) IS
CURSOR c_spa_exists (cp_person_id IN NUMBER, cp_program_cd IN VARCHAR2, cp_term_cal IN VARCHAR2, cp_term_seq IN NUMBER) IS
SELECT PLAN_SHT_STATUS
FROM IGS_EN_SPA_TERMS
WHERE person_id = cp_person_id
AND program_cd = cp_program_cd
AND term_cal_type = cp_term_cal
AND term_sequence_number = cp_term_seq;
IF p_action NOT IN ('INSERT','UPDATE') or new_references.cart_error_flag = 'Y' THEN
RETURN;
-- Call the API to Create/Update the term record.
igs_en_spa_terms_api.create_update_term_rec(p_person_id => new_references.person_id,
p_program_cd => new_references.course_cd,
p_term_cal_type =>new_references.term_cal_type,
p_term_sequence_number => new_references.term_ci_sequence_number,
p_plan_sht_status => 'PLAN',
p_ripple_frwrd => FALSE,
p_message_name => l_message_name,
p_update_rec => TRUE);
END before_insert_update;
SELECT UOO_ID FROM IGS_EN_PLAN_UNITS
WHERE PERSON_ID= cp_person_id
AND COURSE_CD = cp_course_Cd
AND TERM_CAL_TYPE = cp_term_cal_type
AND TERM_CI_SEQUENCE_NUMBER =cp_term_ci_sequence_number
AND CART_ERROR_FLAG ='N';
IF p_action = 'DELETE' THEN
OPEN c_plan_rec_exists(old_references.person_id,old_references.course_cd,
old_references.term_cal_type,old_references.term_ci_sequence_number) ;
-- Call the API to Create/Update the term record.
igs_en_spa_terms_api.create_update_term_rec(p_person_id => old_references.person_id,
p_program_cd => old_references.course_cd,
p_term_cal_type =>old_references.term_cal_type,
p_term_sequence_number => old_references.term_ci_sequence_number,
p_plan_sht_status => 'NONE',
p_ripple_frwrd => FALSE,
p_message_name => l_message_name,
p_update_rec => TRUE);
END IF; -- p_action = 'DELETE'
x_last_update_date IN DATE,
x_last_updated_by IN NUMBER,
x_last_update_login IN NUMBER
) AS
/*
|| Created By :
|| Created On : 30-MAY-2005
|| Purpose : Initialises the columns, Checks Constraints, Calls the
|| Trigger Handlers for the table, before any DML operation.
|| Known limitations, enhancements or remarks :
|| Change History :
|| Who When What
|| (reverse chronological order - newest change first)
*/
CURSOR cur_sub_uoo(cp_n_uoo_id IN NUMBER) IS
SELECT sub.sup_uoo_id
FROM igs_ps_unit_ofr_opt sub
WHERE sub.uoo_id = cp_n_uoo_id ;
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.
IF ( get_pk_for_validation(
new_references.person_id,
new_references.course_cd,
new_references.uoo_id,
new_references.cart_error_flag
)
) THEN
fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
before_insert_update(p_action);
ELSIF (p_action = 'UPDATE') THEN
-- Call all the procedures related to Before Update.
before_insert_update(p_action);
ELSIF (p_action = 'VALIDATE_INSERT') THEN
-- Call all the procedures related to Before Insert.
IF ( get_pk_for_validation (
new_references.person_id,
new_references.course_cd,
new_references.uoo_id,
new_references.cart_error_flag
)
) THEN
fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
IF p_action IN ( 'INSERT','UPDATE') AND new_references.sup_uoo_id IS NULL THEN
OPEN cur_sub_uoo(new_references.uoo_id);
PROCEDURE insert_row (
x_rowid IN OUT NOCOPY VARCHAR2,
x_person_id IN NUMBER,
x_course_cd IN VARCHAR2,
x_uoo_id IN NUMBER,
x_term_cal_type IN VARCHAR2,
x_term_ci_sequence_number IN NUMBER,
x_no_assessment_ind IN VARCHAR2,
x_sup_uoo_id IN NUMBER,
x_override_enrolled_cp IN NUMBER,
x_grading_schema_code IN VARCHAR2,
x_gs_version_number IN NUMBER,
x_core_indicator_code IN VARCHAR2,
x_alternative_title IN VARCHAR2,
x_cart_error_flag IN VARCHAR2,
x_session_id IN NUMBER,
x_mode IN VARCHAR2
) AS
/*
|| Created By :
|| Created On : 30-MAY-2005
|| Purpose : Handles the INSERT DML logic for the table.
|| Known limitations, enhancements or remarks :
|| Change History :
|| Who When What
|| (reverse chronological order - newest change first)
*/
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;
fnd_message.set_token ('ROUTINE', 'IGS_EN_PLAN_UNITS_PKG.INSERT_ROW');
p_action => 'INSERT',
x_rowid => x_rowid,
x_person_id => x_person_id,
x_course_cd => x_course_cd,
x_uoo_id => x_uoo_id,
x_term_cal_type => x_term_cal_type,
x_term_ci_sequence_number => x_term_ci_sequence_number,
x_no_assessment_ind => x_no_assessment_ind,
x_sup_uoo_id => x_sup_uoo_id,
x_override_enrolled_cp => x_override_enrolled_cp,
x_grading_schema_code => x_grading_schema_code,
x_gs_version_number => x_gs_version_number,
x_core_indicator_code => x_core_indicator_code,
x_alternative_title => x_alternative_title,
x_cart_error_flag => x_cart_error_flag,
x_session_id => x_session_id,
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_en_plan_units (
person_id,
course_cd,
uoo_id,
term_cal_type,
term_ci_sequence_number,
no_assessment_ind,
sup_uoo_id,
override_enrolled_cp,
grading_schema_code,
gs_version_number,
core_indicator_code,
alternative_title,
cart_error_flag,
session_id,
creation_date,
created_by,
last_update_date,
last_updated_by,
last_update_login
) VALUES (
new_references.person_id,
new_references.course_cd,
new_references.uoo_id,
new_references.term_cal_type,
new_references.term_ci_sequence_number,
new_references.no_assessment_ind,
new_references.sup_uoo_id,
new_references.override_enrolled_cp,
new_references.grading_schema_code,
new_references.gs_version_number,
new_references.core_indicator_code,
new_references.alternative_title,
new_references.cart_error_flag,
new_references.session_id,
x_last_update_date,
x_last_updated_by,
x_last_update_date,
x_last_updated_by,
x_last_update_login
) RETURNING ROWID INTO x_rowid;
END insert_row;
SELECT
term_cal_type,
term_ci_sequence_number,
no_assessment_ind,
sup_uoo_id,
override_enrolled_cp,
grading_schema_code,
gs_version_number,
core_indicator_code,
alternative_title,
session_id
FROM igs_en_plan_units
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_course_cd IN VARCHAR2,
x_uoo_id IN NUMBER,
x_term_cal_type IN VARCHAR2,
x_term_ci_sequence_number IN NUMBER,
x_no_assessment_ind IN VARCHAR2,
x_sup_uoo_id IN NUMBER,
x_override_enrolled_cp IN NUMBER,
x_grading_schema_code IN VARCHAR2,
x_gs_version_number IN NUMBER,
x_core_indicator_code IN VARCHAR2,
x_alternative_title IN VARCHAR2,
x_cart_error_flag IN VARCHAR2,
x_session_id IN NUMBER,
x_mode IN VARCHAR2
) AS
/*
|| Created By :
|| Created On : 30-MAY-2005
|| Purpose : Handles the UPDATE DML logic for the table.
|| Known limitations, enhancements or remarks :
|| Change History :
|| Who When What
|| (reverse chronological order - newest change first)
*/
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;
fnd_message.set_token ('ROUTINE', 'IGS_EN_PLAN_UNITS_PKG.UPDATE_ROW');
p_action => 'UPDATE',
x_rowid => x_rowid,
x_person_id => x_person_id,
x_course_cd => x_course_cd,
x_uoo_id => x_uoo_id,
x_term_cal_type => x_term_cal_type,
x_term_ci_sequence_number => x_term_ci_sequence_number,
x_no_assessment_ind => x_no_assessment_ind,
x_sup_uoo_id => x_sup_uoo_id,
x_override_enrolled_cp => x_override_enrolled_cp,
x_grading_schema_code => x_grading_schema_code,
x_gs_version_number => x_gs_version_number,
x_core_indicator_code => x_core_indicator_code,
x_alternative_title => x_alternative_title,
x_cart_error_flag => x_cart_error_flag,
x_session_id => x_session_id,
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_en_plan_units
SET
term_cal_type = new_references.term_cal_type,
term_ci_sequence_number = new_references.term_ci_sequence_number,
no_assessment_ind = new_references.no_assessment_ind,
sup_uoo_id = new_references.sup_uoo_id,
override_enrolled_cp = new_references.override_enrolled_cp,
grading_schema_code = new_references.grading_schema_code,
gs_version_number = new_references.gs_version_number,
core_indicator_code = new_references.core_indicator_code,
alternative_title = new_references.alternative_title,
session_id = new_references.session_id,
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;
END update_row;
|| Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
|| Known limitations, enhancements or remarks :
|| Change History :
|| Who When What
|| (reverse chronological order - newest change first)
*/
CURSOR c1 IS
SELECT rowid
FROM igs_en_plan_units
WHERE person_id = x_person_id
AND course_cd = x_course_cd
AND uoo_id = x_uoo_id
AND cart_error_flag = x_cart_error_flag;
insert_row (
x_rowid,
x_person_id,
x_course_cd,
x_uoo_id,
x_term_cal_type,
x_term_ci_sequence_number,
x_no_assessment_ind,
x_sup_uoo_id,
x_override_enrolled_cp,
x_grading_schema_code,
x_gs_version_number,
x_core_indicator_code,
x_alternative_title,
x_cart_error_flag,
x_session_id,
x_mode
);
update_row (
x_rowid,
x_person_id,
x_course_cd,
x_uoo_id,
x_term_cal_type,
x_term_ci_sequence_number,
x_no_assessment_ind,
x_sup_uoo_id,
x_override_enrolled_cp,
x_grading_schema_code,
x_gs_version_number,
x_core_indicator_code,
x_alternative_title,
x_cart_error_flag,
x_session_id,
x_mode
);
PROCEDURE delete_row (
x_rowid IN VARCHAR2
) AS
/*
|| Created By :
|| Created On : 30-MAY-2005
|| Purpose : Handles the DELETE DML logic for the table.
|| Known limitations, enhancements or remarks :
|| Change History :
|| Who When What
|| (reverse chronological order - newest change first)
*/
BEGIN
before_dml (
p_action => 'DELETE',
x_rowid => x_rowid
);
DELETE FROM igs_en_plan_units
WHERE rowid = x_rowid;
p_action => 'DELETE',
x_rowid => X_ROWID
);
END delete_row;