To delete pending leaves
As far as i know there is no API to delete pending leaves.
Solution1:
This is my own way of deleting the leaves
CREATE OR REPLACE PROCEDURE xx_delete_pending_leaves
AS
CURSOR c1
IS
SELECT hat.transaction_id, hats.transaction_step_id
FROM hr_api_transactions hat, hr_api_transaction_steps hats
WHERE hat.transaction_ref_table = 'PER_ABSENCE_ATTENDANCES'
AND hat.transaction_group = 'ABSENCE_MGMT'
AND hat.transaction_identifier = 'ABSENCES'
AND hat.transaction_ref_id IS NOT NULL
AND hat.status = 'Y'
AND hat.transaction_id = hats.transaction_id;
--For a particular employee/pass the person_id values as a cursor parameter
--AND hat.CREATOR_PERSON_ID = 11923;
--AND hats.creator_person_id = p_person_id; -- Add date conditon later and person ID if required
l_transaction_id NUMBER;
l_transaction_step_id NUMBER;
l_error VARCHAR2 (300);
BEGIN
OPEN c1;
LOOP
FETCH c1
INTO l_transaction_id, l_transaction_step_id;
EXIT WHEN c1%NOTFOUND;
IF l_transaction_step_id IS NOT NULL
THEN
DELETE FROM hr_api_transaction_values
WHERE transaction_step_id = l_transaction_step_id;
DBMS_OUTPUT.put_line
( 'Deleted Transaction Value of transaction step id: '
|| l_transaction_step_id
);
END IF;
IF l_transaction_id IS NOT NULL
THEN
DELETE FROM hr_api_transaction_steps
WHERE transaction_id = l_transaction_id;
DBMS_OUTPUT.put_line
( 'Deleted Transaction step of transaction id: '
|| l_transaction_id
);
DELETE FROM hr_api_transactions
WHERE transaction_id = l_transaction_id;
DBMS_OUTPUT.put_line ('Deleted Transaction ID: ' || l_transaction_id);
END IF;
END LOOP;
CLOSE c1;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
l_error := SUBSTR (SQLERRM, 1, 200);
DBMS_OUTPUT.put_line ( 'Other Error in xx_delete_pending_leaves- '
|| l_error
);
--p_out := 'Other Error in xx_delete_pending_leaves- '||l_error; -- Removed OUT parameter
-- Write FND_LOG for concurrent program log
END xx_delete_pending_leaves;
Solution 2:
We can enable/disable the update/delete icon in Absence Management - HR self service responsibility. How ?
Solution: Get query from jsp page (OAF) (See Standard Query below) and change the decode value of cancel_icon, Confirm_icon and update_icon values by passing 'HrCancelEnabled/HrCancelDisabled' OR 'HrUpdateEnabled/HrUpdateDisabled' values and replace with the custom query.
Tables Used in Standard Query are:
per_absence_attendances,
per_absence_attendance_types,
per_abs_attendance_types_tl,
hr_lookups,
hr_api_transactions,
hr_api_transaction_steps
Standard Query:
SELECT NVL(paa.date_start,paa.date_projected_start) start_date
,NVL(paa.date_end,paa.date_projected_end) end_date
,paattl.name absence_type
,paat.absence_attendance_type_id absence_attendance_type_id
,fcl.meaning absence_category
,paat.absence_category absence_category_code
,paa.absence_hours
,(SELECT meaning from hr_lookups where 'A' = lookup_code(+) and 'LEAVE_STATUS' = lookup_type(+))
approval_status
, 'A' approval_status_code
,decode(paa.date_start,null,
(SELECT meaning from fnd_lookup_values
where lookup_type ='ABSENCE_STATUS' and lookup_code ='PLANNED'
and language = userenv('LANG')),
(SELECT meaning from fnd_lookup_values
where lookup_type ='ABSENCE_STATUS' and lookup_code ='CONFIRMED'
and language = userenv('LANG')))
absence_status
, decode(paa.date_start,null,'PLANNED','CONFIRMED') absence_status_code
,(nvl((SELECT 'Y'
from fnd_attached_documents
where entity_name='PER_ABSENCE_ATTENDANCES'
and pk1_value = to_char(paa.absence_attendance_id) and rownum = 1),'N')) supporting_documents
,decode (
paa.date_start,null,
decode(paa.date_projected_start, null, 'HrCancelDisabled', 'HrCancelEnabled'),
decode(
sign(trunc(paa.date_start)-trunc(sysdate)),1,'HrCancelEnabled',
decode(paa.date_end,null,'HrCancelEnabled','HrCancelDisabled')
)
)
cancel_icon
,decode(paa.date_end,NULL,
decode(paa.date_start,Null, 'HrConfirmEnabled','HrConfirmDisabled'), 'HrConfirmDisabled' )
confirm_icon
,decode ( paa.date_start,null,
'HrUpdateEnabled',
decode(sign(nvl(paa.date_end,sysdate+1)-sysdate),1,'HrUpdateEnabled','HrUpdateDisabled'))
update_icon
,NULL
details_icon
,paa.absence_attendance_id
,null transaction_id
,to_char(paa.absence_attendance_id) supportingDocKey
,paa.absence_days
FROM per_absence_attendances paa
,per_absence_attendance_types paat
,per_abs_attendance_types_tl paattl
,hr_lookups fcl
WHERE 1=1
and paa.person_id = :1
and paa.business_group_id+0 = :2
and paa.absence_attendance_type_id = paat.absence_attendance_type_id
and paat.absence_attendance_type_id = paattl.absence_attendance_type_id
and paattl.language = userenv('LANG')
and fcl.lookup_type(+) = 'ABSENCE_CATEGORY'
and paat.absence_category = fcl.lookup_code(+)
and ((hr_api.return_legislation_code(paat.business_group_id) = 'GB'
and nvl(paat.absence_category,'#') not in
('M','GB_PAT_ADO','GB_PAT_BIRTH','GB_ADO'))
or
(hr_api.return_legislation_code(paat.business_group_id) <> 'GB'
and nvl(paat.absence_category,'#') not in
('GB_PAT_ADO','GB_PAT_BIRTH','GB_ADO')))
and not exists
( select 'e'
from hr_api_transactions t
WHERE
t.selected_person_id = paa.person_id
and t.CREATOR_PERSON_ID = nvl(:3,t.CREATOR_PERSON_ID)
and t.transaction_ref_table='PER_ABSENCE_ATTENDANCES'
and t.transaction_ref_id = paa.absence_attendance_id
and not(hr_absutil_ss.getabsencetype(t.transaction_id, NULL) IS NULL
and t.status = 'W')
and t.status not in ('D','E')
)
union all
select hr_absutil_ss.getStartDate(hat.transaction_id,null) start_date
,hr_absutil_ss.getEndDate(hat.transaction_id,null) end_date
,hr_absutil_ss.getAbsenceType(hat.transaction_id,null) absence_type
, to_number(hats.Information5) absence_attendance_type_id
,hr_absutil_ss.getAbsenceCategory(hat.transaction_id,null) absence_category
, hats.Information6 absence_category_code
,hr_absutil_ss.getAbsenceHoursDuration(hat.transaction_id,null) absence_hours
,hr_absutil_ss.getApprovalStatus(hat.transaction_id,null) approval_status
,hr_absutil_ss.getApprovalStatusCode(hat.transaction_id,null) approval_status_code
,hr_absutil_ss.getAbsenceStatus(hat.transaction_id,null) absence_status
, hats.Information9 absence_status_code
,hr_absutil_ss.hasSupportingDocuments(hat.transaction_id,hat.TRANSACTION_REF_ID) supporting_documents
,hr_absutil_ss.isCancelAllowed(hat.transaction_id,null,hat.status) cancel_icon
,hr_absutil_ss.isConfirmAllowed(hat.transaction_id,null) confirm_icon
,hr_absutil_ss.isUpdateAllowed(hat.transaction_id,null,hat.status) update_icon
,null details_icon
,hat.TRANSACTION_REF_ID absence_attendance_id
,hat.transaction_id transaction_id
,to_char(hat.TRANSACTION_REF_ID||'_'||hat.transaction_id) supportingDocKey
,hr_absutil_ss.getAbsenceDaysDuration(hat.transaction_id,null) absence_days
from hr_api_transactions hat
,hr_api_transaction_steps hats
where hat.TRANSACTION_REF_TABLE='PER_ABSENCE_ATTENDANCES'
and hat.TRANSACTION_GROUP='ABSENCE_MGMT'
and hat.TRANSACTION_IDENTIFIER='ABSENCES'
and hat.TRANSACTION_REF_ID is not null
--and hat.SELECTED_PERSON_ID =:4
--and hat.CREATOR_PERSON_ID = nvl(:5,hat.CREATOR_PERSON_ID)
and hat.transaction_id=hats.transaction_id(+)
and hat.status not in ('D','E')
and not (hr_absutil_ss.getabsencetype(hat.transaction_id,null) is null and hat.status='W')
As far as i know there is no API to delete pending leaves.
Solution1:
This is my own way of deleting the leaves
CREATE OR REPLACE PROCEDURE xx_delete_pending_leaves
AS
CURSOR c1
IS
SELECT hat.transaction_id, hats.transaction_step_id
FROM hr_api_transactions hat, hr_api_transaction_steps hats
WHERE hat.transaction_ref_table = 'PER_ABSENCE_ATTENDANCES'
AND hat.transaction_group = 'ABSENCE_MGMT'
AND hat.transaction_identifier = 'ABSENCES'
AND hat.transaction_ref_id IS NOT NULL
AND hat.status = 'Y'
AND hat.transaction_id = hats.transaction_id;
--For a particular employee/pass the person_id values as a cursor parameter
--AND hat.CREATOR_PERSON_ID = 11923;
--AND hats.creator_person_id = p_person_id; -- Add date conditon later and person ID if required
l_transaction_id NUMBER;
l_transaction_step_id NUMBER;
l_error VARCHAR2 (300);
BEGIN
OPEN c1;
LOOP
FETCH c1
INTO l_transaction_id, l_transaction_step_id;
EXIT WHEN c1%NOTFOUND;
IF l_transaction_step_id IS NOT NULL
THEN
DELETE FROM hr_api_transaction_values
WHERE transaction_step_id = l_transaction_step_id;
DBMS_OUTPUT.put_line
( 'Deleted Transaction Value of transaction step id: '
|| l_transaction_step_id
);
END IF;
IF l_transaction_id IS NOT NULL
THEN
DELETE FROM hr_api_transaction_steps
WHERE transaction_id = l_transaction_id;
DBMS_OUTPUT.put_line
( 'Deleted Transaction step of transaction id: '
|| l_transaction_id
);
DELETE FROM hr_api_transactions
WHERE transaction_id = l_transaction_id;
DBMS_OUTPUT.put_line ('Deleted Transaction ID: ' || l_transaction_id);
END IF;
END LOOP;
CLOSE c1;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
l_error := SUBSTR (SQLERRM, 1, 200);
DBMS_OUTPUT.put_line ( 'Other Error in xx_delete_pending_leaves- '
|| l_error
);
--p_out := 'Other Error in xx_delete_pending_leaves- '||l_error; -- Removed OUT parameter
-- Write FND_LOG for concurrent program log
END xx_delete_pending_leaves;
Solution 2:
We can enable/disable the update/delete icon in Absence Management - HR self service responsibility. How ?
Solution: Get query from jsp page (OAF) (See Standard Query below) and change the decode value of cancel_icon, Confirm_icon and update_icon values by passing 'HrCancelEnabled/HrCancelDisabled' OR 'HrUpdateEnabled/HrUpdateDisabled' values and replace with the custom query.
Tables Used in Standard Query are:
per_absence_attendances,
per_absence_attendance_types,
per_abs_attendance_types_tl,
hr_lookups,
hr_api_transactions,
hr_api_transaction_steps
Standard Query:
SELECT NVL(paa.date_start,paa.date_projected_start) start_date
,NVL(paa.date_end,paa.date_projected_end) end_date
,paattl.name absence_type
,paat.absence_attendance_type_id absence_attendance_type_id
,fcl.meaning absence_category
,paat.absence_category absence_category_code
,paa.absence_hours
,(SELECT meaning from hr_lookups where 'A' = lookup_code(+) and 'LEAVE_STATUS' = lookup_type(+))
approval_status
, 'A' approval_status_code
,decode(paa.date_start,null,
(SELECT meaning from fnd_lookup_values
where lookup_type ='ABSENCE_STATUS' and lookup_code ='PLANNED'
and language = userenv('LANG')),
(SELECT meaning from fnd_lookup_values
where lookup_type ='ABSENCE_STATUS' and lookup_code ='CONFIRMED'
and language = userenv('LANG')))
absence_status
, decode(paa.date_start,null,'PLANNED','CONFIRMED') absence_status_code
,(nvl((SELECT 'Y'
from fnd_attached_documents
where entity_name='PER_ABSENCE_ATTENDANCES'
and pk1_value = to_char(paa.absence_attendance_id) and rownum = 1),'N')) supporting_documents
,decode (
paa.date_start,null,
decode(paa.date_projected_start, null, 'HrCancelDisabled', 'HrCancelEnabled'),
decode(
sign(trunc(paa.date_start)-trunc(sysdate)),1,'HrCancelEnabled',
decode(paa.date_end,null,'HrCancelEnabled','HrCancelDisabled')
)
)
cancel_icon
,decode(paa.date_end,NULL,
decode(paa.date_start,Null, 'HrConfirmEnabled','HrConfirmDisabled'), 'HrConfirmDisabled' )
confirm_icon
,decode ( paa.date_start,null,
'HrUpdateEnabled',
decode(sign(nvl(paa.date_end,sysdate+1)-sysdate),1,'HrUpdateEnabled','HrUpdateDisabled'))
update_icon
,NULL
details_icon
,paa.absence_attendance_id
,null transaction_id
,to_char(paa.absence_attendance_id) supportingDocKey
,paa.absence_days
FROM per_absence_attendances paa
,per_absence_attendance_types paat
,per_abs_attendance_types_tl paattl
,hr_lookups fcl
WHERE 1=1
and paa.person_id = :1
and paa.business_group_id+0 = :2
and paa.absence_attendance_type_id = paat.absence_attendance_type_id
and paat.absence_attendance_type_id = paattl.absence_attendance_type_id
and paattl.language = userenv('LANG')
and fcl.lookup_type(+) = 'ABSENCE_CATEGORY'
and paat.absence_category = fcl.lookup_code(+)
and ((hr_api.return_legislation_code(paat.business_group_id) = 'GB'
and nvl(paat.absence_category,'#') not in
('M','GB_PAT_ADO','GB_PAT_BIRTH','GB_ADO'))
or
(hr_api.return_legislation_code(paat.business_group_id) <> 'GB'
and nvl(paat.absence_category,'#') not in
('GB_PAT_ADO','GB_PAT_BIRTH','GB_ADO')))
and not exists
( select 'e'
from hr_api_transactions t
WHERE
t.selected_person_id = paa.person_id
and t.CREATOR_PERSON_ID = nvl(:3,t.CREATOR_PERSON_ID)
and t.transaction_ref_table='PER_ABSENCE_ATTENDANCES'
and t.transaction_ref_id = paa.absence_attendance_id
and not(hr_absutil_ss.getabsencetype(t.transaction_id, NULL) IS NULL
and t.status = 'W')
and t.status not in ('D','E')
)
union all
select hr_absutil_ss.getStartDate(hat.transaction_id,null) start_date
,hr_absutil_ss.getEndDate(hat.transaction_id,null) end_date
,hr_absutil_ss.getAbsenceType(hat.transaction_id,null) absence_type
, to_number(hats.Information5) absence_attendance_type_id
,hr_absutil_ss.getAbsenceCategory(hat.transaction_id,null) absence_category
, hats.Information6 absence_category_code
,hr_absutil_ss.getAbsenceHoursDuration(hat.transaction_id,null) absence_hours
,hr_absutil_ss.getApprovalStatus(hat.transaction_id,null) approval_status
,hr_absutil_ss.getApprovalStatusCode(hat.transaction_id,null) approval_status_code
,hr_absutil_ss.getAbsenceStatus(hat.transaction_id,null) absence_status
, hats.Information9 absence_status_code
,hr_absutil_ss.hasSupportingDocuments(hat.transaction_id,hat.TRANSACTION_REF_ID) supporting_documents
,hr_absutil_ss.isCancelAllowed(hat.transaction_id,null,hat.status) cancel_icon
,hr_absutil_ss.isConfirmAllowed(hat.transaction_id,null) confirm_icon
,hr_absutil_ss.isUpdateAllowed(hat.transaction_id,null,hat.status) update_icon
,null details_icon
,hat.TRANSACTION_REF_ID absence_attendance_id
,hat.transaction_id transaction_id
,to_char(hat.TRANSACTION_REF_ID||'_'||hat.transaction_id) supportingDocKey
,hr_absutil_ss.getAbsenceDaysDuration(hat.transaction_id,null) absence_days
from hr_api_transactions hat
,hr_api_transaction_steps hats
where hat.TRANSACTION_REF_TABLE='PER_ABSENCE_ATTENDANCES'
and hat.TRANSACTION_GROUP='ABSENCE_MGMT'
and hat.TRANSACTION_IDENTIFIER='ABSENCES'
and hat.TRANSACTION_REF_ID is not null
--and hat.SELECTED_PERSON_ID =:4
--and hat.CREATOR_PERSON_ID = nvl(:5,hat.CREATOR_PERSON_ID)
and hat.transaction_id=hats.transaction_id(+)
and hat.status not in ('D','E')
and not (hr_absutil_ss.getabsencetype(hat.transaction_id,null) is null and hat.status='W')
nonton ayam bankok hanya di www.bolavita.org
ReplyDeleteMost prostate cancers are adenocarcinomas, cancers that arise in glandular cells of the prostate’s epithelial tissue. Prostate cancers usually progress slowly and produce no symptoms in the initial stages. Eventually, the tumor may enlarge like mine use too, the prostate gland, pressing on the urethra and causing painful or frequent urination and blood in the urine. So I was so uncomfortable with this prostate cancer diseases then I decided to do online search on how to cure cancer because I well have read a lot about herbal medicine,I came across a lot of testimony how Dr Itua cure HIV/herpes then Cancer was listed below the comment.with courage I contacted Dr Itua and he sent me his herbal medicine through Courier service then I was asked to pick it up at my post office which i quickly did. I contacted Dr Itua that i have received my herbal medicine so he instructs me on how to drink it for three weeks and that is how Dr Itua Herbal Medicine cure my prostate Cancer, The treatment takes three weeks and I was cured completely. Dr Itua is a god sent and I thank him every day of my life. Contact him now On:Email:drituaherbalcenter@gmail.com/Whatsapp:+2348149277967.
ReplyDeleteHe listed to that he can as well cure the following diseases below.... Cerebral Amides. Lung Cancer, Alzheimer's disease, Adrenocortical carcinoma. Alma, Uterine Cancer, Breast Cancer, Allergic diseases. Kidney cancer, Love Spell, Colo rectal cancer, Lottery Spell, Bladder Cancer, Skin Cancer, HIV /Aids, Herpes, Non-Hodgkin lymphoma, Inflammatory bowel disease, Copd, Diabetes, Hepatitis