18: -- --------------------------------------------------------------------------+
19:
20: procedure set_security_group_id
21: (
22: p_appraisal_id in per_appraisals.appraisal_id%TYPE
23: ,p_associated_column1 in varchar2 default null
24: ) is
25:
26: -- Declare cursor
27:
28: cursor csr_sec_grp is
29: select inf.org_information14
30: from hr_organization_information inf
31: , per_appraisals apr
32: where apr.appraisal_id = p_appraisal_id
33: and inf.organization_id = apr.business_group_id
34: and inf.org_information_context || '' = 'Business Group Information';
35:
55: -- The primary key is invalid therefore we must error
56:
57: hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
58: hr_multi_message.add(p_associated_column1 =>
59: nvl(p_associated_column1,'PER_APPRAISALS.PERSON_ID'));
60: else
61: close csr_sec_grp;
62: --
63: -- Set the security_group_id in CLIENT_INFO
202: -- Internal Row Handler Use Only.
203:
204: -- ---------------------------------------------------------------------------+
205: procedure chk_open
206: (p_open in per_appraisals.open%TYPE
207: ,p_effective_date in date
208: )
209: is
210:
229:
230: EXCEPTION
231: when app_exception.application_exception then
232: if hr_multi_message.exception_add
233: (p_associated_column1 => 'PER_APPRAISALS.OPEN'
234: ) then
235: raise;
236: end if;
237: end chk_open;
538: -- Internal Row Handler Use Only.
539:
540: -- ---------------------------------------------------------------------------+
541: procedure chk_appraiser_person_id
542: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
543: )
544: is
545:
546: l_proc varchar2(72) := g_package || 'chk_appraiser_person_id';
580:
581: EXCEPTION
582: when app_exception.application_exception then
583: if hr_multi_message.exception_add
584: (p_associated_column1 => 'PER_APPRAISALS.APPRAISER_PERSON_ID'
585: ) then
586: raise;
587: end if;
588:
622: -- Internal Table Handler Use Only.
623:
624:
625: procedure chk_appraisal_template
626: (p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
627: ,p_business_group_id in per_appraisals.business_group_id%TYPE
628: ,p_effective_date in date
629: )
630: is
623:
624:
625: procedure chk_appraisal_template
626: (p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
627: ,p_business_group_id in per_appraisals.business_group_id%TYPE
628: ,p_effective_date in date
629: )
630: is
631:
630: is
631:
632: l_exists varchar2(1);
633: l_proc varchar2(72) := g_package||'chk_appraisal_template';
634: l_business_group_id per_appraisals.business_group_id%TYPE;
635:
636:
637: -- Cursor to check if appraisal exists
638:
718: hr_utility.set_location('Leaving: '|| l_proc, 10);
719: EXCEPTION
720: when app_exception.application_exception then
721: if hr_multi_message.exception_add
722: (p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_TEMPLATE_ID'
723: ) then
724: raise;
725: end if;
726:
760:
761:
762: procedure chk_appraisee_appraiser
763: (p_person_id in per_people_f.person_id%TYPE
764: ,p_business_group_id in per_appraisals.business_group_id%TYPE
765: ,p_effective_date in date
766: ,p_person_type in varchar2
767: )
768: is
767: )
768: is
769:
770: l_exists varchar2(1);
771: l_business_group_id per_appraisals.business_group_id%TYPE;
772: l_proc varchar2(72) := g_package||'chk_appraisee_appraiser';
773: lv_cross_business_group varchar2(10); -- bug 1980440 fix
774:
775:
930: -- Access Status
931: -- Internal Table Handler Use Only.
932:
933: procedure chk_main_appraiser_id
934: (p_main_appraiser_id in per_appraisals.main_appraiser_id%TYPE
935: ,p_business_group_id in per_appraisals.business_group_id%TYPE
936: ,p_effective_date in date
937:
938: )
931: -- Internal Table Handler Use Only.
932:
933: procedure chk_main_appraiser_id
934: (p_main_appraiser_id in per_appraisals.main_appraiser_id%TYPE
935: ,p_business_group_id in per_appraisals.business_group_id%TYPE
936: ,p_effective_date in date
937:
938: )
939: is
941: --
942: l_proc varchar2(72) := g_package||'chk_main_appraiser_id';
943: lv_cross_business_group varchar2(10);
944: l_exists varchar2(1);
945: l_business_group_id per_appraisals.business_group_id%TYPE;
946:
947: --
948:
949: -- Cursor to check if person is valid
1019:
1020: EXCEPTION
1021: when app_exception.application_exception then
1022: if hr_multi_message.exception_add
1023: (p_associated_column1 => 'PER_APPRAISALS.MAIN_APPRAISER_ID'
1024: ) then
1025: raise;
1026: end if;
1027:
1054: -- Access Status
1055: -- Internal Table Handler Use Only.
1056:
1057: procedure chk_appraisal_type
1058: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1059: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1060: ,p_type in per_appraisals.type%TYPE
1061: ,p_effective_date in date
1062: )
1055: -- Internal Table Handler Use Only.
1056:
1057: procedure chk_appraisal_type
1058: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1059: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1060: ,p_type in per_appraisals.type%TYPE
1061: ,p_effective_date in date
1062: )
1063: is
1056:
1057: procedure chk_appraisal_type
1058: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1059: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1060: ,p_type in per_appraisals.type%TYPE
1061: ,p_effective_date in date
1062: )
1063: is
1064:
1116: hr_utility.set_location('Leaving: '|| l_proc, 10);
1117: EXCEPTION
1118: when app_exception.application_exception then
1119: if hr_multi_message.exception_add
1120: (p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_TYPE'
1121: ) then
1122: raise;
1123: end if;
1124:
1153: -- Access Status
1154: -- Internal Table Handler Use Only.
1155:
1156: procedure chk_appraisal_status
1157: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1158: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1159: ,p_status in per_appraisals.status%TYPE
1160: ,p_effective_date in date
1161: )
1154: -- Internal Table Handler Use Only.
1155:
1156: procedure chk_appraisal_status
1157: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1158: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1159: ,p_status in per_appraisals.status%TYPE
1160: ,p_effective_date in date
1161: )
1162: is
1155:
1156: procedure chk_appraisal_status
1157: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1158: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1159: ,p_status in per_appraisals.status%TYPE
1160: ,p_effective_date in date
1161: )
1162: is
1163:
1216:
1217: EXCEPTION
1218: when app_exception.application_exception then
1219: if hr_multi_message.exception_add
1220: (p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_STATUS'
1221: ) then
1222: raise;
1223: end if;
1224:
1435: -- Access Status
1436: -- Internal Table Handler Use Only.
1437:
1438: procedure chk_appraisal_period_dates
1439: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1440: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1441: ,p_appraisal_period_start_date in per_appraisals.appraisal_period_start_date%TYPE
1442: ,p_appraisal_period_end_date in per_appraisals.appraisal_period_end_date%TYPE
1443: )
1436: -- Internal Table Handler Use Only.
1437:
1438: procedure chk_appraisal_period_dates
1439: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1440: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1441: ,p_appraisal_period_start_date in per_appraisals.appraisal_period_start_date%TYPE
1442: ,p_appraisal_period_end_date in per_appraisals.appraisal_period_end_date%TYPE
1443: )
1444: is
1437:
1438: procedure chk_appraisal_period_dates
1439: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1440: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1441: ,p_appraisal_period_start_date in per_appraisals.appraisal_period_start_date%TYPE
1442: ,p_appraisal_period_end_date in per_appraisals.appraisal_period_end_date%TYPE
1443: )
1444: is
1445:
1438: procedure chk_appraisal_period_dates
1439: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1440: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1441: ,p_appraisal_period_start_date in per_appraisals.appraisal_period_start_date%TYPE
1442: ,p_appraisal_period_end_date in per_appraisals.appraisal_period_end_date%TYPE
1443: )
1444: is
1445:
1446: l_api_updating boolean;
1518: -- Internal Row Handler Use Only.
1519:
1520: -- ---------------------------------------------------------------------------+
1521: procedure chk_appraisal_dates
1522: (p_appraisal_date in per_appraisals.appraisal_date%TYPE
1523: ,p_appraisal_period_start_date
1524: in per_appraisals.appraisal_period_start_date%TYPE
1525: ,p_appraisal_period_end_date
1526: in per_appraisals.appraisal_period_end_date%TYPE
1520: -- ---------------------------------------------------------------------------+
1521: procedure chk_appraisal_dates
1522: (p_appraisal_date in per_appraisals.appraisal_date%TYPE
1523: ,p_appraisal_period_start_date
1524: in per_appraisals.appraisal_period_start_date%TYPE
1525: ,p_appraisal_period_end_date
1526: in per_appraisals.appraisal_period_end_date%TYPE
1527: ,p_next_appraisal_date in per_appraisals.next_appraisal_date%TYPE
1528: ,p_appraisee_person_id
1522: (p_appraisal_date in per_appraisals.appraisal_date%TYPE
1523: ,p_appraisal_period_start_date
1524: in per_appraisals.appraisal_period_start_date%TYPE
1525: ,p_appraisal_period_end_date
1526: in per_appraisals.appraisal_period_end_date%TYPE
1527: ,p_next_appraisal_date in per_appraisals.next_appraisal_date%TYPE
1528: ,p_appraisee_person_id
1529: in per_appraisals.appraisee_person_id%TYPE
1530: ,p_appraiser_person_id
1523: ,p_appraisal_period_start_date
1524: in per_appraisals.appraisal_period_start_date%TYPE
1525: ,p_appraisal_period_end_date
1526: in per_appraisals.appraisal_period_end_date%TYPE
1527: ,p_next_appraisal_date in per_appraisals.next_appraisal_date%TYPE
1528: ,p_appraisee_person_id
1529: in per_appraisals.appraisee_person_id%TYPE
1530: ,p_appraiser_person_id
1531: in per_appraisals.appraiser_person_id%TYPE
1525: ,p_appraisal_period_end_date
1526: in per_appraisals.appraisal_period_end_date%TYPE
1527: ,p_next_appraisal_date in per_appraisals.next_appraisal_date%TYPE
1528: ,p_appraisee_person_id
1529: in per_appraisals.appraisee_person_id%TYPE
1530: ,p_appraiser_person_id
1531: in per_appraisals.appraiser_person_id%TYPE
1532: ,p_main_appraiser_id in per_appraisals.main_appraiser_id%TYPE
1533: )
1527: ,p_next_appraisal_date in per_appraisals.next_appraisal_date%TYPE
1528: ,p_appraisee_person_id
1529: in per_appraisals.appraisee_person_id%TYPE
1530: ,p_appraiser_person_id
1531: in per_appraisals.appraiser_person_id%TYPE
1532: ,p_main_appraiser_id in per_appraisals.main_appraiser_id%TYPE
1533: )
1534: is
1535:
1528: ,p_appraisee_person_id
1529: in per_appraisals.appraisee_person_id%TYPE
1530: ,p_appraiser_person_id
1531: in per_appraisals.appraiser_person_id%TYPE
1532: ,p_main_appraiser_id in per_appraisals.main_appraiser_id%TYPE
1533: )
1534: is
1535:
1536: -- Modified this procedure to add check on next appraisal date. Fix for bug 3061901
1592: l_valid :=
1593: validate_date(p_appraisal_period_start_date, p_appraisee_person_id);
1594: if not l_valid then
1595: fnd_message.set_name('PER','PER_52452_APR_INVALID_START'); -- Fix 2516903
1596: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_PERIOD_START_DATE');
1597: --fnd_message.raise_error;
1598: end if;
1599:
1600: hr_utility.set_location(l_proc,20);
1602: l_valid :=
1603: validate_date(p_appraisal_date,p_appraisee_person_id);
1604: if not l_valid then
1605: fnd_message.set_name('PER','PER_52453_APR_INVALID_APR_DATE');
1606: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_DATE');
1607: --fnd_message.raise_error;
1608: end if;
1609:
1610: hr_utility.set_location(l_proc,30);
1612: l_valid :=
1613: validate_date(p_appraisal_period_end_date, p_appraisee_person_id);
1614: if not l_valid then
1615: fnd_message.set_name('PER','PER_52454_APR_INVALID_END'); -- Fix 2485178
1616: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_PERIOD_END_DATE');
1617: --fnd_message.raise_error;
1618: end if;
1619:
1620: hr_utility.set_location(l_proc,40);
1630: l_valid :=
1631: validate_date(p_appraisal_date, p_appraiser_person_id);
1632: if not l_valid then
1633: fnd_message.set_name('PER','PER_52455_APR_INVALID_APR_DATE');
1634: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_DATE');
1635: -- fnd_message.raise_error;
1636: end if;
1637: end if;
1638:
1644:
1645: if (p_appraisal_period_start_date > p_appraisal_date) then
1646:
1647: hr_utility.set_message(800, 'HR_52792_INVALID_APPR_DATE'); -- Fix 3061934.
1648: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_DATE'
1649: ,p_associated_column2 => 'PER_APPRAISALS.APPRAISAL_PERIOD_START_DATE'
1650: );
1651: --hr_utility.raise_error;
1652: end if;
1645: if (p_appraisal_period_start_date > p_appraisal_date) then
1646:
1647: hr_utility.set_message(800, 'HR_52792_INVALID_APPR_DATE'); -- Fix 3061934.
1648: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_DATE'
1649: ,p_associated_column2 => 'PER_APPRAISALS.APPRAISAL_PERIOD_START_DATE'
1650: );
1651: --hr_utility.raise_error;
1652: end if;
1653:
1656: -- Fix 3061901
1657:
1658: if ( nvl(p_next_appraisal_date,hr_api.g_eot ) < p_appraisal_date) then
1659: hr_utility.set_message(800, 'HR_449014_INV_NEXT_APPR_DATE');
1660: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.NEXT_APPRAISAL_DATE'
1661: ,p_associated_column2 => 'PER_APPRAISALS.APPRAISAL_DATE'
1662: );
1663: --hr_utility.raise_error;
1664:
1657:
1658: if ( nvl(p_next_appraisal_date,hr_api.g_eot ) < p_appraisal_date) then
1659: hr_utility.set_message(800, 'HR_449014_INV_NEXT_APPR_DATE');
1660: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.NEXT_APPRAISAL_DATE'
1661: ,p_associated_column2 => 'PER_APPRAISALS.APPRAISAL_DATE'
1662: );
1663: --hr_utility.raise_error;
1664:
1665: end if;
1701: -- Access Status
1702: -- Internal Table Handler Use Only.
1703:
1704: procedure chk_overall_rating
1705: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1706: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1707: ,p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
1708: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
1709: ,p_business_group_id in per_appraisals.business_group_id%TYPE
1702: -- Internal Table Handler Use Only.
1703:
1704: procedure chk_overall_rating
1705: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1706: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1707: ,p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
1708: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
1709: ,p_business_group_id in per_appraisals.business_group_id%TYPE
1710: )
1703:
1704: procedure chk_overall_rating
1705: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1706: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1707: ,p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
1708: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
1709: ,p_business_group_id in per_appraisals.business_group_id%TYPE
1710: )
1711: is
1704: procedure chk_overall_rating
1705: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1706: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1707: ,p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
1708: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
1709: ,p_business_group_id in per_appraisals.business_group_id%TYPE
1710: )
1711: is
1712:
1705: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1706: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1707: ,p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
1708: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
1709: ,p_business_group_id in per_appraisals.business_group_id%TYPE
1710: )
1711: is
1712:
1713: l_exists varchar2(1);
1710: )
1711: is
1712:
1713: l_exists varchar2(1);
1714: l_business_group_id per_appraisals.business_group_id%TYPE;
1715: l_rating_scale_id per_rating_levels.rating_scale_id%TYPE;
1716: l_api_updating boolean;
1717: l_proc varchar2(72) := g_package||'chk_overall_rating';
1718:
1798:
1799: EXCEPTION
1800: when app_exception.application_exception then
1801: if hr_multi_message.exception_add
1802: (p_associated_column1 => 'PER_APPRAISALS.OVERALL_PERFORMANCE_LEVEL_ID'
1803: ) then
1804: raise;
1805: end if;
1806:
1840: -- Access Status
1841: -- Internal Table Handler Use Only.
1842:
1843: procedure chk_appraisal_delete
1844: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1845: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1846: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
1847: )
1848: is
1841: -- Internal Table Handler Use Only.
1842:
1843: procedure chk_appraisal_delete
1844: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1845: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1846: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
1847: )
1848: is
1849:
1842:
1843: procedure chk_appraisal_delete
1844: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1845: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1846: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
1847: )
1848: is
1849:
1850: l_exists varchar2(1);
1894: cursor csr_apr_exists_in_per_part is
1895: select 'Y'
1896: from per_participants par
1897: where par.participation_in_id = p_appraisal_id
1898: and par.participation_in_table = 'PER_APPRAISALS'
1899: and par.participation_in_column = 'APPRAISAL_ID';
1900:
1901: -- Cursor to check if the appraisal is used in HR_QUEST_ANSWERS
1902:
2076: EXCEPTION
2077:
2078: WHEN app_exception.application_exception THEN
2079: IF hr_multi_message.exception_add
2080: (p_associated_column1 => 'PER_APPRAISALS.PLAN_ID')
2081: THEN
2082: hr_utility.set_location(' Leaving:'|| l_proc, 980);
2083: RAISE;
2084: END IF;
2164: EXCEPTION
2165:
2166: WHEN app_exception.application_exception THEN
2167: IF hr_multi_message.exception_add
2168: (p_associated_column1 => 'PER_APPRAISALS.OFFLINE_STATUS')
2169: THEN
2170: hr_utility.set_location(' Leaving:'|| l_proc, 980);
2171: RAISE;
2172: END IF;
2261: -- b) During insert.
2262:
2263: hr_dflex_utility.ins_or_upd_descflex_attribs
2264: (p_appl_short_name => 'PER'
2265: ,p_descflex_name => 'PER_APPRAISALS'
2266: ,p_attribute_category => p_rec.attribute_category
2267: ,p_attribute1_name => 'ATTRIBUTE1'
2268: ,p_attribute1_value => p_rec.attribute1
2269: ,p_attribute2_name => 'ATTRIBUTE2'
2634:
2635: cursor csr_leg_code is
2636: select legislation_code
2637: from per_business_groups pbg,
2638: per_appraisals pap
2639: where pap.appraisal_id = p_appraisal_id
2640: and pbg.business_group_id = pap.business_group_id;
2641:
2642: l_proc varchar2(72) := g_package||'return_legislation_code';