40: p_para_name => cn_chk_plan_element_pkg.g_pe_name,
41: p_loading_status => l_loading_status,
42: x_loading_status => l_loading_status
43: )
44: ) = fnd_api.g_true
45: )
46: THEN
47: RAISE fnd_api.g_exc_error;
48: ELSIF ((cn_api.chk_null_char_para (p_char_para => l_quota_rule.plan_element_name,
43: )
44: ) = fnd_api.g_true
45: )
46: THEN
47: RAISE fnd_api.g_exc_error;
48: ELSIF ((cn_api.chk_null_char_para (p_char_para => l_quota_rule.plan_element_name,
49: p_obj_name => cn_chk_plan_element_pkg.g_pe_name,
50: p_loading_status => l_loading_status,
51: x_loading_status => l_loading_status
49: p_obj_name => cn_chk_plan_element_pkg.g_pe_name,
50: p_loading_status => l_loading_status,
51: x_loading_status => l_loading_status
52: )
53: ) = fnd_api.g_true
54: )
55: THEN
56: RAISE fnd_api.g_exc_error;
57: END IF;
52: )
53: ) = fnd_api.g_true
54: )
55: THEN
56: RAISE fnd_api.g_exc_error;
57: END IF;
58:
59: -- Check rev class name is not miss, not null
60: IF ((cn_api.chk_miss_char_para (p_char_para => l_quota_rule.revenue_class_name,
61: p_para_name => cn_chk_plan_element_pkg.g_rev_cls_name,
62: p_loading_status => x_loading_status,
63: x_loading_status => l_loading_status
64: )
65: ) = fnd_api.g_true
66: )
67: THEN
68: RAISE fnd_api.g_exc_error;
69: ELSIF ((cn_api.chk_null_char_para (p_char_para => l_quota_rule.revenue_class_name,
64: )
65: ) = fnd_api.g_true
66: )
67: THEN
68: RAISE fnd_api.g_exc_error;
69: ELSIF ((cn_api.chk_null_char_para (p_char_para => l_quota_rule.revenue_class_name,
70: p_obj_name => cn_chk_plan_element_pkg.g_rev_cls_name,
71: p_loading_status => x_loading_status,
72: x_loading_status => l_loading_status
70: p_obj_name => cn_chk_plan_element_pkg.g_rev_cls_name,
71: p_loading_status => x_loading_status,
72: x_loading_status => l_loading_status
73: )
74: ) = fnd_api.g_true
75: )
76: THEN
77: RAISE fnd_api.g_exc_error;
78: END IF;
73: )
74: ) = fnd_api.g_true
75: )
76: THEN
77: RAISE fnd_api.g_exc_error;
78: END IF;
79:
80: -- Get the Quota ID
81: l_quota_rule.quota_id := cn_chk_plan_element_pkg.get_quota_id (l_quota_rule.plan_element_name, l_quota_rule.org_id);
89: fnd_message.set_token ('PE_NAME', p_quota_name);
90: fnd_msg_pub.ADD;
91: END IF;
92:
93: RAISE fnd_api.g_exc_error;
94: END IF;
95:
96: -- Get Revenue Class ID
97: l_quota_rule.revenue_class_id := cn_api.get_rev_class_id (l_quota_rule.revenue_class_name, l_quota_rule.org_id);
104: fnd_message.set_name ('CN', 'CN_REV_CLASS_NOT_EXIST');
105: fnd_msg_pub.ADD;
106: END IF;
107:
108: RAISE fnd_api.g_exc_error;
109: END IF;
110:
111: -- Get the Quota Rule ID
112: l_quota_rule.quota_rule_id := cn_chk_plan_element_pkg.get_quota_rule_id (l_quota_rule.quota_id, l_quota_rule.revenue_class_id);
122: fnd_message.set_name ('CN', 'CN_REV_CLASS_NOT_EXIST');
123: fnd_msg_pub.ADD;
124: END IF;
125:
126: RAISE fnd_api.g_exc_error;
127: END IF;
128:
129: l_old_quota_rule_id :=
130: cn_chk_plan_element_pkg.get_quota_rule_id (p_quota_id => l_quota_rule.quota_id,
139: fnd_message.set_token ('REVENUE_CLASS_NAME', l_old_name);
140: fnd_msg_pub.ADD;
141: END IF;
142:
143: RAISE fnd_api.g_exc_error;
144: END IF;
145:
146: -- we are updating an existing rev assignment. Use the quota_rule_id
147: l_quota_rule.quota_rule_id := l_old_quota_rule_id;
190: l_temp_rc_old VARCHAR2 (200);
191:
192: BEGIN
193: -- Initialize to success
194: x_return_status := fnd_api.g_ret_sts_success;
195: -- Initialize other fields
196: x_msg_data := fnd_api.g_null_char;
197: x_msg_count := fnd_api.g_null_num;
198: select name into l_temp_old from cn_quotas_v where quota_id = p_quota_rule_new.quota_id;
192: BEGIN
193: -- Initialize to success
194: x_return_status := fnd_api.g_ret_sts_success;
195: -- Initialize other fields
196: x_msg_data := fnd_api.g_null_char;
197: x_msg_count := fnd_api.g_null_num;
198: select name into l_temp_old from cn_quotas_v where quota_id = p_quota_rule_new.quota_id;
199: IF (p_operation = 'create') THEN
200: fnd_message.set_name('CN','CNR12_NOTE_PE_PROD_UPDATE');
193: -- Initialize to success
194: x_return_status := fnd_api.g_ret_sts_success;
195: -- Initialize other fields
196: x_msg_data := fnd_api.g_null_char;
197: x_msg_count := fnd_api.g_null_num;
198: select name into l_temp_old from cn_quotas_v where quota_id = p_quota_rule_new.quota_id;
199: IF (p_operation = 'create') THEN
200: fnd_message.set_name('CN','CNR12_NOTE_PE_PROD_UPDATE');
201: fnd_message.set_token('ELIG_PROD', p_quota_rule_new.revenue_class_name);
234: x_jtf_note_id => l_note_id -- returned
235: );
236:
237: EXCEPTION
238: WHEN fnd_api.g_exc_error
239: THEN
240: x_return_status := fnd_api.g_ret_sts_error;
241: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
242: WHEN fnd_api.g_exc_unexpected_error
236:
237: EXCEPTION
238: WHEN fnd_api.g_exc_error
239: THEN
240: x_return_status := fnd_api.g_ret_sts_error;
241: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
242: WHEN fnd_api.g_exc_unexpected_error
243: THEN
244: x_return_status := fnd_api.g_ret_sts_unexp_error;
237: EXCEPTION
238: WHEN fnd_api.g_exc_error
239: THEN
240: x_return_status := fnd_api.g_ret_sts_error;
241: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
242: WHEN fnd_api.g_exc_unexpected_error
243: THEN
244: x_return_status := fnd_api.g_ret_sts_unexp_error;
245: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
238: WHEN fnd_api.g_exc_error
239: THEN
240: x_return_status := fnd_api.g_ret_sts_error;
241: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
242: WHEN fnd_api.g_exc_unexpected_error
243: THEN
244: x_return_status := fnd_api.g_ret_sts_unexp_error;
245: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
246: WHEN OTHERS
240: x_return_status := fnd_api.g_ret_sts_error;
241: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
242: WHEN fnd_api.g_exc_unexpected_error
243: THEN
244: x_return_status := fnd_api.g_ret_sts_unexp_error;
245: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
246: WHEN OTHERS
247: THEN
248: x_return_status := fnd_api.g_ret_sts_unexp_error;
241: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
242: WHEN fnd_api.g_exc_unexpected_error
243: THEN
244: x_return_status := fnd_api.g_ret_sts_unexp_error;
245: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
246: WHEN OTHERS
247: THEN
248: x_return_status := fnd_api.g_ret_sts_unexp_error;
249: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
244: x_return_status := fnd_api.g_ret_sts_unexp_error;
245: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
246: WHEN OTHERS
247: THEN
248: x_return_status := fnd_api.g_ret_sts_unexp_error;
249: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
250: THEN
251: fnd_msg_pub.add_exc_msg (g_pkg_name, 'add_system_note');
252: END IF;
249: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
250: THEN
251: fnd_msg_pub.add_exc_msg (g_pkg_name, 'add_system_note');
252: END IF;
253: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
254:
255: END add_system_note;
256:
257:
265: -- Pre-reqs : None.
266: -- Parameters :
267: -- IN : p_api_version IN NUMBER Required
268: -- p_init_msg_list IN VARCHAR2 Optional
269: -- Default = FND_API.G_FALSE
270: -- p_commit IN VARCHAR2 Optional
271: -- Default = FND_API.G_FALSE
272: -- p_validation_level IN NUMBER Optional
273: -- Default = FND_API.G_VALID_LEVEL_FULL
267: -- IN : p_api_version IN NUMBER Required
268: -- p_init_msg_list IN VARCHAR2 Optional
269: -- Default = FND_API.G_FALSE
270: -- p_commit IN VARCHAR2 Optional
271: -- Default = FND_API.G_FALSE
272: -- p_validation_level IN NUMBER Optional
273: -- Default = FND_API.G_VALID_LEVEL_FULL
274: -- p_quota_rule IN quota_rule_rec_type
275: -- OUT : x_return_status OUT VARCHAR2(1)
269: -- Default = FND_API.G_FALSE
270: -- p_commit IN VARCHAR2 Optional
271: -- Default = FND_API.G_FALSE
272: -- p_validation_level IN NUMBER Optional
273: -- Default = FND_API.G_VALID_LEVEL_FULL
274: -- p_quota_rule IN quota_rule_rec_type
275: -- OUT : x_return_status OUT VARCHAR2(1)
276: -- x_msg_count OUT NUMBER
277: -- x_msg_data OUT VARCHAR2(2000)
280: --
281: -- End of comments
282: PROCEDURE validate_quota_rule (
283: p_api_version IN NUMBER,
284: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
285: p_commit IN VARCHAR2 := fnd_api.g_false,
286: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
287: p_action IN VARCHAR2,
288: p_quota_rule IN OUT NOCOPY quota_rule_rec_type,
281: -- End of comments
282: PROCEDURE validate_quota_rule (
283: p_api_version IN NUMBER,
284: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
285: p_commit IN VARCHAR2 := fnd_api.g_false,
286: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
287: p_action IN VARCHAR2,
288: p_quota_rule IN OUT NOCOPY quota_rule_rec_type,
289: p_old_quota_rule IN quota_rule_rec_type := g_quota_rule_rec,
282: PROCEDURE validate_quota_rule (
283: p_api_version IN NUMBER,
284: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
285: p_commit IN VARCHAR2 := fnd_api.g_false,
286: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
287: p_action IN VARCHAR2,
288: p_quota_rule IN OUT NOCOPY quota_rule_rec_type,
289: p_old_quota_rule IN quota_rule_rec_type := g_quota_rule_rec,
290: x_return_status OUT NOCOPY VARCHAR2,
326: -- Standard Start of API savepoint
327: SAVEPOINT validate_quota_rule;
328:
329: -- Standard call to check for call compatibility.
330: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
331: THEN
332: RAISE fnd_api.g_exc_unexpected_error;
333: END IF;
334:
328:
329: -- Standard call to check for call compatibility.
330: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
331: THEN
332: RAISE fnd_api.g_exc_unexpected_error;
333: END IF;
334:
335: -- Initialize message list if p_init_msg_list is set to TRUE.
336: IF fnd_api.to_boolean (p_init_msg_list)
332: RAISE fnd_api.g_exc_unexpected_error;
333: END IF;
334:
335: -- Initialize message list if p_init_msg_list is set to TRUE.
336: IF fnd_api.to_boolean (p_init_msg_list)
337: THEN
338: fnd_msg_pub.initialize;
339: END IF;
340:
338: fnd_msg_pub.initialize;
339: END IF;
340:
341: -- init the return status
342: x_return_status := fnd_api.g_ret_sts_success;
343:
344: -- revenue class cannot be null
345: IF p_quota_rule.revenue_class_id IS NULL
346: THEN
350: fnd_message.set_token ('INPUT_NAME', cn_api.get_lkup_meaning ('RC', 'INPUT_TOKEN'));
351: fnd_msg_pub.ADD;
352: END IF;
353:
354: RAISE fnd_api.g_exc_error;
355: END IF;
356:
357: -- quota_id cannot be null
358: IF p_quota_rule.quota_id IS NULL
363: fnd_message.set_token ('INPUT_NAME', cn_api.get_lkup_meaning ('PE', 'INPUT_TOKEN'));
364: fnd_msg_pub.ADD;
365: END IF;
366:
367: RAISE fnd_api.g_exc_error;
368: END IF;
369:
370: BEGIN
371: SELECT NAME
380: fnd_message.set_name ('CN', 'CN_REV_CLASS_NOT_EXIST');
381: fnd_msg_pub.ADD;
382: END IF;
383:
384: RAISE fnd_api.g_exc_error;
385: END;
386:
387: -- should only assign revenue class to these types
388: OPEN quota_csr (p_quota_rule.quota_id);
397: fnd_msg_pub.ADD;
398:
399: CLOSE quota_csr;
400:
401: RAISE fnd_api.g_exc_error;
402: END IF;
403:
404: p_quota_rule.org_id := l_rec.org_id;
405:
425: fnd_message.set_token ('REVENUE_CLASS_NAME', p_quota_rule.revenue_class_name);
426: fnd_msg_pub.ADD;
427: END IF;
428:
429: RAISE fnd_api.g_exc_error;
430: END;
431:
432: ELSE
433: -- target, payment_amount and performance_goal cannot be null or less than zero
438: fnd_message.set_name ('CN', 'CN_REV_TARGET_GT_ZERO');
439: fnd_msg_pub.ADD;
440: END IF;
441:
442: RAISE fnd_api.g_exc_error;
443: END IF;
444:
445: -- 1. name can not be null
446: IF (p_quota_rule.target IS NULL)
451: fnd_message.set_token ('INPUT_NAME', cn_api.get_lkup_meaning ('VARIABLES', 'PE_OBJECT_TYPE'));
452: fnd_msg_pub.ADD;
453: END IF;
454:
455: RAISE fnd_api.g_exc_error;
456: END IF;
457:
458: IF (p_quota_rule.payment_amount IS NULL)
459: THEN
463: fnd_message.set_token ('INPUT_NAME', cn_api.get_lkup_meaning ('VARIABLES', 'PE_OBJECT_TYPE'));
464: fnd_msg_pub.ADD;
465: END IF;
466:
467: RAISE fnd_api.g_exc_error;
468: END IF;
469:
470: IF (p_quota_rule.org_id IS NULL)
471: THEN
475: fnd_message.set_token ('INPUT_NAME', cn_api.get_lkup_meaning ('ORGANIZATION', 'PE_OBJECT_TYPE'));
476: fnd_msg_pub.ADD;
477: END IF;
478:
479: RAISE fnd_api.g_exc_error;
480: END IF;
481:
482: IF (p_quota_rule.org_id <> l_rec.org_id)
483: THEN
491: fnd_message.set_token ('INPUT5', ' ');
492: fnd_msg_pub.ADD;
493: END IF;
494:
495: RAISE fnd_api.g_exc_error;
496: END IF;
497:
498: IF (p_quota_rule.performance_goal IS NULL)
499: THEN
503: fnd_message.set_token ('INPUT_NAME', cn_api.get_lkup_meaning ('VARIABLES', 'PE_OBJECT_TYPE'));
504: fnd_msg_pub.ADD;
505: END IF;
506:
507: RAISE fnd_api.g_exc_error;
508: END IF;
509:
510: IF l_rec.incentive_type_code NOT IN ('COMMISSION', 'BONUS')
511: THEN
516: fnd_message.set_token ('PLAN_TYPE', cn_api.get_lkup_meaning (l_rec.incentive_type_code, 'QUOTA_TYPE'));
517: fnd_msg_pub.ADD;
518: END IF;
519:
520: RAISE fnd_api.g_exc_error;
521: END IF;
522:
523: -- create validations only
524: IF p_action = 'CREATE'
535: IF NVL (p_quota_rule.object_version_number, -1) <> p_old_quota_rule.object_version_number
536: THEN
537: fnd_message.set_name ('CN', 'CN_RECORD_CHANGED');
538: fnd_msg_pub.ADD;
539: RAISE fnd_api.g_exc_error;
540: END IF;
541:
542: -- cannot change the planelement assignment of a quota_rule_assignment
543: SELECT COUNT (*)
559: fnd_message.set_token ('INPUT5', ' ');
560: fnd_msg_pub.ADD;
561: END IF;
562:
563: RAISE fnd_api.g_exc_error;
564: END IF;
565:
566: -- check that
567: OPEN c_uplift_csr ;
583: );
584:
585: x_loading_status := l_loading_status;
586:
587: IF (x_return_status <> fnd_api.g_ret_sts_success)
588: THEN
589: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_error)
590: THEN
591: fnd_message.set_name ('CN', 'CN_INVALID_DATE_SEQUENCE');
592: fnd_msg_pub.ADD;
593: END IF;
594:
595: x_loading_status := 'INVALID_DATE_SEQUENCE';
596: RAISE fnd_api.g_exc_error;
597: END IF;
598: END LOOP ;
599: CLOSE c_uplift_csr;
600:
630: fnd_message.set_token ('REVENUE_CLASS_NAME', p_quota_rule.revenue_class_name);
631: fnd_msg_pub.ADD;
632: END IF;
633:
634: RAISE fnd_api.g_exc_error;
635: END IF;
636:
637: -- performance gain: do the hierarchy traversal after everything else is okay
638: -- and only if there is a change
656: THEN
657: fnd_msg_pub.ADD;
658: END IF;
659:
660: RAISE fnd_api.g_exc_error;
661: END IF;
662: END IF;
663: END IF;
664:
662: END IF;
663: END IF;
664:
665: -- Standard call to get message count and if count is 1, get message info.
666: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
667: EXCEPTION
668: WHEN fnd_api.g_exc_error
669: THEN
670: ROLLBACK TO validate_quota_rule;
664:
665: -- Standard call to get message count and if count is 1, get message info.
666: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
667: EXCEPTION
668: WHEN fnd_api.g_exc_error
669: THEN
670: ROLLBACK TO validate_quota_rule;
671: x_return_status := fnd_api.g_ret_sts_error;
672: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
667: EXCEPTION
668: WHEN fnd_api.g_exc_error
669: THEN
670: ROLLBACK TO validate_quota_rule;
671: x_return_status := fnd_api.g_ret_sts_error;
672: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
673: WHEN fnd_api.g_exc_unexpected_error
674: THEN
675: ROLLBACK TO validate_quota_rule;
668: WHEN fnd_api.g_exc_error
669: THEN
670: ROLLBACK TO validate_quota_rule;
671: x_return_status := fnd_api.g_ret_sts_error;
672: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
673: WHEN fnd_api.g_exc_unexpected_error
674: THEN
675: ROLLBACK TO validate_quota_rule;
676: x_return_status := fnd_api.g_ret_sts_unexp_error;
669: THEN
670: ROLLBACK TO validate_quota_rule;
671: x_return_status := fnd_api.g_ret_sts_error;
672: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
673: WHEN fnd_api.g_exc_unexpected_error
674: THEN
675: ROLLBACK TO validate_quota_rule;
676: x_return_status := fnd_api.g_ret_sts_unexp_error;
677: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
672: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
673: WHEN fnd_api.g_exc_unexpected_error
674: THEN
675: ROLLBACK TO validate_quota_rule;
676: x_return_status := fnd_api.g_ret_sts_unexp_error;
677: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
678: WHEN OTHERS
679: THEN
680: ROLLBACK TO validate_quota_rule;
673: WHEN fnd_api.g_exc_unexpected_error
674: THEN
675: ROLLBACK TO validate_quota_rule;
676: x_return_status := fnd_api.g_ret_sts_unexp_error;
677: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
678: WHEN OTHERS
679: THEN
680: ROLLBACK TO validate_quota_rule;
681: x_return_status := fnd_api.g_ret_sts_unexp_error;
677: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
678: WHEN OTHERS
679: THEN
680: ROLLBACK TO validate_quota_rule;
681: x_return_status := fnd_api.g_ret_sts_unexp_error;
682:
683: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
684: THEN
685: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
684: THEN
685: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
686: END IF;
687:
688: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
689: END validate_quota_rule;
690:
691: -- Start of comments
692: -- API name : Create_Quota_Rule
695: -- Pre-reqs : None.
696: -- Parameters :
697: -- IN : p_api_version IN NUMBER Required
698: -- p_init_msg_list IN VARCHAR2 Optional
699: -- Default = FND_API.G_FALSE
700: -- p_commit IN VARCHAR2 Optional
701: -- Default = FND_API.G_FALSE
702: -- p_validation_level IN NUMBER Optional
703: -- Default = FND_API.G_VALID_LEVEL_FULL
697: -- IN : p_api_version IN NUMBER Required
698: -- p_init_msg_list IN VARCHAR2 Optional
699: -- Default = FND_API.G_FALSE
700: -- p_commit IN VARCHAR2 Optional
701: -- Default = FND_API.G_FALSE
702: -- p_validation_level IN NUMBER Optional
703: -- Default = FND_API.G_VALID_LEVEL_FULL
704: -- p_quota_rule IN quota_rule_rec_type
705: -- OUT : x_return_status OUT VARCHAR2(1)
699: -- Default = FND_API.G_FALSE
700: -- p_commit IN VARCHAR2 Optional
701: -- Default = FND_API.G_FALSE
702: -- p_validation_level IN NUMBER Optional
703: -- Default = FND_API.G_VALID_LEVEL_FULL
704: -- p_quota_rule IN quota_rule_rec_type
705: -- OUT : x_return_status OUT VARCHAR2(1)
706: -- x_msg_count OUT NUMBER
707: -- x_msg_data OUT VARCHAR2(2000)
711: --
712: -- End of comments
713: PROCEDURE create_quota_rule (
714: p_api_version IN NUMBER,
715: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
716: p_commit IN VARCHAR2 := fnd_api.g_false,
717: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
718: p_quota_rule IN OUT NOCOPY quota_rule_rec_type,
719: x_return_status OUT NOCOPY VARCHAR2,
712: -- End of comments
713: PROCEDURE create_quota_rule (
714: p_api_version IN NUMBER,
715: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
716: p_commit IN VARCHAR2 := fnd_api.g_false,
717: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
718: p_quota_rule IN OUT NOCOPY quota_rule_rec_type,
719: x_return_status OUT NOCOPY VARCHAR2,
720: x_msg_count OUT NOCOPY NUMBER,
713: PROCEDURE create_quota_rule (
714: p_api_version IN NUMBER,
715: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
716: p_commit IN VARCHAR2 := fnd_api.g_false,
717: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
718: p_quota_rule IN OUT NOCOPY quota_rule_rec_type,
719: x_return_status OUT NOCOPY VARCHAR2,
720: x_msg_count OUT NOCOPY NUMBER,
721: x_msg_data OUT NOCOPY VARCHAR2
727: -- Standard Start of API savepoint
728: SAVEPOINT create_quota_rule;
729:
730: -- Standard call to check for call compatibility.
731: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
732: THEN
733: RAISE fnd_api.g_exc_unexpected_error;
734: END IF;
735:
729:
730: -- Standard call to check for call compatibility.
731: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
732: THEN
733: RAISE fnd_api.g_exc_unexpected_error;
734: END IF;
735:
736: -- Initialize message list if p_init_msg_list is set to TRUE.
737: IF fnd_api.to_boolean (p_init_msg_list)
733: RAISE fnd_api.g_exc_unexpected_error;
734: END IF;
735:
736: -- Initialize message list if p_init_msg_list is set to TRUE.
737: IF fnd_api.to_boolean (p_init_msg_list)
738: THEN
739: fnd_msg_pub.initialize;
740: END IF;
741:
739: fnd_msg_pub.initialize;
740: END IF;
741:
742: -- Initialize API return status to success
743: x_return_status := fnd_api.g_ret_sts_success;
744:
745: -- get the primary key if you dont already have it
746: IF p_quota_rule.quota_rule_id IS NULL
747: THEN
758: x_msg_count => x_msg_count,
759: x_msg_data => x_msg_data
760: );
761:
762: IF (x_return_status <> fnd_api.g_ret_sts_success)
763: THEN
764: RAISE fnd_api.g_exc_error;
765: END IF;
766:
760: );
761:
762: IF (x_return_status <> fnd_api.g_ret_sts_success)
763: THEN
764: RAISE fnd_api.g_exc_error;
765: END IF;
766:
767: -- call table handler to insert data
768: cn_quota_rules_pkg.begin_record (x_operation => 'INSERT',
787: x_payment_amount_old => NULL,
788: x_performance_goal_old => NULL
789: );
790:
791: IF (x_return_status <> fnd_api.g_ret_sts_success)
792: THEN
793: RAISE fnd_api.g_exc_error;
794: END IF;
795:
789: );
790:
791: IF (x_return_status <> fnd_api.g_ret_sts_success)
792: THEN
793: RAISE fnd_api.g_exc_error;
794: END IF;
795:
796: -- Calling proc to add system note for create
797: add_system_note(
801: x_return_status,
802: x_msg_count,
803: x_msg_data
804: );
805: IF (x_return_status <> fnd_api.g_ret_sts_success)
806: THEN
807: RAISE fnd_api.g_exc_error;
808: END IF;
809:
803: x_msg_data
804: );
805: IF (x_return_status <> fnd_api.g_ret_sts_success)
806: THEN
807: RAISE fnd_api.g_exc_error;
808: END IF;
809:
810: -- End of API body.
811: -- Standard check of p_commit.
808: END IF;
809:
810: -- End of API body.
811: -- Standard check of p_commit.
812: IF fnd_api.to_boolean (p_commit)
813: THEN
814: COMMIT WORK;
815: END IF;
816:
814: COMMIT WORK;
815: END IF;
816:
817: -- Standard call to get message count and if count is 1, get message info.
818: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
819: EXCEPTION
820: WHEN fnd_api.g_exc_error
821: THEN
822: ROLLBACK TO create_quota_rule;
816:
817: -- Standard call to get message count and if count is 1, get message info.
818: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
819: EXCEPTION
820: WHEN fnd_api.g_exc_error
821: THEN
822: ROLLBACK TO create_quota_rule;
823: x_return_status := fnd_api.g_ret_sts_error;
824: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
819: EXCEPTION
820: WHEN fnd_api.g_exc_error
821: THEN
822: ROLLBACK TO create_quota_rule;
823: x_return_status := fnd_api.g_ret_sts_error;
824: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
825: WHEN fnd_api.g_exc_unexpected_error
826: THEN
827: ROLLBACK TO create_quota_rule;
820: WHEN fnd_api.g_exc_error
821: THEN
822: ROLLBACK TO create_quota_rule;
823: x_return_status := fnd_api.g_ret_sts_error;
824: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
825: WHEN fnd_api.g_exc_unexpected_error
826: THEN
827: ROLLBACK TO create_quota_rule;
828: x_return_status := fnd_api.g_ret_sts_unexp_error;
821: THEN
822: ROLLBACK TO create_quota_rule;
823: x_return_status := fnd_api.g_ret_sts_error;
824: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
825: WHEN fnd_api.g_exc_unexpected_error
826: THEN
827: ROLLBACK TO create_quota_rule;
828: x_return_status := fnd_api.g_ret_sts_unexp_error;
829: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
824: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
825: WHEN fnd_api.g_exc_unexpected_error
826: THEN
827: ROLLBACK TO create_quota_rule;
828: x_return_status := fnd_api.g_ret_sts_unexp_error;
829: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
830: WHEN OTHERS
831: THEN
832: ROLLBACK TO create_quota_rule;
825: WHEN fnd_api.g_exc_unexpected_error
826: THEN
827: ROLLBACK TO create_quota_rule;
828: x_return_status := fnd_api.g_ret_sts_unexp_error;
829: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
830: WHEN OTHERS
831: THEN
832: ROLLBACK TO create_quota_rule;
833: x_return_status := fnd_api.g_ret_sts_unexp_error;
829: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
830: WHEN OTHERS
831: THEN
832: ROLLBACK TO create_quota_rule;
833: x_return_status := fnd_api.g_ret_sts_unexp_error;
834:
835: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
836: THEN
837: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
836: THEN
837: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
838: END IF;
839:
840: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
841: END create_quota_rule;
842:
843: -- Start of comments
844: -- API name : Create_Quota_Rules
847: -- Pre-reqs : None.
848: -- Parameters :
849: -- IN : p_api_version IN NUMBER Required
850: -- p_init_msg_list IN VARCHAR2 Optional
851: -- Default = FND_API.G_FALSE
852: -- p_commit IN VARCHAR2 Optional
853: -- Default = FND_API.G_FALSE
854: -- p_validation_level IN NUMBER Optional
855: -- Default = FND_API.G_VALID_LEVEL_FULL
849: -- IN : p_api_version IN NUMBER Required
850: -- p_init_msg_list IN VARCHAR2 Optional
851: -- Default = FND_API.G_FALSE
852: -- p_commit IN VARCHAR2 Optional
853: -- Default = FND_API.G_FALSE
854: -- p_validation_level IN NUMBER Optional
855: -- Default = FND_API.G_VALID_LEVEL_FULL
856: -- p_revenue_class_rec_tbl IN cn_plan_element_pub.revenue_class_rec_tbl_typ
857: -- OUT : x_return_status OUT VARCHAR2(1)
851: -- Default = FND_API.G_FALSE
852: -- p_commit IN VARCHAR2 Optional
853: -- Default = FND_API.G_FALSE
854: -- p_validation_level IN NUMBER Optional
855: -- Default = FND_API.G_VALID_LEVEL_FULL
856: -- p_revenue_class_rec_tbl IN cn_plan_element_pub.revenue_class_rec_tbl_typ
857: -- OUT : x_return_status OUT VARCHAR2(1)
858: -- x_msg_count OUT NUMBER
859: -- x_msg_data OUT VARCHAR2(2000)
863: --
864: -- End of comments
865: PROCEDURE create_quota_rules (
866: p_api_version IN NUMBER,
867: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
868: p_commit IN VARCHAR2 := fnd_api.g_false,
869: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
870: p_quota_name IN VARCHAR2,
871: p_revenue_class_rec_tbl IN cn_plan_element_pub.revenue_class_rec_tbl_type := cn_plan_element_pub.g_miss_revenue_class_rec_tbl,
864: -- End of comments
865: PROCEDURE create_quota_rules (
866: p_api_version IN NUMBER,
867: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
868: p_commit IN VARCHAR2 := fnd_api.g_false,
869: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
870: p_quota_name IN VARCHAR2,
871: p_revenue_class_rec_tbl IN cn_plan_element_pub.revenue_class_rec_tbl_type := cn_plan_element_pub.g_miss_revenue_class_rec_tbl,
872: p_rev_uplift_rec_tbl IN cn_plan_element_pub.rev_uplift_rec_tbl_type := cn_plan_element_pub.g_miss_rev_uplift_rec_tbl,
865: PROCEDURE create_quota_rules (
866: p_api_version IN NUMBER,
867: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
868: p_commit IN VARCHAR2 := fnd_api.g_false,
869: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
870: p_quota_name IN VARCHAR2,
871: p_revenue_class_rec_tbl IN cn_plan_element_pub.revenue_class_rec_tbl_type := cn_plan_element_pub.g_miss_revenue_class_rec_tbl,
872: p_rev_uplift_rec_tbl IN cn_plan_element_pub.rev_uplift_rec_tbl_type := cn_plan_element_pub.g_miss_rev_uplift_rec_tbl,
873: p_trx_factor_rec_tbl IN cn_plan_element_pub.trx_factor_rec_tbl_type := cn_plan_element_pub.g_miss_trx_factor_rec_tbl,
889:
890: --+
891: -- Standard call to check for call compatibility.
892: --+
893: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
894: THEN
895: RAISE fnd_api.g_exc_unexpected_error;
896: END IF;
897:
891: -- Standard call to check for call compatibility.
892: --+
893: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
894: THEN
895: RAISE fnd_api.g_exc_unexpected_error;
896: END IF;
897:
898: --+
899: -- Initialize message list if p_init_msg_list is set to TRUE.
897:
898: --+
899: -- Initialize message list if p_init_msg_list is set to TRUE.
900: -- +
901: IF fnd_api.to_boolean (p_init_msg_list)
902: THEN
903: fnd_msg_pub.initialize;
904: END IF;
905:
905:
906: -- +
907: -- Initialize API return status to success
908: --+
909: x_return_status := fnd_api.g_ret_sts_success;
910: x_loading_status := 'CN_INSERTED';
911:
912: -- +
913: -- API body
929: -- then inser the Quota Rules, Insert the trx
930: --ELSE Record Already exists, but Trx count > 0
931: -- Update trx factors
932: -- EXLSE Record Already Exists
933: IF (x_return_status <> fnd_api.g_ret_sts_success)
934: THEN
935: RAISE fnd_api.g_exc_error;
936: END IF;
937:
931: -- Update trx factors
932: -- EXLSE Record Already Exists
933: IF (x_return_status <> fnd_api.g_ret_sts_success)
934: THEN
935: RAISE fnd_api.g_exc_error;
936: END IF;
937:
938: IF (x_loading_status = g_quota_rule_not_exists)
939: THEN
947: x_msg_count => x_msg_count,
948: x_msg_data => x_msg_data
949: );
950:
951: IF (x_return_status <> fnd_api.g_ret_sts_success)
952: THEN
953: x_loading_status := 'CN_UPDATE_FAILED';
954: RAISE fnd_api.g_exc_error;
955: END IF;
950:
951: IF (x_return_status <> fnd_api.g_ret_sts_success)
952: THEN
953: x_loading_status := 'CN_UPDATE_FAILED';
954: RAISE fnd_api.g_exc_error;
955: END IF;
956:
957: -- call create_trx_factors
958: cn_trx_factor_pvt.update_trx_factors (p_api_version => p_api_version,
972: ELSIF (x_loading_status = g_quota_rule_exists)
973: THEN
974: IF (p_trx_factor_rec_tbl.COUNT = 0 AND p_rev_uplift_rec_tbl.COUNT = 0)
975: THEN
976: RAISE fnd_api.g_exc_error;
977: ELSIF p_trx_factor_rec_tbl.COUNT <> 0
978: THEN
979: -- Custom trx factors it means we need to update
980: -- exisiting trx factors.
991: END IF; -- Table Count is Not Zero
992:
993: -- End of API body.
994: -- Standard check of p_commit.
995: IF fnd_api.to_boolean (p_commit)
996: THEN
997: COMMIT WORK;
998: END IF;
999:
999:
1000: --+
1001: -- Standard call to get message count and if count is 1, get message info.
1002: --+
1003: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1004: EXCEPTION
1005: WHEN fnd_api.g_exc_error
1006: THEN
1007: ROLLBACK TO create_quota_rules;
1001: -- Standard call to get message count and if count is 1, get message info.
1002: --+
1003: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1004: EXCEPTION
1005: WHEN fnd_api.g_exc_error
1006: THEN
1007: ROLLBACK TO create_quota_rules;
1008: x_return_status := fnd_api.g_ret_sts_error;
1009: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1004: EXCEPTION
1005: WHEN fnd_api.g_exc_error
1006: THEN
1007: ROLLBACK TO create_quota_rules;
1008: x_return_status := fnd_api.g_ret_sts_error;
1009: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1010: WHEN fnd_api.g_exc_unexpected_error
1011: THEN
1012: ROLLBACK TO create_quota_rules;
1005: WHEN fnd_api.g_exc_error
1006: THEN
1007: ROLLBACK TO create_quota_rules;
1008: x_return_status := fnd_api.g_ret_sts_error;
1009: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1010: WHEN fnd_api.g_exc_unexpected_error
1011: THEN
1012: ROLLBACK TO create_quota_rules;
1013: x_loading_status := 'UNEXPECTED_ERR';
1006: THEN
1007: ROLLBACK TO create_quota_rules;
1008: x_return_status := fnd_api.g_ret_sts_error;
1009: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1010: WHEN fnd_api.g_exc_unexpected_error
1011: THEN
1012: ROLLBACK TO create_quota_rules;
1013: x_loading_status := 'UNEXPECTED_ERR';
1014: x_return_status := fnd_api.g_ret_sts_unexp_error;
1010: WHEN fnd_api.g_exc_unexpected_error
1011: THEN
1012: ROLLBACK TO create_quota_rules;
1013: x_loading_status := 'UNEXPECTED_ERR';
1014: x_return_status := fnd_api.g_ret_sts_unexp_error;
1015: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1016: WHEN OTHERS
1017: THEN
1018: ROLLBACK TO create_quota_rules;
1011: THEN
1012: ROLLBACK TO create_quota_rules;
1013: x_loading_status := 'UNEXPECTED_ERR';
1014: x_return_status := fnd_api.g_ret_sts_unexp_error;
1015: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1016: WHEN OTHERS
1017: THEN
1018: ROLLBACK TO create_quota_rules;
1019: x_loading_status := 'UNEXPECTED_ERR';
1016: WHEN OTHERS
1017: THEN
1018: ROLLBACK TO create_quota_rules;
1019: x_loading_status := 'UNEXPECTED_ERR';
1020: x_return_status := fnd_api.g_ret_sts_unexp_error;
1021:
1022: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
1023: THEN
1024: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
1023: THEN
1024: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
1025: END IF;
1026:
1027: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1028: END create_quota_rules;
1029:
1030: -- Start of comments
1031: -- API name : Update_Quota_Rule
1034: -- Pre-reqs : None.
1035: -- Parameters :
1036: -- IN : p_api_version IN NUMBER Required
1037: -- p_init_msg_list IN VARCHAR2 Optional
1038: -- Default = FND_API.G_FALSE
1039: -- p_commit IN VARCHAR2 Optional
1040: -- Default = FND_API.G_FALSE
1041: -- p_validation_level IN NUMBER Optional
1042: -- Default = FND_API.G_VALID_LEVEL_FULL
1036: -- IN : p_api_version IN NUMBER Required
1037: -- p_init_msg_list IN VARCHAR2 Optional
1038: -- Default = FND_API.G_FALSE
1039: -- p_commit IN VARCHAR2 Optional
1040: -- Default = FND_API.G_FALSE
1041: -- p_validation_level IN NUMBER Optional
1042: -- Default = FND_API.G_VALID_LEVEL_FULL
1043: -- p_quota_rule IN quota_rule_rec_type
1044: -- OUT : x_return_status OUT VARCHAR2(1)
1038: -- Default = FND_API.G_FALSE
1039: -- p_commit IN VARCHAR2 Optional
1040: -- Default = FND_API.G_FALSE
1041: -- p_validation_level IN NUMBER Optional
1042: -- Default = FND_API.G_VALID_LEVEL_FULL
1043: -- p_quota_rule IN quota_rule_rec_type
1044: -- OUT : x_return_status OUT VARCHAR2(1)
1045: -- x_msg_count OUT NUMBER
1046: -- x_msg_data OUT VARCHAR2(2000)
1049: --
1050: -- End of comments
1051: PROCEDURE update_quota_rule (
1052: p_api_version IN NUMBER,
1053: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1054: p_commit IN VARCHAR2 := fnd_api.g_false,
1055: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1056: p_quota_rule IN OUT NOCOPY quota_rule_rec_type,
1057: x_return_status OUT NOCOPY VARCHAR2,
1050: -- End of comments
1051: PROCEDURE update_quota_rule (
1052: p_api_version IN NUMBER,
1053: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1054: p_commit IN VARCHAR2 := fnd_api.g_false,
1055: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1056: p_quota_rule IN OUT NOCOPY quota_rule_rec_type,
1057: x_return_status OUT NOCOPY VARCHAR2,
1058: x_msg_count OUT NOCOPY NUMBER,
1051: PROCEDURE update_quota_rule (
1052: p_api_version IN NUMBER,
1053: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1054: p_commit IN VARCHAR2 := fnd_api.g_false,
1055: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1056: p_quota_rule IN OUT NOCOPY quota_rule_rec_type,
1057: x_return_status OUT NOCOPY VARCHAR2,
1058: x_msg_count OUT NOCOPY NUMBER,
1059: x_msg_data OUT NOCOPY VARCHAR2
1074: -- Standard Start of API savepoint
1075: SAVEPOINT update_quota_rule;
1076:
1077: -- Standard call to check for call compatibility.
1078: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
1079: THEN
1080: RAISE fnd_api.g_exc_unexpected_error;
1081: END IF;
1082:
1076:
1077: -- Standard call to check for call compatibility.
1078: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
1079: THEN
1080: RAISE fnd_api.g_exc_unexpected_error;
1081: END IF;
1082:
1083: -- Initialize message list if p_init_msg_list is set to TRUE.
1084: IF fnd_api.to_boolean (p_init_msg_list)
1080: RAISE fnd_api.g_exc_unexpected_error;
1081: END IF;
1082:
1083: -- Initialize message list if p_init_msg_list is set to TRUE.
1084: IF fnd_api.to_boolean (p_init_msg_list)
1085: THEN
1086: fnd_msg_pub.initialize;
1087: END IF;
1088:
1086: fnd_msg_pub.initialize;
1087: END IF;
1088:
1089: -- Initialize API return status to success
1090: x_return_status := fnd_api.g_ret_sts_success;
1091:
1092: -- API body
1093: OPEN l_old_quota_rule_cr;
1094:
1116: x_msg_count => x_msg_count,
1117: x_msg_data => x_msg_data
1118: );
1119:
1120: IF (x_return_status <> fnd_api.g_ret_sts_success)
1121: THEN
1122: RAISE fnd_api.g_exc_error;
1123: END IF;
1124:
1118: );
1119:
1120: IF (x_return_status <> fnd_api.g_ret_sts_success)
1121: THEN
1122: RAISE fnd_api.g_exc_error;
1123: END IF;
1124:
1125: -- update table using the handler
1126: cn_quota_rules_pkg.begin_record (x_operation => 'UPDATE',
1157: x_msg_data
1158: );
1159: END IF;
1160:
1161: IF (x_return_status <> fnd_api.g_ret_sts_success)
1162: THEN
1163: RAISE fnd_api.g_exc_error;
1164: END IF;
1165:
1159: END IF;
1160:
1161: IF (x_return_status <> fnd_api.g_ret_sts_success)
1162: THEN
1163: RAISE fnd_api.g_exc_error;
1164: END IF;
1165:
1166:
1167: -- End of API body.
1165:
1166:
1167: -- End of API body.
1168: -- Standard check of p_commit.
1169: IF fnd_api.to_boolean (p_commit)
1170: THEN
1171: COMMIT WORK;
1172: END IF;
1173:
1171: COMMIT WORK;
1172: END IF;
1173:
1174: -- Standard call to get message count and if count is 1, get message info.
1175: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1176: EXCEPTION
1177: WHEN fnd_api.g_exc_error
1178: THEN
1179: ROLLBACK TO update_quota_rule;
1173:
1174: -- Standard call to get message count and if count is 1, get message info.
1175: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1176: EXCEPTION
1177: WHEN fnd_api.g_exc_error
1178: THEN
1179: ROLLBACK TO update_quota_rule;
1180: x_return_status := fnd_api.g_ret_sts_error;
1181: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1176: EXCEPTION
1177: WHEN fnd_api.g_exc_error
1178: THEN
1179: ROLLBACK TO update_quota_rule;
1180: x_return_status := fnd_api.g_ret_sts_error;
1181: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1182: WHEN fnd_api.g_exc_unexpected_error
1183: THEN
1184: ROLLBACK TO update_quota_rule;
1177: WHEN fnd_api.g_exc_error
1178: THEN
1179: ROLLBACK TO update_quota_rule;
1180: x_return_status := fnd_api.g_ret_sts_error;
1181: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1182: WHEN fnd_api.g_exc_unexpected_error
1183: THEN
1184: ROLLBACK TO update_quota_rule;
1185: x_return_status := fnd_api.g_ret_sts_unexp_error;
1178: THEN
1179: ROLLBACK TO update_quota_rule;
1180: x_return_status := fnd_api.g_ret_sts_error;
1181: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1182: WHEN fnd_api.g_exc_unexpected_error
1183: THEN
1184: ROLLBACK TO update_quota_rule;
1185: x_return_status := fnd_api.g_ret_sts_unexp_error;
1186: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1181: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1182: WHEN fnd_api.g_exc_unexpected_error
1183: THEN
1184: ROLLBACK TO update_quota_rule;
1185: x_return_status := fnd_api.g_ret_sts_unexp_error;
1186: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1187: WHEN OTHERS
1188: THEN
1189: ROLLBACK TO update_quota_rule;
1182: WHEN fnd_api.g_exc_unexpected_error
1183: THEN
1184: ROLLBACK TO update_quota_rule;
1185: x_return_status := fnd_api.g_ret_sts_unexp_error;
1186: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1187: WHEN OTHERS
1188: THEN
1189: ROLLBACK TO update_quota_rule;
1190: x_return_status := fnd_api.g_ret_sts_unexp_error;
1186: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1187: WHEN OTHERS
1188: THEN
1189: ROLLBACK TO update_quota_rule;
1190: x_return_status := fnd_api.g_ret_sts_unexp_error;
1191:
1192: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
1193: THEN
1194: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
1193: THEN
1194: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
1195: END IF;
1196:
1197: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1198: END update_quota_rule;
1199:
1200: --|-------------------------------------------------------------------------+
1201: --| Procedure Name: Update_Quota_Rules
1202: --| Descr: Update a Quota Rules
1203: --|-------------------------------------------------------------------------+
1204: PROCEDURE update_quota_rules (
1205: p_api_version IN NUMBER,
1206: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1207: p_commit IN VARCHAR2 := fnd_api.g_false,
1208: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1209: p_quota_name IN VARCHAR2,
1210: p_revenue_class_rec_tbl IN cn_plan_element_pub.revenue_class_rec_tbl_type := cn_plan_element_pub.g_miss_revenue_class_rec_tbl,
1203: --|-------------------------------------------------------------------------+
1204: PROCEDURE update_quota_rules (
1205: p_api_version IN NUMBER,
1206: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1207: p_commit IN VARCHAR2 := fnd_api.g_false,
1208: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1209: p_quota_name IN VARCHAR2,
1210: p_revenue_class_rec_tbl IN cn_plan_element_pub.revenue_class_rec_tbl_type := cn_plan_element_pub.g_miss_revenue_class_rec_tbl,
1211: p_trx_factor_rec_tbl IN cn_plan_element_pub.trx_factor_rec_tbl_type := cn_plan_element_pub.g_miss_trx_factor_rec_tbl,
1204: PROCEDURE update_quota_rules (
1205: p_api_version IN NUMBER,
1206: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1207: p_commit IN VARCHAR2 := fnd_api.g_false,
1208: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1209: p_quota_name IN VARCHAR2,
1210: p_revenue_class_rec_tbl IN cn_plan_element_pub.revenue_class_rec_tbl_type := cn_plan_element_pub.g_miss_revenue_class_rec_tbl,
1211: p_trx_factor_rec_tbl IN cn_plan_element_pub.trx_factor_rec_tbl_type := cn_plan_element_pub.g_miss_trx_factor_rec_tbl,
1212: x_loading_status OUT NOCOPY VARCHAR2,
1229:
1230: --+
1231: -- Standard call to check for call compatibility.
1232: --+
1233: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
1234: THEN
1235: RAISE fnd_api.g_exc_unexpected_error;
1236: END IF;
1237:
1231: -- Standard call to check for call compatibility.
1232: --+
1233: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
1234: THEN
1235: RAISE fnd_api.g_exc_unexpected_error;
1236: END IF;
1237:
1238: --+
1239: -- Initialize message list if p_init_msg_list is set to TRUE.
1237:
1238: --+
1239: -- Initialize message list if p_init_msg_list is set to TRUE.
1240: -- +
1241: IF fnd_api.to_boolean (p_init_msg_list)
1242: THEN
1243: fnd_msg_pub.initialize;
1244: END IF;
1245:
1245:
1246: -- +
1247: -- Initialize API return status to success
1248: --+
1249: x_return_status := fnd_api.g_ret_sts_success;
1250: x_loading_status := 'CN_UPDATED';
1251:
1252: -- +
1253: -- API body
1277: x_msg_data => x_msg_data
1278: );
1279: x_loading_status := 'CN_UPDATED';
1280:
1281: IF (x_return_status <> fnd_api.g_ret_sts_success)
1282: THEN
1283: x_loading_status := 'CN_UPDATE_FAILED';
1284: RAISE fnd_api.g_exc_error;
1285: END IF;
1280:
1281: IF (x_return_status <> fnd_api.g_ret_sts_success)
1282: THEN
1283: x_loading_status := 'CN_UPDATE_FAILED';
1284: RAISE fnd_api.g_exc_error;
1285: END IF;
1286:
1287: cn_trx_factor_pvt.update_trx_factors (p_api_version => p_api_version,
1288: p_init_msg_list => p_init_msg_list,
1298: x_loading_status => l_loading_status
1299: );
1300: x_loading_status := l_loading_status;
1301:
1302: IF (x_return_status <> fnd_api.g_ret_sts_success)
1303: THEN
1304: RAISE fnd_api.g_exc_error;
1305: END IF;
1306: ELSIF x_loading_status = g_quota_rule_exists
1300: x_loading_status := l_loading_status;
1301:
1302: IF (x_return_status <> fnd_api.g_ret_sts_success)
1303: THEN
1304: RAISE fnd_api.g_exc_error;
1305: END IF;
1306: ELSIF x_loading_status = g_quota_rule_exists
1307: THEN
1308: IF (p_trx_factor_rec_tbl.COUNT = 0 AND p_revenue_class_rec_tbl.COUNT = 0)
1306: ELSIF x_loading_status = g_quota_rule_exists
1307: THEN
1308: IF (p_trx_factor_rec_tbl.COUNT = 0 AND p_revenue_class_rec_tbl.COUNT = 0)
1309: THEN
1310: RAISE fnd_api.g_exc_error;
1311: END IF;
1312:
1313: x_loading_status := 'PLN_QUOTA_REV_EXISTS';
1314: END IF; -- Not success
1316: END IF; -- Table Count is Not Zero
1317:
1318: -- End of API body.
1319: -- Standard check of p_commit.
1320: IF fnd_api.to_boolean (p_commit)
1321: THEN
1322: COMMIT WORK;
1323: END IF;
1324:
1324:
1325: --+
1326: -- Standard call to get message count and if count is 1, get message info.
1327: --+
1328: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1329: EXCEPTION
1330: WHEN fnd_api.g_exc_error
1331: THEN
1332: ROLLBACK TO update_quota_rules;
1326: -- Standard call to get message count and if count is 1, get message info.
1327: --+
1328: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1329: EXCEPTION
1330: WHEN fnd_api.g_exc_error
1331: THEN
1332: ROLLBACK TO update_quota_rules;
1333: x_return_status := fnd_api.g_ret_sts_error;
1334: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1329: EXCEPTION
1330: WHEN fnd_api.g_exc_error
1331: THEN
1332: ROLLBACK TO update_quota_rules;
1333: x_return_status := fnd_api.g_ret_sts_error;
1334: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1335: WHEN fnd_api.g_exc_unexpected_error
1336: THEN
1337: ROLLBACK TO update_quota_rules;
1330: WHEN fnd_api.g_exc_error
1331: THEN
1332: ROLLBACK TO update_quota_rules;
1333: x_return_status := fnd_api.g_ret_sts_error;
1334: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1335: WHEN fnd_api.g_exc_unexpected_error
1336: THEN
1337: ROLLBACK TO update_quota_rules;
1338: x_loading_status := 'UNEXPECTED_ERR';
1331: THEN
1332: ROLLBACK TO update_quota_rules;
1333: x_return_status := fnd_api.g_ret_sts_error;
1334: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1335: WHEN fnd_api.g_exc_unexpected_error
1336: THEN
1337: ROLLBACK TO update_quota_rules;
1338: x_loading_status := 'UNEXPECTED_ERR';
1339: x_return_status := fnd_api.g_ret_sts_unexp_error;
1335: WHEN fnd_api.g_exc_unexpected_error
1336: THEN
1337: ROLLBACK TO update_quota_rules;
1338: x_loading_status := 'UNEXPECTED_ERR';
1339: x_return_status := fnd_api.g_ret_sts_unexp_error;
1340: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1341: WHEN OTHERS
1342: THEN
1343: ROLLBACK TO update_quota_rules;
1336: THEN
1337: ROLLBACK TO update_quota_rules;
1338: x_loading_status := 'UNEXPECTED_ERR';
1339: x_return_status := fnd_api.g_ret_sts_unexp_error;
1340: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1341: WHEN OTHERS
1342: THEN
1343: ROLLBACK TO update_quota_rules;
1344: x_loading_status := 'UNEXPECTED_ERR';
1341: WHEN OTHERS
1342: THEN
1343: ROLLBACK TO update_quota_rules;
1344: x_loading_status := 'UNEXPECTED_ERR';
1345: x_return_status := fnd_api.g_ret_sts_unexp_error;
1346:
1347: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
1348: THEN
1349: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
1348: THEN
1349: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
1350: END IF;
1351:
1352: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1353: END update_quota_rules;
1354:
1355: -- Start of comments
1356: -- API name : Delete_Quota_Rule
1359: -- Pre-reqs : None.
1360: -- Parameters :
1361: -- IN : p_api_version IN NUMBER Required
1362: -- p_init_msg_list IN VARCHAR2 Optional
1363: -- Default = FND_API.G_FALSE
1364: -- p_commit IN VARCHAR2 Optional
1365: -- Default = FND_API.G_FALSE
1366: -- p_validation_level IN NUMBER Optional
1367: -- Default = FND_API.G_VALID_LEVEL_FULL
1361: -- IN : p_api_version IN NUMBER Required
1362: -- p_init_msg_list IN VARCHAR2 Optional
1363: -- Default = FND_API.G_FALSE
1364: -- p_commit IN VARCHAR2 Optional
1365: -- Default = FND_API.G_FALSE
1366: -- p_validation_level IN NUMBER Optional
1367: -- Default = FND_API.G_VALID_LEVEL_FULL
1368: -- p_quota_rule IN quota_rule_rec_type
1369: -- OUT : x_return_status OUT VARCHAR2(1)
1363: -- Default = FND_API.G_FALSE
1364: -- p_commit IN VARCHAR2 Optional
1365: -- Default = FND_API.G_FALSE
1366: -- p_validation_level IN NUMBER Optional
1367: -- Default = FND_API.G_VALID_LEVEL_FULL
1368: -- p_quota_rule IN quota_rule_rec_type
1369: -- OUT : x_return_status OUT VARCHAR2(1)
1370: -- x_msg_count OUT NUMBER
1371: -- x_msg_data OUT VARCHAR2(2000)
1374: --
1375: -- End of comments
1376: PROCEDURE delete_quota_rule (
1377: p_api_version IN NUMBER,
1378: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1379: p_commit IN VARCHAR2 := fnd_api.g_false,
1380: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1381: p_quota_rule IN OUT NOCOPY quota_rule_rec_type,
1382: x_return_status OUT NOCOPY VARCHAR2,
1375: -- End of comments
1376: PROCEDURE delete_quota_rule (
1377: p_api_version IN NUMBER,
1378: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1379: p_commit IN VARCHAR2 := fnd_api.g_false,
1380: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1381: p_quota_rule IN OUT NOCOPY quota_rule_rec_type,
1382: x_return_status OUT NOCOPY VARCHAR2,
1383: x_msg_count OUT NOCOPY NUMBER,
1376: PROCEDURE delete_quota_rule (
1377: p_api_version IN NUMBER,
1378: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1379: p_commit IN VARCHAR2 := fnd_api.g_false,
1380: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1381: p_quota_rule IN OUT NOCOPY quota_rule_rec_type,
1382: x_return_status OUT NOCOPY VARCHAR2,
1383: x_msg_count OUT NOCOPY NUMBER,
1384: x_msg_data OUT NOCOPY VARCHAR2
1393: -- Standard Start of API savepoint
1394: SAVEPOINT delete_quota_rule;
1395:
1396: -- Standard call to check for call compatibility.
1397: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
1398: THEN
1399: RAISE fnd_api.g_exc_unexpected_error;
1400: END IF;
1401:
1395:
1396: -- Standard call to check for call compatibility.
1397: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
1398: THEN
1399: RAISE fnd_api.g_exc_unexpected_error;
1400: END IF;
1401:
1402: -- Initialize message list if p_init_msg_list is set to TRUE.
1403: IF fnd_api.to_boolean (p_init_msg_list)
1399: RAISE fnd_api.g_exc_unexpected_error;
1400: END IF;
1401:
1402: -- Initialize message list if p_init_msg_list is set to TRUE.
1403: IF fnd_api.to_boolean (p_init_msg_list)
1404: THEN
1405: fnd_msg_pub.initialize;
1406: END IF;
1407:
1405: fnd_msg_pub.initialize;
1406: END IF;
1407:
1408: -- Initialize API return status to success
1409: x_return_status := fnd_api.g_ret_sts_success;
1410: -- API body
1411: validate_quota_rule (p_api_version => p_api_version,
1412: p_quota_rule => p_quota_rule,
1413: p_action => 'DELETE',
1415: x_msg_count => x_msg_count,
1416: x_msg_data => x_msg_data
1417: );
1418:
1419: IF (x_return_status <> fnd_api.g_ret_sts_success)
1420: THEN
1421: RAISE fnd_api.g_exc_error;
1422: END IF;
1423:
1417: );
1418:
1419: IF (x_return_status <> fnd_api.g_ret_sts_success)
1420: THEN
1421: RAISE fnd_api.g_exc_error;
1422: END IF;
1423:
1424: -- Delete Record;
1425: cn_quota_rules_pkg.DELETE_RECORD (x_quota_id => p_quota_rule.quota_id,
1435: x_return_status,
1436: x_msg_count,
1437: x_msg_data
1438: );
1439: IF (x_return_status <> fnd_api.g_ret_sts_success)
1440: THEN
1441: RAISE fnd_api.g_exc_error;
1442: END IF;
1443:
1437: x_msg_data
1438: );
1439: IF (x_return_status <> fnd_api.g_ret_sts_success)
1440: THEN
1441: RAISE fnd_api.g_exc_error;
1442: END IF;
1443:
1444: -- End of API body.
1445: -- Standard check of p_commit.
1442: END IF;
1443:
1444: -- End of API body.
1445: -- Standard check of p_commit.
1446: IF fnd_api.to_boolean (p_commit)
1447: THEN
1448: COMMIT WORK;
1449: END IF;
1450:
1448: COMMIT WORK;
1449: END IF;
1450:
1451: -- Standard call to get message count and if count is 1, get message info.
1452: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1453: EXCEPTION
1454: WHEN fnd_api.g_exc_error
1455: THEN
1456: ROLLBACK TO delete_quota_rule;
1450:
1451: -- Standard call to get message count and if count is 1, get message info.
1452: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1453: EXCEPTION
1454: WHEN fnd_api.g_exc_error
1455: THEN
1456: ROLLBACK TO delete_quota_rule;
1457: x_return_status := fnd_api.g_ret_sts_error;
1458: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1453: EXCEPTION
1454: WHEN fnd_api.g_exc_error
1455: THEN
1456: ROLLBACK TO delete_quota_rule;
1457: x_return_status := fnd_api.g_ret_sts_error;
1458: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1459: WHEN fnd_api.g_exc_unexpected_error
1460: THEN
1461: ROLLBACK TO delete_quota_rule;
1454: WHEN fnd_api.g_exc_error
1455: THEN
1456: ROLLBACK TO delete_quota_rule;
1457: x_return_status := fnd_api.g_ret_sts_error;
1458: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1459: WHEN fnd_api.g_exc_unexpected_error
1460: THEN
1461: ROLLBACK TO delete_quota_rule;
1462: x_return_status := fnd_api.g_ret_sts_unexp_error;
1455: THEN
1456: ROLLBACK TO delete_quota_rule;
1457: x_return_status := fnd_api.g_ret_sts_error;
1458: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1459: WHEN fnd_api.g_exc_unexpected_error
1460: THEN
1461: ROLLBACK TO delete_quota_rule;
1462: x_return_status := fnd_api.g_ret_sts_unexp_error;
1463: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1458: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1459: WHEN fnd_api.g_exc_unexpected_error
1460: THEN
1461: ROLLBACK TO delete_quota_rule;
1462: x_return_status := fnd_api.g_ret_sts_unexp_error;
1463: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1464: WHEN OTHERS
1465: THEN
1466: ROLLBACK TO delete_quota_rule;
1459: WHEN fnd_api.g_exc_unexpected_error
1460: THEN
1461: ROLLBACK TO delete_quota_rule;
1462: x_return_status := fnd_api.g_ret_sts_unexp_error;
1463: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1464: WHEN OTHERS
1465: THEN
1466: ROLLBACK TO delete_quota_rule;
1467: x_return_status := fnd_api.g_ret_sts_unexp_error;
1463: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1464: WHEN OTHERS
1465: THEN
1466: ROLLBACK TO delete_quota_rule;
1467: x_return_status := fnd_api.g_ret_sts_unexp_error;
1468:
1469: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
1470: THEN
1471: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
1470: THEN
1471: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
1472: END IF;
1473:
1474: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1475: END delete_quota_rule;
1476:
1477: --|-------------------------------------------------------------------------+
1478: --| Procedure Name: Delete_Quota_Rules
1479: --| Descr: Delete a Quota Rules
1480: --|-------------------------------------------------------------------------+
1481: PROCEDURE delete_quota_rules (
1482: p_api_version IN NUMBER,
1483: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1484: p_commit IN VARCHAR2 := fnd_api.g_false,
1485: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1486: p_quota_name IN VARCHAR2,
1487: p_revenue_class_rec_tbl IN cn_plan_element_pub.revenue_class_rec_tbl_type,
1480: --|-------------------------------------------------------------------------+
1481: PROCEDURE delete_quota_rules (
1482: p_api_version IN NUMBER,
1483: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1484: p_commit IN VARCHAR2 := fnd_api.g_false,
1485: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1486: p_quota_name IN VARCHAR2,
1487: p_revenue_class_rec_tbl IN cn_plan_element_pub.revenue_class_rec_tbl_type,
1488: x_return_status OUT NOCOPY VARCHAR2,
1481: PROCEDURE delete_quota_rules (
1482: p_api_version IN NUMBER,
1483: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1484: p_commit IN VARCHAR2 := fnd_api.g_false,
1485: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
1486: p_quota_name IN VARCHAR2,
1487: p_revenue_class_rec_tbl IN cn_plan_element_pub.revenue_class_rec_tbl_type,
1488: x_return_status OUT NOCOPY VARCHAR2,
1489: x_msg_count OUT NOCOPY NUMBER,
1499: -- Standard Start of API savepoint
1500: SAVEPOINT delete_plan_element;
1501:
1502: -- Standard call to check for call compatibility.
1503: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
1504: THEN
1505: RAISE fnd_api.g_exc_unexpected_error;
1506: END IF;
1507:
1501:
1502: -- Standard call to check for call compatibility.
1503: IF NOT fnd_api.compatible_api_call (l_api_version, p_api_version, l_api_name, g_pkg_name)
1504: THEN
1505: RAISE fnd_api.g_exc_unexpected_error;
1506: END IF;
1507:
1508: -- Initialize message list if p_init_msg_list is set to TRUE.
1509: IF fnd_api.to_boolean (p_init_msg_list)
1505: RAISE fnd_api.g_exc_unexpected_error;
1506: END IF;
1507:
1508: -- Initialize message list if p_init_msg_list is set to TRUE.
1509: IF fnd_api.to_boolean (p_init_msg_list)
1510: THEN
1511: fnd_msg_pub.initialize;
1512: END IF;
1513:
1511: fnd_msg_pub.initialize;
1512: END IF;
1513:
1514: -- Initialize API return status to success
1515: x_return_status := fnd_api.g_ret_sts_success;
1516: x_loading_status := 'CN_DELETED';
1517:
1518: -- API body
1519:
1537: x_msg_count => x_msg_count,
1538: x_msg_data => x_msg_data
1539: );
1540:
1541: IF (x_return_status <> fnd_api.g_ret_sts_success)
1542: THEN
1543: x_loading_status := 'QUOTA_RULE_DELETE_FAILED';
1544: RAISE fnd_api.g_exc_error;
1545: END IF;
1540:
1541: IF (x_return_status <> fnd_api.g_ret_sts_success)
1542: THEN
1543: x_loading_status := 'QUOTA_RULE_DELETE_FAILED';
1544: RAISE fnd_api.g_exc_error;
1545: END IF;
1546: END LOOP;
1547: END IF;
1548:
1546: END LOOP;
1547: END IF;
1548:
1549: -- standard Commit
1550: IF fnd_api.to_boolean (p_commit)
1551: THEN
1552: COMMIT WORK;
1553: END IF;
1554:
1554:
1555: --+
1556: -- Standard call to get message count and if count is 1, get message info.
1557: --+
1558: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1559: EXCEPTION
1560: WHEN fnd_api.g_exc_error
1561: THEN
1562: ROLLBACK TO delete_plan_element;
1556: -- Standard call to get message count and if count is 1, get message info.
1557: --+
1558: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1559: EXCEPTION
1560: WHEN fnd_api.g_exc_error
1561: THEN
1562: ROLLBACK TO delete_plan_element;
1563: x_return_status := fnd_api.g_ret_sts_error;
1564: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1559: EXCEPTION
1560: WHEN fnd_api.g_exc_error
1561: THEN
1562: ROLLBACK TO delete_plan_element;
1563: x_return_status := fnd_api.g_ret_sts_error;
1564: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1565: WHEN fnd_api.g_exc_unexpected_error
1566: THEN
1567: ROLLBACK TO delete_plan_element;
1560: WHEN fnd_api.g_exc_error
1561: THEN
1562: ROLLBACK TO delete_plan_element;
1563: x_return_status := fnd_api.g_ret_sts_error;
1564: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1565: WHEN fnd_api.g_exc_unexpected_error
1566: THEN
1567: ROLLBACK TO delete_plan_element;
1568: x_loading_status := 'UNEXPECTED_ERR';
1561: THEN
1562: ROLLBACK TO delete_plan_element;
1563: x_return_status := fnd_api.g_ret_sts_error;
1564: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1565: WHEN fnd_api.g_exc_unexpected_error
1566: THEN
1567: ROLLBACK TO delete_plan_element;
1568: x_loading_status := 'UNEXPECTED_ERR';
1569: x_return_status := fnd_api.g_ret_sts_unexp_error;
1565: WHEN fnd_api.g_exc_unexpected_error
1566: THEN
1567: ROLLBACK TO delete_plan_element;
1568: x_loading_status := 'UNEXPECTED_ERR';
1569: x_return_status := fnd_api.g_ret_sts_unexp_error;
1570: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1571: WHEN OTHERS
1572: THEN
1573: ROLLBACK TO delete_plan_element;
1566: THEN
1567: ROLLBACK TO delete_plan_element;
1568: x_loading_status := 'UNEXPECTED_ERR';
1569: x_return_status := fnd_api.g_ret_sts_unexp_error;
1570: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1571: WHEN OTHERS
1572: THEN
1573: ROLLBACK TO delete_plan_element;
1574: x_loading_status := 'UNEXPECTED_ERR';
1571: WHEN OTHERS
1572: THEN
1573: ROLLBACK TO delete_plan_element;
1574: x_loading_status := 'UNEXPECTED_ERR';
1575: x_return_status := fnd_api.g_ret_sts_unexp_error;
1576:
1577: IF fnd_msg_pub.check_msg_level (fnd_msg_pub.g_msg_lvl_unexp_error)
1578: THEN
1579: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
1578: THEN
1579: fnd_msg_pub.add_exc_msg (g_pkg_name, l_api_name);
1580: END IF;
1581:
1582: fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data, p_encoded => fnd_api.g_false);
1583: END delete_quota_rules;
1584: END cn_quota_rule_pvt;