The following lines contain the word 'select', 'insert', 'update' or 'delete':
28-JUL-95 P Cook Split up delete_record to use quota_assign index.
Only try to delete srp records if a quota assignment
record was deleted.
*/
/* -------------------------------------------------------------------------
| Variables |
--------------------------------------------------------------------------*/
-- All srp plan assigns using this comp plan id
CURSOR reps (x_comp_plan_id NUMBER) IS
SELECT srp_plan_assign_id, salesrep_id, role_id, start_date, end_date
FROM cn_srp_plan_assigns
WHERE comp_plan_id = x_comp_plan_id;
SELECT cn_quota_assigns_s.nextval
INTO X_Quota_Assign_Id
FROM sys.dual;
PROCEDURE Insert_Record( X_Quota_Id NUMBER
,X_Comp_Plan_Id NUMBER
,X_Quota_Assign_Id IN OUT NOCOPY NUMBER
,X_Quota_Sequence NUMBER
,X_ORG_ID NUMBER) IS
l_name cn_comp_plans.name%TYPE;
select start_date, end_date
from cn_srp_pay_groups
where salesrep_id = srp_id;
INSERT INTO cn_quota_assigns
(
Quota_Id
,Comp_Plan_Id
,Quota_Assign_Id
,Quota_Sequence
,created_by
,creation_date
,last_updated_by
,last_update_date
,last_update_login
,object_version_number
,org_id)
VALUES
(
X_Quota_Id
,X_Comp_Plan_Id
,X_Quota_Assign_Id
,X_Quota_Sequence
,fnd_global.user_id
,sysdate
,fnd_global.user_id
,sysdate
,fnd_global.login_id
,0
,X_ORG_ID );
cn_srp_quota_assigns_pkg.insert_record
( x_srp_plan_assign_id => rep_rec.srp_plan_assign_id
,x_quota_id => x_quota_id);
SELECT name, start_date, end_date
INTO l_name, l_start_date, l_end_date
FROM cn_comp_plans
WHERE comp_plan_id = x_comp_plan_id;
END Insert_Record;
PROCEDURE Update_Record( X_Quota_Id NUMBER
,X_Comp_Plan_Id NUMBER
,X_Quota_Assign_Id NUMBER
,X_Quota_Sequence NUMBER
,x_quota_id_old VARCHAR2
,X_ORG_ID NUMBER) IS
l_start_date DATE;
select start_date, end_date
from cn_srp_pay_groups
where salesrep_id = srp_id;
UPDATE cn_quota_assigns
SET quota_id = x_quota_id
,comp_plan_id = x_comp_plan_id
,quota_sequence = X_Quota_Sequence
,last_updated_by = fnd_global.user_id
,last_update_date = sysdate
,last_update_login = fnd_global.login_id
,object_version_number = object_version_number + 1
WHERE quota_assign_id = x_quota_assign_id;
cn_srp_quota_assigns_pkg.delete_record(
x_srp_plan_assign_id => rep_rec.srp_plan_assign_id
,x_quota_id => x_quota_id_old);
cn_srp_quota_assigns_pkg.insert_record(
x_srp_plan_assign_id => rep_rec.srp_plan_assign_id
,x_quota_id => x_quota_id);
END Update_Record;
PROCEDURE Delete_Record( X_Quota_Assign_Id NUMBER
,X_Comp_Plan_Id NUMBER
,x_quota_id NUMBER) IS
l_name cn_comp_plans.name%TYPE;
Select quota_id
from cn_quota_assigns
where comp_plan_id = nvl(x_comp_plan_id, comp_plan_id )
and quota_assign_id = nvl(x_quota_assign_id, quota_assign_id) ;
DELETE FROM cn_quota_assigns
WHERE comp_plan_id = x_comp_plan_id;
DELETE FROM cn_quota_assigns
WHERE quota_assign_id = x_quota_assign_id
AND comp_plan_id = x_comp_plan_id;
SELECT name, start_date, end_date
INTO l_name, l_start_date, l_end_date
FROM cn_comp_plans
WHERE comp_plan_id = x_comp_plan_id;
select org_id into l_org_id from cn_comp_plans
where comp_plan_id = x_comp_plan_id;
cn_srp_quota_assigns_pkg.delete_record
( x_srp_plan_assign_id => rep_rec.srp_plan_assign_id
,x_quota_id => x_quota_id);
END Delete_Record;
SELECT *
FROM cn_quota_assigns
WHERE quota_assign_id = x_quota_assign_id
FOR UPDATE OF quota_assign_id NOWAIT;
FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
IF X_Operation = 'INSERT' THEN
Insert_record ( X_Quota_Id
,X_Comp_Plan_Id
,X_Quota_Assign_Id
,X_Quota_Sequence
,X_ORG_ID );
ELSIF X_Operation = 'UPDATE' THEN
Update_record ( X_Quota_Id
,X_Comp_Plan_Id
,X_Quota_Assign_Id
,X_Quota_Sequence
,x_quota_id_old
,X_ORG_ID );
ELSIF X_Operation = 'DELETE' THEN
Delete_Record ( X_Quota_Assign_Id
,X_Comp_Plan_Id
,x_quota_id);
SELECT name
,quota_type_code
INTO x_name
,x_quota_type_code
FROM cn_quotas
WHERE quota_id = X_quota_id
;
SELECT 1 INTO X_dummy FROM sys.dual
WHERE EXISTS ( SELECT 1
FROM cn_quotas
WHERE quota_id = X_quota_id)
;
fnd_message.Set_Name('CN', 'PLN_QUOTA_DELETED');
SELECT 1
INTO x_dummy
FROM sys.dual
WHERE NOT EXISTS (
SELECT 1
FROM cn_quota_assigns
WHERE quota_id = x_quota_id
AND comp_plan_id = x_comp_plan_id
AND ( x_quota_assign_id IS NULL
OR quota_assign_id <> x_quota_assign_id))
;