133: p_inputs(6).name := 'ASSIGNMENT_ACTION_ID';
134: p_inputs(6).value := c_action_ids_row.ASSIGNMENT_ACTION_ID;
135: END IF;
136: CLOSE c_action_ids;
137: hr_utility.trace(' PAYROLL_ACTION_ID '|| c_action_ids_row.PAYROLL_ACTION_ID);
138: hr_utility.trace(' ASSIGNMENT_ACTION_ID '||c_action_ids_row.ASSIGNMENT_ACTION_ID);
139: hr_utility.trace(' p_assignment_id '||p_assignment_id);
140: hr_utility.trace('**Date earned '|| fnd_date.date_to_canonical(p_effective_date));
141: hr_utility.trace(' p_payroll_id '||p_payroll_id);
134: p_inputs(6).value := c_action_ids_row.ASSIGNMENT_ACTION_ID;
135: END IF;
136: CLOSE c_action_ids;
137: hr_utility.trace(' PAYROLL_ACTION_ID '|| c_action_ids_row.PAYROLL_ACTION_ID);
138: hr_utility.trace(' ASSIGNMENT_ACTION_ID '||c_action_ids_row.ASSIGNMENT_ACTION_ID);
139: hr_utility.trace(' p_assignment_id '||p_assignment_id);
140: hr_utility.trace('**Date earned '|| fnd_date.date_to_canonical(p_effective_date));
141: hr_utility.trace(' p_payroll_id '||p_payroll_id);
142:
135: END IF;
136: CLOSE c_action_ids;
137: hr_utility.trace(' PAYROLL_ACTION_ID '|| c_action_ids_row.PAYROLL_ACTION_ID);
138: hr_utility.trace(' ASSIGNMENT_ACTION_ID '||c_action_ids_row.ASSIGNMENT_ACTION_ID);
139: hr_utility.trace(' p_assignment_id '||p_assignment_id);
140: hr_utility.trace('**Date earned '|| fnd_date.date_to_canonical(p_effective_date));
141: hr_utility.trace(' p_payroll_id '||p_payroll_id);
142:
143: -- 6666135 Begin
136: CLOSE c_action_ids;
137: hr_utility.trace(' PAYROLL_ACTION_ID '|| c_action_ids_row.PAYROLL_ACTION_ID);
138: hr_utility.trace(' ASSIGNMENT_ACTION_ID '||c_action_ids_row.ASSIGNMENT_ACTION_ID);
139: hr_utility.trace(' p_assignment_id '||p_assignment_id);
140: hr_utility.trace('**Date earned '|| fnd_date.date_to_canonical(p_effective_date));
141: hr_utility.trace(' p_payroll_id '||p_payroll_id);
142:
143: -- 6666135 Begin
144: FOR I in 1..Formula_Tab.COUNT
137: hr_utility.trace(' PAYROLL_ACTION_ID '|| c_action_ids_row.PAYROLL_ACTION_ID);
138: hr_utility.trace(' ASSIGNMENT_ACTION_ID '||c_action_ids_row.ASSIGNMENT_ACTION_ID);
139: hr_utility.trace(' p_assignment_id '||p_assignment_id);
140: hr_utility.trace('**Date earned '|| fnd_date.date_to_canonical(p_effective_date));
141: hr_utility.trace(' p_payroll_id '||p_payroll_id);
142:
143: -- 6666135 Begin
144: FOR I in 1..Formula_Tab.COUNT
145: LOOP
143: -- 6666135 Begin
144: FOR I in 1..Formula_Tab.COUNT
145: LOOP
146: v_formula_id := Null;
147: hr_utility.trace(' For Formula_Tab '||Formula_Tab(I));
148: OPEN c_pqp_formula_id(Formula_Tab(I));
149: Fetch c_pqp_formula_id into v_formula_id;
150: if c_pqp_formula_id%NOTFOUND then
151: hr_utility.set_location('Formula -'||Formula_Tab(I)||'- Not Present/effective in Table',11);
147: hr_utility.trace(' For Formula_Tab '||Formula_Tab(I));
148: OPEN c_pqp_formula_id(Formula_Tab(I));
149: Fetch c_pqp_formula_id into v_formula_id;
150: if c_pqp_formula_id%NOTFOUND then
151: hr_utility.set_location('Formula -'||Formula_Tab(I)||'- Not Present/effective in Table',11);
152: l_warning_msg := 'Formula -'||Formula_Tab(I)||'- Not Present or effective for Assignment '||p_assignment_number||' On '||p_effective_date;
153: fnd_file.put_line (fnd_file.LOG, l_warning_msg);
154: fnd_file.put_line(FND_FILE.OUTPUT, l_warning_msg);
155: raise_application_error(-20001,' Invalid Formula ');
155: raise_application_error(-20001,' Invalid Formula ');
156: end if;
157: Close c_pqp_formula_id;
158: if v_formula_id is not null then
159: hr_utility.trace(' Inside RUN_USER_FORMULA '||Formula_Tab(I));
160: ff_exec.init_formula(v_formula_id, p_effective_date , l_inputs, l_outputs);
161: --6666135 End
162: --Assigning the contexts to the input variables
163: IF l_inputs.count > 0 and p_inputs.count > 0
175: END LOOP;
176: END IF;
177: FOR i IN l_inputs.first..l_inputs.last
178: LOOP
179: hr_utility.trace(' i= '||i||' name '||l_inputs(i).name ||' value '||l_inputs(i).value);
180: END LOOP;
181: --executing the formula
182: ff_exec.run_formula(l_inputs,l_outputs);
183: hr_utility.trace(' calculated value from User formula '||l_outputs(1).value);
179: hr_utility.trace(' i= '||i||' name '||l_inputs(i).name ||' value '||l_inputs(i).value);
180: END LOOP;
181: --executing the formula
182: ff_exec.run_formula(l_inputs,l_outputs);
183: hr_utility.trace(' calculated value from User formula '||l_outputs(1).value);
184: fnd_file.put_line(FND_FILE.OUTPUT,' ------ Formula '||Formula_Tab(I)||' value '||l_outputs(1).value);
185: n_sum_formula_val := n_sum_formula_val+ nvl(l_outputs(1).value,0);
186: End if; --formula id not null check 6666135
187: END LOOP;
184: fnd_file.put_line(FND_FILE.OUTPUT,' ------ Formula '||Formula_Tab(I)||' value '||l_outputs(1).value);
185: n_sum_formula_val := n_sum_formula_val+ nvl(l_outputs(1).value,0);
186: End if; --formula id not null check 6666135
187: END LOOP;
188: hr_utility.trace(' Total value from all User formulas '||n_sum_formula_val);
189: --IF n_sum_formula_val > 0
190: IF (n_sum_formula_val + p_historic_value) >= 0 --For BugFix 8238736
191: THEN --if the formula returns value greater than 0 6666135
192: OPEN c_additional_pension(p_assignment_id
192: OPEN c_additional_pension(p_assignment_id
193: ,p_effective_date);
194: FETCH c_additional_pension INTO c_additional_pension_row;
195: IF c_additional_pension%NOTFOUND then
196: hr_utility.trace(' Inserting seeded element with value'||n_sum_formula_val);
197: OPEN c_seeded_element_det;
198: FETCH c_seeded_element_det into c_seeded_element_det_row;
199: if c_seeded_element_det%NOTFOUND then
200: hr_utility.set_location(' Seeded Element is not linked ',11);
196: hr_utility.trace(' Inserting seeded element with value'||n_sum_formula_val);
197: OPEN c_seeded_element_det;
198: FETCH c_seeded_element_det into c_seeded_element_det_row;
199: if c_seeded_element_det%NOTFOUND then
200: hr_utility.set_location(' Seeded Element is not linked ',11);
201: l_warning_msg := 'Seeded Element is not linked to the Payroll of Assignment '||p_assignment_number||' On '||p_effective_date;
202: fnd_file.put_line (fnd_file.LOG, l_warning_msg);
203: Raise Skip_formula;
204: end if;
217: p_input_value_id1 => c_seeded_element_det_row.input_value_id,
218: p_entry_value1 => to_char(n_sum_formula_val)
219: );
220: ELSE
221: hr_utility.trace(' calling for correction of seeded element '||n_sum_formula_val);
222: --6666135 End
223: hr_entry_api.update_element_entry (p_dt_update_mode =>'CORRECTION',
224: p_session_date => p_effective_date,
225: p_check_for_update =>'N',
231:
232: END IF; --Seeded element present or not
233: CLOSE c_additional_pension;
234: END IF; -- formula returned value greater than zero
235: hr_utility.trace(' formula completed');
236: return n_sum_formula_val;
237: Exception
238: When Skip_formula then
239: --seeded element is not linked to Payroll so skipping
238: When Skip_formula then
239: --seeded element is not linked to Payroll so skipping
240: Null;
241: When others then
242: hr_utility.trace(sqlerrm);
243: Raise;
244: --6666135 End
245: END RUN_USER_FORMULA;
246:
443: --6813970 end
444:
445: -- main
446: BEGIN
447: -- hr_utility.trace_on(null,'gag');
448: hr_utility.set_location('Entering: ' || l_proc, 10);
449: BEGIN
450: insert into fnd_sessions (SESSION_ID, EFFECTIVE_DATE)
451: values(userenv('sessionid'), trunc(SYSDATE));
444:
445: -- main
446: BEGIN
447: -- hr_utility.trace_on(null,'gag');
448: hr_utility.set_location('Entering: ' || l_proc, 10);
449: BEGIN
450: insert into fnd_sessions (SESSION_ID, EFFECTIVE_DATE)
451: values(userenv('sessionid'), trunc(SYSDATE));
452: EXCEPTION
450: insert into fnd_sessions (SESSION_ID, EFFECTIVE_DATE)
451: values(userenv('sessionid'), trunc(SYSDATE));
452: EXCEPTION
453: WHEN others THEN
454: hr_utility.trace('SESSION ALREADY EXISTS :'|| sqlerrm);
455: Raise;
456: END;
457: v_eff_start_date := fnd_date.canonical_to_date(p_effective_start_dt);
458: --calculation of pension end date for the year
475: AND to_date('31/03/'||to_char(v_eff_start_date,'YYYY'),'dd/mm/yyyy'))
476: AND (v_eff_end_date BETWEEN to_date('01/01/'||to_char(v_eff_start_date,'YYYY'),'dd/mm/yyyy')
477: AND to_date('31/03/'||to_char(v_eff_start_date,'YYYY'),'dd/mm/yyyy')))
478: THEN
479: hr_utility.set_location('Start date and End date are in the same pension year ',6);
480: ELSE
481: fnd_file.put_line (fnd_file.LOG, 'Start date and End date should fall in the same pension year.');
482: hr_utility.set_location('Start date and End date should fall in the same tax year',8);
483: v_eff_start_date := Null; -- to exit the program
478: THEN
479: hr_utility.set_location('Start date and End date are in the same pension year ',6);
480: ELSE
481: fnd_file.put_line (fnd_file.LOG, 'Start date and End date should fall in the same pension year.');
482: hr_utility.set_location('Start date and End date should fall in the same tax year',8);
483: v_eff_start_date := Null; -- to exit the program
484: END IF;
485: END IF;
486: --6813970 begin
503: loop
504: j_formula_count := j_formula_count+1;
505: Formula_Element_Tab(j_formula_count).Element_name := substr(I.PCV_INFORMATION1,1,instr(I.PCV_INFORMATION1,'|')-1);
506: Formula_Element_Tab(j_formula_count).Formula_name := substr(I.PCV_INFORMATION1,instr(I.PCV_INFORMATION1,'|')+1);
507: hr_utility.trace(' Element_name '||j_formula_count|| Formula_Element_Tab(j_formula_count).Element_name);
508: hr_utility.trace(' Formula_name '||j_formula_count|| Formula_Element_Tab(j_formula_count).Formula_name);
509: end loop;
510: --6666135 End
511:
504: j_formula_count := j_formula_count+1;
505: Formula_Element_Tab(j_formula_count).Element_name := substr(I.PCV_INFORMATION1,1,instr(I.PCV_INFORMATION1,'|')-1);
506: Formula_Element_Tab(j_formula_count).Formula_name := substr(I.PCV_INFORMATION1,instr(I.PCV_INFORMATION1,'|')+1);
507: hr_utility.trace(' Element_name '||j_formula_count|| Formula_Element_Tab(j_formula_count).Element_name);
508: hr_utility.trace(' Formula_name '||j_formula_count|| Formula_Element_Tab(j_formula_count).Formula_name);
509: end loop;
510: --6666135 End
511:
512: v_eff_end_date_corr := v_eff_end_date;
509: end loop;
510: --6666135 End
511:
512: v_eff_end_date_corr := v_eff_end_date;
513: hr_utility.set_location('Effective Start Date: ' || p_effective_start_dt,1);
514: hr_utility.set_location('Effective End Date: ' || p_effective_end_dt,2);
515: hr_utility.set_location('Calculated End Date: ' || v_eff_end_date_corr, 3);
516: hr_utility.set_location('Calculated Start Date: ' || v_eff_start_date, 3);
517: hr_utility.set_location('p_assignment_set_id: ' || p_assignment_set_id, 3);
510: --6666135 End
511:
512: v_eff_end_date_corr := v_eff_end_date;
513: hr_utility.set_location('Effective Start Date: ' || p_effective_start_dt,1);
514: hr_utility.set_location('Effective End Date: ' || p_effective_end_dt,2);
515: hr_utility.set_location('Calculated End Date: ' || v_eff_end_date_corr, 3);
516: hr_utility.set_location('Calculated Start Date: ' || v_eff_start_date, 3);
517: hr_utility.set_location('p_assignment_set_id: ' || p_assignment_set_id, 3);
518: hr_utility.set_location('p_assignment_number: ' || p_assignment_number, 3);
511:
512: v_eff_end_date_corr := v_eff_end_date;
513: hr_utility.set_location('Effective Start Date: ' || p_effective_start_dt,1);
514: hr_utility.set_location('Effective End Date: ' || p_effective_end_dt,2);
515: hr_utility.set_location('Calculated End Date: ' || v_eff_end_date_corr, 3);
516: hr_utility.set_location('Calculated Start Date: ' || v_eff_start_date, 3);
517: hr_utility.set_location('p_assignment_set_id: ' || p_assignment_set_id, 3);
518: hr_utility.set_location('p_assignment_number: ' || p_assignment_number, 3);
519: hr_utility.set_location('p_employee_no: ' || p_employee_no, 3);
512: v_eff_end_date_corr := v_eff_end_date;
513: hr_utility.set_location('Effective Start Date: ' || p_effective_start_dt,1);
514: hr_utility.set_location('Effective End Date: ' || p_effective_end_dt,2);
515: hr_utility.set_location('Calculated End Date: ' || v_eff_end_date_corr, 3);
516: hr_utility.set_location('Calculated Start Date: ' || v_eff_start_date, 3);
517: hr_utility.set_location('p_assignment_set_id: ' || p_assignment_set_id, 3);
518: hr_utility.set_location('p_assignment_number: ' || p_assignment_number, 3);
519: hr_utility.set_location('p_employee_no: ' || p_employee_no, 3);
520: hr_utility.set_location('p_payroll_id: ' || p_payroll_id, 3);
513: hr_utility.set_location('Effective Start Date: ' || p_effective_start_dt,1);
514: hr_utility.set_location('Effective End Date: ' || p_effective_end_dt,2);
515: hr_utility.set_location('Calculated End Date: ' || v_eff_end_date_corr, 3);
516: hr_utility.set_location('Calculated Start Date: ' || v_eff_start_date, 3);
517: hr_utility.set_location('p_assignment_set_id: ' || p_assignment_set_id, 3);
518: hr_utility.set_location('p_assignment_number: ' || p_assignment_number, 3);
519: hr_utility.set_location('p_employee_no: ' || p_employee_no, 3);
520: hr_utility.set_location('p_payroll_id: ' || p_payroll_id, 3);
521: hr_utility.set_location('p_business_group_id: ' || p_business_group_id, 3);
514: hr_utility.set_location('Effective End Date: ' || p_effective_end_dt,2);
515: hr_utility.set_location('Calculated End Date: ' || v_eff_end_date_corr, 3);
516: hr_utility.set_location('Calculated Start Date: ' || v_eff_start_date, 3);
517: hr_utility.set_location('p_assignment_set_id: ' || p_assignment_set_id, 3);
518: hr_utility.set_location('p_assignment_number: ' || p_assignment_number, 3);
519: hr_utility.set_location('p_employee_no: ' || p_employee_no, 3);
520: hr_utility.set_location('p_payroll_id: ' || p_payroll_id, 3);
521: hr_utility.set_location('p_business_group_id: ' || p_business_group_id, 3);
522: hr_utility.set_location('p_mode: ' || p_mode, 3);
515: hr_utility.set_location('Calculated End Date: ' || v_eff_end_date_corr, 3);
516: hr_utility.set_location('Calculated Start Date: ' || v_eff_start_date, 3);
517: hr_utility.set_location('p_assignment_set_id: ' || p_assignment_set_id, 3);
518: hr_utility.set_location('p_assignment_number: ' || p_assignment_number, 3);
519: hr_utility.set_location('p_employee_no: ' || p_employee_no, 3);
520: hr_utility.set_location('p_payroll_id: ' || p_payroll_id, 3);
521: hr_utility.set_location('p_business_group_id: ' || p_business_group_id, 3);
522: hr_utility.set_location('p_mode: ' || p_mode, 3);
523: IF p_mode = 'Reprocess'
516: hr_utility.set_location('Calculated Start Date: ' || v_eff_start_date, 3);
517: hr_utility.set_location('p_assignment_set_id: ' || p_assignment_set_id, 3);
518: hr_utility.set_location('p_assignment_number: ' || p_assignment_number, 3);
519: hr_utility.set_location('p_employee_no: ' || p_employee_no, 3);
520: hr_utility.set_location('p_payroll_id: ' || p_payroll_id, 3);
521: hr_utility.set_location('p_business_group_id: ' || p_business_group_id, 3);
522: hr_utility.set_location('p_mode: ' || p_mode, 3);
523: IF p_mode = 'Reprocess'
524: THEN
517: hr_utility.set_location('p_assignment_set_id: ' || p_assignment_set_id, 3);
518: hr_utility.set_location('p_assignment_number: ' || p_assignment_number, 3);
519: hr_utility.set_location('p_employee_no: ' || p_employee_no, 3);
520: hr_utility.set_location('p_payroll_id: ' || p_payroll_id, 3);
521: hr_utility.set_location('p_business_group_id: ' || p_business_group_id, 3);
522: hr_utility.set_location('p_mode: ' || p_mode, 3);
523: IF p_mode = 'Reprocess'
524: THEN
525: l_mode := 'Y';
518: hr_utility.set_location('p_assignment_number: ' || p_assignment_number, 3);
519: hr_utility.set_location('p_employee_no: ' || p_employee_no, 3);
520: hr_utility.set_location('p_payroll_id: ' || p_payroll_id, 3);
521: hr_utility.set_location('p_business_group_id: ' || p_business_group_id, 3);
522: hr_utility.set_location('p_mode: ' || p_mode, 3);
523: IF p_mode = 'Reprocess'
524: THEN
525: l_mode := 'Y';
526: ELSIF p_mode = 'Incomplete'
527: THEN
528: l_mode := 'I';
529: END IF;
530: --
531: hr_utility.set_location('l_mode: ' || l_mode, 3);
532: FOR c_all_assignments in c_all_valid_assignment
533: LOOP
534: Begin
535: hr_utility.set_location('Inside valid Assignments'||c_all_assignments.assignment_id,20);
531: hr_utility.set_location('l_mode: ' || l_mode, 3);
532: FOR c_all_assignments in c_all_valid_assignment
533: LOOP
534: Begin
535: hr_utility.set_location('Inside valid Assignments'||c_all_assignments.assignment_id,20);
536:
537: if nvl(n_prev_assignment_id,'0.000') = c_all_assignments.assignment_id then
538: raise skip_assignment;
539: end if;
611:
612: OPEN c1_all_element(c_all_assignments.assignment_id);
613: LOOP
614: BEGIN
615: hr_utility.set_location('Inside valid Elements for the Assignment'||c_all_assignments.assignment_id,20);
616: FETCH c1_all_element into c1_all_element_data;
617: IF c1_all_element%NOTFOUND
618: THEN
619: CLOSE c1_all_element;
618: THEN
619: CLOSE c1_all_element;
620: EXIT;
621: END IF;
622: hr_utility.set_location('Checking for Historic rate type',25);
623: b_element_present := TRUE;
624:
625: l_ELEMENT_NAME := null;
626:
656: END IF;
657: ELSIF c2_PQP_UK_RATE_TYPE_data.EEI_INFORMATION1 = 'PQP_LGPS_PENSION_PAY'
658: THEN
659: --7369484 End
660: hr_utility.set_location('Historic Rate Type present for Element '||c1_all_element_data.element_type_id,26);
661: -- 7369484 Begin
662: b_rate_type := TRUE;
663: b_eng_rate := TRUE;
664: IF b_scot_rate = TRUE
672: OPEN c3_pqp_lgps_pension_pay(c1_all_element_data.element_type_id);
673: FETCH c3_pqp_lgps_pension_pay INTO c3_pqp_lgps_pension_pay_data;
674: IF c3_pqp_lgps_pension_pay%NOTFOUND
675: THEN
676: hr_utility.set_location('Pay Value Not Present',27);
677: IF l_ELEMENT_NAME IS NULL THEN
678: l_warning_msg := 'PQP_LGPS_MISSING_HISTORIC_RATE_INFO: Historic Rate - Element Attribution information missing for Element '||c1_all_element_data.Element_name||' in Assignment '||c_all_assignments.assignment_number;
679: fnd_file.put_line (fnd_file.LOG, l_warning_msg);
680: END IF;
679: fnd_file.put_line (fnd_file.LOG, l_warning_msg);
680: END IF;
681: ELSE
682: b_input_value_present := TRUE;
683: hr_utility.set_location('Pay Value Present',28);
684: END IF;
685: CLOSE c2_PQP_UK_RATE_TYPE;
686: CLOSE c3_pqp_lgps_pension_pay;
687: EXCEPTION
705: v_mode := 'UPDATE_CHANGE_INSERT';
706: ELSE
707: v_mode := 'UPDATE';
708: END IF;
709: hr_utility.set_location('Mode for update v_mode: ' || v_mode, 3);
710: --6813970 begin
711: -- IF (not b_element_present) or (not b_rate_type)
712: -- THEN
713: -- l_warning_msg := 'PQP_LGPS_MISSING_RATE_INFO: Historic Rate - Rate Type "LGPS Pensionable Pay" not set for elements against Assignment '||c_all_assignments.assignment_number;
716: l_warning_msg := 'PQP_LGPS_MISSING_RATE_INFO: Neither Historic Rate - Rate Type "LGPS Pensionable Pay" nor User defined formula set for elements against Assignment '||c_all_assignments.assignment_number;
717: --6813970 end
718: fnd_file.put_line (fnd_file.LOG, l_warning_msg);
719: l_lgps_process_flag := 'I';
720: hr_utility.set_location('Calling API to update LGPS Process Flag I',35);
721: pqp_aat_api.update_assignment_attribute
722: (p_validate => false
723: ,p_effective_date => v_assignment_eff_date --v_eff_start_date
724: ,p_datetrack_mode => v_mode
771: l_warning_msg := 'PQP_LGPS_MISSING_RATE_INFO: Neither Historic Rate - Rate Type "LGPS Pensionable Pay" nor User defined formula set for elements against Assignment '||c_all_assignments.assignment_number;
772: --6813970 end
773: fnd_file.put_line (fnd_file.LOG, l_warning_msg);
774: l_lgps_process_flag := 'I';
775: hr_utility.set_location('Calling API to insert LGPS Process Flag I',355);
776: pqp_aat_api.create_assignment_attribute
777: (p_effective_date => v_assignment_eff_date
778: ,p_business_group_id => p_business_group_id
779: ,p_assignment_id => c_all_assignments.assignment_id
809: k_aasgn_form_count := 0; --to skip processing of user defined formulae --6813970
810: b_input_value_present := FALSE; --to make the LGPS process flag as Incomplete.
811: End;
812: END IF;
813: hr_utility.set_location('Calculated Pensionable Pay'||l_lgps_pensionable_pay,40);
814:
815: ---- To calculate the value from user defined formula and add it to the value from historic rates function
816: --6813970 begin
817: -- IF b_rate_type
823: fnd_file.put_line(FND_FILE.OUTPUT, ' Assignment '||c_all_assignments.assignment_number ||' Historic rate value '||nvl(l_lgps_pensionable_pay,0));
824: END IF;
825: IF k_aasgn_form_count > 0 then
826:
827: hr_utility.set_location(' Calling RUN_USER_FORMULA ',25);
828: -- Call the formula to calculate the additional pension pay
829: /* Bug fix 8238736 Start
830: c_formula_pension_value := RUN_USER_FORMULA(c_all_assignments.assignment_id , v_assignment_eff_date , p_business_group_id , c_all_assignments.payroll_id, Formula_Tab , c_all_assignments.assignment_number);
831: */
830: c_formula_pension_value := RUN_USER_FORMULA(c_all_assignments.assignment_id , v_assignment_eff_date , p_business_group_id , c_all_assignments.payroll_id, Formula_Tab , c_all_assignments.assignment_number);
831: */
832: c_formula_pension_value := RUN_USER_FORMULA(c_all_assignments.assignment_id , v_assignment_eff_date , p_business_group_id , c_all_assignments.payroll_id, Formula_Tab , c_all_assignments.assignment_number, nvl(l_lgps_pensionable_pay,0));
833: -- Bug fix 8238736 End
834: hr_utility.set_location(' formula returned value '||c_formula_pension_value,40);
835:
836: --IF nvl(c_formula_pension_value,0) >= 0 -- equal to condition is added for bug 6857280
837: IF ( (nvl(c_formula_pension_value,0) + NVL(l_lgps_pensionable_pay,0)) >=0 ) -- BugFix 8238736
838: THEN
837: IF ( (nvl(c_formula_pension_value,0) + NVL(l_lgps_pensionable_pay,0)) >=0 ) -- BugFix 8238736
838: THEN
839: l_lgps_pensionable_pay := NVL(l_lgps_pensionable_pay,0) + c_formula_pension_value;
840: END IF;
841: hr_utility.set_location('After adding additional Pension Value'||l_lgps_pensionable_pay,42);
842:
843: END IF; --check for presence of formula in configuration value screen
844:
845: IF c_formula_pension_value is not null or l_lgps_pensionable_pay is not null
848: fnd_file.put_line(FND_FILE.OUTPUT, '-----------------------------Total value '||nvl(l_lgps_pensionable_pay,0));
849: l_lgps_process_flag := 'P';
850: IF b_pqp_found
851: THEN
852: hr_utility.trace(' updating the Contractual pay for effective date '||v_max_date|| ' mode '||v_mode||' OVN '||n_object_version_no);
853: pqp_aat_api.update_assignment_attribute
854: (p_validate => false
855: ,p_effective_date => v_assignment_eff_date --v_eff_start_date
856: ,p_datetrack_mode => v_mode
883: );
884: END LOOP;
885:
886: Else
887: hr_utility.set_location('Inserting the Contractual pay for effective date'||v_assignment_eff_date,555);
888: pqp_aat_api.create_assignment_attribute
889: (p_effective_date => v_assignment_eff_date
890: ,p_business_group_id => p_business_group_id
891: ,p_assignment_id => c_all_assignments.assignment_id
897: ,p_lgps_pensionable_pay => l_lgps_pensionable_pay
898: );
899: END IF; -- b_pqp_found
900: END IF; -- check for l_lgps_pensionable_pay
901: hr_utility.set_location('After updating Process flag to P'||c_all_assignments.assignment_id,45);
902: Raise skip_assignment;
903: END IF; --rate type entered
904:
905:
906: IF b_pqp_found THEN
907: IF (not b_input_value_present)
908: THEN
909: l_lgps_process_flag := 'I';
910: hr_utility.set_location('Calling API to update LGPS Process Flag I',30);
911: pqp_aat_api.update_assignment_attribute
912: (p_validate => false
913: ,p_effective_date => v_assignment_eff_date --v_eff_start_date
914: ,p_datetrack_mode => v_mode
942: Else
943: IF (not b_input_value_present)
944: THEN
945: l_lgps_process_flag := 'I';
946: hr_utility.set_location('Calling API to insert LGPS Process Flag I',305);
947: pqp_aat_api.create_assignment_attribute
948: (p_effective_date => v_assignment_eff_date
949: ,p_business_group_id => p_business_group_id
950: ,p_assignment_id => c_all_assignments.assignment_id
958: END IF;
959:
960: Exception
961: when skip_assignment then
962: hr_utility.set_location('Skipped Assignment'||c_all_assignments.assignment_id,45);
963: END;
964: END LOOP; --loop for all valid assignments
965: COMMIT;
966: hr_utility.set_location('Leaving: ' || l_proc, 100);
962: hr_utility.set_location('Skipped Assignment'||c_all_assignments.assignment_id,45);
963: END;
964: END LOOP; --loop for all valid assignments
965: COMMIT;
966: hr_utility.set_location('Leaving: ' || l_proc, 100);
967: END DERIVE_PENSIONABLE_PAY;
968: ---------------------------------------------------------------------
969: /* This section of code is ued by the formula functions
970: which inturn will be call from the pension element fast formula */