Employee Payroll Creation Using API
Declare
Cursor c_cost_emp_cur Is
Select paaf.assignment_id
From per_all_assignments_f paaf
,per_all_people_f papf
Where papf.person_id = paaf.person_id
And sysdate between papf.effective_start_date And papf.effective_end_date
And sysdate between paaf.effective_start_date and paaf.effective_end_date
And Not exists (Select 'x'
From pay_cost_Allocations_F pcaf
Where pcaf.assignment_id = paaf.assignment_id
And sysdate Between pcaf.effective_Start_date and pcaf.effective_end_date);
Type l_emp_rec Is Table of c_cost_emp_cur%rowtype Index By Pls_Integer;
l_emp_table l_emp_rec;
l_flag Boolean;
l_combination_name varchar2(150);
l_cost_allocation_id number;
l_cost_effective_start_date date;
l_cost_effective_end_date date;
l_cost_allocation_keyflex_id pay_cost_allocation_keyflex.cost_allocation_keyflex_id%type;
l_cost_obj_version_number number;
Begin
l_emp_table.delete;
Open c_cost_emp_cur;
Fetch c_cost_emp_cur Bulk Collect Into l_emp_table;
Close c_cost_emp_cur;
For i In 1..l_emp_table.Count
Loop
-- We enabled only cost center in cost allocation.
pay_cost_allocation_api.create_cost_allocation (p_validate => false
,p_effective_date => '01-nov-2015'
,p_assignment_id => l_emp_table(i).assignment_id
,p_proportion => 1 -- the parameter value should be 1 , This is equal to 100% entered via applcation screen
,p_business_group_id => 101
-- ,p_segment1 => l_company
,p_segment2 => '254'
--,p_segment3 => l_cost_code
--,p_segment4 => l_budget_code
--,p_segment5 => l_account
-- Out
,p_combination_name => l_combination_name
,p_cost_allocation_id => l_cost_allocation_id
,p_effective_start_date => l_cost_effective_start_date
,p_effective_end_date => l_cost_effective_end_date
,p_object_version_number => l_cost_obj_version_number
-- In / Out
,p_cost_allocation_keyflex_id => l_cost_allocation_keyflex_id
);
End Loop;
commit;
End;
No comments:
Post a Comment