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 : [email protected]
|| Created On : 05-JUN-2003
|| 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_pe_office_hrs
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 count(1)
FROM igs_pe_office_hrs
WHERE contact_preference_id = cp_contact_preference_id AND
(CP_OFFID <> OFFICE_HRS_ID OR CP_OFFID IS NULL) AND
day_of_week_code = cp_day_of_week_code AND
( TO_DATE(TO_CHAR(end_tm_date,'HH24:MI'),'HH24:MI') > cp_start_tm_date OR TO_DATE(TO_CHAR(end_tm_date,'HH24:MI'),'HH24:MI') >= cp_end_tm_date) AND
(TO_DATE(TO_CHAR(start_tm_date,'HH24:MI'),'HH24:MI') <= cp_start_tm_date OR TO_DATE(TO_CHAR(start_tm_date,'HH24:MI'),'HH24:MI') < cp_end_tm_date);
PROCEDURE BeforeRowInsertUpdate1(
p_inserting IN BOOLEAN,
p_updating IN BOOLEAN,
p_deleting IN BOOLEAN
) AS
/*
|| Created By : [email protected]
|| Created On : 05-JUN-2003
|| Purpose : date validations.
|| Known limitations, enhancements or remarks :
|| Change History :
|| Who When What
|| (reverse chronological order - newest change first)
*/
BEGIN
-- start time should be less than end time, while inserts and updates.
IF (p_inserting OR p_updating) THEN
-- check that start time less than end time
IF (new_references.start_tm_date <> NVL(old_references.start_tm_date,IGS_GE_DATE.IGSDATE('1900/01/01'))) OR
(new_references.end_tm_date <> NVL(old_references.end_tm_date,IGS_GE_DATE.IGSDATE('1900/01/01'))) THEN
IF to_char(new_references.start_tm_date,'HH24:MI') >= to_char(new_references.end_tm_date,'HH24:MI') THEN
FND_MESSAGE.SET_NAME('IGS', 'IGS_GE_ST_TIME_LT_END_TIME');
END BeforeRowInsertUpdate1;
SELECT rowid
FROM IGS_PE_OFFICE_HRS
WHERE office_hrs_id = x_office_hrs_id
FOR UPDATE NOWAIT;
SELECT 'X'
FROM hz_contact_preferences
WHERE contact_preference_id = new_references.contact_preference_id;
FND_MESSAGE.SET_NAME ('FND', 'FORM_RECORD_DELETED');
x_last_update_date IN DATE,
x_last_updated_by IN NUMBER,
x_last_update_login IN NUMBER
) AS
/*
|| Created By : [email protected]
|| Created On : 05-JUN-2003
|| 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)
|| vrathi 10-JUN-2003 Added calls to procedures for locla validation of duplicate records
|| pkpatel 26-JUN-2003 Bug 3026139 (Reversed the call of BeforeRowInsertUpdate1 and validate_overlap procedures)
*/
BEGIN
set_column_values (
p_action,
x_rowid,
x_office_hrs_id,
x_contact_preference_id,
x_day_of_week_code,
x_start_tm_date,
x_end_tm_date,
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 = 'VALIDATE_INSERT') THEN
-- Call all the procedures related to Before Insert.
BeforeRowInsertUpdate1 (
p_inserting => TRUE,
p_updating => FALSE,
p_deleting => FALSE);
-- Call all the procedures related to Before Insert.
IF ( get_pk_for_validation( new_references.office_hrs_id )
) THEN
fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
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.
null;
ELSIF (p_action = 'VALIDATE_DELETE') THEN
-- Call all the procedures related to Before Delete.
null;
ELSIF (p_action = 'VALIDATE_UPDATE') THEN
-- Call all the procedures related to Before Delete.
-- Call all the procedures related to Before Update.
BeforeRowInsertUpdate1 (
p_inserting => FALSE,
p_updating => TRUE,
p_deleting => FALSE );
PROCEDURE insert_row (
x_rowid IN OUT NOCOPY VARCHAR2,
x_office_hrs_id IN OUT NOCOPY NUMBER,
x_contact_preference_id IN NUMBER,
x_day_of_week_code IN VARCHAR2,
x_start_tm_date IN DATE,
x_end_tm_date IN DATE,
x_mode IN VARCHAR2
) AS
/*
|| Created By : [email protected]
|| Created On : 05-JUN-2003
|| 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_PE_OFFICE_HRS_PKG.INSERT_ROW');
p_action => 'INSERT',
x_rowid => x_rowid,
x_office_hrs_id => x_office_hrs_id,
x_contact_preference_id => x_contact_preference_id,
x_day_of_week_code => x_day_of_week_code,
x_start_tm_date => x_start_tm_date,
x_end_tm_date => x_end_tm_date,
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_office_hrs (
office_hrs_id,
contact_preference_id,
day_of_week_code,
start_tm_date,
end_tm_date,
creation_date,
created_by,
last_update_date,
last_updated_by,
last_update_login
) VALUES (
igs_pe_office_hrs_s.NEXTVAL,
new_references.contact_preference_id,
new_references.day_of_week_code,
new_references.start_tm_date,
new_references.end_tm_date,
x_last_update_date,
x_last_updated_by,
x_last_update_date,
x_last_updated_by,
x_last_update_login
) RETURNING ROWID, office_hrs_id INTO x_rowid, x_office_hrs_id;
END insert_row;
SELECT
office_hrs_id,
contact_preference_id,
day_of_week_code,
start_tm_date,
end_tm_date
FROM igs_pe_office_hrs
WHERE rowid = x_rowid
FOR UPDATE NOWAIT;
fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
PROCEDURE update_row (
x_rowid IN VARCHAR2,
x_office_hrs_id IN NUMBER,
x_contact_preference_id IN NUMBER,
x_day_of_week_code IN VARCHAR2,
x_start_tm_date IN DATE,
x_end_tm_date IN DATE,
x_mode IN VARCHAR2
) AS
/*
|| Created By : [email protected]
|| Created On : 05-JUN-2003
|| 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_PE_OFFICE_HRS_PKG.UPDATE_ROW');
p_action => 'UPDATE',
x_rowid => x_rowid,
x_office_hrs_id => x_office_hrs_id,
x_contact_preference_id => x_contact_preference_id,
x_day_of_week_code => x_day_of_week_code,
x_start_tm_date => x_start_tm_date,
x_end_tm_date => x_end_tm_date,
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_office_hrs
SET
office_hrs_id = new_references.office_hrs_id,
contact_preference_id = new_references.contact_preference_id,
day_of_week_code = new_references.day_of_week_code,
start_tm_date = new_references.start_tm_date,
end_tm_date = new_references.end_tm_date,
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_pe_office_hrs
WHERE office_hrs_id= x_office_hrs_id;
insert_row (
x_rowid,
x_office_hrs_id,
x_contact_preference_id,
x_day_of_week_code,
x_start_tm_date,
x_end_tm_date,
x_mode
);
update_row (
x_rowid,
x_office_hrs_id,
x_contact_preference_id,
x_day_of_week_code,
x_start_tm_date,
x_end_tm_date,
x_mode
);
PROCEDURE delete_row (
x_rowid IN VARCHAR2,
x_mode IN VARCHAR2
) AS
/*
|| Created By : [email protected]
|| Created On : 05-JUN-2003
|| 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_pe_office_hrs
WHERE rowid = x_rowid;
END delete_row;
PROCEDURE insert_row_ss (
x_rowid IN OUT NOCOPY VARCHAR2,
x_office_hrs_id IN OUT NOCOPY NUMBER,
x_contact_preference_id IN NUMBER,
x_day_of_week_code IN VARCHAR2,
x_start_tm IN VARCHAR2,
x_end_tm IN VARCHAR2,
x_mode IN VARCHAR2
) AS
/*
|| Created By : [email protected]
|| Created On : 05-JUN-2003
|| Purpose : Handles the INSERT DML logic for the table when called from SS.
|| The time component alone is passed here and not the complete date string.
|| Known limitations, enhancements or remarks :
|| Change History :
|| Who When What
|| (reverse chronological order - newest change first)
*/
l_start_tm_date DATE;
insert_row
(
x_rowid => x_rowid,
x_office_hrs_id => x_office_hrs_id,
x_contact_preference_id => x_contact_preference_id,
x_day_of_week_code => x_day_of_week_code,
x_start_tm_date => l_start_tm_date,
x_end_tm_date => l_end_tm_date,
x_mode => 'R');
END insert_row_ss;
PROCEDURE update_row_ss (
x_rowid IN VARCHAR2,
x_office_hrs_id IN NUMBER,
x_contact_preference_id IN NUMBER,
x_day_of_week_code IN VARCHAR2,
x_start_tm IN VARCHAR2,
x_end_tm IN VARCHAR2,
x_mode IN VARCHAR2)
AS
/*
|| Created By : [email protected]
|| Created On : 05-JUN-2003
|| Purpose : Handles the UPDATE DML logic for the table when called from SS.
|| The time component alone is passed here and not the complete date string.
|| Known limitations, enhancements or remarks :
|| Change History :
|| Who When What
|| (reverse chronological order - newest change first)
*/
l_start_tm_date DATE;
update_row
(
x_rowid => x_rowid,
x_office_hrs_id => x_office_hrs_id,
x_contact_preference_id => x_contact_preference_id,
x_day_of_week_code => x_day_of_week_code,
x_start_tm_date => l_start_tm_date,
x_end_tm_date => l_end_tm_date,
x_mode => 'R');
END update_row_ss;
SELECT
office_hrs_id,
contact_preference_id,
day_of_week_code,
to_char(start_tm_date,'HH24:MI') start_tm_date,
to_char(end_tm_date,'HH24:MI') end_tm_date
FROM igs_pe_office_hrs
WHERE rowid = x_rowid
FOR UPDATE NOWAIT;
fnd_message.set_name('FND', 'FORM_RECORD_DELETED');