***This API used to create the new payroll.
CREATE OR REPLACE PROCEDURE xxse_create_payroll (
p_errbuf OUT VARCHAR2,
p_retcode OUT VARCHAR2,
p_emp_num IN VARCHAR2,
p_from_date IN VARCHAR2,
p_to_date IN VARCHAR2
)
-- =============================================================================
--
-- FILENAME
-- XXSE_CREATE_PAYROLL.prc
--
-- DESCRIPTION
-- SEERTREE: Create the Payroll
--
-- -----------------------------------------------------------------------------
--
-- CHANGE LIST
-- ===========
--
-- VERSION DATE AUTHOR COMMENT
-- -------+-----------+--------------------+------------------------------------
-- 1.1 30-Jan-2020 Subba Reddy Created.
--
IS
--Getting distinct Job codes from the Timesheet table for the employee
CURSOR c1
IS
SELECT DISTINCT x.job_code, xc.timesheet_type, pc.consolidation_set_id
FROM sawaeed.xx_upload_final_timesheet x,
sawaeed.xx_customer_interface xc,
pay_consolidation_sets pc
WHERE x.batch_id = xc.batch_id
AND xc.timesheet_type = pc.consolidation_set_name
AND x.employee_number = NVL (p_emp_num, x.employee_number)
AND x.gl_date BETWEEN TO_DATE (p_from_date,
'yyyy/mm/dd hh24:mi:ss'
)
AND TO_DATE (p_to_date,
'yyyy/mm/dd hh24:mi:ss'
);
--
l_cnt NUMBER;
--
l_payroll_id NUMBER;
l_org_pay_method_usage_id NUMBER;
l_comment_id NUMBER;
l_prl_object_version_number NUMBER;
l_opm_object_version_number NUMBER;
l_prl_effective_start_date DATE;
l_prl_effective_end_date DATE;
l_opm_effective_start_date DATE;
l_opm_effective_end_date DATE;
l_cost_alloc_keyflex_id_out NUMBER;
l_susp_account_keyflex_id_out NUMBER;
l_soft_coding_keyflex_id_out NUMBER;
l_cost_concat_segments_out NUMBER;
l_susp_concat_segments_out NUMBER;
l_scl_concat_segments_out NUMBER;
BEGIN
FOR i IN c1
LOOP
--Checking Payroll exist or not
BEGIN
l_cnt := NULL;
SELECT COUNT (*)
INTO l_cnt
FROM pay_payrolls_f
WHERE 1 = 1 AND payroll_name = i.job_code;
EXCEPTION
WHEN OTHERS
THEN
l_cnt := 0;
END;
IF l_cnt > 0
THEN
fnd_file.put_line (fnd_file.LOG, 'Payroll Exist:' || i.job_code);
ELSE
BEGIN
pay_payroll_api.create_payroll
(p_validate => FALSE,
p_effective_date => TO_DATE ('01-Jan-2000'),
p_payroll_name => i.job_code,
p_default_payment_method_id => 61,
p_consolidation_set_id => i.consolidation_set_id,
--PAY_CONSOLIDATION_SETS
p_period_type => 'Calendar Month',
p_first_period_end_date => TO_DATE ('31-DEC-2018'),
p_number_of_years => 7,
p_payroll_type => NULL,
p_pay_date_offset => 0,
p_direct_deposit_date_offset => 0,
p_pay_advice_date_offset => 0,
p_cut_off_date_offset => 0,
p_midpoint_offset => 0,
--Output variables
p_payroll_id => l_payroll_id,
p_org_pay_method_usage_id => l_org_pay_method_usage_id,
p_prl_object_version_number => l_prl_object_version_number,
p_opm_object_version_number => l_opm_object_version_number,
p_prl_effective_start_date => l_prl_effective_start_date,
p_prl_effective_end_date => l_prl_effective_end_date,
p_opm_effective_start_date => l_opm_effective_start_date,
p_opm_effective_end_date => l_opm_effective_end_date,
p_comment_id => l_comment_id,
p_cost_alloc_keyflex_id_out => l_cost_alloc_keyflex_id_out,
p_susp_account_keyflex_id_out => l_susp_account_keyflex_id_out,
p_soft_coding_keyflex_id_out => l_soft_coding_keyflex_id_out,
p_cost_concat_segments_out => l_cost_concat_segments_out,
p_susp_concat_segments_out => l_susp_concat_segments_out,
p_scl_concat_segments_out => l_scl_concat_segments_out
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
fnd_file.put_line (fnd_file.LOG,
'Error at Payroll Creation API :'
|| i.job_code
|| SQLERRM
);
END;
END IF;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
fnd_file.put_line (fnd_file.LOG,
'Error at Payroll Creation:' || SQLERRM
);
END;
CREATE OR REPLACE PROCEDURE xxse_create_payroll (
p_errbuf OUT VARCHAR2,
p_retcode OUT VARCHAR2,
p_emp_num IN VARCHAR2,
p_from_date IN VARCHAR2,
p_to_date IN VARCHAR2
)
-- =============================================================================
--
-- FILENAME
-- XXSE_CREATE_PAYROLL.prc
--
-- DESCRIPTION
-- SEERTREE: Create the Payroll
--
-- -----------------------------------------------------------------------------
--
-- CHANGE LIST
-- ===========
--
-- VERSION DATE AUTHOR COMMENT
-- -------+-----------+--------------------+------------------------------------
-- 1.1 30-Jan-2020 Subba Reddy Created.
--
IS
--Getting distinct Job codes from the Timesheet table for the employee
CURSOR c1
IS
SELECT DISTINCT x.job_code, xc.timesheet_type, pc.consolidation_set_id
FROM sawaeed.xx_upload_final_timesheet x,
sawaeed.xx_customer_interface xc,
pay_consolidation_sets pc
WHERE x.batch_id = xc.batch_id
AND xc.timesheet_type = pc.consolidation_set_name
AND x.employee_number = NVL (p_emp_num, x.employee_number)
AND x.gl_date BETWEEN TO_DATE (p_from_date,
'yyyy/mm/dd hh24:mi:ss'
)
AND TO_DATE (p_to_date,
'yyyy/mm/dd hh24:mi:ss'
);
--
l_cnt NUMBER;
--
l_payroll_id NUMBER;
l_org_pay_method_usage_id NUMBER;
l_comment_id NUMBER;
l_prl_object_version_number NUMBER;
l_opm_object_version_number NUMBER;
l_prl_effective_start_date DATE;
l_prl_effective_end_date DATE;
l_opm_effective_start_date DATE;
l_opm_effective_end_date DATE;
l_cost_alloc_keyflex_id_out NUMBER;
l_susp_account_keyflex_id_out NUMBER;
l_soft_coding_keyflex_id_out NUMBER;
l_cost_concat_segments_out NUMBER;
l_susp_concat_segments_out NUMBER;
l_scl_concat_segments_out NUMBER;
BEGIN
FOR i IN c1
LOOP
--Checking Payroll exist or not
BEGIN
l_cnt := NULL;
SELECT COUNT (*)
INTO l_cnt
FROM pay_payrolls_f
WHERE 1 = 1 AND payroll_name = i.job_code;
EXCEPTION
WHEN OTHERS
THEN
l_cnt := 0;
END;
IF l_cnt > 0
THEN
fnd_file.put_line (fnd_file.LOG, 'Payroll Exist:' || i.job_code);
ELSE
BEGIN
pay_payroll_api.create_payroll
(p_validate => FALSE,
p_effective_date => TO_DATE ('01-Jan-2000'),
p_payroll_name => i.job_code,
p_default_payment_method_id => 61,
p_consolidation_set_id => i.consolidation_set_id,
--PAY_CONSOLIDATION_SETS
p_period_type => 'Calendar Month',
p_first_period_end_date => TO_DATE ('31-DEC-2018'),
p_number_of_years => 7,
p_payroll_type => NULL,
p_pay_date_offset => 0,
p_direct_deposit_date_offset => 0,
p_pay_advice_date_offset => 0,
p_cut_off_date_offset => 0,
p_midpoint_offset => 0,
--Output variables
p_payroll_id => l_payroll_id,
p_org_pay_method_usage_id => l_org_pay_method_usage_id,
p_prl_object_version_number => l_prl_object_version_number,
p_opm_object_version_number => l_opm_object_version_number,
p_prl_effective_start_date => l_prl_effective_start_date,
p_prl_effective_end_date => l_prl_effective_end_date,
p_opm_effective_start_date => l_opm_effective_start_date,
p_opm_effective_end_date => l_opm_effective_end_date,
p_comment_id => l_comment_id,
p_cost_alloc_keyflex_id_out => l_cost_alloc_keyflex_id_out,
p_susp_account_keyflex_id_out => l_susp_account_keyflex_id_out,
p_soft_coding_keyflex_id_out => l_soft_coding_keyflex_id_out,
p_cost_concat_segments_out => l_cost_concat_segments_out,
p_susp_concat_segments_out => l_susp_concat_segments_out,
p_scl_concat_segments_out => l_scl_concat_segments_out
);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
fnd_file.put_line (fnd_file.LOG,
'Error at Payroll Creation API :'
|| i.job_code
|| SQLERRM
);
END;
END IF;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
fnd_file.put_line (fnd_file.LOG,
'Error at Payroll Creation:' || SQLERRM
);
END;
No comments:
Post a Comment