The following lines contain the word 'select', 'insert', 'update' or 'delete':
SELECT 'Duplidate'
FROM ce_forecast_headers cfh
WHERE cfh.name = X_name
AND (X_rowid IS NULL
OR cfh.rowid <> chartorowid(X_rowid));
PROCEDURE Insert_Row(
X_rowid IN OUT NOCOPY VARCHAR2,
X_forecast_header_id IN OUT NOCOPY NUMBER,
X_name VARCHAR2,
X_description VARCHAR2,
X_aging_type VARCHAR2,
X_overdue_transactions VARCHAR2,
X_cutoff_period NUMBER,
X_transaction_calendar_id NUMBER,
X_start_project_id NUMBER,
X_end_project_id NUMBER,
X_treasury_template VARCHAR2,
X_created_by NUMBER,
X_creation_date DATE,
X_last_updated_by NUMBER,
X_last_update_date DATE,
X_last_update_login NUMBER,
X_attribute_category VARCHAR2,
X_attribute1 VARCHAR2,
X_attribute2 VARCHAR2,
X_attribute3 VARCHAR2,
X_attribute4 VARCHAR2,
X_attribute5 VARCHAR2,
X_attribute6 VARCHAR2,
X_attribute7 VARCHAR2,
X_attribute8 VARCHAR2,
X_attribute9 VARCHAR2,
X_attribute10 VARCHAR2,
X_attribute11 VARCHAR2,
X_attribute12 VARCHAR2,
X_attribute13 VARCHAR2,
X_attribute14 VARCHAR2,
X_attribute15 VARCHAR2
) IS
CURSOR C IS SELECT rowid FROM ce_forecast_headers
WHERE forecast_header_id = X_forecast_header_id;
CURSOR C2 IS SELECT ce_forecast_headers_s.nextval FROM sys.dual;
INSERT INTO ce_forecast_headers(
forecast_header_id,
name,
description,
aging_type,
overdue_transactions,
cutoff_period,
transaction_calendar_id,
start_project_id,
end_project_id,
treasury_template,
created_by,
creation_date,
last_updated_by,
last_update_date,
last_update_login,
attribute_category,
attribute1,
attribute2,
attribute3,
attribute4,
attribute5,
attribute6,
attribute7,
attribute8,
attribute9,
attribute10,
attribute11,
attribute12,
attribute13,
attribute14,
attribute15
) VALUES (
X_forecast_header_id,
X_name,
X_description,
X_aging_type,
X_overdue_transactions,
X_cutoff_period,
X_transaction_calendar_id,
X_start_project_id,
X_end_project_id,
X_treasury_template,
X_created_by,
X_creation_date,
X_last_updated_by,
X_last_update_date,
X_last_update_login,
X_attribute_category,
X_attribute1,
X_attribute2,
X_attribute3,
X_attribute4,
X_attribute5,
X_attribute6,
X_attribute7,
X_attribute8,
X_attribute9,
X_attribute10,
X_attribute11,
X_attribute12,
X_attribute13,
X_attribute14,
X_attribute15
);
CE_FORECAST_COLUMNS_PKG.insert_row(
X_rowid => p_row_id,
X_forecast_column_id => p_forecast_column_id,
X_forecast_header_id => X_forecast_header_id,
X_column_number => 0,
X_days_from => -X_cutoff_period+1,
X_days_to => 0,
X_developer_column_num => 0,
X_created_by => X_created_by,
X_creation_date => X_creation_date,
X_last_updated_by => X_last_updated_by,
X_last_update_date => X_last_update_date,
X_last_update_login => X_last_update_login,
X_attribute_category => null,
X_attribute1 => null,
X_attribute2 => null,
X_attribute3 => null,
X_attribute4 => null,
X_attribute5 => null,
X_attribute6 => null,
X_attribute7 => null,
X_attribute8 => null,
X_attribute9 => null,
X_attribute10 => null,
X_attribute11 => null,
X_attribute12 => null,
X_attribute13 => null,
X_attribute14 => null,
X_attribute15 => null);
END Insert_Row;
X_last_updated_by NUMBER,
X_last_update_date DATE,
X_last_update_login NUMBER,
X_attribute_category VARCHAR2,
X_attribute1 VARCHAR2,
X_attribute2 VARCHAR2,
X_attribute3 VARCHAR2,
X_attribute4 VARCHAR2,
X_attribute5 VARCHAR2,
X_attribute6 VARCHAR2,
X_attribute7 VARCHAR2,
X_attribute8 VARCHAR2,
X_attribute9 VARCHAR2,
X_attribute10 VARCHAR2,
X_attribute11 VARCHAR2,
X_attribute12 VARCHAR2,
X_attribute13 VARCHAR2,
X_attribute14 VARCHAR2,
X_attribute15 VARCHAR2
) IS
CURSOR C IS
SELECT *
FROM ce_forecast_headers
WHERE rowid = X_rowid
FOR UPDATE of forecast_header_id NOWAIT;
FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
PROCEDURE Update_Row(
X_rowid VARCHAR2,
X_forecast_header_id NUMBER,
X_name VARCHAR2,
X_description VARCHAR2,
X_aging_type VARCHAR2,
X_overdue_transactions VARCHAR2,
X_cutoff_period NUMBER,
X_transaction_calendar_id NUMBER,
X_start_project_id NUMBER,
X_end_project_id NUMBER,
X_created_by NUMBER,
X_creation_date DATE,
X_last_updated_by NUMBER,
X_last_update_date DATE,
X_last_update_login NUMBER,
X_attribute_category VARCHAR2,
X_attribute1 VARCHAR2,
X_attribute2 VARCHAR2,
X_attribute3 VARCHAR2,
X_attribute4 VARCHAR2,
X_attribute5 VARCHAR2,
X_attribute6 VARCHAR2,
X_attribute7 VARCHAR2,
X_attribute8 VARCHAR2,
X_attribute9 VARCHAR2,
X_attribute10 VARCHAR2,
X_attribute11 VARCHAR2,
X_attribute12 VARCHAR2,
X_attribute13 VARCHAR2,
X_attribute14 VARCHAR2,
X_attribute15 VARCHAR2
) IS
p_row_id VARCHAR2(100);
SELECT overdue_transactions, cutoff_period
INTO p_overdue_transactions, p_cutoff_period
FROM CE_FORECAST_HEADERS
WHERE rowid = X_rowid;
UPDATE ce_forecast_headers
SET
forecast_header_id = X_forecast_header_id,
name = X_name,
description = X_description,
aging_type = X_aging_type,
overdue_transactions = X_overdue_transactions,
cutoff_period = X_cutoff_period,
transaction_calendar_id = X_transaction_calendar_id,
start_project_id = X_start_project_id,
end_project_id = X_end_project_id,
attribute_category = X_attribute_category,
attribute1 = X_attribute1,
attribute2 = X_attribute2,
attribute3 = X_attribute3,
attribute4 = X_attribute4,
attribute5 = X_attribute5,
attribute6 = X_attribute6,
attribute7 = X_attribute7,
attribute8 = X_attribute8,
attribute9 = X_attribute9,
attribute10 = X_attribute10,
attribute11 = X_attribute11,
attribute12 = X_attribute12,
attribute13 = X_attribute13,
attribute14 = X_attribute14,
attribute15 = X_attribute15
WHERE rowid = X_rowid;
-- If overdue_transactions is updated from 'N' to 'Y', insert
-- new column for overdue transactions in column table
--
IF(p_overdue_transactions = 'EXCLUDE' AND
X_overdue_transactions = 'INCLUDE')THEN
CE_FORECAST_COLUMNS_PKG.insert_row(
X_rowid => p_row_id,
X_forecast_column_id => p_forecast_column_id,
X_forecast_header_id => X_forecast_header_id,
X_column_number => 0,
X_days_from => -X_cutoff_period+1,
X_days_to => 0,
X_developer_column_num => 0,
X_created_by => X_created_by,
X_creation_date => X_creation_date,
X_last_updated_by => X_last_updated_by,
X_last_update_date => X_last_update_date,
X_last_update_login => X_last_update_login,
X_attribute_category => null,
X_attribute1 => null,
X_attribute2 => null,
X_attribute3 => null,
X_attribute4 => null,
X_attribute5 => null,
X_attribute6 => null,
X_attribute7 => null,
X_attribute8 => null,
X_attribute9 => null,
X_attribute10 => null,
X_attribute11 => null,
X_attribute12 => null,
X_attribute13 => null,
X_attribute14 => null,
X_attribute15 => null);
-- If cutoff_period is updated, update the column table accordingly
--
IF(p_overdue_transactions = 'INCLUDE' AND
X_overdue_transactions = 'INCLUDE' AND
p_cutoff_period <> X_cutoff_period) THEN
UPDATE CE_FORECAST_COLUMNS
SET days_from = -X_cutoff_period+1
WHERE forecast_header_id = X_forecast_header_id
AND column_number = 0
AND developer_column_num = 0;
-- If overdue_transactions is updated from 'Y' to 'N', delete
-- the overdue column from the column table
--
IF(p_overdue_transactions = 'INCLUDE' AND
X_overdue_transactions = 'EXCLUDE')THEN
DELETE FROM CE_FORECAST_COLUMNS
WHERE forecast_header_id = X_forecast_header_id
AND column_number = 0
AND developer_column_num = 0;
END Update_Row;
PROCEDURE Delete_Row(X_rowid VARCHAR2) IS
p_forecast_header_id NUMBER;
SELECT forecast_header_id
INTO p_forecast_header_id
FROM CE_FORECAST_HEADERS
WHERE rowid = X_rowid;
DELETE FROM CE_FORECAST_ROWS
WHERE forecast_header_id = p_forecast_header_id;
DELETE FROM CE_FORECAST_COLUMNS
WHERE forecast_header_id = p_forecast_header_id;
DELETE FROM ce_forecast_headers
WHERE rowid = X_rowid;
END Delete_Row;
PROCEDURE Delete_Forecasts(X_rowid VARCHAR2) IS
p_forecast_header_id NUMBER;
SELECT forecast_header_id
INTO p_forecast_header_id
FROM CE_FORECAST_HEADERS
WHERE rowid = X_rowid;
DELETE FROM CE_FORECAST_CELLS
WHERE forecast_header_id = p_forecast_header_id;
DELETE FROM CE_FORECASTS
WHERE forecast_header_id = p_forecast_header_id;
END Delete_Forecasts;