5: -- | Private Global Definitions |
6: -- ----------------------------------------------------------------------------
7: --
8: g_package varchar2(33) := ' per_pma_bus.'; -- Global package name
9: g_debug boolean := hr_utility.debug_enabled;
10: --
11: -- The following two global variables are only to be
12: -- used by the return_legislation_code function.
13: --
48: --
49: l_proc varchar2(72) := g_package || 'chk_df';
50: --
51: begin
52: hr_utility.set_location('Entering:'||l_proc,10);
53: --
54: if ((p_rec.appraisal_period_id is not null) and (
55: nvl(per_pma_shd.g_old_rec.attribute_category, hr_api.g_varchar2) <>
56: nvl(p_rec.attribute_category, hr_api.g_varchar2) or
187: ,p_attribute30_value => p_rec.attribute30
188: );
189: end if;
190: --
191: hr_utility.set_location(' Leaving:'||l_proc,20);
192: end chk_df;
193: --
194: -- ----------------------------------------------------------------------------
195: -- |---------------------------< chk_start_date >----------------------------|
201: l_proc varchar2(72) := g_package||'chk_start_date';
202: --
203:
204: Begin
205: hr_utility.set_location('Entering:'||l_proc, 5);
206: hr_api.mandatory_arg_error
207: (p_api_name => l_proc
208: ,p_argument => 'p_task_start_date'
209: ,p_argument_value => p_task_start_date
211: IF trunc(p_task_start_date) < trunc(sysdate) THEN
212: fnd_message.set_name('PER', 'HR_APPR_TASK_DT_BEFORE_SYSDATE');
213: fnd_message.raise_error;
214: END IF;
215: hr_utility.set_location(' Leaving:'||l_proc, 980);
216: End chk_start_date;
217: --
218:
219: --
268: fnd_message.set_token('STEP ', '5');
269: fnd_message.raise_error;
270: END IF;
271: --
272: hr_utility.set_location(l_proc, 10);
273: if nvl(p_rec.plan_id,hr_api.g_number) <>
274: per_pma_shd.g_old_rec.plan_id then
275: l_argument := 'plan_id';
276: raise l_error;
275: l_argument := 'plan_id';
276: raise l_error;
277: end if;
278: --
279: hr_utility.set_location(l_proc, 20);
280: if nvl(p_rec.appraisal_template_id,hr_api.g_number) <>
281: per_pma_shd.g_old_rec.appraisal_template_id then
282: l_argument := 'appraisal_template_id';
283: raise l_error;
282: l_argument := 'appraisal_template_id';
283: raise l_error;
284: end if;
285: --
286: hr_utility.set_location(l_proc, 30);
287: --
288: EXCEPTION
289: WHEN l_error THEN
290: hr_api.argument_changed_error
333: WHERE pmp.plan_id = p_plan_id;
334: --
335: BEGIN
336:
337: IF g_debug THEN hr_utility.set_location('Entering:'|| l_proc, 10); END IF;
338:
339: hr_api.mandatory_arg_error
340: (p_api_name => l_proc
341: ,p_argument => 'p_plan_id'
344:
345: --
346: -- Check that plan exists.
347: --
348: IF g_debug THEN hr_utility.set_location(l_proc, 20); END IF;
349: OPEN csr_chk_plan_id;
350: FETCH csr_chk_plan_id INTO l_plan_id;
351: CLOSE csr_chk_plan_id;
352:
354: fnd_message.set_name('PER', 'HR_50264_PMS_INVALID_PLAN');
355: fnd_message.raise_error;
356: END IF;
357:
358: IF g_debug THEN hr_utility.set_location('Leaving:'|| l_proc, 970); END IF;
359:
360: EXCEPTION
361:
362: WHEN app_exception.application_exception THEN
362: WHEN app_exception.application_exception THEN
363: IF hr_multi_message.exception_add
364: (p_associated_column1 => 'PER_APPRAISAL_PERIODS.PLAN_ID')
365: THEN
366: hr_utility.set_location(' Leaving:'|| l_proc, 980);
367: RAISE;
368: END IF;
369: hr_utility.set_location(' Leaving:'|| l_proc, 990);
370:
365: THEN
366: hr_utility.set_location(' Leaving:'|| l_proc, 980);
367: RAISE;
368: END IF;
369: hr_utility.set_location(' Leaving:'|| l_proc, 990);
370:
371: END chk_plan_id;
372: --
373: -- ----------------------------------------------------------------------------
408: WHERE apt.appraisal_template_id = p_appraisal_template_id;
409: --
410: BEGIN
411:
412: IF g_debug THEN hr_utility.set_location('Entering:'|| l_proc, 10); END IF;
413:
414: hr_api.mandatory_arg_error
415: (p_api_name => l_proc
416: ,p_argument => 'p_appraisal_template_id'
419:
420: --
421: -- Check that template exists.
422: --
423: IF g_debug THEN hr_utility.set_location(l_proc, 20); END IF;
424: OPEN csr_chk_template;
425: FETCH csr_chk_template INTO l_template_id;
426: CLOSE csr_chk_template;
427:
429: fnd_message.set_name('PER', 'HR_50299_PMA_TEMPLATE_INVALID');
430: fnd_message.raise_error;
431: END IF;
432:
433: IF g_debug THEN hr_utility.set_location('Leaving:'|| l_proc, 970); END IF;
434:
435: EXCEPTION
436:
437: WHEN app_exception.application_exception THEN
437: WHEN app_exception.application_exception THEN
438: IF hr_multi_message.exception_add
439: (p_associated_column1 => 'PER_APPRAISAL_PERIODS.APPRAISAL_TEMPLATE_ID')
440: THEN
441: hr_utility.set_location(' Leaving:'|| l_proc, 980);
442: RAISE;
443: END IF;
444: hr_utility.set_location(' Leaving:'|| l_proc, 990);
445:
440: THEN
441: hr_utility.set_location(' Leaving:'|| l_proc, 980);
442: RAISE;
443: END IF;
444: hr_utility.set_location(' Leaving:'|| l_proc, 990);
445:
446: END chk_appraisal_template_id;
447: --
448: -- ----------------------------------------------------------------------------
503: WHERE apt.appraisal_template_id = p_appraisal_template_id;
504: --
505: BEGIN
506:
507: IF g_debug THEN hr_utility.set_location('Entering:'|| l_proc, 10); END IF;
508:
509: --
510: hr_api.mandatory_arg_error
511: (p_api_name => l_proc
536: THEN
537: RETURN;
538: END IF;
539:
540: IF g_debug THEN hr_utility.set_location(l_proc, 20); END IF;
541:
542: --
543: -- Check that the appraisal period's start date is not later
544: -- than the end date.
547: fnd_message.set_name('PER', 'HR_50233_WPM_PLAN_DATES');
548: fnd_message.raise_error;
549: END IF;
550:
551: IF g_debug THEN hr_utility.set_location(l_proc, 30); END IF;
552:
553: --
554: -- Check that the appraisal period is within the plan dates.
555: --
552:
553: --
554: -- Check that the appraisal period is within the plan dates.
555: --
556: IF g_debug THEN hr_utility.set_location(l_proc, 40); END IF;
557: OPEN csr_dates_within_plan;
558: FETCH csr_dates_within_plan INTO l_pmp_start_date
559: ,l_pmp_end_date;
560: CLOSE csr_dates_within_plan;
568:
569: --
570: -- Check that the appraisal period is within the template dates.
571: --
572: IF g_debug THEN hr_utility.set_location(l_proc, 50); END IF;
573: OPEN csr_dates_within_template;
574: FETCH csr_dates_within_template INTO l_apt_date_from
575: ,l_apt_date_to;
576: CLOSE csr_dates_within_template;
582: fnd_message.raise_error;
583: END IF;
584:
585:
586: IF g_debug THEN hr_utility.set_location('Leaving:'|| l_proc, 970); END IF;
587:
588: EXCEPTION
589:
590: WHEN app_exception.application_exception THEN
591: IF hr_multi_message.exception_add
592: (p_associated_column1 => 'PER_APPRAISAL_PERIODS.START_DATE'
593: ,p_associated_column2 => 'PER_APPRAISAL_PERIODS.END_DATE')
594: THEN
595: hr_utility.set_location(' Leaving:'|| l_proc, 980);
596: RAISE;
597: END IF;
598: hr_utility.set_location(' Leaving:'|| l_proc, 990);
599:
594: THEN
595: hr_utility.set_location(' Leaving:'|| l_proc, 980);
596: RAISE;
597: END IF;
598: hr_utility.set_location(' Leaving:'|| l_proc, 990);
599:
600: END chk_dates;
601: --
602: -- ----------------------------------------------------------------------------
647: AND pma.appraisal_period_id <> nvl(p_appraisal_period_id, hr_api.g_number);
648: --
649: BEGIN
650:
651: IF g_debug THEN hr_utility.set_location('Entering:'|| l_proc, 10); END IF;
652:
653: --
654: -- Only proceed with validation if :
655: -- a) The current g_old_rec is current and
674:
675: --
676: -- Check that the plan is not a duplicate.
677: --
678: IF g_debug THEN hr_utility.set_location(l_proc, 20); END IF;
679: OPEN csr_chk_duplicate;
680: FETCH csr_chk_duplicate INTO l_dup;
681: CLOSE csr_chk_duplicate;
682:
684: fnd_message.set_name('PER', 'HR_50394_PMA_DUP_ERROR');
685: fnd_message.raise_error;
686: END IF;
687:
688: IF g_debug THEN hr_utility.set_location('Leaving:'|| l_proc, 970); END IF;
689:
690: EXCEPTION
691:
692: WHEN app_exception.application_exception THEN
695: ,p_associated_column2 => 'PER_PERSONAL_SCORECARDS.APPRAISAL_TEMPLATE_ID'
696: ,p_associated_column3 => 'PER_PERSONAL_SCORECARDS.START_DATE'
697: ,p_associated_column4 => 'PER_PERSONAL_SCORECARDS.START_END')
698: THEN
699: hr_utility.set_location(' Leaving:'|| l_proc, 980);
700: RAISE;
701: END IF;
702: hr_utility.set_location(' Leaving:'|| l_proc, 990);
703:
698: THEN
699: hr_utility.set_location(' Leaving:'|| l_proc, 980);
700: RAISE;
701: END IF;
702: hr_utility.set_location(' Leaving:'|| l_proc, 990);
703:
704: END chk_duplicate;
705: --
706: -- ----------------------------------------------------------------------------
742: l_api_updating boolean;
743:
744: Begin
745:
746: IF g_debug THEN hr_utility.set_location('Entering:'|| l_proc, 10); END IF;
747:
748: --
749: hr_api.mandatory_arg_error
750: (p_api_name => l_proc
766: THEN
767: RETURN;
768: END IF;
769:
770: IF g_debug THEN hr_utility.set_location(l_proc, 20); END IF;
771:
772: --
773: -- Checks that the status code is valid
774: --
780: fnd_message.set_name('PER','HR_50234_WPM_PLAN_STATUS');
781: fnd_message.raise_error;
782: END IF;
783:
784: IF g_debug THEN hr_utility.set_location('Leaving:'|| l_proc, 970); END IF;
785:
786: exception
787: when app_exception.application_exception then
788: IF hr_multi_message.exception_add
787: when app_exception.application_exception then
788: IF hr_multi_message.exception_add
789: (p_associated_column1 => 'PER_APPRAISAL_PERIODS.INITIATOR_CODE'
790: ) THEN
791: hr_utility.set_location(' Leaving:'||l_proc, 980);
792: raise;
793: END IF;
794: hr_utility.set_location(' Leaving:'||l_proc, 990);
795:
790: ) THEN
791: hr_utility.set_location(' Leaving:'||l_proc, 980);
792: raise;
793: END IF;
794: hr_utility.set_location(' Leaving:'||l_proc, 990);
795:
796:
797: End chk_initiator_code;
798: --
829: l_proc varchar2(72) := g_package || 'chk_task_dates';
830:
831: BEGIN
832:
833: IF g_debug THEN hr_utility.set_location('Entering:'|| l_proc, 10); END IF;
834:
835: --
836: hr_api.mandatory_arg_error
837: (p_api_name => l_proc
853: fnd_message.set_name('PER', 'HR_50417_WPM_PLAN_DATES');
854: fnd_message.raise_error;
855: END IF;
856:
857: IF g_debug THEN hr_utility.set_location('Leaving:'|| l_proc, 970); END IF;
858:
859: EXCEPTION
860:
861: WHEN app_exception.application_exception THEN
862: IF hr_multi_message.exception_add
863: (p_associated_column1 => 'PER_APPRAISAL_PERIODS.TASK_START_DATE'
864: ,p_associated_column2 => 'PER_APPRAISAL_PERIODS.TASK_END_DATE')
865: THEN
866: hr_utility.set_location(' Leaving:'|| l_proc, 980);
867: RAISE;
868: END IF;
869: hr_utility.set_location(' Leaving:'|| l_proc, 990);
870:
865: THEN
866: hr_utility.set_location(' Leaving:'|| l_proc, 980);
867: RAISE;
868: END IF;
869: hr_utility.set_location(' Leaving:'|| l_proc, 990);
870:
871: END chk_task_dates;
872: --
873: -- ----------------------------------------------------------------------------
880: --
881: l_proc varchar2(72) := g_package||'insert_validate';
882: --
883: Begin
884: IF g_debug THEN hr_utility.set_location('Entering:'||l_proc, 5); END IF;
885: --
886: -- Call all supporting business operations
887: --
888: -- No business group context. HR_STANDARD_LOOKUPS used for validation.
892: --
893: chk_plan_id
894: (p_plan_id => p_rec.plan_id);
895:
896: IF g_debug THEN hr_utility.set_location(l_proc, 10); END IF;
897:
898: chk_appraisal_template_id
899: (p_appraisal_template_id => p_rec.appraisal_template_id);
900:
902: -- End important validation
903: --
904: hr_multi_message.end_validation_set;
905:
906: IF g_debug THEN hr_utility.set_location(l_proc, 20); END IF;
907:
908: --
909: -- Validate Independent Attributes
910: --
915: ,p_appraisal_template_id => p_rec.appraisal_template_id
916: ,p_start_date => p_rec.start_date
917: ,p_end_date => p_rec.end_date);
918:
919: IF g_debug THEN hr_utility.set_location(l_proc, 30); END IF;
920:
921: chk_duplicate
922: (p_appraisal_period_id => p_rec.appraisal_period_id
923: ,p_object_version_number => p_rec.object_version_number
940: (p_task_start_date => p_rec.task_start_date);
941:
942: per_pma_bus.chk_df(p_rec);
943: --
944: hr_utility.set_location(' Leaving:'||l_proc, 980);
945:
946: End insert_validate;
947: --
948: -- ----------------------------------------------------------------------------
955: --
956: l_proc varchar2(72) := g_package||'update_validate';
957: --
958: Begin
959: hr_utility.set_location('Entering:'||l_proc, 5);
960: --
961: -- Call all supporting business operations
962: --
963: -- No business group context. HR_STANDARD_LOOKUPS used for validation.
966: (p_effective_date => p_effective_date
967: ,p_rec => p_rec
968: );
969:
970: IF g_debug THEN hr_utility.set_location(l_proc, 10); END IF;
971:
972: --
973: -- Validate Independent Attributes
974: --
979: ,p_appraisal_template_id => p_rec.appraisal_template_id
980: ,p_start_date => p_rec.start_date
981: ,p_end_date => p_rec.end_date);
982:
983: IF g_debug THEN hr_utility.set_location(l_proc, 20); END IF;
984:
985: chk_duplicate
986: (p_appraisal_period_id => p_rec.appraisal_period_id
987: ,p_object_version_number => p_rec.object_version_number
1009:
1010: --
1011: per_pma_bus.chk_df(p_rec);
1012: --
1013: hr_utility.set_location(' Leaving:'||l_proc, 980);
1014:
1015: End update_validate;
1016: --
1017: -- ----------------------------------------------------------------------------
1023: --
1024: l_proc varchar2(72) := g_package||'delete_validate';
1025: --
1026: Begin
1027: hr_utility.set_location('Entering:'||l_proc, 5);
1028: --
1029: -- Call all supporting business operations
1030: --
1031: hr_utility.set_location(' Leaving:'||l_proc, 10);
1027: hr_utility.set_location('Entering:'||l_proc, 5);
1028: --
1029: -- Call all supporting business operations
1030: --
1031: hr_utility.set_location(' Leaving:'||l_proc, 10);
1032: End delete_validate;
1033: --
1034: end per_pma_bus;