DECLARE
CURSOR c_contract
IS
SELECT DISTINCT pap.employee_number,
pap.person_id,
pcf.status,
pcf.duration,
pcf.duration_units,
pcf.CONTRACTUAL_JOB_TITLE,
pcf.TYPE,
CTR_INFORMATION1 old_emp_status,
pcf.CTR_INFORMATION_CATEGORY,
con.UPDATECONTRACTTYPE employment_status,
pcf.contract_id,
pcf.OBJECT_VERSION_NUMBER,
pcf.effective_start_date,
pcf.REFERENCE,
con.err_msg,
con.flag
FROM XX_TICKET_TMP con, per_all_people_f pap, per_contracts_f pcf
WHERE pap.employee_number = con.empno
AND TRUNC (SYSDATE) BETWEEN pap.effective_start_date
AND pap.effective_end_date
AND TRUNC (SYSDATE) BETWEEN pcf.effective_start_date
AND pcf.Effective_end_date
AND pcf.person_id = pap.person_id
AND pcf.status = 'A-ACTIVE'
AND con.UPDATECONTRACTTYPE NOT IN
(SELECT DECODE (CTR_INFORMATION1,
'BACHELOR_STATUS', 'Bachelor Status',
'FAMILY_STATUS', 'Family Status')
FROM per_contracts_f pc
WHERE TRUNC (SYSDATE) BETWEEN pc.effective_start_date
AND pc.Effective_end_date
AND pc.person_id = pap.person_id
AND pc.status = 'A-ACTIVE')
AND flag IS NULL
ORDER BY 1;
lc_c_contract c_contract%ROWTYPE;
l_effective_start_date DATE;
l_effective_end_date DATE;
l_object_version_number NUMBER;
error_desc VARCHAR2 (240);
lv_contract_flag CHAR (1);
--l_seq VARCHAR2 (20);
--v_type VARCHAR2 (80);
-- v_status VARCHAR2 (30);
v_emp_status VARCHAR2 (80);
BEGIN
OPEN c_contract;
LOOP
FETCH c_contract INTO lc_c_contract;
EXIT WHEN c_contract%NOTFOUND;
BEGIN
SELECT lookup_code
INTO v_emp_status
FROM fnd_lookup_values_vl
WHERE lookup_type = 'SA_EMPLOYMENT_STATUS'
AND meaning = lc_c_contract.employment_status;
EXCEPTION
WHEN OTHERS
THEN
error_desc := 'Invalid Employment Status-' || SQLERRM;
UPDATE XX_TICKET_TMP
SET err_msg = error_desc, flag = 'N'
WHERE TRIM (empno) = lc_c_contract.employee_number;
END;
/*============================API Starts===================================*/
BEGIN
hr_contract_api.update_contract (
p_validate => FALSE,
p_contract_id => lc_c_contract.contract_id,
p_effective_start_date => l_effective_start_date,
p_effective_end_date => l_effective_end_date,
p_object_version_number => lc_c_contract.object_version_number,
p_person_id => lc_c_contract.person_id,
p_reference => lc_c_contract.REFERENCE, -- ,p_type =>
p_type => lc_c_contract.TYPE,
p_status => lc_c_contract.status,
p_duration => lc_c_contract.duration,
p_duration_units => lc_c_contract.duration_units,
p_contractual_job_title => lc_c_contract.contractual_job_title,
p_ctr_information_category => lc_c_contract.CTR_INFORMATION_CATEGORY,
p_ctr_information1 => v_emp_status,
p_effective_date => SYSDATE,
p_datetrack_mode => 'CORRECTION');
IF lc_c_contract.contract_id IS NOT NULL
THEN
lv_contract_flag := 'Y';
error_desc := 'NO ERROR';
END IF;
IF lv_contract_flag = 'Y'
THEN
UPDATE XX_TICKET_TMP
SET err_msg = error_desc, flag = lv_contract_flag
WHERE TRIM (empno) = lc_c_contract.employee_number;
ELSE
error_desc := error_desc || SQLERRM;
UPDATE XX_TICKET_TMP
SET err_msg = error_desc, flag = 'N'
WHERE TRIM (empno) = lc_c_contract.employee_number;
END IF;
DBMS_OUTPUT.put_line ('Contracts Uploaded Successfully:! ');
DBMS_OUTPUT.put_line (
'CONTRACT ID : ' || lc_c_contract.contract_id);
EXCEPTION
WHEN OTHERS
THEN
lv_contract_flag := 'N';
error_desc := error_desc || SQLERRM;
UPDATE XX_TICKET_TMP
SET err_msg = error_desc, flag = lv_contract_flag
WHERE TRIM (empno) = lc_c_contract.employee_number;
DBMS_OUTPUT.put_line (SQLERRM);
END;
-- l_contract_id := '';
l_object_version_number := '';
l_effective_start_date := '';
l_effective_end_date := '';
error_desc := '';
lv_contract_flag := '';
--COMMIT;
END LOOP;
CLOSE c_contract;
--DBMS_OUTPUT.PUT_LINE('LOCATION ID : '||L_LOCATION_ID);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
CURSOR c_contract
IS
SELECT DISTINCT pap.employee_number,
pap.person_id,
pcf.status,
pcf.duration,
pcf.duration_units,
pcf.CONTRACTUAL_JOB_TITLE,
pcf.TYPE,
CTR_INFORMATION1 old_emp_status,
pcf.CTR_INFORMATION_CATEGORY,
con.UPDATECONTRACTTYPE employment_status,
pcf.contract_id,
pcf.OBJECT_VERSION_NUMBER,
pcf.effective_start_date,
pcf.REFERENCE,
con.err_msg,
con.flag
FROM XX_TICKET_TMP con, per_all_people_f pap, per_contracts_f pcf
WHERE pap.employee_number = con.empno
AND TRUNC (SYSDATE) BETWEEN pap.effective_start_date
AND pap.effective_end_date
AND TRUNC (SYSDATE) BETWEEN pcf.effective_start_date
AND pcf.Effective_end_date
AND pcf.person_id = pap.person_id
AND pcf.status = 'A-ACTIVE'
AND con.UPDATECONTRACTTYPE NOT IN
(SELECT DECODE (CTR_INFORMATION1,
'BACHELOR_STATUS', 'Bachelor Status',
'FAMILY_STATUS', 'Family Status')
FROM per_contracts_f pc
WHERE TRUNC (SYSDATE) BETWEEN pc.effective_start_date
AND pc.Effective_end_date
AND pc.person_id = pap.person_id
AND pc.status = 'A-ACTIVE')
AND flag IS NULL
ORDER BY 1;
lc_c_contract c_contract%ROWTYPE;
l_effective_start_date DATE;
l_effective_end_date DATE;
l_object_version_number NUMBER;
error_desc VARCHAR2 (240);
lv_contract_flag CHAR (1);
--l_seq VARCHAR2 (20);
--v_type VARCHAR2 (80);
-- v_status VARCHAR2 (30);
v_emp_status VARCHAR2 (80);
BEGIN
OPEN c_contract;
LOOP
FETCH c_contract INTO lc_c_contract;
EXIT WHEN c_contract%NOTFOUND;
BEGIN
SELECT lookup_code
INTO v_emp_status
FROM fnd_lookup_values_vl
WHERE lookup_type = 'SA_EMPLOYMENT_STATUS'
AND meaning = lc_c_contract.employment_status;
EXCEPTION
WHEN OTHERS
THEN
error_desc := 'Invalid Employment Status-' || SQLERRM;
UPDATE XX_TICKET_TMP
SET err_msg = error_desc, flag = 'N'
WHERE TRIM (empno) = lc_c_contract.employee_number;
END;
/*============================API Starts===================================*/
BEGIN
hr_contract_api.update_contract (
p_validate => FALSE,
p_contract_id => lc_c_contract.contract_id,
p_effective_start_date => l_effective_start_date,
p_effective_end_date => l_effective_end_date,
p_object_version_number => lc_c_contract.object_version_number,
p_person_id => lc_c_contract.person_id,
p_reference => lc_c_contract.REFERENCE, -- ,p_type =>
p_type => lc_c_contract.TYPE,
p_status => lc_c_contract.status,
p_duration => lc_c_contract.duration,
p_duration_units => lc_c_contract.duration_units,
p_contractual_job_title => lc_c_contract.contractual_job_title,
p_ctr_information_category => lc_c_contract.CTR_INFORMATION_CATEGORY,
p_ctr_information1 => v_emp_status,
p_effective_date => SYSDATE,
p_datetrack_mode => 'CORRECTION');
IF lc_c_contract.contract_id IS NOT NULL
THEN
lv_contract_flag := 'Y';
error_desc := 'NO ERROR';
END IF;
IF lv_contract_flag = 'Y'
THEN
UPDATE XX_TICKET_TMP
SET err_msg = error_desc, flag = lv_contract_flag
WHERE TRIM (empno) = lc_c_contract.employee_number;
ELSE
error_desc := error_desc || SQLERRM;
UPDATE XX_TICKET_TMP
SET err_msg = error_desc, flag = 'N'
WHERE TRIM (empno) = lc_c_contract.employee_number;
END IF;
DBMS_OUTPUT.put_line ('Contracts Uploaded Successfully:! ');
DBMS_OUTPUT.put_line (
'CONTRACT ID : ' || lc_c_contract.contract_id);
EXCEPTION
WHEN OTHERS
THEN
lv_contract_flag := 'N';
error_desc := error_desc || SQLERRM;
UPDATE XX_TICKET_TMP
SET err_msg = error_desc, flag = lv_contract_flag
WHERE TRIM (empno) = lc_c_contract.employee_number;
DBMS_OUTPUT.put_line (SQLERRM);
END;
-- l_contract_id := '';
l_object_version_number := '';
l_effective_start_date := '';
l_effective_end_date := '';
error_desc := '';
lv_contract_flag := '';
--COMMIT;
END LOOP;
CLOSE c_contract;
--DBMS_OUTPUT.PUT_LINE('LOCATION ID : '||L_LOCATION_ID);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
Every business needs to have a customer loyalty program. If you are curious to know more about transparent pricing model, Check out this site.
ReplyDeleteI haven’t any word to appreciate this post.....Really i am impressed from this post....the person who create this post it was a great human..thanks for shared this with us. kündigen
ReplyDelete