Professional Documents
Culture Documents
Enrollment
Enrollment
PROCEDURE XXCREATE_EXTERNAL_ENROLLMENT (
p_person_id IN NUMBER,
p_trng_title IN VARCHAR2,
p_activity_version_id IN NUMBER DEFAULT NULL ,
p_provider IN VARCHAR2,
p_type IN VARCHAR2 DEFAULT NULL ,
p_centre IN VARCHAR2 DEFAULT NULL ,
p_completion_date IN DATE,
p_duration IN NUMBER DEFAULT NULL ,
p_duration_units IN VARCHAR2 DEFAULT NULL ,
p_status IN VARCHAR2 DEFAULT NULL ,
p_organization_id IN NUMBER DEFAULT NULL ,
p_business_group_id IN NUMBER,
p_nota_history_id OUT NOCOPY NUMBER,
p_object_version_number OUT NOCOPY NUMBER,
p_some_warning OUT NOCOPY BOOLEAN,
p_error_message OUT VARCHAR2
)
IS
l_validate BOOLEAN := FALSE;
BEGIN
ota_nhs_api.create_non_ota_histories (
p_validate => l_validate,
p_effective_date => TRUNC (SYSDATE),
p_person_id => p_person_id,
p_trng_title => p_trng_title,
p_activity_version_id => p_activity_version_id,
p_provider => p_provider,
p_type => 'ILT',
p_centre => NULL,
p_completion_date => p_completion_date,
p_duration => p_duration,
p_duration_units => 'D',
p_status => 'ATT' --– Attended
,
p_organization_id => p_organization_id,
p_business_group_id => 81,
p_nota_history_id => p_nota_history_id,
p_object_version_number => p_object_version_number,
p_some_warning => p_some_warning
);
IF p_some_warning
THEN
p_error_message := 'Error External API: ' || SUBSTR (SQLERRM, 1, 250);
ELSE
p_error_message := 'Success';
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
p_error_message := 'Error Main Package: ' || SUBSTR (SQLERRM, 1, 250);
END;
select TO_CHAR(SYSDATE,'DDMMYYYYHHMMSS')
into l_time
from DUAL ;
l_role_name := l_role_name || l_time ;
l_role_display_name := l_role_display_name || l_time ;
*/
IF funcmode = 'RUN'
THEN
l_trainingreq_no :=
wf_engine.getitemattrnumber (itemtype => itemtype,
itemkey => itemkey,
aname => 'TRAINING_REQ_NUMBER');
l_max_count :=
wf_engine.getitemattrnumber (itemtype => itemtype,
itemkey => itemkey,
aname => 'XXAPPROVALCOUNT');
l_current_value :=
wf_engine.getitemattrnumber (itemtype => itemtype,
itemkey => itemkey,
aname => 'XXCURAPPR_VAL');
l_supervisor_id :=
wf_engine.getitemattrnumber (itemtype => itemtype,
itemkey => itemkey,
aname => 'SUPERVISOR_ID');
l_employee_number :=
wf_engine.GetItemAttrText (itemtype => itemtype,
itemkey => itemkey,
aname => 'EMPLOYEE_NUMBER');
xxpo_ppc_utils.create_log (
'XXOLA:ITEMKEY 1:' || itemkey,
'Supplier ID: '
|| l_supervisor_id
|| ' Current Val: '
|| l_current_value
|| ' MAX COUNT: '
|| l_max_count
|| ' TRE REQ. NO: '
|| l_trainingreq_no
);
-----------------------------------------------------------------------------
IF l_current_value + 1 > l_max_count
THEN
-----------------------------------------------------------------------------
WF_DIRECTORY.CreateAdHocRole (
role_name => l_role_name,
role_display_name => l_role_display_name,
language => 'AMERICAN',
territory => 'AMERICA',
email_address => NULL,
notification_preference => 'MAILHTML'
);
--COMMIT; -- Commented on 08FEB2016
xxpo_ppc_utils.create_log (
'XXOLA:ITEMKEY 2:' || itemkey,
'Supplier ID: '
|| l_supervisor_id
|| ' Current Val: '
|| l_current_value
|| ' MAX COUNT: '
|| l_max_count
|| ' TRE REQ. NO: '
|| l_trainingreq_no
);
FOR l_rec
IN (SELECT fu.user_name
FROM fnd_user fu,
per_all_people_f papf,
per_all_assignments_f paaf,
per_business_groups pbg
WHERE TRUNC (SYSDATE) BETWEEN NVL (fu.start_date,
TRUNC (SYSDATE))
AND NVL (fu.end_date,
TRUNC (SYSDATE))
AND fu.employee_id = papf.person_id
AND papf.current_employee_flag = 'Y'
AND TRUNC (SYSDATE) BETWEEN papf.effective_start_date
AND papf.effective_end_date
AND papf.person_id = paaf.person_id
AND papf.business_group_id = paaf.business_group_id
AND pbg.business_group_id = papf.business_group_id
AND pbg.business_group_id = 81
AND TRUNC (SYSDATE) BETWEEN paaf.effective_start_date
AND paaf.effective_end_date
AND papf.employee_number IN
(SELECT flv.meaning
FROM fnd_lookup_values flv,
fnd_lookup_types_tl fltt
WHERE flv.description IN
('Payroll Administrator',
'Procurement Section Head',
'Relations and Awareness Section
Head')
AND TRUNC (SYSDATE) BETWEEN NVL (
flv.start_date_active,
TRUNC(SYSDATE)
)
AND NVL (
flv.end_date_active,
TRUNC(SYSDATE)
)
AND flv.lookup_type =
fltt.lookup_type
AND fltt.lookup_type =
'XXSSDC_HRSSA_APPROVERS'
AND fltt.LANGUAGE = flv.LANGUAGE
AND fltt.LANGUAGE =
USERENV ('LANG')))
LOOP
lcount := lcount + 1;
xxpo_ppc_utils.create_log (
'XXOLA:ITEMKEY 3:' || itemkey,
'Supplier ID: '
|| l_supervisor_id
|| ' Current Val: '
|| l_current_value
|| ' MAX COUNT: '
|| l_max_count
|| ' TRE REQ. NO: '
|| l_trainingreq_no
);
IF lcount = 1
THEN
l_users := l_rec.user_name;
ELSE
l_users := l_users || ' ' || l_rec.user_name;
END IF;
------- Added Employee also for FYI
END LOOP;
-----------------------------------------------------------------------------
ELSE
-----------------------------------------------------------------------------
xxpo_ppc_utils.create_log (
'XXOLA:ITEMKEY 5:' || itemkey,
'Supplier ID: '
|| l_supervisor_id
|| ' Current Val: '
|| l_current_value
|| ' MAX COUNT: '
|| l_max_count
|| ' TRE REQ. NO: '
|| l_trainingreq_no
);
BEGIN
SELECT fvl.meaning, fvl.description
INTO l_firstapproval, l_description
FROM FND_LOOKUP_VALUES_VL fvl
WHERE fvl.LOOKUP_TYPE = 'XXOLA_APPROVAL'
AND fvl.ENABLED_FLAG = 'Y'
AND TO_NUMBER (fvl.tag) = l_current_value + 1
ORDER BY TO_NUMBER (fvl.tag);
xxpo_ppc_utils.create_log (
'XXOLA:ITEMKEY 6:' || itemkey,
'Supplier ID: '
|| l_supervisor_id
|| ' Current Val: '
|| l_current_value
|| ' MAX COUNT: '
|| l_max_count
|| ' TRE REQ. NO: '
|| l_trainingreq_no
);
IF l_firstapproval = 'Supervisor'
THEN
/*
select user_name
into l_firstapproval
from fnd_user
where employee_id IN ( select supervisor_id from
XXOLA_ENROLLMENT_HDR where TRAINING_REQ_NUMBER = l_trainingreq_no );
*/
SELECT 'U' || per.employee_number
INTO l_firstapproval
FROM per_all_people_f per
WHERE per.person_id IN
(SELECT xper.supervisor_id
FROM XXOLA_ENROLLMENT_HDR xper
WHERE xper.TRAINING_REQ_NUMBER =
l_trainingreq_no)
AND TRUNC (SYSDATE) BETWEEN
TRUNC(per.EFFECTIVE_START_DATE)
AND TRUNC(NVL (
per.EFFECTIVE_END_DATE,
SYSDATE
));
ELSIF l_firstapproval = 'Employee'
THEN
SELECT 'U' || per.employee_number
INTO l_firstapproval
FROM per_all_people_f per
WHERE per.employee_number IN
(SELECT xper.EMPLOYEE_NUMBER
FROM XXOLA_ENROLLMENT_HDR xper
WHERE xper.TRAINING_REQ_NUMBER =
l_trainingreq_no)
AND TRUNC (SYSDATE) BETWEEN
TRUNC(per.EFFECTIVE_START_DATE)
AND TRUNC(NVL (
per.EFFECTIVE_END_DATE,
SYSDATE
));
END IF;
FOR l_rec
IN ( SELECT wtt.text_value
FROM wf_notification_attributes wtt,
wf_notifications wf
WHERE wtt.NOTIFICATION_ID = wf.notification_id
AND wf.MESSAGE_TYPE = 'XXOLA'
AND wf.message_name = 'XXENROLMSG'
AND wf.item_key = itemkey
AND wtt.name = 'XXCOMMENTS'
ORDER BY wf.notification_id DESC)
LOOP
lc_note := lc_note || l_rec.text_value;
EXIT;
END LOOP;
IF l_current_value = 1
THEN
WF_ENGINE.SetItemAttrText (itemtype,
itemkey,
'CEO_JUST_DTL1',
lc_note);
ELSIF l_current_value = 2
THEN
WF_ENGINE.SetItemAttrText (itemtype,
itemkey,
'CEO_JUST_DTL2',
lc_note);
ELSIF l_current_value = 3
THEN
WF_ENGINE.SetItemAttrText (itemtype,
itemkey,
'CEO_JUST_DTL3',
lc_note);
ELSIF l_current_value = 4
THEN
WF_ENGINE.SetItemAttrText (itemtype,
itemkey,
'CEO_JUST_DTL4',
lc_note);
ELSIF l_current_value = 5
THEN
WF_ENGINE.SetItemAttrText (itemtype,
itemkey,
'CEO_JUST_DTL5',
lc_note);
ELSIF l_current_value = 6
THEN
WF_ENGINE.SetItemAttrText (itemtype,
itemkey,
'CEO_JUST_DTL6',
lc_note);
ELSIF l_current_value = 7
THEN
WF_ENGINE.SetItemAttrText (itemtype,
itemkey,
'CEO_JUST_DTL7',
lc_note);
ELSIF l_current_value = 8
THEN
WF_ENGINE.SetItemAttrText (itemtype,
itemkey,
'CEO_JUST_DTL8',
lc_note);
END IF;
xxpo_ppc_utils.create_log (
'XXOLA:ITEMKEY 8:' || itemkey,
'Supplier ID: '
|| l_supervisor_id
|| ' Current Val: '
|| l_current_value
|| ' MAX COUNT: '
|| l_max_count
|| ' TRE REQ. NO: '
|| l_trainingreq_no
);
------------ Message Comments:
WF_ENGINE.SetItemAttrText (itemtype,
itemkey,
'XXCURAPPR_VAL',
l_current_value + 1);
WF_ENGINE.SetItemAttrText (itemtype,
itemkey,
'XXENROLL',
l_firstapproval);
resultout := 'COMPLETE:N';
xxpo_ppc_utils.create_log (
'XXOLA:ITEMKEY 9:' || itemkey,
'Supplier ID: '
|| l_supervisor_id
|| ' Current Val: '
|| l_current_value
|| ' MAX COUNT: '
|| l_max_count
|| ' TRE REQ. NO: '
|| l_trainingreq_no
);
EXCEPTION
WHEN OTHERS
THEN
RAISE;
END;
BEGIN
SELECT papf.first_name || ' ' || papf.last_name, hot.name
INTO lc_emp_Full_name, lc_org_name
FROM per_All_people_F papf,
fnd_user fu,
per_All_assignments_F paaf,
HR_ALL_ORGANIZATION_UNITS_TL hot
WHERE fu.employee_id = papf.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 paaf.person_id = papf.person_id
AND hot.ORGANIZATION_ID = paaf.ORGANIZATION_ID
AND hot.language = 'US'
AND fu.user_name = l_firstapproval;
EXCEPTION
WHEN OTHERS
THEN
lc_emp_Full_name := NULL;
lc_org_name := NULL;
END;
UPDATE XXOLA_ENROLLMENT_HDR
SET approval_Status =
'Pending with'
|| ' '
|| lc_emp_Full_name
|| ' for '
|| lc_org_name
|| ' Department.',
TICKET_STATUS = 'Pending Approval'
WHERE TRAINING_REQ_NUMBER = l_trainingreq_no;
-----------------------------------------------------------------------------
END IF;
-----------------------------------------------------------------------------
WF_ENGINE.SetItemAttrText (itemtype,
itemkey,
'XXCOMMENTS',
NULL);
--- 14NOV2015
IF lc_ticket_status =
'Pending Approval for after training approval request'
THEN
UPDATE XXOLA_ENROLLMENT_HDR
SET TICKET_STATUS = 'Closed',
APPROVAL_STATUS = 'Approved'
WHERE TRAINING_REQ_NUMBER = l_trainingreq_no;
ELSE
UPDATE XXOLA_ENROLLMENT_HDR
SET TICKET_STATUS = 'Approved',
APPROVAL_STATUS = 'Approved'
WHERE TRAINING_REQ_NUMBER = l_trainingreq_no;
END IF;
END IF;