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
78: -- --------------------------------------------------------------------------+
79:
80: PROCEDURE chk_future_termination_exist (
81: p_appraisee_person_id IN per_people_f.person_id%TYPE,
82: p_appraisal_template_id IN per_appraisals.appraisal_template_id%TYPE
83: )
84: IS
85: --
86: l_proc VARCHAR2 (72) := g_package || 'chk_future_termination_exist';
144: hr_utility.set_location ('Leaving:' || l_proc, 970);
145: EXCEPTION
146: WHEN app_exception.application_exception
147: THEN
148: IF hr_multi_message.exception_add (p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_DATE')
149: THEN
150: hr_utility.set_location (' Leaving:' || l_proc, 980);
151: RAISE;
152: END IF;
288: -- Internal Row Handler Use Only.
289:
290: -- ---------------------------------------------------------------------------+
291: procedure chk_open
292: (p_open in per_appraisals.open%TYPE
293: ,p_effective_date in date
294: )
295: is
296:
315:
316: EXCEPTION
317: when app_exception.application_exception then
318: if hr_multi_message.exception_add
319: (p_associated_column1 => 'PER_APPRAISALS.OPEN'
320: ) then
321: raise;
322: end if;
323: end chk_open;
654: -- Internal Row Handler Use Only.
655:
656: -- ---------------------------------------------------------------------------+
657: procedure chk_appraiser_person_id
658: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
659: )
660: is
661:
662: l_proc varchar2(72) := g_package || 'chk_appraiser_person_id';
696:
697: EXCEPTION
698: when app_exception.application_exception then
699: if hr_multi_message.exception_add
700: (p_associated_column1 => 'PER_APPRAISALS.APPRAISER_PERSON_ID'
701: ) then
702: raise;
703: end if;
704:
738: -- Internal Table Handler Use Only.
739:
740:
741: procedure chk_appraisal_template
742: (p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
743: ,p_business_group_id in per_appraisals.business_group_id%TYPE
744: ,p_effective_date in date
745: )
746: is
739:
740:
741: procedure chk_appraisal_template
742: (p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
743: ,p_business_group_id in per_appraisals.business_group_id%TYPE
744: ,p_effective_date in date
745: )
746: is
747:
746: is
747:
748: l_exists varchar2(1);
749: l_proc varchar2(72) := g_package||'chk_appraisal_template';
750: l_business_group_id per_appraisals.business_group_id%TYPE;
751:
752:
753: -- Cursor to check if appraisal exists
754:
834: hr_utility.set_location('Leaving: '|| l_proc, 10);
835: EXCEPTION
836: when app_exception.application_exception then
837: if hr_multi_message.exception_add
838: (p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_TEMPLATE_ID'
839: ) then
840: raise;
841: end if;
842:
876:
877:
878: procedure chk_appraisee_appraiser
879: (p_person_id in per_people_f.person_id%TYPE
880: ,p_business_group_id in per_appraisals.business_group_id%TYPE
881: ,p_effective_date in date
882: ,p_person_type in varchar2
883: )
884: is
883: )
884: is
885:
886: l_exists varchar2(1);
887: l_business_group_id per_appraisals.business_group_id%TYPE;
888: l_proc varchar2(72) := g_package||'chk_appraisee_appraiser';
889: lv_cross_business_group varchar2(10); -- bug 1980440 fix
890:
891:
1046: -- Access Status
1047: -- Internal Table Handler Use Only.
1048:
1049: procedure chk_main_appraiser_id
1050: (p_main_appraiser_id in per_appraisals.main_appraiser_id%TYPE
1051: ,p_business_group_id in per_appraisals.business_group_id%TYPE
1052: ,p_effective_date in date
1053:
1054: )
1047: -- Internal Table Handler Use Only.
1048:
1049: procedure chk_main_appraiser_id
1050: (p_main_appraiser_id in per_appraisals.main_appraiser_id%TYPE
1051: ,p_business_group_id in per_appraisals.business_group_id%TYPE
1052: ,p_effective_date in date
1053:
1054: )
1055: is
1057: --
1058: l_proc varchar2(72) := g_package||'chk_main_appraiser_id';
1059: lv_cross_business_group varchar2(10);
1060: l_exists varchar2(1);
1061: l_business_group_id per_appraisals.business_group_id%TYPE;
1062:
1063: --
1064:
1065: -- Cursor to check if person is valid
1141:
1142: EXCEPTION
1143: when app_exception.application_exception then
1144: if hr_multi_message.exception_add
1145: (p_associated_column1 => 'PER_APPRAISALS.MAIN_APPRAISER_ID'
1146: ) then
1147: raise;
1148: end if;
1149:
1176: -- Access Status
1177: -- Internal Table Handler Use Only.
1178:
1179: procedure chk_appraisal_type
1180: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1181: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1182: ,p_type in per_appraisals.type%TYPE
1183: ,p_effective_date in date
1184: )
1177: -- Internal Table Handler Use Only.
1178:
1179: procedure chk_appraisal_type
1180: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1181: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1182: ,p_type in per_appraisals.type%TYPE
1183: ,p_effective_date in date
1184: )
1185: is
1178:
1179: procedure chk_appraisal_type
1180: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1181: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1182: ,p_type in per_appraisals.type%TYPE
1183: ,p_effective_date in date
1184: )
1185: is
1186:
1238: hr_utility.set_location('Leaving: '|| l_proc, 10);
1239: EXCEPTION
1240: when app_exception.application_exception then
1241: if hr_multi_message.exception_add
1242: (p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_TYPE'
1243: ) then
1244: raise;
1245: end if;
1246:
1275: -- Access Status
1276: -- Internal Table Handler Use Only.
1277:
1278: procedure chk_appraisal_status
1279: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1280: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1281: ,p_status in per_appraisals.status%TYPE
1282: ,p_effective_date in date
1283: )
1276: -- Internal Table Handler Use Only.
1277:
1278: procedure chk_appraisal_status
1279: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1280: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1281: ,p_status in per_appraisals.status%TYPE
1282: ,p_effective_date in date
1283: )
1284: is
1277:
1278: procedure chk_appraisal_status
1279: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1280: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1281: ,p_status in per_appraisals.status%TYPE
1282: ,p_effective_date in date
1283: )
1284: is
1285:
1338:
1339: EXCEPTION
1340: when app_exception.application_exception then
1341: if hr_multi_message.exception_add
1342: (p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_STATUS'
1343: ) then
1344: raise;
1345: end if;
1346:
1557: -- Access Status
1558: -- Internal Table Handler Use Only.
1559:
1560: procedure chk_appraisal_period_dates
1561: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1562: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1563: ,p_appraisal_period_start_date in per_appraisals.appraisal_period_start_date%TYPE
1564: ,p_appraisal_period_end_date in per_appraisals.appraisal_period_end_date%TYPE
1565: )
1558: -- Internal Table Handler Use Only.
1559:
1560: procedure chk_appraisal_period_dates
1561: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1562: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1563: ,p_appraisal_period_start_date in per_appraisals.appraisal_period_start_date%TYPE
1564: ,p_appraisal_period_end_date in per_appraisals.appraisal_period_end_date%TYPE
1565: )
1566: is
1559:
1560: procedure chk_appraisal_period_dates
1561: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1562: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1563: ,p_appraisal_period_start_date in per_appraisals.appraisal_period_start_date%TYPE
1564: ,p_appraisal_period_end_date in per_appraisals.appraisal_period_end_date%TYPE
1565: )
1566: is
1567:
1560: procedure chk_appraisal_period_dates
1561: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1562: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1563: ,p_appraisal_period_start_date in per_appraisals.appraisal_period_start_date%TYPE
1564: ,p_appraisal_period_end_date in per_appraisals.appraisal_period_end_date%TYPE
1565: )
1566: is
1567:
1568: l_api_updating boolean;
1640: -- Internal Row Handler Use Only.
1641:
1642: -- ---------------------------------------------------------------------------+
1643: procedure chk_appraisal_dates
1644: (p_appraisal_date in per_appraisals.appraisal_date%TYPE
1645: ,p_appraisal_period_start_date
1646: in per_appraisals.appraisal_period_start_date%TYPE
1647: ,p_appraisal_period_end_date
1648: in per_appraisals.appraisal_period_end_date%TYPE
1642: -- ---------------------------------------------------------------------------+
1643: procedure chk_appraisal_dates
1644: (p_appraisal_date in per_appraisals.appraisal_date%TYPE
1645: ,p_appraisal_period_start_date
1646: in per_appraisals.appraisal_period_start_date%TYPE
1647: ,p_appraisal_period_end_date
1648: in per_appraisals.appraisal_period_end_date%TYPE
1649: ,p_next_appraisal_date in per_appraisals.next_appraisal_date%TYPE
1650: ,p_appraisee_person_id
1644: (p_appraisal_date in per_appraisals.appraisal_date%TYPE
1645: ,p_appraisal_period_start_date
1646: in per_appraisals.appraisal_period_start_date%TYPE
1647: ,p_appraisal_period_end_date
1648: in per_appraisals.appraisal_period_end_date%TYPE
1649: ,p_next_appraisal_date in per_appraisals.next_appraisal_date%TYPE
1650: ,p_appraisee_person_id
1651: in per_appraisals.appraisee_person_id%TYPE
1652: ,p_appraiser_person_id
1645: ,p_appraisal_period_start_date
1646: in per_appraisals.appraisal_period_start_date%TYPE
1647: ,p_appraisal_period_end_date
1648: in per_appraisals.appraisal_period_end_date%TYPE
1649: ,p_next_appraisal_date in per_appraisals.next_appraisal_date%TYPE
1650: ,p_appraisee_person_id
1651: in per_appraisals.appraisee_person_id%TYPE
1652: ,p_appraiser_person_id
1653: in per_appraisals.appraiser_person_id%TYPE
1647: ,p_appraisal_period_end_date
1648: in per_appraisals.appraisal_period_end_date%TYPE
1649: ,p_next_appraisal_date in per_appraisals.next_appraisal_date%TYPE
1650: ,p_appraisee_person_id
1651: in per_appraisals.appraisee_person_id%TYPE
1652: ,p_appraiser_person_id
1653: in per_appraisals.appraiser_person_id%TYPE
1654: ,p_main_appraiser_id in per_appraisals.main_appraiser_id%TYPE
1655: ,p_appraisal_template_id IN per_appraisals.appraisal_template_id%TYPE
1649: ,p_next_appraisal_date in per_appraisals.next_appraisal_date%TYPE
1650: ,p_appraisee_person_id
1651: in per_appraisals.appraisee_person_id%TYPE
1652: ,p_appraiser_person_id
1653: in per_appraisals.appraiser_person_id%TYPE
1654: ,p_main_appraiser_id in per_appraisals.main_appraiser_id%TYPE
1655: ,p_appraisal_template_id IN per_appraisals.appraisal_template_id%TYPE
1656: ,p_term_validations IN VARCHAR2
1657: )
1650: ,p_appraisee_person_id
1651: in per_appraisals.appraisee_person_id%TYPE
1652: ,p_appraiser_person_id
1653: in per_appraisals.appraiser_person_id%TYPE
1654: ,p_main_appraiser_id in per_appraisals.main_appraiser_id%TYPE
1655: ,p_appraisal_template_id IN per_appraisals.appraisal_template_id%TYPE
1656: ,p_term_validations IN VARCHAR2
1657: )
1658: is
1651: in per_appraisals.appraisee_person_id%TYPE
1652: ,p_appraiser_person_id
1653: in per_appraisals.appraiser_person_id%TYPE
1654: ,p_main_appraiser_id in per_appraisals.main_appraiser_id%TYPE
1655: ,p_appraisal_template_id IN per_appraisals.appraisal_template_id%TYPE
1656: ,p_term_validations IN VARCHAR2
1657: )
1658: is
1659:
1760: l_valid :=
1761: validate_date(p_appraisal_period_start_date, p_appraisee_person_id,l_term_emp,l_term_cwk,l_future_term);
1762: if not l_valid then
1763: fnd_message.set_name('PER','PER_52452_APR_INVALID_START'); -- Fix 2516903
1764: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_PERIOD_START_DATE');
1765: --fnd_message.raise_error;
1766: end if;
1767:
1768: hr_utility.set_location(l_proc,20);
1770: l_valid :=
1771: validate_date(p_appraisal_date,p_appraisee_person_id,l_term_emp,l_term_cwk,l_future_term);
1772: if not l_valid then
1773: fnd_message.set_name('PER','PER_52453_APR_INVALID_APR_DATE');
1774: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_DATE');
1775: --fnd_message.raise_error;
1776: end if;
1777:
1778: hr_utility.set_location(l_proc,30);
1780: l_valid :=
1781: validate_date(p_appraisal_period_end_date, p_appraisee_person_id,l_term_emp,l_term_cwk,l_future_term);
1782: if not l_valid then
1783: fnd_message.set_name('PER','PER_52454_APR_INVALID_END'); -- Fix 2485178
1784: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_PERIOD_END_DATE');
1785: --fnd_message.raise_error;
1786: end if;
1787:
1788: hr_utility.set_location(l_proc,40);
1798: l_valid :=
1799: validate_date(p_appraisal_date, p_appraiser_person_id,l_term_emp,l_term_cwk,l_future_term);
1800: if not l_valid then
1801: fnd_message.set_name('PER','PER_52455_APR_INVALID_APR_DATE');
1802: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_DATE');
1803: -- fnd_message.raise_error;
1804: end if;
1805: end if;
1806:
1812:
1813: if (p_appraisal_period_start_date > p_appraisal_date) then
1814:
1815: hr_utility.set_message(800, 'HR_52792_INVALID_APPR_DATE'); -- Fix 3061934.
1816: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_DATE'
1817: ,p_associated_column2 => 'PER_APPRAISALS.APPRAISAL_PERIOD_START_DATE'
1818: );
1819: --hr_utility.raise_error;
1820: end if;
1813: if (p_appraisal_period_start_date > p_appraisal_date) then
1814:
1815: hr_utility.set_message(800, 'HR_52792_INVALID_APPR_DATE'); -- Fix 3061934.
1816: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.APPRAISAL_DATE'
1817: ,p_associated_column2 => 'PER_APPRAISALS.APPRAISAL_PERIOD_START_DATE'
1818: );
1819: --hr_utility.raise_error;
1820: end if;
1821:
1824: -- Fix 3061901
1825:
1826: if ( nvl(p_next_appraisal_date,hr_api.g_eot ) < p_appraisal_date) then
1827: hr_utility.set_message(800, 'HR_449014_INV_NEXT_APPR_DATE');
1828: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.NEXT_APPRAISAL_DATE'
1829: ,p_associated_column2 => 'PER_APPRAISALS.APPRAISAL_DATE'
1830: );
1831: --hr_utility.raise_error;
1832:
1825:
1826: if ( nvl(p_next_appraisal_date,hr_api.g_eot ) < p_appraisal_date) then
1827: hr_utility.set_message(800, 'HR_449014_INV_NEXT_APPR_DATE');
1828: hr_multi_message.add(p_associated_column1 => 'PER_APPRAISALS.NEXT_APPRAISAL_DATE'
1829: ,p_associated_column2 => 'PER_APPRAISALS.APPRAISAL_DATE'
1830: );
1831: --hr_utility.raise_error;
1832:
1833: end if;
1869: -- Access Status
1870: -- Internal Table Handler Use Only.
1871:
1872: procedure chk_overall_rating
1873: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1874: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1875: ,p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
1876: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
1877: ,p_business_group_id in per_appraisals.business_group_id%TYPE
1870: -- Internal Table Handler Use Only.
1871:
1872: procedure chk_overall_rating
1873: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1874: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1875: ,p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
1876: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
1877: ,p_business_group_id in per_appraisals.business_group_id%TYPE
1878: )
1871:
1872: procedure chk_overall_rating
1873: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1874: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1875: ,p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
1876: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
1877: ,p_business_group_id in per_appraisals.business_group_id%TYPE
1878: )
1879: is
1872: procedure chk_overall_rating
1873: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1874: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1875: ,p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
1876: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
1877: ,p_business_group_id in per_appraisals.business_group_id%TYPE
1878: )
1879: is
1880:
1873: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
1874: ,p_object_version_number in per_appraisals.object_version_number%TYPE
1875: ,p_appraisal_template_id in per_appraisals.appraisal_template_id%TYPE
1876: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
1877: ,p_business_group_id in per_appraisals.business_group_id%TYPE
1878: )
1879: is
1880:
1881: l_exists varchar2(1);
1878: )
1879: is
1880:
1881: l_exists varchar2(1);
1882: l_business_group_id per_appraisals.business_group_id%TYPE;
1883: l_rating_scale_id per_rating_levels.rating_scale_id%TYPE;
1884: l_api_updating boolean;
1885: l_proc varchar2(72) := g_package||'chk_overall_rating';
1886:
1966:
1967: EXCEPTION
1968: when app_exception.application_exception then
1969: if hr_multi_message.exception_add
1970: (p_associated_column1 => 'PER_APPRAISALS.OVERALL_PERFORMANCE_LEVEL_ID'
1971: ) then
1972: raise;
1973: end if;
1974:
2008: -- Access Status
2009: -- Internal Table Handler Use Only.
2010:
2011: procedure chk_appraisal_delete
2012: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
2013: ,p_object_version_number in per_appraisals.object_version_number%TYPE
2014: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
2015: )
2016: is
2009: -- Internal Table Handler Use Only.
2010:
2011: procedure chk_appraisal_delete
2012: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
2013: ,p_object_version_number in per_appraisals.object_version_number%TYPE
2014: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
2015: )
2016: is
2017:
2010:
2011: procedure chk_appraisal_delete
2012: (p_appraisal_id in per_appraisals.appraisal_id%TYPE
2013: ,p_object_version_number in per_appraisals.object_version_number%TYPE
2014: ,p_overall_performance_level_id in per_appraisals.overall_performance_level_id%TYPE
2015: )
2016: is
2017:
2018: l_exists varchar2(1);
2062: cursor csr_apr_exists_in_per_part is
2063: select 'Y'
2064: from per_participants par
2065: where par.participation_in_id = p_appraisal_id
2066: and par.participation_in_table = 'PER_APPRAISALS'
2067: and par.participation_in_column = 'APPRAISAL_ID';
2068:
2069: -- Cursor to check if the appraisal is used in HR_QUEST_ANSWERS
2070:
2244: EXCEPTION
2245:
2246: WHEN app_exception.application_exception THEN
2247: IF hr_multi_message.exception_add
2248: (p_associated_column1 => 'PER_APPRAISALS.PLAN_ID')
2249: THEN
2250: hr_utility.set_location(' Leaving:'|| l_proc, 980);
2251: RAISE;
2252: END IF;
2334: EXCEPTION
2335:
2336: WHEN app_exception.application_exception THEN
2337: IF hr_multi_message.exception_add
2338: (p_associated_column1 => 'PER_APPRAISALS.OFFLINE_STATUS')
2339: THEN
2340: hr_utility.set_location(' Leaving:'|| l_proc, 980);
2341: RAISE;
2342: END IF;
2431: -- b) During insert.
2432:
2433: hr_dflex_utility.ins_or_upd_descflex_attribs
2434: (p_appl_short_name => 'PER'
2435: ,p_descflex_name => 'PER_APPRAISALS'
2436: ,p_attribute_category => p_rec.attribute_category
2437: ,p_attribute1_name => 'ATTRIBUTE1'
2438: ,p_attribute1_value => p_rec.attribute1
2439: ,p_attribute2_name => 'ATTRIBUTE2'
2811:
2812: cursor csr_leg_code is
2813: select legislation_code
2814: from per_business_groups pbg,
2815: per_appraisals pap
2816: where pap.appraisal_id = p_appraisal_id
2817: and pbg.business_group_id = pap.business_group_id;
2818:
2819: l_proc varchar2(72) := g_package||'return_legislation_code';