111:
112: BEGIN
113: lv_procedure_name := 'upgrade_ethnic_origin';
114:
115: hr_utility.set_location('Entering ' || gv_package_name ||lv_procedure_name,5);
116: /* CSV file generated would be created in the first directory mentioned in
117: v$parameter*/
118: gv_emp_count := gv_emp_count +1;
119: SELECT TRANSLATE(LTRIM(value),',',' ') -- #13031928 Added substr
121: INTO l_temp_utl
122: FROM v$parameter
123: WHERE name = 'utl_file_dir';
124:
125: hr_utility.set_location(gv_package_name ||lv_procedure_name,10);
126:
127: IF (INSTR(l_temp_utl,' ') > 0 AND l_temp_utl IS NOT NULL) THEN
128: SELECT SUBSTRB(l_temp_utl, 1, INSTR(l_temp_utl,' ') - 1)
129: INTO lv_dir
145: NULL;
146: WHEN OTHERS THEN
147: NULL;
148: END;
149: hr_utility.set_location(gv_package_name ||lv_procedure_name,15);
150:
151: BEGIN
152: SELECT request_id
153: INTO l_request_id
158: NULL;
159: WHEN OTHERS THEN
160: NULL;
161: END;
162: hr_utility.set_location(gv_package_name ||lv_procedure_name,20);
163:
164: /* CSV file name create is concatenation of static text ethnic_org_mig_ and
165: request id/payroll action id*/
166: lv_filename := 'ethnic_origin_mig_'||nvl(l_request_id,l_payroll_action_id)||'.csv';
165: request id/payroll action id*/
166: lv_filename := 'ethnic_origin_mig_'||nvl(l_request_id,l_payroll_action_id)||'.csv';
167: lv_file := UTL_FILE.FOPEN(lv_dir, lv_filename, 'a');
168:
169: hr_utility.set_location(gv_package_name ||lv_procedure_name,25);
170:
171: /* print the header in log file for only first record*/
172: IF gv_emp_count = 1 then
173: lv_line := 'Business Group,Employee Number,Employee Last Name,Employee First Name,Ethnic Origin, Additional Ethnic Origin,Migrated,Error/Warning,Message';
173: lv_line := 'Business Group,Employee Number,Employee Last Name,Employee First Name,Ethnic Origin, Additional Ethnic Origin,Migrated,Error/Warning,Message';
174: UTL_FILE.PUT_LINE(lv_file,lv_line);
175: END IF;
176:
177: hr_utility.set_location(gv_package_name ||lv_procedure_name,30);
178:
179: FOR lc_person_details IN csr_get_person_details(p_person_id)
180: LOOP
181: hr_utility.set_location(gv_package_name ||lv_procedure_name,35);
177: hr_utility.set_location(gv_package_name ||lv_procedure_name,30);
178:
179: FOR lc_person_details IN csr_get_person_details(p_person_id)
180: LOOP
181: hr_utility.set_location(gv_package_name ||lv_procedure_name,35);
182: l_hispanic := 'N';
183: l_ai_an := 'N';
184: l_asian := 'N';
185: l_black := 'N';
196: OPEN c_eit_exists(lc_person_details.person_id);
197: FETCH c_eit_exists INTO l_eit_exists_flag;
198: CLOSE c_eit_exists;
199:
200: hr_utility.set_location(gv_package_name ||lv_procedure_name,40);
201:
202: IF l_eit_exists_flag = 'N' THEN
203: hr_utility.set_location(gv_package_name ||lv_procedure_name,45);
204: IF lc_person_details.ethnic_origin = '1' THEN
199:
200: hr_utility.set_location(gv_package_name ||lv_procedure_name,40);
201:
202: IF l_eit_exists_flag = 'N' THEN
203: hr_utility.set_location(gv_package_name ||lv_procedure_name,45);
204: IF lc_person_details.ethnic_origin = '1' THEN
205: l_white := 'Y';
206: END IF;
207:
225: l_ai_an := 'Y';
226: END IF;
227:
228: IF lc_person_details.ethnic_origin = '13' THEN
229: hr_utility.set_location(gv_package_name ||lv_procedure_name,50);
230: l_tmr := 'Y';
231: IF lc_person_details.addl_ethnic_origin = '1' THEN
232: l_white := 'Y';
233: END IF;
246: IF lc_person_details.addl_ethnic_origin = '6' THEN
247: l_ai_an := 'Y';
248: END IF;
249: IF lc_person_details.addl_ethnic_origin IS NULL THEN
250: hr_utility.set_location(gv_package_name ||lv_procedure_name,55);
251: lv_warning := 'Ethnic Origin is Two Or More Race but Additional Ethnic Origin is Null';
252: END IF;
253: END IF;
254: hr_utility.set_location(gv_package_name ||lv_procedure_name,60);
250: hr_utility.set_location(gv_package_name ||lv_procedure_name,55);
251: lv_warning := 'Ethnic Origin is Two Or More Race but Additional Ethnic Origin is Null';
252: END IF;
253: END IF;
254: hr_utility.set_location(gv_package_name ||lv_procedure_name,60);
255:
256: lv_line := hr_general.decode_organization(lc_person_details.business_group_id)||','||lc_person_details.employee_number;
257: lv_line := lv_line||','||lc_person_details.last_name||','||lc_person_details.first_name||',';
258: lv_line := lv_line||hr_general.decode_lookup('US_ETHNIC_GROUP',lc_person_details.ethnic_origin);
256: lv_line := hr_general.decode_organization(lc_person_details.business_group_id)||','||lc_person_details.employee_number;
257: lv_line := lv_line||','||lc_person_details.last_name||','||lc_person_details.first_name||',';
258: lv_line := lv_line||hr_general.decode_lookup('US_ETHNIC_GROUP',lc_person_details.ethnic_origin);
259:
260: hr_utility.set_location(gv_package_name ||lv_procedure_name,65);
261: IF lc_person_details.ethnic_origin = '13' THEN
262: hr_utility.set_location(gv_package_name ||lv_procedure_name,70);
263: lv_line := lv_line||','||hr_general.decode_lookup('US_ETHNIC_GROUP',lc_person_details.addl_ethnic_origin)||',';
264: ELSE
258: lv_line := lv_line||hr_general.decode_lookup('US_ETHNIC_GROUP',lc_person_details.ethnic_origin);
259:
260: hr_utility.set_location(gv_package_name ||lv_procedure_name,65);
261: IF lc_person_details.ethnic_origin = '13' THEN
262: hr_utility.set_location(gv_package_name ||lv_procedure_name,70);
263: lv_line := lv_line||','||hr_general.decode_lookup('US_ETHNIC_GROUP',lc_person_details.addl_ethnic_origin)||',';
264: ELSE
265: hr_utility.set_location(gv_package_name ||lv_procedure_name,75);
266: lv_line := lv_line||','||',';
261: IF lc_person_details.ethnic_origin = '13' THEN
262: hr_utility.set_location(gv_package_name ||lv_procedure_name,70);
263: lv_line := lv_line||','||hr_general.decode_lookup('US_ETHNIC_GROUP',lc_person_details.addl_ethnic_origin)||',';
264: ELSE
265: hr_utility.set_location(gv_package_name ||lv_procedure_name,75);
266: lv_line := lv_line||','||',';
267: END IF;
268: l_object_version_number := NULL;
269: l_person_extra_info_id := NULL;
267: END IF;
268: l_object_version_number := NULL;
269: l_person_extra_info_id := NULL;
270:
271: hr_utility.set_location(gv_package_name ||lv_procedure_name,80);
272: BEGIN
273: hr_person_extra_info_api.create_person_extra_info
274: (p_person_id => lc_person_details.person_id,
275: p_information_type => 'US_ETHNIC_ORIGIN',
283: p_pei_information7 => l_tmr,
284: p_object_version_number => l_object_version_number,
285: p_validate => false,
286: p_person_extra_info_id => l_person_extra_info_id);
287: hr_utility.set_location(gv_package_name ||lv_procedure_name,85);
288: lv_line := lv_line||'Yes,';
289: IF lv_warning IS NULL THEN
290: hr_utility.set_location(gv_package_name ||lv_procedure_name,90);
291: lv_line := lv_line||',';
286: p_person_extra_info_id => l_person_extra_info_id);
287: hr_utility.set_location(gv_package_name ||lv_procedure_name,85);
288: lv_line := lv_line||'Yes,';
289: IF lv_warning IS NULL THEN
290: hr_utility.set_location(gv_package_name ||lv_procedure_name,90);
291: lv_line := lv_line||',';
292: ELSE
293: hr_utility.set_location(gv_package_name ||lv_procedure_name,95);
294: lv_line := lv_line||'Warning,'||lv_warning;
289: IF lv_warning IS NULL THEN
290: hr_utility.set_location(gv_package_name ||lv_procedure_name,90);
291: lv_line := lv_line||',';
292: ELSE
293: hr_utility.set_location(gv_package_name ||lv_procedure_name,95);
294: lv_line := lv_line||'Warning,'||lv_warning;
295: END IF;
296: EXCEPTION
297: WHEN OTHERS THEN
294: lv_line := lv_line||'Warning,'||lv_warning;
295: END IF;
296: EXCEPTION
297: WHEN OTHERS THEN
298: hr_utility.set_location(gv_package_name ||lv_procedure_name,100);
299: lv_line := lv_line||',No,Error,'||SQLCODE||'-'||SQLERRM;
300: UTL_FILE.PUT_LINE(lv_file,lv_line);
301: END;
302: ELSE
299: lv_line := lv_line||',No,Error,'||SQLCODE||'-'||SQLERRM;
300: UTL_FILE.PUT_LINE(lv_file,lv_line);
301: END;
302: ELSE
303: hr_utility.set_location(gv_package_name ||lv_procedure_name,105);
304: lv_line := hr_general.decode_organization(lc_person_details.business_group_id)||','||lc_person_details.employee_number||',';
305: lv_line := lv_line||lc_person_details.last_name||','||lc_person_details.first_name||',';
306: lv_line := lv_line||hr_general.decode_lookup('US_ETHNIC_GROUP',lc_person_details.ethnic_origin);
307: lv_line := lv_line||',,No,Error,Already Data exists in the US Ethnic Origin EIT';
306: lv_line := lv_line||hr_general.decode_lookup('US_ETHNIC_GROUP',lc_person_details.ethnic_origin);
307: lv_line := lv_line||',,No,Error,Already Data exists in the US Ethnic Origin EIT';
308: END IF;
309: UTL_FILE.PUT_LINE(lv_file,lv_line);
310: hr_utility.set_location(gv_package_name ||lv_procedure_name,110);
311: END LOOP;
312:
313: UTL_FILE.FCLOSE(lv_file);
314:
311: END LOOP;
312:
313: UTL_FILE.FCLOSE(lv_file);
314:
315: hr_utility.set_location('Leaving ' ||gv_package_name ||lv_procedure_name,115);
316: return;
317:
318: EXCEPTION
319:
317:
318: EXCEPTION
319:
320: WHEN OTHERS THEN
321: hr_utility.set_location('Leaving ' ||gv_package_name ||lv_procedure_name,120);
322: hr_utility.trace('error:'||SQLCODE||'-'||SQLERRM);
323: hr_utility.raise_error;
324: END upgrade_ethnic_origin;
325:
318: EXCEPTION
319:
320: WHEN OTHERS THEN
321: hr_utility.set_location('Leaving ' ||gv_package_name ||lv_procedure_name,120);
322: hr_utility.trace('error:'||SQLCODE||'-'||SQLERRM);
323: hr_utility.raise_error;
324: END upgrade_ethnic_origin;
325:
326: /*****************************************************************************
319:
320: WHEN OTHERS THEN
321: hr_utility.set_location('Leaving ' ||gv_package_name ||lv_procedure_name,120);
322: hr_utility.trace('error:'||SQLCODE||'-'||SQLERRM);
323: hr_utility.raise_error;
324: END upgrade_ethnic_origin;
325:
326: /*****************************************************************************
327: Name : qual_pers_upg
350: BEGIN
351:
352: lv_procedure_name := 'qual_pers_upg';
353:
354: hr_utility.set_location('Entering ' || gv_package_name ||lv_procedure_name,5);
355:
356:
357: OPEN c_get_ethnic_origin(p_object_id);
358: FETCH c_get_ethnic_origin INTO l_upg_flag;
365:
366: p_qualified := l_qualifier;
367:
368: IF l_qualifier = 'Y' THEN
369: hr_utility.trace('Person_id ' || p_object_id || ' qualified');
370: hr_utility.set_location('Entering ' || gv_package_name ||lv_procedure_name,10);
371: ELSE
372: hr_utility.trace('Person_id ' || p_object_id || ' not qualified');
373: hr_utility.set_location('Entering ' || gv_package_name ||lv_procedure_name,15);
366: p_qualified := l_qualifier;
367:
368: IF l_qualifier = 'Y' THEN
369: hr_utility.trace('Person_id ' || p_object_id || ' qualified');
370: hr_utility.set_location('Entering ' || gv_package_name ||lv_procedure_name,10);
371: ELSE
372: hr_utility.trace('Person_id ' || p_object_id || ' not qualified');
373: hr_utility.set_location('Entering ' || gv_package_name ||lv_procedure_name,15);
374: END IF;
368: IF l_qualifier = 'Y' THEN
369: hr_utility.trace('Person_id ' || p_object_id || ' qualified');
370: hr_utility.set_location('Entering ' || gv_package_name ||lv_procedure_name,10);
371: ELSE
372: hr_utility.trace('Person_id ' || p_object_id || ' not qualified');
373: hr_utility.set_location('Entering ' || gv_package_name ||lv_procedure_name,15);
374: END IF;
375:
376: hr_utility.set_location('Leaving ' || gv_package_name ||lv_procedure_name,20);
369: hr_utility.trace('Person_id ' || p_object_id || ' qualified');
370: hr_utility.set_location('Entering ' || gv_package_name ||lv_procedure_name,10);
371: ELSE
372: hr_utility.trace('Person_id ' || p_object_id || ' not qualified');
373: hr_utility.set_location('Entering ' || gv_package_name ||lv_procedure_name,15);
374: END IF;
375:
376: hr_utility.set_location('Leaving ' || gv_package_name ||lv_procedure_name,20);
377:
372: hr_utility.trace('Person_id ' || p_object_id || ' not qualified');
373: hr_utility.set_location('Entering ' || gv_package_name ||lv_procedure_name,15);
374: END IF;
375:
376: hr_utility.set_location('Leaving ' || gv_package_name ||lv_procedure_name,20);
377:
378: END qual_pers_upg;
379:
380: PROCEDURE irc_upgrade_ethnic_origin (p_person_id IN NUMBER,
427:
428: BEGIN
429: lv_procedure_name := 'irc_upgrade_ethnic_origin';
430:
431: hr_utility.set_location('Entering ' || gv_package_name ||lv_procedure_name,5);
432:
433: FOR lc_person_details IN csr_get_person_details(p_person_id)
434: LOOP
435: hr_utility.set_location(gv_package_name ||lv_procedure_name,10);
431: hr_utility.set_location('Entering ' || gv_package_name ||lv_procedure_name,5);
432:
433: FOR lc_person_details IN csr_get_person_details(p_person_id)
434: LOOP
435: hr_utility.set_location(gv_package_name ||lv_procedure_name,10);
436: l_hispanic := 'N';
437: l_ai_an := 'N';
438: l_asian := 'N';
439: l_black := 'N';
445: /* check if the data at the person level EIT "US_ETHNIC_ORIGIN" is
446: already migrated or created manaully. If EIT data exists and
447: parameter p_eit_override_flag is 'Y' then we delete the existing
448: EIT data.*/
449: hr_utility.set_location(gv_package_name ||lv_procedure_name,15);
450: OPEN c_del_extra_info(lc_person_details.person_id);
451: FETCH c_del_extra_info INTO l_del_pei_id,l_pei_ovn;
452: IF c_del_extra_info%NOTFOUND THEN
453: hr_utility.set_location(gv_package_name ||lv_procedure_name,20);
449: hr_utility.set_location(gv_package_name ||lv_procedure_name,15);
450: OPEN c_del_extra_info(lc_person_details.person_id);
451: FETCH c_del_extra_info INTO l_del_pei_id,l_pei_ovn;
452: IF c_del_extra_info%NOTFOUND THEN
453: hr_utility.set_location(gv_package_name ||lv_procedure_name,20);
454: l_del_pei_id := 0;
455: l_eit_exists_flag := 'N';
456: ELSE
457: hr_utility.set_location(gv_package_name ||lv_procedure_name,25);
453: hr_utility.set_location(gv_package_name ||lv_procedure_name,20);
454: l_del_pei_id := 0;
455: l_eit_exists_flag := 'N';
456: ELSE
457: hr_utility.set_location(gv_package_name ||lv_procedure_name,25);
458: l_eit_exists_flag := 'Y';
459: END IF;
460: CLOSE c_del_extra_info;
461:
458: l_eit_exists_flag := 'Y';
459: END IF;
460: CLOSE c_del_extra_info;
461:
462: hr_utility.set_location(gv_package_name ||lv_procedure_name,30);
463:
464: IF ((l_eit_exists_flag = 'Y') AND (upper(substr(p_eit_override_flag,1,1)) = 'Y')) THEN
465: hr_utility.set_location(gv_package_name ||lv_procedure_name,35);
466: BEGIN
461:
462: hr_utility.set_location(gv_package_name ||lv_procedure_name,30);
463:
464: IF ((l_eit_exists_flag = 'Y') AND (upper(substr(p_eit_override_flag,1,1)) = 'Y')) THEN
465: hr_utility.set_location(gv_package_name ||lv_procedure_name,35);
466: BEGIN
467: hr_person_extra_info_api.delete_person_extra_info
468: (p_validate => FALSE
469: ,p_person_extra_info_id => l_del_pei_id
472: l_eit_exists_flag := 'N';
473: EXCEPTION
474: WHEN OTHERS THEN
475: l_eit_exists_flag := 'Y';
476: hr_utility.set_location('Delete Exception ' ||gv_package_name ||lv_procedure_name,40);
477: hr_utility.trace('error:'||SQLCODE||'-'||SQLERRM);
478: hr_utility.raise_error;
479: END;
480: END IF;
473: EXCEPTION
474: WHEN OTHERS THEN
475: l_eit_exists_flag := 'Y';
476: hr_utility.set_location('Delete Exception ' ||gv_package_name ||lv_procedure_name,40);
477: hr_utility.trace('error:'||SQLCODE||'-'||SQLERRM);
478: hr_utility.raise_error;
479: END;
480: END IF;
481:
474: WHEN OTHERS THEN
475: l_eit_exists_flag := 'Y';
476: hr_utility.set_location('Delete Exception ' ||gv_package_name ||lv_procedure_name,40);
477: hr_utility.trace('error:'||SQLCODE||'-'||SQLERRM);
478: hr_utility.raise_error;
479: END;
480: END IF;
481:
482: hr_utility.set_location(gv_package_name ||lv_procedure_name,45);
478: hr_utility.raise_error;
479: END;
480: END IF;
481:
482: hr_utility.set_location(gv_package_name ||lv_procedure_name,45);
483:
484: /* Create the new EIT data.*/
485: IF l_eit_exists_flag = 'N' THEN
486: hr_utility.set_location(gv_package_name ||lv_procedure_name,50);
482: hr_utility.set_location(gv_package_name ||lv_procedure_name,45);
483:
484: /* Create the new EIT data.*/
485: IF l_eit_exists_flag = 'N' THEN
486: hr_utility.set_location(gv_package_name ||lv_procedure_name,50);
487: IF lc_person_details.ethnic_origin = '1' THEN
488: l_white := 'Y';
489: END IF;
490:
508: l_ai_an := 'Y';
509: END IF;
510:
511: IF lc_person_details.ethnic_origin = '13' THEN
512: hr_utility.set_location(gv_package_name ||lv_procedure_name,55);
513: l_tmr := 'Y';
514: IF lc_person_details.addl_ethnic_origin = '1' THEN
515: l_white := 'Y';
516: END IF;
529: IF lc_person_details.addl_ethnic_origin = '6' THEN
530: l_ai_an := 'Y';
531: END IF;
532: END IF;
533: hr_utility.set_location(gv_package_name ||lv_procedure_name,60);
534:
535: l_object_version_number := NULL;
536: l_person_extra_info_id := NULL;
537:
534:
535: l_object_version_number := NULL;
536: l_person_extra_info_id := NULL;
537:
538: hr_utility.set_location(gv_package_name ||lv_procedure_name,65);
539: BEGIN
540: hr_person_extra_info_api.create_person_extra_info
541: (p_person_id => lc_person_details.person_id,
542: p_information_type => 'US_ETHNIC_ORIGIN',
550: p_pei_information7 => l_tmr,
551: p_object_version_number => l_object_version_number,
552: p_validate => false,
553: p_person_extra_info_id => l_person_extra_info_id);
554: hr_utility.set_location(gv_package_name ||lv_procedure_name,70);
555: EXCEPTION
556: WHEN OTHERS THEN
557: hr_utility.set_location(gv_package_name ||lv_procedure_name,75);
558: hr_utility.trace('error in creation:'||SQLCODE||'-'||SQLERRM);
553: p_person_extra_info_id => l_person_extra_info_id);
554: hr_utility.set_location(gv_package_name ||lv_procedure_name,70);
555: EXCEPTION
556: WHEN OTHERS THEN
557: hr_utility.set_location(gv_package_name ||lv_procedure_name,75);
558: hr_utility.trace('error in creation:'||SQLCODE||'-'||SQLERRM);
559: hr_utility.raise_error;
560: END;
561: END IF;
554: hr_utility.set_location(gv_package_name ||lv_procedure_name,70);
555: EXCEPTION
556: WHEN OTHERS THEN
557: hr_utility.set_location(gv_package_name ||lv_procedure_name,75);
558: hr_utility.trace('error in creation:'||SQLCODE||'-'||SQLERRM);
559: hr_utility.raise_error;
560: END;
561: END IF;
562: END LOOP;
555: EXCEPTION
556: WHEN OTHERS THEN
557: hr_utility.set_location(gv_package_name ||lv_procedure_name,75);
558: hr_utility.trace('error in creation:'||SQLCODE||'-'||SQLERRM);
559: hr_utility.raise_error;
560: END;
561: END IF;
562: END LOOP;
563:
560: END;
561: END IF;
562: END LOOP;
563:
564: hr_utility.set_location('Leaving ' ||gv_package_name ||lv_procedure_name,80);
565: return;
566:
567: EXCEPTION
568: WHEN OTHERS THEN
565: return;
566:
567: EXCEPTION
568: WHEN OTHERS THEN
569: hr_utility.set_location('Leaving ' ||gv_package_name ||lv_procedure_name,85);
570: hr_utility.trace('error:'||SQLCODE||'-'||SQLERRM);
571: hr_utility.raise_error;
572: END irc_upgrade_ethnic_origin;
573:
566:
567: EXCEPTION
568: WHEN OTHERS THEN
569: hr_utility.set_location('Leaving ' ||gv_package_name ||lv_procedure_name,85);
570: hr_utility.trace('error:'||SQLCODE||'-'||SQLERRM);
571: hr_utility.raise_error;
572: END irc_upgrade_ethnic_origin;
573:
574: END per_us_eth_orig_mig_pkg;
567: EXCEPTION
568: WHEN OTHERS THEN
569: hr_utility.set_location('Leaving ' ||gv_package_name ||lv_procedure_name,85);
570: hr_utility.trace('error:'||SQLCODE||'-'||SQLERRM);
571: hr_utility.raise_error;
572: END irc_upgrade_ethnic_origin;
573:
574: END per_us_eth_orig_mig_pkg;