1 PACKAGE BODY JTF_UM_APPROVAL_REQUESTS_PVT as
2 /* $Header: JTFVAPRB.pls 120.11 2009/11/24 15:36:25 dbowles ship $ */
3 TYPE APPR_REQ_CUR is REF CURSOR;
4 /**
5 * Procedure : PENDING_APPROVAL_SYSADMIN
6 * Type : Private
7 * Pre_reqs : None
8 * Description : Return the pending requests foy sysadmin
9 * Parameters :
10 * input parameters
11 * @param p_sort_order
12 * description: The sort order
13 * required : Y
14 * validation : Must be a valid sort order
15 * p_number_of_records:
16 * description: The number of records to retrieve from a database
17 * required : Y
18 * validation : Must be a valid number
19 * output parameters
20 * x_result: APPROVAL_REQUEST_TABLE_TYPE
21 */
22 procedure PENDING_APPROVAL_SYSADMIN(
23 p_sort_order in varchar2,
24 p_number_of_records in number,
25 x_result out NOCOPY APPROVAL_REQUEST_TABLE_TYPE) IS
26 l_rownum number := 10; -- Default value
27 APPR_REQ APPR_REQ_CUR;
28 qry varchar2(4000) :=
29 'SELECT REG_ID, REG_LAST_UPDATE_DATE, USER_NAME, PARTY_TYPE, PARTY_ID,
30 ENTITY_SOURCE, ENTITY_NAME, WF_ITEM_TYPE, APPROVER, ERROR_ACTIVITY
31 FROM (
32 SELECT sys_requests.REG_ID, sys_requests.REG_LAST_UPDATE_DATE, sys_requests.USER_NAME,
33 sys_requests.PARTY_TYPE, sys_requests.PARTY_ID, sys_requests.ENTITY_SOURCE,
34 sys_requests.ENTITY_NAME, sys_requests.WF_ITEM_TYPE, sys_requests.APPROVER,
35 JTF_UM_APPROVAL_REQUESTS_PVT.getWorkflowActivityStatus(WF_ITEM_TYPE,REG_ID) ERROR_ACTIVITY
36 FROM (
37 SELECT UTREG.USERTYPE_REG_ID REG_ID, UTREG.LAST_UPDATE_DATE REG_LAST_UPDATE_DATE,
38 FU.USER_NAME USER_NAME, PARTY.PARTY_TYPE PARTY_TYPE, PARTY.PARTY_ID PARTY_ID,
39 ''USERTYPE'' ENTITY_SOURCE, UT.USERTYPE_SHORTNAME ENTITY_NAME,
40 UTREG.WF_ITEM_TYPE WF_ITEM_TYPE, FU2.USER_NAME APPROVER
41 FROM JTF_UM_USERTYPES_VL UT, JTF_UM_APPROVALS_B APPR, HZ_PARTIES PARTY,
42 JTF_UM_USERTYPE_REG UTREG, FND_USER FU, FND_USER FU2
43 WHERE UTREG.STATUS_CODE in (''PENDING'', ''UPGRADE_APPROVAL_PENDING'')
44 AND UTREG.USERTYPE_ID = UT.USERTYPE_ID
45 AND UT.APPROVAL_ID = APPR.APPROVAL_ID
46 AND APPR.USE_PENDING_REQ_FLAG = ''Y''
47 AND UTREG.USER_ID = FU.USER_ID
48 AND FU.CUSTOMER_ID = PARTY.PARTY_ID
49 AND nvl (UTREG.EFFECTIVE_END_DATE, sysdate + 1) > sysdate
50 AND FU2.USER_ID (+) = UTREG.APPROVER_USER_ID
51 UNION ALL
52 SELECT SUBREG.SUBSCRIPTION_REG_ID REG_ID, SUBREG.LAST_UPDATE_DATE REG_LAST_UPDATE_DATE,
53 FU.USER_NAME USER_NAME, PARTY.PARTY_TYPE PARTY_TYPE, PARTY.PARTY_ID PARTY_ID,
54 ''ENROLLMENT'' ENTITY_SOURCE, SUB.SUBSCRIPTION_NAME ENTITY_NAME,
55 SUBREG.WF_ITEM_TYPE WF_ITEM_TYPE, FU2.USER_NAME APPROVER
56 FROM JTF_UM_SUBSCRIPTIONS_VL SUB,
57 JTF_UM_APPROVALS_B APPR,
58 HZ_PARTIES PARTY,
59 JTF_UM_SUBSCRIPTION_REG SUBREG,
60 FND_USER FU,
61 JTF_UM_USERTYPE_REG UTREG,
62 FND_USER FU2
63 WHERE SUBREG.STATUS_CODE in (''PENDING'', ''UPGRADE_APPROVAL_PENDING'')
64 AND SUBREG.SUBSCRIPTION_ID = SUB.SUBSCRIPTION_ID
65 AND SUB.APPROVAL_ID = APPR.APPROVAL_ID
66 AND APPR.USE_PENDING_REQ_FLAG = ''Y''
67 AND SUBREG.USER_ID = FU.USER_ID
68 AND FU.CUSTOMER_ID = PARTY.PARTY_ID
69 AND (SUBREG.EFFECTIVE_END_DATE IS null OR SUBREG.EFFECTIVE_END_DATE > sysdate)
70 AND SUBREG.USER_ID = UTREG.USER_ID
71 AND UTREG.STATUS_CODE not in (''PENDING'', ''UPGRADE_APPROVAL_PENDING'')
72 AND nvl (UTREG.EFFECTIVE_END_DATE, sysdate + 1) > sysdate
73 AND FU2.USER_ID (+) = SUBREG.APPROVER_USER_ID
74 ) sys_requests ';
75 l_party_id HZ_PARTIES.PARTY_ID%TYPE;
76 CURSOR GET_COMPANY_NAME IS
77 SELECT PARTY.PARTY_NAME FROM HZ_PARTIES PARTY, HZ_RELATIONSHIPS PREL
78 WHERE PARTY.PARTY_ID = PREL.OBJECT_ID
79 AND PREL.PARTY_ID = l_party_id
80 AND PREL.SUBJECT_TABLE_NAME = 'HZ_PARTIES'
81 AND PREL.OBJECT_TABLE_NAME = 'HZ_PARTIES'
82 AND PREL.START_DATE < SYSDATE
83 AND NVL(PREL.END_DATE, SYSDATE+1) > SYSDATE
84 AND PREL.RELATIONSHIP_CODE in ('EMPLOYEE_OF', 'CONTACT_OF')
85 ORDER BY PREL.START_DATE;
86 l_party_type HZ_PARTIES.PARTY_TYPE%TYPE;
87 i NUMBER := 1;
88 BEGIN
89 IF p_number_of_records IS NOT NULL AND p_number_of_records <> 0 THEN
90 l_rownum := p_number_of_records;
91 END IF;
92 IF UPPER(p_sort_order) = 'USER_NAME' THEN
93 qry := qry||' order by sys_requests.USER_NAME ) all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
94 ELSIF UPPER(p_sort_order) = 'ENTITY_SOURCE' THEN
95 qry := qry||' order by sys_requests.ENTITY_SOURCE ) all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
96 ELSIF UPPER(p_sort_order) = 'ENTITY_NAME' THEN
97 qry := qry||' order by sys_requests.ENTITY_NAME ) all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
98 ELSIF UPPER(p_sort_order) = 'ENTITY_NUMBER' THEN
99 qry := qry||' order by ERROR_ACTIVITY , sys_requests.REG_ID ) all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
100 ELSIF UPPER(p_sort_order) = 'APPROVER' THEN
101 qry := qry||' order by sys_requests.APPROVER ) all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
102 ELSE
103 qry := qry||' order by REG_LAST_UPDATE_DATE ) all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
104 END IF;
105 open APPR_REQ for qry using l_rownum;
106 loop
107 fetch APPR_REQ into x_result(i).REG_ID,
108 x_result(i).REG_LAST_UPDATE_DATE,
109 x_result(i).USER_NAME,
110 l_party_type,
111 l_party_id,
112 x_result(i).ENTITY_SOURCE,
113 x_result(i).ENTITY_NAME,
114 x_result(i).WF_ITEM_TYPE,
115 x_result(i).APPROVER,
116 x_result(i).ERROR_ACTIVITY;
117 FOR r in GET_COMPANY_NAME LOOP
118 x_result(i).COMPANY_NAME := r.party_name;
119 END LOOP;
120 exit when APPR_REQ%NOTFOUND;
121 i := i + 1;
122 end loop;
123 END PENDING_APPROVAL_SYSADMIN;
124 /**
125 * Procedure : PENDING_APPROVAL_PRIMARY
126 * Type : Private
127 * Pre_reqs : None
128 * Description : Return the pending requests foy Primary User
129 * Parameters :
130 * input parameters
131 * @param p_sort_order
132 * description: The sort order
133 * required : Y
134 * validation : Must be a valid sort order
135 * p_number_of_records:
136 * description: The number of records to retrieve from a database
137 * required : Y
138 * validation : Must be a valid number
139 * p_approver_user_id
140 * description: The user_id of a logged in user
141 * required : Y
142 * validation : Must be a valid user_id
143 * output parameters
144 * x_result: APPROVAL_REQUEST_TABLE_TYPE
145 */
146 procedure PENDING_APPROVAL_PRIMARY(
147 p_sort_order in varchar2,
148 p_number_of_records in number,
149 p_approver_user_id in number,
150 x_result out NOCOPY APPROVAL_REQUEST_TABLE_TYPE) IS
151 l_rownum number := 10; -- Default value
152 l_dummy_user_id FND_USER.USER_ID%TYPE;
153 l_company_id HZ_PARTIES.PARTY_ID%TYPE;
154 l_party_name HZ_PARTIES.PARTY_NAME%TYPE;
155 APPR_REQ APPR_REQ_CUR;
156 qry varchar2(4000) := 'SELECT * FROM
157 (SELECT REG_ID, REG_LAST_UPDATE_DATE, USER_NAME, ENTITY_SOURCE,
158 ENTITY_NAME, WF_ITEM_TYPE,
159 JTF_UM_APPROVAL_REQUESTS_PVT.getWorkflowActivityStatus(WF_ITEM_TYPE,REG_ID) ERROR_ACTIVITY
160 FROM (
161 SELECT UTREG.USERTYPE_REG_ID REG_ID, UTREG.LAST_UPDATE_DATE REG_LAST_UPDATE_DATE,
162 FU.USER_NAME USER_NAME, ''USERTYPE'' ENTITY_SOURCE,
163 UT.USERTYPE_SHORTNAME ENTITY_NAME, UTREG.WF_ITEM_TYPE WF_ITEM_TYPE
164 FROM JTF_UM_USERTYPES_VL UT, JTF_UM_APPROVALS_B APPR,
165 HZ_RELATIONSHIPS PREL, JTF_UM_USERTYPE_REG UTREG, FND_USER FU
166 WHERE UTREG.STATUS_CODE in (''PENDING'', ''UPGRADE_APPROVAL_PENDING'')
167 AND UTREG.USERTYPE_ID = UT.USERTYPE_ID
168 AND UT.APPROVAL_ID = APPR.APPROVAL_ID
169 AND APPR.USE_PENDING_REQ_FLAG = ''Y''
170 AND UTREG.USER_ID = FU.USER_ID
171 AND FU.CUSTOMER_ID = PREL.PARTY_ID
172 AND PREL.OBJECT_ID = :l_company_id
173 AND PREL.SUBJECT_TABLE_NAME = ''HZ_PARTIES''
174 AND PREL.OBJECT_TABLE_NAME = ''HZ_PARTIES''
175 AND PREL.START_DATE < SYSDATE
176 AND NVL(PREL.END_DATE, SYSDATE+1) > SYSDATE
177 AND PREL.RELATIONSHIP_CODE in (''EMPLOYEE_OF'', ''CONTACT_OF'')
178 AND nvl (UTREG.EFFECTIVE_END_DATE, sysdate + 1) > sysdate
179 AND UTREG.APPROVER_USER_ID = :l_dummy_user_id
180 UNION ALL
181 SELECT SUBREG.SUBSCRIPTION_REG_ID REG_ID, SUBREG.LAST_UPDATE_DATE REG_LAST_UPDATE_DATE,
182 FU.USER_NAME USER_NAME, ''ENROLLMENT'' ENTITY_SOURCE,
183 SUB.SUBSCRIPTION_NAME ENTITY_NAME, SUBREG.WF_ITEM_TYPE WF_ITEM_TYPE
184 FROM JTF_UM_SUBSCRIPTIONS_VL SUB, JTF_UM_APPROVALS_B APPR,
185 HZ_RELATIONSHIPS PREL, JTF_UM_SUBSCRIPTION_REG SUBREG,
186 FND_USER FU, JTF_UM_USERTYPE_REG UTREG
187 WHERE SUBREG.STATUS_CODE in (''PENDING'', ''UPGRADE_APPROVAL_PENDING'')
188 AND SUBREG.SUBSCRIPTION_ID = SUB.SUBSCRIPTION_ID
189 AND SUB.APPROVAL_ID = APPR.APPROVAL_ID
190 AND APPR.USE_PENDING_REQ_FLAG = ''Y''
191 AND SUBREG.USER_ID = FU.USER_ID
192 AND FU.CUSTOMER_ID = PREL.PARTY_ID
193 AND PREL.OBJECT_ID = :l_company_id
194 AND PREL.SUBJECT_TABLE_NAME = ''HZ_PARTIES''
195 AND PREL.OBJECT_TABLE_NAME = ''HZ_PARTIES''
196 AND PREL.RELATIONSHIP_CODE in (''EMPLOYEE_OF'', ''CONTACT_OF'')
197 AND PREL.START_DATE < SYSDATE
198 AND NVL(PREL.END_DATE, SYSDATE+1) > SYSDATE
199 AND (SUBREG.EFFECTIVE_END_DATE IS null OR SUBREG.EFFECTIVE_END_DATE > sysdate)
200 AND SUBREG.USER_ID = UTREG.USER_ID
201 AND UTREG.STATUS_CODE not in (''PENDING'', ''UPGRADE_APPROVAL_PENDING'')
202 AND nvl (UTREG.EFFECTIVE_END_DATE, sysdate + 1) > sysdate
203 AND SUBREG.APPROVER_USER_ID = :l_dummy_user_id
204 ) pri_requests ';
205 CURSOR GET_COMPANY_NAME IS
206 SELECT PARTY.PARTY_NAME, PARTY.PARTY_ID
207 FROM HZ_PARTIES PARTY, HZ_RELATIONSHIPS PREL, FND_USER FU
208 WHERE PARTY.PARTY_ID = PREL.OBJECT_ID
209 AND PREL.PARTY_ID = FU.CUSTOMER_ID
210 AND FU.USER_ID = p_approver_user_id
211 AND PREL.SUBJECT_TABLE_NAME = 'HZ_PARTIES'
212 AND PREL.OBJECT_TABLE_NAME = 'HZ_PARTIES'
213 AND PREL.START_DATE < SYSDATE
214 AND NVL(PREL.END_DATE, SYSDATE+1) > SYSDATE
215 AND PREL.RELATIONSHIP_CODE = 'EMPLOYEE_OF'
216 ORDER BY PREL.START_DATE DESC;
217 i NUMBER := 1;
218 CURSOR FIND_DUMMY_USER IS
219 SELECT USER_ID
220 FROM FND_USER
221 WHERE USER_NAME = FND_PROFILE.VALUE('JTF_PRIMARY_USER');
222 BEGIN
223 IF p_number_of_records IS NOT NULL AND p_number_of_records <> 0 THEN
224 l_rownum := p_number_of_records;
225 END IF;
226 PENDING_APPROVAL_OWNER(
227 p_sort_order => p_sort_order,
228 p_number_of_records => p_number_of_records,
229 p_approver_user_id => p_approver_user_id,
230 x_result => x_result);
231 OPEN FIND_DUMMY_USER;
232 FETCH FIND_DUMMY_USER INTO l_dummy_user_id;
233 CLOSE FIND_DUMMY_USER;
234 IF l_dummy_user_id IS NOT NULL THEN
235 OPEN GET_COMPANY_NAME;
236 FETCH GET_COMPANY_NAME INTO l_party_name, l_company_id;
237 CLOSE GET_COMPANY_NAME;
238 i := nvl(x_result.LAST, 0) + 1;
239 IF UPPER(p_sort_order) = 'USER_NAME' THEN
240 qry := qry||' order by pri_requests.USER_NAME )all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
241 ELSIF UPPER(p_sort_order) = 'ENTITY_SOURCE' THEN
242 qry := qry||' order by pri_requests.ENTITY_SOURCE )all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
243 ELSIF UPPER(p_sort_order) = 'ENTITY_NAME' THEN
244 qry := qry||' order by pri_requests.ENTITY_NAME )all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
245 ELSIF UPPER(p_sort_order) = 'ENTITY_NUMBER' THEN
246 qry := qry||' order by ERROR_ACTIVITY , pri_requests.REG_ID )all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
247 ELSE
248 qry := qry||' order by REG_LAST_UPDATE_DATE )all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
249 END IF;
250 open APPR_REQ for qry using l_company_id, l_dummy_user_id, l_company_id, l_dummy_user_id, l_rownum;
251 loop
252 fetch APPR_REQ into x_result(i).REG_ID,
253 x_result(i).REG_LAST_UPDATE_DATE,
254 x_result(i).USER_NAME,
255 x_result(i).ENTITY_SOURCE,
256 x_result(i).ENTITY_NAME,
257 x_result(i).WF_ITEM_TYPE,
258 x_result(i).ERROR_ACTIVITY;
259 x_result(i).COMPANY_NAME := l_party_name;
260 exit when APPR_REQ%NOTFOUND;
261 i := i + 1;
262 end loop;
263 END IF;
264 END PENDING_APPROVAL_PRIMARY;
265 /**
266 * Procedure : PENDING_APPROVAL_OWNER
267 * Type : Private
268 * Pre_reqs : None
269 * Description : Return the pending requests for the request owner
270 * Parameters :
271 * input parameters
272 * @param p_sort_order
273 * description: The sort order
274 * required : Y
275 * validation : Must be a valid sort order
276 * p_number_of_records:
277 * description: The number of records to retrieve from a database
278 * required : Y
279 * validation : Must be a valid number
280 * p_approver_user_id
281 * description: The user_id of a logged in user
282 * required : Y
283 * validation : Must be a valid user_id
284 * output parameters
285 * x_result: APPROVAL_REQUEST_TABLE_TYPE
286 */
287 procedure PENDING_APPROVAL_OWNER(
288 p_sort_order in varchar2,
289 p_number_of_records in number,
290 p_approver_user_id in number,
291 x_result out NOCOPY APPROVAL_REQUEST_TABLE_TYPE) IS
292 l_rownum number := 10; -- Default value
293 APPR_REQ APPR_REQ_CUR;
294 qry varchar2(4000) := 'SELECT * FROM
295 (SELECT REG_ID, REG_LAST_UPDATE_DATE, USER_NAME, PARTY_TYPE, PARTY_ID,
296 ENTITY_SOURCE, ENTITY_NAME, WF_ITEM_TYPE,
297 JTF_UM_APPROVAL_REQUESTS_PVT.getWorkflowActivityStatus(WF_ITEM_TYPE, REG_ID) ERROR_ACTIVITY
298 FROM (
299 SELECT UTREG.USERTYPE_REG_ID REG_ID, UTREG.LAST_UPDATE_DATE
300 REG_LAST_UPDATE_DATE, FU.USER_NAME USER_NAME,
301 PARTY.PARTY_TYPE PARTY_TYPE, PARTY.PARTY_ID PARTY_ID,
302 ''USERTYPE'' ENTITY_SOURCE, UT.USERTYPE_SHORTNAME ENTITY_NAME,
303 UTREG.WF_ITEM_TYPE WF_ITEM_TYPE
304 FROM JTF_UM_USERTYPES_VL UT, JTF_UM_APPROVALS_B APPR, HZ_PARTIES PARTY,
305 JTF_UM_USERTYPE_REG UTREG, FND_USER FU
306 WHERE UTREG.STATUS_CODE in (''PENDING'', ''UPGRADE_APPROVAL_PENDING'')
307 AND UTREG.USERTYPE_ID = UT.USERTYPE_ID
308 AND UT.APPROVAL_ID = APPR.APPROVAL_ID
309 AND APPR.USE_PENDING_REQ_FLAG = ''Y''
310 AND UTREG.USER_ID = FU.USER_ID
311 AND FU.CUSTOMER_ID = PARTY.PARTY_ID
312 AND nvl (UTREG.EFFECTIVE_END_DATE, sysdate + 1) > sysdate
313 AND UTREG.APPROVER_USER_ID = :p_approver_user_id
314 UNION ALL
315 SELECT SUBREG.SUBSCRIPTION_REG_ID REG_ID, SUBREG.LAST_UPDATE_DATE REG_LAST_UPDATE_DATE,
316 FU.USER_NAME USER_NAME, PARTY.PARTY_TYPE PARTY_TYPE,
317 PARTY.PARTY_ID PARTY_ID, ''ENROLLMENT'' ENTITY_SOURCE,
318 SUB.SUBSCRIPTION_NAME ENTITY_NAME, SUBREG.WF_ITEM_TYPE WF_ITEM_TYPE
319 FROM JTF_UM_SUBSCRIPTIONS_VL SUB, JTF_UM_APPROVALS_B APPR, HZ_PARTIES PARTY,
320 JTF_UM_SUBSCRIPTION_REG SUBREG, FND_USER FU, JTF_UM_USERTYPE_REG UTREG
321 WHERE SUBREG.STATUS_CODE in (''PENDING'', ''UPGRADE_APPROVAL_PENDING'')
322 AND SUBREG.SUBSCRIPTION_ID = SUB.SUBSCRIPTION_ID
323 AND SUB.APPROVAL_ID = APPR.APPROVAL_ID
324 AND APPR.USE_PENDING_REQ_FLAG = ''Y''
325 AND SUBREG.USER_ID = FU.USER_ID
326 AND FU.CUSTOMER_ID = PARTY.PARTY_ID
327 AND (SUBREG.EFFECTIVE_END_DATE IS null OR SUBREG.EFFECTIVE_END_DATE > sysdate)
328 AND SUBREG.USER_ID = UTREG.USER_ID
329 AND UTREG.STATUS_CODE not in (''PENDING'', ''UPGRADE_APPROVAL_PENDING'')
330 AND nvl (UTREG.EFFECTIVE_END_DATE, sysdate + 1) > sysdate
331 AND SUBREG.APPROVER_USER_ID = :p_approver_user_id
332 ) owner_requests ';
333 l_party_id HZ_PARTIES.PARTY_ID%TYPE;
334 CURSOR GET_COMPANY_NAME IS
335 SELECT PARTY.PARTY_NAME
336 FROM HZ_PARTIES PARTY, HZ_RELATIONSHIPS PREL
337 WHERE PARTY.PARTY_ID = PREL.OBJECT_ID
338 AND PREL.PARTY_ID = l_party_id
339 AND PREL.SUBJECT_TABLE_NAME = 'HZ_PARTIES'
340 AND PREL.OBJECT_TABLE_NAME = 'HZ_PARTIES'
341 AND PREL.START_DATE < SYSDATE
342 AND NVL(PREL.END_DATE, SYSDATE+1) > SYSDATE
343 AND PREL.RELATIONSHIP_CODE in ('EMPLOYEE_OF', 'CONTACT_OF')
344 ORDER BY PREL.START_DATE;
345 l_party_type HZ_PARTIES.PARTY_TYPE%TYPE;
346 i NUMBER := 1;
347 BEGIN
348 IF p_number_of_records IS NOT NULL AND p_number_of_records <> 0 THEN
349 l_rownum := p_number_of_records;
350 END IF;
351 IF UPPER(p_sort_order) = 'USER_NAME' THEN
352 qry := qry||' order by owner_requests.USER_NAME )all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
353 ELSIF UPPER(p_sort_order) = 'ENTITY_SOURCE' THEN
354 qry := qry||' order by owner_requests.ENTITY_SOURCE )all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
355 ELSIF UPPER(p_sort_order) = 'ENTITY_NAME' THEN
356 qry := qry||' order by owner_requests.ENTITY_NAME )all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
357 ELSIF UPPER(p_sort_order) = 'ENTITY_NUMBER' THEN
358 qry := qry||' order by ERROR_ACTIVITY , owner_requests.REG_ID )all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
359 ELSE
360 qry := qry||' order by REG_LAST_UPDATE_DATE)all_requests where ERROR_ACTIVITY in (0,-1,-2) and rownum < :1';
361 END IF;
362 open APPR_REQ for qry using p_approver_user_id, p_approver_user_id, l_rownum;
363 loop
364 fetch APPR_REQ into x_result(i).REG_ID,
365 x_result(i).REG_LAST_UPDATE_DATE,
366 x_result(i).USER_NAME,
367 l_party_type,
368 l_party_id,
369 x_result(i).ENTITY_SOURCE,
370 x_result(i).ENTITY_NAME,
371 x_result(i).WF_ITEM_TYPE,
372 x_result(i).ERROR_ACTIVITY;
373 exit when APPR_REQ%NOTFOUND;
374 FOR r in GET_COMPANY_NAME LOOP
375 x_result(i).COMPANY_NAME := r.party_name;
376 END LOOP;
377 i := i + 1;
378 END LOOP;
379 END PENDING_APPROVAL_OWNER;
380
381
382 /**
383 * Function : getWFActivityStatus
384 * Type : Private
385 * Pre_reqs : None
386 * Description : Return the status of the given WF item
387 * Parameters :
388 * input parameters
389 * @param itemType
390 * description: The WF item type
391 * required : Y
392 * validation : Must be a valid WF item type
393 * itemKey:
394 * description: The WF item key
395 * required : Y
396 * validation : Must be a valid WF item key
397 *
398 * Return Value
399 * x_result: -1 => Errored WF
400 * -2 => Cancelled WF
401 * 0 => Active WF
402 */
403 function getWorkflowActivityStatus(itemType varchar2, itemKey varchar2) return number is
404 ret_val number(1) := 0;
405 status_code varchar2(100);
406 begin
407 begin
408 select x.STATUS_CODE into status_code
409 from (SELECT wf_fwkmon.getitemstatus(WorkflowItemEO.ITEM_TYPE, WorkflowItemEO.ITEM_KEY, WorkflowItemEO.END_DATE, WorkflowItemEO.ROOT_ACTIVITY, WorkflowItemEO.ROOT_ACTIVITY_VERSION) STATUS_CODE
410 FROM WF_ITEMS WorkflowItemEO,
411 WF_ITEM_TYPES_VL WorkflowItemTypeEO,
412 WF_ACTIVITIES_VL ActivityEO
413 WHERE WorkflowItemEO.ITEM_TYPE = WorkflowItemTypeEO.NAME AND
414 ActivityEO.ITEM_TYPE = WorkflowItemEO.ITEM_TYPE AND
415 ActivityEO.NAME = WorkflowItemEO.ROOT_ACTIVITY AND
416 ActivityEO.VERSION = WorkflowItemEO.ROOT_ACTIVITY_VERSION AND
417 WorkflowItemEO.ITEM_TYPE=itemtype AND
418 WorkflowItemEO.ITEM_KEY = itemkey) x
419 WHERE STATUS_CODE IN ('ACTIVE','FORCE','ERROR','COMPLETE_WITH_ERRORS');
420
421 if (status_code='ACTIVE') then
422 ret_val := 0;
423 elsif(status_code='ERROR' or status_code='COMPLETE_WITH_ERRORS') then
424 ret_val := -1;
425 elsif(status_code='FORCE') then
426 ret_val := -2;
427 end if;
428 exception
429 when no_data_found then
430 ret_val := -3;
431 when others then
432 ret_val := -3;
433 end;
434 return ret_val;
435 end;
436 end JTF_UM_APPROVAL_REQUESTS_PVT;