[Home] [Help]
PACKAGE BODY: APPS.PO_PALT_ASSIGNMENT_WF
Source
1 PACKAGE BODY po_palt_assignment_wf AS
2 /* $Header: po_palt_assignment_wf.plb 120.4 2012/02/06 03:00:20 debrchak ship $ */
3
4
5 PROCEDURE launch_notify_buyer_wf (pAssignmentId IN NUMBER,
6 pPrevBuyerID IN NUMBER DEFAULT -1,
7 pReason IN VARCHAR2 DEFAULT NULL)
8 IS
9 l_buyer_id NUMBER;
10 l_username VARCHAR2(100);
11 l_user_display_name VARCHAR2(240);
12
13 l_prev_buyer_id NUMBER;
14 l_prev_username VARCHAR2(100);
15 l_prev_user_display_name VARCHAR2(240);
16
17 l_itemtype VARCHAR2(8) :='POPALT';
18 l_itemkey VARCHAR2(60);
19 l_workflow_process VARCHAR2(30) := 'NOTIFY_BUYER';
20 l_seq_for_item_key NUMBER;
21
22 l_employee_id NUMBER;
23 l_from_username VARCHAR2(100);
24 l_from_user_disp_name VARCHAR2(240);
25 l_func_curr VARCHAR2(15);
26 l_curr_org_id NUMBER;
27
28 l_view_assign_url VARCHAR2(240);
29
30 l_est_comp_days PO_CLM_ASSIGNMENTS.estimated_completion_days%TYPE;
31 l_start_date PO_CLM_ASSIGNMENTS.assignment_start_date%TYPE;
32 l_ms_temp_id PO_CLM_ASSIGNMENTS.milestone_template_id%TYPE;
33 l_assignment_number PO_CLM_ASSIGNMENTS.assignment_number%TYPE;
34
35 BEGIN
36 SELECT PO_PALT_WF_ITEMKEY_S.NEXTVAL INTO l_seq_for_item_key FROM sys.dual;
37 l_itemkey := To_Char(pAssignmentId) || '-' || l_seq_for_item_key;
38
39 wf_engine.CreateProcess( ItemType => l_itemtype, ItemKey => l_itemkey, process => l_workflow_process );
40
41 SELECT assignment_number, buyer_id, estimated_completion_days, assignment_start_date ,milestone_template_id
42 INTO l_assignment_number, l_buyer_id, l_est_comp_days, l_start_date, l_ms_temp_id
43 FROM po_clm_assignments
44 WHERE assignment_id = pAssignmentId;
45
46 PO_REQAPPROVAL_INIT1.get_user_name(l_buyer_id, l_username, l_user_display_name);
47
48 PO_WF_UTIL_PKG.SetItemAttrNumber( itemtype => l_itemtype , itemkey => l_itemkey ,
49 aname => 'ASSIGNMENT_ID' , avalue => pAssignmentId );
50
51 PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
52 aname => 'ASSIGNMENT_NUMBER' , avalue => l_assignment_number);
53
54 PO_WF_UTIL_PKG.SetItemAttrNumber( itemtype => l_itemtype , itemkey => l_itemkey ,
55 aname => 'ASSIGNED_TO_ID' , avalue => l_buyer_id );
56
57 PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
58 aname => 'ASSIGNED_TO_USER_NAME' , avalue => l_username );
59
60 PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
61 aname => 'ASSIGNED_TO_DISP_NAME' , avalue => l_user_display_name );
62 -- set the view assignment page url
63 l_view_assign_url := 'JSP:/OA_HTML/OA.jsp?OAFunc=PO_CLM_VIEW_WLOAD_ASSIGNMENTS' || '&' || 'AssignmentNumber=' ||
64 l_assignment_number || '&' || 'retainAM=Y' || '&' || 'addBreadCrumb=Y' ;
65 PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
66 aname => 'VIEW_ASSIGNMENT_URL' , avalue => l_view_assign_url );
67
68 -- Setting Previous Buyer Info
69 IF(pPrevBuyerID <> -1) THEN
70 l_prev_buyer_id := pPrevBuyerID;
71 PO_REQAPPROVAL_INIT1.get_user_name(l_prev_buyer_id, l_prev_username, l_prev_user_display_name);
72 PO_WF_UTIL_PKG.SetItemAttrNumber( itemtype => l_itemtype , itemkey => l_itemkey ,
73 aname => 'REASSIGNED_FROM_ID' , avalue => l_prev_buyer_id );
74
75 PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
76 aname => 'REASSIGNED_FROM_USER_NAME' , avalue => l_prev_username );
77
78 PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
79 aname => 'REASSIGNED_FROM_DISP_NAME' , avalue => l_prev_user_display_name );
80 PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
81 aname => 'ACTION_NAME' , avalue => 'reassigned' );
82 PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
83 aname => 'REASON' , avalue => pReason );
84 ELSE
85 PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
86 aname => 'ACTION_NAME' , avalue => 'assigned' );
87 END IF;
88
89 SELECT employee_id INTO l_employee_id
90 FROM fnd_user
91 WHERE user_id = fnd_global.user_id;
92
93 IF l_employee_id IS NOT NULL AND l_employee_id <> -1 THEN
94 PO_REQAPPROVAL_INIT1.get_user_name(l_employee_id, l_from_username, l_from_user_disp_name);
95
96 PO_WF_UTIL_PKG.SetItemAttrNumber( itemtype => l_itemtype , itemkey => l_itemkey ,
97 aname => 'ASSIGNED_FROM_ID' , avalue => l_employee_id );
98
99 PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
100 aname => 'ASSIGNED_FROM_USER_NAME' , avalue => l_from_username );
101
102 PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
103 aname => 'ASSIGNED_FROM_DISP_NAME' , avalue => l_from_user_disp_name );
104
105 END IF;
106
107 l_curr_org_id := po_moac_utils_pvt.get_current_org_id;
108
109 IF l_curr_org_id IS NULL THEN
110 l_curr_org_id := FND_PROFILE.Value('DEFAULT_ORG_ID');
111 END IF;
112
113 SELECT GSB.currency_code INTO l_func_curr
114 FROM FINANCIALS_SYSTEM_PARAMS_all FSP,
115 GL_SETS_OF_BOOKS GSB
116 WHERE FSP.set_of_books_id = GSB.set_of_books_id
117 AND FSP.org_id=l_curr_org_id;
118
119 PO_WF_UTIL_PKG.SetItemAttrText( itemtype => l_itemtype , itemkey => l_itemkey ,
120 aname => 'FUNCTIONAL_CURRENCY' , avalue => l_func_curr );
121
122 PO_WF_UTIL_PKG.SetItemAttrNumber( itemtype => l_itemtype , itemkey => l_itemkey ,
123 aname => 'ESTIMATED_COMPLETION_DAYS' , avalue => l_est_comp_days );
124
125 PO_WF_UTIL_PKG.SetItemAttrNumber( itemtype => l_itemtype , itemkey => l_itemkey ,
126 aname => 'MILESTONE_TEMPLATE_ID' , avalue => l_ms_temp_id );
127
128 PO_WF_UTIL_PKG.SetItemAttrDate( itemtype => l_itemtype , itemkey => l_itemkey ,
129 aname => 'ASSIGNMENT_START_DATE' , avalue => l_start_date );
130
131 wf_engine.StartProcess( ItemType => l_itemtype, ItemKey => l_itemkey);
132
133 COMMIT;
134 END launch_notify_buyer_wf;
135
136 END PO_PALT_ASSIGNMENT_WF;