[Home] [Help]
PACKAGE BODY: APPS.OZF_RESALE_WF_PVT
Source
1 PACKAGE BODY OZF_RESALE_WF_PVT AS
2 /* $Header: ozfvrwfb.pls 120.13.12020000.3 2013/02/11 09:16:24 annsrini ship $ */
3
4 -- Package name : OZF_RESALE_WF_PVT
5 -- Purpose : Called from Resale Data processing and Payment initiation workflows.
6 -- History : CREATED VANSUB 02-18-2004
7 -- : MODIFICATIONS SLKRISHN 02-28-2004
8 -- NOTE :
9 -- END of Comments
10
11 G_FILE_NAME CONSTANT VARCHAR2(30) := 'ozfvrwfb.pls';
12
13 OZF_DEBUG_HIGH_ON BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.g_msg_lvl_debug_high);
14 OZF_DEBUG_LOW_ON BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.g_msg_lvl_debug_low);
15 OZF_UNEXP_ERROR CONSTANT BOOLEAN := FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.g_msg_lvl_unexp_error);
16 OZF_ERROR CONSTANT BOOLEAN := FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.g_msg_lvl_error);
17
18 ---------------------------------------------------------------------
19 -- PROCEDURE
20 -- Handle_Error
21 --
22 -- PURPOSE
23 -- This procedure handles workflow errors
24 --
25 -- PARAMETERS
26 --
27 --
28 -- NOTES
29 ---------------------------------------------------------------------
30 PROCEDURE Handle_Error (
31 p_itemtype IN VARCHAR2,
32 p_itemkey IN VARCHAR2,
33 p_msg_count IN NUMBER,
34 p_msg_data IN VARCHAR2,
35 p_process_name IN VARCHAR2,
36 x_error_msg OUT NOCOPY VARCHAR2
37 )
38 IS
39 l_api_name VARCHAR2(30) := 'Handle_Error';
40 l_msg_count NUMBER ;
41 l_msg_data VARCHAR2(2000);
42 l_error_msg VARCHAR2(4000);
43 l_final_msg VARCHAR2(4000);
44 l_msg_index NUMBER;
45 --
46 l_resale_batch_id NUMBER;
47 l_temp_mesg VARCHAR2(2500);
48 BEGIN
49
50 l_resale_batch_id := WF_ENGINE.GetItemAttrText(
51 itemtype => p_itemtype,
52 itemkey => p_itemkey,
53 aname => G_WF_ATTR_BATCH_ID);
54
55 FOR i IN 1..p_msg_count LOOP
56 FND_MSG_PUB.get(
57 p_msg_index => p_msg_count - i +1 ,
58 p_encoded => FND_API.g_false,
59 p_data => l_msg_data,
60 p_msg_index_out => l_msg_index
61 );
62 l_temp_mesg := l_msg_index ||': ' ||
63 l_msg_data || fnd_global.local_chr(10);
64 IF length (l_final_msg ) + length (l_temp_mesg) >= 4000 THEN
65 goto end_loop_error;
66 END IF;
67 l_final_msg := l_final_msg ||
68 l_msg_index ||': ' ||
69 l_msg_data || fnd_global.local_chr(10);
70
71 << end_loop_error >>
72 null;
73 END LOOP ;
74 x_error_msg := l_final_msg;
75
76 WF_ENGINE.SetItemAttrText(
77 itemtype => p_itemtype,
78 itemkey => p_itemkey ,
79 aname => G_WF_ATTR_ERROR_MESG,
80 avalue => l_final_msg );
81 EXCEPTION
82 WHEN OTHERS THEN
83 IF OZF_UNEXP_ERROR THEN
84 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
85 END IF;
86 RAISE;
87 END Handle_Error;
88 ---------------------------------------------------------------------
89 -- PROCEDURE
90 -- Re_Initilize_Context
91 --
92 -- PURPOSE
93 -- Private procedure to Will re initilize the application context
94 --
95 -- PARAMETERS
96 --
97 --
98 -- NOTES
99 -- Created for bugfix: 10431933
100 ---------------------------------------------------------------------
101 PROCEDURE Re_Initilize_Context (
102 itemtype in varchar2,
103 itemkey in varchar2
104 )
105 IS
106 l_user_id NUMBER;
107 l_resp_id NUMBER;
108 l_appl_id NUMBER;
109 l_api_name CONSTANT VARCHAR2(30) := 'Re_Initilize_Context';
110
111 BEGIN
112 IF OZF_DEBUG_HIGH_ON THEN
113 OZF_UTILITY_PVT.debug_message('IN: Re_Initilize_Context' );
114 END IF;
115
116 l_user_id := WF_ENGINE.GetItemAttrText( itemtype => itemtype
117 ,itemkey => itemkey
118 ,aname => G_WF_ATTR_USER_ID
119 );
120
121 l_resp_id := WF_ENGINE.GetItemAttrText( itemtype => itemtype
122 ,itemkey => itemkey
123 ,aname => G_WF_ATTR_RESP_ID
124 );
125
126 l_appl_id := WF_ENGINE.GetItemAttrText( itemtype => itemtype
127 ,itemkey => itemkey
128 ,aname => G_WF_ATTR_APPL_ID
129 );
130
131 IF OZF_DEBUG_HIGH_ON THEN
132 OZF_UTILITY_PVT.debug_message('l_user_id ' || l_user_id );
133 OZF_UTILITY_PVT.debug_message('l_resp_id ' || l_resp_id );
134 OZF_UTILITY_PVT.debug_message('l_appl_id ' || l_appl_id );
135 END IF;
136 --//Initilize the session
137 FND_GLOBAL.APPS_INITIALIZE(l_user_id, l_resp_id, l_appl_id);
138
139 EXCEPTION
140 WHEN OTHERS THEN
141 IF OZF_UNEXP_ERROR THEN
142 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
143 END IF;
144 RAISE;
145 END Re_Initilize_Context;
146 ---------------------------------------------------------------------
147 -- PROCEDURE
148 -- Check_Duplicates
149 --
150 -- PURPOSE
151 -- This procedure validates all the lines IN the batch
152 --
153 -- PARAMETERS
154 --
155 --
156 -- NOTES
157 ---------------------------------------------------------------------
158 PROCEDURE Check_Duplicates
159 (
160 itemtype IN varchar2,
161 itemkey IN varchar2,
162 actid IN number,
163 funcmode IN varchar2,
164 resultout IN OUT NOCOPY varchar2
165 )
166 IS
167 l_api_name CONSTANT VARCHAR2(30) := 'Check_Duplicates';
168 l_api_version_number CONSTANT NUMBER := 1.0;
169
170 l_resultout VARCHAR2(30);
171 l_batch_id NUMBER;
172 l_return_status VARCHAR2(1);
173 l_msg_count NUMBER;
174 l_msg_data VARCHAR2(2000);
175 l_error_msg VARCHAR2(4000);
176 l_batch_type VARCHAR2(30);
177 l_batch_status VARCHAR2(30);
178 l_batch_return_status VARCHAR2(30);
179
180 CURSOR batch_status_csr(p_id number) IS
181 SELECT status_code
182 --FROM ozf_resale_batches
183 FROM ozf_resale_batches_all
184 WHERE resale_batch_id = p_id;
185
186 l_batch_org_id NUMBER;
187
188 BEGIN
189 IF OZF_DEBUG_HIGH_ON THEN
190 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
191 END IF;
192
193 -- R12 MOAC Enhancement (+)
194 l_batch_org_id := WF_ENGINE.GetItemAttrText(
195 itemtype => itemtype,
196 itemkey => itemkey,
197 aname => 'OZF_BATCH_ORG_ID'
198 );
199
200 -- nepanda : Fix for Bug 13819601
201 /* IF (funcmode = 'TEST_CTX') THEN
202 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
203 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
204 resultout := 'FALSE';
205 ELSE
206 resultout := 'TRUE';
207 END IF;
208 RETURN;
209 END IF;
210
211 IF (funcmode = 'SET_CTX') THEN
212 MO_GLOBAL.set_policy_context(
213 p_access_mode => 'S',
214 p_org_id => l_batch_org_id
215 );
216 --resultout := 'COMPLETE:';
217 RETURN;
218 END IF;*/
219 -- R12 MOAC Enhancement (-)
220
221 IF (funcmode = 'RUN') THEN
222 -- nepanda : Fix for bug 12716192 : Setting Context in case of FUNCMODE = RUN
223 -- nepanda : Fix for Bug 13819601 commented extra set context
224 -- MO_GLOBAL.set_policy_context(
225 -- p_access_mode => 'S',
226 -- p_org_id => l_batch_org_id
227 -- );
228
229 l_batch_id := WF_ENGINE.GetItemAttrText(itemtype => itemtype,
230 itemkey => itemkey,
231 aname => G_WF_ATTR_BATCH_ID);
232 IF OZF_DEBUG_LOW_ON THEN
233 OZF_UTILITY_PVT.debug_message('Batch ID '|| l_batch_id);
234 END IF;
235
236 IF l_batch_id IS NOT NULL THEN
237 l_batch_type := WF_ENGINE.GetItemAttrText (itemtype => itemType,
238 itemkey => itemKey,
239 aname => G_WF_ATTR_BATCH_TYPE);
240
241 OPEN batch_status_csr(l_batch_id);
242 FETCH batch_status_csr into l_batch_status;
243 CLOSE batch_status_csr;
244
245 IF l_batch_status = OZF_RESALE_COMMON_PVT.G_BATCH_PENDING_PAYMENT THEN
246 l_batch_return_status := l_batch_status;
247 ELSE
248 OZF_RESALE_COMMON_PVT.Update_Duplicates (
249 p_api_version => 1.0,
250 p_init_msg_list => FND_API.G_FALSE,
251 p_commit => FND_API.G_FALSE,
252 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
253 p_resale_batch_id => l_batch_id,
254 p_resale_batch_type => l_batch_type,
255 p_batch_status => l_batch_status,
256 x_batch_status => l_batch_return_status,
257 x_return_status => l_return_status,
258 x_msg_count => l_msg_count,
259 x_msg_data => l_msg_data);
260
261 IF OZF_DEBUG_LOW_ON THEN
262 OZF_UTILITY_PVT.debug_message('Check duplicate line is complete '||l_return_status);
263 OZF_UTILITY_PVT.debug_message('batch status '||l_batch_return_status);
264 END IF;
265 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
266 RAISE FND_API.G_EXC_ERROR;
267 END IF;
268 END IF;
269 ELSE
270 OZF_UTILITY_PVT.error_message('OZF_RESALE_BATCH_ID_NULL');
271 RAISE FND_API.G_EXC_ERROR;
272 END IF;
273
274 WF_ENGINE.SetItemAttrText(
275 itemtype => itemtype,
276 itemkey => itemkey ,
277 aname => G_WF_ATTR_BATCH_STATUS,
278 avalue => l_batch_return_status );
279
280 IF l_batch_return_status not in (OZF_RESALE_COMMON_PVT.G_BATCH_PROCESSED,
281 OZF_RESALE_COMMON_PVT.G_BATCH_REJECTED,
282 OZF_RESALE_COMMON_PVT.G_BATCH_CLOSED) THEN
283 l_resultout := 'COMPLETE:OTHER';
284 ELSE
285 l_resultout := 'COMPLETE:' || l_batch_return_status;
286 END IF;
287 --
288 ELSIF (funcmode = 'CANCEL') THEN
289 l_resultout := 'COMPLETE:';
290 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
291 l_resultout := 'COMPLETE:';
292 ELSIF (funcmode = 'TIMEOUT') THEN
293 l_resultout := 'COMPLETE:';
294 END IF;
295
296 resultout := l_resultout;
297
298 EXCEPTION
299 WHEN FND_API.G_EXC_ERROR THEN
300 FND_MSG_PUB.Count_And_Get (
301 p_encoded => FND_API.G_FALSE,
302 p_count => l_msg_count,
303 p_data => l_msg_data
304 );
305 Handle_Error(
306 p_itemtype => itemtype
307 ,p_itemkey => itemkey
308 ,p_msg_count => l_msg_count
309 ,p_msg_data => l_msg_data
310 ,p_process_name => l_api_name
311 ,x_error_msg => l_error_msg
312 );
313 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
314 RAISE;
315 WHEN OTHERS THEN
316 IF OZF_UNEXP_ERROR THEN
317 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
318 END IF;
319 FND_MSG_PUB.Count_And_Get (
320 p_encoded => FND_API.G_FALSE,
321 p_count => l_msg_count,
322 p_data => l_msg_data
323 );
324 Handle_Error(
325 p_itemtype => itemtype
326 ,p_itemkey => itemkey
327 ,p_msg_count => l_msg_count
328 ,p_msg_data => l_msg_data
329 ,p_process_name => l_api_name
330 ,x_error_msg => l_error_msg
331 );
332 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
333 RAISE;
334 END Check_Duplicates;
335
336 ---------------------------------------------------------------------
337 -- PROCEDURE
338 -- Get_Auto_Accrual_Flag
339 --
340 -- PURPOSE
341 -- This procedure returns values of auto_tp_accrual_flag from system parameter
342 --
343 -- PARAMETERS
344 --
345 --
346 -- NOTES
347 -- returns F or T
348 ---------------------------------------------------------------------
349 PROCEDURE Get_Auto_Accrual_Flag(
350 itemtype in varchar2,
351 itemkey in varchar2,
352 actid in number,
353 funcmode in varchar2,
354 resultout in OUT NOCOPY varchar2
355 )IS
356 l_api_name CONSTANT VARCHAR2(30) := 'Get_Auto_Accrual_Flag';
357 l_api_version_number CONSTANT NUMBER := 1.0;
358 l_return_status VARCHAR2(1);
359 l_msg_count NUMBER;
360 l_msg_data VARCHAR2(2000);
361 l_error_msg VARCHAR2(4000);
362
363 l_resultout VARCHAR2(30);
364 l_auto_tp_accrual VARCHAR2(1);
365 --
366 CURSOR auto_tp_accrual_csr IS
367 SELECT auto_tp_accrual_flag
368 FROM ozf_sys_parameters;
369
370 l_batch_org_id NUMBER;
371 BEGIN
372 IF OZF_DEBUG_HIGH_ON THEN
373 OZF_UTILITY_PVT.debug_message('IN ' || l_api_name || ' Funcmode: ' || funcmode);
374 END IF;
375
376 -- R12 MOAC Enhancement (+)
377 l_batch_org_id := WF_ENGINE.GetItemAttrText(
378 itemtype => itemtype,
379 itemkey => itemkey,
380 aname => 'OZF_BATCH_ORG_ID'
381 );
382
383 -- nepanda : Fix for Bug 13819601
384 /* IF (funcmode = 'TEST_CTX') THEN
385 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
386 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
387 resultout := 'FALSE';
388 ELSE
389 resultout := 'TRUE';
390 END IF;
391 RETURN;
392 END IF;
393
394 IF (funcmode = 'SET_CTX') THEN
395 MO_GLOBAL.set_policy_context(
396 p_access_mode => 'S',
397 p_org_id => l_batch_org_id
398 );
399 --resultout := 'COMPLETE:';
400 RETURN;
401 END IF;*/
402 -- R12 MOAC Enhancement (-)
403
404 IF (funcmode = 'RUN') THEN
405 --
406 OPEN auto_tp_accrual_csr;
407 FETCH auto_tp_accrual_csr INTO l_auto_tp_accrual;
408 CLOSE auto_tp_accrual_csr;
409
410
411 IF l_auto_tp_accrual is NULL THEN
412 -- 11/23/04 yizhang: default flag to FALSE instead of raising an error
413 l_auto_tp_accrual := 'F';
414 --OZF_UTILITY_PVT.error_message('OZF_RESALE_AUTO_TP_NULL');
415 --RAISE FND_API.G_EXC_ERROR;
416 ELSE
417 -- START: Added for bug#9598648 fix
418 FND_REQUEST.set_org_id(l_batch_org_id);
419 -- END: Added for bug#9598648 fix
420
421 END IF;
422 l_resultout := 'COMPLETE:' || l_auto_tp_accrual;
423 --
424 ELSIF (funcmode = 'CANCEL') THEN
425 l_resultout := 'COMPLETE:';
426 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
427 l_resultout := 'COMPLETE:';
428 ELSIF (funcmode = 'TIMEOUT') THEN
429 l_resultout := 'COMPLETE:';
430 END IF;
431
432 resultout := l_resultout;
433
434 EXCEPTION
435 WHEN FND_API.G_EXC_ERROR THEN
436 FND_MSG_PUB.Count_And_Get (
437 p_encoded => FND_API.G_FALSE,
438 p_count => l_msg_count,
439 p_data => l_msg_data
440 );
441 Handle_Error(
442 p_itemtype => itemtype
443 ,p_itemkey => itemkey
444 ,p_msg_count => l_msg_count
445 ,p_msg_data => l_msg_data
446 ,p_process_name => l_api_name
447 ,x_error_msg => l_error_msg
448 );
449 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
450 RAISE;
451 WHEN OTHERS THEN
452 IF OZF_UNEXP_ERROR THEN
453 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
454 END IF;
455 FND_MSG_PUB.Count_And_Get (
456 p_encoded => FND_API.G_FALSE,
457 p_count => l_msg_count,
458 p_data => l_msg_data
459 );
460 Handle_Error(
461 p_itemtype => itemtype
462 ,p_itemkey => itemkey
463 ,p_msg_count => l_msg_count
464 ,p_msg_data => l_msg_data
465 ,p_process_name => l_api_name
466 ,x_error_msg => l_error_msg
467 );
468 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
469 RAISE;
470 END Get_Auto_Accrual_Flag;
471
472 ---------------------------------------------------------------------
473 -- PROCEDURE
474 -- Get_Batch_Caller
475 --
476 -- PURPOSE
477 -- This procedure returns the batch type to workflow
478 --
479 -- PARAMETERS
480 --
481 --
482 -- NOTES
483 ---------------------------------------------------------------------
484 PROCEDURE Get_Batch_Caller (
485 itemtype IN varchar2,
486 itemkey IN varchar2,
487 actid IN number,
488 funcmode IN varchar2,
489 resultout IN OUT NOCOPY varchar2
490 )
491 IS
492 l_api_name CONSTANT VARCHAR2(30) := 'Get_Batch_Caller';
493 l_api_version_number CONSTANT NUMBER := 1.0;
494
495 l_resultout VARCHAR2(30);
496 l_batch_id NUMBER;
497 l_return_status VARCHAR2(1);
498 l_msg_count NUMBER;
499 l_msg_data VARCHAR2(2000);
500 l_error_msg VARCHAR2(4000);
501 l_batch_caller VARCHAR2(30);
502 l_batch_num_w_date VARCHAR2(240);
503 l_batch_number VARCHAR2(240);
504 l_batch_org_id NUMBER;
505
506 BEGIN
507 IF OZF_DEBUG_HIGH_ON THEN
508 OZF_UTILITY_PVT.debug_message('IN ' || l_api_name || ' Funcmode: ' || funcmode);
509 END IF;
510
511 -- R12 MOAC Enhancement (+)
512 l_batch_org_id := WF_ENGINE.GetItemAttrText(
513 itemtype => itemtype,
514 itemkey => itemkey,
515 aname => 'OZF_BATCH_ORG_ID'
516 );
517
518 -- nepanda : Fix for Bug 13819601
519 /* IF (funcmode = 'TEST_CTX') THEN
520 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
521 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
522 resultout := 'FALSE';
523 ELSE
524 resultout := 'TRUE';
525 END IF;
526 RETURN;
527 END IF;
528
529 IF (funcmode = 'SET_CTX') THEN
530 MO_GLOBAL.set_policy_context(
531 p_access_mode => 'S',
532 p_org_id => l_batch_org_id
533 );
534 --resultout := 'COMPLETE:';
535 RETURN;
536 END IF;*/
537 -- R12 MOAC Enhancement (-)
538
539 IF (funcmode = 'RUN') THEN
540 --
541 l_batch_caller := WF_ENGINE.GetItemAttrText(itemtype => itemtype,
542 itemkey => itemkey,
543 aname => G_WF_ATTR_BATCH_CALLER);
544
545 IF l_batch_caller is NULL THEN
546 -- default caller to be UI
547 l_batch_caller := G_WF_LKUP_UI;
548 WF_ENGINE.SetItemAttrText(
549 itemtype => itemtype,
550 itemkey => itemkey ,
551 aname => G_WF_ATTR_BATCH_CALLER,
552 avalue => l_batch_caller);
553 END IF;
554
555 IF l_batch_caller NOT IN (G_WF_LKUP_UI, G_WF_LKUP_XML, G_WF_LKUP_WEBADI)
556 THEN
557 OZF_UTILITY_PVT.error_message('OZF_API_DEBUG_MESSAGE','TEXT','Invalid Batch caller '|| l_batch_caller);
558 RAISE FND_API.G_EXC_ERROR;
559 END IF;
560
561 -- SET attribute OZF_BATCH_NUM_W_DATE for event key
562 l_batch_number := WF_ENGINE.GetItemAttrText(
563 itemtype => itemtype,
564 itemkey => itemkey,
565 aname => G_WF_ATTR_BATCH_NUMBER
566 );
567 l_batch_num_w_date :='ResaleBatch:'||l_batch_number||'-'|| to_char(sysdate,'MM/DD/YYYY HH:MI:SS');
568
569 WF_ENGINE.SetItemAttrText(
570 itemtype => itemtype,
571 itemkey => itemkey ,
572 aname => G_WF_ATTR_BATCH_NUM_W_DATE,
573 avalue => l_batch_num_w_date);
574
575 IF OZF_DEBUG_LOW_ON THEN
576 OZF_UTILITY_PVT.debug_message('Batch caller'|| l_batch_caller );
577 END IF;
578 l_resultout := 'COMPLETE:' || l_batch_caller;
579 --
580 ELSIF (funcmode = 'CANCEL') THEN
581 l_resultout := 'COMPLETE:';
582 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
583 l_resultout := 'COMPLETE:';
584 ELSIF (funcmode = 'TIMEOUT') THEN
585 l_resultout := 'COMPLETE:';
586 END IF;
587
588 resultout := l_resultout;
589
590 EXCEPTION
591 WHEN FND_API.G_EXC_ERROR THEN
592 FND_MSG_PUB.Count_And_Get (
593 p_encoded => FND_API.G_FALSE,
594 p_count => l_msg_count,
595 p_data => l_msg_data
596 );
597 Handle_Error(
598 p_itemtype => itemtype
599 ,p_itemkey => itemkey
600 ,p_msg_count => l_msg_count
601 ,p_msg_data => l_msg_data
602 ,p_process_name => l_api_name
603 ,x_error_msg => l_error_msg
604 );
605 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
606 RAISE;
607 WHEN OTHERS THEN
608 IF OZF_UNEXP_ERROR THEN
609 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
610 END IF;
611 FND_MSG_PUB.Count_And_Get (
612 p_encoded => FND_API.G_FALSE,
613 p_count => l_msg_count,
614 p_data => l_msg_data
615 );
616 Handle_Error(
617 p_itemtype => itemtype
618 ,p_itemkey => itemkey
619 ,p_msg_count => l_msg_count
620 ,p_msg_data => l_msg_data
621 ,p_process_name => l_api_name
622 ,x_error_msg => l_error_msg
623 );
624 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
625 RAISE;
626 END Get_Batch_Caller;
627
628 ---------------------------------------------------------------------
629 -- PROCEDURE
630 -- Get_Batch_Status
631 --
632 -- PURPOSE
633 -- This procedure returns the value of batch status
634 --
635 -- PARAMETERS
636 --
637 --
638 -- NOTES
639 ---------------------------------------------------------------------
640 PROCEDURE Get_Batch_Status (
641 itemtype in varchar2,
642 itemkey in varchar2,
643 actid in number,
644 funcmode in varchar2,
645 resultout in OUT NOCOPY varchar2 )
646 IS
647 l_api_name CONSTANT VARCHAR2(30) := 'Get_Batch_Status';
648 l_api_version_number CONSTANT NUMBER := 1.0;
649
650 l_resultout VARCHAR2(30);
651 l_batch_id NUMBER;
652 l_return_status VARCHAR2(1);
653 l_msg_count NUMBER;
654 l_msg_data VARCHAR2(2000);
655 l_error_msg VARCHAR2(4000);
656 l_status_code VARCHAR2(30);
657
658 CURSOR batch_status_csr(p_id number) IS
659 SELECT status_code
660 --FROM ozf_resale_batches
661 FROM ozf_resale_batches_all
662 WHERE resale_batch_id = p_id;
663
664 l_batch_org_id NUMBER;
665 BEGIN
666 IF OZF_DEBUG_HIGH_ON THEN
667 OZF_UTILITY_PVT.debug_message('IN ' || l_api_name || ' Funcmode: ' || funcmode);
668 END IF;
669
670 -- R12 MOAC Enhancement (+)
671 l_batch_org_id := WF_ENGINE.GetItemAttrText(
672 itemtype => itemtype,
673 itemkey => itemkey,
674 aname => 'OZF_BATCH_ORG_ID'
675 );
676
677 -- nepanda : Fix for Bug 13819601
678 /* IF (funcmode = 'TEST_CTX') THEN
679 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
680 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
681 resultout := 'FALSE';
682 ELSE
683 resultout := 'TRUE';
684 END IF;
685 RETURN;
686 END IF;
687
688 IF (funcmode = 'SET_CTX') THEN
689 MO_GLOBAL.set_policy_context(
690 p_access_mode => 'S',
691 p_org_id => l_batch_org_id
692 );
693 --resultout := 'COMPLETE:';
694 RETURN;
695 END IF;*/
696 -- R12 MOAC Enhancement (-)
697
698 IF (funcmode = 'RUN') THEN
699 --
700 l_batch_id := WF_ENGINE.GetItemAttrText(itemtype => itemtype,
701 itemkey => itemkey,
702 aname => G_WF_ATTR_BATCH_ID);
703
704 OPEN batch_status_csr(l_batch_id);
705 FETCH batch_status_csr into l_status_code;
706 CLOSE batch_status_csr;
707
708 IF OZF_DEBUG_LOW_ON THEN
709 OZF_UTILITY_PVT.debug_message('Batch status '|| l_status_code );
710 END IF;
711 IF l_status_code not in ( OZF_RESALE_COMMON_PVT.G_BATCH_PROCESSED,
712 OZF_RESALE_COMMON_PVT.G_BATCH_REJECTED,
713 OZF_RESALE_COMMON_PVT.G_BATCH_CLOSED) THEN
714 l_resultout := 'COMPLETE:OTHER';
715 ELSE
716 l_resultout := 'COMPLETE:' || l_status_code;
717 END IF;
718 --
719 ELSIF (funcmode = 'CANCEL') THEN
720 l_resultout := 'COMPLETE:';
721 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
722 l_resultout := 'COMPLETE:';
723 ELSIF (funcmode = 'TIMEOUT') THEN
724 l_resultout := 'COMPLETE:';
725 END IF;
726
727 resultout := l_resultout;
728
729 EXCEPTION
730 WHEN FND_API.G_EXC_ERROR THEN
731 FND_MSG_PUB.Count_And_Get (
732 p_encoded => FND_API.G_FALSE,
733 p_count => l_msg_count,
734 p_data => l_msg_data
735 );
736 Handle_Error(
737 p_itemtype => itemtype
738 ,p_itemkey => itemkey
739 ,p_msg_count => l_msg_count
740 ,p_msg_data => l_msg_data
741 ,p_process_name => l_api_name
742 ,x_error_msg => l_error_msg
743 );
744 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
745 RAISE;
746 WHEN OTHERS THEN
747 IF OZF_UNEXP_ERROR THEN
748 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
749 END IF;
750 FND_MSG_PUB.Count_And_Get (
751 p_encoded => FND_API.G_FALSE,
752 p_count => l_msg_count,
753 p_data => l_msg_data
754 );
755 Handle_Error(
756 p_itemtype => itemtype
757 ,p_itemkey => itemkey
758 ,p_msg_count => l_msg_count
759 ,p_msg_data => l_msg_data
760 ,p_process_name => l_api_name
761 ,x_error_msg => l_error_msg
762 );
763 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
764 RAISE;
765 END Get_Batch_Status;
766
767 ---------------------------------------------------------------------
768 -- PROCEDURE
769 -- Get_Batch_Type
770 --
771 -- PURPOSE
772 -- This procedure returns the batch type to workflow
773 --
774 -- PARAMETERS
775 --
776 --
777 -- NOTES
778 ---------------------------------------------------------------------
779 PROCEDURE Get_Batch_Type (
780 itemtype IN varchar2,
781 itemkey IN varchar2,
782 actid IN number,
783 funcmode IN varchar2,
784 resultout IN OUT NOCOPY varchar2
785 )
786 IS
787 l_api_name CONSTANT VARCHAR2(30) := 'Get_Batch_Type';
788 l_api_version_number CONSTANT NUMBER := 1.0;
789
790 l_resultout VARCHAR2(30);
791 l_batch_id NUMBER;
792 l_return_status VARCHAR2(1);
793 l_msg_count NUMBER;
794 l_msg_data VARCHAR2(2000);
795 l_error_msg VARCHAR2(4000);
796 l_batch_type VARCHAR2(30);
797
798 l_batch_org_id NUMBER;
799 BEGIN
800 IF OZF_DEBUG_HIGH_ON THEN
801 OZF_UTILITY_PVT.debug_message('IN ' || l_api_name || ' Funcmode: ' || funcmode);
802 END IF;
803
804 -- R12 MOAC Enhancement (+)
805 l_batch_org_id := WF_ENGINE.GetItemAttrText(
806 itemtype => itemtype,
807 itemkey => itemkey,
808 aname => 'OZF_BATCH_ORG_ID'
809 );
810
811 -- nepanda : Fix for Bug 13819601
812 /* IF (funcmode = 'TEST_CTX') THEN
813 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
814 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
815 resultout := 'FALSE';
816 ELSE
817 resultout := 'TRUE';
818 END IF;
819 RETURN;
820 END IF;
821
822 IF (funcmode = 'SET_CTX') THEN
823 MO_GLOBAL.set_policy_context(
824 p_access_mode => 'S',
825 p_org_id => l_batch_org_id
826 );
827 --resultout := 'COMPLETE:';
828 RETURN;
829 END IF;*/
830 -- R12 MOAC Enhancement (-)
831
832 IF (funcmode = 'RUN') THEN
833 --
834 l_batch_type := WF_ENGINE.GetItemAttrText(itemtype => itemtype,
835 itemkey => itemkey,
836 aname => G_WF_ATTR_BATCH_TYPE);
837
838 IF l_batch_type NOT IN (G_WF_LKUP_CHARGEBACK, G_WF_LKUP_SPECIALPRICE, G_WF_LKUP_TRACING) OR
839 l_batch_type IS NULL
840 THEN
841 OZF_UTILITY_PVT.error_message('OZF_API_DEBUG_MESSAGE','TEXT','Invalid Batch Type '|| l_batch_type);
842 RAISE FND_API.G_EXC_ERROR;
843 END IF;
844
845 IF OZF_DEBUG_LOW_ON THEN
846 OZF_UTILITY_PVT.debug_message('Batch Type '|| l_batch_type );
847 END IF;
848 l_resultout := 'COMPLETE:' || l_batch_type;
849 --
850 ELSIF (funcmode = 'CANCEL') THEN
851 l_resultout := 'COMPLETE:';
852 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
853 l_resultout := 'COMPLETE:';
854 ELSIF (funcmode = 'TIMEOUT') THEN
855 l_resultout := 'COMPLETE:';
856 END IF;
857
858 resultout := l_resultout;
859
860 EXCEPTION
861 WHEN FND_API.G_EXC_ERROR THEN
862 FND_MSG_PUB.Count_And_Get (
863 p_encoded => FND_API.G_FALSE,
864 p_count => l_msg_count,
865 p_data => l_msg_data
866 );
867 Handle_Error(
868 p_itemtype => itemtype
869 ,p_itemkey => itemkey
870 ,p_msg_count => l_msg_count
871 ,p_msg_data => l_msg_data
872 ,p_process_name => l_api_name
873 ,x_error_msg => l_error_msg
874 );
875 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
876 RAISE;
877 WHEN OTHERS THEN
878 IF OZF_UNEXP_ERROR THEN
879 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
880 END IF;
881 FND_MSG_PUB.Count_And_Get (
882 p_encoded => FND_API.G_FALSE,
883 p_count => l_msg_count,
884 p_data => l_msg_data
885 );
886 Handle_Error(
887 p_itemtype => itemtype
888 ,p_itemkey => itemkey
889 ,p_msg_count => l_msg_count
890 ,p_msg_data => l_msg_data
891 ,p_process_name => l_api_name
892 ,x_error_msg => l_error_msg
893 );
894 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
895 RAISE;
896 END Get_Batch_Type;
897 ---------------------------------------------------------------------
898 -- PROCEDURE
899 -- Init_attributes
900 --
901 -- PURPOSE
902 -- This api will be initialize the attributes used IN the workflow
903 --
904 ---------------------------------------------------------------------
905 PROCEDURE Init_Attributes(
906 itemtype IN VARCHAR2,
907 itemkey IN VARCHAR2,
908 actid IN NUMBER,
909 funcmode IN VARCHAR2,
910 result OUT NOCOPY VARCHAR2
911 )
912 IS
913 l_api_name CONSTANT VARCHAR2(30) := 'Init_Attributes';
914 l_api_version_number CONSTANT NUMBER := 1.0;
915 --
916 l_resale_batch_id NUMBER;
917 --
918 l_batch_number VARCHAR2(240);
919 l_batch_type VARCHAR2(30);
920 l_last_updated_by Number;
921 --
922 --l_emp_id NUMBER;
923 --l_user_name VARCHAR2(100);
924 --l_display_name VARCHAR2(100);
925 l_return_status VARCHAR2(1);
926 l_error_msg VARCHAR2(4000);
927 l_msg_count NUMBER;
928 l_msg_data VARCHAR2(2000);
929 --
930 CURSOR batch_num_csr(p_id number) IS
931 SELECT batch_number
932 , batch_type
933 , last_updated_by
934 , org_id
935 FROM ozf_resale_batches_all
936 WHERE resale_batch_id = p_id;
937
938 /*
939 CURSOR emp_infor_csr(p_res_id NUMBER) IS
940 SELECT employee_id
941 FROM ams_jtf_rs_emp_v
942 WHERE resource_id = p_res_id;
943 */
944 l_batch_org_id NUMBER;
945 --
946 BEGIN
947 IF OZF_DEBUG_HIGH_ON THEN
948 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
949 END IF;
950 IF (funcmode = 'RUN') THEN
951 -- Clear the error stack for one time
952 FND_MSG_PUB.initialize;
953
954 l_resale_batch_id := WF_ENGINE.GetItemAttrText(
955 itemtype => itemtype,
956 itemkey => itemkey,
957 aname => G_WF_ATTR_BATCH_ID
958 );
959 IF l_resale_batch_id is NULL THEN
960 OZF_UTILITY_PVT.error_message('OZF_RESALE_BATCH_ID_NULL');
961 RAISE FND_API.G_EXC_ERROR;
962 END IF;
963
964 OPEN batch_num_csr (l_resale_batch_id);
965 FETCH batch_num_csr into l_batch_number
966 , l_batch_type
967 , l_last_updated_by
968 , l_batch_org_id;
969 CLOSE batch_num_csr;
970
971
972
973 WF_ENGINE.SetItemAttrText(
974 itemtype => itemtype,
975 itemkey => itemkey ,
976 aname => G_WF_ATTR_BATCH_NUMBER,
977 avalue => l_batch_number );
978
979 WF_ENGINE.SetItemAttrText(
980 itemtype => itemtype,
981 itemkey => itemkey ,
982 aname => G_WF_ATTR_BATCH_TYPE,
983 avalue => l_batch_type );
984
985 WF_ENGINE.SetItemAttrText(
986 itemtype => itemtype,
987 itemkey => itemkey ,
988 aname => 'OZF_BATCH_ORG_ID',
989 avalue => l_batch_org_id
990 );
991
992 /*
993 -- The following is moved to workflow first activity-Set_Batch_Status.
994 OPEN emp_infor_csr(OZF_UTILITY_PVT.get_resource_id(l_last_updated_by));
995 FETCH emp_infor_csr INTO l_emp_id;
996 CLOSE emp_infor_csr;
997
998 WF_DIRECTORY.GetRoleName
999 ( p_orig_system => 'PER',
1000 p_orig_system_id => l_emp_id ,
1001 p_name => l_user_name,
1002 p_display_name => l_display_name );
1003
1004 WF_ENGINE.SetItemAttrText(
1005 itemtype => itemtype,
1006 itemkey => itemkey ,
1007 aname => G_WF_ATTR_WF_ADMINISTRATOR,
1008 avalue => l_user_name);
1009
1010 -- set workflow process owner
1011 WF_ENGINE.SetItemOwner(
1012 itemtype => itemtype,
1013 itemkey => itemkey,
1014 owner => l_user_name);
1015 */
1016 --
1017 END IF;
1018
1019 -- CANCEL mode - Normal Process Execution
1020 IF (funcmode = 'CANCEL') THEN
1021 RETURN;
1022 END IF;
1023
1024 -- Other mode - Normal Process Execution
1025 IF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
1026 RETURN;
1027 END IF;
1028
1029 -- TIMEOUT mode - Normal Process Execution
1030 IF (funcmode = 'TIMEOUT') THEN
1031 RETURN;
1032 END IF;
1033 --
1034 EXCEPTION
1035 WHEN FND_API.G_EXC_ERROR THEN
1036 FND_MSG_PUB.Count_And_Get (
1037 p_encoded => FND_API.G_FALSE,
1038 p_count => l_msg_count,
1039 p_data => l_msg_data
1040 );
1041 Handle_Error(
1042 p_itemtype => itemtype
1043 ,p_itemkey => itemkey
1044 ,p_msg_count => l_msg_count
1045 ,p_msg_data => l_msg_data
1046 ,p_process_name => l_api_name
1047 ,x_error_msg => l_error_msg
1048 );
1049 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1050 RAISE;
1051 WHEN OTHERS THEN
1052 IF OZF_UNEXP_ERROR THEN
1053 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1054 END IF;
1055 FND_MSG_PUB.Count_And_Get (
1056 p_encoded => FND_API.G_FALSE,
1057 p_count => l_msg_count,
1058 p_data => l_msg_data
1059 );
1060 Handle_Error(
1061 p_itemtype => itemtype
1062 ,p_itemkey => itemkey
1063 ,p_msg_count => l_msg_count
1064 ,p_msg_data => l_msg_data
1065 ,p_process_name => l_api_name
1066 ,x_error_msg => l_error_msg
1067 );
1068 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1069 RAISE;
1070 END Init_Attributes;
1071
1072 ---------------------------------------------------------------------
1073 -- PROCEDURE
1074 -- Initiate_Payment
1075 --
1076 -- PURPOSE
1077 -- This procedure inities payment processing
1078 --
1079 -- PARAMETERS
1080 --
1081 --
1082 -- NOTES
1083 ---------------------------------------------------------------------
1084 PROCEDURE Initiate_Payment (
1085 itemtype IN varchar2,
1086 itemkey IN varchar2,
1087 actid IN number,
1088 funcmode IN varchar2,
1089 resultout IN OUT NOCOPY varchar2)
1090 IS
1091 l_api_name CONSTANT VARCHAR2(30) := 'Initiate_Payment';
1092 l_api_version_number CONSTANT NUMBER := 1.0;
1093 l_resultout VARCHAR2(30);
1094 l_resale_batch_id NUMBER;
1095 l_return_status VARCHAR2(1);
1096 l_msg_count NUMBER;
1097 l_msg_data VARCHAR2(2000);
1098 l_error_msg VARCHAR2(4000);
1099
1100 l_batch_org_id NUMBER;
1101
1102 BEGIN
1103 IF OZF_DEBUG_HIGH_ON THEN
1104 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
1105 END IF;
1106
1107 -- R12 MOAC Enhancement (+)
1108 l_batch_org_id := WF_ENGINE.GetItemAttrText(
1109 itemtype => itemtype,
1110 itemkey => itemkey,
1111 aname => 'OZF_BATCH_ORG_ID'
1112 );
1113
1114 -- nepanda : Fix for Bug 13819601
1115 /* IF (funcmode = 'TEST_CTX') THEN
1116 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
1117 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
1118 resultout := 'FALSE';
1119 ELSE
1120 resultout := 'TRUE';
1121 END IF;
1122 RETURN;
1123 END IF;
1124
1125 IF (funcmode = 'SET_CTX') THEN
1126 MO_GLOBAL.set_policy_context(
1127 p_access_mode => 'S',
1128 p_org_id => l_batch_org_id
1129 );
1130 --resultout := 'COMPLETE:';
1131 RETURN;
1132 END IF;*/
1133 -- R12 MOAC Enhancement (-)
1134
1135 IF (funcmode = 'RUN') THEN
1136 --
1137 l_resale_batch_id := WF_ENGINE.GetItemAttrText(itemtype => itemtype,
1138 itemkey => itemkey,
1139 aname => G_WF_ATTR_BATCH_ID);
1140 OZF_RESALE_PVT.Initiate_Payment (
1141 p_api_version => 1.0
1142 ,p_init_msg_list => FND_API.G_FALSE
1143 ,p_commit => FND_API.G_FALSE
1144 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
1145 ,p_resale_batch_id => l_resale_batch_id
1146 ,x_return_status => l_return_status
1147 ,x_msg_data => l_msg_data
1148 ,x_msg_count => l_msg_count
1149 );
1150 IF OZF_DEBUG_LOW_ON THEN
1151 OZF_UTILITY_PVT.debug_message('subscribe process iface is complete ');
1152 END IF;
1153 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1154 RAISE FND_API.G_EXC_ERROR;
1155 END IF;
1156 l_resultout := 'COMPLETE:SUCCESS';
1157 --
1158 ELSIF (funcmode = 'CANCEL') THEN
1159 l_resultout := 'COMPLETE:';
1160 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
1161 l_resultout := 'COMPLETE:';
1162 ELSIF (funcmode = 'TIMEOUT') THEN
1163 l_resultout := 'COMPLETE:';
1164 END IF;
1165
1166 resultout := l_resultout;
1167
1168 EXCEPTION
1169 WHEN FND_API.G_EXC_ERROR THEN
1170 FND_MSG_PUB.Count_And_Get (
1171 p_encoded => FND_API.G_FALSE,
1172 p_count => l_msg_count,
1173 p_data => l_msg_data
1174 );
1175 Handle_Error(
1176 p_itemtype => itemtype
1177 ,p_itemkey => itemkey
1178 ,p_msg_count => l_msg_count
1179 ,p_msg_data => l_msg_data
1180 ,p_process_name => l_api_name
1181 ,x_error_msg => l_error_msg
1182 );
1183 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1184 resultout := 'COMPLETE:ERROR';
1185 RETURN;
1186 WHEN OTHERS THEN
1187 IF OZF_UNEXP_ERROR THEN
1188 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1189 END IF;
1190 FND_MSG_PUB.Count_And_Get (
1191 p_encoded => FND_API.G_FALSE,
1192 p_count => l_msg_count,
1193 p_data => l_msg_data
1194 );
1195 Handle_Error(
1196 p_itemtype => itemtype
1197 ,p_itemkey => itemkey
1198 ,p_msg_count => l_msg_count
1199 ,p_msg_data => l_msg_data
1200 ,p_process_name => l_api_name
1201 ,x_error_msg => l_error_msg
1202 );
1203 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1204 RAISE;
1205 END Initiate_Payment;
1206
1207
1208 ---------------------------------------------------------------------
1209 -- PROCEDURE
1210 -- Initiate_Payment_chargeback
1211 --
1212 -- PURPOSE
1213 -- This procedure inities payment processing for chargeback
1214 --
1215 -- PARAMETERS
1216 --
1217 --
1218 -- NOTES
1219 -- returns success or error
1220 ---------------------------------------------------------------------
1221 PROCEDURE Initiate_Payment_chargeback (
1222 itemtype in varchar2,
1223 itemkey in varchar2,
1224 actid in number,
1225 funcmode in varchar2,
1226 resultout in OUT NOCOPY varchar2 )
1227 IS
1228 l_api_name CONSTANT VARCHAR2(30) := 'Initiate_Payment_chargeback';
1229 l_api_version_number CONSTANT NUMBER := 1.0;
1230 l_resultout VARCHAR2(30);
1231 l_resale_batch_id NUMBER;
1232 l_return_status VARCHAR2(1);
1233 l_msg_count NUMBER;
1234 l_msg_data VARCHAR2(2000);
1235 l_error_msg VARCHAR2(4000);
1236
1237 l_batch_org_id NUMBER;
1238
1239 CURSOR get_batch_info(p_resale_batch_id IN NUMBER) IS
1240 SELECT status_code
1241 , last_updated_by
1242 , batch_type
1243 , batch_number
1244 , org_id
1245 FROM ozf_resale_batches_all
1246 WHERE resale_batch_id = p_resale_batch_id;
1247
1248 l_batch_info get_batch_info%ROWTYPE;
1249
1250 BEGIN
1251 IF OZF_DEBUG_HIGH_ON THEN
1252 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
1253 END IF;
1254
1255 -- R12 MOAC Enhancement (+)
1256 l_batch_org_id := WF_ENGINE.GetItemAttrText(
1257 itemtype => itemtype,
1258 itemkey => itemkey,
1259 aname => 'OZF_BATCH_ORG_ID'
1260 );
1261
1262 -- nepanda : Fix for Bug 13819601
1263 /* IF (funcmode = 'TEST_CTX') THEN
1264 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
1265 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
1266 resultout := 'FALSE';
1267 ELSE
1268 resultout := 'TRUE';
1269 END IF;
1270 RETURN;
1271 END IF;
1272
1273 IF (funcmode = 'SET_CTX') THEN
1274 MO_GLOBAL.set_policy_context(
1275 p_access_mode => 'S',
1276 p_org_id => l_batch_org_id
1277 );
1278 --resultout := 'COMPLETE:';
1279 RETURN;
1280 END IF; */
1281 -- R12 MOAC Enhancement (-)
1282
1283 IF (funcmode = 'RUN') THEN
1284 --
1285 l_resale_batch_id := WF_ENGINE.GetItemAttrText(itemtype => itemtype,
1286 itemkey => itemkey,
1287 aname => G_WF_ATTR_BATCH_ID);
1288 -- Fix for Bug#8867381 (+)
1289
1290 OPEN get_batch_info(l_resale_batch_id);
1291 FETCH get_batch_info INTO l_batch_info;
1292 CLOSE get_batch_info;
1293
1294 --//Bugfix : 10431933
1295 -- The session is re-initialized when it is lost.
1296 --FND_GLOBAL.APPS_INITIALIZE(l_batch_info.last_updated_by, 0, 682);
1297
1298
1299 --//Re Initilize Session Context
1300 -- nepanda : Fix for Bug 13819601 commented extra set context
1301 -- Re_Initilize_Context(itemtype => itemtype
1302 -- ,itemkey => itemkey);
1303
1304
1305 -- For Bug#8867381 (-)
1306 OZF_CHARGEBACK_PVT.Initiate_Payment (
1307 p_api_version => 1.0
1308 ,p_init_msg_list => FND_API.G_FALSE
1309 ,p_commit => FND_API.G_FALSE
1310 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
1311 ,p_resale_batch_id => l_resale_batch_id
1312 ,x_return_status => l_return_status
1313 ,x_msg_data => l_msg_data
1314 ,x_msg_count => l_msg_count
1315 );
1316 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1317 RAISE FND_API.G_EXC_ERROR;
1318 END IF;
1319 l_resultout := 'COMPLETE:SUCCESS';
1320 --
1321 ELSIF (funcmode = 'CANCEL') THEN
1322 l_resultout := 'COMPLETE:';
1323 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
1324 l_resultout := 'COMPLETE:';
1325 ELSIF (funcmode = 'TIMEOUT') THEN
1326 l_resultout := 'COMPLETE:';
1327 END IF;
1328
1329 resultout := l_resultout;
1330
1331 EXCEPTION
1332 WHEN FND_API.G_EXC_ERROR THEN
1333 FND_MSG_PUB.Count_And_Get (
1334 p_encoded => FND_API.G_FALSE,
1335 p_count => l_msg_count,
1336 p_data => l_msg_data
1337 );
1338 Handle_Error(
1339 p_itemtype => itemtype
1340 ,p_itemkey => itemkey
1341 ,p_msg_count => l_msg_count
1342 ,p_msg_data => l_msg_data
1343 ,p_process_name => l_api_name
1344 ,x_error_msg => l_error_msg
1345 );
1346 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1347 resultout := 'COMPLETE:ERROR';
1348 RETURN;
1349 WHEN OTHERS THEN
1350 IF OZF_UNEXP_ERROR THEN
1351 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1352 END IF;
1353 FND_MSG_PUB.Count_And_Get (
1354 p_encoded => FND_API.G_FALSE,
1355 p_count => l_msg_count,
1356 p_data => l_msg_data
1357 );
1358 Handle_Error(
1359 p_itemtype => itemtype
1360 ,p_itemkey => itemkey
1361 ,p_msg_count => l_msg_count
1362 ,p_msg_data => l_msg_data
1363 ,p_process_name => l_api_name
1364 ,x_error_msg => l_error_msg
1365 );
1366 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1367 RAISE;
1368 END Initiate_Payment_Chargeback;
1369
1370
1371 ---------------------------------------------------------------------
1372 -- PROCEDURE
1373 -- Initiate_Payment__SPP
1374 --
1375 -- PURPOSE
1376 -- This procedure inities payment processing for special pricing
1377 --
1378 -- PARAMETERS
1379 --
1380 --
1381 -- NOTES
1382 ---------------------------------------------------------------------
1383 PROCEDURE Initiate_Payment_SPP(
1384 itemtype in varchar2,
1385 itemkey in varchar2,
1386 actid in number,
1387 funcmode in varchar2,
1388 resultout in OUT NOCOPY varchar2 )
1389 IS
1390 l_api_name CONSTANT VARCHAR2(30) := 'Initiate_Payment_SPP';
1391 l_api_version_number CONSTANT NUMBER := 1.0;
1392 l_resultout VARCHAR2(30);
1393 l_resale_batch_id NUMBER;
1394 l_return_status VARCHAR2(1);
1395 l_msg_count NUMBER;
1396 l_msg_data VARCHAR2(2000);
1397 l_error_msg VARCHAR2(4000);
1398
1399 l_batch_org_id NUMBER;
1400
1401 BEGIN
1402 IF OZF_DEBUG_HIGH_ON THEN
1403 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
1404 END IF;
1405
1406 -- R12 MOAC Enhancement (+)
1407 l_batch_org_id := WF_ENGINE.GetItemAttrText(
1408 itemtype => itemtype,
1409 itemkey => itemkey,
1410 aname => 'OZF_BATCH_ORG_ID'
1411 );
1412 -- nepanda : Fix for Bug 13819601
1413 /* IF (funcmode = 'TEST_CTX') THEN
1414 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
1415 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
1416 resultout := 'FALSE';
1417 ELSE
1418 resultout := 'TRUE';
1419 END IF;
1420 RETURN;
1421 END IF;
1422
1423 IF (funcmode = 'SET_CTX') THEN
1424 MO_GLOBAL.set_policy_context(
1425 p_access_mode => 'S',
1426 p_org_id => l_batch_org_id
1427 );
1428 --resultout := 'COMPLETE:';
1429 RETURN;
1430 END IF;*/
1431 -- R12 MOAC Enhancement (-)
1432
1433 IF (funcmode = 'RUN') THEN
1434 --
1435 l_resale_batch_id := WF_ENGINE.GetItemAttrText(itemtype => itemtype,
1436 itemkey => itemkey,
1437 aname => G_WF_ATTR_BATCH_ID);
1438
1439 --//Bugfix : 10431933
1440 --//Re Initilize Session Context
1441 -- nepanda : Fix for Bug 13819601 commented extra set context
1442 -- Re_Initilize_Context(itemtype => itemtype
1443 -- ,itemkey => itemkey);
1444
1445 OZF_SPECIAL_PRICING_PVT.Initiate_Payment (
1446 p_api_version => 1.0
1447 ,p_init_msg_list => FND_API.G_FALSE
1448 ,p_commit => FND_API.G_FALSE
1449 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
1450 ,p_resale_batch_id => l_resale_batch_id
1451 ,x_return_status => l_return_status
1452 ,x_msg_data => l_msg_data
1453 ,x_msg_count => l_msg_count
1454 );
1455 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1456 RAISE FND_API.G_EXC_ERROR;
1457 END IF;
1458 l_resultout := 'COMPLETE:SUCCESS';
1459 --
1460 ELSIF (funcmode = 'CANCEL') THEN
1461 l_resultout := 'COMPLETE:';
1462 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
1463 l_resultout := 'COMPLETE:';
1464 ELSIF (funcmode = 'TIMEOUT') THEN
1465 l_resultout := 'COMPLETE:';
1466 END IF;
1467
1468 resultout := l_resultout;
1469
1470 EXCEPTION
1471 WHEN FND_API.G_EXC_ERROR THEN
1472 FND_MSG_PUB.Count_And_Get (
1473 p_encoded => FND_API.G_FALSE,
1474 p_count => l_msg_count,
1475 p_data => l_msg_data
1476 );
1477 Handle_Error(
1478 p_itemtype => itemtype
1479 ,p_itemkey => itemkey
1480 ,p_msg_count => l_msg_count
1481 ,p_msg_data => l_msg_data
1482 ,p_process_name => l_api_name
1483 ,x_error_msg => l_error_msg
1484 );
1485 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1486 resultout := 'COMPLETE:ERROR';
1487 RETURN;
1488 WHEN OTHERS THEN
1489 IF OZF_UNEXP_ERROR THEN
1490 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1491 END IF;
1492 FND_MSG_PUB.Count_And_Get (
1493 p_encoded => FND_API.G_FALSE,
1494 p_count => l_msg_count,
1495 p_data => l_msg_data
1496 );
1497 Handle_Error(
1498 p_itemtype => itemtype
1499 ,p_itemkey => itemkey
1500 ,p_msg_count => l_msg_count
1501 ,p_msg_data => l_msg_data
1502 ,p_process_name => l_api_name
1503 ,x_error_msg => l_error_msg
1504 );
1505 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1506 RAISE;
1507 END Initiate_Payment_SPP;
1508
1509
1510 ---------------------------------------------------------------------
1511 -- PROCEDURE
1512 -- Initiate_Payment_Tracing
1513 --
1514 -- PURPOSE
1515 -- This procedure inities payment processing for tracing order
1516 --
1517 -- PARAMETERS
1518 --
1519 --
1520 -- NOTES
1521 ---------------------------------------------------------------------
1522 PROCEDURE Initiate_Payment_Tracing (
1523 itemtype in varchar2,
1524 itemkey in varchar2,
1525 actid in number,
1526 funcmode in varchar2,
1527 resultout in OUT NOCOPY varchar2 )
1528 IS
1529 l_api_name CONSTANT VARCHAR2(30) := 'Initiate_Payment_Tracing';
1530 l_api_version_number CONSTANT NUMBER := 1.0;
1531 l_resultout VARCHAR2(30);
1532 l_resale_batch_id NUMBER;
1533 l_return_status VARCHAR2(1);
1534 l_msg_count NUMBER;
1535 l_msg_data VARCHAR2(2000);
1536 l_error_msg VARCHAR2(4000);
1537 BEGIN
1538 IF OZF_DEBUG_HIGH_ON THEN
1539 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
1540 END IF;
1541 IF (funcmode = 'RUN') THEN
1542 --
1543 l_resale_batch_id := WF_ENGINE.GetItemAttrText(itemtype => itemtype,
1544 itemkey => itemkey,
1545 aname => G_WF_ATTR_BATCH_ID);
1546
1547 --//Bugfix : 10431933
1548 --//Re Initilize Session Context
1549 -- nepanda : Fix for Bug 13819601 commented extra set context
1550 -- Re_Initilize_Context(itemtype => itemtype
1551 -- ,itemkey => itemkey);
1552
1553 OZF_TRACING_ORDER_PVT.Initiate_Payment (
1554 p_api_version => 1.0
1555 ,p_init_msg_list => FND_API.G_FALSE
1556 ,p_commit => FND_API.G_FALSE
1557 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
1558 ,p_resale_batch_id => l_resale_batch_id
1559 ,x_return_status => l_return_status
1560 ,x_msg_data => l_msg_data
1561 ,x_msg_count => l_msg_count
1562 );
1563 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1564 RAISE FND_API.G_EXC_ERROR;
1565 END IF;
1566 l_resultout := 'COMPLETE:SUCCESS';
1567 --
1568 ELSIF (funcmode = 'CANCEL') THEN
1569 l_resultout := 'COMPLETE:';
1570 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
1571 l_resultout := 'COMPLETE:';
1572 ELSIF (funcmode = 'TIMEOUT') THEN
1573 l_resultout := 'COMPLETE:';
1574 END IF;
1575
1576 resultout := l_resultout;
1577
1578 EXCEPTION
1579 WHEN FND_API.G_EXC_ERROR THEN
1580 FND_MSG_PUB.Count_And_Get (
1581 p_encoded => FND_API.G_FALSE,
1582 p_count => l_msg_count,
1583 p_data => l_msg_data
1584 );
1585 Handle_Error(
1586 p_itemtype => itemtype
1587 ,p_itemkey => itemkey
1588 ,p_msg_count => l_msg_count
1589 ,p_msg_data => l_msg_data
1590 ,p_process_name => l_api_name
1591 ,x_error_msg => l_error_msg
1592 );
1593 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1594 resultout := 'COMPLETE:ERROR';
1595 RETURN;
1596 WHEN OTHERS THEN
1597 IF OZF_UNEXP_ERROR THEN
1598 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1599 END IF;
1600 FND_MSG_PUB.Count_And_Get (
1601 p_encoded => FND_API.G_FALSE,
1602 p_count => l_msg_count,
1603 p_data => l_msg_data
1604 );
1605 Handle_Error(
1606 p_itemtype => itemtype
1607 ,p_itemkey => itemkey
1608 ,p_msg_count => l_msg_count
1609 ,p_msg_data => l_msg_data
1610 ,p_process_name => l_api_name
1611 ,x_error_msg => l_error_msg
1612 );
1613 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1614 RAISE;
1615 END Initiate_Payment_Tracing;
1616
1617 ---------------------------------------------------------------------
1618 -- PROCEDURE
1619 -- Process_Chargeback
1620 --
1621 -- PURPOSE
1622 -- This procedure inities indirect sales data processing for chargeback
1623 --
1624 -- PARAMETERS
1625 --
1626 --
1627 -- NOTES
1628 ---------------------------------------------------------------------
1629 PROCEDURE Process_Chargeback (
1630 itemtype IN varchar2,
1631 itemkey IN varchar2,
1632 actid IN number,
1633 funcmode IN varchar2,
1634 resultout IN OUT NOCOPY varchar2)
1635 IS
1636 l_api_name CONSTANT VARCHAR2(30) := 'Process_Chargeback';
1637 l_api_version_number CONSTANT NUMBER := 1.0;
1638 l_resultout VARCHAR2(30);
1639 l_resale_batch_id NUMBER;
1640 l_return_status VARCHAR2(1);
1641 l_msg_count NUMBER;
1642 l_msg_data VARCHAR2(2000);
1643 l_error_msg VARCHAR2(4000);
1644
1645 l_batch_org_id NUMBER;
1646
1647 BEGIN
1648 IF OZF_DEBUG_HIGH_ON THEN
1649 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
1650 END IF;
1651
1652 -- R12 MOAC Enhancement (+)
1653 l_batch_org_id := WF_ENGINE.GetItemAttrText(
1654 itemtype => itemtype,
1655 itemkey => itemkey,
1656 aname => 'OZF_BATCH_ORG_ID'
1657 );
1658
1659 -- nepanda : Fix for Bug 13819601
1660 /* IF (funcmode = 'TEST_CTX') THEN
1661 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
1662 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
1663 resultout := 'FALSE';
1664 ELSE
1665 resultout := 'TRUE';
1666 END IF;
1667 RETURN;
1668 END IF;
1669
1670 IF (funcmode = 'SET_CTX') THEN
1671 MO_GLOBAL.set_policy_context(
1672 p_access_mode => 'S',
1673 p_org_id => l_batch_org_id
1674 );
1675 --resultout := 'COMPLETE:';
1676 RETURN;
1677 END IF;*/
1678 -- R12 MOAC Enhancement (-)
1679
1680 IF (funcmode = 'RUN') THEN
1681 --
1682 l_resale_batch_id := WF_ENGINE.GetItemAttrNumber(itemtype => itemtype,
1683 itemkey => itemkey,
1684 aname => G_WF_ATTR_BATCH_ID);
1685 OZF_CHARGEBACK_PVT.Process_Order(
1686 p_api_version => 1.0
1687 ,p_init_msg_list => FND_API.G_FALSE
1688 ,p_commit => FND_API.G_FALSE
1689 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
1690 ,p_resale_batch_id => l_resale_batch_id
1691 ,x_return_status => l_return_status
1692 ,x_msg_data => l_msg_data
1693 ,x_msg_count => l_msg_count
1694 );
1695 IF OZF_DEBUG_LOW_ON THEN
1696 OZF_UTILITY_PVT.debug_message('subscribe process chargeback order complete ');
1697 END IF;
1698 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1699 RAISE FND_API.G_EXC_ERROR;
1700 END IF;
1701 l_resultout := 'COMPLETE:SUCCESS';
1702 --
1703 ELSIF (funcmode = 'CANCEL') THEN
1704 l_resultout := 'COMPLETE:';
1705 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
1706 l_resultout := 'COMPLETE:';
1707 ELSIF (funcmode = 'TIMEOUT') THEN
1708 l_resultout := 'COMPLETE:';
1709 END IF;
1710
1711 resultout := l_resultout;
1712
1713 EXCEPTION
1714 WHEN FND_API.G_EXC_ERROR THEN
1715 FND_MSG_PUB.Count_And_Get (
1716 p_encoded => FND_API.G_FALSE,
1717 p_count => l_msg_count,
1718 p_data => l_msg_data
1719 );
1720 Handle_Error(
1721 p_itemtype => itemtype
1722 ,p_itemkey => itemkey
1723 ,p_msg_count => l_msg_count
1724 ,p_msg_data => l_msg_data
1725 ,p_process_name => l_api_name
1726 ,x_error_msg => l_error_msg
1727 );
1728 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1729 resultout := 'COMPLETE:ERROR';
1730 RETURN;
1731 WHEN OTHERS THEN
1732 IF OZF_UNEXP_ERROR THEN
1733 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1734 END IF;
1735 FND_MSG_PUB.Count_And_Get (
1736 p_encoded => FND_API.G_FALSE,
1737 p_count => l_msg_count,
1738 p_data => l_msg_data
1739 );
1740 Handle_Error(
1741 p_itemtype => itemtype
1742 ,p_itemkey => itemkey
1743 ,p_msg_count => l_msg_count
1744 ,p_msg_data => l_msg_data
1745 ,p_process_name => l_api_name
1746 ,x_error_msg => l_error_msg
1747 );
1748 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1749 resultout := 'COMPLETE:ERROR';
1750 RAISE;
1751 END Process_Chargeback;
1752
1753
1754 ---------------------------------------------------------------------
1755 -- PROCEDURE
1756 -- Process_Resale
1757 --
1758 -- PURPOSE
1759 -- This procedure initiates third party accrual process for resale data
1760 --
1761 -- PARAMETERS
1762 --
1763 --
1764 -- NOTES
1765 ---------------------------------------------------------------------
1766 PROCEDURE Process_Resale(
1767 itemtype in varchar2,
1768 itemkey in varchar2,
1769 actid in number,
1770 funcmode in varchar2,
1771 resultout in OUT NOCOPY varchar2)
1772 IS
1773 l_api_name CONSTANT VARCHAR2(30) := 'Process_Resale';
1774 l_api_version_number CONSTANT NUMBER := 1.0;
1775 l_resultout VARCHAR2(30);
1776 l_resale_batch_id NUMBER;
1777 l_return_status VARCHAR2(1);
1778 l_msg_count NUMBER;
1779 l_msg_data VARCHAR2(2000);
1780 l_error_msg VARCHAR2(4000);
1781
1782 l_batch_org_id NUMBER;
1783
1784 BEGIN
1785 IF OZF_DEBUG_HIGH_ON THEN
1786 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
1787 END IF;
1788
1789 -- R12 MOAC Enhancement (+)
1790 l_batch_org_id := WF_ENGINE.GetItemAttrText(
1791 itemtype => itemtype,
1792 itemkey => itemkey,
1793 aname => 'OZF_BATCH_ORG_ID'
1794 );
1795
1796 -- nepanda : Fix for Bug 13819601
1797 /* IF (funcmode = 'TEST_CTX') THEN
1798 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
1799 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
1800 resultout := 'FALSE';
1801 ELSE
1802 resultout := 'TRUE';
1803 END IF;
1804 RETURN;
1805 END IF;
1806
1807 IF (funcmode = 'SET_CTX') THEN
1808 MO_GLOBAL.set_policy_context(
1809 p_access_mode => 'S',
1810 p_org_id => l_batch_org_id
1811 );
1812 --resultout := 'COMPLETE:';
1813 RETURN;
1814 END IF;*/
1815 -- R12 MOAC Enhancement (-)
1816
1817 IF (funcmode = 'RUN') THEN
1818 --
1819 l_resale_batch_id := WF_ENGINE.GetItemAttrNumber(itemtype => itemtype,
1820 itemkey => itemkey,
1821 aname => G_WF_ATTR_BATCH_ID);
1822 OZF_RESALE_PVT.Process_Resale (
1823 p_api_version => 1
1824 ,p_init_msg_list => FND_API.G_FALSE
1825 ,p_commit => FND_API.G_FALSE
1826 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
1827 ,p_resale_batch_id => l_resale_batch_id
1828 ,x_return_status => l_return_status
1829 ,x_msg_data => l_msg_data
1830 ,x_msg_count => l_msg_count
1831 );
1832 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1833 RAISE FND_API.G_EXC_ERROR;
1834 END IF;
1835 l_resultout := 'COMPLETE:SUCCESS';
1836 --
1837 ELSIF (funcmode = 'CANCEL') THEN
1838 l_resultout := 'COMPLETE:';
1839 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
1840 l_resultout := 'COMPLETE:';
1841 ELSIF (funcmode = 'TIMEOUT') THEN
1842 l_resultout := 'COMPLETE:';
1843 END IF;
1844
1845 resultout := l_resultout;
1846
1847 EXCEPTION
1848 WHEN FND_API.G_EXC_ERROR THEN
1849 FND_MSG_PUB.Count_And_Get (
1850 p_encoded => FND_API.G_FALSE,
1851 p_count => l_msg_count,
1852 p_data => l_msg_data
1853 );
1854 Handle_Error(
1855 p_itemtype => itemtype
1856 ,p_itemkey => itemkey
1857 ,p_msg_count => l_msg_count
1858 ,p_msg_data => l_msg_data
1859 ,p_process_name => l_api_name
1860 ,x_error_msg => l_error_msg
1861 );
1862 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1863 resultout := 'COMPLETE:ERROR';
1864 RETURN;
1865 WHEN OTHERS THEN
1866 IF OZF_UNEXP_ERROR THEN
1867 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1868 END IF;
1869 FND_MSG_PUB.Count_And_Get (
1870 p_encoded => FND_API.G_FALSE,
1871 p_count => l_msg_count,
1872 p_data => l_msg_data
1873 );
1874 Handle_Error(
1875 p_itemtype => itemtype
1876 ,p_itemkey => itemkey
1877 ,p_msg_count => l_msg_count
1878 ,p_msg_data => l_msg_data
1879 ,p_process_name => l_api_name
1880 ,x_error_msg => l_error_msg
1881 );
1882 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1883 RAISE;
1884 END Process_Resale;
1885
1886
1887 ---------------------------------------------------------------------
1888 -- PROCEDURE
1889 -- Process_Special_Pricing
1890 --
1891 -- PURPOSE
1892 -- This procedure inities indirect sales data processing for special pricing
1893 --
1894 -- PARAMETERS
1895 --
1896 --
1897 -- NOTES
1898 ---------------------------------------------------------------------
1899 PROCEDURE Process_Special_Pricing(
1900 itemtype IN varchar2,
1901 itemkey IN varchar2,
1902 actid IN number,
1903 funcmode IN varchar2,
1904 resultout IN OUT NOCOPY varchar2)
1905 IS
1906 l_api_name CONSTANT VARCHAR2(30) := 'Process_Special_Pricing';
1907 l_api_version_number CONSTANT NUMBER := 1.0;
1908 l_resultout VARCHAR2(30);
1909 l_resale_batch_id NUMBER;
1910 l_return_status VARCHAR2(1);
1911 l_msg_count NUMBER;
1912 l_msg_data VARCHAR2(2000);
1913 l_error_msg VARCHAR2(4000);
1914
1915 l_batch_org_id NUMBER;
1916
1917 BEGIN
1918 IF OZF_DEBUG_HIGH_ON THEN
1919 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
1920 END IF;
1921
1922 -- R12 MOAC Enhancement (+)
1923 l_batch_org_id := WF_ENGINE.GetItemAttrText(
1924 itemtype => itemtype,
1925 itemkey => itemkey,
1926 aname => 'OZF_BATCH_ORG_ID'
1927 );
1928
1929 -- nepanda : Fix for Bug 13819601
1930 /* IF (funcmode = 'TEST_CTX') THEN
1931 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
1932 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
1933 resultout := 'FALSE';
1934 ELSE
1935 resultout := 'TRUE';
1936 END IF;
1937 RETURN;
1938 END IF;
1939
1940 IF (funcmode = 'SET_CTX') THEN
1941 MO_GLOBAL.set_policy_context(
1942 p_access_mode => 'S',
1943 p_org_id => l_batch_org_id
1944 );
1945 --resultout := 'COMPLETE:';
1946 RETURN;
1947 END IF;*/
1948 -- R12 MOAC Enhancement (-)
1949
1950 IF (funcmode = 'RUN') THEN
1951 --
1952 l_resale_batch_id := WF_ENGINE.GetItemAttrNumber(itemtype => itemtype,
1953 itemkey => itemkey,
1954 aname => G_WF_ATTR_BATCH_ID);
1955 OZF_SPECIAL_PRICING_PVT.Process_Order(
1956 p_api_version => 1.0
1957 ,p_init_msg_list => FND_API.G_FALSE
1958 ,p_commit => FND_API.G_FALSE
1959 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
1960 ,p_resale_batch_id => l_resale_batch_id
1961 ,x_return_status => l_return_status
1962 ,x_msg_data => l_msg_data
1963 ,x_msg_count => l_msg_count
1964 );
1965 IF OZF_DEBUG_LOW_ON THEN
1966 OZF_UTILITY_PVT.debug_message('subscribe process chargeback order complete ');
1967 END IF;
1968 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1969 RAISE FND_API.G_EXC_ERROR;
1970 END IF;
1971 l_resultout := 'COMPLETE:SUCCESS';
1972 --
1973 ELSIF (funcmode = 'CANCEL') THEN
1974 l_resultout := 'COMPLETE:';
1975 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
1976 l_resultout := 'COMPLETE:';
1977 ELSIF (funcmode = 'TIMEOUT') THEN
1978 l_resultout := 'COMPLETE:';
1979 END IF;
1980
1981 resultout := l_resultout;
1982
1983 EXCEPTION
1984 WHEN FND_API.G_EXC_ERROR THEN
1985 FND_MSG_PUB.Count_And_Get (
1986 p_encoded => FND_API.G_FALSE,
1987 p_count => l_msg_count,
1988 p_data => l_msg_data
1989 );
1990 Handle_Error(
1991 p_itemtype => itemtype
1992 ,p_itemkey => itemkey
1993 ,p_msg_count => l_msg_count
1994 ,p_msg_data => l_msg_data
1995 ,p_process_name => l_api_name
1996 ,x_error_msg => l_error_msg
1997 );
1998 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
1999 resultout := 'COMPLETE:ERROR';
2000 RETURN;
2001 WHEN OTHERS THEN
2002 IF OZF_UNEXP_ERROR THEN
2003 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2004 END IF;
2005 FND_MSG_PUB.Count_And_Get (
2006 p_encoded => FND_API.G_FALSE,
2007 p_count => l_msg_count,
2008 p_data => l_msg_data
2009 );
2010 Handle_Error(
2011 p_itemtype => itemtype
2012 ,p_itemkey => itemkey
2013 ,p_msg_count => l_msg_count
2014 ,p_msg_data => l_msg_data
2015 ,p_process_name => l_api_name
2016 ,x_error_msg => l_error_msg
2017 );
2018 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
2019 RAISE;
2020 END Process_Special_Pricing;
2021
2022
2023 ---------------------------------------------------------------------
2024 -- PROCEDURE
2025 -- Process_Tracing
2026 --
2027 -- PURPOSE
2028 -- This procedure inities indirect sales data processing for tracing data
2029 --
2030 -- PARAMETERS
2031 --
2032 --
2033 -- NOTES
2034 ---------------------------------------------------------------------
2035 PROCEDURE Process_Tracing(
2036 itemtype IN varchar2,
2037 itemkey IN varchar2,
2038 actid IN number,
2039 funcmode IN varchar2,
2040 resultout IN OUT NOCOPY varchar2)
2041 IS
2042 l_api_name CONSTANT VARCHAR2(30) := 'Process_Tracing';
2043 l_api_version_number CONSTANT NUMBER := 1.0;
2044 l_resultout VARCHAR2(30);
2045 l_resale_batch_id NUMBER;
2046 l_return_status VARCHAR2(1);
2047 l_msg_count NUMBER;
2048 l_msg_data VARCHAR2(2000);
2049 l_error_msg VARCHAR2(4000);
2050
2051 l_batch_org_id NUMBER;
2052
2053 BEGIN
2054 IF OZF_DEBUG_HIGH_ON THEN
2055 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
2056 END IF;
2057
2058 -- R12 MOAC Enhancement (+)
2059 l_batch_org_id := WF_ENGINE.GetItemAttrText(
2060 itemtype => itemtype,
2061 itemkey => itemkey,
2062 aname => 'OZF_BATCH_ORG_ID'
2063 );
2064
2065 -- nepanda : Fix for Bug 13819601
2066 /* IF (funcmode = 'TEST_CTX') THEN
2067 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
2068 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
2069 resultout := 'FALSE';
2070 ELSE
2071 resultout := 'TRUE';
2072 END IF;
2073 RETURN;
2074 END IF;
2075
2076 IF (funcmode = 'SET_CTX') THEN
2077 MO_GLOBAL.set_policy_context(
2078 p_access_mode => 'S',
2079 p_org_id => l_batch_org_id
2080 );
2081 --resultout := 'COMPLETE:';
2082 RETURN;
2083 END IF;*/
2084 -- R12 MOAC Enhancement (-)
2085
2086 IF (funcmode = 'RUN') THEN
2087 --
2088 l_resale_batch_id := WF_ENGINE.GetItemAttrNumber(itemtype => itemtype,
2089 itemkey => itemkey,
2090 aname => G_WF_ATTR_BATCH_ID);
2091 OZF_TRACING_ORDER_PVT.Process_Order(
2092 p_api_version => 1.0
2093 ,p_init_msg_list => FND_API.G_FALSE
2094 ,p_commit => FND_API.G_FALSE
2095 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
2096 ,p_resale_batch_id => l_resale_batch_id
2097 ,x_return_status => l_return_status
2098 ,x_msg_data => l_msg_data
2099 ,x_msg_count => l_msg_count
2100 );
2101 IF OZF_DEBUG_LOW_ON THEN
2102 OZF_UTILITY_PVT.debug_message('subscribe process tracing order complete ');
2103 END IF;
2104 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2105 RAISE FND_API.G_EXC_ERROR;
2106 END IF;
2107 l_resultout := 'COMPLETE:SUCCESS';
2108 --
2109 ELSIF (funcmode = 'CANCEL') THEN
2110 l_resultout := 'COMPLETE:';
2111 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
2112 l_resultout := 'COMPLETE:';
2113 ELSIF (funcmode = 'TIMEOUT') THEN
2114 l_resultout := 'COMPLETE:';
2115 END IF;
2116
2117 resultout := l_resultout;
2118
2119 EXCEPTION
2120 WHEN FND_API.G_EXC_ERROR THEN
2121 FND_MSG_PUB.Count_And_Get (
2122 p_encoded => FND_API.G_FALSE,
2123 p_count => l_msg_count,
2124 p_data => l_msg_data
2125 );
2126 Handle_Error(
2127 p_itemtype => itemtype
2128 ,p_itemkey => itemkey
2129 ,p_msg_count => l_msg_count
2130 ,p_msg_data => l_msg_data
2131 ,p_process_name => l_api_name
2132 ,x_error_msg => l_error_msg
2133 );
2134 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
2135 resultout := 'COMPLETE:ERROR';
2136 RETURN;
2137 WHEN OTHERS THEN
2138 IF OZF_UNEXP_ERROR THEN
2139 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2140 END IF;
2141 FND_MSG_PUB.Count_And_Get (
2142 p_encoded => FND_API.G_FALSE,
2143 p_count => l_msg_count,
2144 p_data => l_msg_data
2145 );
2146 Handle_Error(
2147 p_itemtype => itemtype
2148 ,p_itemkey => itemkey
2149 ,p_msg_count => l_msg_count
2150 ,p_msg_data => l_msg_data
2151 ,p_process_name => l_api_name
2152 ,x_error_msg => l_error_msg
2153 );
2154 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
2155 RAISE;
2156 END Process_Tracing;
2157
2158 ---------------------------------------------------------------------
2159 -- PROCEDURE
2160 -- Reset_Status
2161 --
2162 -- PURPOSE
2163 -- This procedure is to reset the status of a batch IN case of exceptions
2164 --
2165 -- PARAMETERS
2166 --
2167 --
2168 -- NOTES
2169 ---------------------------------------------------------------------
2170 PROCEDURE Reset_Status (
2171 itemtype IN VARCHAR2,
2172 itemkey IN VARCHAR2,
2173 actid IN NUMBER,
2174 funcmode IN VARCHAR2,
2175 result OUT NOCOPY VARCHAR2
2176 )IS
2177 l_api_name CONSTANT VARCHAR2(30) := 'Reset_Status';
2178 l_api_version CONSTANT NUMBER := 1.0;
2179 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME ||'.'|| l_api_name;
2180 --
2181 l_return_status varchar2(30);
2182 l_msg_data varchar2(2000);
2183 l_msg_count number;
2184 --
2185 l_resale_batch_id NUMBER;
2186 l_batch_status varchar2(30);
2187 l_lines_disputed number;
2188 l_resultout VARCHAR2(30);
2189 l_error_msg VARCHAR2(4000);
2190 --
2191 CURSOR batch_status_csr(p_id number) IS
2192 SELECT status_code
2193 , lines_disputed
2194 --FROM ozf_resale_batches
2195 FROM ozf_resale_batches_all
2196 WHERE resale_batch_id = p_id;
2197 --
2198 BEGIN
2199 IF OZF_DEBUG_HIGH_ON THEN
2200 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
2201 END IF;
2202 IF (funcmode = 'RUN') THEN
2203 --
2204 l_resale_batch_id := WF_ENGINE.GetItemAttrText(
2205 itemtype => itemtype,
2206 itemkey => itemkey,
2207 aname => G_WF_ATTR_BATCH_ID
2208 );
2209
2210 OPEN batch_status_csr(l_resale_batch_id);
2211 FETCH batch_status_csr into l_batch_status, l_lines_disputed;
2212 CLOSE batch_status_csr;
2213
2214 IF l_batch_status is null THEN
2215 OZF_UTILITY_PVT.error_message('OZF_RESALE_BATCH_STATUS_NULL');
2216 RAISE FND_API.G_EXC_ERROR;
2217 END IF;
2218
2219 -- reset the status based on # of disputed lines
2220 OPEN OZF_RESALE_COMMON_PVT.g_disputed_line_count_csr (l_resale_batch_id);
2221 FETCH OZF_RESALE_COMMON_PVT.g_disputed_line_count_csr into l_lines_disputed;
2222 CLOSE OZF_RESALE_COMMON_PVT.g_disputed_line_count_csr;
2223
2224 IF l_batch_status = OZF_RESALE_COMMON_PVT.G_BATCH_PROCESSING THEN
2225 IF l_lines_disputed = 0 THEN
2226 -- update status to Processed
2227 UPDATE ozf_resale_batches_all
2228 SET status_code = OZF_RESALE_COMMON_PVT.G_BATCH_OPEN
2229 WHERE resale_batch_id = l_resale_batch_id;
2230 ELSE
2231 -- update status to Disputed
2232 UPDATE ozf_resale_batches_all
2233 SET status_code = OZF_RESALE_COMMON_PVT.G_BATCH_DISPUTED
2234 WHERE resale_batch_id = l_resale_batch_id;
2235 END IF;
2236 ELSIF l_batch_status = OZF_RESALE_COMMON_PVT.G_BATCH_PENDING_PAYMENT THEN
2237
2238 IF l_lines_disputed = 0 THEN
2239 -- update status to Processed
2240 UPDATE ozf_resale_batches_all
2241 SET status_code = OZF_RESALE_COMMON_PVT.G_BATCH_PROCESSED
2242 WHERE resale_batch_id = l_resale_batch_id;
2243 ELSE
2244 -- update status to Disputed
2245 UPDATE ozf_resale_batches_all
2246 SET status_code = OZF_RESALE_COMMON_PVT.G_BATCH_DISPUTED
2247 WHERE resale_batch_id = l_resale_batch_id;
2248 END IF;
2249 END IF;
2250 l_resultout := 'COMPLETE';
2251 --
2252 END IF;
2253
2254 -- CANCEL mode - Normal Process Execution
2255 IF (funcmode = 'CANCEL') THEN
2256 l_resultout := 'COMPLETE:';
2257 END IF;
2258
2259 -- TIMEOUT mode - Normal Process Execution
2260 IF (funcmode = 'TIMEOUT') THEN
2261 l_resultout := 'COMPLETE:';
2262 END IF;
2263
2264 result := l_resultout;
2265 RETURN;
2266 --
2267 EXCEPTION
2268 WHEN FND_API.G_EXC_ERROR THEN
2269 FND_MSG_PUB.Count_And_Get (
2270 p_encoded => FND_API.G_FALSE,
2271 p_count => l_msg_count,
2272 p_data => l_msg_data
2273 );
2274 Handle_Error(
2275 p_itemtype => itemtype
2276 ,p_itemkey => itemkey
2277 ,p_msg_count => l_msg_count
2278 ,p_msg_data => l_msg_data
2279 ,p_process_name => l_api_name
2280 ,x_error_msg => l_error_msg
2281 );
2282 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
2283 RAISE;
2284 WHEN OTHERS THEN
2285 IF OZF_UNEXP_ERROR THEN
2286 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2287 END IF;
2288 FND_MSG_PUB.Count_And_Get (
2289 p_encoded => FND_API.G_FALSE,
2290 p_count => l_msg_count,
2291 p_data => l_msg_data
2292 );
2293 Handle_Error(
2294 p_itemtype => itemtype
2295 ,p_itemkey => itemkey
2296 ,p_msg_count => l_msg_count
2297 ,p_msg_data => l_msg_data
2298 ,p_process_name => l_api_name
2299 ,x_error_msg => l_error_msg
2300 );
2301 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
2302 RAISE;
2303 END Reset_Status;
2304
2305 ---------------------------------------------------------------------
2306 -- PROCEDURE
2307 -- Set_Batch_Status
2308 --
2309 -- PURPOSE
2310 -- This procedure is to set the status of a batch
2311 --
2312 -- PARAMETERS
2313 --
2314 --
2315 -- NOTES
2316 ---------------------------------------------------------------------
2317 PROCEDURE Set_Batch_Status (
2318 itemtype IN VARCHAR2,
2319 itemkey IN VARCHAR2,
2320 actid IN NUMBER,
2321 funcmode IN VARCHAR2,
2322 resultout in OUT NOCOPY varchar2
2323 )IS
2324 l_api_name CONSTANT VARCHAR2(30) := 'Set_Batch_Status';
2325 l_api_version CONSTANT NUMBER := 1.0;
2326 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME ||'.'|| l_api_name;
2327 --
2328 l_return_status varchar2(30);
2329 l_msg_data varchar2(2000);
2330 l_msg_count number;
2331 --
2332 l_resale_batch_id NUMBER;
2333 l_batch_status varchar2(30);
2334 l_batch_next_status varchar2(30);
2335 l_lines_disputed number;
2336 l_resultout VARCHAR2(30);
2337 l_error_msg VARCHAR2(4000);
2338
2339 l_last_updated_by NUMBER;
2340 l_emp_id NUMBER;
2341 l_user_name VARCHAR2(100);
2342 l_display_name VARCHAR2(100);
2343 --
2344 CURSOR batch_status_csr(p_id number) IS
2345 SELECT last_updated_by
2346 , status_code
2347 --FROM ozf_resale_batches
2348 FROM ozf_resale_batches_all
2349 WHERE resale_batch_id = p_id;
2350
2351 CURSOR emp_infor_csr(p_res_id NUMBER) IS
2352 -- BUBG 4953233 (+)
2353 SELECT ppl.person_id
2354 FROM jtf_rs_resource_extns rsc
2355 , per_people_f ppl
2356 WHERE rsc.category = 'EMPLOYEE'
2357 AND ppl.person_id = rsc.source_id
2358 AND rsc.resource_id=p_res_id;
2359 -- SELECT employee_id
2360 -- FROM jtf_rs_res_emp_vl
2361 -- WHERE resource_id = p_res_id ;
2362 -- BUBG 4953233 (-)
2363
2364 l_batch_org_id NUMBER;
2365
2366 --//Bugfix : 10431933
2367 l_resp_id NUMBER;
2368 l_user_id NUMBER;
2369 l_wf_user_id NUMBER;
2370
2371 CURSOR wf_values_csr(p_item_type VARCHAR2,
2372 p_item_key VARCHAR2,
2373 p_name VARCHAR2) IS
2374 SELECT number_value
2375 FROM wf_item_attribute_values wiav
2376 WHERE wiav.item_type = p_item_type
2377 AND wiav.item_key like p_item_key||'%'
2378 AND wiav.name = p_name;
2379
2380 BEGIN
2381 IF OZF_DEBUG_HIGH_ON THEN
2382 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
2383 END IF;
2384
2385 -- R12 MOAC Enhancement (+)
2386 l_batch_org_id := WF_ENGINE.GetItemAttrText(
2387 itemtype => itemtype,
2388 itemkey => itemkey,
2389 aname => 'OZF_BATCH_ORG_ID'
2390 );
2391
2392 -- nepanda : Fix for Bug 13819601
2393 /* IF (funcmode = 'TEST_CTX') THEN
2394 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
2395 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
2396 resultout := 'FALSE';
2397 ELSE
2398 resultout := 'TRUE';
2399 END IF;
2400 RETURN;
2401 END IF;
2402
2403 IF (funcmode = 'SET_CTX') THEN
2404 MO_GLOBAL.set_policy_context(
2405 p_access_mode => 'S',
2406 p_org_id => l_batch_org_id
2407 );
2408 --resultout := 'COMPLETE:';
2409 RETURN;
2410 END IF;*/
2411 -- R12 MOAC Enhancement (-)
2412
2413 IF (funcmode = 'RUN') THEN
2414 l_resale_batch_id := WF_ENGINE.GetItemAttrText(
2415 itemtype => itemtype,
2416 itemkey => itemkey,
2417 aname => G_WF_ATTR_BATCH_ID
2418 );
2419
2420 --//Bugfix : 10431933
2421 IF OZF_DEBUG_HIGH_ON THEN
2422 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' l_resale_batch_id : ' || l_resale_batch_id);
2423 END IF;
2424
2425
2426 IF SUBSTR(itemkey,1,11) = 'ResaleBatch' THEN
2427
2428 OPEN wf_values_csr(itemtype,l_resale_batch_id,G_WF_ATTR_USER_ID);
2429 FETCH wf_values_csr INTO l_user_id;
2430 CLOSE wf_values_csr;
2431
2432 OPEN wf_values_csr(itemtype,l_resale_batch_id,G_WF_ATTR_RESP_ID);
2433 FETCH wf_values_csr INTO l_resp_id;
2434 CLOSE wf_values_csr;
2435
2436 ELSE
2437
2438 l_user_id := WF_ENGINE.GetItemAttrText(
2439 itemtype => itemtype,
2440 itemkey => itemkey,
2441 aname => G_WF_ATTR_USER_ID
2442 );
2443
2444 l_resp_id := WF_ENGINE.GetItemAttrText(
2445 itemtype => itemtype,
2446 itemkey => itemkey,
2447 aname => G_WF_ATTR_RESP_ID
2448 );
2449
2450 END IF;
2451 --//End Bugfix : 10431933
2452
2453 OPEN batch_status_csr(l_resale_batch_id);
2454 FETCH batch_status_csr INTO l_last_updated_by
2455 , l_batch_status;
2456 CLOSE batch_status_csr;
2457
2458
2459 OPEN emp_infor_csr(OZF_UTILITY_PVT.get_resource_id(l_last_updated_by));
2460 FETCH emp_infor_csr INTO l_emp_id;
2461 CLOSE emp_infor_csr;
2462
2463 --//Bugfix : 10431933
2464 IF l_user_id = l_last_updated_by THEN
2465 l_wf_user_id := l_user_id;
2466 ELSE
2467 l_wf_user_id := l_last_updated_by;
2468 END IF;
2469
2470 IF OZF_DEBUG_LOW_ON THEN
2471 OZF_UTILITY_PVT.debug_message('l_user_id :' || l_user_id);
2472 OZF_UTILITY_PVT.debug_message('l_wf_user_id :' || l_wf_user_id);
2473 OZF_UTILITY_PVT.debug_message('l_resp_id :' || l_resp_id);
2474 END IF;
2475
2476 WF_DIRECTORY.GetRoleName(
2477 p_orig_system => 'PER',
2478 p_orig_system_id => l_emp_id ,
2479 p_name => l_user_name,
2480 p_display_name => l_display_name
2481 );
2482
2483 WF_ENGINE.SetItemAttrText(
2484 itemtype => itemtype,
2485 itemkey => itemkey ,
2486 aname => G_WF_ATTR_WF_ADMINISTRATOR,
2487 avalue => l_user_name
2488 );
2489
2490 -- set workflow process owner
2491 WF_ENGINE.SetItemOwner(
2492 itemtype => itemtype,
2493 itemkey => itemkey,
2494 owner => l_user_name
2495 );
2496
2497 --//Bugfix : 10431933
2498 WF_ENGINE.setitemattrnumber(
2499 itemtype => itemtype
2500 ,itemkey => itemkey
2501 ,aname => G_WF_ATTR_USER_ID
2502 ,avalue => l_wf_user_id
2503 );
2504 WF_ENGINE.setitemattrnumber(
2505 itemtype => itemtype
2506 ,itemkey => itemkey
2507 ,aname => G_WF_ATTR_RESP_ID
2508 ,avalue => l_resp_id
2509 );
2510
2511 WF_ENGINE.setitemattrnumber(
2512 itemtype => itemtype
2513 ,itemkey => itemkey
2514 ,aname => G_WF_ATTR_APPL_ID
2515 ,avalue => 682
2516 );
2517 --
2518 IF l_batch_status is null THEN
2519 OZF_UTILITY_PVT.error_message('OZF_RESALE_BATCH_STATUS_NULL');
2520 RAISE FND_API.G_EXC_ERROR;
2521 END IF;
2522
2523
2524 IF l_batch_status in (OZF_RESALE_COMMON_PVT.G_BATCH_PROCESSING,
2525 OZF_RESALE_COMMON_PVT.G_BATCH_PENDING_PAYMENT) THEN
2526 l_batch_next_status := l_batch_status;
2527 ELSE
2528 IF l_batch_status IN (OZF_RESALE_COMMON_PVT.G_BATCH_OPEN,
2529 OZF_RESALE_COMMON_PVT.G_BATCH_DISPUTED) THEN
2530 l_batch_next_status := OZF_RESALE_COMMON_PVT.G_BATCH_PROCESSING;
2531
2532 UPDATE ozf_resale_batches_all
2533 SET status_code = l_batch_next_status
2534 WHERE resale_batch_id = l_resale_batch_id;
2535
2536 ELSE
2537 OZF_UTILITY_PVT.error_message('OZF_RESALE_BATCH_STATUS_ERR');
2538 RAISE FND_API.G_EXC_ERROR;
2539 END IF;
2540 END IF;
2541
2542
2543 l_resultout := 'COMPLETE:' || l_batch_next_status;
2544 --
2545 END IF;
2546
2547 -- CANCEL mode - Normal Process Execution
2548 IF (funcmode = 'CANCEL') THEN
2549 l_resultout := 'COMPLETE:';
2550 END IF;
2551
2552 -- TIMEOUT mode - Normal Process Execution
2553 IF (funcmode = 'TIMEOUT') THEN
2554 l_resultout := 'COMPLETE:';
2555 END IF;
2556
2557 resultout := l_resultout;
2558 RETURN;
2559 --
2560 EXCEPTION
2561 WHEN FND_API.G_EXC_ERROR THEN
2562 FND_MSG_PUB.Count_And_Get (
2563 p_encoded => FND_API.G_FALSE,
2564 p_count => l_msg_count,
2565 p_data => l_msg_data
2566 );
2567 Handle_Error(
2568 p_itemtype => itemtype
2569 ,p_itemkey => itemkey
2570 ,p_msg_count => l_msg_count
2571 ,p_msg_data => l_msg_data
2572 ,p_process_name => l_api_name
2573 ,x_error_msg => l_error_msg
2574 );
2575 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
2576 RAISE;
2577 WHEN OTHERS THEN
2578 IF OZF_UNEXP_ERROR THEN
2579 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2580 END IF;
2581 FND_MSG_PUB.Count_And_Get (
2582 p_encoded => FND_API.G_FALSE,
2583 p_count => l_msg_count,
2584 p_data => l_msg_data
2585 );
2586 Handle_Error(
2587 p_itemtype => itemtype
2588 ,p_itemkey => itemkey
2589 ,p_msg_count => l_msg_count
2590 ,p_msg_data => l_msg_data
2591 ,p_process_name => l_api_name
2592 ,x_error_msg => l_error_msg
2593 );
2594 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
2595 RAISE;
2596 END Set_Batch_Status;
2597
2598 ---------------------------------------------------------------------
2599 -- PROCEDURE
2600 -- Set_Payment_Pending
2601 --
2602 -- PURPOSE
2603 -- This procedure set the batch status to Payment_Pending
2604 --
2605 -- PARAMETERS
2606 --
2607 --
2608 -- NOTES
2609 ---------------------------------------------------------------------
2610 PROCEDURE Set_Payment_Pending(
2611 itemtype in varchar2,
2612 itemkey in varchar2,
2613 actid in number,
2614 funcmode in varchar2,
2615 resultout in OUT NOCOPY varchar2 )
2616 IS
2617 l_api_name CONSTANT VARCHAR2(30) := 'Set_Payment_Pending';
2618 l_api_version CONSTANT NUMBER := 1.0;
2619 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME ||'.'|| l_api_name;
2620 --
2621 l_return_status varchar2(30);
2622 l_msg_data varchar2(2000);
2623 l_msg_count number;
2624 --
2625 l_resale_batch_id NUMBER;
2626 l_resultout VARCHAR2(30);
2627 l_error_msg VARCHAR2(4000);
2628
2629 l_batch_org_id NUMBER;
2630 BEGIN
2631 IF OZF_DEBUG_HIGH_ON THEN
2632 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
2633 END IF;
2634
2635 -- R12 MOAC Enhancement (+)
2636 l_batch_org_id := WF_ENGINE.GetItemAttrText(
2637 itemtype => itemtype,
2638 itemkey => itemkey,
2639 aname => 'OZF_BATCH_ORG_ID'
2640 );
2641
2642 -- nepanda : Fix for Bug 13819601
2643 /* IF (funcmode = 'TEST_CTX') THEN
2644 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
2645 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
2646 resultout := 'FALSE';
2647 ELSE
2648 resultout := 'TRUE';
2649 END IF;
2650 RETURN;
2651 END IF;
2652
2653 IF (funcmode = 'SET_CTX') THEN
2654 MO_GLOBAL.set_policy_context(
2655 p_access_mode => 'S',
2656 p_org_id => l_batch_org_id
2657 );
2658 --resultout := 'COMPLETE:';
2659 RETURN;
2660 END IF;*/
2661 -- R12 MOAC Enhancement (-)
2662
2663 IF (funcmode = 'RUN') THEN
2664 --
2665 l_resale_batch_id := WF_ENGINE.GetItemAttrText(
2666 itemtype => itemtype,
2667 itemkey => itemkey,
2668 aname => G_WF_ATTR_BATCH_ID);
2669
2670 UPDATE ozf_resale_batches_all
2671 SET status_code = OZF_RESALE_COMMON_PVT.G_BATCH_PENDING_PAYMENT
2672 WHERE resale_batch_id = l_resale_batch_id;
2673
2674 l_resultout := 'COMPLETE';
2675 --
2676 END IF;
2677
2678 -- CANCEL mode - Normal Process Execution
2679 IF (funcmode = 'CANCEL') THEN
2680 l_resultout := 'COMPLETE:';
2681 END IF;
2682
2683 -- TIMEOUT mode - Normal Process Execution
2684 IF (funcmode = 'TIMEOUT') THEN
2685 l_resultout := 'COMPLETE:';
2686 END IF;
2687
2688 resultout := l_resultout;
2689 RETURN;
2690 --
2691 EXCEPTION
2692 WHEN FND_API.G_EXC_ERROR THEN
2693 FND_MSG_PUB.Count_And_Get (
2694 p_encoded => FND_API.G_FALSE,
2695 p_count => l_msg_count,
2696 p_data => l_msg_data
2697 );
2698 Handle_Error(
2699 p_itemtype => itemtype
2700 ,p_itemkey => itemkey
2701 ,p_msg_count => l_msg_count
2702 ,p_msg_data => l_msg_data
2703 ,p_process_name => l_api_name
2704 ,x_error_msg => l_error_msg
2705 );
2706 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
2707 RAISE;
2708 WHEN OTHERS THEN
2709 IF OZF_UNEXP_ERROR THEN
2710 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2711 END IF;
2712 FND_MSG_PUB.Count_And_Get (
2713 p_encoded => FND_API.G_FALSE,
2714 p_count => l_msg_count,
2715 p_data => l_msg_data
2716 );
2717 Handle_Error(
2718 p_itemtype => itemtype
2719 ,p_itemkey => itemkey
2720 ,p_msg_count => l_msg_count
2721 ,p_msg_data => l_msg_data
2722 ,p_process_name => l_api_name
2723 ,x_error_msg => l_error_msg
2724 );
2725 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
2726 RAISE;
2727 END Set_Payment_Pending;
2728
2729 ---------------------------------------------------------------------
2730 -- PROCEDURE
2731 -- Set_Tolerance_Level
2732 --
2733 -- PURPOSE
2734 -- This procedure set the batch status
2735 --
2736 -- PARAMETERS
2737 --
2738 --
2739 -- NOTES
2740 ---------------------------------------------------------------------
2741 PROCEDURE Set_Tolerance_Level(
2742 itemtype in varchar2,
2743 itemkey in varchar2,
2744 actid in number,
2745 funcmode in varchar2,
2746 resultout in OUT NOCOPY varchar2 )
2747 IS
2748 l_api_name CONSTANT VARCHAR2(30) := 'Set_Tolerance_Level';
2749 l_api_version CONSTANT NUMBER := 1.0;
2750 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME ||'.'|| l_api_name;
2751 --
2752 l_return_status varchar2(30);
2753 l_msg_data varchar2(2000);
2754 l_msg_count number;
2755 --
2756 l_resale_batch_id NUMBER;
2757 l_resultout VARCHAR2(30);
2758 l_error_msg VARCHAR2(4000);
2759 --
2760 l_header_tolerance_operand NUMBER;
2761 l_header_tolerance_calc_code VARCHAR2(30);
2762
2763 l_line_tolerance_operand NUMBER;
2764 l_line_tolerance_calc_code VARCHAR2(30);
2765
2766 l_creation_date DATE;
2767 l_last_update_date DATE;
2768 l_partner_party_id NUMBER;
2769 l_partner_cust_account_id NUMBER;
2770
2771 CURSOR batch_info_csr (p_batch_id NUMBER) IS
2772 SELECT creation_date,
2773 last_update_date,
2774 partner_party_id,
2775 partner_cust_account_id
2776 --FROM ozf_resale_batches
2777 FROM ozf_resale_batches_all
2778 WHERE resale_batch_id = p_batch_id;
2779
2780 CURSOR header_tolerance_sys_csr IS
2781 SELECT header_tolerance_operand,
2782 header_tolerance_calc_code
2783 FROM ozf_sys_parameters;
2784
2785 CURSOR header_tolerance_account_csr (p_cust_account_id NUMBER)IS
2786 SELECT header_tolerance_operand,
2787 header_tolerance_calc_code
2788 FROM ozf_cust_trd_prfls
2789 WHERE cust_account_id = p_cust_account_id;
2790
2791 CURSOR header_tolerance_party_csr (p_party_id NUMBER)IS
2792 SELECT header_tolerance_operand,
2793 header_tolerance_calc_code
2794 FROM ozf_cust_trd_prfls
2795 WHERE party_id = p_party_id
2796 and cust_account_id IS NULL;
2797
2798 CURSOR line_tolerance_sys_csr IS
2799 SELECT line_tolerance_operand,
2800 line_tolerance_calc_code
2801 FROM ozf_sys_parameters;
2802
2803 CURSOR line_tolerance_account_csr (p_cust_account_id NUMBER)IS
2804 SELECT line_tolerance_operand,
2805 line_tolerance_calc_code
2806 FROM ozf_cust_trd_prfls
2807 WHERE cust_account_id = p_cust_account_id;
2808
2809 CURSOR line_tolerance_party_csr (p_party_id NUMBER)IS
2810 SELECT line_tolerance_operand,
2811 line_tolerance_calc_code
2812 FROM ozf_cust_trd_prfls
2813 WHERE party_id = p_party_id
2814 AND cust_account_id IS NULL;
2815
2816 l_batch_org_id NUMBER;
2817
2818 BEGIN
2819 IF OZF_DEBUG_HIGH_ON THEN
2820 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
2821 END IF;
2822
2823 -- R12 MOAC Enhancement (+)
2824 l_batch_org_id := WF_ENGINE.GetItemAttrText(
2825 itemtype => itemtype,
2826 itemkey => itemkey,
2827 aname => 'OZF_BATCH_ORG_ID'
2828 );
2829
2830 -- nepanda : Fix for Bug 13819601
2831 /* IF (funcmode = 'TEST_CTX') THEN
2832 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
2833 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
2834 resultout := 'FALSE';
2835 ELSE
2836 resultout := 'TRUE';
2837 END IF;
2838 RETURN;
2839 END IF;
2840
2841 IF (funcmode = 'SET_CTX') THEN
2842 MO_GLOBAL.set_policy_context(
2843 p_access_mode => 'S',
2844 p_org_id => l_batch_org_id
2845 );
2846 --resultout := 'COMPLETE:';
2847 RETURN;
2848 END IF; */
2849 -- R12 MOAC Enhancement (-)
2850
2851 IF (funcmode = 'RUN') THEN
2852 --
2853 l_resale_batch_id := WF_ENGINE.GetItemAttrText(
2854 itemtype => itemtype,
2855 itemkey => itemkey,
2856 aname => G_WF_ATTR_BATCH_ID);
2857
2858 OPEN batch_info_csr (l_resale_batch_id);
2859 FETCH batch_info_csr INTO l_creation_date,
2860 l_last_update_date,
2861 l_partner_party_id,
2862 l_partner_cust_account_id;
2863 CLOSE batch_info_csr;
2864
2865 IF l_creation_date = l_last_update_date THEN
2866 -- It is the first time this batch is processed. default toleracne
2867
2868 -- Set header tolerance
2869 OPEN header_tolerance_account_csr(l_partner_cust_account_id);
2870 FETCH header_tolerance_account_csr into l_header_tolerance_operand,
2871 l_header_tolerance_calc_code;
2872 CLOSE header_tolerance_account_csr;
2873
2874 IF l_header_tolerance_calc_code is NULL THEN
2875 OPEN header_tolerance_party_csr(l_partner_party_id);
2876 FETCH header_tolerance_party_csr into l_header_tolerance_operand,
2877 l_header_tolerance_calc_code;
2878 CLOSE header_tolerance_party_csr;
2879
2880 IF l_header_tolerance_calc_code is NULL THEN
2881 OPEN header_tolerance_sys_csr;
2882 FETCH header_tolerance_sys_csr into l_header_tolerance_operand,
2883 l_header_tolerance_calc_code;
2884 CLOSE header_tolerance_sys_csr;
2885 END IF;
2886 END IF;
2887
2888 -- Set line tolerance
2889 OPEN line_tolerance_account_csr(l_partner_cust_account_id);
2890 FETCH line_tolerance_account_csr into l_line_tolerance_operand,
2891 l_line_tolerance_calc_code;
2892 CLOSE line_tolerance_account_csr;
2893
2894 IF l_line_tolerance_calc_code is NULL THEN
2895 OPEN line_tolerance_party_csr(l_partner_party_id);
2896 FETCH line_tolerance_party_csr into l_line_tolerance_operand,
2897 l_line_tolerance_calc_code;
2898 CLOSE line_tolerance_party_csr;
2899
2900 IF l_line_tolerance_calc_code is NULL THEN
2901 OPEN line_tolerance_sys_csr;
2902 FETCH line_tolerance_sys_csr into l_line_tolerance_operand,
2903 l_line_tolerance_calc_code;
2904 CLOSE line_tolerance_sys_csr;
2905 END IF;
2906 END IF;
2907
2908 END IF;
2909
2910 UPDATE ozf_resale_batches_all
2911 SET header_tolerance_operand = l_header_tolerance_operand,
2912 header_tolerance_calc_code = l_header_tolerance_calc_code,
2913 line_tolerance_operand = l_line_tolerance_operand,
2914 line_tolerance_calc_code = l_line_tolerance_calc_code
2915 WHERE resale_batch_id = l_resale_batch_id;
2916
2917 l_resultout := 'COMPLETE';
2918 --
2919 END IF;
2920
2921 -- CANCEL mode - Normal Process Execution
2922 IF (funcmode = 'CANCEL') THEN
2923 l_resultout := 'COMPLETE';
2924 END IF;
2925
2926 -- TIMEOUT mode - Normal Process Execution
2927 IF (funcmode = 'TIMEOUT') THEN
2928 l_resultout := 'COMPLETE';
2929 END IF;
2930
2931 resultout := l_resultout;
2932 RETURN;
2933 --
2934 EXCEPTION
2935 WHEN FND_API.G_EXC_ERROR THEN
2936 FND_MSG_PUB.Count_And_Get (
2937 p_encoded => FND_API.G_FALSE,
2938 p_count => l_msg_count,
2939 p_data => l_msg_data
2940 );
2941 Handle_Error(
2942 p_itemtype => itemtype
2943 ,p_itemkey => itemkey
2944 ,p_msg_count => l_msg_count
2945 ,p_msg_data => l_msg_data
2946 ,p_process_name => l_api_name
2947 ,x_error_msg => l_error_msg
2948 );
2949 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
2950 RAISE;
2951 WHEN OTHERS THEN
2952 IF OZF_UNEXP_ERROR THEN
2953 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2954 END IF;
2955 FND_MSG_PUB.Count_And_Get (
2956 p_encoded => FND_API.G_FALSE,
2957 p_count => l_msg_count,
2958 p_data => l_msg_data
2959 );
2960 Handle_Error(
2961 p_itemtype => itemtype
2962 ,p_itemkey => itemkey
2963 ,p_msg_count => l_msg_count
2964 ,p_msg_data => l_msg_data
2965 ,p_process_name => l_api_name
2966 ,x_error_msg => l_error_msg
2967 );
2968 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
2969 RAISE;
2970 END Set_Tolerance_Level;
2971
2972
2973 ---------------------------------------------------------------------
2974 -- PROCEDURE
2975 -- Validate_Batch
2976 --
2977 -- PURPOSE
2978 -- This procedure validates the batch details
2979 --
2980 -- PARAMETERS
2981 --
2982 --
2983 -- NOTES
2984 ---------------------------------------------------------------------
2985 PROCEDURE Validate_Batch (
2986 itemtype IN varchar2,
2987 itemkey IN varchar2,
2988 actid IN number,
2989 funcmode IN varchar2,
2990 resultout IN OUT NOCOPY varchar2
2991 )
2992 IS
2993 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Batch';
2994 l_api_version_number CONSTANT NUMBER := 1.0;
2995
2996 l_resultout VARCHAR2(30);
2997 l_batch_status VARCHAR2(30);
2998 l_batch_id NUMBER;
2999 l_return_status VARCHAR2(1);
3000 l_msg_count NUMBER;
3001 l_msg_data VARCHAR2(2000);
3002 l_error_msg VARCHAR2(4000);
3003
3004 l_batch_org_id NUMBER;
3005
3006 BEGIN
3007 IF OZF_DEBUG_HIGH_ON THEN
3008 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
3009 END IF;
3010
3011 -- R12 MOAC Enhancement (+)
3012 l_batch_org_id := WF_ENGINE.GetItemAttrText(
3013 itemtype => itemtype,
3014 itemkey => itemkey,
3015 aname => 'OZF_BATCH_ORG_ID'
3016 );
3017
3018 -- nepanda : Fix for Bug 13819601
3019 /* IF (funcmode = 'TEST_CTX') THEN
3020 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
3021 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
3022 resultout := 'FALSE';
3023 ELSE
3024 resultout := 'TRUE';
3025 END IF;
3026 RETURN;
3027 END IF;
3028
3029 IF (funcmode = 'SET_CTX') THEN
3030 MO_GLOBAL.set_policy_context(
3031 p_access_mode => 'S',
3032 p_org_id => l_batch_org_id
3033 );
3034 --resultout := 'COMPLETE:';
3035 RETURN;
3036 END IF;*/
3037 -- R12 MOAC Enhancement (-)
3038
3039 IF (funcmode = 'RUN') THEN
3040 --
3041 l_batch_id := WF_ENGINE.GetItemAttrText(itemtype => itemtype,
3042 itemkey => itemkey,
3043 aname => G_WF_ATTR_BATCH_ID);
3044
3045 IF OZF_DEBUG_LOW_ON THEN
3046 OZF_UTILITY_PVT.debug_message('Batch ID '|| l_batch_id);
3047 END IF;
3048 IF l_batch_id IS NOT NULL THEN
3049 OZF_RESALE_COMMON_PVT.Validate_Batch (
3050 p_api_version => 1.0,
3051 p_init_msg_list => FND_API.G_FALSE,
3052 p_commit => FND_API.G_FALSE,
3053 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
3054 p_resale_batch_id => l_batch_id,
3055 x_batch_status => l_batch_status,
3056 x_return_status => l_return_status,
3057 x_msg_count => l_msg_count,
3058 x_msg_data => l_msg_data );
3059
3060 IF OZF_DEBUG_LOW_ON THEN
3061 OZF_UTILITY_PVT.debug_message('Validate Batch is complete '||l_return_status);
3062 END IF;
3063 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3064 RAISE FND_API.G_EXC_ERROR;
3065 END IF;
3066 l_resultout := 'COMPLETE:SUCCESS';
3067 ELSE
3068 OZF_UTILITY_PVT.error_message('OZF_RESALE_BATCH_ID_NULL');
3069 RAISE FND_API.G_EXC_ERROR;
3070 END IF;
3071 l_resultout := 'COMPLETE:SUCCESS';
3072 --
3073 ELSIF (funcmode = 'CANCEL') THEN
3074 l_resultout := 'COMPLETE:SUCCESS';
3075 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
3076 l_resultout := 'COMPLETE:SUCCESS';
3077 ELSIF (funcmode = 'TIMEOUT') THEN
3078 l_resultout := 'COMPLETE:SUCCESS';
3079 END IF;
3080
3081 resultout := l_resultout;
3082
3083 EXCEPTION
3084 WHEN FND_API.G_EXC_ERROR THEN
3085 FND_MSG_PUB.Count_And_Get (
3086 p_encoded => FND_API.G_FALSE,
3087 p_count => l_msg_count,
3088 p_data => l_msg_data
3089 );
3090 Handle_Error(
3091 p_itemtype => itemtype
3092 ,p_itemkey => itemkey
3093 ,p_msg_count => l_msg_count
3094 ,p_msg_data => l_msg_data
3095 ,p_process_name => l_api_name
3096 ,x_error_msg => l_error_msg
3097 );
3098 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
3099 resultout := 'COMPLETE:ERROR';
3100 RETURN;
3101 WHEN OTHERS THEN
3102 IF OZF_UNEXP_ERROR THEN
3103 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
3104 END IF;
3105 FND_MSG_PUB.Count_And_Get (
3106 p_encoded => FND_API.G_FALSE,
3107 p_count => l_msg_count,
3108 p_data => l_msg_data
3109 );
3110 Handle_Error(
3111 p_itemtype => itemtype
3112 ,p_itemkey => itemkey
3113 ,p_msg_count => l_msg_count
3114 ,p_msg_data => l_msg_data
3115 ,p_process_name => l_api_name
3116 ,x_error_msg => l_error_msg
3117 );
3118 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
3119 RAISE;
3120 END Validate_Batch;
3121
3122 ---------------------------------------------------------------------
3123 -- PROCEDURE
3124 -- Validate_Order
3125 --
3126 -- PURPOSE
3127 -- This procedure contains order level validations
3128 --
3129 -- PARAMETERS
3130 --
3131 --
3132 -- NOTES
3133 ---------------------------------------------------------------------
3134 PROCEDURE Validate_Order (
3135 itemtype IN varchar2,
3136 itemkey IN varchar2,
3137 actid IN number,
3138 funcmode IN varchar2,
3139 resultout IN OUT NOCOPY varchar2
3140 )
3141 IS
3142 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Order';
3143 l_api_version_number CONSTANT NUMBER := 1.0;
3144
3145 l_resultout VARCHAR2(30);
3146 l_batch_id NUMBER;
3147 l_return_status VARCHAR2(1);
3148 l_msg_count NUMBER;
3149 l_msg_data VARCHAR2(2000);
3150 l_error_msg VARCHAR2(4000);
3151
3152 l_batch_org_id NUMBER;
3153 BEGIN
3154 IF OZF_DEBUG_HIGH_ON THEN
3155 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
3156 END IF;
3157
3158 -- R12 MOAC Enhancement (+)
3159 l_batch_org_id := WF_ENGINE.GetItemAttrText(
3160 itemtype => itemtype,
3161 itemkey => itemkey,
3162 aname => 'OZF_BATCH_ORG_ID'
3163 );
3164 -- nepanda : Fix for Bug 13819601
3165 /* IF (funcmode = 'TEST_CTX') THEN
3166 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
3167 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
3168 resultout := 'FALSE';
3169 ELSE
3170 resultout := 'TRUE';
3171 END IF;
3172 RETURN;
3173 END IF;
3174
3175 IF (funcmode = 'SET_CTX') THEN
3176 MO_GLOBAL.set_policy_context(
3177 p_access_mode => 'S',
3178 p_org_id => l_batch_org_id
3179 );
3180 --resultout := 'COMPLETE:';
3181 RETURN;
3182 END IF;*/
3183 -- R12 MOAC Enhancement (-)
3184
3185 IF (funcmode = 'RUN') THEN
3186 --
3187 l_batch_id := WF_ENGINE.GetItemAttrText(itemtype => itemtype,
3188 itemkey => itemkey,
3189 aname => G_WF_ATTR_BATCH_ID);
3190
3191 IF OZF_DEBUG_LOW_ON THEN
3192 OZF_UTILITY_PVT.debug_message('Batch ID '|| l_batch_id);
3193 END IF;
3194 IF l_batch_id IS NOT NULL THEN
3195 -- Verify the line information for this batch
3196 OZF_RESALE_COMMON_PVT.Validate_Order_Record (
3197 p_api_version => 1.0
3198 ,p_init_msg_list => FND_API.G_FALSE
3199 ,p_commit => FND_API.G_FALSE
3200 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
3201 ,p_resale_batch_id => l_batch_id
3202 ,x_return_status => l_return_status
3203 ,x_msg_data => l_msg_data
3204 ,x_msg_count => l_msg_count
3205 );
3206 IF l_return_status<> FND_API.G_RET_STS_SUCCESS THEN
3207 OZF_UTILITY_PVT.error_message('OZF_RESALE_VALIDATE_ERR');
3208 RAISE FND_API.G_EXC_ERROR;
3209 END IF;
3210 ELSE
3211 OZF_UTILITY_PVT.error_message('OZF_RESALE_BATCH_ID_NULL');
3212 RAISE FND_API.G_EXC_ERROR;
3213 END IF;
3214
3215 l_resultout := 'COMPLETE:SUCCESS';
3216 --
3217 ELSIF (funcmode = 'CANCEL') THEN
3218 l_resultout := 'COMPLETE:SUCCESS';
3219 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
3220 l_resultout := 'COMPLETE:SUCCESS';
3221 ELSIF (funcmode = 'TIMEOUT') THEN
3222 l_resultout := 'COMPLETE:SUCCESS';
3223 END IF;
3224
3225 resultout := l_resultout;
3226
3227 EXCEPTION
3228 WHEN FND_API.G_EXC_ERROR THEN
3229 FND_MSG_PUB.Count_And_Get (
3230 p_encoded => FND_API.G_FALSE,
3231 p_count => l_msg_count,
3232 p_data => l_msg_data
3233 );
3234 Handle_Error(
3235 p_itemtype => itemtype
3236 ,p_itemkey => itemkey
3237 ,p_msg_count => l_msg_count
3238 ,p_msg_data => l_msg_data
3239 ,p_process_name => l_api_name
3240 ,x_error_msg => l_error_msg
3241 );
3242 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
3243 resultout := 'COMPLETE:ERROR';
3244 RETURN;
3245 WHEN OTHERS THEN
3246 IF OZF_UNEXP_ERROR THEN
3247 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
3248 END IF;
3249 FND_MSG_PUB.Count_And_Get (
3250 p_encoded => FND_API.G_FALSE,
3251 p_count => l_msg_count,
3252 p_data => l_msg_data
3253 );
3254 Handle_Error(
3255 p_itemtype => itemtype
3256 ,p_itemkey => itemkey
3257 ,p_msg_count => l_msg_count
3258 ,p_msg_data => l_msg_data
3259 ,p_process_name => l_api_name
3260 ,x_error_msg => l_error_msg
3261 );
3262 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
3263 RAISE;
3264 END Validate_Order;
3265
3266 ---------------------------------------------------------------------
3267 -- PROCEDURE
3268 -- Validate_Chargeback
3269 --
3270 -- PURPOSE
3271 -- This procedure contains chargeback validations
3272 --
3273 -- PARAMETERS
3274 --
3275 --
3276 -- NOTES
3277 ---------------------------------------------------------------------
3278 PROCEDURE Validate_Chargeback
3279 (
3280 itemtype IN varchar2,
3281 itemkey IN varchar2,
3282 actid IN number,
3283 funcmode IN varchar2,
3284 resultout IN OUT NOCOPY varchar2
3285 )
3286 IS
3287 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Chargeback';
3288 l_api_version_number CONSTANT NUMBER := 1.0;
3289
3290 l_resultout VARCHAR2(30);
3291 l_batch_id NUMBER;
3292 l_return_status VARCHAR2(1);
3293 l_msg_count NUMBER;
3294 l_msg_data VARCHAR2(2000);
3295 l_error_msg VARCHAR2(4000);
3296
3297 l_batch_org_id NUMBER;
3298
3299 BEGIN
3300 IF OZF_DEBUG_HIGH_ON THEN
3301 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
3302 END IF;
3303
3304 -- R12 MOAC Enhancement (+)
3305 l_batch_org_id := WF_ENGINE.GetItemAttrText(
3306 itemtype => itemtype,
3307 itemkey => itemkey,
3308 aname => 'OZF_BATCH_ORG_ID'
3309 );
3310
3311 -- nepanda : Fix for Bug 13819601
3312 /* IF (funcmode = 'TEST_CTX') THEN
3313 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
3314 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
3315 resultout := 'FALSE';
3316 ELSE
3317 resultout := 'TRUE';
3318 END IF;
3319 RETURN;
3320 END IF;
3321
3322 IF (funcmode = 'SET_CTX') THEN
3323 MO_GLOBAL.set_policy_context(
3324 p_access_mode => 'S',
3325 p_org_id => l_batch_org_id
3326 );
3327 --resultout := 'COMPLETE:';
3328 RETURN;
3329 END IF;*/
3330 -- R12 MOAC Enhancement (-)
3331
3332 IF (funcmode = 'RUN') THEN
3333 --
3334 l_batch_id := WF_ENGINE.GetItemAttrText(itemtype => itemtype,
3335 itemkey => itemkey,
3336 aname => G_WF_ATTR_BATCH_ID);
3337 IF OZF_DEBUG_LOW_ON THEN
3338 OZF_UTILITY_PVT.debug_message('Batch ID '|| l_batch_id);
3339 END IF;
3340
3341 IF l_batch_id IS NOT NULL THEN
3342 -- Verify the line information for this batch
3343 OZF_CHARGEBACK_PVT.Validate_Order_Record (
3344 p_api_version => 1
3345 ,p_init_msg_list => FND_API.G_FALSE
3346 ,p_commit => FND_API.G_FALSE
3347 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
3348 ,p_resale_batch_id => l_batch_id
3349 ,x_return_status => l_return_status
3350 ,x_msg_data => l_msg_data
3351 ,x_msg_count => l_msg_count
3352 );
3353 IF l_return_status<> FND_API.G_RET_STS_SUCCESS THEN
3354 OZF_UTILITY_PVT.error_message('OZF_RESALE_CHBK_VALIDATE_ERR');
3355 RAISE FND_API.G_EXC_ERROR;
3356 END IF;
3357 ELSE
3358 OZF_UTILITY_PVT.error_message('OZF_RESALE_BATCH_ID_NULL');
3359 RAISE FND_API.G_EXC_ERROR;
3360 END IF;
3361 l_resultout := 'COMPLETE:SUCCESS';
3362 --
3363 ELSIF (funcmode = 'CANCEL') THEN
3364 l_resultout := 'COMPLETE:SUCCESS';
3365 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
3366 l_resultout := 'COMPLETE:SUCCESS';
3367 ELSIF (funcmode = 'TIMEOUT') THEN
3368 l_resultout := 'COMPLETE:SUCCESS';
3369 END IF;
3370
3371 resultout := l_resultout;
3372
3373 EXCEPTION
3374 WHEN FND_API.G_EXC_ERROR THEN
3375 FND_MSG_PUB.Count_And_Get (
3376 p_encoded => FND_API.G_FALSE,
3377 p_count => l_msg_count,
3378 p_data => l_msg_data
3379 );
3380 Handle_Error(
3381 p_itemtype => itemtype
3382 ,p_itemkey => itemkey
3383 ,p_msg_count => l_msg_count
3384 ,p_msg_data => l_msg_data
3385 ,p_process_name => l_api_name
3386 ,x_error_msg => l_error_msg
3387 );
3388 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
3389 l_resultout := 'COMPLETE:ERROR';
3390 RETURN;
3391 WHEN OTHERS THEN
3392 IF OZF_UNEXP_ERROR THEN
3393 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
3394 END IF;
3395 FND_MSG_PUB.Count_And_Get (
3396 p_encoded => FND_API.G_FALSE,
3397 p_count => l_msg_count,
3398 p_data => l_msg_data
3399 );
3400 Handle_Error(
3401 p_itemtype => itemtype
3402 ,p_itemkey => itemkey
3403 ,p_msg_count => l_msg_count
3404 ,p_msg_data => l_msg_data
3405 ,p_process_name => l_api_name
3406 ,x_error_msg => l_error_msg
3407 );
3408 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
3409 RAISE;
3410 END Validate_Chargeback;
3411
3412 ---------------------------------------------------------------------
3413 -- PROCEDURE
3414 -- Validate_Special_Pricing
3415 --
3416 -- PURPOSE
3417 -- This procedure contains special pricing validations
3418 --
3419 -- PARAMETERS
3420 --
3421 --
3422 -- NOTES
3423 ---------------------------------------------------------------------
3424 PROCEDURE Validate_Special_Pricing
3425 (
3426 itemtype IN varchar2,
3427 itemkey IN varchar2,
3428 actid IN number,
3429 funcmode IN varchar2,
3430 resultout IN OUT NOCOPY varchar2
3431 )
3432 IS
3433 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Special_Pricing';
3434 l_api_version_number CONSTANT NUMBER := 1.0;
3435
3436 l_resultout VARCHAR2(30);
3437 l_batch_id NUMBER;
3438 l_return_status VARCHAR2(1);
3439 l_msg_count NUMBER;
3440 l_msg_data VARCHAR2(2000);
3441 l_error_msg VARCHAR2(4000);
3442
3443 l_batch_org_id NUMBER;
3444 BEGIN
3445 IF OZF_DEBUG_HIGH_ON THEN
3446 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
3447 END IF;
3448
3449 -- R12 MOAC Enhancement (+)
3450 l_batch_org_id := WF_ENGINE.GetItemAttrText(
3451 itemtype => itemtype,
3452 itemkey => itemkey,
3453 aname => 'OZF_BATCH_ORG_ID'
3454 );
3455
3456 -- nepanda : Fix for Bug 13819601
3457 /* IF (funcmode = 'TEST_CTX') THEN
3458 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
3459 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
3460 resultout := 'FALSE';
3461 ELSE
3462 resultout := 'TRUE';
3463 END IF;
3464 RETURN;
3465 END IF;
3466
3467 IF (funcmode = 'SET_CTX') THEN
3468 MO_GLOBAL.set_policy_context(
3469 p_access_mode => 'S',
3470 p_org_id => l_batch_org_id
3471 );
3472 --resultout := 'COMPLETE:';
3473 RETURN;
3474 END IF;*/
3475 -- R12 MOAC Enhancement (-)
3476
3477 IF (funcmode = 'RUN') THEN
3478 --
3479 l_batch_id := WF_ENGINE.GetItemAttrText(itemtype => itemtype,
3480 itemkey => itemkey,
3481 aname => G_WF_ATTR_BATCH_ID);
3482 IF OZF_DEBUG_LOW_ON THEN
3483 OZF_UTILITY_PVT.debug_message('Batch ID '|| l_batch_id);
3484 END IF;
3485
3486 IF l_batch_id IS NOT NULL THEN
3487 -- Verify the line information for this batch
3488 OZF_SPECIAL_PRICING_PVT.Validate_Order_Record (
3489 p_api_version => 1
3490 ,p_init_msg_list => FND_API.G_FALSE
3491 ,p_commit => FND_API.G_FALSE
3492 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
3493 ,p_resale_batch_id => l_batch_id
3494 ,x_return_status => l_return_status
3495 ,x_msg_data => l_msg_data
3496 ,x_msg_count => l_msg_count
3497 );
3498 IF l_return_status<> FND_API.G_RET_STS_SUCCESS THEN
3499 OZF_UTILITY_PVT.error_message('OZF_RESALE_CHBK_VALIDATE_ERR');
3500 RAISE FND_API.G_EXC_ERROR;
3501 END IF;
3502 ELSE
3503 OZF_UTILITY_PVT.error_message('OZF_RESALE_BATCH_ID_NULL');
3504 RAISE FND_API.G_EXC_ERROR;
3505 END IF;
3506 l_resultout := 'COMPLETE:SUCCESS';
3507 --
3508 ELSIF (funcmode = 'CANCEL') THEN
3509 l_resultout := 'COMPLETE:SUCCESS';
3510 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
3511 l_resultout := 'COMPLETE:SUCCESS';
3512 ELSIF (funcmode = 'TIMEOUT') THEN
3513 l_resultout := 'COMPLETE:SUCCESS';
3514 END IF;
3515
3516 resultout := l_resultout;
3517
3518 EXCEPTION
3519 WHEN FND_API.G_EXC_ERROR THEN
3520 FND_MSG_PUB.Count_And_Get (
3521 p_encoded => FND_API.G_FALSE,
3522 p_count => l_msg_count,
3523 p_data => l_msg_data
3524 );
3525 Handle_Error(
3526 p_itemtype => itemtype
3527 ,p_itemkey => itemkey
3528 ,p_msg_count => l_msg_count
3529 ,p_msg_data => l_msg_data
3530 ,p_process_name => l_api_name
3531 ,x_error_msg => l_error_msg
3532 );
3533 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
3534 l_resultout := 'COMPLETE:ERROR';
3535 RETURN;
3536 WHEN OTHERS THEN
3537 IF OZF_UNEXP_ERROR THEN
3538 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
3539 END IF;
3540 FND_MSG_PUB.Count_And_Get (
3541 p_encoded => FND_API.G_FALSE,
3542 p_count => l_msg_count,
3543 p_data => l_msg_data
3544 );
3545 Handle_Error(
3546 p_itemtype => itemtype
3547 ,p_itemkey => itemkey
3548 ,p_msg_count => l_msg_count
3549 ,p_msg_data => l_msg_data
3550 ,p_process_name => l_api_name
3551 ,x_error_msg => l_error_msg
3552 );
3553 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
3554 RAISE;
3555 END Validate_Special_Pricing;
3556
3557 ---------------------------------------------------------------------
3558 -- PROCEDURE
3559 -- Validate_Tracing
3560 --
3561 -- PURPOSE
3562 -- This procedure contains tracing data validations
3563 --
3564 -- PARAMETERS
3565 --
3566 --
3567 -- NOTES
3568 ---------------------------------------------------------------------
3569 PROCEDURE Validate_Tracing
3570 (
3571 itemtype IN varchar2,
3572 itemkey IN varchar2,
3573 actid IN number,
3574 funcmode IN varchar2,
3575 resultout IN OUT NOCOPY varchar2
3576 )
3577 IS
3578 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Tracing';
3579 l_api_version_number CONSTANT NUMBER := 1.0;
3580
3581 l_resultout VARCHAR2(30);
3582 l_batch_id NUMBER;
3583 l_return_status VARCHAR2(1);
3584 l_msg_count NUMBER;
3585 l_msg_data VARCHAR2(2000);
3586 l_error_msg VARCHAR2(4000);
3587
3588 l_batch_org_id NUMBER;
3589
3590 BEGIN
3591 IF OZF_DEBUG_HIGH_ON THEN
3592 OZF_UTILITY_PVT.debug_message('IN: ' || l_api_name || ' Funcmode: ' || funcmode);
3593 END IF;
3594
3595 -- R12 MOAC Enhancement (+)
3596 l_batch_org_id := WF_ENGINE.GetItemAttrText(
3597 itemtype => itemtype,
3598 itemkey => itemkey,
3599 aname => 'OZF_BATCH_ORG_ID'
3600 );
3601
3602 -- nepanda : Fix for Bug 13819601
3603 /* IF (funcmode = 'TEST_CTX') THEN
3604 IF (NVL(MO_GLOBAL.get_access_mode, 'NULL') <> 'S') OR
3605 (NVL(MO_GLOBAL.get_current_org_id, -99) <> l_batch_org_id) THEN
3606 resultout := 'FALSE';
3607 ELSE
3608 resultout := 'TRUE';
3609 END IF;
3610 RETURN;
3611 END IF;
3612
3613 IF (funcmode = 'SET_CTX') THEN
3614 MO_GLOBAL.set_policy_context(
3615 p_access_mode => 'S',
3616 p_org_id => l_batch_org_id
3617 );
3618 --resultout := 'COMPLETE:';
3619 RETURN;
3620 END IF;*/
3621 -- R12 MOAC Enhancement (-)
3622
3623 IF (funcmode = 'RUN') THEN
3624 --
3625 l_batch_id := WF_ENGINE.GetItemAttrText(itemtype => itemtype,
3626 itemkey => itemkey,
3627 aname => G_WF_ATTR_BATCH_ID);
3628 IF OZF_DEBUG_LOW_ON THEN
3629 OZF_UTILITY_PVT.debug_message('Batch ID '|| l_batch_id);
3630 END IF;
3631
3632 IF l_batch_id IS NOT NULL THEN
3633 -- Verify the line information for this batch
3634 OZF_TRACING_ORDER_PVT.Validate_Order_Record (
3635 p_api_version => 1
3636 ,p_init_msg_list => FND_API.G_FALSE
3637 ,p_commit => FND_API.G_FALSE
3638 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
3639 ,p_resale_batch_id => l_batch_id
3640 ,x_return_status => l_return_status
3641 ,x_msg_data => l_msg_data
3642 ,x_msg_count => l_msg_count
3643 );
3644 IF l_return_status<> FND_API.G_RET_STS_SUCCESS THEN
3645 OZF_UTILITY_PVT.error_message('OZF_RESALE_TRAC_VALIDATE_ERR');
3646 RAISE FND_API.G_EXC_ERROR;
3647 END IF;
3648 ELSE
3649 OZF_UTILITY_PVT.error_message('OZF_RESALE_BATCH_ID_NULL');
3650 RAISE FND_API.G_EXC_ERROR;
3651 END IF;
3652 l_resultout := 'COMPLETE:SUCCESS';
3653 --
3654 ELSIF (funcmode = 'CANCEL') THEN
3655 l_resultout := 'COMPLETE:SUCCESS';
3656 ELSIF (funcmode IN ('RESPOND', 'FORWARD', 'TRANSFER')) THEN
3657 l_resultout := 'COMPLETE:SUCCESS';
3658 ELSIF (funcmode = 'TIMEOUT') THEN
3659 l_resultout := 'COMPLETE:SUCCESS';
3660 END IF;
3661
3662 resultout := l_resultout;
3663
3664 EXCEPTION
3665 WHEN FND_API.G_EXC_ERROR THEN
3666 FND_MSG_PUB.Count_And_Get (
3667 p_encoded => FND_API.G_FALSE,
3668 p_count => l_msg_count,
3669 p_data => l_msg_data
3670 );
3671 Handle_Error(
3672 p_itemtype => itemtype
3673 ,p_itemkey => itemkey
3674 ,p_msg_count => l_msg_count
3675 ,p_msg_data => l_msg_data
3676 ,p_process_name => l_api_name
3677 ,x_error_msg => l_error_msg
3678 );
3679 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
3680 l_resultout := 'COMPLETE:ERROR';
3681 RETURN;
3682 WHEN OTHERS THEN
3683 IF OZF_UNEXP_ERROR THEN
3684 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
3685 END IF;
3686 FND_MSG_PUB.Count_And_Get (
3687 p_encoded => FND_API.G_FALSE,
3688 p_count => l_msg_count,
3689 p_data => l_msg_data
3690 );
3691 Handle_Error(
3692 p_itemtype => itemtype
3693 ,p_itemkey => itemkey
3694 ,p_msg_count => l_msg_count
3695 ,p_msg_data => l_msg_data
3696 ,p_process_name => l_api_name
3697 ,x_error_msg => l_error_msg
3698 );
3699 WF_CORE.context( G_PKG_NAME,l_api_name,itemtype,itemkey,actid,l_error_msg);
3700 RAISE;
3701 END Validate_Tracing;
3702
3703
3704 PROCEDURE Start_Data_Process(
3705 p_resale_batch_id IN NUMBER
3706 ,p_caller_type IN VARCHAR2
3707 )
3708 IS
3709 l_api_name CONSTANT VARCHAR2(30) := 'Start_Data_Process';
3710
3711 l_itemtype VARCHAR2(8) := 'OZFRSIFD';
3712 l_process VARCHAR2(30) := 'IFACE_DATA_PROCESS';
3713 l_itemkey VARCHAR2(240);
3714 l_itemuserkey VARCHAR2(240);
3715
3716 CURSOR get_batch_info(p_resale_batch_id IN NUMBER) IS
3717 SELECT status_code
3718 , last_updated_by
3719 , batch_type
3720 , batch_number
3721 , org_id -- nepanda : Fix for Bug 13819601
3722 FROM ozf_resale_batches_all
3723 WHERE resale_batch_id = p_resale_batch_id;
3724
3725 CURSOR emp_infor_csr(p_res_id NUMBER) IS
3726 -- BUBG 4953233 (+)
3727 SELECT ppl.person_id
3728 FROM jtf_rs_resource_extns rsc
3729 , per_people_f ppl
3730 WHERE rsc.category = 'EMPLOYEE'
3731 AND ppl.person_id = rsc.source_id
3732 AND rsc.resource_id=p_res_id;
3733 -- SELECT employee_id
3734 -- FROM jtf_rs_res_emp_vl
3735 -- WHERE resource_id = p_res_id ;
3736 -- BUBG 4953233 (-)
3737
3738
3739
3740 l_batch_info get_batch_info%ROWTYPE;
3741 l_emp_id NUMBER;
3742 l_user_name VARCHAR2(100);
3743 l_display_name VARCHAR2(100);
3744
3745 -- nepanda : Fix for bug # 12716192
3746 l_parameter_list WF_PARAMETER_LIST_T;
3747 p_event VARCHAR2(100) := 'oracle.apps.ozf.idsm.WEBADIProcess';
3748 l_user_id_fnd Number ;
3749 l_resp_id_fnd Number ;
3750 l_batch_process_mode VARCHAR2 (6) := 'SYNC' ;
3751
3752 --//Bugfix : 10431933
3753 l_user_id NUMBER;
3754 l_wf_user_id NUMBER;
3755 l_resp_id NUMBER;
3756 l_appl_id NUMBER := 682;
3757
3758
3759 CURSOR wf_values_csr(p_item_type VARCHAR2,
3760 p_item_key VARCHAR2,
3761 p_name VARCHAR2) IS
3762 SELECT number_value
3763 FROM wf_item_attribute_values wiav
3764 WHERE wiav.item_type = p_item_type
3765 AND wiav.item_key like p_item_key||'%'
3766 AND wiav.name = p_name;
3767
3768 BEGIN
3769 -- nepanda : Fix for bug # 12716192
3770 l_user_id_fnd := FND_GLOBAL.user_id;
3771 l_resp_id_fnd := FND_GLOBAL.resp_id;
3772 l_batch_process_mode := NVL(fnd_profile.VALUE ('IDSM_BATCH_PROCESS_MODE'),'SYNC');
3773
3774 OPEN get_batch_info(p_resale_batch_id);
3775 FETCH get_batch_info INTO l_batch_info;
3776 CLOSE get_batch_info;
3777
3778 IF l_batch_info.status_code IN ('OPEN', 'DISPUTED') THEN
3779 UPDATE ozf_resale_batches_all
3780 SET status_code = 'PROCESSING'
3781 WHERE resale_batch_id = p_resale_batch_id;
3782 END IF;
3783 --Bugfix: 6510872
3784 --l_itemkey := p_resale_batch_id||'-'||TO_CHAR(sysdate, 'YYYY-MMDD-HH24MISS');
3785 l_itemkey :='IDP-'|| p_resale_batch_id||'-'||TO_CHAR(sysdate, 'YYYY-MMDD-HH24MISS');
3786 l_itemuserkey := l_batch_info.batch_type||'-'||
3787 l_batch_info.batch_number||'-'||
3788 TO_CHAR(sysdate, 'YYYY-MMDD-HH24MISS');
3789
3790 l_user_id := l_user_id_fnd ;
3791 l_resp_id := l_resp_id_fnd ;
3792
3793 IF l_batch_info.last_updated_by = l_user_id THEN
3794 l_wf_user_id := l_user_id;
3795 ELSE
3796 l_wf_user_id := l_batch_info.last_updated_by;
3797 END IF;
3798
3799 OPEN emp_infor_csr(OZF_UTILITY_PVT.get_resource_id(l_batch_info.last_updated_by));
3800 FETCH emp_infor_csr INTO l_emp_id;
3801 CLOSE emp_infor_csr;
3802
3803 WF_DIRECTORY.GetRoleName(
3804 p_orig_system => 'PER',
3805 p_orig_system_id => l_emp_id ,
3806 p_name => l_user_name,
3807 p_display_name => l_display_name
3808 );
3809
3810 IF OZF_DEBUG_LOW_ON THEN
3811 OZF_UTILITY_PVT.debug_message('l_user_id :' || l_user_id);
3812 OZF_UTILITY_PVT.debug_message('l_wf_user_id :' || l_wf_user_id);
3813 OZF_UTILITY_PVT.debug_message('l_resp_id :' || l_resp_id);
3814 OZF_UTILITY_PVT.debug_message('l_emp_id :' || l_emp_id);
3815 END IF;
3816
3817 -- nepanda : Fix for bug # 12716192
3818 -- If value of profile "OZF: IDSM Batch Processing Mode" is set to Synchronous then Batch Process will be done synchronously
3819
3820 IF l_batch_process_mode = 'SYNC' THEN
3821
3822 WF_ENGINE.CreateProcess(
3823 itemType => l_itemtype,
3824 itemKey => l_itemkey,
3825 process => l_process
3826 );
3827
3828 WF_ENGINE.SetItemUserKey(
3829 itemType => l_itemtype,
3830 itemKey => l_itemkey,
3831 userKey => l_itemuserkey
3832 );
3833
3834 WF_ENGINE.SetItemOwner(
3835 itemtype => l_itemtype,
3836 itemkey => l_itemkey,
3837 owner => l_user_name
3838 );
3839
3840 WF_ENGINE.SetItemAttrText(
3841 itemtype => l_itemtype,
3842 itemkey => l_itemkey ,
3843 aname => 'OZF_RESALE_BATCH_ID',
3844 avalue => p_resale_batch_id
3845 );
3846
3847 WF_ENGINE.SetItemAttrText(
3848 itemtype => l_itemtype,
3849 itemkey => l_itemkey ,
3850 aname => 'WF_ADMINISTRATOR',
3851 avalue => l_user_name
3852 );
3853
3854 WF_ENGINE.SetItemAttrText(
3855 itemtype => l_itemtype,
3856 itemkey => l_itemkey ,
3857 aname => 'OZF_RESALE_BATCH_CALLER',
3858 avalue => p_caller_type
3859 );
3860
3861 --//Bugfix : 10312826
3862 WF_ENGINE.SetItemAttrNumber(
3863 itemtype => l_itemtype,
3864 itemkey => l_itemkey ,
3865 aname => 'OZF_USER_ID',
3866 avalue => l_wf_user_id
3867 );
3868
3869 WF_ENGINE.SetItemAttrText(
3870 itemtype => l_itemtype,
3871 itemkey => l_itemkey ,
3872 aname => 'OZF_RESPONSIBILITY_ID',
3873 avalue => l_resp_id
3874 );
3875
3876 WF_ENGINE.SetItemAttrText(
3877 itemtype => l_itemtype,
3878 itemkey => l_itemkey ,
3879 aname => 'OZF_APPLICATION_ID',
3880 avalue => l_appl_id
3881 );
3882
3883 -- nepanda : Fix for Bug 13819601
3884 WF_ENGINE.SetItemAttrText(
3885 itemtype => l_itemtype,
3886 itemkey => l_itemkey ,
3887 aname => 'OZF_BATCH_ORG_ID',
3888 avalue => l_batch_info.org_id
3889 );
3890 WF_ENGINE.StartProcess(
3891 itemtype => l_itemtype,
3892 itemkey => l_itemkey
3893 );
3894
3895 ELSE -- IF l_batch_process_mode = 'ASYNC' THEN
3896 -- If value of profile "OZF: IDSM Batch Processing Mode" is set to Asynchronous then Batch Process will be done Asynchronously
3897
3898 wf_event.AddParameterToList(p_name => 'OZF_RESALE_BATCH_ID',
3899 p_value => p_resale_batch_id,
3900 p_parameterlist => l_parameter_list);
3901
3902
3903 wf_event.AddParameterToList(p_name => 'WF_ADMINISTRATOR',
3904 p_value => l_user_name,
3905 p_parameterlist => l_parameter_list);
3906
3907
3908 wf_event.AddParameterToList(p_name => 'OZF_RESALE_BATCH_CALLER',
3909 p_value => p_caller_type,
3910 p_parameterlist => l_parameter_list);
3911
3912 wf_event.AddParameterToList(p_name => 'OZF_USER_ID',
3913 p_value => l_wf_user_id,
3914 p_parameterlist => l_parameter_list);
3915
3916 wf_event.AddParameterToList(p_name => 'OZF_RESPONSIBILITY_ID',
3917 p_value => l_resp_id,
3918 p_parameterlist => l_parameter_list);
3919
3920 wf_event.AddParameterToList(p_name => 'OZF_APPLICATION_ID',
3921 p_value => l_appl_id,
3922 p_parameterlist => l_parameter_list);
3923
3924 -- nepanda : Fix for Bug 13819601
3925 wf_event.AddParameterToList(p_name => 'OZF_BATCH_ORG_ID',
3926 p_value => l_batch_info.org_id,
3927 p_parameterlist => l_parameter_list);
3928
3929 -- nepanda : Fix for Bug 13819601 commented extra set context
3930 --FND_GLOBAL.APPS_INITIALIZE(l_user_id,l_resp_id, l_appl_id);
3931 WF_EVENT.Raise
3932 ( p_event_name => p_event,
3933 p_event_key => l_itemkey,
3934 p_parameters => l_parameter_list);
3935
3936 END IF; -- IF l_batch_process_mode = 'SYNC' THEN
3937
3938 EXCEPTION
3939 WHEN FND_API.G_EXC_ERROR THEN
3940 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3941 FND_MESSAGE.Set_Name('OZF','OZF_API_DEBUG_MESSAGE');
3942 FND_MESSAGE.Set_Token('TEXT',G_PKG_NAME||'.'||l_api_name||': Error');
3943 FND_MSG_PUB.Add;
3944 END IF;
3945 RAISE;
3946 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3947 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3948 FND_MESSAGE.Set_Name('OZF','OZF_API_DEBUG_MESSAGE');
3949 FND_MESSAGE.Set_Token('TEXT',G_PKG_NAME||'.'||l_api_name||': Error');
3950 FND_MSG_PUB.Add;
3951 END IF;
3952 RAISE;
3953 WHEN OTHERS THEN
3954 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3955 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
3956 END IF;
3957 RAISE;
3958 END Start_Data_Process;
3959
3960
3961 PROCEDURE Start_Batch_Payment(
3962 p_resale_batch_id IN NUMBER
3963 ,p_caller_type IN VARCHAR2
3964 )
3965 IS
3966 l_api_name CONSTANT VARCHAR2(30) := 'Start_Batch_Payment';
3967
3968 l_itemtype VARCHAR2(8) := 'OZFRSIFD';
3969 l_process VARCHAR2(30) := 'PAYMENT_INITIATION_PROCESS';
3970 l_itemkey VARCHAR2(240);
3971 l_itemuserkey VARCHAR2(240);
3972
3973 CURSOR get_batch_info(p_resale_batch_id IN NUMBER) IS
3974 SELECT status_code
3975 , last_updated_by
3976 , batch_type
3977 , batch_number
3978 , org_id -- nepanda : Fix for Bug 13819601
3979 FROM ozf_resale_batches_all
3980 WHERE resale_batch_id = p_resale_batch_id;
3981
3982 CURSOR emp_infor_csr(p_res_id NUMBER) IS
3983 -- BUBG 4953233 (+)
3984 SELECT ppl.person_id
3985 FROM jtf_rs_resource_extns rsc
3986 , per_people_f ppl
3987 WHERE rsc.category = 'EMPLOYEE'
3988 AND ppl.person_id = rsc.source_id
3989 AND rsc.resource_id=p_res_id;
3990 -- SELECT employee_id
3991 -- FROM jtf_rs_res_emp_vl
3992 -- WHERE resource_id = p_res_id ;
3993 -- BUBG 4953233 (-)
3994
3995 l_batch_info get_batch_info%ROWTYPE;
3996 l_emp_id NUMBER;
3997 l_user_name VARCHAR2(100);
3998 l_display_name VARCHAR2(100);
3999
4000 l_parameter_list WF_PARAMETER_LIST_T;
4001 p_event VARCHAR2(100) := 'oracle.apps.ozf.idsm.WEBADIPayment';
4002
4003 l_user_id NUMBER;
4004 l_wf_user_id NUMBER;
4005 l_resp_id NUMBER;
4006 l_appl_id NUMBER := 682;
4007
4008 l_user_id_fnd Number ;
4009 l_resp_id_fnd Number ;
4010
4011 CURSOR wf_values_csr(p_item_type VARCHAR2,
4012 p_item_key VARCHAR2,
4013 p_name VARCHAR2) IS
4014 SELECT number_value
4015 FROM wf_item_attribute_values wiav
4016 WHERE wiav.item_type = p_item_type
4017 AND wiav.item_key like p_item_key||'%'
4018 AND wiav.name = p_name;
4019
4020 BEGIN
4021
4022 l_user_id_fnd := FND_GLOBAL.user_id;
4023 l_resp_id_fnd := FND_GLOBAL.resp_id;
4024
4025 OPEN get_batch_info(p_resale_batch_id);
4026 FETCH get_batch_info INTO l_batch_info;
4027 CLOSE get_batch_info;
4028
4029 IF l_batch_info.status_code IN ('OPEN', 'DISPUTED', 'PROCESSED') THEN
4030 UPDATE ozf_resale_batches_all
4031 SET status_code = 'PENDING_PAYMENT'
4032 WHERE resale_batch_id = p_resale_batch_id;
4033 END IF;
4034 --Bugfix: 6510872
4035 --l_itemkey := p_resale_batch_id||'-'||TO_CHAR(sysdate, 'YYYY-MMDD-HH24MISS');
4036 l_itemkey := 'PIP-'||p_resale_batch_id||'-'||TO_CHAR(sysdate, 'YYYY-MMDD-HH24MISS');
4037 l_itemuserkey := l_batch_info.batch_type||'-'||
4038 l_batch_info.batch_number||'-'||
4039 TO_CHAR(sysdate, 'YYYY-MMDD-HH24MISS');
4040
4041
4042 -- For Bug#8867381 making the workflow event asynchronous by creating an event
4043 /*
4044 WF_ENGINE.CreateProcess(
4045 itemType => l_itemtype,
4046 itemKey => l_itemkey,
4047 process => l_process
4048 );
4049
4050 WF_ENGINE.SetItemUserKey(
4051 itemType => l_itemtype,
4052 itemKey => l_itemkey,
4053 userKey => l_itemuserkey
4054 );
4055 */
4056
4057 --//Bugfix : 10431933
4058 --//Get the context information from Batch Process Workflow
4059 OPEN wf_values_csr(l_itemtype,p_resale_batch_id,G_WF_ATTR_USER_ID);
4060 FETCH wf_values_csr INTO l_user_id;
4061 CLOSE wf_values_csr;
4062
4063 OPEN wf_values_csr(l_itemtype,p_resale_batch_id,G_WF_ATTR_RESP_ID);
4064 FETCH wf_values_csr INTO l_resp_id;
4065 CLOSE wf_values_csr;
4066
4067 OPEN emp_infor_csr(OZF_UTILITY_PVT.get_resource_id(l_batch_info.last_updated_by));
4068 FETCH emp_infor_csr INTO l_emp_id;
4069 CLOSE emp_infor_csr;
4070
4071 -- fix for bug 16066424
4072 -- in case of Interface batch, no record in wf_item_attribute_values with Itemkey as p_batch_id ||'-'||to_char(sysdate,'MM/DD/YYYY HH:MI:SS')
4073
4074 l_user_id := l_user_id_fnd ;
4075 l_resp_id := l_resp_id_fnd ;
4076
4077 IF l_batch_info.last_updated_by = l_user_id THEN
4078 l_wf_user_id := l_user_id;
4079 ELSE
4080 l_wf_user_id := l_batch_info.last_updated_by;
4081 END IF;
4082
4083
4084 WF_DIRECTORY.GetRoleName(
4085 p_orig_system => 'PER',
4086 p_orig_system_id => l_emp_id ,
4087 p_name => l_user_name,
4088 p_display_name => l_display_name
4089 );
4090
4091 -- For Bug#8867381 making the workflow event asynchronous by creating an event
4092 /*
4093 WF_ENGINE.SetItemOwner(
4094 itemtype => l_itemtype,
4095 itemkey => l_itemkey,
4096 owner => l_user_name
4097 );
4098
4099 WF_ENGINE.SetItemAttrText(
4100 itemtype => l_itemtype,
4101 itemkey => l_itemkey ,
4102 aname => 'OZF_RESALE_BATCH_ID',
4103 avalue => p_resale_batch_id
4104 );
4105
4106 WF_ENGINE.SetItemAttrText(
4107 itemtype => l_itemtype,
4108 itemkey => l_itemkey ,
4109 aname => 'WF_ADMINISTRATOR',
4110 avalue => l_user_name
4111 );
4112
4113 WF_ENGINE.SetItemAttrText(
4114 itemtype => l_itemtype,
4115 itemkey => l_itemkey ,
4116 aname => 'OZF_RESALE_BATCH_CALLER',
4117 avalue => p_caller_type
4118 );
4119
4120 WF_ENGINE.StartProcess(
4121 itemtype => l_itemtype,
4122 itemkey => l_itemkey
4123 );
4124 */
4125
4126 -- For Bug#8867381 making the workflow event asynchronous by raising an event
4127
4128 wf_event.AddParameterToList(p_name => 'OZF_RESALE_BATCH_ID',
4129 p_value => p_resale_batch_id,
4130 p_parameterlist => l_parameter_list);
4131
4132 wf_event.AddParameterToList(p_name => 'WF_ADMINISTRATOR',
4133 p_value => l_user_name,
4134 p_parameterlist => l_parameter_list);
4135
4136 wf_event.AddParameterToList(p_name => 'OZF_RESALE_BATCH_CALLER',
4137 p_value => p_caller_type,
4138 p_parameterlist => l_parameter_list);
4139
4140 --//Bugfix : 10431933
4141 wf_event.AddParameterToList(p_name => 'OZF_USER_ID',
4142 p_value => l_wf_user_id,
4143 p_parameterlist => l_parameter_list);
4144
4145 wf_event.AddParameterToList(p_name => 'OZF_RESPONSIBILITY_ID',
4146 p_value => l_resp_id,
4147 p_parameterlist => l_parameter_list);
4148
4149 wf_event.AddParameterToList(p_name => 'OZF_APPLICATION_ID',
4150 p_value => l_appl_id,
4151 p_parameterlist => l_parameter_list);
4152
4153 -- nepanda : Fix for Bug 13819601
4154 wf_event.AddParameterToList(p_name => 'OZF_BATCH_ORG_ID',
4155 p_value => l_batch_info.org_id,
4156 p_parameterlist => l_parameter_list);
4157 IF OZF_DEBUG_LOW_ON THEN
4158 OZF_UTILITY_PVT.debug_message('Before WF_EVENT.Raise');
4159 OZF_UTILITY_PVT.debug_message('p_event :'|| p_event);
4160 OZF_UTILITY_PVT.debug_message('l_itemkey :'|| l_itemkey);
4161 OZF_UTILITY_PVT.debug_message('l_user_id :'|| l_user_id);
4162 OZF_UTILITY_PVT.debug_message('l_resp_id :'|| l_resp_id);
4163 END IF;
4164
4165
4166 WF_EVENT.Raise
4167 ( p_event_name => p_event,
4168 p_event_key => l_itemkey,
4169 p_parameters => l_parameter_list);
4170
4171
4172
4173
4174 EXCEPTION
4175 WHEN FND_API.G_EXC_ERROR THEN
4176 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
4177 FND_MESSAGE.Set_Name('OZF','OZF_API_DEBUG_MESSAGE');
4178 FND_MESSAGE.Set_Token('TEXT',G_PKG_NAME||'.'||l_api_name||': Error');
4179 FND_MSG_PUB.Add;
4180 END IF;
4181 RAISE;
4182 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4183 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
4184 FND_MESSAGE.Set_Name('OZF','OZF_API_DEBUG_MESSAGE');
4185 FND_MESSAGE.Set_Token('TEXT',G_PKG_NAME||'.'||l_api_name||': Error');
4186 FND_MSG_PUB.Add;
4187 END IF;
4188 RAISE;
4189 WHEN OTHERS THEN
4190 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4191 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
4192 END IF;
4193 RAISE;
4194 END Start_Batch_Payment;
4195
4196 --nepanda : Fix for Bug 13819601
4197 ---------------------------------------------------------------------
4198 -- PROCEDURE
4199 -- SET_CONTEXT
4200 --
4201 -- PURPOSE
4202 -- This is a selector function for OZF Resale Interface Data Processing.
4203 -- This method is called everytime a new process is called in the above workflow for an Item.
4204 -- Its 1st called in mode TEST_CTX, if the context is set properly then returns with result = TRUE.
4205 -- if the context is not set, then returns with result = NOTSET .
4206 -- If result is NOTSET then this procedure is called again with Mode SET_CTX and correct context is set.
4207 --
4208 -- PARAMETERS
4209 --
4210 --
4211 -- NOTES
4212 ---------------------------------------------------------------------
4213 PROCEDURE SET_CONTEXT
4214 ( p_itemtype in varchar2
4215 , p_itemkey in varchar2
4216 , p_actid in number
4217 , p_funcmode in varchar2
4218 , p_resultout in out nocopy varchar2
4219 )
4220 IS
4221
4222 l_wf_batch_org_id NUMBER;
4223 l_wf_resp_id NUMBER;
4224 l_wf_user_id NUMBER;
4225 l_wf_appl_id NUMBER := 682 ;
4226
4227 BEGIN
4228
4229
4230 l_wf_user_id := WF_ENGINE.GetItemAttrText(
4231 itemtype => p_itemtype,
4232 itemkey => p_itemkey,
4233 aname => G_WF_ATTR_USER_ID
4234 );
4235
4236 l_wf_resp_id := WF_ENGINE.GetItemAttrText(
4237 itemtype => p_itemtype,
4238 itemkey => p_itemkey,
4239 aname => G_WF_ATTR_RESP_ID
4240 );
4241
4242 l_wf_batch_org_id := WF_ENGINE.GetItemAttrText(
4243 itemtype => p_itemtype,
4244 itemkey => p_itemkey,
4245 aname => 'OZF_BATCH_ORG_ID'
4246 );
4247
4248
4249 IF (p_funcmode = 'RUN') THEN
4250 p_resultout := 'COMPLETE';
4251 END IF;
4252
4253 IF p_funcmode = 'TEST_CTX' THEN
4254 IF (NVL(mo_global.get_access_mode,'NULL') <> 'S') OR
4255 (NVL(mo_global.get_current_org_id,-99) <> l_wf_batch_org_id) OR
4256 (NVL(FND_GLOBAL.user_id,-99) <> l_wf_user_id) OR
4257 (NVL(FND_GLOBAL.resp_id,-99) <> l_wf_resp_id)
4258 THEN
4259 p_resultout := 'NOTSET';
4260 ELSE
4261 p_resultout := 'TRUE';
4262 END IF;
4263 END IF;
4264
4265 IF p_funcmode = 'SET_CTX' THEN
4266 IF l_wf_user_id IS NOT NULL AND l_wf_resp_id IS NOT NULL THEN
4267 FND_GLOBAL.apps_initialize(l_wf_user_id, l_wf_resp_id, l_wf_appl_id);
4268 END IF;
4269 IF l_wf_batch_org_id IS NOT NULL THEN
4270 MO_GLOBAL.init('OZF');
4271 MO_GLOBAL.set_policy_context('S', l_wf_batch_org_id);
4272 END IF ;
4273 p_resultout := 'COMPLETE';
4274 END IF;
4275
4276 EXCEPTION
4277 WHEN OTHERS THEN
4278 WF_CORE.context( 'OZF_RESALE_WF_PVT','SELECTOR',p_itemtype,p_itemkey,p_actid,p_funcmode);
4279 RAISE;
4280
4281 END SET_CONTEXT;
4282 END OZF_RESALE_WF_PVT;