11: g_date_prior_to_cur_start_date exception;
12: g_validate_basic_details_error exception;
13: g_applicant_hire boolean := false;
14:
15: g_debug boolean := hr_utility.debug_enabled;
16:
17: /*Added following types as a part of ER#9879782 Starts*/
18: TYPE g_attch_doc_rec IS RECORD(IRC_DOC_ID NUMBER, FND_ATTCH_DOC_ID NUMBER);
19: TYPE g_attch_doc_t IS TABLE OF g_attch_doc_Rec;
221: l_proc varchar2(72) := g_package||'get_hr_lookup_meaning';
222: --
223: Begin
224: --
225: hr_utility.set_location('Entering:'||l_proc, 5);
226: hr_utility.set_location('Entering For Loop:'||l_proc,10);
227: FOR csr1 in csr_hr_lookup LOOP
228: l_meaning := csr1.meaning;
229: END LOOP;
222: --
223: Begin
224: --
225: hr_utility.set_location('Entering:'||l_proc, 5);
226: hr_utility.set_location('Entering For Loop:'||l_proc,10);
227: FOR csr1 in csr_hr_lookup LOOP
228: l_meaning := csr1.meaning;
229: END LOOP;
230: hr_utility.set_location('Exiting For Loop:'||l_proc,15);
226: hr_utility.set_location('Entering For Loop:'||l_proc,10);
227: FOR csr1 in csr_hr_lookup LOOP
228: l_meaning := csr1.meaning;
229: END LOOP;
230: hr_utility.set_location('Exiting For Loop:'||l_proc,15);
231:
232: hr_utility.set_location('Exiting:'||l_proc,20);
233: --
234: return l_meaning;
228: l_meaning := csr1.meaning;
229: END LOOP;
230: hr_utility.set_location('Exiting For Loop:'||l_proc,15);
231:
232: hr_utility.set_location('Exiting:'||l_proc,20);
233: --
234: return l_meaning;
235: --
236: Exception
234: return l_meaning;
235: --
236: Exception
237: When others THEN
238: hr_utility.set_location('Exception:Others'||l_proc,555);
239: raise;
240: --
241: END get_hr_lookup_meaning;
242:
254: l_proc varchar2(72) := g_package||'get_max_effective_date';
255: --
256: Begin
257: --
258: hr_utility.set_location('Entering:'||l_proc, 5);
259: select max(EFFECTIVE_START_DATE) into l_effective_date
260: from per_all_people_f where person_id = p_person_id;
261: hr_utility.set_location('Exiting:'||l_proc,10);
262: --
257: --
258: hr_utility.set_location('Entering:'||l_proc, 5);
259: select max(EFFECTIVE_START_DATE) into l_effective_date
260: from per_all_people_f where person_id = p_person_id;
261: hr_utility.set_location('Exiting:'||l_proc,10);
262: --
263: return l_effective_date;
264: --
265: Exception
263: return l_effective_date;
264: --
265: Exception
266: When others THEN
267: hr_utility.set_location('Exception:Others'||l_proc,555);
268: raise;
269: --
270: END get_max_effective_date;
271:
438: -- transaction. This is used for re-display the Update page when a user
439: -- clicks the Back button on the Review page to go back to the Update page
440: -- to make further changes or to correct errors.
441: -----------------------------------------------------------------------------
442: hr_utility.set_location('Entering:'||l_proc, 5);
443: hr_transaction_api.get_transaction_step_info
444: (p_item_type => p_item_type
445: ,p_item_key => p_item_key
446: ,p_activity_id => p_activity_id
451:
452: IF l_trans_step_rows IS NOT NULL OR
453: l_trans_step_rows > 0
454: THEN
455: hr_utility.set_location('IF step_rows!=NULL OR step_rows > 0:'||l_proc,10);
456: l_transaction_rec_count := l_trans_step_rows;
457: ELSE
458: hr_utility.set_location('IF step_rows=NULL AND step_rows <= 0:'||l_proc,15);
459: l_transaction_rec_count := 0;
454: THEN
455: hr_utility.set_location('IF step_rows!=NULL OR step_rows > 0:'||l_proc,10);
456: l_transaction_rec_count := l_trans_step_rows;
457: ELSE
458: hr_utility.set_location('IF step_rows=NULL AND step_rows <= 0:'||l_proc,15);
459: l_transaction_rec_count := 0;
460: hr_utility.set_location('Exiting: in the else part'||l_proc, 15);
461: return;
462: END IF;
456: l_transaction_rec_count := l_trans_step_rows;
457: ELSE
458: hr_utility.set_location('IF step_rows=NULL AND step_rows <= 0:'||l_proc,15);
459: l_transaction_rec_count := 0;
460: hr_utility.set_location('Exiting: in the else part'||l_proc, 15);
461: return;
462: END IF;
463: --
464: -- -------------------------------------------------------------------
468: --
469: -- Now get the transaction data for the given step
470: -- Need to loop through l_trans_rec_count -1 as the index starts from 0
471:
472: hr_utility.set_location('Entering 0..l_transaction_rec_count-1:'||l_proc,20);
473: FOR i in 0..l_transaction_rec_count-1 LOOP
474: IF(l_api_names(i) = 'HR_PROCESS_PERSON_SS.PROCESS_API') THEN
475: get_person_data_from_tt(
476: p_transaction_step_id => l_trans_step_ids(i)
612: ,p_action_type => p_action_type
613: );
614: END IF;
615: END LOOP;
616: hr_utility.set_location('Exiting For Loop:'||l_proc,30);
617:
618: p_trans_rec_count := l_transaction_rec_count;
619: hr_utility.set_location('Exiting:'||l_proc,35);
620:
615: END LOOP;
616: hr_utility.set_location('Exiting For Loop:'||l_proc,30);
617:
618: p_trans_rec_count := l_transaction_rec_count;
619: hr_utility.set_location('Exiting:'||l_proc,35);
620:
621: EXCEPTION
622: WHEN g_data_error THEN
623: hr_utility.set_location('Exception:g_data_error'||l_proc,555);
619: hr_utility.set_location('Exiting:'||l_proc,35);
620:
621: EXCEPTION
622: WHEN g_data_error THEN
623: hr_utility.set_location('Exception:g_data_error'||l_proc,555);
624: RAISE;
625:
626: END get_person_data_from_tt;
627: --
780: l_proc varchar2(72) := g_package||'get_person_data_from_tt';
781:
782: BEGIN
783: --
784: hr_utility.set_location('Entering:'||l_proc, 5);
785: p_effective_date:= to_date(
786: hr_transaction_ss.get_wf_effective_date
787: (p_transaction_step_id => p_transaction_step_id),g_date_format);
788: --
785: p_effective_date:= to_date(
786: hr_transaction_ss.get_wf_effective_date
787: (p_transaction_step_id => p_transaction_step_id),g_date_format);
788: --
789: hr_utility.set_location('Start Calling hr_transaction_api methods:'||l_proc,10);
790: p_attribute_update_mode :=
791: hr_transaction_api.get_varchar2_value
792: (p_transaction_step_id => p_transaction_step_id
793: ,p_name => 'P_ATTRIBUTE_UPDATE_MODE');
1118: (p_transaction_step_id => p_transaction_step_id),g_date_format);
1119: --
1120: exception
1121: when others then
1122: hr_utility.set_location('Exception:Others'||l_proc,555);
1123: P_ADJUSTED_SVC_DATE := null;
1124: P_DATE_START := null;
1125: end;
1126:
1468: p_marital_status := l_marital_status;
1469: p_marital_status_meaning := l_marital_status_meaning;
1470: --
1471: --
1472: hr_utility.set_location('End of Calling hr_transaction_api methods:'||l_proc,15);
1473: hr_utility.set_location('Exiting:'||l_proc, 20);
1474: EXCEPTION
1475: WHEN OTHERS THEN
1476: hr_utility.set_location('Exception:Others'||l_proc,555);
1469: p_marital_status_meaning := l_marital_status_meaning;
1470: --
1471: --
1472: hr_utility.set_location('End of Calling hr_transaction_api methods:'||l_proc,15);
1473: hr_utility.set_location('Exiting:'||l_proc, 20);
1474: EXCEPTION
1475: WHEN OTHERS THEN
1476: hr_utility.set_location('Exception:Others'||l_proc,555);
1477: RAISE;
1472: hr_utility.set_location('End of Calling hr_transaction_api methods:'||l_proc,15);
1473: hr_utility.set_location('Exiting:'||l_proc, 20);
1474: EXCEPTION
1475: WHEN OTHERS THEN
1476: hr_utility.set_location('Exception:Others'||l_proc,555);
1477: RAISE;
1478:
1479: END get_person_data_from_tt;
1480:
1525: FROM FND_DOCUMENT_CATEGORIES
1526: WHERE NAME = 'MISC';
1527:
1528: BEGIN
1529: hr_utility.set_location('Entering: '||l_proc, 10);
1530: BEGIN
1531: SELECT hats.selected_person_id
1532: , fffv.function_name
1533: INTO l_person_id
1542:
1543: l_function_name := NULL;
1544: END;
1545:
1546: hr_utility.set_location('l_person_id: '||l_person_id, 20);
1547: hr_utility.set_location('l_function_name: '||l_function_name, 30);
1548:
1549: OPEN c_get_category_id;
1550: FETCH c_get_category_id INTO l_category_id;
1543: l_function_name := NULL;
1544: END;
1545:
1546: hr_utility.set_location('l_person_id: '||l_person_id, 20);
1547: hr_utility.set_location('l_function_name: '||l_function_name, 30);
1548:
1549: OPEN c_get_category_id;
1550: FETCH c_get_category_id INTO l_category_id;
1551: CLOSE c_get_category_id;
1549: OPEN c_get_category_id;
1550: FETCH c_get_category_id INTO l_category_id;
1551: CLOSE c_get_category_id;
1552:
1553: hr_utility.set_location('l_category_id: '||l_category_id, 40);
1554:
1555: hr_utility.set_location('Opening Cursor: resume_doc', 50);
1556: OPEN resume_doc (l_person_id);
1557: g_attch_doc_tbl.EXTEND;
1551: CLOSE c_get_category_id;
1552:
1553: hr_utility.set_location('l_category_id: '||l_category_id, 40);
1554:
1555: hr_utility.set_location('Opening Cursor: resume_doc', 50);
1556: OPEN resume_doc (l_person_id);
1557: g_attch_doc_tbl.EXTEND;
1558: i := 1;
1559: LOOP
1556: OPEN resume_doc (l_person_id);
1557: g_attch_doc_tbl.EXTEND;
1558: i := 1;
1559: LOOP
1560: hr_utility.set_location('Inside Irec Docs Loop: ', 60);
1561: FETCH resume_doc
1562: INTO l_irc_document_id
1563: , l_blob
1564: , l_mime
1566: , l_desc
1567: , l_title;
1568: EXIT WHEN resume_doc%NOTFOUND;
1569:
1570: hr_utility.set_location('l_irc_document_id: '||l_irc_document_id, 601);
1571: hr_utility.set_location('l_mime: '||l_mime, 602);
1572: hr_utility.set_location('l_file_name: '||l_file_name, 603);
1573: hr_utility.set_location('l_desc: '||l_desc, 604);
1574: hr_utility.set_location('l_title: '||l_title, 605);
1567: , l_title;
1568: EXIT WHEN resume_doc%NOTFOUND;
1569:
1570: hr_utility.set_location('l_irc_document_id: '||l_irc_document_id, 601);
1571: hr_utility.set_location('l_mime: '||l_mime, 602);
1572: hr_utility.set_location('l_file_name: '||l_file_name, 603);
1573: hr_utility.set_location('l_desc: '||l_desc, 604);
1574: hr_utility.set_location('l_title: '||l_title, 605);
1575:
1568: EXIT WHEN resume_doc%NOTFOUND;
1569:
1570: hr_utility.set_location('l_irc_document_id: '||l_irc_document_id, 601);
1571: hr_utility.set_location('l_mime: '||l_mime, 602);
1572: hr_utility.set_location('l_file_name: '||l_file_name, 603);
1573: hr_utility.set_location('l_desc: '||l_desc, 604);
1574: hr_utility.set_location('l_title: '||l_title, 605);
1575:
1576: g_attch_doc_tbl(i).IRC_DOC_ID := l_irc_document_id;
1569:
1570: hr_utility.set_location('l_irc_document_id: '||l_irc_document_id, 601);
1571: hr_utility.set_location('l_mime: '||l_mime, 602);
1572: hr_utility.set_location('l_file_name: '||l_file_name, 603);
1573: hr_utility.set_location('l_desc: '||l_desc, 604);
1574: hr_utility.set_location('l_title: '||l_title, 605);
1575:
1576: g_attch_doc_tbl(i).IRC_DOC_ID := l_irc_document_id;
1577:
1570: hr_utility.set_location('l_irc_document_id: '||l_irc_document_id, 601);
1571: hr_utility.set_location('l_mime: '||l_mime, 602);
1572: hr_utility.set_location('l_file_name: '||l_file_name, 603);
1573: hr_utility.set_location('l_desc: '||l_desc, 604);
1574: hr_utility.set_location('l_title: '||l_title, 605);
1575:
1576: g_attch_doc_tbl(i).IRC_DOC_ID := l_irc_document_id;
1577:
1578: per_fnd_attachment_pkg.upload_attachment (
1597: p_pk5_value=>null,
1598: p_error_msg=>l_error_msg,
1599: x_return_status=>l_return_status);
1600:
1601: hr_utility.set_location ('l_return_status: '||l_return_status, 606);
1602:
1603: IF l_return_status = 'S' THEN
1604: hr_utility.set_location ('Attachment from Irecruitment Successfully inserted', 607);
1605: g_attch_doc_tbl(i).FND_ATTCH_DOC_ID := l_document_id;
1600:
1601: hr_utility.set_location ('l_return_status: '||l_return_status, 606);
1602:
1603: IF l_return_status = 'S' THEN
1604: hr_utility.set_location ('Attachment from Irecruitment Successfully inserted', 607);
1605: g_attch_doc_tbl(i).FND_ATTCH_DOC_ID := l_document_id;
1606: ELSE
1607: hr_utility.set_location ('Attachment insert failed'
1608: || l_proc, 608);
1603: IF l_return_status = 'S' THEN
1604: hr_utility.set_location ('Attachment from Irecruitment Successfully inserted', 607);
1605: g_attch_doc_tbl(i).FND_ATTCH_DOC_ID := l_document_id;
1606: ELSE
1607: hr_utility.set_location ('Attachment insert failed'
1608: || l_proc, 608);
1609: g_attch_doc_tbl(i).FND_ATTCH_DOC_ID := NULL;
1610: END IF;
1611: i := i+1;
1611: i := i+1;
1612: g_attch_doc_tbl.EXTEND;
1613:
1614: END LOOP;
1615: hr_utility.set_location('Closing Cursor: resume_doc', 70);
1616: CLOSE resume_doc;
1617: hr_utility.set_location('Entering: '||l_proc, 10);
1618: END attch_irc_documents;
1619:
1613:
1614: END LOOP;
1615: hr_utility.set_location('Closing Cursor: resume_doc', 70);
1616: CLOSE resume_doc;
1617: hr_utility.set_location('Entering: '||l_proc, 10);
1618: END attch_irc_documents;
1619:
1620: /*Added following procedure as a part of ER#9879782 Ends*/
1621:
1924:
1925: BEGIN
1926:
1927:
1928: hr_utility.set_location('Entering:'||l_proc, 5);
1929: IF g_debug THEN
1930: hr_utility.set_location('IF g_debug THEN', 10);
1931: END IF;
1932: --Fix for Bug 13112484
1926:
1927:
1928: hr_utility.set_location('Entering:'||l_proc, 5);
1929: IF g_debug THEN
1930: hr_utility.set_location('IF g_debug THEN', 10);
1931: END IF;
1932: --Fix for Bug 13112484
1933: IF upper(p_action_type) = g_change OR p_asgn_change_mode = 'V' OR p_asgn_change_mode = 'W'
1934: THEN
1931: END IF;
1932: --Fix for Bug 13112484
1933: IF upper(p_action_type) = g_change OR p_asgn_change_mode = 'V' OR p_asgn_change_mode = 'W'
1934: THEN
1935: hr_utility.set_location('IF Action Type=g_change', 15);
1936: l_attribute_update_mode := g_attribute_update;
1937: ELSE
1938: IF upper(p_action_type) = g_correct
1939: THEN
1936: l_attribute_update_mode := g_attribute_update;
1937: ELSE
1938: IF upper(p_action_type) = g_correct
1939: THEN
1940: hr_utility.set_location('IF Action Type=g_correct', 20);
1941: l_attribute_update_mode := g_attribute_correct;
1942: END IF;
1943: END IF;
1944:
1943: END IF;
1944:
1945:
1946: IF g_debug THEN
1947: hr_utility.set_location('l_attribute_update_mode=' || l_attribute_update_mode, 20);
1948: END IF;
1949:
1950:
1951:
1958: -- transaction table.
1959:
1960: IF p_vendor_id = 0
1961: THEN
1962: hr_utility.set_location('p_vendor_id = 0:'||l_proc,25);
1963: l_vendor_id := null;
1964: ELSE
1965: hr_utility.set_location('p_vendor_id != 0:'||l_proc,30);
1966: l_vendor_id := p_vendor_id;
1961: THEN
1962: hr_utility.set_location('p_vendor_id = 0:'||l_proc,25);
1963: l_vendor_id := null;
1964: ELSE
1965: hr_utility.set_location('p_vendor_id != 0:'||l_proc,30);
1966: l_vendor_id := p_vendor_id;
1967: END IF;
1968: --
1969: IF p_benefit_group_id = 0
2007: end if;
2008:
2009: -- Save for later changes.
2010: IF (p_save_mode = 'SAVE_FOR_LATER') THEN
2011: hr_utility.set_location('save mode is SFL'||l_proc,35);
2012: GOTO only_transaction;
2013: END IF;
2014:
2015: --
2018: -- make the applicant an employee and then update the BD record and made
2019: -- this call before is_basic_details_changed, so that the person_type_id
2020: -- is always changed and we write to transaction tables
2021:
2022: hr_utility.set_location('Open:gc_get_current_applicant_flag'||l_proc,40);
2023: open gc_get_current_applicant_flag(p_person_id, p_effective_date);
2024: fetch gc_get_current_applicant_flag into l_current_applicant_flag, l_current_employee_flag, l_current_npw_flag;
2025: close gc_get_current_applicant_flag;
2026:
2033: nvl(l_current_employee_flag, 'N') <> 'Y' AND
2034: nvl(l_current_npw_flag, 'N') <> 'Y') then
2035: g_applicant_hire := true;
2036:
2037: hr_utility.set_location(' SAVEPOINT applicant_hire:'||l_proc,45);
2038: SAVEPOINT applicant_hire;
2039:
2040: for c in check_payroll loop
2041: process_applicant(
2052: fetch csr_get_legc_code into l_legislation_code;
2053: close csr_get_legc_code;
2054:
2055: IF (l_legislation_code = 'US'
2056: and hr_utility.chk_product_install(p_product => 'Oracle Payroll',
2057: p_legislation => 'US')) THEN
2058:
2059: open csr_add_style;
2060: fetch csr_add_style into l_style;
2137: nvl(l_current_employee_flag, 'N') <> 'Y' AND
2138: nvl(l_current_npw_flag, 'N') <> 'Y')
2139: THEN
2140: -- get the person_type_id for the applicant from database
2141: hr_utility.set_location('Fetching gc_get_new_appl_person_type into l_person_type_id:'||l_proc,50);
2142: open gc_get_new_appl_person_type(p_person_id, p_effective_date);
2143: fetch gc_get_new_appl_person_type into l_person_type_id;
2144: close gc_get_new_appl_person_type;
2145: ELSE
2150:
2151:
2152:
2153: IF g_debug THEN
2154: hr_utility.set_location('Before calling is_rec_changed', 55);
2155: END IF;
2156:
2157:
2158: -- Check if the record has changed
2286: );
2287: --
2288: IF l_basic_details_changed
2289: THEN
2290: hr_utility.set_location('In l_basic_details_changed True',56);
2291: if(hr_util_misc_ss.is_basic_det_chg(p_person_id) = 'Y') then
2292: hr_utility.set_location('In changed True and US Leg True',57);
2293: hr_approval_ss.create_item_attrib_if_notexist(p_item_type,
2294: p_item_key,
2288: IF l_basic_details_changed
2289: THEN
2290: hr_utility.set_location('In l_basic_details_changed True',56);
2291: if(hr_util_misc_ss.is_basic_det_chg(p_person_id) = 'Y') then
2292: hr_utility.set_location('In changed True and US Leg True',57);
2293: hr_approval_ss.create_item_attrib_if_notexist(p_item_type,
2294: p_item_key,
2295: 'ISETHINICFLOW',
2296: 'NO',
2298: null);
2299: end if;
2300: ELSE
2301:
2302: hr_utility.set_location('In l_basic_details_changed False',58);
2303: OPEN ethnic_dff;
2304: FETCH ethnic_dff INTO l_eth_dff_exists;
2305:
2306: IF ( ethnic_dff%FOUND ) THEN
2303: OPEN ethnic_dff;
2304: FETCH ethnic_dff INTO l_eth_dff_exists;
2305:
2306: IF ( ethnic_dff%FOUND ) THEN
2307: hr_utility.set_location('In ethnic_dff found true',59);
2308: if(hr_util_misc_ss.is_basic_det_chg(p_person_id) = 'Y') then
2309: hr_utility.set_location('In changed False and US Leg True',60);
2310: hr_approval_ss.create_item_attrib_if_notexist(p_item_type,
2311: p_item_key,
2305:
2306: IF ( ethnic_dff%FOUND ) THEN
2307: hr_utility.set_location('In ethnic_dff found true',59);
2308: if(hr_util_misc_ss.is_basic_det_chg(p_person_id) = 'Y') then
2309: hr_utility.set_location('In changed False and US Leg True',60);
2310: hr_approval_ss.create_item_attrib_if_notexist(p_item_type,
2311: p_item_key,
2312: 'ISETHINICFLOW',
2313: 'YES',
2319: end if;
2320:
2321: ELSE
2322:
2323: hr_utility.set_location('raise hr_perinfo_util_web.g_no_changes:'||l_proc,60);
2324: raise hr_perinfo_util_web.g_no_changes;
2325: GOTO no_transaction;
2326:
2327:
2332: END IF;
2333:
2334:
2335: if(p_assign_payroll_warning = 'Y') then
2336: hr_utility.set_location('p_assign_payroll_warning = Y:'||l_proc,65);
2337: l_assign_payroll_warning := true;
2338: end if;
2339:
2340: --
2352: ,p_ni_duplicate_warn_or_err => p_ni_duplicate_warn_or_err);
2353: end if;
2354:
2355: if(p_validate_ni <> 'IGNORE') then
2356: hr_utility.set_location('p_validate_ni <> IGNORE:'||l_proc,70);
2357: hr_person_info_util_ss.validate_national_identifier(
2358: p_national_identifier => p_national_identifier
2359: ,p_birth_date => p_date_of_birth
2360: ,p_gender => p_sex
2506: );
2507:
2508:
2509: IF g_debug THEN
2510: hr_utility.set_location('After calling validate_basic_details', 75);
2511: END IF;
2512:
2513:
2514: --
2512:
2513:
2514: --
2515: IF (l_error_message IS NOT NULL) THEN
2516: hr_utility.set_location('l_error_message IS NOT NULL:'||l_proc,80);
2517: raise hr_process_person_ss.g_validate_basic_details_error;
2518: END IF;
2519:
2520: --
2521: IF hr_errors_api.errorExists
2522: THEN
2523:
2524: IF g_debug THEN
2525: hr_utility.set_location('api error exists', 85);
2526: END IF;
2527:
2528: raise g_data_error;
2529: END IF;
3366: actid => p_actid,
3367: aname => g_wf_review_regn_itm_attr_name);
3368: EXCEPTION
3369: WHEN OTHERS THEN
3370: hr_utility.set_location('Exception:Others'||l_proc,555);
3371: l_review_item_name := 'HrBasicDetailsReview';
3372: END;
3373: end if;
3374:
3402: --------------------------------------------------------------------------------
3403: --
3404:
3405: IF g_debug THEN
3406: hr_utility.set_location('Before save_transaction_step', 95);
3407: END IF;
3408:
3409:
3410: hr_transaction_ss.save_transaction_step
3458: ,p_transaction_data => l_dummy_txn_table);
3459: end if;
3460:
3461: IF g_debug THEN
3462: hr_utility.set_location('After save_transaction_step', 100);
3463: END IF;
3464:
3465: --
3466: -- Not sure if we need to set the generic approval url here ????
3467: --
3468: --
3469:
3470: IF g_debug THEN
3471: hr_utility.set_location('After saving transaction steps', 105);
3472: END IF;
3473:
3474:
3475: --
3502: END IF;
3503: --
3504: p_object_version_number := l_ovn;
3505: p_employee_number := l_employee_number;
3506: hr_utility.set_location('Exiting:'||l_proc, 115);
3507: <
3508: null;
3509:
3510:
3509:
3510:
3511: EXCEPTION
3512: WHEN g_data_error THEN
3513: hr_utility.set_location('Exception:g_data_error'||l_proc,560);
3514: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
3515: p_error_message => l_error_message);
3516: -- applicant_hire
3517: if (g_applicant_hire) then
3519: g_applicant_hire := false;
3520: end if;
3521: --
3522: WHEN hr_process_person_ss.g_validate_basic_details_error THEN
3523: hr_utility.set_location('Exception:g_validate_basic_details_error'||l_proc,565);
3524: -- No need to call formatted_error_message, as the messages is already
3525: -- formatted.
3526: p_error_message := l_error_message;
3527: -- applicant_hire
3530: g_applicant_hire := false;
3531: end if;
3532: --
3533: WHEN hr_perinfo_util_web.g_no_changes THEN
3534: hr_utility.set_location('Exception:g_no_changes'||l_proc,570);
3535: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
3536: p_error_message => l_error_message,
3537: p_attr_name => 'Page',
3538: p_app_short_name => 'PER',
3544: end if;
3545: --
3546: -- Bug Fix : 3048836
3547: WHEN hr_perinfo_util_web.g_past_effective_date THEN
3548: hr_utility.set_location('Exception:g_past_effective_date'||l_proc,575);
3549: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
3550: p_error_message => l_error_message);
3551:
3552: WHEN hr_perinfo_util_web.g_past_current_start_date THEN
3549: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
3550: p_error_message => l_error_message);
3551:
3552: WHEN hr_perinfo_util_web.g_past_current_start_date THEN
3553: hr_utility.set_location('Exception:g_past_current_start_date'||l_proc,580);
3554: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
3555: p_error_message => l_error_message);
3556:
3557: WHEN OTHERS THEN
3554: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
3555: p_error_message => l_error_message);
3556:
3557: WHEN OTHERS THEN
3558: hr_utility.set_location('Exception:Others'||l_proc,585);
3559: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
3560: p_error_message => l_error_message);
3561: -- applicant_hire
3562: if (g_applicant_hire) then
3738:
3739: -- Validate that the effective_date entered is not less than the
3740: -- effective_start_date of the most current record.
3741: --
3742: hr_utility.set_location('Entering:& creating a Savepoint'||l_proc, 5);
3743: SAVEPOINT process_basic_details;
3744: --
3745: hr_utility.set_location('Opening & Fetching:get_current_rec'||l_proc,10);
3746: OPEN get_current_rec(p_eff_date=> p_effective_date);
3741: --
3742: hr_utility.set_location('Entering:& creating a Savepoint'||l_proc, 5);
3743: SAVEPOINT process_basic_details;
3744: --
3745: hr_utility.set_location('Opening & Fetching:get_current_rec'||l_proc,10);
3746: OPEN get_current_rec(p_eff_date=> p_effective_date);
3747: FETCH get_current_rec into l_current_rec;
3748: IF get_current_rec%NOTFOUND
3749: THEN
3765: --
To correct the invalid entry either:
3766: -- - enter an address after the hire date
3767: -- - contact your HR department for a correction of the person
3768: -- details change.
3769: hr_utility.set_location('p_effective_date < l_current_rec.effective_start_date:'||l_proc,15);
3770: raise hr_process_person_ss.g_date_prior_to_cur_start_date;
3771: END IF;
3772: --
3773: --
3929:
3930:
3931: IF p_validate_mode
3932: THEN
3933: hr_utility.set_location('IF p_validate_mode:'||l_proc,20);
3934: p_full_name := l_full_name; -- Bug fix 2116170
3935: p_effective_start_date := l_effective_start_date;
3936: p_effective_end_date := l_effective_end_date;
3937: p_comment_id := l_comment_id;
3946: end if;
3947: p_orig_hire_warning := l_orig_hire_warning;
3948: ROLLBACK TO process_basic_details;
3949: ELSE
3950: hr_utility.set_location('!p_validate_mode:'||l_proc,25);
3951: p_effective_start_date := l_effective_start_date;
3952: p_effective_end_date := l_effective_end_date;
3953: p_full_name := l_full_name;
3954: p_comment_id := l_comment_id;
3959: p_employee_number := l_employee_number;
3960: END IF;
3961: --
3962:
3963: hr_utility.set_location('Exiting:'||l_proc, 30);
3964: EXCEPTION
3965:
3966: WHEN hr_process_person_ss.g_date_prior_to_cur_start_date THEN
3967: hr_utility.set_location('Exception:g_date_prior_to_cur_start_date'||l_proc,555);
3963: hr_utility.set_location('Exiting:'||l_proc, 30);
3964: EXCEPTION
3965:
3966: WHEN hr_process_person_ss.g_date_prior_to_cur_start_date THEN
3967: hr_utility.set_location('Exception:g_date_prior_to_cur_start_date'||l_proc,555);
3968: ROLLBACK TO process_basic_details;
3969: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
3970: p_error_message => p_error_message,
3971: p_attr_name => 'EffectiveStartDate',
3972: p_app_short_name => 'PER',
3973: p_message_name => 'HR_EARLIER_THAN_CUR_START_DT');
3974: --
3975: WHEN g_data_error THEN
3976: hr_utility.set_location('Exception:g_data_error'||l_proc,560);
3977: ROLLBACK TO process_basic_details;
3978: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
3979: p_error_message => p_error_message);
3980: --
3977: ROLLBACK TO process_basic_details;
3978: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
3979: p_error_message => p_error_message);
3980: --
3981: WHEN hr_utility.hr_error THEN
3982: -- -------------------------------------------
3983: -- an application error has been raised so we must
3984: -- redisplay the web form to display the error
3985: -- --------------------------------------------
3982: -- -------------------------------------------
3983: -- an application error has been raised so we must
3984: -- redisplay the web form to display the error
3985: -- --------------------------------------------
3986: hr_utility.set_location('Exception:hr_utility.hr_error'||l_proc,565);
3987: ROLLBACK TO process_basic_details;
3988: hr_message.provide_error;
3989: l_message_number := hr_message.last_message_number;
3990: IF l_message_number = 'APP-7165' OR l_message_number = 'APP-7155' THEN
3995: p_app_short_name => 'PER',
3996: p_message_name => 'HR_UPDATE_NOT_ALLOWED');
3997: -- Bug Fix : 3048836
3998: ELSIF l_message_number = 'APP-7179' THEN
3999: hr_utility.set_message(800,'HR_PERINFO_PAST_EFFECTIVE_DATE');
4000: hr_utility.set_message_token('EFFECTIVE_DATE',
4001: get_max_effective_date(p_person_id));
4002: hr_utility.raise_error;
4003:
3996: p_message_name => 'HR_UPDATE_NOT_ALLOWED');
3997: -- Bug Fix : 3048836
3998: ELSIF l_message_number = 'APP-7179' THEN
3999: hr_utility.set_message(800,'HR_PERINFO_PAST_EFFECTIVE_DATE');
4000: hr_utility.set_message_token('EFFECTIVE_DATE',
4001: get_max_effective_date(p_person_id));
4002: hr_utility.raise_error;
4003:
4004: ELSE
3998: ELSIF l_message_number = 'APP-7179' THEN
3999: hr_utility.set_message(800,'HR_PERINFO_PAST_EFFECTIVE_DATE');
4000: hr_utility.set_message_token('EFFECTIVE_DATE',
4001: get_max_effective_date(p_person_id));
4002: hr_utility.raise_error;
4003:
4004: ELSE
4005: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
4006: p_error_message => p_error_message);
4006: p_error_message => p_error_message);
4007: END IF;
4008: --
4009: WHEN hr_perinfo_util_web.g_past_current_Start_date THEN
4010: hr_utility.set_location('Exception:g_past_current_Start_date'||l_proc,570);
4011: ROLLBACK TO process_basic_details;
4012: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
4013: p_error_message => p_error_message,
4014: p_attr_name => 'EffectiveStartDate',
4015: p_app_short_name => 'PER',
4016: p_message_name => 'HR_PERINFO_INVALID_ED_01');
4017: --
4018: WHEN hr_perinfo_util_web.g_past_effective_date THEN
4019: hr_utility.set_location('Exception:g_past_effective_date'||l_proc,575);
4020: ROLLBACK TO process_basic_details;
4021: hr_utility.set_message(800,'HR_PERINFO_PAST_EFFECTIVE_DATE');
4022: hr_utility.set_message_token('EFFECTIVE_DATE',
4023: get_max_effective_date(p_person_id));
4017: --
4018: WHEN hr_perinfo_util_web.g_past_effective_date THEN
4019: hr_utility.set_location('Exception:g_past_effective_date'||l_proc,575);
4020: ROLLBACK TO process_basic_details;
4021: hr_utility.set_message(800,'HR_PERINFO_PAST_EFFECTIVE_DATE');
4022: hr_utility.set_message_token('EFFECTIVE_DATE',
4023: get_max_effective_date(p_person_id));
4024: hr_utility.raise_error;
4025: --
4018: WHEN hr_perinfo_util_web.g_past_effective_date THEN
4019: hr_utility.set_location('Exception:g_past_effective_date'||l_proc,575);
4020: ROLLBACK TO process_basic_details;
4021: hr_utility.set_message(800,'HR_PERINFO_PAST_EFFECTIVE_DATE');
4022: hr_utility.set_message_token('EFFECTIVE_DATE',
4023: get_max_effective_date(p_person_id));
4024: hr_utility.raise_error;
4025: --
4026: WHEN hr_perinfo_util_web.g_no_changes THEN
4020: ROLLBACK TO process_basic_details;
4021: hr_utility.set_message(800,'HR_PERINFO_PAST_EFFECTIVE_DATE');
4022: hr_utility.set_message_token('EFFECTIVE_DATE',
4023: get_max_effective_date(p_person_id));
4024: hr_utility.raise_error;
4025: --
4026: WHEN hr_perinfo_util_web.g_no_changes THEN
4027: hr_utility.set_location('Exception:g_no_changes'||l_proc,580);
4028: ROLLBACK TO process_basic_details;
4023: get_max_effective_date(p_person_id));
4024: hr_utility.raise_error;
4025: --
4026: WHEN hr_perinfo_util_web.g_no_changes THEN
4027: hr_utility.set_location('Exception:g_no_changes'||l_proc,580);
4028: ROLLBACK TO process_basic_details;
4029: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
4030: p_error_message => p_error_message,
4031: p_attr_name => 'Page',
4032: p_app_short_name => 'PER',
4033: p_message_name => 'HR_PERINFO_NO_CHANGES');
4034: --
4035: WHEN OTHERS THEN
4036: hr_utility.set_location('Exception:Others'||l_proc,585);
4037: ROLLBACK TO process_basic_details;
4038: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
4039: p_error_message => p_error_message);
4040:
4188: --
4189: -- Bug Fix 3048836 : checking if the effective date entered by user <
4190: -- hire date or the current record's start date.
4191:
4192: hr_utility.set_location('Entering:'||l_proc, 5);
4193: IF hr_perinfo_util_web.isDateLessThanCreationDate
4194: (p_date => p_effective_date
4195: ,p_person_id => p_person_id) THEN
4196: -- The effective Date is less than the creation date of the
4194: (p_date => p_effective_date
4195: ,p_person_id => p_person_id) THEN
4196: -- The effective Date is less than the creation date of the
4197: -- Person.
4198: hr_utility.set_location('The EffDate
4200: END IF;
4201: IF hr_perinfo_util_web.isLessThanCurrentStartDate
4202: (p_effective_date => p_effective_date
4201: IF hr_perinfo_util_web.isLessThanCurrentStartDate
4202: (p_effective_date => p_effective_date
4203: ,p_person_id => p_person_id
4204: ,p_ovn => p_object_version_number) THEN
4205: hr_utility.set_location('The EffDate
4207: END IF;
4208:
4209:
4206: RAISE hr_perinfo_util_web.g_past_current_start_date;
4207: END IF;
4208:
4209:
4210: hr_utility.set_location('Opening and Fetching gc_get_cur_person_data :'||l_proc,20);
4211: OPEN gc_get_cur_person_data(p_person_id => p_person_id,
4212: p_eff_date=> p_effective_date);
4213: FETCH gc_get_cur_person_data into l_cur_person_data;
4214: IF gc_get_cur_person_data%NOTFOUND
4229: THEN
4230: IF nvl(p_person_type_id, hr_api.g_number) <>
4231: nvl(l_cur_person_data.person_type_id, hr_api.g_number)
4232: THEN
4233: hr_utility.set_location('nvl(p_person_type_id, hr_api.g_number) <> nvl(l_cur_person_data.person_type_id, hr_api.g_number)'||l_proc,25);
4234: l_rec_changed := TRUE;
4235: hr_utility.set_location('GOing to
4236: goto finish;
4237: END IF;
4231: nvl(l_cur_person_data.person_type_id, hr_api.g_number)
4232: THEN
4233: hr_utility.set_location('nvl(p_person_type_id, hr_api.g_number) <> nvl(l_cur_person_data.person_type_id, hr_api.g_number)'||l_proc,25);
4234: l_rec_changed := TRUE;
4235: hr_utility.set_location('GOing to
4237: END IF;
4238: END IF;
4239: --
4241: THEN
4242: IF nvl(p_last_name, hr_api.g_varchar2) <>
4243: nvl (l_cur_person_data.last_name, hr_api.g_varchar2)
4244: THEN
4245: hr_utility.set_location('nvl(p_last_name, hr_api.g_varchar2) <>nvl (l_cur_person_data.last_name, hr_api.g_varchar2)'||l_proc,35);
4246: hr_utility.set_location('GOing to
4247: l_rec_changed := TRUE;
4248: goto finish;
4249: END IF;
4242: IF nvl(p_last_name, hr_api.g_varchar2) <>
4243: nvl (l_cur_person_data.last_name, hr_api.g_varchar2)
4244: THEN
4245: hr_utility.set_location('nvl(p_last_name, hr_api.g_varchar2) <>nvl (l_cur_person_data.last_name, hr_api.g_varchar2)'||l_proc,35);
4246: hr_utility.set_location('GOing to
4248: goto finish;
4249: END IF;
4250: END IF;
4254: IF nvl(p_applicant_number, hr_api.g_varchar2) <>
4255: nvl(l_cur_person_data.applicant_number, hr_api.g_varchar2)
4256: THEN
4257: l_rec_changed := TRUE;
4258: hr_utility.set_location('nvl(p_applicant_number, hr_api.g_varchar2)<>nvl(l_cur_person_data.applicant_number, hr_api.g_varchar2)'||l_proc,45);
4259: hr_utility.set_location('GOing to
4260:
4261: goto finish;
4262: END IF;
4255: nvl(l_cur_person_data.applicant_number, hr_api.g_varchar2)
4256: THEN
4257: l_rec_changed := TRUE;
4258: hr_utility.set_location('nvl(p_applicant_number, hr_api.g_varchar2)<>nvl(l_cur_person_data.applicant_number, hr_api.g_varchar2)'||l_proc,45);
4259: hr_utility.set_location('GOing to
4261: goto finish;
4262: END IF;
4263: END IF;
4267: IF nvl(p_comments, hr_api.g_varchar2) <>
4268: nvl(l_cur_person_data.comment_text, hr_api.g_varchar2)
4269: THEN
4270: l_rec_changed := TRUE;
4271: hr_utility.set_location('nvl(p_comments, hr_api.g_varchar2) <>nvl(l_cur_person_data.comment_text, hr_api.g_varchar2)'||l_proc,55);
4272: hr_utility.set_location('GOing to
4273:
4274: goto finish;
4275: END IF;
4268: nvl(l_cur_person_data.comment_text, hr_api.g_varchar2)
4269: THEN
4270: l_rec_changed := TRUE;
4271: hr_utility.set_location('nvl(p_comments, hr_api.g_varchar2) <>nvl(l_cur_person_data.comment_text, hr_api.g_varchar2)'||l_proc,55);
4272: hr_utility.set_location('GOing to
4274: goto finish;
4275: END IF;
4276: END IF;
4280: IF nvl(p_date_employee_data_verified, hr_api.g_date) <>
4281: nvl(l_cur_person_data.date_employee_data_verified, hr_api.g_date)
4282: THEN
4283:
4284: hr_utility.set_location('GOing to
4286: l_rec_changed := TRUE;
4287: goto finish;
4288: END IF;
4292: THEN
4293: IF nvl(p_original_date_of_hire, hr_api.g_date) <>
4294: nvl(l_cur_person_data.original_date_of_hire, hr_api.g_date)
4295: THEN
4296: hr_utility.set_location('GOing to
4298: goto finish;
4299: END IF;
4300: END IF;
4304: IF nvl(p_date_of_birth, hr_api.g_date) <>
4305: nvl(l_cur_person_data.date_of_birth, hr_api.g_date)
4306: THEN
4307: l_rec_changed := TRUE;
4308: hr_utility.set_location('Check DOB & , GOing to
4310: END IF;
4311: END IF;
4312: --
4315: IF nvl(p_town_of_birth, hr_api.g_varchar2) <>
4316: nvl(l_cur_person_data.town_of_birth, hr_api.g_varchar2)
4317: THEN
4318: l_rec_changed := TRUE;
4319: hr_utility.set_location('Check on Town of birth & GOing to
4321: END IF;
4322: END IF;
4323: --
4326: IF nvl(p_region_of_birth, hr_api.g_varchar2) <>
4327: nvl(l_cur_person_data.region_of_birth, hr_api.g_varchar2)
4328: THEN
4329: l_rec_changed := TRUE;
4330: hr_utility.set_location('Check on Region of birth & GOing to
4332: END IF;
4333: END IF;
4334: --
4337: IF nvl(p_country_of_birth, hr_api.g_varchar2) <>
4338: nvl(l_cur_person_data.country_of_birth, hr_api.g_varchar2)
4339: THEN
4340: l_rec_changed := TRUE;
4341: hr_utility.set_location('Check on Country of birth & GOing to
4343: END IF;
4344: END IF;
4345: --
4348: THEN
4349: IF nvl(p_global_person_id, hr_api.g_varchar2) <>
4350: nvl(l_cur_person_data.global_person_id, hr_api.g_varchar2)
4351: THEN
4352: hr_utility.set_location('Check on Global person id & GOing to
4354: goto finish;
4355: END IF;
4356: END IF;
4360: IF nvl(p_email_address, hr_api.g_varchar2) <>
4361: nvl(l_cur_person_data.email_address, hr_api.g_varchar2)
4362: THEN
4363: l_rec_changed := TRUE;
4364: hr_utility.set_location('Check on Email id id & GOing to
4366: END IF;
4367: END IF;
4368: --
4371: IF nvl(p_employee_number, hr_api.g_varchar2) <>
4372: nvl(l_cur_person_data.employee_number, hr_api.g_varchar2)
4373: THEN
4374: l_rec_changed := TRUE;
4375: hr_utility.set_location('Check on empno & GOing to
4377: END IF;
4378: END IF;
4379: --
4381: THEN
4382: IF nvl(p_npw_number, hr_api.g_varchar2) <>
4383: nvl(l_cur_person_data.npw_number, hr_api.g_varchar2)
4384: THEN
4385: hr_utility.set_location('Check on npwno & GOing to
4387: goto finish;
4388: END IF;
4389: END IF;
4392: THEN
4393: IF nvl(p_expense_check_send_to_addres, hr_api.g_varchar2) <>
4394: nvl(l_cur_person_data.expense_check_send_to_address, hr_api.g_varchar2)
4395: THEN
4396: hr_utility.set_location('Check on to address & GOing to
4398: goto finish;
4399: END IF;
4400: END IF;
4403: THEN
4404: IF nvl(p_first_name, hr_api.g_varchar2) <>
4405: nvl(l_cur_person_data.first_name, hr_api.g_varchar2)
4406: THEN
4407: hr_utility.set_location('Check on firstname & GOing to
4409: goto finish;
4410: END IF;
4411: END IF;
4434: THEN
4435: IF nvl(p_middle_names, hr_api.g_varchar2) <>
4436: nvl(l_cur_person_data.middle_names, hr_api.g_varchar2)
4437: THEN
4438: hr_utility.set_location('Check on middlename & GOing to
4440: goto finish;
4441: END IF;
4442: END IF;
5484: goto finish;
5485: END IF;
5486: END IF;
5487:
5488: hr_utility.set_location('Exiting:'||l_proc, 200);
5489: --
5490: --
5491: <
5492: RETURN l_rec_changed;
5493:
5494:
5495: EXCEPTION
5496: When hr_perinfo_util_web.g_past_effective_date then
5497: hr_utility.set_location('Exception:past_effective_date'||l_proc,555);
5498: hr_utility.set_message(applid=> 800,l_message_name=>'HR_PERINFO_PAST_EFFECTIVE_DATE');
5499: hr_utility.set_message_token('EFFECTIVE_DATE',
5500: get_max_effective_date(p_person_id));
5501: raise hr_perinfo_util_web.g_past_effective_date;
5494:
5495: EXCEPTION
5496: When hr_perinfo_util_web.g_past_effective_date then
5497: hr_utility.set_location('Exception:past_effective_date'||l_proc,555);
5498: hr_utility.set_message(applid=> 800,l_message_name=>'HR_PERINFO_PAST_EFFECTIVE_DATE');
5499: hr_utility.set_message_token('EFFECTIVE_DATE',
5500: get_max_effective_date(p_person_id));
5501: raise hr_perinfo_util_web.g_past_effective_date;
5502:
5495: EXCEPTION
5496: When hr_perinfo_util_web.g_past_effective_date then
5497: hr_utility.set_location('Exception:past_effective_date'||l_proc,555);
5498: hr_utility.set_message(applid=> 800,l_message_name=>'HR_PERINFO_PAST_EFFECTIVE_DATE');
5499: hr_utility.set_message_token('EFFECTIVE_DATE',
5500: get_max_effective_date(p_person_id));
5501: raise hr_perinfo_util_web.g_past_effective_date;
5502:
5503: When hr_perinfo_util_web.g_past_current_start_date then
5500: get_max_effective_date(p_person_id));
5501: raise hr_perinfo_util_web.g_past_effective_date;
5502:
5503: When hr_perinfo_util_web.g_past_current_start_date then
5504: hr_utility.set_location('Exception:past_current_start_date'||l_proc,565);
5505: hr_utility.set_message(applid=> 800,l_message_name=>'HR_PERINFO_PAST_EFFECTIVE_DATE');
5506: hr_utility.set_message_token('EFFECTIVE_DATE',
5507: get_max_effective_date(p_person_id));
5508: raise hr_perinfo_util_web.g_past_current_start_date;
5501: raise hr_perinfo_util_web.g_past_effective_date;
5502:
5503: When hr_perinfo_util_web.g_past_current_start_date then
5504: hr_utility.set_location('Exception:past_current_start_date'||l_proc,565);
5505: hr_utility.set_message(applid=> 800,l_message_name=>'HR_PERINFO_PAST_EFFECTIVE_DATE');
5506: hr_utility.set_message_token('EFFECTIVE_DATE',
5507: get_max_effective_date(p_person_id));
5508: raise hr_perinfo_util_web.g_past_current_start_date;
5509:
5502:
5503: When hr_perinfo_util_web.g_past_current_start_date then
5504: hr_utility.set_location('Exception:past_current_start_date'||l_proc,565);
5505: hr_utility.set_message(applid=> 800,l_message_name=>'HR_PERINFO_PAST_EFFECTIVE_DATE');
5506: hr_utility.set_message_token('EFFECTIVE_DATE',
5507: get_max_effective_date(p_person_id));
5508: raise hr_perinfo_util_web.g_past_current_start_date;
5509:
5510:
5509:
5510:
5511: When g_data_error THEN
5512:
5513: hr_utility.set_location('Exception:g_data_error'||l_proc,575);
5514: raise;
5515:
5516: When others THEN
5517: hr_utility.set_location('Exception:Others'||l_proc,585);
5513: hr_utility.set_location('Exception:g_data_error'||l_proc,575);
5514: raise;
5515:
5516: When others THEN
5517: hr_utility.set_location('Exception:Others'||l_proc,585);
5518: raise;
5519:
5520: END is_rec_changed;
5521:
5674: l_is_ethinic varchar2(10) := null;
5675:
5676: BEGIN
5677: --
5678: hr_utility.set_location('Entering:'||l_proc, 5);
5679: l_item_type := hr_transaction_api.get_varchar2_value
5680: (p_transaction_step_id => p_transaction_step_id
5681: ,p_name => 'P_ITEM_TYPE');
5682:
5695: end if;
5696:
5697: if (p_effective_date is not null) then
5698: l_effective_date:= to_date(p_effective_date,g_date_format);
5699: hr_utility.set_location('p_effective_date is not null:'||l_proc,10);
5700: else
5701: hr_utility.set_location('p_effective_date is null:'||l_proc,15);
5702: l_effective_date:= to_date(
5703: hr_transaction_ss.get_wf_effective_date
5697: if (p_effective_date is not null) then
5698: l_effective_date:= to_date(p_effective_date,g_date_format);
5699: hr_utility.set_location('p_effective_date is not null:'||l_proc,10);
5700: else
5701: hr_utility.set_location('p_effective_date is null:'||l_proc,15);
5702: l_effective_date:= to_date(
5703: hr_transaction_ss.get_wf_effective_date
5704: (p_transaction_step_id => p_transaction_step_id),g_date_format);
5705: end if;
5710: --
5711: -- Get the person_id first. If it is null, that means we'll create a new
5712: -- employee. If it is not null, we will do an update to the person record.
5713:
5714: hr_utility.set_location('Calls to hr_transation_api:'||l_proc,20);
5715: l_person_id := hr_transaction_api.get_number_value
5716: (p_transaction_step_id => p_transaction_step_id
5717: ,p_name => 'P_PERSON_ID');
5718: --
5750: fetch csr_leg_code into l_leg_code_row;
5751: close csr_leg_code;
5752: l_orgid := l_business_grp_Id;
5753: if hr_multi_tenancy_pkg.is_multi_tenant_system then
5754: hr_utility.set_location('Multi tenancy changes '||l_proc,21);
5755:
5756: if l_person_id is not null
5757: and l_person_id <> -1 then
5758: hr_utility.set_location('Person Id: '|| l_person_id,22);
5754: hr_utility.set_location('Multi tenancy changes '||l_proc,21);
5755:
5756: if l_person_id is not null
5757: and l_person_id <> -1 then
5758: hr_utility.set_location('Person Id: '|| l_person_id,22);
5759:
5760: l_orgid := hr_multi_tenancy_pkg.get_org_id_for_person(l_person_id);
5761: else
5762: hr_utility.set_location('Business group Id: '|| l_business_grp_Id,23);
5758: hr_utility.set_location('Person Id: '|| l_person_id,22);
5759:
5760: l_orgid := hr_multi_tenancy_pkg.get_org_id_for_person(l_person_id);
5761: else
5762: hr_utility.set_location('Business group Id: '|| l_business_grp_Id,23);
5763:
5764: select CREATOR_PERSON_ID into login_person_id
5765: from HR_API_TRANSACTION_STEPS
5766: where TRANSACTION_STEP_ID = p_transaction_step_id;
5764: select CREATOR_PERSON_ID into login_person_id
5765: from HR_API_TRANSACTION_STEPS
5766: where TRANSACTION_STEP_ID = p_transaction_step_id;
5767:
5768: hr_utility.set_location('Creator Person Id: '|| login_person_id,24);
5769: l_orgid := hr_multi_tenancy_pkg.get_org_id_for_person(login_person_id, l_business_grp_Id);
5770: end if;
5771: end if;
5772: hr_util_misc_ss.set_sys_ctx(l_leg_code_row.legislation_code, l_orgid);
5778:
5779: -- In case of hiring an applicant, we need to call the hr_applicant_api to
5780: -- make the applicant an employee and then update the BD record
5781:
5782: hr_utility.set_location('Opening & Fetching gc_get_current_applicant_flag:'||l_proc,25);
5783: open gc_get_current_applicant_flag(l_person_id, l_effective_date);
5784: fetch gc_get_current_applicant_flag into
5785: l_current_applicant_flag, l_current_employee_flag, l_current_npw_flag;
5786: close gc_get_current_applicant_flag;
5840: -- as we need to make sure that the generation controls table is not
5841: -- locked.
5842: --
5843:
5844: hr_utility.set_location('hr_new_user_reg_ss.g_ignore_emp_generation =YES:'||l_proc,35);
5845: fnd_profile.put('PER_SSHR_NO_EMPNUM_GENERATION','Y');
5846:
5847: end if;
5848:
5873: fetch csr_get_legc_code into l_legislation_code;
5874: close csr_get_legc_code;
5875:
5876: IF (l_legislation_code = 'US'
5877: and hr_utility.chk_product_install(p_product => 'Oracle Payroll',
5878: p_legislation => 'US')) THEN
5879:
5880: open csr_add_style(l_person_id,l_effective_date);
5881: fetch csr_add_style into l_style;
5944: fetch gc_get_new_appl_person_type into l_person_type_id;
5945: close gc_get_new_appl_person_type;
5946:
5947: if hr_new_user_reg_ss.g_ignore_emp_generation = 'YES' then
5948: hr_utility.set_location('hr_new_user_reg_ss.g_ignore_emp_generation = YES:'||l_proc,40);
5949: hr_new_user_reg_ss.g_ignore_emp_generation := 'NO';
5950:
5951: fnd_profile.put('PER_SSHR_NO_EMPNUM_GENERATION','N');
5952: end if;
6004: nvl(l_current_employee_flag, 'N') <> 'Y' AND
6005: nvl(l_current_npw_flag, 'N') <> 'Y'
6006: )
6007: THEN
6008: hr_utility.set_location('l_current_applicant_flag=Y:'||l_proc,45);
6009: NULL;
6010: ELSE
6011: l_person_type_id := hr_api.g_number;
6012: END IF;
6427: -- as we need to make sure that the generation controls table is not
6428: -- locked.
6429: --
6430:
6431: hr_utility.set_location('l_flow_name = Insert:'||l_proc,100);
6432: fnd_profile.put('PER_SSHR_NO_EMPNUM_GENERATION','Y');
6433:
6434: end if;
6435:
7183: fnd_profile.put('PER_SSHR_NO_EMPNUM_GENERATION','N');
7184: end if;
7185:
7186: ELSIF l_flow_name = 'Cobra' THEN
7187: hr_utility.set_location('l_flow_name = Cobra:'||l_proc,100);
7188: hr_contact_api.create_person
7189: (p_validate => p_validate
7190: ,p_start_date => sysdate
7191: ,p_business_group_id => hr_transaction_api.get_number_value
7495: (itemtype => l_item_type,
7496: itemkey => l_item_key,
7497: aname =>'USER_TRANSACTION_STEP'));
7498: if l_transaction_step is not null then
7499: hr_utility.set_location('l_transaction_step is not null then'||l_proc,105);
7500: ben_process_user_ss_api.get_user_data_from_tt(
7501: p_transaction_step_id => l_transaction_step
7502: ,p_user_name => l_user_name
7503: ,p_user_pswd => l_user_pswd
7561: g_session_id := ICX_SEC.G_SESSION_ID;
7562: g_person_id := l_person_id;
7563: g_assignment_id := l_assignment_id;
7564: g_asg_object_version_number := l_aovn;
7565: -- hr_utility.set_location('Venkat g_person_id =' || g_person_id, 8888);
7566: ---End Registration
7567: END IF;
7568:
7569: fnd_profile.put('PER_PERSON_ID', l_person_id);
7581: END IF;
7582: --
7583: --
7584: IF p_validate = true THEN
7585: hr_utility.set_location('p_validate = true THEN'||l_proc,115);
7586: ROLLBACK TO process_basic_details;
7587: END IF;
7588: --
7589: --
7587: END IF;
7588: --
7589: --
7590: EXCEPTION
7591: WHEN hr_utility.hr_error THEN
7592: -- -----------------------------------------------------------------
7593: -- An application error has been raised by the API so we must set
7594: -- the error.
7595: -- -----------------------------------------------------------------
7592: -- -----------------------------------------------------------------
7593: -- An application error has been raised by the API so we must set
7594: -- the error.
7595: -- -----------------------------------------------------------------
7596: hr_utility.set_location('Exception:hr_utility.hr_error THEN'||l_proc,555);
7597: ROLLBACK TO process_basic_details;
7598: RAISE;
7599:
7600: END process_api;
7605: ,p_effective_date in varchar2 default null
7606: )
7607: IS
7608: begin
7609: hr_utility.set_location('Entering process_dummy_api',5);
7610: null;
7611: hr_utility.set_location('Leaving process_dummy_api',10);
7612: end;
7613:
7607: IS
7608: begin
7609: hr_utility.set_location('Entering process_dummy_api',5);
7610: null;
7611: hr_utility.set_location('Leaving process_dummy_api',10);
7612: end;
7613:
7614: --
7615: ---Start Registration
7844:
7845: SAVEPOINT create_person_ben_ss;
7846: --
7847:
7848: hr_utility.set_location('Entering:'||l_proc, 5);
7849:
7850: -- ignore employee number generation for newhire SS flow
7851:
7852: hr_new_user_reg_ss.g_ignore_emp_generation := 'YES';
7854:
7855: IF p_validate = 'N' OR p_validate IS NULL
7856: THEN
7857:
7858: hr_utility.set_location('p_validate=N OR p_validate IS NULL:'||l_proc,10);
7859: l_validate := false;
7860: ELSE
7861: hr_utility.set_location('p_validate=Y AND p_validate!= NULL:'||l_proc,15);
7862: l_validate := true;
7857:
7858: hr_utility.set_location('p_validate=N OR p_validate IS NULL:'||l_proc,10);
7859: l_validate := false;
7860: ELSE
7861: hr_utility.set_location('p_validate=Y AND p_validate!= NULL:'||l_proc,15);
7862: l_validate := true;
7863: END IF;
7864: ---------
7865: -- Java caller will set p_vendor_id, p_benefit_group_id and p_fte_capacity to
7867: -- transaction table.
7868:
7869: IF p_vendor_id = 0
7870: THEN
7871: hr_utility.set_location('p_vendor_id = 0:'||l_proc,20);
7872: l_vendor_id := null;
7873: ELSE
7874: hr_utility.set_location('p_vendor_id != 0:'||l_proc,25);
7875: l_vendor_id := p_vendor_id;
7870: THEN
7871: hr_utility.set_location('p_vendor_id = 0:'||l_proc,20);
7872: l_vendor_id := null;
7873: ELSE
7874: hr_utility.set_location('p_vendor_id != 0:'||l_proc,25);
7875: l_vendor_id := p_vendor_id;
7876: END IF;
7877: --
7878: IF p_benefit_group_id = 0
7876: END IF;
7877: --
7878: IF p_benefit_group_id = 0
7879: THEN
7880: hr_utility.set_location('p_benefit_group_id = 0:'||l_proc,30);
7881: l_benefit_group_id := null;
7882: ELSE
7883: hr_utility.set_location('p_benefit_group_id != 0:'||l_proc,35);
7884: l_benefit_group_id := p_benefit_group_id;
7879: THEN
7880: hr_utility.set_location('p_benefit_group_id = 0:'||l_proc,30);
7881: l_benefit_group_id := null;
7882: ELSE
7883: hr_utility.set_location('p_benefit_group_id != 0:'||l_proc,35);
7884: l_benefit_group_id := p_benefit_group_id;
7885: END IF;
7886: --
7887: IF p_fte_capacity = 0
7885: END IF;
7886: --
7887: IF p_fte_capacity = 0
7888: THEN
7889: hr_utility.set_location('p_fte_capacity = 0:'||l_proc,40);
7890: l_fte_capacity := null;
7891: ELSE
7892: hr_utility.set_location('p_fte_capacity != 0:'||l_proc,45);
7893: l_fte_capacity := p_fte_capacity;
7888: THEN
7889: hr_utility.set_location('p_fte_capacity = 0:'||l_proc,40);
7890: l_fte_capacity := null;
7891: ELSE
7892: hr_utility.set_location('p_fte_capacity != 0:'||l_proc,45);
7893: l_fte_capacity := p_fte_capacity;
7894: END IF;
7895: ----
7896: IF p_person_type_id = 0
7894: END IF;
7895: ----
7896: IF p_person_type_id = 0
7897: THEN
7898: hr_utility.set_location('p_person_type_id = 0:'||l_proc,50);
7899: l_person_type_id := null;
7900: ELSE
7901: hr_utility.set_location('p_person_type_id != 0:'||l_proc,55);
7902: l_person_type_id := p_person_type_id;
7897: THEN
7898: hr_utility.set_location('p_person_type_id = 0:'||l_proc,50);
7899: l_person_type_id := null;
7900: ELSE
7901: hr_utility.set_location('p_person_type_id != 0:'||l_proc,55);
7902: l_person_type_id := p_person_type_id;
7903: END IF;
7904:
7905: l_employee_number := p_employee_number;
7906: l_npw_number := p_npw_number;
7907:
7908: -- Save for later changes.
7909: IF (p_save_mode = 'SAVE_FOR_LATER') THEN
7910: hr_utility.set_location('if SFL,GOTO to create only Txn '||l_proc,60);
7911: GOTO create_only_transaction;
7912: END IF;
7913:
7914:
7930: p_national_identifier => p_national_identifier
7931: ,p_business_group_id => p_business_group_id
7932: ,p_person_id => p_person_id
7933: ,p_ni_duplicate_warn_or_err => p_ni_duplicate_warn_or_err);
7934: hr_utility.set_location('p_ni_duplicate_warn_or_err!=IGNORE'||l_proc,65);
7935: end if;
7936:
7937: if(p_validate_ni <> 'IGNORE') then
7938: hr_person_info_util_ss.validate_national_identifier(
7943: ,p_business_group_id => p_business_group_id
7944: ,p_legislation_code => p_per_information_category
7945: ,p_effective_date => p_effective_date
7946: ,p_warning => p_validate_ni);
7947: hr_utility.set_location('p_validate_ni!=IGNORE'||l_proc,70);
7948: end if;
7949:
7950: open gc_get_sys_person_type(l_person_type_id);
7951: fetch gc_get_sys_person_type into l_sys_person_type;
7951: fetch gc_get_sys_person_type into l_sys_person_type;
7952: close gc_get_sys_person_type;
7953:
7954: if (l_sys_person_type = 'CWK') then
7955: hr_utility.set_location('l_sys_person_type=CWK'||l_proc,75);
7956: hr_contingent_worker_api.create_cwk
7957: (p_validate => l_validate
7958: ,p_start_date => p_hire_date
7959: ,p_business_group_id => p_business_group_id
8086: ,p_assignment_number => l_assignment_number
8087: ,p_name_combination_warning => l_name_combination_warning
8088: );
8089: else
8090: hr_utility.set_location('l_sys_person_type!=CWK'||l_proc,80);
8091: hr_employee_api.create_employee
8092: (p_validate => l_validate
8093: --in boolean default false
8094: ,p_hire_date => p_hire_date
8232: --
8233: --
8234: -- start cobra codes
8235: ELSIF p_flow_name = 'Cobra' THEN
8236: hr_utility.set_location('p_flow_name=Cobra'||l_proc,85);
8237: hr_contact_api.create_person
8238: (p_validate => false --in boolean default false
8239: ,p_start_date => sysdate
8240: ,p_business_group_id => p_business_group_id
8341: );
8342: --
8343:
8344: IF g_debug THEN
8345: hr_utility.set_location('Leaving hr_process_person_ss.create_personnnnnnnnnn ' || l_person_id, 2006);
8346: END IF;
8347:
8348: /*prflvalue := fnd_profile.value('BEN_USER_TO_ORG_LINK');
8349: ben_assignment_api.create_ben_asg
8368:
8369: -- set back the full name
8370: p_full_name := l_full_name;
8371:
8372: hr_utility.set_location('Rolling back to create_person_ben_ss'||l_proc,90);
8373: rollback to create_person_ben_ss;
8374:
8375: hr_multi_message.disable_message_list;
8376:
8375: hr_multi_message.disable_message_list;
8376:
8377: <
8378:
8379: hr_utility.set_location('create_only_transaction:'||l_proc,95);
8380: --Store the full_name in workflow item attribute HR_SECTION_DISPLAY_NAME
8381: -- to be used by the actions page.
8382: -- if l_full_name is null, derive it
8383: if (l_full_name is null) then
8380: --Store the full_name in workflow item attribute HR_SECTION_DISPLAY_NAME
8381: -- to be used by the actions page.
8382: -- if l_full_name is null, derive it
8383: if (l_full_name is null) then
8384: hr_utility.set_location('l_full_name is null:'||l_proc,100);
8385: hr_person.derive_full_name(p_first_name,
8386: p_middle_names, p_last_name, p_known_as,
8387: p_title, p_date_of_birth,
8388: p_person_id, p_business_group_id
8430: ,p_item_key => p_item_key);
8431: --
8432: IF l_transaction_id is null THEN
8433: -- Start a Transaction
8434: hr_utility.set_location('l_transaction_id is null THEN:'||l_proc,105);
8435: hr_transaction_ss.start_transaction
8436: (itemtype => p_item_type
8437: ,itemkey => p_item_key
8438: ,actid => p_actid
8457: ,p_api_name => l_api_names
8458: ,p_rows => l_trans_step_rows);
8459: --
8460:
8461: hr_utility.set_location('Entering For Loop 0..l_trans_step_rows-1:'||l_proc,110);
8462: FOR i in 0..l_trans_step_rows-1 LOOP
8463: IF(l_api_names(i) = 'HR_PROCESS_PERSON_SS.PROCESS_API') THEN
8464: l_transaction_step_id := l_trans_step_ids(i);
8465: END IF;
8463: IF(l_api_names(i) = 'HR_PROCESS_PERSON_SS.PROCESS_API') THEN
8464: l_transaction_step_id := l_trans_step_ids(i);
8465: END IF;
8466: END LOOP;
8467: hr_utility.set_location('Exiting For Loop 0..l_trans_step_rows-1:'||l_proc,115);
8468:
8469: if l_transaction_step_id is null then
8470: --
8471: -- Create a transaction step
8469: if l_transaction_step_id is null then
8470: --
8471: -- Create a transaction step
8472: --
8473: hr_utility.set_location('l_transaction_step_id is null then:'||l_proc,120);
8474: hr_transaction_api.create_transaction_step
8475: (p_validate => false
8476: ,p_creator_person_id => p_login_person_id
8477: --nvl(p_login_person_id, p_parent_id)
9176: --
9177: l_review_item_name := p_review_page_region_code;
9178: if (p_review_page_region_code IS NULL) then
9179: BEGIN
9180: hr_utility.set_location('p_review_page_region_code IS NULL'||l_proc,125);
9181: l_review_item_name :=
9182: wf_engine.GetActivityAttrText(itemtype => p_item_type,
9183: itemkey => p_item_key,
9184: actid => p_actid,
9184: actid => p_actid,
9185: aname => g_wf_review_regn_itm_attr_name);
9186: EXCEPTION
9187: WHEN OTHERS THEN
9188: hr_utility.set_location('Exception:Others'||l_proc,555);
9189: l_review_item_name := 'HrBasicDetailsReview';
9190: END;
9191: end if;
9192:
9332: p_employee_number := l_employee_number;
9333:
9334:
9335: IF g_debug THEN
9336: hr_utility.set_location('Leaving hr_process_person_ss.create_person ' || g_person_id, 200);
9337: END IF;
9338:
9339:
9340: EXCEPTION
9338:
9339:
9340: EXCEPTION
9341: WHEN g_data_error THEN
9342: hr_utility.set_location('Exception:g_data_error THEN'||l_proc,560);
9343: rollback to create_person_ben_ss;
9344: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
9345: p_error_message => p_error_message);
9346: WHEN others THEN
9343: rollback to create_person_ben_ss;
9344: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
9345: p_error_message => p_error_message);
9346: WHEN others THEN
9347: hr_utility.set_location('Exception:Others'||l_proc,555);
9348: -- This should be included as an out param for the procedure "create_person".
9349: -- Along with this change include also the appropriate changes in the java that calls this api.
9350: --
9351: p_error_message := hr_java_conv_util_ss.get_formatted_error_message(
9414: close csr_pay_legislation_rules;
9415:
9416: if (hr_general.chk_geocodes_installed = 'Y'
9417: and ( ( l_legislation_code = 'CA'
9418: and hr_utility.chk_product_install(p_product => 'Oracle Payroll',
9419: p_legislation => 'CA'))
9420: OR ( l_legislation_code = 'US'
9421: and hr_utility.chk_product_install(p_product => 'Oracle Payroll',
9422: p_legislation => 'US')))
9417: and ( ( l_legislation_code = 'CA'
9418: and hr_utility.chk_product_install(p_product => 'Oracle Payroll',
9419: p_legislation => 'CA'))
9420: OR ( l_legislation_code = 'US'
9421: and hr_utility.chk_product_install(p_product => 'Oracle Payroll',
9422: p_legislation => 'US')))
9423: and l_address_line1 is null) OR (l_date_of_birth is null) OR
9424: (p_soft_coding_keyflex_id is null and l_leg_code is not null) then
9425: