59: SAVEPOINT create_ci_type;
60: END IF;
61:
62: IF p_init_msg_list = FND_API.G_TRUE THEN
63: fnd_msg_pub.initialize;
64: END IF;
65:
66: x_return_status := 'S';
67: x_msg_count := 0;
70: -- Validate the name and short name uniqueness
71: IF (pa_ci_types_util.check_ci_type_name_exists(p_name, p_short_name)) THEN
72: x_return_status := 'E';
73: fnd_message.set_name('PA', 'PA_CI_TYPE_NAME_NOT_UNIQUE');
74: fnd_msg_pub.add();
75: END IF;
76:
77: -- Resolution Category is required when Resolution Required Flag is checked
78: IF p_resolution_required_flag = 'Y' AND
78: IF p_resolution_required_flag = 'Y' AND
79: p_resolution_category IS NULL THEN
80: x_return_status := 'E';
81: fnd_message.set_name('PA', 'PA_CI_TYPE_RESO_CAT_MISSING');
82: fnd_msg_pub.add();
83: END IF;
84:
85: -- End Date Active must be later than Start Date Active
86: IF p_start_date_active > p_end_date_active THEN
85: -- End Date Active must be later than Start Date Active
86: IF p_start_date_active > p_end_date_active THEN
87: x_return_status := 'E';
88: fnd_message.set_name('PA', 'PA_CI_TYPE_INVALID_DATES');
89: fnd_msg_pub.add();
90: END IF;
91:
92: IF (p_validate_only <> fnd_api.g_true AND x_return_status = 'S') THEN
93: SELECT pa_ci_types_b_s.NEXTVAL
201: ROLLBACK TO create_ci_type;
202: END IF;
203: END IF;
204:
205: fnd_msg_pub.count_and_get(p_count => x_msg_count,
206: p_data => x_msg_data);
207:
208: pa_debug.reset_err_stack;
209:
213: ROLLBACK TO create_ci_type;
214: END IF;
215:
216: x_return_status := 'U';
217: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_CI_TYPES_PVT',
218: p_procedure_name => 'CREATE_CI_TYPE',
219: p_error_text => SUBSTRB(SQLERRM,1,240));
220:
221: fnd_msg_pub.count_and_get(p_count => x_msg_count,
217: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_CI_TYPES_PVT',
218: p_procedure_name => 'CREATE_CI_TYPE',
219: p_error_text => SUBSTRB(SQLERRM,1,240));
220:
221: fnd_msg_pub.count_and_get(p_count => x_msg_count,
222: p_data => x_msg_data);
223: END create_ci_type;
224:
225:
283: SAVEPOINT update_ci_type;
284: END IF;
285:
286: IF p_init_msg_list = FND_API.G_TRUE THEN
287: fnd_msg_pub.initialize;
288: END IF;
289:
290: x_return_status := 'S';
291: x_msg_count := 0;
294: -- Validate the name and short name uniqueness
295: IF (pa_ci_types_util.check_ci_type_name_exists(p_name, p_short_name, p_ci_type_id)) THEN
296: x_return_status := 'E';
297: fnd_message.set_name('PA','PA_CI_TYPE_NAME_NOT_UNIQUE');
298: fnd_msg_pub.add();
299: END IF;
300:
301:
302: -- Validate the record version number
315: EXCEPTION
316: WHEN NO_DATA_FOUND THEN
317: x_return_status := 'E';
318: fnd_message.set_name('PA','PA_XC_RECORD_CHANGED');
319: fnd_msg_pub.add();
320: END;
321:
322: -- Cannot change the category if there is a control item using the class code
323: IF x_return_status = 'S' AND
330: AND ROWNUM < 2;
331:
332: x_return_status := 'E';
333: fnd_message.set_name('PA','PA_CI_TYPE_CLASS_CAT_IN_USE');
334: fnd_msg_pub.add();
335: EXCEPTION
336: WHEN NO_DATA_FOUND THEN
337: NULL;
338: END;
348: AND ROWNUM < 2;
349:
350: x_return_status := 'E';
351: fnd_message.set_name('PA','PA_CI_TYPE_REASON_CAT_IN_USE');
352: fnd_msg_pub.add();
353: EXCEPTION
354: WHEN NO_DATA_FOUND THEN
355: NULL;
356: END;
366: AND ROWNUM < 2;
367:
368: x_return_status := 'E';
369: fnd_message.set_name('PA','PA_CI_TYPE_RESO_CAT_IN_USE');
370: fnd_msg_pub.add();
371: EXCEPTION
372: WHEN NO_DATA_FOUND THEN
373: NULL;
374: END;
378: IF p_resolution_required_flag = 'Y' AND
379: p_resolution_category IS NULL THEN
380: x_return_status := 'E';
381: fnd_message.set_name('PA', 'PA_CI_TYPE_RESO_CAT_MISSING');
382: fnd_msg_pub.add();
383: END IF;
384:
385: -- Cannot change from Manual to Automatic numbering if an item exists
386: IF p_auto_number_flag = 'Y' THEN
395: AND ROWNUM=1;
396:
397: x_return_status := 'E';
398: fnd_message.set_name('PA', 'PA_CI_TYPE_NO_SWITCH_NUM');
399: fnd_msg_pub.add();
400: EXCEPTION
401: WHEN OTHERS THEN
402: NULL;
403: END;
406: -- End Date Active must be later than Start Date Active
407: IF p_start_date_active > p_end_date_active THEN
408: x_return_status := 'E';
409: fnd_message.set_name('PA', 'PA_CI_TYPE_INVALID_DATES');
410: fnd_msg_pub.add();
411: END IF;
412:
413: IF (p_validate_only <> fnd_api.g_true AND x_return_status = 'S') THEN
414: pa_ci_types_pkg.update_row(
467: ROLLBACK TO update_ci_type;
468: END IF;
469: END IF;
470:
471: fnd_msg_pub.count_and_get(p_count => x_msg_count,
472: p_data => x_msg_data);
473:
474: pa_debug.reset_err_stack;
475:
479: ROLLBACK TO update_ci_type;
480: END IF;
481:
482: x_return_status := 'U';
483: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_CI_TYPES_PVT',
484: p_procedure_name => 'UPDATE_CI_TYPE',
485: p_error_text => SUBSTRB(SQLERRM,1,240));
486:
487: fnd_msg_pub.count_and_get(p_count => x_msg_count,
483: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_CI_TYPES_PVT',
484: p_procedure_name => 'UPDATE_CI_TYPE',
485: p_error_text => SUBSTRB(SQLERRM,1,240));
486:
487: fnd_msg_pub.count_and_get(p_count => x_msg_count,
488: p_data => x_msg_data);
489: END update_ci_type;
490:
491:
526: SAVEPOINT delete_ci_type;
527: END IF;
528:
529: IF p_init_msg_list = FND_API.G_TRUE THEN
530: fnd_msg_pub.initialize;
531: END IF;
532:
533: x_return_status := 'S';
534: x_msg_count := 0;
543: EXCEPTION
544: WHEN NO_DATA_FOUND THEN
545: x_return_status := 'E';
546: fnd_message.set_name('PA','PA_XC_RECORD_CHANGED');
547: fnd_msg_pub.add();
548: END;
549:
550: -- Cannot delete CI Type if CI exists
551: BEGIN
555: AND ROWNUM=1;
556:
557: x_return_status := 'E';
558: fnd_message.set_name('PA','PA_CI_TYPE_NO_DELETE_IN_USE');
559: fnd_msg_pub.add();
560: EXCEPTION
561: WHEN OTHERS THEN
562: NULL;
563: END;
567: -- for financial imapct implementation/inclusion
568: if Pa_Fp_Control_Items_Utils.validate_fp_ci_type_delete( p_ci_type_id) <> 'Y' then
569: x_return_status := 'E';
570: fnd_message.set_name('PA','FP_CI_TYPE_DEL_NOT_ALLOWED');
571: fnd_msg_pub.add();
572: end if;
573: /* Changes for the bug# 3941304 ends here */
574:
575: --Deleting the associated distribution list
633: ROLLBACK TO delete_ci_type;
634: END IF;
635: END IF;
636:
637: fnd_msg_pub.count_and_get(p_count => x_msg_count,
638: p_data => x_msg_data);
639:
640: pa_debug.reset_err_stack;
641:
645: ROLLBACK TO delete_ci_type;
646: END IF;
647:
648: x_return_status := 'U';
649: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_CI_TYPES_PVT',
650: p_procedure_name => 'DELETE_CI_TYPE',
651: p_error_text => SUBSTRB(SQLERRM,1,240));
652:
653: fnd_msg_pub.count_and_get(p_count => x_msg_count,
649: fnd_msg_pub.add_exc_msg(p_pkg_name => 'PA_CI_TYPES_PVT',
650: p_procedure_name => 'DELETE_CI_TYPE',
651: p_error_text => SUBSTRB(SQLERRM,1,240));
652:
653: fnd_msg_pub.count_and_get(p_count => x_msg_count,
654: p_data => x_msg_data);
655: END delete_ci_type;
656:
657: END pa_ci_types_pvt;