230: BEGIN
231:
232: lv_procedure_name := '.load_gre';
233:
234: hr_utility.trace('Entering '|| gv_package || lv_procedure_name);
235:
236: hr_utility.trace ('parameters ...');
237: hr_utility.trace ('p_business_group_id = '||p_business_group_id);
238: hr_utility.trace ('p_le_id = '||p_le_id);
232: lv_procedure_name := '.load_gre';
233:
234: hr_utility.trace('Entering '|| gv_package || lv_procedure_name);
235:
236: hr_utility.trace ('parameters ...');
237: hr_utility.trace ('p_business_group_id = '||p_business_group_id);
238: hr_utility.trace ('p_le_id = '||p_le_id);
239: hr_utility.trace ('p_effective_date = '||p_effective_date);
240:
233:
234: hr_utility.trace('Entering '|| gv_package || lv_procedure_name);
235:
236: hr_utility.trace ('parameters ...');
237: hr_utility.trace ('p_business_group_id = '||p_business_group_id);
238: hr_utility.trace ('p_le_id = '||p_le_id);
239: hr_utility.trace ('p_effective_date = '||p_effective_date);
240:
241: g_gre_tab.delete();
234: hr_utility.trace('Entering '|| gv_package || lv_procedure_name);
235:
236: hr_utility.trace ('parameters ...');
237: hr_utility.trace ('p_business_group_id = '||p_business_group_id);
238: hr_utility.trace ('p_le_id = '||p_le_id);
239: hr_utility.trace ('p_effective_date = '||p_effective_date);
240:
241: g_gre_tab.delete();
242: OPEN csr_get_gres;
235:
236: hr_utility.trace ('parameters ...');
237: hr_utility.trace ('p_business_group_id = '||p_business_group_id);
238: hr_utility.trace ('p_le_id = '||p_le_id);
239: hr_utility.trace ('p_effective_date = '||p_effective_date);
240:
241: g_gre_tab.delete();
242: OPEN csr_get_gres;
243: LOOP
247: END LOOP;
248: CLOSE csr_get_gres;
249:
250: IF g_gre_tab.count() > 0 THEN
251: hr_utility.trace('List of GREs ...');
252: FOR cntr_gre IN g_gre_tab.first()..g_gre_tab.last() LOOP
253: hr_utility.trace(g_gre_tab(cntr_gre));
254: END LOOP;
255: ELSE
249:
250: IF g_gre_tab.count() > 0 THEN
251: hr_utility.trace('List of GREs ...');
252: FOR cntr_gre IN g_gre_tab.first()..g_gre_tab.last() LOOP
253: hr_utility.trace(g_gre_tab(cntr_gre));
254: END LOOP;
255: ELSE
256: hr_utility.trace('No GREs found.');
257: END IF;
252: FOR cntr_gre IN g_gre_tab.first()..g_gre_tab.last() LOOP
253: hr_utility.trace(g_gre_tab(cntr_gre));
254: END LOOP;
255: ELSE
256: hr_utility.trace('No GREs found.');
257: END IF;
258:
259: hr_utility.trace('Leaving '|| gv_package || lv_procedure_name);
260: END load_gre;
255: ELSE
256: hr_utility.trace('No GREs found.');
257: END IF;
258:
259: hr_utility.trace('Leaving '|| gv_package || lv_procedure_name);
260: END load_gre;
261:
262: --------------------------------------------------------------------------
263: -- --
278: lv_procedure_name VARCHAR2(100);
279:
280: BEGIN
281: lv_procedure_name := '.gre_exists';
282: hr_utility.trace('Entering '|| gv_package || lv_procedure_name);
283: hr_utility.trace('p_gre_id = ' || p_gre_id);
284:
285: IF g_gre_tab.count() <> 0 THEN
286: FOR cntr_gre IN g_gre_tab.first()..g_gre_tab.last() LOOP
279:
280: BEGIN
281: lv_procedure_name := '.gre_exists';
282: hr_utility.trace('Entering '|| gv_package || lv_procedure_name);
283: hr_utility.trace('p_gre_id = ' || p_gre_id);
284:
285: IF g_gre_tab.count() <> 0 THEN
286: FOR cntr_gre IN g_gre_tab.first()..g_gre_tab.last() LOOP
287: IF g_gre_tab (cntr_gre) = p_gre_id THEN
284:
285: IF g_gre_tab.count() <> 0 THEN
286: FOR cntr_gre IN g_gre_tab.first()..g_gre_tab.last() LOOP
287: IF g_gre_tab (cntr_gre) = p_gre_id THEN
288: hr_utility.trace ('GRE exists');
289: hr_utility.trace('Leaving '|| gv_package || lv_procedure_name);
290: RETURN 1;
291: END IF;
292: END LOOP;
285: IF g_gre_tab.count() <> 0 THEN
286: FOR cntr_gre IN g_gre_tab.first()..g_gre_tab.last() LOOP
287: IF g_gre_tab (cntr_gre) = p_gre_id THEN
288: hr_utility.trace ('GRE exists');
289: hr_utility.trace('Leaving '|| gv_package || lv_procedure_name);
290: RETURN 1;
291: END IF;
292: END LOOP;
293: END IF;
291: END IF;
292: END LOOP;
293: END IF;
294:
295: hr_utility.trace ('GRE does not exist');
296: hr_utility.trace('Leaving '|| gv_package || lv_procedure_name);
297: RETURN 0;
298: END gre_exists;
299:
292: END LOOP;
293: END IF;
294:
295: hr_utility.trace ('GRE does not exist');
296: hr_utility.trace('Leaving '|| gv_package || lv_procedure_name);
297: RETURN 0;
298: END gre_exists;
299:
300: /******************************************************************************
336:
337: BEGIN
338: lv_procedure_name := '.get_payroll_action_info';
339:
340: hr_utility.set_location(gv_package || lv_procedure_name, 10);
341: ln_step := 1;
342: OPEN c_payroll_action_info(p_payroll_action_id);
343: FETCH c_payroll_action_info INTO ld_end_date,
344: ln_business_group_id,
345: ln_legal_er_id,
346: ln_asg_set_id;
347: CLOSE c_payroll_action_info;
348:
349: hr_utility.set_location(gv_package || lv_procedure_name, 30);
350:
351: p_end_date := ld_end_date;
352: p_business_group_id := ln_business_group_id;
353: p_legal_employer_id := ln_legal_er_id;
352: p_business_group_id := ln_business_group_id;
353: p_legal_employer_id := ln_legal_er_id;
354: p_asg_set_id := ln_asg_set_id;
355:
356: hr_utility.set_location(gv_package || lv_procedure_name, 50);
357: ln_step := 2;
358:
359: EXCEPTION
360: WHEN OTHERS THEN
360: WHEN OTHERS THEN
361: lv_error_message := 'Error at step ' || ln_step || ' IN ' ||
362: gv_package || lv_procedure_name;
363:
364: hr_utility.trace(lv_error_message || '-' || SQLERRM);
365:
366: lv_error_message :=
367: pay_emp_action_arch.set_error_message(lv_error_message);
368:
365:
366: lv_error_message :=
367: pay_emp_action_arch.set_error_message(lv_error_message);
368:
369: hr_utility.set_message(801,'HR_ELE_ENTRY_FORMULA_HINT');
370: hr_utility.set_message_token('FORMULA_TEXT', lv_error_message);
371: hr_utility.raise_error;
372:
373: END get_payroll_action_info;
366: lv_error_message :=
367: pay_emp_action_arch.set_error_message(lv_error_message);
368:
369: hr_utility.set_message(801,'HR_ELE_ENTRY_FORMULA_HINT');
370: hr_utility.set_message_token('FORMULA_TEXT', lv_error_message);
371: hr_utility.raise_error;
372:
373: END get_payroll_action_info;
374:
367: pay_emp_action_arch.set_error_message(lv_error_message);
368:
369: hr_utility.set_message(801,'HR_ELE_ENTRY_FORMULA_HINT');
370: hr_utility.set_message_token('FORMULA_TEXT', lv_error_message);
371: hr_utility.raise_error;
372:
373: END get_payroll_action_info;
374:
375: /************************************************************
458:
459: BEGIN
460: --
461: lv_procedure_name := '.populate_balances';
462: hr_utility.trace('Entering ' || gv_package || lv_procedure_name);
463:
464: pay_balance_pkg.set_context('TAX_UNIT_ID', p_tax_unit_id);
465:
466: -- Create the Archive DBI routes if they don't exist
464: pay_balance_pkg.set_context('TAX_UNIT_ID', p_tax_unit_id);
465:
466: -- Create the Archive DBI routes if they don't exist
467: --
468: hr_utility.set_location(gv_package || lv_procedure_name, 10);
469: pay_mx_archive_dbi_pkg.create_archive_routes;
470:
471: IF p_prev_archiver_exists = 'Y' THEN
472:
469: pay_mx_archive_dbi_pkg.create_archive_routes;
470:
471: IF p_prev_archiver_exists = 'Y' THEN
472:
473: hr_utility.set_location(gv_package || lv_procedure_name, 20);
474: OPEN c_get_PTU_balances;
475:
476: ELSE
477:
474: OPEN c_get_PTU_balances;
475:
476: ELSE
477:
478: hr_utility.set_location(gv_package || lv_procedure_name, 30);
479: OPEN c_get_balances;
480:
481: END IF;
482:
483: LOOP
484:
485: IF p_prev_archiver_exists = 'Y' THEN
486:
487: hr_utility.set_location(gv_package || lv_procedure_name, 40);
488: FETCH c_get_PTU_balances INTO lv_live_user_entity_name,
489: ln_value;
490: EXIT WHEN c_get_PTU_balances%NOTFOUND;
491:
491:
492:
493: ELSE
494:
495: hr_utility.set_location(gv_package || lv_procedure_name, 50);
496: FETCH c_get_balances INTO lv_live_user_entity_name,
497: ln_value;
498: EXIT WHEN c_get_balances%NOTFOUND;
499:
500: END IF;
501:
502: -- Create the Archive DBI, if it doesn't exist
503: --
504: hr_utility.set_location(gv_package || lv_procedure_name, 60);
505: lv_arch_user_entity_name := 'A_' || lv_live_user_entity_name;
506: pay_mx_archive_dbi_pkg.create_archive_dbi(lv_arch_user_entity_name);
507:
508: hr_utility.set_location(gv_package || lv_procedure_name, 70);
504: hr_utility.set_location(gv_package || lv_procedure_name, 60);
505: lv_arch_user_entity_name := 'A_' || lv_live_user_entity_name;
506: pay_mx_archive_dbi_pkg.create_archive_dbi(lv_arch_user_entity_name);
507:
508: hr_utility.set_location(gv_package || lv_procedure_name, 70);
509: OPEN c_get_arch_ue_id(lv_arch_user_entity_name);
510: FETCH c_get_arch_ue_id INTO ln_arch_user_entity_id;
511: CLOSE c_get_arch_ue_id;
512:
509: OPEN c_get_arch_ue_id(lv_arch_user_entity_name);
510: FETCH c_get_arch_ue_id INTO ln_arch_user_entity_id;
511: CLOSE c_get_arch_ue_id;
512:
513: hr_utility.set_location(gv_package || lv_procedure_name, 80);
514: hr_utility.trace('Archive User Entity ID: '||
515: ln_arch_user_entity_id);
516: hr_utility.trace('Value: ' || ln_value);
517:
510: FETCH c_get_arch_ue_id INTO ln_arch_user_entity_id;
511: CLOSE c_get_arch_ue_id;
512:
513: hr_utility.set_location(gv_package || lv_procedure_name, 80);
514: hr_utility.trace('Archive User Entity ID: '||
515: ln_arch_user_entity_id);
516: hr_utility.trace('Value: ' || ln_value);
517:
518: IF p_prev_archiver_exists = 'Y' AND
512:
513: hr_utility.set_location(gv_package || lv_procedure_name, 80);
514: hr_utility.trace('Archive User Entity ID: '||
515: ln_arch_user_entity_id);
516: hr_utility.trace('Value: ' || ln_value);
517:
518: IF p_prev_archiver_exists = 'Y' AND
519: lv_live_user_entity_name = 'ISR_WITHHELD_PER_PDS_GRE_YTD' THEN
520:
523: ** ISR Withheld YTD - ISR Withheld of previous archived value
524: ** Whenevere there is previous archiver is run.
525: **************************************************************/
526: begin
527: hr_utility.set_location(gv_package || lv_procedure_name, 85);
528: SELECT fai.value
529: INTO ln_prev_isr_whld_value
530: FROM ff_archive_items fai
531: WHERE fai.context1 = gn_prev_asg_act_id
529: INTO ln_prev_isr_whld_value
530: FROM ff_archive_items fai
531: WHERE fai.context1 = gn_prev_asg_act_id
532: AND fai.user_entity_id = ln_arch_user_entity_id;
533: hr_utility.set_location(gv_package || lv_procedure_name, 87);
534: exception
535: when no_data_found then
536: ln_prev_isr_whld_value := 0;
537: end;
566: p_context1 => p_tax_unit_id);
567: end if;
568: END LOOP;
569:
570: hr_utility.set_location(gv_package || lv_procedure_name, 90);
571:
572: IF p_prev_archiver_exists = 'Y' THEN
573: close c_get_PTU_balances;
574: ELSE
574: ELSE
575: close c_get_balances;
576: END IF;
577:
578: hr_utility.trace('Leaving ' || gv_package || lv_procedure_name);
579: --
580: END populate_balances;
581:
582: /******************************************************************
603:
604: BEGIN
605: lv_procedure_name := '.range_code';
606:
607: hr_utility.trace('Entering ' || gv_package || lv_procedure_name);
608: hr_utility.set_location(gv_package || lv_procedure_name, 10);
609: get_payroll_action_info(p_payroll_action_id => p_payroll_action_id
610: ,p_end_date => ld_end_date
611: ,p_business_group_id => ln_business_group_id
604: BEGIN
605: lv_procedure_name := '.range_code';
606:
607: hr_utility.trace('Entering ' || gv_package || lv_procedure_name);
608: hr_utility.set_location(gv_package || lv_procedure_name, 10);
609: get_payroll_action_info(p_payroll_action_id => p_payroll_action_id
610: ,p_end_date => ld_end_date
611: ,p_business_group_id => ln_business_group_id
612: ,p_legal_employer_id => ln_legal_employer_id
610: ,p_end_date => ld_end_date
611: ,p_business_group_id => ln_business_group_id
612: ,p_legal_employer_id => ln_legal_employer_id
613: ,p_asg_set_id => ln_asg_set_id);
614: hr_utility.set_location(gv_package || lv_procedure_name, 20);
615:
616: load_gre (ln_business_group_id,
617: ln_legal_employer_id,
618: ld_end_date);
675: ORDER BY paf.person_id';
676:
677: END IF; -- ln_asg_set_id is null
678:
679: hr_utility.set_location(gv_package || lv_procedure_name, 30);
680: p_sqlstr := lv_sql_string;
681: hr_utility.trace ('SQL string :' ||p_sqlstr);
682: hr_utility.set_location(gv_package || lv_procedure_name, 50);
683: hr_utility.trace('Leaving ' || gv_package || lv_procedure_name);
677: END IF; -- ln_asg_set_id is null
678:
679: hr_utility.set_location(gv_package || lv_procedure_name, 30);
680: p_sqlstr := lv_sql_string;
681: hr_utility.trace ('SQL string :' ||p_sqlstr);
682: hr_utility.set_location(gv_package || lv_procedure_name, 50);
683: hr_utility.trace('Leaving ' || gv_package || lv_procedure_name);
684:
685: END range_code;
678:
679: hr_utility.set_location(gv_package || lv_procedure_name, 30);
680: p_sqlstr := lv_sql_string;
681: hr_utility.trace ('SQL string :' ||p_sqlstr);
682: hr_utility.set_location(gv_package || lv_procedure_name, 50);
683: hr_utility.trace('Leaving ' || gv_package || lv_procedure_name);
684:
685: END range_code;
686:
679: hr_utility.set_location(gv_package || lv_procedure_name, 30);
680: p_sqlstr := lv_sql_string;
681: hr_utility.trace ('SQL string :' ||p_sqlstr);
682: hr_utility.set_location(gv_package || lv_procedure_name, 50);
683: hr_utility.trace('Leaving ' || gv_package || lv_procedure_name);
684:
685: END range_code;
686:
687: /************************************************************
845: ld_prev_arch_eff_date DATE;
846:
847: BEGIN
848: lv_procedure_name := '.assignment_action_code';
849: hr_utility.trace('Entering ' || gv_package || lv_procedure_name);
850:
851: ln_pos_id := -1;
852: ln_prev_pos_id := -1;
853: lv_excl_flag := '-1';
852: ln_prev_pos_id := -1;
853: lv_excl_flag := '-1';
854: lv_run_exists := 'N';
855:
856: hr_utility.trace('p_payroll_action_id = '|| p_payroll_action_id);
857: hr_utility.trace('p_start_person_id = '|| p_start_person_id);
858: hr_utility.trace('p_end_person_id = '|| p_end_person_id);
859: hr_utility.trace('p_chunk = '|| p_chunk);
860:
853: lv_excl_flag := '-1';
854: lv_run_exists := 'N';
855:
856: hr_utility.trace('p_payroll_action_id = '|| p_payroll_action_id);
857: hr_utility.trace('p_start_person_id = '|| p_start_person_id);
858: hr_utility.trace('p_end_person_id = '|| p_end_person_id);
859: hr_utility.trace('p_chunk = '|| p_chunk);
860:
861: ln_step := 1;
854: lv_run_exists := 'N';
855:
856: hr_utility.trace('p_payroll_action_id = '|| p_payroll_action_id);
857: hr_utility.trace('p_start_person_id = '|| p_start_person_id);
858: hr_utility.trace('p_end_person_id = '|| p_end_person_id);
859: hr_utility.trace('p_chunk = '|| p_chunk);
860:
861: ln_step := 1;
862: hr_utility.set_location(gv_package || lv_procedure_name, 10);
855:
856: hr_utility.trace('p_payroll_action_id = '|| p_payroll_action_id);
857: hr_utility.trace('p_start_person_id = '|| p_start_person_id);
858: hr_utility.trace('p_end_person_id = '|| p_end_person_id);
859: hr_utility.trace('p_chunk = '|| p_chunk);
860:
861: ln_step := 1;
862: hr_utility.set_location(gv_package || lv_procedure_name, 10);
863:
858: hr_utility.trace('p_end_person_id = '|| p_end_person_id);
859: hr_utility.trace('p_chunk = '|| p_chunk);
860:
861: ln_step := 1;
862: hr_utility.set_location(gv_package || lv_procedure_name, 10);
863:
864: get_payroll_action_info(p_payroll_action_id => p_payroll_action_id
865: ,p_end_date => ld_end_date
866: ,p_business_group_id => ln_business_group_id
866: ,p_business_group_id => ln_business_group_id
867: ,p_legal_employer_id => ln_legal_employer_id
868: ,p_asg_set_id => ln_asg_set_id);
869:
870: hr_utility.set_location(gv_package || lv_procedure_name, 20);
871: hr_utility.trace('ld_end_date: ' || ld_end_date);
872: hr_utility.trace('ln_business_group_id: ' || ln_business_group_id);
873: hr_utility.trace('ln_legal_employer_id: ' || ln_legal_employer_id);
874: hr_utility.trace('ln_asg_set_id: ' || ln_asg_set_id);
867: ,p_legal_employer_id => ln_legal_employer_id
868: ,p_asg_set_id => ln_asg_set_id);
869:
870: hr_utility.set_location(gv_package || lv_procedure_name, 20);
871: hr_utility.trace('ld_end_date: ' || ld_end_date);
872: hr_utility.trace('ln_business_group_id: ' || ln_business_group_id);
873: hr_utility.trace('ln_legal_employer_id: ' || ln_legal_employer_id);
874: hr_utility.trace('ln_asg_set_id: ' || ln_asg_set_id);
875:
868: ,p_asg_set_id => ln_asg_set_id);
869:
870: hr_utility.set_location(gv_package || lv_procedure_name, 20);
871: hr_utility.trace('ld_end_date: ' || ld_end_date);
872: hr_utility.trace('ln_business_group_id: ' || ln_business_group_id);
873: hr_utility.trace('ln_legal_employer_id: ' || ln_legal_employer_id);
874: hr_utility.trace('ln_asg_set_id: ' || ln_asg_set_id);
875:
876: ld_start_date := TRUNC(ld_end_date, 'Y');
869:
870: hr_utility.set_location(gv_package || lv_procedure_name, 20);
871: hr_utility.trace('ld_end_date: ' || ld_end_date);
872: hr_utility.trace('ln_business_group_id: ' || ln_business_group_id);
873: hr_utility.trace('ln_legal_employer_id: ' || ln_legal_employer_id);
874: hr_utility.trace('ln_asg_set_id: ' || ln_asg_set_id);
875:
876: ld_start_date := TRUNC(ld_end_date, 'Y');
877:
870: hr_utility.set_location(gv_package || lv_procedure_name, 20);
871: hr_utility.trace('ld_end_date: ' || ld_end_date);
872: hr_utility.trace('ln_business_group_id: ' || ln_business_group_id);
873: hr_utility.trace('ln_legal_employer_id: ' || ln_legal_employer_id);
874: hr_utility.trace('ln_asg_set_id: ' || ln_asg_set_id);
875:
876: ld_start_date := TRUNC(ld_end_date, 'Y');
877:
878: hr_utility.trace('ld_start_date: ' || ld_start_date);
874: hr_utility.trace('ln_asg_set_id: ' || ln_asg_set_id);
875:
876: ld_start_date := TRUNC(ld_end_date, 'Y');
877:
878: hr_utility.trace('ld_start_date: ' || ld_start_date);
879:
880: IF g_gre_tab.count() = 0 THEN
881:
882: hr_utility.set_location(gv_package || lv_procedure_name, 30);
878: hr_utility.trace('ld_start_date: ' || ld_start_date);
879:
880: IF g_gre_tab.count() = 0 THEN
881:
882: hr_utility.set_location(gv_package || lv_procedure_name, 30);
883:
884: load_gre (ln_business_group_id,
885: ln_legal_employer_id,
886: ld_end_date);
893: ,p_report_category => 'ARCHIVE');
894:
895: FOR cntr_gre IN g_gre_tab.first()..g_gre_tab.last() LOOP
896: IF lb_range_person THEN
897: hr_utility.set_location(gv_package || lv_procedure_name, 40);
898:
899: OPEN c_get_emp_asg_range(g_gre_tab(cntr_gre),
900: ld_start_date,
901: ld_end_date);
899: OPEN c_get_emp_asg_range(g_gre_tab(cntr_gre),
900: ld_start_date,
901: ld_end_date);
902: ELSE
903: hr_utility.set_location(gv_package || lv_procedure_name, 50);
904:
905: OPEN c_get_emp_asg (g_gre_tab(cntr_gre),
906: ln_business_group_id,
907: ld_start_date,
910:
911: LOOP
912: IF lb_range_person THEN
913:
914: hr_utility.trace('lb_range_person');
915:
916: FETCH c_get_emp_asg_range INTO ln_assignment_id,
917: ln_person_id,
918: ln_pos_id;
923: ln_pos_id;
924: EXIT WHEN c_get_emp_asg%NOTFOUND;
925: END IF;
926:
927: hr_utility.trace('Previous period of service = ' || ln_prev_pos_id);
928: hr_utility.trace('Current period of service = ' || ln_pos_id);
929: hr_utility.trace('Person ID= ' || ln_person_id);
930: hr_utility.trace('Assignment ID= ' || ln_assignment_id);
931:
924: EXIT WHEN c_get_emp_asg%NOTFOUND;
925: END IF;
926:
927: hr_utility.trace('Previous period of service = ' || ln_prev_pos_id);
928: hr_utility.trace('Current period of service = ' || ln_pos_id);
929: hr_utility.trace('Person ID= ' || ln_person_id);
930: hr_utility.trace('Assignment ID= ' || ln_assignment_id);
931:
932: IF ln_pos_id <> ln_prev_pos_id THEN
925: END IF;
926:
927: hr_utility.trace('Previous period of service = ' || ln_prev_pos_id);
928: hr_utility.trace('Current period of service = ' || ln_pos_id);
929: hr_utility.trace('Person ID= ' || ln_person_id);
930: hr_utility.trace('Assignment ID= ' || ln_assignment_id);
931:
932: IF ln_pos_id <> ln_prev_pos_id THEN
933:
926:
927: hr_utility.trace('Previous period of service = ' || ln_prev_pos_id);
928: hr_utility.trace('Current period of service = ' || ln_pos_id);
929: hr_utility.trace('Person ID= ' || ln_person_id);
930: hr_utility.trace('Assignment ID= ' || ln_assignment_id);
931:
932: IF ln_pos_id <> ln_prev_pos_id THEN
933:
934: ln_prev_pos_id := ln_pos_id;
934: ln_prev_pos_id := ln_pos_id;
935:
936: IF ln_asg_set_id IS NOT NULL THEN
937:
938: hr_utility.set_location(gv_package || lv_procedure_name,60);
939: hr_utility.trace('Assignment SET ID FOUND');
940:
941: lv_excl_flag := '-1';
942: OPEN c_chk_asg (ln_asg_set_id, ln_assignment_id);
935:
936: IF ln_asg_set_id IS NOT NULL THEN
937:
938: hr_utility.set_location(gv_package || lv_procedure_name,60);
939: hr_utility.trace('Assignment SET ID FOUND');
940:
941: lv_excl_flag := '-1';
942: OPEN c_chk_asg (ln_asg_set_id, ln_assignment_id);
943: FETCH c_chk_asg INTO lv_excl_flag;
945:
946:
947: END IF;
948:
949: hr_utility.trace('lv_excl_flag: '||lv_excl_flag);
950:
951: IF lv_excl_flag <> 'X' THEN
952:
953: ld_prev_arch_eff_date := NULL;
952:
953: ld_prev_arch_eff_date := NULL;
954: ln_prev_arch_aaid := NULL;
955:
956: hr_utility.set_location(gv_package || lv_procedure_name,70);
957:
958: OPEN c_chk_last_archiver(ln_pos_id,
959: ld_start_date,
960: ld_end_date);
967: -- A previous Year End Archiver run exists for the person's
968: -- period of service.
969: --
970:
971: hr_utility.trace('Prev Arch Effective Date = ' ||
972: fnd_date.date_to_canonical(ld_prev_arch_eff_date));
973: hr_utility.trace('Prev Arch Asg Action ID = ' ||
974: ln_prev_arch_aaid);
975: hr_utility.set_location(gv_package ||
969: --
970:
971: hr_utility.trace('Prev Arch Effective Date = ' ||
972: fnd_date.date_to_canonical(ld_prev_arch_eff_date));
973: hr_utility.trace('Prev Arch Asg Action ID = ' ||
974: ln_prev_arch_aaid);
975: hr_utility.set_location(gv_package ||
976: lv_procedure_name, 80);
977:
971: hr_utility.trace('Prev Arch Effective Date = ' ||
972: fnd_date.date_to_canonical(ld_prev_arch_eff_date));
973: hr_utility.trace('Prev Arch Asg Action ID = ' ||
974: ln_prev_arch_aaid);
975: hr_utility.set_location(gv_package ||
976: lv_procedure_name, 80);
977:
978: lv_run_exists := 'N';
979:
986: ld_end_date);
987: FETCH c_chk_non_arch_runs INTO lv_run_exists;
988: CLOSE c_chk_non_arch_runs;
989:
990: hr_utility.trace('lv_run_exists: '||lv_run_exists);
991:
992: IF lv_run_exists = 'Y' THEN
993:
994: -- The person has had a SEQUENCED action since the last
995: -- archiver run and should therefore be archived. The
996: -- last archiver action will be locked by this new
997: -- action.
998:
999: hr_utility.set_location(gv_package ||
1000: lv_procedure_name, 90);
1001:
1002: SELECT pay_assignment_actions_s.NEXTVAL
1003: INTO ln_yrend_action_id
1011: NULL,
1012: 'U',
1013: NULL);
1014:
1015: hr_utility.set_location(gv_package ||
1016: lv_procedure_name, 100);
1017:
1018: UPDATE pay_assignment_actions
1019: SET serial_number = ln_person_id
1018: UPDATE pay_assignment_actions
1019: SET serial_number = ln_person_id
1020: WHERE assignment_action_id = ln_yrend_action_id;
1021:
1022: hr_utility.trace('Archiver asg action ' ||
1023: ln_yrend_action_id || ' created.');
1024:
1025: -- insert an interlock to this action
1026: hr_utility.trace('Locking Action = ' ||
1022: hr_utility.trace('Archiver asg action ' ||
1023: ln_yrend_action_id || ' created.');
1024:
1025: -- insert an interlock to this action
1026: hr_utility.trace('Locking Action = ' ||
1027: ln_yrend_action_id);
1028: hr_utility.trace('Locked Action = ' ||
1029: ln_prev_arch_aaid);
1030: hr_nonrun_asact.insint(ln_yrend_action_id,
1024:
1025: -- insert an interlock to this action
1026: hr_utility.trace('Locking Action = ' ||
1027: ln_yrend_action_id);
1028: hr_utility.trace('Locked Action = ' ||
1029: ln_prev_arch_aaid);
1030: hr_nonrun_asact.insint(ln_yrend_action_id,
1031: ln_prev_arch_aaid);
1032:
1029: ln_prev_arch_aaid);
1030: hr_nonrun_asact.insint(ln_yrend_action_id,
1031: ln_prev_arch_aaid);
1032:
1033: hr_utility.set_location(gv_package ||
1034: lv_procedure_name, 110);
1035:
1036: ELSE
1037:
1034: lv_procedure_name, 110);
1035:
1036: ELSE
1037:
1038: hr_utility.set_location(gv_package ||
1039: lv_procedure_name, 120);
1040:
1041: hr_utility.trace('The person has not been paid ' ||
1042: 'since the last archiver and is therefore skipped.');
1037:
1038: hr_utility.set_location(gv_package ||
1039: lv_procedure_name, 120);
1040:
1041: hr_utility.trace('The person has not been paid ' ||
1042: 'since the last archiver and is therefore skipped.');
1043:
1044: END IF;
1045:
1048: -- No previous archiver run exists for this person.
1049: -- New assignment action would still be created, but no
1050: -- interlocks inserted.
1051:
1052: hr_utility.set_location(gv_package ||
1053: lv_procedure_name, 130);
1054:
1055: SELECT pay_assignment_actions_s.NEXTVAL
1056: INTO ln_yrend_action_id
1055: SELECT pay_assignment_actions_s.NEXTVAL
1056: INTO ln_yrend_action_id
1057: FROM dual;
1058:
1059: hr_utility.set_location(gv_package ||
1060: lv_procedure_name, 140);
1061:
1062: hr_nonrun_asact.insact(ln_yrend_action_id,
1063: ln_assignment_id,
1067: NULL,
1068: 'U',
1069: NULL);
1070:
1071: hr_utility.set_location(gv_package ||
1072: lv_procedure_name, 150);
1073:
1074: UPDATE pay_assignment_actions
1075: SET serial_number = ln_person_id
1074: UPDATE pay_assignment_actions
1075: SET serial_number = ln_person_id
1076: WHERE assignment_action_id = ln_yrend_action_id;
1077:
1078: hr_utility.trace('Archiver asg action ' ||
1079: ln_yrend_action_id || ' created.');
1080:
1081: END IF;
1082:
1080:
1081: END IF;
1082:
1083: ELSE
1084: hr_utility.trace('Assignment is excluded in asg set.');
1085: lv_excl_flag := '-1';
1086: END IF;
1087: ELSE
1088: hr_utility.trace ('Assignment skipped.');
1084: hr_utility.trace('Assignment is excluded in asg set.');
1085: lv_excl_flag := '-1';
1086: END IF;
1087: ELSE
1088: hr_utility.trace ('Assignment skipped.');
1089: END IF;
1090: END LOOP;
1091:
1092: IF lb_range_person THEN
1095: CLOSE c_get_emp_asg;
1096: END IF;
1097: END LOOP;
1098:
1099: hr_utility.trace('Leaving ' || gv_package || lv_procedure_name);
1100:
1101: EXCEPTION
1102: WHEN OTHERS THEN
1103: lv_error_message := 'Error at step ' || ln_step || ' IN ' ||
1102: WHEN OTHERS THEN
1103: lv_error_message := 'Error at step ' || ln_step || ' IN ' ||
1104: gv_package || lv_procedure_name;
1105:
1106: hr_utility.trace(lv_error_message || '-' || SQLERRM);
1107:
1108: lv_error_message :=
1109: pay_emp_action_arch.set_error_message(lv_error_message);
1110:
1107:
1108: lv_error_message :=
1109: pay_emp_action_arch.set_error_message(lv_error_message);
1110:
1111: hr_utility.set_message(801,'HR_ELE_ENTRY_FORMULA_HINT');
1112: hr_utility.set_message_token('FORMULA_TEXT', lv_error_message);
1113: hr_utility.raise_error;
1114:
1115: END assignment_action_code;
1108: lv_error_message :=
1109: pay_emp_action_arch.set_error_message(lv_error_message);
1110:
1111: hr_utility.set_message(801,'HR_ELE_ENTRY_FORMULA_HINT');
1112: hr_utility.set_message_token('FORMULA_TEXT', lv_error_message);
1113: hr_utility.raise_error;
1114:
1115: END assignment_action_code;
1116:
1109: pay_emp_action_arch.set_error_message(lv_error_message);
1110:
1111: hr_utility.set_message(801,'HR_ELE_ENTRY_FORMULA_HINT');
1112: hr_utility.set_message_token('FORMULA_TEXT', lv_error_message);
1113: hr_utility.raise_error;
1114:
1115: END assignment_action_code;
1116:
1117: /************************************************************
1153: lv_procedure_name := '.initialization_code';
1154:
1155: ln_step := 1;
1156:
1157: hr_utility.set_location(gv_package || lv_procedure_name, 10);
1158:
1159: get_payroll_action_info(p_payroll_action_id => p_payroll_action_id
1160: ,p_end_date => ld_end_date
1161: ,p_business_group_id => ln_business_group_id
1163: ,p_asg_set_id => ln_asg_set_id);
1164:
1165: g_payroll_action_id := p_payroll_action_id;
1166:
1167: hr_utility.set_location(gv_package || lv_procedure_name, 20);
1168:
1169: ln_step := 2;
1170:
1171: OPEN c_get_legal_er_info(ln_legal_employer_id,
1176: g_ER_legal_rep_RFC,
1177: g_ER_legal_rep_CURP;
1178: CLOSE c_get_legal_er_info;
1179:
1180: hr_utility.set_location(gv_package || lv_procedure_name, 30);
1181:
1182: ln_step := 3;
1183:
1184: SELECT TO_CHAR(ld_end_date, 'YYYY')
1184: SELECT TO_CHAR(ld_end_date, 'YYYY')
1185: INTO g_fiscal_year
1186: FROM dual;
1187:
1188: hr_utility.set_location(gv_package || lv_procedure_name, 40);
1189:
1190: EXCEPTION
1191: WHEN OTHERS THEN
1192: lv_error_message := 'Error at step ' || ln_step || ' IN ' ||
1191: WHEN OTHERS THEN
1192: lv_error_message := 'Error at step ' || ln_step || ' IN ' ||
1193: gv_package || lv_procedure_name;
1194:
1195: hr_utility.trace(lv_error_message || '-' || SQLERRM);
1196:
1197: lv_error_message :=
1198: pay_emp_action_arch.set_error_message(lv_error_message);
1199:
1196:
1197: lv_error_message :=
1198: pay_emp_action_arch.set_error_message(lv_error_message);
1199:
1200: hr_utility.set_message(801,'HR_ELE_ENTRY_FORMULA_HINT');
1201: hr_utility.set_message_token('FORMULA_TEXT', lv_error_message);
1202: hr_utility.raise_error;
1203:
1204: END initialization_code;
1197: lv_error_message :=
1198: pay_emp_action_arch.set_error_message(lv_error_message);
1199:
1200: hr_utility.set_message(801,'HR_ELE_ENTRY_FORMULA_HINT');
1201: hr_utility.set_message_token('FORMULA_TEXT', lv_error_message);
1202: hr_utility.raise_error;
1203:
1204: END initialization_code;
1205:
1198: pay_emp_action_arch.set_error_message(lv_error_message);
1199:
1200: hr_utility.set_message(801,'HR_ELE_ENTRY_FORMULA_HINT');
1201: hr_utility.set_message_token('FORMULA_TEXT', lv_error_message);
1202: hr_utility.raise_error;
1203:
1204: END initialization_code;
1205:
1206: /************************************************************
1690:
1691:
1692: BEGIN
1693: lv_procedure_name := '.archive_code';
1694: --hr_utility.trace_on(null,'MX_NR');
1695: lv_prev_arch_exists := 'N';
1696: lv_arch_for_ptu_only := 'N';
1697: hr_utility.trace('Entering ' || gv_package || lv_procedure_name);
1698:
1693: lv_procedure_name := '.archive_code';
1694: --hr_utility.trace_on(null,'MX_NR');
1695: lv_prev_arch_exists := 'N';
1696: lv_arch_for_ptu_only := 'N';
1697: hr_utility.trace('Entering ' || gv_package || lv_procedure_name);
1698:
1699: ln_step := 1;
1700: hr_utility.set_location(gv_package || lv_procedure_name, 10);
1701:
1696: lv_arch_for_ptu_only := 'N';
1697: hr_utility.trace('Entering ' || gv_package || lv_procedure_name);
1698:
1699: ln_step := 1;
1700: hr_utility.set_location(gv_package || lv_procedure_name, 10);
1701:
1702: -- Load GRE cache
1703: IF g_gre_tab.count() = 0 THEN
1704:
1701:
1702: -- Load GRE cache
1703: IF g_gre_tab.count() = 0 THEN
1704:
1705: hr_utility.set_location(gv_package || lv_procedure_name, 20);
1706:
1707: get_payroll_action_info(p_payroll_action_id => g_payroll_action_id
1708: ,p_end_date => ld_end_date
1709: ,p_business_group_id => ln_business_group_id
1709: ,p_business_group_id => ln_business_group_id
1710: ,p_legal_employer_id => ln_legal_employer_id
1711: ,p_asg_set_id => ln_asg_set_id);
1712:
1713: hr_utility.trace('ld_end_date: ' || ld_end_date);
1714: hr_utility.trace('ln_business_group_id: ' || ln_business_group_id);
1715: hr_utility.trace('ln_legal_employer_id: ' || ln_legal_employer_id);
1716: hr_utility.trace('ln_asg_set_id: ' || ln_asg_set_id);
1717:
1710: ,p_legal_employer_id => ln_legal_employer_id
1711: ,p_asg_set_id => ln_asg_set_id);
1712:
1713: hr_utility.trace('ld_end_date: ' || ld_end_date);
1714: hr_utility.trace('ln_business_group_id: ' || ln_business_group_id);
1715: hr_utility.trace('ln_legal_employer_id: ' || ln_legal_employer_id);
1716: hr_utility.trace('ln_asg_set_id: ' || ln_asg_set_id);
1717:
1718: load_gre (ln_business_group_id,
1711: ,p_asg_set_id => ln_asg_set_id);
1712:
1713: hr_utility.trace('ld_end_date: ' || ld_end_date);
1714: hr_utility.trace('ln_business_group_id: ' || ln_business_group_id);
1715: hr_utility.trace('ln_legal_employer_id: ' || ln_legal_employer_id);
1716: hr_utility.trace('ln_asg_set_id: ' || ln_asg_set_id);
1717:
1718: load_gre (ln_business_group_id,
1719: ln_legal_employer_id,
1712:
1713: hr_utility.trace('ld_end_date: ' || ld_end_date);
1714: hr_utility.trace('ln_business_group_id: ' || ln_business_group_id);
1715: hr_utility.trace('ln_legal_employer_id: ' || ln_legal_employer_id);
1716: hr_utility.trace('ln_asg_set_id: ' || ln_asg_set_id);
1717:
1718: load_gre (ln_business_group_id,
1719: ln_legal_employer_id,
1720: ld_end_date);
1720: ld_end_date);
1721: END IF;
1722:
1723:
1724: hr_utility.set_location(gv_package || lv_procedure_name, 30);
1725:
1726: OPEN c_get_eff_date;
1727: FETCH c_get_eff_date INTO ld_effective_date, ld_arch_end_date;
1728: CLOSE c_get_eff_date;
1726: OPEN c_get_eff_date;
1727: FETCH c_get_eff_date INTO ld_effective_date, ld_arch_end_date;
1728: CLOSE c_get_eff_date;
1729:
1730: hr_utility.trace('ld_effective_date: '||ld_effective_date);
1731: hr_utility.trace('ld_arch_end_date: '||ld_arch_end_date);
1732:
1733: IF ld_arch_end_date <> fnd_date.canonical_to_date(g_fiscal_year ||
1734: '/12/31') THEN
1727: FETCH c_get_eff_date INTO ld_effective_date, ld_arch_end_date;
1728: CLOSE c_get_eff_date;
1729:
1730: hr_utility.trace('ld_effective_date: '||ld_effective_date);
1731: hr_utility.trace('ld_arch_end_date: '||ld_arch_end_date);
1732:
1733: IF ld_arch_end_date <> fnd_date.canonical_to_date(g_fiscal_year ||
1734: '/12/31') THEN
1735:
1732:
1733: IF ld_arch_end_date <> fnd_date.canonical_to_date(g_fiscal_year ||
1734: '/12/31') THEN
1735:
1736: hr_utility.set_location(gv_package || lv_procedure_name, 40);
1737: lb_is_term_ee := TRUE;
1738: hr_utility.trace('lb_is_term_ee= TRUE');
1739: ELSE
1740: hr_utility.set_location(gv_package || lv_procedure_name, 50);
1734: '/12/31') THEN
1735:
1736: hr_utility.set_location(gv_package || lv_procedure_name, 40);
1737: lb_is_term_ee := TRUE;
1738: hr_utility.trace('lb_is_term_ee= TRUE');
1739: ELSE
1740: hr_utility.set_location(gv_package || lv_procedure_name, 50);
1741: lb_is_term_ee := FALSE;
1742: hr_utility.trace('lb_is_term_ee= FALSE');
1736: hr_utility.set_location(gv_package || lv_procedure_name, 40);
1737: lb_is_term_ee := TRUE;
1738: hr_utility.trace('lb_is_term_ee= TRUE');
1739: ELSE
1740: hr_utility.set_location(gv_package || lv_procedure_name, 50);
1741: lb_is_term_ee := FALSE;
1742: hr_utility.trace('lb_is_term_ee= FALSE');
1743: END IF;
1744:
1738: hr_utility.trace('lb_is_term_ee= TRUE');
1739: ELSE
1740: hr_utility.set_location(gv_package || lv_procedure_name, 50);
1741: lb_is_term_ee := FALSE;
1742: hr_utility.trace('lb_is_term_ee= FALSE');
1743: END IF;
1744:
1745: ln_step := 2;
1746: hr_utility.trace('Effective Date of archiver for the person: ' ||
1742: hr_utility.trace('lb_is_term_ee= FALSE');
1743: END IF;
1744:
1745: ln_step := 2;
1746: hr_utility.trace('Effective Date of archiver for the person: ' ||
1747: fnd_date.date_to_canonical(p_effective_date));
1748:
1749:
1750: ln_step := 3;
1749:
1750: ln_step := 3;
1751: ld_start_date := fnd_date.canonical_to_date(g_fiscal_year || '/01/01');
1752:
1753: hr_utility.set_location(gv_package || lv_procedure_name, 60);
1754:
1755: -- EE details need to be fetched as on the Actual
1756: -- Termination Date, or p_effective_date, in that order.
1757: --
1778:
1779: --CLOSE c_emp_details;
1780:
1781: ln_step := 4;
1782: hr_utility.set_location(gv_package || lv_procedure_name, 70);
1783: hr_utility.trace('ld_start_date: ' || ld_start_date);
1784: hr_utility.trace('p_effective_date: ' || p_effective_date);
1785: hr_utility.trace('ln_tax_unit_id: ' || ln_tax_unit_id);
1786: hr_utility.trace('ln_person_id: ' || ln_person_id);
1779: --CLOSE c_emp_details;
1780:
1781: ln_step := 4;
1782: hr_utility.set_location(gv_package || lv_procedure_name, 70);
1783: hr_utility.trace('ld_start_date: ' || ld_start_date);
1784: hr_utility.trace('p_effective_date: ' || p_effective_date);
1785: hr_utility.trace('ln_tax_unit_id: ' || ln_tax_unit_id);
1786: hr_utility.trace('ln_person_id: ' || ln_person_id);
1787: hr_utility.trace('ln_assignment_id: ' || ln_assignment_id);
1780:
1781: ln_step := 4;
1782: hr_utility.set_location(gv_package || lv_procedure_name, 70);
1783: hr_utility.trace('ld_start_date: ' || ld_start_date);
1784: hr_utility.trace('p_effective_date: ' || p_effective_date);
1785: hr_utility.trace('ln_tax_unit_id: ' || ln_tax_unit_id);
1786: hr_utility.trace('ln_person_id: ' || ln_person_id);
1787: hr_utility.trace('ln_assignment_id: ' || ln_assignment_id);
1788: hr_utility.trace('ln_row_count: ' || ln_row_count);
1781: ln_step := 4;
1782: hr_utility.set_location(gv_package || lv_procedure_name, 70);
1783: hr_utility.trace('ld_start_date: ' || ld_start_date);
1784: hr_utility.trace('p_effective_date: ' || p_effective_date);
1785: hr_utility.trace('ln_tax_unit_id: ' || ln_tax_unit_id);
1786: hr_utility.trace('ln_person_id: ' || ln_person_id);
1787: hr_utility.trace('ln_assignment_id: ' || ln_assignment_id);
1788: hr_utility.trace('ln_row_count: ' || ln_row_count);
1789:
1782: hr_utility.set_location(gv_package || lv_procedure_name, 70);
1783: hr_utility.trace('ld_start_date: ' || ld_start_date);
1784: hr_utility.trace('p_effective_date: ' || p_effective_date);
1785: hr_utility.trace('ln_tax_unit_id: ' || ln_tax_unit_id);
1786: hr_utility.trace('ln_person_id: ' || ln_person_id);
1787: hr_utility.trace('ln_assignment_id: ' || ln_assignment_id);
1788: hr_utility.trace('ln_row_count: ' || ln_row_count);
1789:
1790: -- Fetch the YTD Assignment Action ID.
1783: hr_utility.trace('ld_start_date: ' || ld_start_date);
1784: hr_utility.trace('p_effective_date: ' || p_effective_date);
1785: hr_utility.trace('ln_tax_unit_id: ' || ln_tax_unit_id);
1786: hr_utility.trace('ln_person_id: ' || ln_person_id);
1787: hr_utility.trace('ln_assignment_id: ' || ln_assignment_id);
1788: hr_utility.trace('ln_row_count: ' || ln_row_count);
1789:
1790: -- Fetch the YTD Assignment Action ID.
1791: --
1784: hr_utility.trace('p_effective_date: ' || p_effective_date);
1785: hr_utility.trace('ln_tax_unit_id: ' || ln_tax_unit_id);
1786: hr_utility.trace('ln_person_id: ' || ln_person_id);
1787: hr_utility.trace('ln_assignment_id: ' || ln_assignment_id);
1788: hr_utility.trace('ln_row_count: ' || ln_row_count);
1789:
1790: -- Fetch the YTD Assignment Action ID.
1791: --
1792: ln_ytd_aa_id := NULL;
1797: FETCH c_get_ytd_aaid INTO ln_ytd_aa_id;
1798:
1799: IF c_get_ytd_aaid%NOTFOUND THEN
1800:
1801: hr_utility.trace('No assignment action found for the person''s ' ||
1802: 'period of service within the GRE!');
1803: hr_utility.raise_error;
1804:
1805: ELSE
1799: IF c_get_ytd_aaid%NOTFOUND THEN
1800:
1801: hr_utility.trace('No assignment action found for the person''s ' ||
1802: 'period of service within the GRE!');
1803: hr_utility.raise_error;
1804:
1805: ELSE
1806:
1807: hr_utility.trace('YTD Assactid: '|| ln_ytd_aa_id);
1803: hr_utility.raise_error;
1804:
1805: ELSE
1806:
1807: hr_utility.trace('YTD Assactid: '|| ln_ytd_aa_id);
1808:
1809: END IF;
1810:
1811: CLOSE c_get_ytd_aaid;
1812:
1813: pay_balance_pkg.set_context('TAX_UNIT_ID', ln_tax_unit_id);
1814:
1815: ln_step := 5;
1816: hr_utility.set_location(gv_package || lv_procedure_name, 80);
1817:
1818:
1819: OPEN c_chk_last_archiver(ln_assignment_id,
1820: ld_start_date,
1823: FETCH c_chk_last_archiver INTO gn_prev_asg_act_id
1824: ,lv_prev_arch_exists;
1825: CLOSE c_chk_last_archiver;
1826:
1827: hr_utility.trace('ln_person_id: '|| ln_person_id);
1828: hr_utility.trace('ln_assignment_id: '|| ln_assignment_id);
1829: hr_utility.trace('gn_prev_asg_act_id: '|| gn_prev_asg_act_id);
1830: hr_utility.trace('lv_prev_arch_exists: '|| lv_prev_arch_exists);
1831:
1824: ,lv_prev_arch_exists;
1825: CLOSE c_chk_last_archiver;
1826:
1827: hr_utility.trace('ln_person_id: '|| ln_person_id);
1828: hr_utility.trace('ln_assignment_id: '|| ln_assignment_id);
1829: hr_utility.trace('gn_prev_asg_act_id: '|| gn_prev_asg_act_id);
1830: hr_utility.trace('lv_prev_arch_exists: '|| lv_prev_arch_exists);
1831:
1832: IF ( lv_prev_arch_exists = 'Y' OR lb_is_term_ee ) THEN
1825: CLOSE c_chk_last_archiver;
1826:
1827: hr_utility.trace('ln_person_id: '|| ln_person_id);
1828: hr_utility.trace('ln_assignment_id: '|| ln_assignment_id);
1829: hr_utility.trace('gn_prev_asg_act_id: '|| gn_prev_asg_act_id);
1830: hr_utility.trace('lv_prev_arch_exists: '|| lv_prev_arch_exists);
1831:
1832: IF ( lv_prev_arch_exists = 'Y' OR lb_is_term_ee ) THEN
1833:
1826:
1827: hr_utility.trace('ln_person_id: '|| ln_person_id);
1828: hr_utility.trace('ln_assignment_id: '|| ln_assignment_id);
1829: hr_utility.trace('gn_prev_asg_act_id: '|| gn_prev_asg_act_id);
1830: hr_utility.trace('lv_prev_arch_exists: '|| lv_prev_arch_exists);
1831:
1832: IF ( lv_prev_arch_exists = 'Y' OR lb_is_term_ee ) THEN
1833:
1834: hr_utility.set_location(gv_package || lv_procedure_name, 90);
1830: hr_utility.trace('lv_prev_arch_exists: '|| lv_prev_arch_exists);
1831:
1832: IF ( lv_prev_arch_exists = 'Y' OR lb_is_term_ee ) THEN
1833:
1834: hr_utility.set_location(gv_package || lv_procedure_name, 90);
1835:
1836: ld_PTU_date := NULL;
1837:
1838: OPEN c_get_PTU_month(ln_person_id,
1846:
1847: ld_arch_start_date := TRUNC(ld_PTU_date, 'MM');
1848: ld_arch_end_date := ADD_MONTHS(ld_arch_start_date, 1) - 1;
1849:
1850: hr_utility.trace('PTU ld_arch_start_date: '||ld_arch_start_date);
1851: hr_utility.trace('PTU ld_arch_end_date: '||ld_arch_end_date);
1852:
1853: lv_arch_for_ptu_only := 'Y';
1854:
1847: ld_arch_start_date := TRUNC(ld_PTU_date, 'MM');
1848: ld_arch_end_date := ADD_MONTHS(ld_arch_start_date, 1) - 1;
1849:
1850: hr_utility.trace('PTU ld_arch_start_date: '||ld_arch_start_date);
1851: hr_utility.trace('PTU ld_arch_end_date: '||ld_arch_end_date);
1852:
1853: lv_arch_for_ptu_only := 'Y';
1854:
1855: END IF;
1856:
1857: END IF;
1858:
1859: ln_step := 6;
1860: hr_utility.set_location(gv_package || lv_procedure_name, 100);
1861:
1862: /*OPEN c_get_subsidy(ln_ytd_aa_id);
1863: FETCH c_get_subsidy INTO ln_cred_subsidy,
1864: ln_non_cred_subsidy;
1882: ln_total_subsidy := ln_cred_subsidy + ln_non_cred_subsidy;
1883: ln_total_cred_subsidy := ln_cred_subsidy;
1884: i := 0;
1885: --
1886: hr_utility.set_location(gv_package || lv_procedure_name, 110);
1887: FOR c_rec IN c_get_other_er_info(ln_person_id,
1888: p_effective_date)
1889: LOOP
1890: i := i + 1;
1901:
1902: -- RFC Validation to be performed
1903: -- Hyphens are stripped and RFC is then validated.
1904: --
1905: hr_utility.set_location(gv_package || lv_procedure_name, 120);
1906: lv_plain_rfc :=
1907: TRANSLATE(c_rec.RFC, 'A !"$%^&*()-_+=`[]{};''#:@~<>?','A');
1908:
1909: l_valid_rfc := hr_ni_chk_pkg.chk_nat_id_format(lv_plain_rfc,
1908:
1909: l_valid_rfc := hr_ni_chk_pkg.chk_nat_id_format(lv_plain_rfc,
1910: 'AAADDDDDDXXX');
1911: IF l_valid_rfc = '0' THEN
1912: hr_utility.set_location(gv_package || lv_procedure_name, 130);
1913: RAISE INVALID_RFC;
1914: ELSE
1915: PEI(i).RFC := l_valid_rfc;
1916: END IF;
1928: OPEN c_get_hire_date(ln_person_id,p_effective_date);
1929: FETCH c_get_hire_date INTO ld_hire_date;
1930: CLOSE c_get_hire_date;
1931:
1932: hr_utility.trace('B4 ld_arch_start_date: '||ld_arch_start_date);
1933: hr_utility.trace('B4 ld_arch_end_date: '||ld_arch_end_date);
1934: hr_utility.trace('ld_hire_date: '||ld_hire_date);
1935:
1936: ld_arch_start_date := GREATEST( ld_arch_start_date, ld_hire_date );
1929: FETCH c_get_hire_date INTO ld_hire_date;
1930: CLOSE c_get_hire_date;
1931:
1932: hr_utility.trace('B4 ld_arch_start_date: '||ld_arch_start_date);
1933: hr_utility.trace('B4 ld_arch_end_date: '||ld_arch_end_date);
1934: hr_utility.trace('ld_hire_date: '||ld_hire_date);
1935:
1936: ld_arch_start_date := GREATEST( ld_arch_start_date, ld_hire_date );
1937:
1930: CLOSE c_get_hire_date;
1931:
1932: hr_utility.trace('B4 ld_arch_start_date: '||ld_arch_start_date);
1933: hr_utility.trace('B4 ld_arch_end_date: '||ld_arch_end_date);
1934: hr_utility.trace('ld_hire_date: '||ld_hire_date);
1935:
1936: ld_arch_start_date := GREATEST( ld_arch_start_date, ld_hire_date );
1937:
1938: IF TRUNC( ld_arch_end_date, 'Y' ) = TRUNC( p_effective_date, 'Y' ) THEN
1944: ld_arch_end_date := p_effective_date;
1945:
1946: END IF;
1947:
1948: hr_utility.trace('AFTER ld_arch_start_date: '||ld_arch_start_date);
1949: hr_utility.trace('AFTER ld_arch_end_date: '||ld_arch_end_date);
1950:
1951: ln_step := 7;
1952:
1945:
1946: END IF;
1947:
1948: hr_utility.trace('AFTER ld_arch_start_date: '||ld_arch_start_date);
1949: hr_utility.trace('AFTER ld_arch_end_date: '||ld_arch_end_date);
1950:
1951: ln_step := 7;
1952:
1953: If ln_row_count = 1 then
1982: pai_tab(ln_index).act_info9 := lv_ann_adj;
1983: pai_tab(ln_index).act_info10 := lv_is_union_worker;
1984: pai_tab(ln_index).act_info11 := lv_economic_zone;
1985:
1986: hr_utility.set_location(gv_package || lv_procedure_name, 140);
1987: --
1988: IF ln_total_subsidy > 0 THEN
1989:
1990: pai_tab(ln_index).act_info12 := ln_tax_subsidy_prop;
1998: -- and a different subsidy proportion has been used.
1999: --
2000: IF ln_total_subsidy > 0 AND lv_ann_adj = 'Y' THEN
2001:
2002: hr_utility.set_location(gv_package || lv_procedure_name, 150);
2003: pai_tab(ln_index).act_info13 :=
2004: ROUND(ln_total_cred_subsidy / ln_total_subsidy, 4);
2005:
2006: IF ln_tax_subsidy_prop <> pai_tab(ln_index).act_info13 THEN
2004: ROUND(ln_total_cred_subsidy / ln_total_subsidy, 4);
2005:
2006: IF ln_tax_subsidy_prop <> pai_tab(ln_index).act_info13 THEN
2007:
2008: hr_utility.set_location(gv_package || lv_procedure_name, 160);
2009: pai_tab(ln_index).act_info13 := NULL;
2010:
2011: END IF;
2012:
2011: END IF;
2012:
2013: ELSE
2014:
2015: hr_utility.set_location(gv_package || lv_procedure_name, 170);
2016: pai_tab(ln_index).act_info13 := NULL;
2017:
2018: END IF;
2019:
2016: pai_tab(ln_index).act_info13 := NULL;
2017:
2018: END IF;
2019:
2020: hr_utility.set_location(gv_package || lv_procedure_name, 180);
2021: --
2022: IF PEI.EXISTS(1) THEN
2023: pai_tab(ln_index).act_info14 := PEI(1).RFC;
2024: pai_tab(ln_index).act_info24 := PEI(1).total_earnings;
2140:
2141: END IF;
2142:
2143: ln_step := 8;
2144: hr_utility.set_location(gv_package || lv_procedure_name, 190);
2145: pay_emp_action_arch.insert_rows_thro_api_process(
2146: p_action_context_id => p_archive_action_id
2147: ,p_action_context_type => 'AAP'
2148: ,p_assignment_id => ln_assignment_id
2152: );
2153: pai_tab.delete;
2154:
2155: ln_step := 9;
2156: hr_utility.set_location(gv_package || lv_procedure_name, 200);
2157: OPEN c_check_pay_action(g_payroll_action_id);
2158: FETCH c_check_pay_action INTO ln_pay_action_count;
2159: CLOSE c_check_pay_action;
2160:
2160:
2161: ln_step := 10;
2162: IF ln_pay_action_count = 0 THEN
2163:
2164: hr_utility.set_location(gv_package || lv_procedure_name, 210);
2165: IF ln_row_count = 1 THEN
2166:
2167: ln_step := 11;
2168: ln_index := pai_tab.count;
2176: pai_tab(ln_index).act_info4 := g_ER_legal_rep_name;
2177: pai_tab(ln_index).act_info5 := g_ER_legal_rep_RFC;
2178: pai_tab(ln_index).act_info6 := g_ER_legal_rep_CURP;
2179:
2180: hr_utility.set_location(gv_package || lv_procedure_name, 220);
2181:
2182: OPEN c_get_gen_hier_details(ln_business_group_id,
2183: p_effective_date);
2184: LOOP
2183: p_effective_date);
2184: LOOP
2185:
2186: ln_step := 12;
2187: hr_utility.set_location(gv_package || lv_procedure_name, 230);
2188:
2189: FETCH c_get_gen_hier_details INTO ln_legal_er_id,
2190: ln_gre_id;
2191: EXIT WHEN c_get_gen_hier_details%NOTFOUND;
2191: EXIT WHEN c_get_gen_hier_details%NOTFOUND;
2192:
2193: ln_index := pai_tab.count;
2194:
2195: hr_utility.set_location(gv_package || lv_procedure_name, 240);
2196:
2197: pai_tab(ln_index).action_info_category := 'MX GENERIC ' ||
2198: 'HIERARCHY DETAILS';
2199: pai_tab(ln_index).jurisdiction_code := NULL;
2203:
2204: END LOOP;
2205:
2206: ln_step := 13;
2207: hr_utility.set_location(gv_package || lv_procedure_name, 250);
2208:
2209: pay_emp_action_arch.insert_rows_thro_api_process(
2210: p_action_context_id => g_payroll_action_id
2211: ,p_action_context_type => 'PA'
2213: ,p_tax_unit_id => NULL
2214: ,p_curr_pymt_eff_date => p_effective_date
2215: ,p_tab_rec_data => pai_tab);
2216:
2217: hr_utility.set_location(gv_package || lv_procedure_name, 260);
2218: pai_tab.delete;
2219:
2220: END IF;
2221:
2222: END IF;
2223: end if;
2224:
2225: ln_step := 14;
2226: hr_utility.set_location(gv_package || lv_procedure_name, 270);
2227:
2228:
2229: populate_balances(p_archive_action_id => p_archive_action_id
2230: ,p_ytd_action_id => ln_ytd_aa_id
2233:
2234:
2235: end loop;
2236: Close c_emp_details;
2237: hr_utility.trace('Leaving ' || gv_package || lv_procedure_name);
2238:
2239: EXCEPTION
2240: WHEN INVALID_RFC THEN
2241: hr_utility.set_message(800, 'HR_MX_INVALID_ER_RFC');
2237: hr_utility.trace('Leaving ' || gv_package || lv_procedure_name);
2238:
2239: EXCEPTION
2240: WHEN INVALID_RFC THEN
2241: hr_utility.set_message(800, 'HR_MX_INVALID_ER_RFC');
2242: hr_utility.raise_error;
2243:
2244: WHEN OTHERS THEN
2245: lv_error_message := 'Error at step ' || ln_step || ' IN ' ||
2238:
2239: EXCEPTION
2240: WHEN INVALID_RFC THEN
2241: hr_utility.set_message(800, 'HR_MX_INVALID_ER_RFC');
2242: hr_utility.raise_error;
2243:
2244: WHEN OTHERS THEN
2245: lv_error_message := 'Error at step ' || ln_step || ' IN ' ||
2246: gv_package || lv_procedure_name;
2244: WHEN OTHERS THEN
2245: lv_error_message := 'Error at step ' || ln_step || ' IN ' ||
2246: gv_package || lv_procedure_name;
2247:
2248: hr_utility.trace(lv_error_message || '-' || SQLERRM);
2249:
2250: lv_error_message :=
2251: pay_emp_action_arch.set_error_message(lv_error_message);
2252:
2249:
2250: lv_error_message :=
2251: pay_emp_action_arch.set_error_message(lv_error_message);
2252:
2253: hr_utility.set_message(801,'HR_ELE_ENTRY_FORMULA_HINT');
2254: hr_utility.set_message_token('FORMULA_TEXT', lv_error_message);
2255: hr_utility.raise_error;
2256:
2257: END archive_code;
2250: lv_error_message :=
2251: pay_emp_action_arch.set_error_message(lv_error_message);
2252:
2253: hr_utility.set_message(801,'HR_ELE_ENTRY_FORMULA_HINT');
2254: hr_utility.set_message_token('FORMULA_TEXT', lv_error_message);
2255: hr_utility.raise_error;
2256:
2257: END archive_code;
2258:
2251: pay_emp_action_arch.set_error_message(lv_error_message);
2252:
2253: hr_utility.set_message(801,'HR_ELE_ENTRY_FORMULA_HINT');
2254: hr_utility.set_message_token('FORMULA_TEXT', lv_error_message);
2255: hr_utility.raise_error;
2256:
2257: END archive_code;
2258:
2259: BEGIN
2256:
2257: END archive_code;
2258:
2259: BEGIN
2260: --hr_utility.trace_on (NULL, 'MX_IDC');
2261: gv_package := 'pay_mx_yrend_arch';
2262: END pay_mx_yrend_arch;