The following lines contain the word 'select', 'insert', 'update' or 'delete':
G_LAST_UPDATE_DATE DATE := sysdate;
G_LAST_UPDATED_BY NUMBER := fnd_global.user_id;
G_LAST_UPDATE_LOGIN NUMBER := fnd_global.login_id;
SELECT COUNT(*)
INTO l_tmp
FROM cn_rt_Quota_asgns
WHERE quota_id = p_quota_id
AND calc_formula_id = l_calc_formula_id
AND rt_quota_asgn_id <> Nvl(x_rt_quota_asgn_id,0)
AND Trunc(start_date) = Trunc(p_rt_quota_Asgns_rec.start_date)
;
x_loading_status := 'CN_INSERTED';
-- Insert the Rt_quota assigns record.
CN_RT_QUOTA_ASGNS_PKG.begin_record
(x_org_id => p_org_id,
x_Operation => 'INSERT'
,x_Rowid => G_ROWID
,x_rt_quota_asgn_id => l_rt_quota_asgn_id
,x_calc_formula_id => l_calc_formula_id
,x_quota_id => l_quota_id
,x_start_date => p_rt_quota_asgns_rec_tbl(i).start_date
,x_end_date => p_rt_quota_asgns_rec_tbl(i).end_date
,x_rate_schedule_id => l_rate_schedule_id
,x_attribute_category => p_rt_quota_asgns_rec_tbl(i).attribute_category
,x_attribute1 => p_rt_quota_asgns_rec_tbl(i).attribute1
,x_attribute2 => p_rt_quota_asgns_rec_tbl(i).attribute2
,x_attribute3 => p_rt_quota_asgns_rec_tbl(i).attribute3
,x_attribute4 => p_rt_quota_asgns_rec_tbl(i).attribute4
,x_attribute5 => p_rt_quota_asgns_rec_tbl(i).attribute5
,x_attribute6 => p_rt_quota_asgns_rec_tbl(i).attribute6
,x_attribute7 => p_rt_quota_asgns_rec_tbl(i).attribute7
,x_attribute8 => p_rt_quota_asgns_rec_tbl(i).attribute8
,x_attribute9 => p_rt_quota_asgns_rec_tbl(i).attribute9
,x_attribute10 => p_rt_quota_asgns_rec_tbl(i).attribute10
,x_attribute11 => p_rt_quota_asgns_rec_tbl(i).attribute11
,x_attribute12 => p_rt_quota_asgns_rec_tbl(i).attribute12
,x_attribute13 => p_rt_quota_asgns_rec_tbl(i).attribute13
,x_attribute14 => p_rt_quota_asgns_rec_tbl(i).attribute14
,x_attribute15 => p_rt_quota_asgns_rec_tbl(i).attribute15
,x_last_update_date => G_LAST_UPDATE_DATE
,x_last_updated_by => G_LAST_UPDATED_BY
,x_creation_date => G_CREATION_DATE
,x_created_by => G_CREATED_BY
,x_last_update_login => G_LAST_UPDATE_LOGIN
,x_Program_type => G_program_type,
x_object_version_number => x_object_version_number ) ;
PROCEDURE Update_rt_quota_asgns
(
p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_quota_name IN cn_quotas.name%TYPE,
p_org_id IN NUMBER,
p_rt_quota_asgns_rec_tbl IN cn_plan_element_pub.rt_quota_asgns_rec_tbl_type
:= cn_plan_element_pub.g_miss_rt_quota_asgns_rec_tbl,
x_loading_status OUT NOCOPY VARCHAR2,
x_object_version_number IN OUT NOCOPY NUMBER
) IS
l_api_name CONSTANT VARCHAR2(30)
:= 'Update_Rt_Quota_Asgns';
SAVEPOINT Update_Plan_element ;
x_loading_status := 'CN_UPDATED';
-- Validate the new record and get the old id for update
Validate_rt_quota_asgns
(
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_rt_quota_asgns_rec => p_rt_quota_asgns_rec_tbl(i),
p_quota_name => p_quota_name,
p_org_id => p_org_id,
p_quota_id => l_quota_id,
x_rate_schedule_id => l_rate_schedule_id,
x_rt_quota_asgn_id => l_rt_quota_asgn_id,
x_calc_formula_id => l_calc_formula_id,
p_loading_status => x_loading_status,
x_loading_status => l_loading_status
);
AND ( x_loading_status = 'CN_UPDATED' )
THEN
-- Update Rt Quota Assigns
CN_RT_QUOTA_ASGNS_PKG.begin_record
(x_org_id => p_org_id,
x_Operation => 'UPDATE'
,x_Rowid => G_ROWID
,x_rt_quota_asgn_id => l_rt_quota_asgn_id
,x_calc_formula_id => l_calc_formula_id
,x_quota_id => l_quota_id
,x_start_date => p_rt_quota_asgns_rec_tbl(i).start_date
,x_end_date => p_rt_quota_asgns_rec_tbl(i).end_date
,x_rate_schedule_id => l_rate_schedule_id
,x_attribute_category => p_rt_quota_asgns_rec_tbl(i).attribute_category
,x_attribute1 => p_rt_quota_asgns_rec_tbl(i).attribute1
,x_attribute2 => p_rt_quota_asgns_rec_tbl(i).attribute2
,x_attribute3 => p_rt_quota_asgns_rec_tbl(i).attribute3
,x_attribute4 => p_rt_quota_asgns_rec_tbl(i).attribute4
,x_attribute5 => p_rt_quota_asgns_rec_tbl(i).attribute5
,x_attribute6 => p_rt_quota_asgns_rec_tbl(i).attribute6
,x_attribute7 => p_rt_quota_asgns_rec_tbl(i).attribute7
,x_attribute8 => p_rt_quota_asgns_rec_tbl(i).attribute8
,x_attribute9 => p_rt_quota_asgns_rec_tbl(i).attribute9
,x_attribute10 => p_rt_quota_asgns_rec_tbl(i).attribute10
,x_attribute11 => p_rt_quota_asgns_rec_tbl(i).attribute11
,x_attribute12 => p_rt_quota_asgns_rec_tbl(i).attribute12
,x_attribute13 => p_rt_quota_asgns_rec_tbl(i).attribute13
,x_attribute14 => p_rt_quota_asgns_rec_tbl(i).attribute14
,x_attribute15 => p_rt_quota_asgns_rec_tbl(i).attribute15
,x_last_update_date => G_LAST_UPDATE_DATE
,x_last_updated_by => G_LAST_UPDATED_BY
,x_creation_date => G_CREATION_DATE
,x_created_by => G_CREATED_BY
,x_last_update_login => G_LAST_UPDATE_LOGIN
,x_Program_type => G_program_type,
x_object_version_number => x_object_version_number ) ;
ROLLBACK TO update_Plan_element;
ROLLBACK TO update_Plan_Element;
ROLLBACK TO update_plan_element;
END Update_rt_quota_Asgns;
PROCEDURE Delete_rt_quota_asgns
(
p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_quota_name IN cn_quotas.name%TYPE,
p_org_id IN NUMBER,
p_rt_quota_asgns_rec_tbl IN cn_plan_element_pub.rt_quota_asgns_rec_tbl_type
:= cn_plan_element_pub.g_miss_rt_quota_asgns_rec_tbl,
x_loading_status OUT NOCOPY VARCHAR2
) IS
l_api_name CONSTANT VARCHAR2(30)
:= 'Delete_Rt_Quota_Asgns';
SAVEPOINT Delete_Rt_Quota_Asgns ;
x_loading_status := 'CN_DELETED';
-- get rt quota Assign ID to delete the record
l_rt_quota_asgn_id := cn_chk_plan_element_pkg.get_rt_quota_asgn_id
(
p_quota_id => l_quota_id,
p_rate_schedule_id => cn_api.get_rate_table_id(
p_rt_quota_asgns_rec_tbl(i).rate_schedule_name,p_rt_quota_asgns_rec_tbl(i).org_id),
p_calc_formula_id => cn_chk_plan_element_pkg.get_calc_formula_id(
p_rt_quota_asgns_rec_tbl(i).calc_formula_name,p_org_id),
p_start_date => p_rt_quota_asgns_rec_tbl(i).start_date,
p_end_date => p_rt_quota_asgns_rec_tbl(i).end_date
);
-- Check wheather delete is Allowed, this only first and last record can be deleted
cn_chk_plan_element_pkg.chk_rate_quota_iud
(
x_return_status => x_return_status,
p_start_Date => p_rt_quota_asgns_rec_tbl(i).start_date,
p_end_date => p_rt_quota_asgns_rec_tbl(i).end_date,
p_iud_flag => 'D',
p_quota_id => l_quota_id,
p_calc_formula_id => cn_chk_plan_element_pkg.get_calc_formula_id(
p_rt_quota_asgns_rec_tbl(i).calc_formula_name,p_org_id),
p_rt_quota_asgn_id => l_rt_quota_asgn_id,
p_loading_status => x_loading_status,
x_loading_status => l_loading_status
);
FND_MESSAGE.SET_NAME ('CN' , 'CN_RATE_DELETE_NOT_ALLOWED' );
x_loading_status := 'CN_RATE_DELETE_NOT_ALLOWED';
-- If the the status is success and the lasding status is CN_DELETED then
-- delete the record.
IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
RAISE FND_API.G_EXC_ERROR ;
AND ( x_loading_status = 'CN_DELETED' )
THEN
-- Delete RT quota Assigns
CN_RT_QUOTA_ASGNS_PKG.begin_record
(x_org_id => p_org_id,
x_Operation => 'DELETE'
,x_Rowid => G_ROWID
,x_rt_quota_asgn_id => l_rt_quota_asgn_id
,x_calc_formula_id => NULL
,x_quota_id => NULL
,x_start_date => NULL
,x_end_date => NULL
,x_rate_schedule_id => NULL
,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
,x_last_update_date => NULL
,x_last_updated_by => NULL
,x_creation_date => NULL
,x_created_by => NULL
,x_last_update_login => NULL
,x_Program_type => NULL,
x_object_version_number => l_object_version_number) ;
ROLLBACK TO delete_rt_quota_asgns;
ROLLBACK TO delete_rt_quota_asgns;
ROLLBACK TO delete_rt_quota_asgns;
END Delete_rt_quota_Asgns;