[Home] [Help]
PACKAGE BODY: APPS.OE_CREDIT_EXPOSURE_PVT
Source
1 PACKAGE BODY OE_CREDIT_EXPOSURE_PVT AS
2 -- $Header: OEXVCRXB.pls 120.19.12020000.2 2012/11/14 19:38:01 cpati ship $
3
4 --+=======================================================================+
5 --| Copyright (c) 1998 Oracle Corporation |
6 --| Redwood Shores, CA, USA |
7 --| All rights reserved. |
8 --+=======================================================================+
9 --| FILENAME |
10 --| OEXVCRXB.pls |
11 --| |
12 --| DESCRIPTION |
13 --| Body of OE_CREDIT_EXPOSURE_PVT |
14 --| |
15 --| HISTORY |
16 --| 06/05/2001 Rene Schaub Created |
17 --| 02/04/2002 Rajesh Krishnan ontdev => 115.10 2001/09/01 00:53:53 |
18 --| multi org FEB-04-2002 7PM |
19 --| 03/15/2002 Vanessa To modified get_exposure - include |
20 --| external exposure. |
21 --| 05/01/2002 rajkrish Bug 2352020 |
22 --| 06/18/2002 vto renee -- init summary only |
23 --| Aug-2002 rajkrish - Implement MUlti buckets algorithm |
24 --| ontdev==> 115.14 2002/05/02 |
25 --| August-29-2002 rajkrish 6PM |
26 --| 12/20/2002 vto Added NOCOPY to OUT variables |
27 --| 23-DEc-2002 - BR Issue |
28 --| 07/02/2003 tsimmond Added code for the FPJ Returns project in |
29 --| Init_Summary_Table,balance types proc., |
30 --| Retrieve_Exposure |
31 --| 08/27/2003 vto Modification for Partial payments support |
32 --| |
33 --| 12/23/2003 tsimmond Modified insert for G_ORDER_RETURN_HOLDS, |
34 --| G_ORDER_RETURN_TAX_HOLDS, |
35 --| G_LINE_RETURN_TAX_HOLDS, |
36 --| and G_LINE_RETURN_HOLDS, bug fix 3223770 |
37 --| 01/06/2004 vto 3320260. Modified to handle non-multiorg |
38 --| 08/06/2004 vto 3818562. Add NVL on h.request_date |
39 --+======================================================================*/
40
41
42 --===================
43 -- CONSTANTS
44 --===================
45 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_CREDIT_EXPOSURE_PVT';
46 G_debug_flag VARCHAR2(1) :=
47 NVL(oe_credit_check_util.check_debug_flag , 'N' ) ;
48 --===================
49 -- GLOBAL VARIABLES
50 --===================
51 b1 NUMBER;
52 b2 NUMBER;
53 b3 NUMBER;
54 b4 NUMBER;
55 b5 NUMBER;
56 b6 NUMBER;
57 b7 NUMBER;
58 b8 NUMBER;
59 b9 NUMBER;
60 b10 NUMBER;
61 b11 NUMBER;
62 b12 NUMBER;
63 b13 NUMBER;
64 b14 NUMBER;
65 b15 NUMBER;
66 b16 NUMBER;
67 b17 NUMBER;
68 b18 NUMBER;
69 b21 NUMBER;
70 b22 NUMBER;
71
72 ----added for the RETURNS-------
73 b23 NUMBER;
74 b24 NUMBER;
75 b25 NUMBER;
76 b26 NUMBER;
77 b27 NUMBER;
78 b28 NUMBER;
79 b29 NUMBER;
80 b30 NUMBER;
81 b31 NUMBER;
82 b32 NUMBER;
83 b33 NUMBER;
84 b34 NUMBER;
85 b35 NUMBER;
86 b36 NUMBER;
87 --TaxER start
88 b37 NUMBER;
89 b38 NUMBER;
90 b39 NUMBER;
91 b40 NUMBER;
92 b41 NUMBER;
93 b42 NUMBER;
94 b43 NUMBER;
95 b44 NUMBER;
96 b45 NUMBER;
97 b46 NUMBER;
98 b47 NUMBER;
99 b48 NUMBER;
100 --TaxER end
101
102 g_error_curr_tbl OE_CREDIT_CHECK_UTIL.curr_tbl_type;
103 g_conversion_type OE_Credit_Check_Rules.conversion_type%TYPE;
104 g_functional_currency FND_CURRENCIES.Currency_code%TYPE;
105 g_use_party_hierarchy VARCHAR2(1) ;
106
107 --g_external_exposure NUMBER ;
108
109 --===================
110 -- PRIVATE PROCEDURES
111 --===================
112
113 ------------------------------------------------------
114 -- Function used for debug log printing the time execution
115 -------------------------------------------------------
116
117 FUNCTION Do_Time RETURN VARCHAR2 IS
118 t VARCHAR2(30);
119 BEGIN
120
121 t := TO_CHAR( SYSDATE, 'YYYY-MON-HH-MI-SS' ) ;
122 RETURN t;
123
124 END;
125
126
127 ------------------------------------------------------
128 -- PROCEDURE : get_invoices_over_duedate
129 -- DESCRIPTION: Returns Y if Invoices exist past due dates
130 -- HISTORY:
131 -- 01/06/04 3320260: Modified to handle non-multiorg setup
132 -- 12/20/05 4514215: Modified all the cursors, replaced the condition
133 -- bucket < l_jdate with bucket <= l_jdate
134 --------------------------------------------------------
135 PROCEDURE get_invoices_over_duedate
136 ( p_customer_id IN NUMBER
137 , p_site_use_id IN NUMBER
138 , p_party_id IN NUMBER
139 , p_credit_check_rule_rec IN
140 OE_CREDIT_CHECK_UTIL.OE_credit_rules_rec_type
141 , p_credit_level IN VARCHAR2
142 , p_usage_curr IN oe_credit_check_util.curr_tbl_type
143 , p_include_all_flag IN VARCHAR2
144 , p_global_exposure_flag IN VARCHAR2 := 'N'
145 , p_org_id IN NUMBER
146 , x_exist_flag OUT NOCOPY VARCHAR2
147 )
148 IS
149
150 l_jdate NUMBER;
151 l_return VARCHAR2(1) ;
152
153 CURSOR chk_inv_past_due_cust(p_curr_code IN VARCHAR2 ) IS
154 SELECT 'Y'
155 FROM OE_credit_summaries
156 WHERE cust_account_id = p_customer_id
157 AND currency_code = p_curr_code
158 AND bucket <= l_jdate
159 AND bucket_duration = 1
160 AND ((org_id = p_org_id)
161 OR
162 (org_id IS NULL AND p_org_id IS NULL))
163 AND balance_type = 20 ;
164
165 CURSOR chk_inv_past_due_cust_gl(p_curr_code IN VARCHAR2 ) IS
166 SELECT 'Y'
167 FROM OE_credit_summaries
168 WHERE cust_account_id = p_customer_id
169 AND currency_code = p_curr_code
170 AND bucket <= l_jdate
171 AND bucket_duration = 1
172 AND balance_type = 20 ;
173
174
175 CURSOR chk_inv_past_due_site(p_curr_code IN VARCHAR2 ) IS
176 SELECT 'Y'
177 FROM OE_credit_summaries
178 WHERE site_use_id = p_site_use_id
179 AND currency_code = p_curr_code
180 AND bucket <= l_jdate
181 AND bucket_duration = 1
182 AND balance_type = 20 ;
183
184 CURSOR chk_inv_past_due_party(p_curr_code IN VARCHAR2 ) IS
185 SELECT 'Y'
186 FROM OE_credit_summaries oes
187 , hz_hierarchy_nodes hn
188 WHERE hn.parent_id = p_party_id
189 AND hn.parent_object_type = 'ORGANIZATION'
190 and hn.parent_table_name = 'HZ_PARTIES'
191 and hn.child_object_type = 'ORGANIZATION'
192 and hn.effective_start_date <= sysdate
193 and hn.effective_end_date >= SYSDATE
194 and hn.hierarchy_type =
195 OE_CREDIT_CHECK_UTIL.G_hierarchy_type
196 AND oes.party_id = hn.child_id
197 AND oes.currency_code = p_curr_code
198 AND oes.bucket <= l_jdate
199 AND oes.balance_type = 20
200 AND oes.bucket_duration = 1 ;
201
202 --Bug 4991241
203 CURSOR chk_inv_past_due_single_party(p_curr_code IN VARCHAR2 ) IS
204 SELECT 'Y'
205 FROM OE_credit_summaries
206 WHERE party_id = p_party_id
207 AND currency_code = p_curr_code
208 AND bucket <= l_jdate
209 AND bucket_duration = 1
210 AND balance_type = 20 ;
211
212 CURSOR chk_inv_past_due_cust_all IS
213 SELECT 'Y'
214 FROM OE_credit_summaries
215 WHERE cust_account_id = p_customer_id
216 AND bucket <= l_jdate
217 AND bucket_duration = 1
218 AND ((org_id = p_org_id)
219 OR
220 (org_id IS NULL AND p_org_id IS NULL))
221 AND balance_type = 20 ;
222
223 CURSOR chk_inv_past_due_cust_all_gl IS
224 SELECT 'Y'
225 FROM OE_credit_summaries
226 WHERE cust_account_id = p_customer_id
227 AND bucket <= l_jdate
228 AND bucket_duration = 1
229 AND balance_type = 20 ;
230
231
232 CURSOR chk_inv_past_due_site_all IS
233 SELECT 'Y'
234 FROM OE_credit_summaries
235 WHERE site_use_id = p_site_use_id
236 AND bucket <= l_jdate
237 AND bucket_duration = 1
238 AND balance_type = 20 ;
239
240 CURSOR chk_inv_past_due_party_all IS
241 SELECT 'Y'
242 FROM OE_credit_summaries oes
243 , hz_hierarchy_nodes hn
244 WHERE hn.parent_id = p_party_id
245 AND hn.parent_object_type = 'ORGANIZATION'
246 and hn.parent_table_name = 'HZ_PARTIES'
247 and hn.child_object_type = 'ORGANIZATION'
248 and hn.effective_start_date <= sysdate
249 and hn.effective_end_date >= SYSDATE
250 and hn.hierarchy_type =
251 OE_CREDIT_CHECK_UTIL.G_hierarchy_type
252 AND oes.party_id = hn.child_id
253 AND oes.bucket <= l_jdate
254 AND oes.balance_type = 20
255 AND oes.bucket_duration = 1;
256
257 --Bug 4991241
258 CURSOR chk_inv_past_party_single_all IS
259 SELECT 'Y'
260 FROM OE_credit_summaries
261 WHERE party_id = p_party_id
262 AND bucket <= l_jdate
263 AND bucket_duration = 1
264 AND balance_type = 20 ;
265
266 BEGIN
267
268 l_jdate := TO_NUMBER( TO_CHAR( ( SYSDATE -
269 p_credit_check_rule_rec.maximum_days_past_due ), 'J' ) );
270
271 x_exist_flag := 'N' ;
272
273 IF G_debug_flag = 'Y'
274 THEN
275 oe_debug_pub.add(' l_jdate => '|| l_jdate );
276 oe_debug_pub.add(' p_credit_level => '|| p_credit_level );
277 oe_debug_pub.add(' p_site_use_id => '|| p_site_use_id );
278 oe_debug_pub.add(' p_customer_id => '|| p_customer_id );
279 oe_debug_pub.add(' p_party_id => '|| p_party_id );
280 END IF;
281
282 BEGIN
283
284 IF p_credit_level = 'CUSTOMER'
285 THEN
286 IF p_include_all_flag = 'N'
287 THEN
288 FOR i IN 1..p_usage_curr.count
289 LOOP
290 IF p_global_exposure_flag = 'N'
291 THEN
292 OPEN chk_inv_past_due_cust (p_usage_curr(i).usage_curr_code ) ;
293 FETCH chk_inv_past_due_cust
294 INTO x_exist_flag ;
295
296 IF chk_inv_past_due_cust%NOTFOUND
297 THEN
298 x_exist_flag := 'N' ;
299 ELSE
300 CLOSE chk_inv_past_due_cust ;
301 EXIT ;
302 END IF;
303 CLOSE chk_inv_past_due_cust ;
304
305 ELSE
306 OPEN chk_inv_past_due_cust_gl (p_usage_curr(i).usage_curr_code ) ;
307 FETCH chk_inv_past_due_cust_gl INTO x_exist_flag ;
308 IF chk_inv_past_due_cust_gl%NOTFOUND
309 THEN
310 x_exist_flag := 'N' ;
311 ELSE
312 CLOSE chk_inv_past_due_cust_gl ;
313 EXIT;
314 END IF;
315 CLOSE chk_inv_past_due_cust_gl ;
316 END IF; -- global
317 END LOOP ;
318
319 ELSE -- al currency
320 IF p_global_exposure_flag = 'N'
321 THEN
322 OPEN chk_inv_past_due_cust_all ;
323 FETCH chk_inv_past_due_cust_all
324 INTO x_exist_flag ;
325
326 IF chk_inv_past_due_cust_all%NOTFOUND
327 THEN
328 x_exist_flag := 'N' ;
329 END IF;
330 CLOSE chk_inv_past_due_cust_all ;
331 ELSE
332 OPEN chk_inv_past_due_cust_all_gl ;
333 FETCH chk_inv_past_due_cust_all_gl INTO x_exist_flag ;
334 IF chk_inv_past_due_cust_all_gl%NOTFOUND
335 THEN
336 x_exist_flag := 'N' ;
337 END IF;
338
339 CLOSE chk_inv_past_due_cust_all_gl ;
340 END IF ; -- global;
341 END IF; -- all curr
342
343 ELSIF p_credit_level = 'SITE'
344 THEN
345 IF p_include_all_flag = 'N'
346 THEN
347 FOR i IN 1..p_usage_curr.count
348 LOOP
349
350 OPEN chk_inv_past_due_site(p_usage_curr(i).usage_curr_code) ;
351 FETCH chk_inv_past_due_site
352 INTO x_exist_flag ;
353
354 IF chk_inv_past_due_site%NOTFOUND
355 THEN
356 x_exist_flag := 'N' ;
357 ELSE
358 CLOSE chk_inv_past_due_site ;
359 EXIT ;
360 END IF;
361
362 CLOSE chk_inv_past_due_site ;
363 END LOOP;
364 ELSE -- all curr
365 OPEN chk_inv_past_due_site_all ;
366 FETCH chk_inv_past_due_site_all
367 INTO x_exist_flag ;
368
369 IF chk_inv_past_due_site_all%NOTFOUND
370 THEN
371 x_exist_flag := 'N' ;
372 END IF;
373
374 CLOSE chk_inv_past_due_site_all ;
375 END IF;
376
377 ELSIF p_credit_level = 'PARTY'
378 THEN
379 IF p_include_all_flag = 'N'
380 THEN
381 FOR i IN 1..p_usage_curr.count
382 LOOP
383 --Bug 4991241
384 OPEN chk_inv_past_due_single_party(p_usage_curr(i).usage_curr_code ) ;
385 FETCH chk_inv_past_due_single_party
386 INTO x_exist_flag ;
387 IF chk_inv_past_due_single_party%NOTFOUND
388 THEN
389 x_exist_flag := 'N' ;
390 ELSE
391 CLOSE chk_inv_past_due_single_party ;
392 EXIT ;
393 END IF;
394 CLOSE chk_inv_past_due_single_party ;
395
396 OPEN chk_inv_past_due_party(p_usage_curr(i).usage_curr_code ) ;
397 FETCH chk_inv_past_due_party
398 INTO x_exist_flag ;
399
400 IF chk_inv_past_due_party%NOTFOUND
401 THEN
402 x_exist_flag := 'N' ;
403 ELSE
404 CLOSE chk_inv_past_due_party ;
405 EXIT ;
406 END IF;
407 CLOSE chk_inv_past_due_party ;
408 END LOOP;
409 ELSE
410 --Bug 4991241
411 OPEN chk_inv_past_party_single_all ;
412 FETCH chk_inv_past_party_single_all INTO x_exist_flag ;
413
414 IF chk_inv_past_party_single_all%NOTFOUND
415 THEN
416 x_exist_flag := 'N' ;
417 END IF;
418 CLOSE chk_inv_past_party_single_all ;
419
420 IF x_exist_flag = 'N' THEN
421 OPEN chk_inv_past_due_party_all ;
422 FETCH chk_inv_past_due_party_all INTO x_exist_flag ;
423
424 IF chk_inv_past_due_party_all%NOTFOUND
425 THEN
426 x_exist_flag := 'N' ;
427 END IF;
428 CLOSE chk_inv_past_due_party_all ;
429 END IF;
430 END IF;
431
432
433 END IF; -- credit level
434
435 END ;
436
437 END get_invoices_over_duedate ;
438
439 ------------------------------------------------------------------
440 -- This procedure will populate the PL/SQL table
441 -- used for storing the currencies that failed the
442 -- conversion to the credit limit currencies
443 -----------------------------------------------------
444 PROCEDURE add_error_currency
445 ( x_error_curr_tbl IN OUT NOCOPY OE_CREDIT_CHECK_UTIL.curr_tbl_type
446 , p_error_currency IN HZ_CREDIT_PROFILE_AMTS.currency_code%TYPE
447 )
448 IS
449 i BINARY_INTEGER;
450 BEGIN
451 i := x_error_curr_tbl.FIRST;
452 WHILE i IS NOT NULL LOOP
453 IF
454 p_error_currency = x_error_curr_tbl(i).usage_curr_code
455 THEN
456 EXIT;
457 END IF;
458 i := x_error_curr_tbl.NEXT(i);
459 END LOOP;
460
461 IF i IS NULL THEN
462 x_error_curr_tbl( NVL(x_error_curr_tbl.LAST, 0) + 1 ).usage_curr_code :=
463 p_error_currency;
464 END IF;
465 END;
466
467 ------------------------------------------------------
468 --- This function will return the OM Horizon Date
469 --- in the Juilan format
470 ---------------------------------------------
471
472 FUNCTION ship_date( p_date IN DATE )
473 RETURN NUMBER
474 IS
475 l_date NUMBER;
476 BEGIN
477 IF p_date IS NULL THEN
478 l_date := TO_NUMBER( TO_CHAR( (SYSDATE + 1000 ), 'J' ) );
479 -- last day of a max bucket in the far future
480 l_date := l_date - MOD( l_date, G_MAX_BUCKET_LENGTH ) - 1;
481 ELSE
482 l_date := TO_NUMBER( TO_CHAR( p_date, 'J' ) );
483 END IF;
484
485 IF G_debug_flag = 'Y'
486 THEN
487 oe_debug_pub.add( 'Shipping Horizon Julian Date is:' || l_date, 2 );
488 END IF;
489
490 RETURN l_date;
491
492 END ship_date;
493
494 -----------------------------------------------------
495 -- This function will return the AR Horizon date
496 -- in Juilan format
497 --------------------------------------------------------
498 FUNCTION open_date( p_days IN NUMBER )
499 RETURN NUMBER
500 IS
501 l_date NUMBER;
502 BEGIN
503 IF p_days IS NULL THEN
504 l_date := TO_NUMBER( TO_CHAR( ( SYSDATE + 1000 ), 'J' ) );
505 -- last day of a max bucket in the far future
506 l_date := l_date - MOD( l_date, G_MAX_BUCKET_LENGTH ) - 1;
507
508 ELSE
509 l_date := TO_NUMBER( TO_CHAR( ( SYSDATE - p_days ), 'J' ) );
510 END IF;
511
512 IF G_debug_flag = 'Y'
513 THEN
514 oe_debug_pub.add( 'Open Receivables Horizon Julian is:' || l_date, 2 );
515 END IF;
516
517 RETURN l_date;
518
519 END open_date;
520
521
522 PROCEDURE balance_types_om_and_ar
523 ( p_credit_check_rule_rec IN OE_CREDIT_CHECK_UTIL.oe_credit_rules_rec_type
524 )
525 IS
526 BEGIN
527 b1 := -1;
528 b2 := -1;
529 b3 := -1;
530 b4 := -1;
531 b5 := -1;
532 b6 := -1;
533 b7 := -1;
534 b8 := -1;
535 b9 := -1;
536 b10 := -1;
537 b11 := -1;
538 b12 := -1;
539 b13 := -1;
540 b14 := -1;
541 b15 := -1;
542 b16 := -1;
543 b17 := -1;
544 b18 := -1;
545 b21 := -1;
546 b22 := -1;
547
548 ----added for the RETURNS
549 b23 := -1;
550 b24 := -1;
551 b25 := -1;
552 b26 := -1;
553 b27 := -1;
554 b28 := -1;
555 b29 := -1;
556 b30 := -1;
557 b31 := -1;
558 b32 := -1;
559 b33 := -1;
560 b34 := -1;
561 b35 := -1;
562 b36 := -1;
563 --TaxER start
564 b37 := -1;
565 b38 := -1;
566 b39 := -1;
567 b40 := -1;
568 b41 := -1;
569 b42 := -1;
570 b43 := -1;
571 b44 := -1;
572 b45 := -1;
573 b46 := -1;
574 b47 := -1;
575 b48 := -1;
576 --TaxER end
577
578
579
580 -- Determine which balance types to select:
581 -- Chosing a balance type is indicated by setting the corresponding
582 -- variable to a balance type global constant
583 -- (e.g. b4 := G_ORDER_HOLDS)
584
585 IF p_credit_check_rule_rec.uninvoiced_orders_flag = 'Y'
586 THEN
587 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE'
588 THEN
589 b3 := G_LINE_UNINVOICED_ORDERS;
590
591 -----added for the Returns project
592 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
593 THEN
594 b24 := G_LINE_RETURN_UNINV_ORDERS;
595 END IF;
596
597 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
598 THEN
599 b11 := G_LINE_HOLDS;
600
601 -----added for the Returns project
602 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
603 THEN
604 b31 := G_LINE_RETURN_HOLDS;
605 END IF;
606
607 END IF;
608 ELSE
609 b1 := G_HEADER_UNINVOICED_ORDERS;
610
611 -----added for the Returns project
612 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
613 THEN
614 b23 := G_HEAD_RETURN_UNINV_ORDERS;
615 END IF;
616
617 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
618 THEN
619 b10 := G_ORDER_HOLDS;
620
621 -----added for the Returns project
622 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
623 THEN
624 b30 := G_ORDER_RETURN_HOLDS;
625 END IF;
626
627 END IF;
628 END IF;
629
630 END IF;
631
632 IF p_credit_check_rule_rec.include_tax_flag = 'Y'
633 THEN
634 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE'
635 THEN
636 b4 := G_LINE_UNINVOICED_ORDERS_TAX;
637
638 -----added for the Returns project
639 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
640 THEN
641 b26:= G_LINE_RETURN_UNINV_ORD_TAX;
642 END IF;
643
644 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
645 THEN
646 b14 := G_LINE_TAX_HOLDS;
647
648 -----added for the Returns project
649 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
650 THEN
651 b33:= G_LINE_RETURN_TAX_HOLDS;
652 END IF;
653
654 END IF;
655 ELSE
656 b2 := G_HEADER_UNINVOICED_ORDERS_TAX;
657
658 -----added for the Returns project
659 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
660 THEN
661 b25:= G_HEAD_RETURN_UNINV_ORD_TAX;
662 END IF;
663
664 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
665 THEN
666 b13 := G_ORDER_TAX_HOLDS;
667
668 -----added for the Returns project
669 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
670 THEN
671 b32:= G_ORDER_RETURN_TAX_HOLDS;
672 END IF;
673
674 END IF;
675 END IF;
676 END IF;
677
678 IF p_credit_check_rule_rec.incl_freight_charges_flag = 'Y'
679 THEN
680 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE'
681 THEN
682 b5 := G_LINE_UNINVOICED_FREIGHT;
683
684 -----added for the Returns project
685 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
686 THEN
687 b28:= G_LINE_RETURN_UNINV_FREIGHT;
688 END IF;
689
690 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
691 THEN
692 b16 := G_LINE_FREIGHT_HOLDS;
693
694 -----added for the Returns project
695 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
696 THEN
697 b35:= G_LINE_RETURN_FREIGHT_HOLDS;
698 END IF;
699
700 END IF;
701 ELSE
702 b6 := G_HEADER_UNINVOICED_FREIGHT;
703
704 -----added for the Returns project
705 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
706 THEN
707 b27:= G_HEAD_RETURN_UNINV_FREIGHT;
708 END IF;
709
710 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
711 THEN
712 b15 := G_ORDER_FREIGHT_HOLDS;
713
714 -----added for the Returns project
715 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
716 THEN
717 b34:= G_ORDER_RETURN_FREIGHT_HOLDS;
718 END IF;
719
720 END IF;
721 END IF;
722
723 b7 := G_HEADER_AND_LINE_FREIGHT;
724
725 -----added for the Returns project
726 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
727 THEN
728 b29:= G_HEAD_LINE_RETURN_FREIGHT;
729 END IF;
730
731 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
732 THEN
733 b17 := G_HEADER_LINE_FREIGHT_HOLDS;
734
735 -----added for the Returns project
736 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
737 THEN
738 b36:= G_H_L_RETURN_FREIGHT_HOLDS;
739 END IF;
740
741 END IF;
742
743 --TaxER start
744 IF p_credit_check_rule_rec.include_tax_flag = 'Y'
745 THEN
746 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE'
747 THEN
748 b38 := G_LINE_UNINVOICED_FREIGHT_T;
749
750 -----added for the Returns project
751 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
752 THEN
753 b44:= G_LINE_RETURN_UNINV_FREIGHT_T;
754 END IF;
755
756 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
757 THEN
758 b41 := G_LINE_FREIGHT_HOLDS_T;
759
760 -----added for the Returns project
761 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
762 THEN
763 b47:= G_LINE_RETURN_FREIGHT_HOLDS_T;
764 END IF;
765
766 END IF;
767 ELSE
768 b37 := G_HEADER_UNINVOICED_FREIGHT_T;
769
770 -----added for the Returns project
771 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
772 THEN
773 b43:= G_HEAD_RETURN_UNINV_FREIGHT_T;
774 END IF;
775
776 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
777 THEN
778 b40 := G_ORDER_FREIGHT_HOLDS_T;
779
780 -----added for the Returns project
781 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
782 THEN
783 b46:= G_ORDER_RETURN_FREIGHT_HOLDS_T;
784 END IF;
785
786 END IF;
787 END IF;
788
789 b39 := G_HEADER_AND_LINE_FREIGHT_T;
790
791
792 -----added for the Returns project
793 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
794 THEN
795 b45:= G_HEAD_LINE_RETURN_FREIGHT_T;
796 END IF;
797
798 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
799 THEN
800 b42 := G_HEADER_LINE_FREIGHT_HOLDS_T;
801
802 -----added for the Returns project
803 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
804 THEN
805 b48:= G_H_L_RETURN_FREIGHT_HOLDS_T;
806 END IF;
807
808 END IF;
809 END IF;
810
811 --TaxER end
812 END IF;
813
814 -- Set value for external exposure
815 IF p_credit_check_rule_rec.include_external_exposure_flag = 'Y' THEN
816 b18 := G_EXTERNAL_EXPOSURE;
817 END IF;
818
819 IF p_credit_check_rule_rec.include_payments_at_risk_flag = 'Y' THEN
820 b9 := G_PAYMENTS_AT_RISK;
821
822 IF p_credit_check_rule_rec.open_ar_days is NULL
823 THEN
824 b22 := G_BR_PAYMENTS_AT_RISK ;
825 END IF;
826
827 END IF;
828 IF p_credit_check_rule_rec.open_ar_balance_flag = 'Y' THEN
829 b8 := G_INVOICES;
830
831 IF p_credit_check_rule_rec.open_ar_days is NULL
832 THEN
833 b21 := G_BR_INVOICES ;
834 END IF;
835 END IF;
836
837
838 IF G_debug_flag = 'Y'
839 THEN
840 oe_debug_pub.add
841 (b1 || ' ' || b2 || ' ' || b3 || ' ' || b4 || ' ' || b5 || ' ' || b6 || ' '
842 || b7 || ' ' || b8 || ' ' || b9 || ' ' || b10 || ' ' || b11 || ' ' || b12 ||
843 ' '
844 || b13 || ' ' || b14 || ' ' || b15 || ' ' || b16 || ' ' || b17 || ' ' || b18||
845 ' '|| b23 || ' ' || b24 || ' ' || b25 || ' ' || b26 || ' ' || b27 || ' ' || b28||
846 ' '|| b29 || ' ' || b30 || ' ' || b31 || ' ' || b32 || ' ' || b33 || ' ' || b34||
847 ' '|| b35 || ' ' || b36 || ' ' || b37 ||' ' || b38 ||' ' || b39 ||' ' || b40 ||' ' || b41 ||' ' || b42 ||' ' || b43 ||
848 ' ' || b44 ||' ' || b45 ||' ' || b46 ||' ' || b47 ||' ' || b48, 2 );
849
850 oe_debug_pub.add( ' Out from balance_types_om_and_ar ');
851 END IF;
852
853 END balance_types_om_and_ar ;
854
855 -----------------------------------------------------------
856
857 -----------------------------------------------------------
858 -- This procedure will set the balance types for the
859 -- OM exposure based on the credit check rules setup
860 -- This procedure will also set the external exposure
861 -- balance types
862 -----------------------------------------------------------
863
864 PROCEDURE balance_types_om_nohold
865 (p_credit_check_rule_rec IN OE_CREDIT_CHECK_UTIL.oe_credit_rules_rec_type
866 )
867 IS
868 BEGIN
869 b1 := -1;
870 b2 := -1;
871 b3 := -1;
872 b4 := -1;
873 b5 := -1;
874 b6 := -1;
875 b7 := -1;
876 b8 := -1;
877 b9 := -1;
878 b10 := -1;
879 b11 := -1;
880 b12 := -1;
881 b13 := -1;
882 b14 := -1;
883 b15 := -1;
884 b16 := -1;
885 b17 := -1;
886 b18 := -1;
887 b21 := -1;
888 b22 := -1;
889
890 ----added for the RETURNS
891 b23 := -1;
892 b24 := -1;
893 b25 := -1;
894 b26 := -1;
895 b27 := -1;
896 b28 := -1;
897 b29 := -1;
898 b30 := -1;
899 b31 := -1;
900 b32 := -1;
901 b33 := -1;
902 b34 := -1;
903 b35 := -1;
904 b36 := -1;
905 --TaxER start
906 b37 := -1;
907 b38 := -1;
908 b39 := -1;
909 b40 := -1;
910 b41 := -1;
911 b42 := -1;
912 b43 := -1;
913 b44 := -1;
914 b45 := -1;
915 b46 := -1;
916 b47 := -1;
917 b48 := -1;
918 --TaxER end
919
920
921 -- Determine which balance types to select:
922 -- Chosing a balance type is indicated by setting the corresponding
923 -- variable to a balance type global constant
924 -- (e.g. b4 := G_ORDER_HOLDS)
925
926
927 IF p_credit_check_rule_rec.uninvoiced_orders_flag = 'Y' THEN
928 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE' THEN
929 b3 := G_LINE_UNINVOICED_ORDERS;
930
931 -----added for the Returns project
932 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
933 THEN
934 b24 := G_LINE_RETURN_UNINV_ORDERS;
935 END IF;
936 ELSE
937 b1 := G_HEADER_UNINVOICED_ORDERS;
938
939 -----added for the Returns project
940 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
941 THEN
942 b23 := G_HEAD_RETURN_UNINV_ORDERS;
943 END IF;
944 END IF;
945 END IF;
946
947
948 IF p_credit_check_rule_rec.include_tax_flag = 'Y' THEN
949 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE' THEN
950 b4 := G_LINE_UNINVOICED_ORDERS_TAX;
951
952 -----added for the Returns project
953 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
954 THEN
955 b26:= G_LINE_RETURN_UNINV_ORD_TAX;
956 END IF;
957 ELSE
958 b2 := G_HEADER_UNINVOICED_ORDERS_TAX;
959
960 -----added for the Returns project
961 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
962 THEN
963 b25:= G_HEAD_RETURN_UNINV_ORD_TAX;
964 END IF;
965
966 END IF;
967 END IF;
968
969 IF p_credit_check_rule_rec.incl_freight_charges_flag = 'Y' THEN
970 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE' THEN
971 b5 := G_LINE_UNINVOICED_FREIGHT;
972
973 -----added for the Returns project
974 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
975 THEN
976 b28:= G_LINE_RETURN_UNINV_FREIGHT;
977 END IF;
978
979 ELSE
980 b6 := G_HEADER_UNINVOICED_FREIGHT;
981
982 -----added for the Returns project
983 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
984 THEN
985 b27:= G_HEAD_RETURN_UNINV_FREIGHT;
986 END IF;
987
988 END IF;
989 b7 := G_HEADER_AND_LINE_FREIGHT;
990
991 -----added for the Returns project
992 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
993 THEN
994 b29:= G_HEAD_LINE_RETURN_FREIGHT;
995 END IF;
996 --TaxER start
997 IF p_credit_check_rule_rec.include_tax_flag = 'Y'
998 THEN
999 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE'
1000 THEN
1001 b38 := G_LINE_UNINVOICED_FREIGHT_T;
1002
1003 -----added for the Returns project
1004 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1005 THEN
1006 b44:= G_LINE_RETURN_UNINV_FREIGHT_T;
1007 END IF;
1008
1009 ELSE
1010 b37 := G_HEADER_UNINVOICED_FREIGHT_T;
1011
1012 -----added for the Returns project
1013 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1014 THEN
1015 b43:= G_HEAD_RETURN_UNINV_FREIGHT_T;
1016 END IF;
1017
1018 END IF;
1019
1020 b39 := G_HEADER_AND_LINE_FREIGHT_T;
1021
1022
1023 -----added for the Returns project
1024 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1025 THEN
1026 b45:= G_HEAD_LINE_RETURN_FREIGHT_T;
1027 END IF;
1028
1029 END IF;
1030 --TaxER end
1031
1032 END IF;
1033
1034 IF G_debug_flag = 'Y'
1035 THEN
1036 oe_debug_pub.add
1037 (b1 || ' ' || b2 || ' ' || b3 || ' ' || b4 || ' ' || b5 || ' ' || b6 || ' '
1038 || b7 || ' ' || b8 || ' ' || b9 || ' ' || b10 || ' ' || b11 || ' ' || b12 || ' '
1039 || b13 || ' ' || b14 || ' ' || b15 || ' ' || b16 || ' ' || b17 || ' ' || b18||' '
1040 || b23 || ' ' || b24 || ' ' || b25 || ' ' || b26 || ' ' || b27 || ' ' || b28||' '||b29
1041 || ' ' || b37 ||' ' || b38 ||' ' || b39 ||' ' || b44, 2 );
1042
1043 oe_debug_pub.add( ' Out from balance_types_om_nohold ' );
1044 END IF;
1045 END balance_types_om_nohold;
1046 ---------------------------------------------------------------
1047
1048 PROCEDURE balance_types_om_hold
1049 (p_credit_check_rule_rec IN OE_CREDIT_CHECK_UTIL.oe_credit_rules_rec_type
1050 )
1051 IS
1052 BEGIN
1053 b1 := -1;
1054 b2 := -1;
1055 b3 := -1;
1056 b4 := -1;
1057 b5 := -1;
1058 b6 := -1;
1059 b7 := -1;
1060 b8 := -1;
1061 b9 := -1;
1062 b10 := -1;
1063 b11 := -1;
1064 b12 := -1;
1065 b13 := -1;
1066 b14 := -1;
1067 b15 := -1;
1068 b16 := -1;
1069 b17 := -1;
1070 b18 := -1;
1071 b21 := -1;
1072 b22 := -1;
1073 ----added for the RETURNS
1074 b23 := -1;
1075 b24 := -1;
1076 b25 := -1;
1077 b26 := -1;
1078 b27 := -1;
1079 b28 := -1;
1080 b29 := -1;
1081 b30 := -1;
1082 b31 := -1;
1083 b32 := -1;
1084 b33 := -1;
1085 b34 := -1;
1086 b35 := -1;
1087 b36 := -1;
1088 --TaxER start
1089 b37 := -1;
1090 b38 := -1;
1091 b39 := -1;
1092 b40 := -1;
1093 b41 := -1;
1094 b42 := -1;
1095 b43 := -1;
1096 b44 := -1;
1097 b45 := -1;
1098 b46 := -1;
1099 b47 := -1;
1100 b48 := -1;
1101 --TaxER end
1102
1103
1104 -- Determine which balance types to select:
1105 -- Chosing a balance type is indicated by setting the corresponding
1106 -- variable to a balance type global constant
1107 -- (e.g. b4 := G_ORDER_HOLDS)
1108
1109 IF p_credit_check_rule_rec.uninvoiced_orders_flag = 'Y' THEN
1110 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE' THEN
1111 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N' THEN
1112 b11 := G_LINE_HOLDS;
1113
1114 -----added for the Returns project
1115 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1116 THEN
1117 b31 := G_LINE_RETURN_HOLDS;
1118 END IF;
1119
1120 END IF;
1121 ELSE
1122 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N' THEN
1123 b10 := G_ORDER_HOLDS;
1124
1125 -----added for the Returns project
1126 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1127 THEN
1128 b30 := G_ORDER_RETURN_HOLDS;
1129 END IF;
1130
1131 END IF;
1132 END IF;
1133 END IF;
1134
1135 IF p_credit_check_rule_rec.include_tax_flag = 'Y' THEN
1136 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE' THEN
1137 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N' THEN
1138 b14 := G_LINE_TAX_HOLDS;
1139
1140 -----added for the Returns project
1141 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1142 THEN
1143 b33:= G_LINE_RETURN_TAX_HOLDS;
1144 END IF;
1145
1146 END IF;
1147 ELSE
1148 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N' THEN
1149 b13 := G_ORDER_TAX_HOLDS;
1150
1151 -----added for the Returns project
1152 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1153 THEN
1154 b32:= G_ORDER_RETURN_TAX_HOLDS;
1155 END IF;
1156
1157 END IF;
1158 END IF;
1159 END IF;
1160
1161 IF p_credit_check_rule_rec.incl_freight_charges_flag = 'Y' THEN
1162 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE' THEN
1163 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N' THEN
1164 b16 := G_LINE_FREIGHT_HOLDS;
1165
1166 -----added for the Returns project
1167 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1168 THEN
1169 b35:= G_LINE_RETURN_FREIGHT_HOLDS;
1170 END IF;
1171
1172 END IF;
1173 ELSE
1174 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N' THEN
1175 b15 := G_ORDER_FREIGHT_HOLDS;
1176
1177 -----added for the Returns project
1178 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1179 THEN
1180 b34:= G_ORDER_RETURN_FREIGHT_HOLDS;
1181 END IF;
1182
1183 END IF;
1184 END IF;
1185
1186 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N' THEN
1187 b17 := G_HEADER_LINE_FREIGHT_HOLDS;
1188
1189 -----added for the Returns project
1190 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1191 THEN
1192 b36:= G_H_L_RETURN_FREIGHT_HOLDS;
1193 END IF;
1194
1195 END IF;
1196 --TaxER start
1197 IF p_credit_check_rule_rec.include_tax_flag = 'Y'
1198 THEN
1199 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE'
1200 THEN
1201
1202 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
1203 THEN
1204 b41 := G_LINE_FREIGHT_HOLDS_T;
1205
1206 -----added for the Returns project
1207 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1208 THEN
1209 b47:= G_LINE_RETURN_FREIGHT_HOLDS_T;
1210 END IF;
1211
1212 END IF;
1213 ELSE
1214
1215 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
1216 THEN
1217 b40 := G_ORDER_FREIGHT_HOLDS_T;
1218
1219 -----added for the Returns project
1220 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1221 THEN
1222 b46:= G_ORDER_RETURN_FREIGHT_HOLDS_T;
1223 END IF;
1224
1225 END IF;
1226 END IF;
1227
1228
1229 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
1230 THEN
1231 b42 := G_HEADER_LINE_FREIGHT_HOLDS_T;
1232
1233 -----added for the Returns project
1234 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1235 THEN
1236 b48:= G_H_L_RETURN_FREIGHT_HOLDS_T;
1237 END IF;
1238
1239 END IF;
1240 END IF;
1241 --TaxER end
1242 END IF;
1243
1244 IF G_debug_flag = 'Y'
1245 THEN
1246 oe_debug_pub.add
1247 (b1 || ' ' || b2 || ' ' || b3 || ' ' || b4 || ' ' || b5 || ' ' || b6 || ' '
1248 || b7 || ' ' || b8 || ' ' || b9 || ' ' || b10 || ' ' || b11 || ' ' || b12 || ' '
1249 || b13 || ' ' || b14 || ' ' || b15 || ' ' || b16 || ' ' || b17 || ' ' || b18|| ' '
1250 || b30 || ' ' || b31 || ' ' || b32 || ' ' || b33 || ' ' || b34 || ' ' || b35|| ' '
1251 || b36|| ' ' || b40 ||' ' || b41 ||' ' || b42 || b46 ||' ' || b47 ||' ' || b48, 2 );
1252
1253 oe_debug_pub.add( ' Out from balance_types_om_hold ' );
1254 END IF;
1255 END balance_types_om_hold;
1256
1257 PROCEDURE balance_types_om
1258 ( p_credit_check_rule_rec IN OE_CREDIT_CHECK_UTIL.oe_credit_rules_rec_type
1259 )
1260 IS
1261 BEGIN
1262 b1 := -1;
1263 b2 := -1;
1264 b3 := -1;
1265 b4 := -1;
1266 b5 := -1;
1267 b6 := -1;
1268 b7 := -1;
1269 b8 := -1;
1270 b9 := -1;
1271 b10 := -1;
1272 b11 := -1;
1273 b12 := -1;
1274 b13 := -1;
1275 b14 := -1;
1276 b15 := -1;
1277 b16 := -1;
1278 b17 := -1;
1279 b18 := -1;
1280 b21 := -1;
1281 b22 := -1;
1282
1283 ----added for the RETURNS
1284 b23 := -1;
1285 b24 := -1;
1286 b25 := -1;
1287 b26 := -1;
1288 b27 := -1;
1289 b28 := -1;
1290 b29 := -1;
1291 b30 := -1;
1292 b31 := -1;
1293 b32 := -1;
1294 b33 := -1;
1295 b34 := -1;
1296 b35 := -1;
1297 b36 := -1;
1298 --TaxER start
1299 b37 := -1;
1300 b38 := -1;
1301 b39 := -1;
1302 b40 := -1;
1303 b41 := -1;
1304 b42 := -1;
1305 b43 := -1;
1306 b44 := -1;
1307 b45 := -1;
1308 b46 := -1;
1309 b47 := -1;
1310 b48 := -1;
1311 --TaxER end
1312
1313
1314 -- Determine which balance types to select:
1315 -- Chosing a balance type is indicated by setting the corresponding
1316 -- variable to a balance type global constant
1317 -- (e.g. b4 := G_ORDER_HOLDS)
1318
1319 IF p_credit_check_rule_rec.uninvoiced_orders_flag = 'Y' THEN
1320 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE' THEN
1321 b3 := G_LINE_UNINVOICED_ORDERS;
1322
1323 -----added for the Returns project
1324 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1325 THEN
1326 b24 := G_LINE_RETURN_UNINV_ORDERS;
1327 END IF;
1328
1329 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N' THEN
1330 b11 := G_LINE_HOLDS;
1331
1332 -----added for the Returns project
1333 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1334 THEN
1335 b31 := G_LINE_RETURN_HOLDS;
1336 END IF;
1337
1338 END IF;
1339 ELSE
1340 b1 := G_HEADER_UNINVOICED_ORDERS;
1341
1342 -----added for the Returns project
1343 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1344 THEN
1345 b23 := G_HEAD_RETURN_UNINV_ORDERS;
1346 END IF;
1347
1348 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
1349 THEN
1350 b10 := G_ORDER_HOLDS;
1351
1352 -----added for the Returns project
1353 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1354 THEN
1355 b30 := G_ORDER_RETURN_HOLDS;
1356 END IF;
1357
1358 END IF;
1359 END IF;
1360 END IF;
1361 IF p_credit_check_rule_rec.include_tax_flag = 'Y'
1362 THEN
1363 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE'
1364 THEN
1365 b4 := G_LINE_UNINVOICED_ORDERS_TAX;
1366
1367 -----added for the Returns project
1368 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1369 THEN
1370 b26:= G_LINE_RETURN_UNINV_ORD_TAX;
1371 END IF;
1372
1373 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
1374 THEN
1375 b14 := G_LINE_TAX_HOLDS;
1376
1377 -----added for the Returns project
1378 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1379 THEN
1380 b33:= G_LINE_RETURN_TAX_HOLDS;
1381 END IF;
1382
1383 END IF;
1384 ELSE
1385 b2 := G_HEADER_UNINVOICED_ORDERS_TAX;
1386
1387 -----added for the Returns project
1388 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1389 THEN
1390 b25:= G_HEAD_RETURN_UNINV_ORD_TAX;
1391 END IF;
1392
1393 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
1394 THEN
1395 b13 := G_ORDER_TAX_HOLDS;
1396
1397 -----added for the Returns project
1398 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1399 THEN
1400 b32:= G_ORDER_RETURN_TAX_HOLDS;
1401 END IF;
1402
1403 END IF;
1404 END IF;
1405 END IF;
1406 IF p_credit_check_rule_rec.incl_freight_charges_flag = 'Y'
1407 THEN
1408 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE'
1409 THEN
1410 b5 := G_LINE_UNINVOICED_FREIGHT;
1411
1412 -----added for the Returns project
1413 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1414 THEN
1415 b28:= G_LINE_RETURN_UNINV_FREIGHT;
1416 END IF;
1417
1418 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
1419 THEN
1420 b16 := G_LINE_FREIGHT_HOLDS;
1421
1422 -----added for the Returns project
1423 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1424 THEN
1425 b35:= G_LINE_RETURN_FREIGHT_HOLDS;
1426 END IF;
1427
1428 END IF;
1429 ELSE
1430 b6 := G_HEADER_UNINVOICED_FREIGHT;
1431
1432 -----added for the Returns project
1433 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1434 THEN
1435 b27:= G_HEAD_RETURN_UNINV_FREIGHT;
1436 END IF;
1437
1438 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
1439 THEN
1440 b15 := G_ORDER_FREIGHT_HOLDS;
1441
1442 -----added for the Returns project
1443 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1444 THEN
1445 b34:= G_ORDER_RETURN_FREIGHT_HOLDS;
1446 END IF;
1447
1448 END IF;
1449 END IF;
1450 b7 := G_HEADER_AND_LINE_FREIGHT;
1451
1452 -----added for the Returns project
1453 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1454 THEN
1455 b29:= G_HEAD_LINE_RETURN_FREIGHT;
1456 END IF;
1457
1458 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
1459 THEN
1460 b17 := G_HEADER_LINE_FREIGHT_HOLDS;
1461
1462 -----added for the Returns project
1463 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1464 THEN
1465 b36:= G_H_L_RETURN_FREIGHT_HOLDS;
1466 END IF;
1467
1468 END IF;
1469
1470 --TaxER start
1471 IF p_credit_check_rule_rec.include_tax_flag = 'Y'
1472 THEN
1473 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE'
1474 THEN
1475 b38 := G_LINE_UNINVOICED_FREIGHT_T;
1476
1477 -----added for the Returns project
1478 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1479 THEN
1480 b44:= G_LINE_RETURN_UNINV_FREIGHT_T;
1481 END IF;
1482
1483 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
1484 THEN
1485 b41 := G_LINE_FREIGHT_HOLDS_T;
1486
1487 -----added for the Returns project
1488 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1489 THEN
1490 b47:= G_LINE_RETURN_FREIGHT_HOLDS_T;
1491 END IF;
1492
1493 END IF;
1494 ELSE
1495 b37 := G_HEADER_UNINVOICED_FREIGHT_T;
1496
1497 -----added for the Returns project
1498 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1499 THEN
1500 b43:= G_HEAD_RETURN_UNINV_FREIGHT_T;
1501 END IF;
1502
1503 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
1504 THEN
1505 b40 := G_ORDER_FREIGHT_HOLDS_T;
1506
1507 -----added for the Returns project
1508 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1509 THEN
1510 b46:= G_ORDER_RETURN_FREIGHT_HOLDS_T;
1511 END IF;
1512
1513 END IF;
1514 END IF;
1515
1516 b39 := G_HEADER_AND_LINE_FREIGHT_T;
1517
1518
1519 -----added for the Returns project
1520 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1521 THEN
1522 b45:= G_HEAD_LINE_RETURN_FREIGHT_T;
1523 END IF;
1524
1525 IF p_credit_check_rule_rec.orders_on_hold_flag = 'N'
1526 THEN
1527 b42 := G_HEADER_LINE_FREIGHT_HOLDS_T;
1528
1529 -----added for the Returns project
1530 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
1531 THEN
1532 b48:= G_H_L_RETURN_FREIGHT_HOLDS_T;
1533 END IF;
1534
1535 END IF;
1536 END IF;
1537 --TaxER end
1538 END IF;
1539
1540 -- Set value for external exposure
1541 IF p_credit_check_rule_rec.include_external_exposure_flag = 'Y'
1542 THEN
1543 b18 := G_EXTERNAL_EXPOSURE;
1544 END IF;
1545
1546 IF G_debug_flag = 'Y'
1547 THEN
1548 oe_debug_pub.add
1549 (b1 || ' ' || b2 || ' ' || b3 || ' ' || b4 || ' ' || b5 || ' ' || b6 || ' '
1550 || b7 || ' ' || b8 || ' ' || b9 || ' ' || b10 || ' ' || b11 || ' ' || b12 || ' '
1551 || b13 || ' ' || b14 || ' ' || b15 || ' ' || b16 || ' ' || b17 || ' ' || b18 || ' '
1552 || b23 || ' ' || b24 || ' ' || b25 || ' ' || b26 || ' ' || b27 || ' ' || b28|| ' '
1553 || b29 || ' ' || b30 || ' ' || b31 || ' ' || b32 || ' ' || b33 || ' ' || b34|| ' '
1554 || b35 || ' ' || b36 || ' ' || b37 ||' ' || b38 ||' ' || b39 ||' ' || b40 ||' ' || b41 ||' ' || b42 ||' ' || b43 ||
1555 ' ' || b44 ||' ' || b45 ||' ' || b46 ||' ' || b47 ||' ' || b48, 2 );
1556
1557 oe_debug_pub.add( ' Out from balance_types_om ' );
1558 END IF;
1559 END balance_types_om;
1560
1561 -----------------------------------------------------------
1562 -- This procedure will set the balance types for the
1563 -- AR exposure based on the credit check rules setup
1564 ----------------------------------------------------------
1565 PROCEDURE balance_types_ar
1566 ( p_credit_check_rule_rec IN OE_CREDIT_CHECK_UTIL.oe_credit_rules_rec_type
1567 )
1568 IS
1569 BEGIN
1570 b1 := -1;
1571 b2 := -1;
1572 b3 := -1;
1573 b4 := -1;
1574 b5 := -1;
1575 b6 := -1;
1576 b7 := -1;
1577 b8 := -1;
1578 b9 := -1;
1579 b10 := -1;
1580 b11 := -1;
1581 b12 := -1;
1582 b13 := -1;
1583 b14 := -1;
1584 b15 := -1;
1585 b16 := -1;
1586 b17 := -1;
1587 b18 := -1;
1588 b21 := -1 ;
1589 b22 := -1;
1590
1591 ----added for the RETURNS
1592 b23 := -1;
1593 b24 := -1;
1594 b25 := -1;
1595 b26 := -1;
1596 b27 := -1;
1597 b28 := -1;
1598 b29 := -1;
1599 b30 := -1;
1600 b31 := -1;
1601 b32 := -1;
1602 b33 := -1;
1603 b34 := -1;
1604 b35 := -1;
1605 b36 := -1;
1606
1607 IF p_credit_check_rule_rec.include_payments_at_risk_flag = 'Y' THEN
1608 b9 := G_PAYMENTS_AT_RISK;
1609
1610 IF p_credit_check_rule_rec.open_ar_days is NULL
1611 THEN
1612 b22 := G_BR_PAYMENTS_AT_RISK ;
1613 END IF;
1614
1615 END IF;
1616 IF p_credit_check_rule_rec.open_ar_balance_flag = 'Y' THEN
1617 b8 := G_INVOICES;
1618
1619 IF p_credit_check_rule_rec.open_ar_days is NULL
1620 THEN
1621 b21 := G_BR_INVOICES ;
1622 END IF;
1623 END IF;
1624
1625
1626 IF G_debug_flag = 'Y'
1627 THEN
1628 oe_debug_pub.add
1629 (b1 || ' ' || b2 || ' ' || b3 || ' ' || b4 || ' ' || b5 || ' ' || b6 || ' '
1630 || b7 || ' ' || b8 || ' ' || b9 || ' ' || b10 || ' ' || b11 || ' ' || b12 || ' '
1631 || b13 || ' ' || b14 || ' ' || b15 || ' ' || b16 || ' ' || b17 || ' ' || b18 || ' ' || b21 || ' ' ||b22,2 );
1632
1633 oe_debug_pub.add( ' Out from balance_types_ar ');
1634 END IF;
1635
1636 END balance_types_ar;
1637
1638
1639 ------------------------------------------------------------------
1640 -- COMMENTS: This procedure will calculate all the
1641 -- buckets that are required to be summed
1642 -- to arive at the exposure balance
1643 -- The driving date for the calculate buckets
1644 -- will be the Horizon date ( both OM and AR )
1645 -- as the Main starting Bucket will be the largest
1646 -- bucket that includes this Horizon date
1647 -- Once the Main Bucket is calculated, all the
1648 -- Buckets to the LEFT of the Main Bucket is
1649 -- SUMMED UP.
1650 -- Now inside the Main Bucket, the remaining Buckets
1651 -- constitute the Fractional Amount and this
1652 -- procedure wil identify those Buckets as well.
1653
1654 -- p_interval parameter is used to identify the cases
1655 -- where the credit check rule was not setup to use
1656 -- horizon days.
1657 -- In such cases, the exposure can be recovered by
1658 -- SUMMING overal exposure for all the largest
1659 -- buckets , as we need to use all the data
1660 -----------------------------------------------------------------
1661 PROCEDURE calculate_buckets
1662 ( p_date IN NUMBER
1663 , p_interval IN NUMBER
1664 , x_main_bucket OUT NOCOPY NUMBER
1665 , x_binary_tbl OUT NOCOPY oe_credit_exposure_pvt.Binary_tbl_type
1666 )
1667 IS
1668 l_date NUMBER;
1669 l_level NUMBER;
1670 l_bucket_length NUMBER;
1671 l_bucket NUMBER;
1672 l_main_bucket_length NUMBER;
1673 i BINARY_INTEGER;
1674 BEGIN
1675 l_date := p_date;
1676
1677 IF G_debug_flag = 'Y'
1678 THEN
1679 oe_debug_pub.add( 'Into calculate_buckets ');
1680 oe_debug_pub.add( 'p_date =>'|| p_date );
1681 oe_debug_pub.add( 'p_interval =>' || p_interval );
1682 END IF;
1683
1684 -- the Main Bucket
1685 l_level := G_MAX_BUCKET_LEVEL;
1686 l_bucket_length := POWER( 2, l_level );
1687 l_bucket := l_date - MOD( l_date, l_bucket_length );
1688
1689 l_main_bucket_length := l_bucket_length;
1690 x_main_bucket := l_bucket;
1691
1692 IF G_debug_flag = 'Y'
1693 THEN
1694 oe_debug_pub.add( 'l_date ==> '|| l_date);
1695 oe_debug_pub.add( 'l_bucket_length ==> '|| l_bucket_length );
1696 oe_debug_pub.add( 'Main Bucket ==> '|| x_main_bucket ,1);
1697 END IF;
1698
1699 IF p_interval is NOT NULL
1700 THEN
1701 -- The Buckets need to be identified as the Horizon interval
1702 -- is included.
1703 BEGIN
1704 -- the fractional amount of the Main Bucket
1705 -- Start from the Main Bucket and navigate to
1706 -- the right of the bucket
1707 -- by decreasing the level for each iteration and thereby
1708 -- reducing the bucket lengths as well as the bucket lengths as
1709 -- well. Include the buckets where the buckets comprise
1710 -- data for the dates <= than the horizon date and continue from
1711 -- there
1712
1713 WHILE l_bucket - 1 <> l_date
1714 LOOP
1715 IF l_bucket + l_bucket_length - 1 <= l_date
1716 THEN
1717 -- include Bucket
1718
1719 x_binary_tbl( l_level ).bucket := l_bucket;
1720 x_binary_tbl( l_level ).bucket_length := l_bucket_length;
1721
1722 l_bucket := l_bucket + l_bucket_length;
1723
1724 END IF;
1725
1726 l_level := l_level - 1;
1727 l_bucket_length := l_bucket_length / 2;
1728
1729 END LOOP;
1730
1731 IF G_debug_flag = 'Y'
1732 THEN
1733 oe_debug_pub.add( 'Out of the Main LOOP');
1734 oe_debug_pub.add( '-------------------------------------- ');
1735 oe_debug_pub.add( 'selected buckets: ' );
1736 END IF;
1737
1738 i := x_binary_tbl.FIRST;
1739 WHILE i IS NOT NULL LOOP
1740
1741 IF G_debug_flag = 'Y'
1742 THEN
1743 oe_debug_pub.add
1744 ( 'Bucket Number: ' || x_binary_tbl(i).bucket || ', '
1745 || 'Bucket Length:' || x_binary_tbl(i).bucket_length, 2 );
1746 END IF;
1747
1748 i := x_binary_tbl.NEXT(i);
1749 END LOOP;
1750
1751 oe_debug_pub.add( '-------------------------------------- ');
1752
1753 END;
1754 ELSE
1755 oe_debug_pub.add( 'No need to calculate Buckets, no Horizon ');
1756 END IF;
1757
1758 IF G_debug_flag = 'Y'
1759 THEN
1760 oe_debug_pub.add( 'Out calculate_buckets ');
1761 END IF;
1762
1763
1764 END calculate_buckets;
1765
1766
1767
1768 -----------------------------------------------------------------
1769 --- API to convert the amount using GL currency API
1770 -- with Traingulation
1771 ----------------------------------------------------------------
1772 FUNCTION convert_currency_amount
1773 ( p_amount IN NUMBER
1774 , p_transactional_currency IN VARCHAR2
1775 , p_limit_currency IN VARCHAR2
1776 )
1777 RETURN NUMBER
1778 IS
1779 l_term NUMBER;
1780 BEGIN
1781 BEGIN
1782 l_term :=
1783 OE_CREDIT_CHECK_UTIL.convert_currency_amount
1784 ( p_amount => p_amount
1785 , p_transactional_currency => p_transactional_currency
1786 , p_limit_currency => p_limit_currency
1787 , p_functional_currency => g_functional_currency
1788 , p_conversion_date => SYSDATE
1789 , p_conversion_type => g_conversion_type
1790 );
1791 EXCEPTION
1792 WHEN GL_CURRENCY_API.NO_RATE OR
1793 GL_CURRENCY_API.INVALID_CURRENCY
1794 THEN
1795 oe_debug_pub.add( 'conversion exception for '
1796 || p_transactional_currency, 1 );
1797 add_error_currency( g_error_curr_tbl, p_transactional_currency );
1798 END;
1799
1800 RETURN NVL( l_term, 0 );
1801
1802 END convert_currency_amount;
1803
1804 ----------------------------------------------------------
1805 ---- COMMENTS: Fucntion to select the overall exposure from the
1806 -- OE_CREDIT_SUMMARIES table for the balance types
1807 -- This function will be called from the main
1808 -- GET_EXPOSURE procedure both for AR and OM exposure
1809 -- as the exposure balance is governed by the
1810 -- balance types used
1811 --------------------------------------------------------------
1812 FUNCTION retrieve_exposure
1813 ( p_binary_tbl IN oe_credit_exposure_pvt.Binary_tbl_type
1814 , p_site_use_id IN NUMBER
1815 , p_customer_id IN NUMBER
1816 , p_party_id IN NUMBER
1817 , p_org_id IN NUMBER
1818 , p_include_all_flag IN VARCHAR2
1819 , p_usage_curr_tbl IN OE_CREDIT_CHECK_UTIL.curr_tbl_type
1820 , p_limit_curr_code IN HZ_CREDIT_PROFILE_AMTS.currency_code%TYPE
1821 , p_main_bucket IN NUMBER
1822 , p_global_exposure_flag IN VARCHAR2
1823 , p_credit_check_rule_rec IN
1824 OE_CREDIT_CHECK_UTIL.oe_credit_rules_rec_type
1825 , x_error_curr_tbl IN OUT NOCOPY OE_CREDIT_CHECK_UTIL.curr_tbl_type
1826 )
1827 RETURN NUMBER
1828 IS
1829 i BINARY_INTEGER;
1830 l_site_use_id NUMBER;
1831 l_br_site_use_id NUMBER;
1832 l_currency_code HZ_CREDIT_PROFILE_AMTS.currency_code%TYPE;
1833
1834 l_balance NUMBER := 0 ;
1835 l_br_balance NUMBER := 0 ;
1836 l_term NUMBER := 0 ;
1837 l_total NUMBER := 0 ;
1838
1839 l_bucket NUMBER;
1840 l_bucket_length NUMBER;
1841 j NUMBER;
1842
1843 l_br_bucket NUMBER;
1844 l_br_bucket_length NUMBER;
1845
1846 CURSOR site_balance_csr IS
1847 SELECT SUM( balance )
1848 FROM oe_credit_summaries
1849 WHERE balance_type IN
1850 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
1851 b10, b11, b12, b13, b14, b15, b16, b17, b18,b37,b38,b39,b40,b41,b42) --TaxER
1852 AND site_use_id = l_site_use_id
1853 AND currency_code = l_currency_code
1854 AND bucket = l_bucket
1855 AND bucket_duration = l_bucket_length
1856 ;
1857
1858 ---added for the Returns project
1859 ---the same as above including Returns
1860 CURSOR site_balance_ret_csr IS
1861 SELECT NVL(SUM( balance ),0)
1862 FROM oe_credit_summaries
1863 WHERE balance_type IN
1864 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
1865 b10, b11, b12, b13, b14, b15, b16, b17, b18, b23, b24,
1866 b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
1867 AND site_use_id = l_site_use_id
1868 AND currency_code = l_currency_code
1869 AND bucket = l_bucket
1870 AND bucket_duration = l_bucket_length;
1871
1872
1873 CURSOR site_balance_stub_csr IS
1874 SELECT SUM( balance )
1875 FROM oe_credit_summaries
1876 WHERE balance_type IN
1877 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
1878 b10, b11, b12, b13, b14, b15, b16, b17, b18,b37,b38,b39,b40,b41,b42) --TaxER
1879 AND site_use_id = l_site_use_id
1880 AND currency_code = l_currency_code
1881 AND bucket < l_bucket
1882 AND bucket_duration = l_bucket_length
1883 ;
1884
1885 ---added for the Returns project
1886 ---the same as above including Returns
1887 CURSOR site_balance_stub_ret_csr IS
1888 SELECT SUM( balance )
1889 FROM oe_credit_summaries
1890 WHERE balance_type IN
1891 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
1892 b10, b11, b12, b13, b14, b15, b16, b17, b18, b23, b24,
1893 b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
1894 AND site_use_id = l_site_use_id
1895 AND currency_code = l_currency_code
1896 AND bucket < l_bucket
1897 AND bucket_duration = l_bucket_length;
1898
1899
1900 CURSOR site_br_stub_csr IS
1901 SELECT SUM( balance )
1902 FROM oe_credit_summaries
1903 WHERE balance_type IN
1904 (21,22)
1905 AND site_use_id = l_br_site_use_id
1906 AND currency_code = l_currency_code
1907 AND bucket < l_br_bucket
1908 AND bucket_duration = l_br_bucket_length
1909 ;
1910
1911
1912 CURSOR customer_balance_csr IS
1913 SELECT SUM( balance )
1914 FROM oe_credit_summaries
1915 WHERE balance_type IN
1916 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
1917 b10, b11, b12, b13, b14, b15, b16, b17, b18, b21,b22,b37,b38,b39,b40,b41,b42) --TaxER
1918 AND cust_account_id = p_customer_id
1919 AND ((org_id = p_org_id)
1920 OR
1921 (org_id IS NULL AND p_org_id IS NULL))
1922 AND currency_code = l_currency_code
1923 AND bucket = l_bucket
1924 AND bucket_duration = l_bucket_length
1925 ;
1926
1927 ---added for the Returns project
1928 ---the same as above including Returns
1929 CURSOR customer_balance_ret_csr IS
1930 SELECT SUM( balance )
1931 FROM oe_credit_summaries
1932 WHERE balance_type IN
1933 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
1934 b10, b11, b12, b13, b14, b15, b16, b17, b18, b21,b22, b23, b24,
1935 b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
1936 AND cust_account_id = p_customer_id
1937 AND ((org_id = p_org_id)
1938 OR
1939 (org_id IS NULL AND p_org_id IS NULL))
1940 AND currency_code = l_currency_code
1941 AND bucket = l_bucket
1942 AND bucket_duration = l_bucket_length;
1943
1944
1945 CURSOR customer_balance_stub_csr IS
1946 SELECT SUM( balance )
1947 FROM oe_credit_summaries
1948 WHERE balance_type IN
1949 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
1950 b10, b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
1951 AND cust_account_id = p_customer_id
1952 AND ((org_id = p_org_id)
1953 OR
1954 (org_id IS NULL AND p_org_id IS NULL))
1955 AND currency_code = l_currency_code
1956 AND bucket < l_bucket
1957 AND bucket_duration = l_bucket_length
1958 ;
1959
1960 ---added for the Returns project
1961 ---the same as above including Returns
1962 CURSOR customer_balance_stub_ret_csr IS
1963 SELECT SUM( balance )
1964 FROM oe_credit_summaries
1965 WHERE balance_type IN
1966 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
1967 b10, b11, b12, b13, b14, b15, b16, b17, b18, b21, b22, b23, b24,
1968 b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
1969 AND cust_account_id = p_customer_id
1970 AND ((org_id = p_org_id)
1971 OR
1972 (org_id IS NULL AND p_org_id IS NULL))
1973 AND currency_code = l_currency_code
1974 AND bucket < l_bucket
1975 AND bucket_duration = l_bucket_length
1976 ;
1977
1978
1979 CURSOR customer_br_stub_csr IS
1980 SELECT SUM( balance )
1981 FROM oe_credit_summaries
1982 WHERE balance_type IN
1983 (21,22)
1984 AND cust_account_id = p_customer_id
1985 AND ((org_id = p_org_id)
1986 OR
1987 (org_id IS NULL AND p_org_id IS NULL))
1988 AND currency_code = l_currency_code
1989 AND bucket < l_br_bucket
1990 AND bucket_duration = l_br_bucket_length
1991 ;
1992
1993
1994 CURSOR cust_balance_csr_global IS
1995 SELECT SUM( balance )
1996 FROM oe_credit_summaries
1997 WHERE balance_type IN
1998 (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10,
1999 b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
2000 AND cust_account_id = p_customer_id
2001 AND currency_code = l_currency_code
2002 AND bucket = l_bucket
2003 AND bucket_duration = l_bucket_length
2004 ;
2005
2006 ---added for the Returns project
2007 ---the same as above including Returns
2008
2009 CURSOR cust_balance_ret_csr_global IS
2010 SELECT SUM( balance )
2011 FROM oe_credit_summaries
2012 WHERE balance_type IN
2013 (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10,
2014 b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,
2015 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2016 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2017 AND cust_account_id = p_customer_id
2018 AND currency_code = l_currency_code
2019 AND bucket = l_bucket
2020 AND bucket_duration = l_bucket_length
2021 ;
2022
2023 CURSOR cust_balance_stub_csr_global IS
2024 SELECT SUM( balance )
2025 FROM oe_credit_summaries
2026 WHERE balance_type IN
2027 (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10,
2028 b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
2029 AND cust_account_id = p_customer_id
2030 AND currency_code = l_currency_code
2031 AND bucket < l_bucket
2032 AND bucket_duration = l_bucket_length
2033 ;
2034
2035 ---added for the Returns project
2036 ---the same as above including Returns
2037 CURSOR cust_bal_stub_ret_csr_global IS
2038 SELECT SUM( balance )
2039 FROM oe_credit_summaries
2040 WHERE balance_type IN
2041 (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10,
2042 b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,
2043 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2044 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2045 AND cust_account_id = p_customer_id
2046 AND currency_code = l_currency_code
2047 AND bucket < l_bucket
2048 AND bucket_duration = l_bucket_length
2049 ;
2050
2051 CURSOR cust_br_stub_csr_global IS
2052 SELECT SUM( balance )
2053 FROM oe_credit_summaries
2054 WHERE balance_type IN
2055 (21,22)
2056 AND cust_account_id = p_customer_id
2057 AND currency_code = l_currency_code
2058 AND bucket < l_br_bucket
2059 AND bucket_duration = l_br_bucket_length
2060 ;
2061
2062
2063 --------------------------------------------------------------
2064
2065 CURSOR party_balance_csr_global IS
2066 SELECT SUM( balance )
2067 FROM oe_credit_summaries
2068 WHERE balance_type IN
2069 (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10,
2070 b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
2071 AND party_id = p_party_id
2072 AND currency_code = l_currency_code
2073 AND bucket = l_bucket
2074 AND bucket_duration = l_bucket_length
2075 ;
2076
2077 ---added for the Returns project
2078 ---the same as above including Returns
2079
2080 CURSOR party_balance_ret_csr_global IS
2081 SELECT SUM( balance )
2082 FROM oe_credit_summaries
2083 WHERE balance_type IN
2084 (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10,
2085 b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,
2086 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2087 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2088 AND party_id = p_party_id
2089 AND currency_code = l_currency_code
2090 AND bucket = l_bucket
2091 AND bucket_duration = l_bucket_length
2092 ;
2093
2094
2095 CURSOR party_balance_stub_csr_global IS
2096 SELECT SUM( balance )
2097 FROM oe_credit_summaries
2098 WHERE balance_type IN
2099 (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10,
2100 b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
2101 AND party_id = p_party_id
2102 AND currency_code = l_currency_code
2103 AND bucket < l_bucket
2104 AND bucket_duration = l_bucket_length
2105 ;
2106
2107 ---added for the Returns project
2108 ---the same as above including Returns
2109 CURSOR party_bal_stub_ret_csr_global IS
2110 SELECT SUM( balance )
2111 FROM oe_credit_summaries
2112 WHERE balance_type IN
2113 (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10,
2114 b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,
2115 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2116 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2117 AND party_id = p_party_id
2118 AND currency_code = l_currency_code
2119 AND bucket < l_bucket
2120 AND bucket_duration = l_bucket_length
2121 ;
2122
2123 CURSOR party_br_stub_csr_global IS
2124 SELECT SUM( balance )
2125 FROM oe_credit_summaries
2126 WHERE balance_type IN
2127 (21,22)
2128 AND party_id = p_party_id
2129 AND currency_code = l_currency_code
2130 AND bucket < l_br_bucket
2131 AND bucket_duration = l_br_bucket_length
2132 ;
2133
2134
2135 -------------------------------------------------------------
2136 CURSOR party_h_balance_csr_global IS
2137 SELECT SUM( oes.balance )
2138 FROM oe_credit_summaries oes
2139 , hz_hierarchy_nodes hn
2140 WHERE oes.balance_type IN
2141 (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10,
2142 b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
2143 AND hn.parent_id = p_party_id
2144 AND hn.parent_object_type = 'ORGANIZATION'
2145 and hn.parent_table_name = 'HZ_PARTIES'
2146 and hn.child_object_type = 'ORGANIZATION'
2147 and hn.effective_start_date <= sysdate
2148 and hn.effective_end_date >= SYSDATE
2149 and hn.hierarchy_type
2150 = OE_CREDIT_CHECK_UTIL.G_hierarchy_type
2151 AND oes.party_id = hn.child_id
2152 AND oes.currency_code = l_currency_code
2153 AND oes.bucket = l_bucket
2154 AND oes.bucket_duration = l_bucket_length
2155 ;
2156
2157
2158 ---added for the Returns project
2159 ---the same as above including Returns
2160 CURSOR party_h_bal_ret_csr_global IS
2161 SELECT SUM( oes.balance )
2162 FROM oe_credit_summaries oes
2163 , hz_hierarchy_nodes hn
2164 WHERE oes.balance_type IN
2165 (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10,
2166 b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,
2167 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2168 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2169 AND hn.parent_id = p_party_id
2170 AND hn.parent_object_type = 'ORGANIZATION'
2171 and hn.parent_table_name = 'HZ_PARTIES'
2172 and hn.child_object_type = 'ORGANIZATION'
2173 and hn.effective_start_date <= sysdate
2174 and hn.effective_end_date >= SYSDATE
2175 and hn.hierarchy_type
2176 = OE_CREDIT_CHECK_UTIL.G_hierarchy_type
2177 AND oes.party_id = hn.child_id
2178 AND oes.currency_code = l_currency_code
2179 AND oes.bucket = l_bucket
2180 AND oes.bucket_duration = l_bucket_length
2181 ;
2182
2183
2184 CURSOR party_h_bal_stub_csr_gl IS
2185 SELECT SUM( oes.balance )
2186 FROM oe_credit_summaries oes
2187 , hz_hierarchy_nodes hn
2188 WHERE oes.balance_type IN
2189 (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10,
2190 b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
2191 AND hn.parent_id = p_party_id
2192 AND hn.parent_object_type = 'ORGANIZATION'
2193 and hn.parent_table_name = 'HZ_PARTIES'
2194 and hn.child_object_type = 'ORGANIZATION'
2195 and hn.effective_start_date <= sysdate
2196 and hn.effective_end_date >= SYSDATE
2197 and hn.hierarchy_type
2198 = OE_CREDIT_CHECK_UTIL.G_hierarchy_type
2199 AND oes.party_id = hn.child_id
2200 AND oes.currency_code = l_currency_code
2201 AND oes.bucket < l_bucket
2202 AND oes.bucket_duration = l_bucket_length
2203 ;
2204
2205 ---added for the Returns project
2206 ---the same as above including Returns
2207 CURSOR party_h_bal_ret_stub_csr_gl IS
2208 SELECT SUM( oes.balance )
2209 FROM oe_credit_summaries oes
2210 , hz_hierarchy_nodes hn
2211 WHERE oes.balance_type IN
2212 (b1, b2, b3, b4, b5, b6, b7, b8, b9, b10,
2213 b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,
2214 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2215 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2216 AND hn.parent_id = p_party_id
2217 AND hn.parent_object_type = 'ORGANIZATION'
2218 and hn.parent_table_name = 'HZ_PARTIES'
2219 and hn.child_object_type = 'ORGANIZATION'
2220 and hn.effective_start_date <= sysdate
2221 and hn.effective_end_date >= SYSDATE
2222 and hn.hierarchy_type
2223 = OE_CREDIT_CHECK_UTIL.G_hierarchy_type
2224 AND oes.party_id = hn.child_id
2225 AND oes.currency_code = l_currency_code
2226 AND oes.bucket < l_bucket
2227 AND oes.bucket_duration = l_bucket_length
2228 ;
2229
2230
2231 CURSOR party_br_h_stub_csr_gl IS
2232 SELECT SUM( oes.balance )
2233 FROM oe_credit_summaries oes
2234 , hz_hierarchy_nodes hn
2235 WHERE oes.balance_type IN
2236 (21,22)
2237 AND hn.parent_id = p_party_id
2238 AND hn.parent_object_type = 'ORGANIZATION'
2239 and hn.parent_table_name = 'HZ_PARTIES'
2240 and hn.child_object_type = 'ORGANIZATION'
2241 and hn.effective_start_date <= sysdate
2242 and hn.effective_end_date >= SYSDATE
2243 and hn.hierarchy_type
2244 = OE_CREDIT_CHECK_UTIL.G_hierarchy_type
2245 AND oes.party_id = hn.child_id
2246 AND oes.currency_code = l_currency_code
2247 AND oes.bucket < l_br_bucket
2248 AND oes.bucket_duration = l_br_bucket_length
2249 ;
2250
2251 -------------------------------------------------------------
2252
2253
2254 CURSOR site_balance_all_curr_csr IS
2255 SELECT SUM( balance )
2256 , currency_code
2257 FROM oe_credit_summaries
2258 WHERE balance_type IN
2259 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2260 b10, b11, b12, b13, b14, b15, b16, b17, b18,b37,b38,b39,b40,b41,b42) --TaxER
2261 AND site_use_id = l_site_use_id
2262 AND bucket = l_bucket
2263 AND bucket_duration = l_bucket_length
2264 GROUP BY currency_code
2265 ;
2266
2267 ---added for the Returns project
2268 ---the same as above including Returns
2269
2270 CURSOR site_bal_all_curr_ret_csr IS
2271 SELECT SUM( balance )
2272 , currency_code
2273 FROM oe_credit_summaries
2274 WHERE balance_type IN
2275 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2276 b10, b11, b12, b13, b14, b15, b16, b17, b18,
2277 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2278 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2279 AND site_use_id = l_site_use_id
2280 AND bucket = l_bucket
2281 AND bucket_duration = l_bucket_length
2282 GROUP BY currency_code
2283 ;
2284
2285
2286 CURSOR site_balance_all_curr_stub_csr IS
2287 SELECT SUM( balance )
2288 , currency_code
2289 FROM oe_credit_summaries
2290 WHERE balance_type IN
2291 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2292 b10, b11, b12, b13, b14, b15, b16, b17, b18,b37,b38,b39,b40,b41,b42) --TaxER
2293 AND site_use_id = l_site_use_id
2294 AND bucket < l_bucket
2295 AND bucket_duration = l_bucket_length
2296 GROUP BY currency_code
2297 ;
2298
2299 ---added for the Returns project
2300 ---the same as above including Returns
2301 CURSOR site_bal_all_curr_stub_ret_csr IS
2302 SELECT SUM( balance )
2303 , currency_code
2304 FROM oe_credit_summaries
2305 WHERE balance_type IN
2306 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2307 b10, b11, b12, b13, b14, b15, b16, b17, b18,
2308 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2309 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2310 AND site_use_id = l_site_use_id
2311 AND bucket < l_bucket
2312 AND bucket_duration = l_bucket_length
2313 GROUP BY currency_code
2314 ;
2315
2316 CURSOR site_br_all_curr_stub_csr IS
2317 SELECT SUM( balance )
2318 , currency_code
2319 FROM oe_credit_summaries
2320 WHERE balance_type IN
2321 (21,22)
2322 AND site_use_id = l_br_site_use_id
2323 AND bucket < l_br_bucket
2324 AND bucket_duration = l_br_bucket_length
2325 GROUP BY currency_code
2326 ;
2327
2328
2329 CURSOR customer_balance_all_curr_csr IS
2330 SELECT SUM( balance )
2331 , currency_code
2332 FROM oe_credit_summaries
2333 WHERE balance_type IN
2334 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2335 b10, b11, b12, b13, b14, b15, b16, b17, b18, b21, b22 ,b37,b38,b39,b40,b41,b42) --TaxER
2336 AND cust_account_id = p_customer_id
2337 AND ((org_id = p_org_id)
2338 OR
2339 (org_id IS NULL AND p_org_id IS NULL))
2340 AND bucket = l_bucket
2341 AND bucket_duration = l_bucket_length
2342 GROUP BY currency_code
2343 ;
2344
2345 ---added for the Returns project
2346 ---the same as above including Returns
2347 CURSOR customer_bal_all_curr_ret_csr IS
2348 SELECT SUM( balance )
2349 , currency_code
2350 FROM oe_credit_summaries
2351 WHERE balance_type IN
2352 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2353 b10, b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,
2354 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2355 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2356 AND cust_account_id = p_customer_id
2357 AND ((org_id = p_org_id)
2358 OR
2359 (org_id IS NULL AND p_org_id IS NULL))
2360 AND bucket = l_bucket
2361 AND bucket_duration = l_bucket_length
2362 GROUP BY currency_code
2363 ;
2364
2365 CURSOR customer_all_curr_stub_csr IS
2366 SELECT SUM( balance )
2367 , currency_code
2368 FROM oe_credit_summaries
2369 WHERE balance_type IN
2370 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2371 b10, b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
2372 AND cust_account_id = p_customer_id
2373 AND ((org_id = p_org_id)
2374 OR
2375 (org_id IS NULL AND p_org_id IS NULL))
2376 AND bucket < l_bucket
2377 AND bucket_duration = l_bucket_length
2378 GROUP BY currency_code
2379 ;
2380
2381 ---added for the Returns project
2382 ---the same as above including Returns
2383 CURSOR customer_all_curr_stub_ret_csr IS
2384 SELECT SUM( balance )
2385 , currency_code
2386 FROM oe_credit_summaries
2387 WHERE balance_type IN
2388 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2389 b10, b11, b12, b13, b14, b15, b16, b17, b18, b21, b22,
2390 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2391 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2392 AND cust_account_id = p_customer_id
2393 AND ((org_id = p_org_id)
2394 OR
2395 (org_id IS NULL AND p_org_id IS NULL))
2396 AND bucket < l_bucket
2397 AND bucket_duration = l_bucket_length
2398 GROUP BY currency_code
2399 ;
2400
2401 CURSOR customer_br_all_curr_stub_csr IS
2402 SELECT SUM( balance )
2403 , currency_code
2404 FROM oe_credit_summaries
2405 WHERE balance_type IN
2406 (21,22)
2407 AND cust_account_id = p_customer_id
2408 AND ((org_id = p_org_id)
2409 OR
2410 (org_id IS NULL AND p_org_id IS NULL))
2411 AND bucket < l_br_bucket
2412 AND bucket_duration = l_br_bucket_length
2413 GROUP BY currency_code
2414 ;
2415
2416
2417 CURSOR cust_all_curr_csr_global IS
2418 SELECT SUM( balance )
2419 , currency_code
2420 FROM oe_credit_summaries
2421 WHERE balance_type IN
2422 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2423 b10, b11, b12, b13, b14, b15, b16, b17, b18 , b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
2424 AND cust_account_id = p_customer_id
2425 AND bucket = l_bucket
2426 AND bucket_duration = l_bucket_length
2427 GROUP BY currency_code
2428 ;
2429
2430 ---added for the Returns project
2431 ---the same as above including Returns
2432 CURSOR cust_all_curr_ret_csr_global IS
2433 SELECT SUM( balance )
2434 , currency_code
2435 FROM oe_credit_summaries
2436 WHERE balance_type IN
2437 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2438 b10, b11, b12, b13, b14, b15, b16, b17, b18 , b21, b22,
2439 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2440 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2441 AND cust_account_id = p_customer_id
2442 AND bucket = l_bucket
2443 AND bucket_duration = l_bucket_length
2444 GROUP BY currency_code
2445 ;
2446
2447
2448 CURSOR cust_all_curr_stub_csr_global IS
2449 SELECT SUM( balance )
2450 , currency_code
2451 FROM oe_credit_summaries
2452 WHERE balance_type IN
2453 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2454 b10, b11, b12, b13, b14, b15, b16, b17, b18 , b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
2455 AND cust_account_id = p_customer_id
2456 AND bucket < l_bucket
2457 AND bucket_duration = l_bucket_length
2458 GROUP BY currency_code
2459 ;
2460
2461 ---added for the Returns project
2462 ---the same as above including Returns
2463 CURSOR cust_all_curr_stub_ret_csr_gl IS
2464 SELECT SUM( balance )
2465 , currency_code
2466 FROM oe_credit_summaries
2467 WHERE balance_type IN
2468 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2469 b10, b11, b12, b13, b14, b15, b16, b17, b18 , b21, b22,
2470 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2471 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2472 AND cust_account_id = p_customer_id
2473 AND bucket < l_bucket
2474 AND bucket_duration = l_bucket_length
2475 GROUP BY currency_code
2476 ;
2477
2478 CURSOR cust_br_all_curr_stub_csr_gl IS
2479 SELECT SUM( balance )
2480 , currency_code
2481 FROM oe_credit_summaries
2482 WHERE balance_type IN
2483 (21,22)
2484 AND cust_account_id = p_customer_id
2485 AND bucket < l_br_bucket
2486 AND bucket_duration = l_br_bucket_length
2487 GROUP BY currency_code
2488 ;
2489
2490
2491 ----------------------------------------------------------
2492
2493 CURSOR party_all_curr_csr_global IS
2494 SELECT SUM( balance )
2495 , currency_code
2496 FROM oe_credit_summaries
2497 WHERE balance_type IN
2498 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2499 b10, b11, b12, b13, b14, b15, b16, b17, b18 , b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
2500 AND party_id = p_party_id
2501 AND bucket = l_bucket
2502 AND bucket_duration = l_bucket_length
2503 GROUP BY currency_code
2504 ;
2505
2506 ---added for the Returns project
2507 ---the same as above including Returns
2508 CURSOR party_all_curr_ret_csr_gl IS
2509 SELECT SUM( balance )
2510 , currency_code
2511 FROM oe_credit_summaries
2512 WHERE balance_type IN
2513 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2514 b10, b11, b12, b13, b14, b15, b16, b17, b18 , b21, b22,
2515 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2516 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2517 AND party_id = p_party_id
2518 AND bucket = l_bucket
2519 AND bucket_duration = l_bucket_length
2520 GROUP BY currency_code
2521 ;
2522
2523 CURSOR party_all_curr_stub_csr_global IS
2524 SELECT SUM( balance )
2525 , currency_code
2526 FROM oe_credit_summaries
2527 WHERE balance_type IN
2528 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2529 b10, b11, b12, b13, b14, b15, b16, b17, b18 , b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
2530 AND party_id = p_party_id
2531 AND bucket < l_bucket
2532 AND bucket_duration = l_bucket_length
2533 GROUP BY currency_code
2534 ;
2535
2536 ---added for the Returns project
2537 ---the same as above including Returns
2538 CURSOR party_all_curr_stub_ret_csr_gl IS
2539 SELECT SUM( balance )
2540 , currency_code
2541 FROM oe_credit_summaries
2542 WHERE balance_type IN
2543 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2544 b10, b11, b12, b13, b14, b15, b16, b17, b18 , b21, b22,
2545 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2546 b32, b33, b34, b35, b36)
2547 AND party_id = p_party_id
2548 AND bucket < l_bucket
2549 AND bucket_duration = l_bucket_length
2550 GROUP BY currency_code
2551 ;
2552
2553 CURSOR party_br_all_curr_stub_csr_gl IS
2554 SELECT SUM( balance )
2555 , currency_code
2556 FROM oe_credit_summaries
2557 WHERE balance_type IN
2558 (21,22)
2559 AND party_id = p_party_id
2560 AND bucket < l_br_bucket
2561 AND bucket_duration = l_br_bucket_length
2562 GROUP BY currency_code
2563 ;
2564
2565
2566 ---------------------------------------------------
2567
2568 CURSOR party_h_all_curr_csr_global IS
2569 SELECT SUM( oes.balance )
2570 , oes.currency_code
2571 FROM oe_credit_summaries oes
2572 , hz_hierarchy_nodes hn
2573 WHERE oes.balance_type IN
2574 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2575 b10, b11, b12, b13, b14, b15, b16, b17, b18 , b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
2576 AND hn.parent_id = p_party_id
2577 AND hn.parent_object_type = 'ORGANIZATION'
2578 and hn.parent_table_name = 'HZ_PARTIES'
2579 and hn.child_object_type = 'ORGANIZATION'
2580 and hn.effective_start_date <= sysdate
2581 and hn.effective_end_date >= SYSDATE
2582 and hn.hierarchy_type
2583 = OE_CREDIT_CHECK_UTIL.G_hierarchy_type
2584 AND oes.party_id = hn.child_id
2585 AND oes.bucket = l_bucket
2586 AND oes.bucket_duration = l_bucket_length
2587 GROUP BY oes.currency_code
2588 ;
2589
2590 ---added for the Returns project
2591 ---the same as above including Returns
2592 CURSOR party_h_all_curr_ret_csr_gl IS
2593 SELECT SUM( oes.balance )
2594 , oes.currency_code
2595 FROM oe_credit_summaries oes
2596 , hz_hierarchy_nodes hn
2597 WHERE oes.balance_type IN
2598 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2599 b10, b11, b12, b13, b14, b15, b16, b17, b18 , b21, b22,
2600 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2601 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2602 AND hn.parent_id = p_party_id
2603 AND hn.parent_object_type = 'ORGANIZATION'
2604 and hn.parent_table_name = 'HZ_PARTIES'
2605 and hn.child_object_type = 'ORGANIZATION'
2606 and hn.effective_start_date <= sysdate
2607 and hn.effective_end_date >= SYSDATE
2608 and hn.hierarchy_type
2609 = OE_CREDIT_CHECK_UTIL.G_hierarchy_type
2610 AND oes.party_id = hn.child_id
2611 AND oes.bucket = l_bucket
2612 AND oes.bucket_duration = l_bucket_length
2613 GROUP BY oes.currency_code
2614 ;
2615
2616 CURSOR party_h_all_curr_stub_csr_gl IS
2617 SELECT SUM( oes.balance )
2618 , oes.currency_code
2619 FROM oe_credit_summaries oes
2620 , hz_hierarchy_nodes hn
2621 WHERE oes.balance_type IN
2622 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2623 b10, b11, b12, b13, b14, b15, b16, b17, b18 , b21, b22,b37,b38,b39,b40,b41,b42) --TaxER
2624 AND hn.parent_id = p_party_id
2625 AND hn.parent_object_type = 'ORGANIZATION'
2626 and hn.parent_table_name = 'HZ_PARTIES'
2627 and hn.child_object_type = 'ORGANIZATION'
2628 and hn.effective_start_date <= sysdate
2629 and hn.effective_end_date >= SYSDATE
2630 and hn.hierarchy_type
2631 = OE_CREDIT_CHECK_UTIL.G_hierarchy_type
2632 AND oes.party_id = hn.child_id
2633 AND oes.bucket < l_bucket
2634 AND oes.bucket_duration = l_bucket_length
2635 GROUP BY oes.currency_code
2636 ;
2637
2638 ---added for the Returns project
2639 ---the same as above including Returns
2640 CURSOR p_h_all_curr_stub_ret_csr_gl IS
2641 SELECT SUM( oes.balance )
2642 , oes.currency_code
2643 FROM oe_credit_summaries oes
2644 , hz_hierarchy_nodes hn
2645 WHERE oes.balance_type IN
2646 (b1, b2, b3, b4, b5, b6, b7, b8, b9,
2647 b10, b11, b12, b13, b14, b15, b16, b17, b18 , b21, b22,
2648 b23, b24, b25, b26, b27, b28, b29, b30, b31,
2649 b32, b33, b34, b35, b36,b37,b38,b39,b40,b41,b42,b43,b44,b45,b46,b47,b48) --TaxER
2650 AND hn.parent_id = p_party_id
2651 AND hn.parent_object_type = 'ORGANIZATION'
2652 and hn.parent_table_name = 'HZ_PARTIES'
2653 and hn.child_object_type = 'ORGANIZATION'
2654 and hn.effective_start_date <= sysdate
2655 and hn.effective_end_date >= SYSDATE
2656 and hn.hierarchy_type
2657 = OE_CREDIT_CHECK_UTIL.G_hierarchy_type
2658 AND oes.party_id = hn.child_id
2659 AND oes.bucket < l_bucket
2660 AND oes.bucket_duration = l_bucket_length
2661 GROUP BY oes.currency_code
2662 ;
2663
2664 CURSOR party_br_h_all_curr_stub_gl IS
2665 SELECT SUM( oes.balance )
2666 , oes.currency_code
2667 FROM oe_credit_summaries oes
2668 , hz_hierarchy_nodes hn
2669 WHERE oes.balance_type IN
2670 (21,22)
2671 AND hn.parent_id = p_party_id
2672 AND hn.parent_object_type = 'ORGANIZATION'
2673 and hn.parent_table_name = 'HZ_PARTIES'
2674 and hn.child_object_type = 'ORGANIZATION'
2675 and hn.effective_start_date <= sysdate
2676 and hn.effective_end_date >= SYSDATE
2677 and hn.hierarchy_type
2678 = OE_CREDIT_CHECK_UTIL.G_hierarchy_type
2679 AND oes.party_id = hn.child_id
2680 AND oes.bucket < l_br_bucket
2681 AND oes.bucket_duration = l_br_bucket_length
2682 GROUP BY oes.currency_code
2683 ;
2684
2685 BEGIN
2686 -- We are determining now which summary cursor to open depending on
2687 -- whether the exposure is a site or customer level, and
2688 -- whether it is for all currencies or a list of currencies.
2689 -- The choice between order or line bill-to-site has already been
2690 -- made above by selecting the right balance types.
2691
2692 -- for each of the for cases, there are nested loops.
2693 -- The only difference between the two site and customer level cases
2694 -- are the cursor names.
2695
2696 IF G_debug_flag = 'Y'
2697 THEN
2698 oe_debug_pub.add( 'Into retrieve_exposure ');
2699 oe_debug_pub.add( '+++++++++++++++++++++++++++++++++++');
2700 oe_debug_pub.add( 'p_site_use_id ==> '|| p_site_use_id );
2701 oe_debug_pub.add( 'p_customer_id ==> '|| p_customer_id );
2702 oe_debug_pub.add( 'p_party_id ==> ' || p_party_id );
2703 oe_debug_pub.add( 'p_org_id ==> '|| p_org_id);
2704 oe_debug_pub.add( 'p_include_all_flag ==> '|| p_include_all_flag );
2705 oe_debug_pub.add( 'p_main_bucket ==> '|| p_main_bucket );
2706 oe_debug_pub.add( 'p_global_exposure_flag ==> '|| p_global_exposure_flag );
2707 oe_debug_pub.add( 'p_limit_curr_code ==> '|| p_limit_curr_code );
2708 oe_debug_pub.add( 'include_returns_flag ==> '|| p_credit_check_rule_rec.include_returns_flag);
2709 oe_debug_pub.add( '+++++++++++++++++++++++++++++++++++');
2710 END IF;
2711
2712 l_total := 0;
2713 l_br_site_use_id := NULL ;
2714
2715 IF p_credit_check_rule_rec.open_ar_balance_flag = 'Y'
2716 THEN
2717 l_br_bucket_length := POWER( 2, G_MAX_BUCKET_LEVEL );
2718 l_br_bucket := open_date( p_days => NULL);
2719
2720 END IF;
2721
2722 IF p_site_use_id IS NOT NULL
2723 THEN
2724 ----------------------------------------------------------------
2725 ---------------------- Site Level Exposure ----------------------
2726
2727 IF G_debug_flag = 'Y'
2728 THEN
2729 oe_debug_pub.add( 'exposure at site level ',1);
2730 END IF;
2731
2732 l_site_use_id := p_site_use_id;
2733
2734 IF G_debug_flag = 'Y'
2735 THEN
2736 oe_debug_pub.add( 'l_site_use_id => '|| l_site_use_id );
2737 END IF;
2738
2739 IF NVL(p_include_all_flag,'N') = 'N'
2740 THEN
2741 IF G_debug_flag = 'Y'
2742 THEN
2743 oe_debug_pub.add('site - NOT all currencies');
2744 END IF;
2745 -- exposure is at site level and for a list of currencies
2746
2747 -- for each currency in the list, loop
2748 i := p_usage_curr_tbl.FIRST;
2749
2750 WHILE i IS NOT NULL
2751 LOOP
2752
2753 l_currency_code := p_usage_curr_tbl(i).usage_curr_code;
2754
2755 l_bucket := p_main_bucket;
2756 l_bucket_length := G_MAX_BUCKET_LENGTH;
2757
2758
2759 ----change for the Return project
2760 ---- if Returns are included, the cursor site_balance_stub_ret_csr
2761 ---- is used, if Returns are not included, then the old logic and
2762 ---- site_balance_stub_csr is used.
2763
2764 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
2765 THEN
2766 OPEN site_balance_stub_csr;
2767 FETCH site_balance_stub_csr
2768 INTO l_balance;
2769 ELSE
2770 IF G_debug_flag = 'Y'
2771 THEN
2772 oe_debug_pub.add('OPEN site_balance_stub_ret_csr');
2773 END IF;
2774
2775 OPEN site_balance_stub_ret_csr;
2776 FETCH site_balance_stub_ret_csr
2777 INTO l_balance;
2778
2779 IF G_debug_flag = 'Y'
2780 THEN
2781 oe_debug_pub.add('l_balance='||TO_CHAR(l_balance));
2782 END IF;
2783 END IF;
2784
2785 IF p_credit_check_rule_rec.open_ar_balance_flag = 'Y'
2786 THEN
2787 l_br_site_use_id :=
2788 oe_credit_check_util.get_drawee_site_use_id ( p_site_use_id);
2789 END IF;
2790
2791 IF b8 = G_INVOICES
2792 THEN
2793 IF l_br_site_use_id IS NOT NULL
2794 THEN
2795 OPEN site_br_stub_csr;
2796 FETCH site_br_stub_csr
2797 INTO l_br_balance;
2798 CLOSE site_br_stub_csr ;
2799 END IF;
2800 END IF;
2801
2802 IF G_debug_flag = 'Y'
2803 THEN
2804 oe_debug_pub.add
2805 ( 'stub cursor at ' || l_currency_code || ' currency with balance '
2806 || l_balance || ' and bucket/length ' || l_bucket
2807 || '/' || l_bucket_length, 2 );
2808
2809 oe_debug_pub.add
2810 ( 'stub cursor at ' || l_currency_code
2811 || ' currency with BR balance '
2812 || l_br_balance || ' and bucket/length ' || l_bucket
2813 || '/' || l_bucket_length, 2 );
2814
2815 END IF;
2816
2817 l_total := l_total + convert_currency_amount
2818 ( p_amount =>
2819 l_balance + NVL(l_br_balance,0)
2820 , p_transactional_currency => l_currency_code
2821 , p_limit_currency => p_limit_curr_code
2822 );
2823
2824 ----change for the Return project
2825 ---- closing appropriate cursor: if Returns are included,
2826 ---- the cursor site_balance_stub_ret_csr, if Returns are not included,
2827 ---- then the cursor site_balance_stub_csr is used.
2828
2829 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
2830 THEN
2831 CLOSE site_balance_stub_csr;
2832 ELSE
2833 CLOSE site_balance_stub_ret_csr;
2834 END IF;
2835
2836 -----------------------------
2837 -- for fraction of Main Bucket
2838
2839 j := p_binary_tbl.FIRST;
2840 WHILE j IS NOT NULL LOOP
2841 l_bucket := p_binary_tbl(j).bucket;
2842 l_bucket_length := p_binary_tbl(j).bucket_length;
2843
2844 ----change for the Return project
2845 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
2846 THEN
2847 OPEN site_balance_csr;
2848 FETCH site_balance_csr
2849 INTO l_balance;
2850 ELSE
2851 IF G_debug_flag = 'Y'
2852 THEN
2853 oe_debug_pub.add('OPEN site_balance_ret_csr');
2854 END IF;
2855
2856 OPEN site_balance_ret_csr;
2857 FETCH site_balance_ret_csr
2858 INTO l_balance;
2859 END IF;
2860
2861
2862 IF G_debug_flag = 'Y'
2863 THEN
2864 oe_debug_pub.add
2865 ( 'cursor at ' || l_currency_code || ' currency with balance '
2866 || l_balance || ' and bucket/length ' || l_bucket || '/'
2867 || l_bucket_length, 2 );
2868 END IF;
2869
2870 BEGIN
2871 l_term :=
2872 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
2873 ( p_amount => l_balance
2874 , p_transactional_currency => l_currency_code
2875 , p_limit_currency => p_limit_curr_code
2876 , p_functional_currency => g_functional_currency
2877 , p_conversion_date => SYSDATE
2878 , p_conversion_type => g_conversion_type
2879 );
2880 l_total := l_total + NVL( l_term, 0 );
2881
2882 EXCEPTION
2883 WHEN GL_CURRENCY_API.NO_RATE OR
2884 GL_CURRENCY_API.INVALID_CURRENCY THEN
2885 add_error_currency( x_error_curr_tbl, l_currency_code );
2886
2887 IF G_debug_flag = 'Y'
2888 THEN
2889 oe_debug_pub.add( 'conversion exception for '
2890 || l_currency_code, 1 );
2891 END IF;
2892 END;
2893 ----change for the Return project
2894 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
2895 THEN
2896 CLOSE site_balance_csr;
2897 ELSE
2898 CLOSE site_balance_ret_csr;
2899 END IF;
2900
2901 j := p_binary_tbl.NEXT(j);
2902 END LOOP;
2903 i := p_usage_curr_tbl.NEXT(i);
2904 END LOOP;
2905
2906 ELSE
2907 -- exposure is at site level and for all currencies
2908 IF G_debug_flag = 'Y'
2909 THEN
2910 oe_debug_pub.add( 'SITE, ALL currencies ');
2911 END IF;
2912 i := 0;
2913
2914 --------------------------
2915 -- for left of Main Bucket
2916 l_bucket := p_main_bucket;
2917 l_bucket_length := G_MAX_BUCKET_LENGTH;
2918
2919 ----change for the Return project
2920 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
2921 THEN
2922 OPEN site_balance_all_curr_stub_csr;
2923 FETCH site_balance_all_curr_stub_csr
2924 INTO l_balance, l_currency_code;
2925
2926 -- For each currency in the cursor
2927 WHILE NOT site_balance_all_curr_stub_csr%NOTFOUND
2928 LOOP
2929 IF G_debug_flag = 'Y'
2930 THEN
2931 oe_debug_pub.add
2932 ( '(all) stub cursor at ' || l_currency_code || ' currency with balance '
2933 || l_balance || ' and bucket/length '
2934 || l_bucket || '/' || l_bucket_length, 2 );
2935 END IF;
2936
2937
2938 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
2939 l_currency_code ,1,1),0) = 0 )
2940 OR
2941 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
2942 l_currency_code ,1,1),0) > 0 )
2943 AND ( l_currency_code = p_limit_curr_code )
2944 )
2945 THEN
2946 BEGIN
2947 l_term :=
2948 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
2949 ( p_amount => l_balance
2950 , p_transactional_currency => l_currency_code
2951 , p_limit_currency => p_limit_curr_code
2952 , p_functional_currency => g_functional_currency
2953 , p_conversion_date => SYSDATE
2954 , p_conversion_type => g_conversion_type
2955 );
2956 l_total := l_total + NVL( l_term, 0 );
2957
2958 EXCEPTION
2959 WHEN GL_CURRENCY_API.NO_RATE OR
2960 GL_CURRENCY_API.INVALID_CURRENCY THEN
2961 oe_debug_pub.add( 'conversion exception for '
2962 || l_currency_code, 1 );
2963 add_error_currency( x_error_curr_tbl, l_currency_code );
2964 END;
2965 ELSE
2966 oe_debug_pub.add( 'Currency excluded from usages '
2967 || l_currency_code);
2968 END IF; -- exclude curr list
2969
2970 FETCH site_balance_all_curr_stub_csr
2971 INTO l_balance, l_currency_code;
2972
2973 i := i + 1;
2974
2975 END LOOP;
2976
2977 CLOSE site_balance_all_curr_stub_csr;
2978
2979
2980 ----change for the Return project
2981 --- the code is the same as above but using cursor
2982 --- site_bal_all_curr_stub_ret_csr instead site_balance_all_curr_stub_csr
2983
2984 ELSE
2985 IF G_debug_flag = 'Y'
2986 THEN
2987 oe_debug_pub.add('OPEN site_bal_all_curr_stub_ret_csr');
2988 END IF;
2989
2990 OPEN site_bal_all_curr_stub_ret_csr;
2991 FETCH site_bal_all_curr_stub_ret_csr
2992 INTO l_balance, l_currency_code;
2993
2994 -- For each currency in the cursor
2995 WHILE NOT site_bal_all_curr_stub_ret_csr%NOTFOUND
2996 LOOP
2997 IF G_debug_flag = 'Y'
2998 THEN
2999 oe_debug_pub.add
3000 ( '(all) stub cursor at ' || l_currency_code || ' currency with balance '
3001 || l_balance || ' and bucket/length '
3002 || l_bucket || '/' || l_bucket_length, 2 );
3003 END IF;
3004
3005
3006 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3007 l_currency_code ,1,1),0) = 0 )
3008 OR
3009 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3010 l_currency_code ,1,1),0) > 0 )
3011 AND ( l_currency_code = p_limit_curr_code )
3012 )
3013 THEN
3014 BEGIN
3015 l_term :=
3016 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3017 ( p_amount => l_balance
3018 , p_transactional_currency => l_currency_code
3019 , p_limit_currency => p_limit_curr_code
3020 , p_functional_currency => g_functional_currency
3021 , p_conversion_date => SYSDATE
3022 , p_conversion_type => g_conversion_type
3023 );
3024 l_total := l_total + NVL( l_term, 0 );
3025
3026 EXCEPTION
3027 WHEN GL_CURRENCY_API.NO_RATE OR
3028 GL_CURRENCY_API.INVALID_CURRENCY THEN
3029 oe_debug_pub.add( 'conversion exception for '
3030 || l_currency_code, 1 );
3031 add_error_currency( x_error_curr_tbl, l_currency_code );
3032 END;
3033 ELSE
3034 oe_debug_pub.add( 'Currency excluded from usages '
3035 || l_currency_code);
3036 END IF; -- exclude curr list
3037
3038 FETCH site_bal_all_curr_stub_ret_csr
3039 INTO l_balance, l_currency_code;
3040
3041 i := i + 1;
3042
3043 END LOOP;
3044
3045 CLOSE site_bal_all_curr_stub_ret_csr;
3046
3047 END IF; ----end of checking for include returns
3048
3049 ---------------------start BR -------------------
3050 IF p_credit_check_rule_rec.open_ar_balance_flag = 'Y'
3051 THEN
3052 l_br_site_use_id :=
3053 oe_credit_check_util.get_drawee_site_use_id ( p_site_use_id);
3054 END IF;
3055
3056 IF l_br_site_use_id IS NOT NULL
3057 AND b8 = G_INVOICES
3058 THEN
3059 i := 0;
3060
3061 --------------------------
3062 -- for left of Main Bucket
3063 l_bucket := p_main_bucket;
3064 l_bucket_length := G_MAX_BUCKET_LENGTH;
3065
3066 OPEN site_br_all_curr_stub_csr;
3067 FETCH site_br_all_curr_stub_csr
3068 INTO l_br_balance, l_currency_code;
3069
3070 -- For each currency in the cursor
3071 WHILE NOT site_br_all_curr_stub_csr%NOTFOUND
3072 LOOP
3073 IF G_debug_flag = 'Y'
3074 THEN
3075 oe_debug_pub.add
3076 ( '(all) stub cursor at ' || l_currency_code
3077 || ' currency with BR balance '
3078 || l_br_balance || ' and bucket/length '
3079 || l_bucket || '/' || l_bucket_length, 2 );
3080 END IF;
3081
3082 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3083 l_currency_code ,1,1),0) = 0 )
3084 OR
3085 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3086 l_currency_code ,1,1),0) > 0 )
3087 AND ( l_currency_code = p_limit_curr_code )
3088 )
3089 THEN
3090 BEGIN
3091 l_term :=
3092 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3093 ( p_amount => l_br_balance
3094 , p_transactional_currency => l_currency_code
3095 , p_limit_currency => p_limit_curr_code
3096 , p_functional_currency => g_functional_currency
3097 , p_conversion_date => SYSDATE
3098 , p_conversion_type => g_conversion_type
3099 );
3100 l_total := l_total + NVL( l_term, 0 );
3101
3102 EXCEPTION
3103 WHEN GL_CURRENCY_API.NO_RATE OR
3104 GL_CURRENCY_API.INVALID_CURRENCY THEN
3105 oe_debug_pub.add( 'conversion exception for '
3106 || l_currency_code, 1 );
3107 add_error_currency( x_error_curr_tbl, l_currency_code );
3108 END;
3109 ELSE
3110 oe_debug_pub.add( 'Currency excluded from usages '
3111 || l_currency_code);
3112 END IF; -- exclude curr list
3113
3114 FETCH site_br_all_curr_stub_csr
3115 INTO l_balance, l_currency_code;
3116
3117 i := i + 1;
3118 END LOOP;
3119
3120 CLOSE site_br_all_curr_stub_csr ;
3121 END IF;
3122 ---------------------------- end BR ------------------
3123 -- for fraction of Main Bucket
3124
3125 j := p_binary_tbl.FIRST;
3126 WHILE j IS NOT NULL LOOP
3127 l_bucket := p_binary_tbl(j).bucket;
3128 l_bucket_length := p_binary_tbl(j).bucket_length;
3129
3130 ----change for the Return project
3131 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
3132 THEN
3133
3134 -- this cursor deals with one site and all currencies
3135 OPEN site_balance_all_curr_csr;
3136 FETCH site_balance_all_curr_csr
3137 INTO l_balance, l_currency_code;
3138
3139 -- For each currency that exists, the cursor returns a row.
3140 -- Convert the balance and sum up to total exposure
3141
3142 WHILE NOT site_balance_all_curr_csr%NOTFOUND
3143 LOOP
3144 IF G_debug_flag = 'Y'
3145 THEN
3146 oe_debug_pub.add
3147 ( 'cursor at ' || l_currency_code || ' currency with balance '
3148 || l_balance || ' and bucket/length ' || l_bucket
3149 || '/' || l_bucket_length, 2 );
3150 END IF;
3151
3152 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3153 l_currency_code ,1,1),0) = 0 )
3154 OR
3155 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3156 l_currency_code ,1,1),0) > 0 )
3157 AND ( l_currency_code = p_limit_curr_code )
3158 )
3159 THEN
3160 BEGIN
3161 l_term :=
3162 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3163 ( p_amount => l_balance
3164 , p_transactional_currency => l_currency_code
3165 , p_limit_currency => p_limit_curr_code
3166 , p_functional_currency => g_functional_currency
3167 , p_conversion_date => SYSDATE
3168 , p_conversion_type => g_conversion_type
3169 );
3170 l_total := l_total + NVL( l_term, 0 );
3171
3172 EXCEPTION
3173 WHEN GL_CURRENCY_API.NO_RATE OR
3174 GL_CURRENCY_API.INVALID_CURRENCY THEN
3175 oe_debug_pub.add( 'conversion exception for '
3176 || l_currency_code, 1 );
3177 add_error_currency( x_error_curr_tbl, l_currency_code );
3178 END;
3179 ELSE
3180 oe_debug_pub.add( 'Currency excluded from usages ');
3181 END IF; -- exclude curr list
3182
3183 FETCH site_balance_all_curr_csr
3184 INTO l_balance, l_currency_code;
3185 i := i + 1;
3186 END LOOP;
3187 CLOSE site_balance_all_curr_csr;
3188
3189 -----if returns are included use appropriate cursor
3190 ----- the rest code is the same as above
3191 ELSE
3192 -- this cursor deals with one site and all currencies
3193 OPEN site_bal_all_curr_ret_csr;
3194 FETCH site_bal_all_curr_ret_csr
3195 INTO l_balance, l_currency_code;
3196
3197 -- For each currency that exists, the cursor returns a row.
3198 -- Convert the balance and sum up to total exposure
3199
3200 WHILE NOT site_bal_all_curr_ret_csr%NOTFOUND
3201 LOOP
3202 IF G_debug_flag = 'Y'
3203 THEN
3204 oe_debug_pub.add
3205 ( 'cursor at ' || l_currency_code || ' currency with balance '
3206 || l_balance || ' and bucket/length ' || l_bucket
3207 || '/' || l_bucket_length, 2 );
3208 END IF;
3209
3210 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3211 l_currency_code ,1,1),0) = 0 )
3212 OR
3213 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3214 l_currency_code ,1,1),0) > 0 )
3215 AND ( l_currency_code = p_limit_curr_code )
3216 )
3217 THEN
3218 BEGIN
3219 l_term :=
3220 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3221 ( p_amount => l_balance
3222 , p_transactional_currency => l_currency_code
3223 , p_limit_currency => p_limit_curr_code
3224 , p_functional_currency => g_functional_currency
3225 , p_conversion_date => SYSDATE
3226 , p_conversion_type => g_conversion_type
3227 );
3228 l_total := l_total + NVL( l_term, 0 );
3229
3230 EXCEPTION
3231 WHEN GL_CURRENCY_API.NO_RATE OR
3232 GL_CURRENCY_API.INVALID_CURRENCY THEN
3233 oe_debug_pub.add( 'conversion exception for '
3234 || l_currency_code, 1 );
3235 add_error_currency( x_error_curr_tbl, l_currency_code );
3236 END;
3237 ELSE
3238 oe_debug_pub.add( 'Currency excluded from usages ');
3239 END IF; -- exclude curr list
3240
3241 FETCH site_bal_all_curr_ret_csr
3242 INTO l_balance, l_currency_code;
3243 i := i + 1;
3244 END LOOP;
3245 CLOSE site_bal_all_curr_ret_csr;
3246
3247 END IF; ---end of checking for include returns
3248 j := p_binary_tbl.NEXT(j);
3249 END LOOP;
3250 END IF; -- site level currency - all/single
3251
3252 ----------------- End site level -----------------------------------
3253 --------------------------------------------------------------------------
3254
3255 ------------------------- Start customer level --------------------
3256 ELSIF p_customer_id IS NOT NULL
3257 THEN
3258 IF G_debug_flag = 'Y'
3259 THEN
3260 oe_debug_pub.add( 'exposure at customer level', 1 );
3261 END IF;
3262
3263 IF NVL(p_include_all_flag,'N') = 'N'
3264 THEN
3265 -- exposure is at customer level and for a list of currencies
3266 -- for each currency in the list
3267
3268 IF G_debug_flag = 'Y'
3269 THEN
3270 oe_debug_pub.add( 'NOT ALL currencies ');
3271 END IF;
3272
3273 i := p_usage_curr_tbl.FIRST;
3274 WHILE i IS NOT NULL
3275 LOOP
3276 l_currency_code := p_usage_curr_tbl(i).usage_curr_code;
3277 --------------------------
3278 -- for left of Main Bucket
3279 l_bucket := p_main_bucket;
3280 l_bucket_length := G_MAX_BUCKET_LENGTH;
3281
3282 IF p_global_exposure_flag = 'Y'
3283 THEN
3284 IF G_debug_flag = 'Y'
3285 THEN
3286 oe_debug_pub.add( ' Into CUST global ');
3287 END IF;
3288
3289 ----change for the Return project
3290 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
3291 THEN
3292 OPEN cust_balance_stub_csr_global;
3293 FETCH cust_balance_stub_csr_global
3294 INTO l_balance;
3295 ELSE
3296 OPEN cust_bal_stub_ret_csr_global;
3297 FETCH cust_bal_stub_ret_csr_global
3298 INTO l_balance;
3299 END IF;
3300
3301 IF p_credit_check_rule_rec.open_ar_days IS NOT NULL
3302 AND p_credit_check_rule_rec.open_ar_balance_flag = 'Y'
3303 AND b8 = G_INVOICES
3304 THEN
3305 OPEN cust_br_stub_csr_global ;
3306 FETCH cust_br_stub_csr_global
3307 INTO l_br_balance ;
3308 CLOSE cust_br_stub_csr_global ;
3309 END IF;
3310
3311 IF G_debug_flag = 'Y'
3312 THEN
3313 oe_debug_pub.add
3314 ( 'global stub cursor at ' || l_currency_code
3315 || ' currency with balance ' || l_balance, 2 );
3316 oe_debug_pub.add
3317 ( 'global stub cursor at ' || l_currency_code
3318 || ' currency with BR balance ' || l_br_balance, 2 );
3319 END IF;
3320 BEGIN
3321 l_term :=
3322 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3323 ( p_amount => l_balance +
3324 NVL(l_br_balance,0)
3325 , p_transactional_currency => l_currency_code
3326 , p_limit_currency => p_limit_curr_code
3327 , p_functional_currency => g_functional_currency
3328 , p_conversion_date => SYSDATE
3329 , p_conversion_type => g_conversion_type
3330 );
3331 l_total := l_total + NVL( l_term, 0 );
3332
3333 EXCEPTION
3334 WHEN GL_CURRENCY_API.NO_RATE OR
3335 GL_CURRENCY_API.INVALID_CURRENCY THEN
3336 oe_debug_pub.add( 'conversion exception for '
3337 || l_currency_code, 1 );
3338 add_error_currency( x_error_curr_tbl, l_currency_code );
3339 END;
3340 ----change for the Return project
3341 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
3342 THEN
3343 CLOSE cust_balance_stub_csr_global;
3344 ELSE
3345 CLOSE cust_bal_stub_ret_csr_global;
3346 END IF;
3347
3348 -----------------------------
3349 -- for fraction of Main Bucket
3350
3351 j := p_binary_tbl.FIRST;
3352 WHILE j IS NOT NULL
3353 LOOP
3354 l_bucket := p_binary_tbl(j).bucket;
3355 l_bucket_length := p_binary_tbl(j).bucket_length;
3356
3357 ----change for the Return project
3358 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
3359 THEN
3360 OPEN cust_balance_csr_global;
3361 FETCH cust_balance_csr_global
3362 INTO l_balance;
3363 ELSE
3364 OPEN cust_balance_ret_csr_global;
3365 FETCH cust_balance_ret_csr_global
3366 INTO l_balance;
3367 END IF;
3368
3369 IF G_debug_flag = 'Y'
3370 THEN
3371 oe_debug_pub.add
3372 ( 'cust global cursor at ' || l_currency_code
3373 || ' currency with balance ' || l_balance, 2 );
3374 END IF;
3375 BEGIN
3376 l_term :=
3377 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3378 ( p_amount => l_balance
3379 , p_transactional_currency => l_currency_code
3380 , p_limit_currency => p_limit_curr_code
3381 , p_functional_currency => g_functional_currency
3382 , p_conversion_date => SYSDATE
3383 , p_conversion_type => g_conversion_type
3384 );
3385 l_total := l_total + NVL( l_term, 0 );
3386
3387 EXCEPTION
3388 WHEN GL_CURRENCY_API.NO_RATE OR
3389 GL_CURRENCY_API.INVALID_CURRENCY THEN
3390 oe_debug_pub.add( 'conversion exception for '
3391 || l_currency_code, 1 );
3392 add_error_currency( x_error_curr_tbl, l_currency_code );
3393 END;
3394
3395 ----change for the Return project
3396 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
3397 THEN
3398 CLOSE cust_balance_csr_global;
3399 ELSE
3400 CLOSE cust_balance_ret_csr_global;
3401 END IF;
3402
3403 j := p_binary_tbl.NEXT(j);
3404 END LOOP;
3405
3406 ELSE -- not global cck
3407 IF G_debug_flag = 'Y'
3408 THEN
3409 oe_debug_pub.add( 'Into cust NOT global ');
3410 END IF;
3411
3412 ----change for the Return project
3413 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
3414 THEN
3415
3416 OPEN customer_balance_stub_csr;
3417 FETCH customer_balance_stub_csr
3418 INTO l_balance;
3419 ELSE
3420 OPEN customer_balance_stub_ret_csr;
3421 FETCH customer_balance_stub_ret_csr
3422 INTO l_balance;
3423 END IF;
3424
3425 IF p_credit_check_rule_rec.open_ar_days IS NOT NULL
3426 AND p_credit_check_rule_rec.open_ar_balance_flag = 'Y'
3427 AND b8 = G_INVOICES
3428 THEN
3429 OPEN customer_br_stub_csr ;
3430 FETCH customer_br_stub_csr
3431 INTO l_br_balance ;
3432 CLOSE customer_br_stub_csr ;
3433 END IF;
3434
3435 IF G_debug_flag = 'Y'
3436 THEN
3437 oe_debug_pub.add
3438 ( 'cust stub cursor at ' || l_currency_code
3439 || ' currency with balance ' || l_balance, 2 );
3440 oe_debug_pub.add
3441 ( 'cust stub cursor at ' || l_currency_code
3442 || ' currency with BR balance ' || l_br_balance, 2 );
3443 END IF;
3444
3445 BEGIN
3446 l_term :=
3447 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3448 ( p_amount => l_balance +
3449 NVL(l_br_balance,0)
3450 , p_transactional_currency => l_currency_code
3451 , p_limit_currency => p_limit_curr_code
3452 , p_functional_currency => g_functional_currency
3453 , p_conversion_date => SYSDATE
3454 , p_conversion_type => g_conversion_type
3455 );
3456 l_total := l_total + NVL( l_term, 0 );
3457 EXCEPTION
3458 WHEN GL_CURRENCY_API.NO_RATE OR
3459 GL_CURRENCY_API.INVALID_CURRENCY THEN
3460 oe_debug_pub.add( 'conversion exception for '
3461 || l_currency_code, 1 );
3462 add_error_currency( x_error_curr_tbl, l_currency_code );
3463 END;
3464
3465 ----change for the Return project
3466 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
3467 THEN
3468 CLOSE customer_balance_stub_csr ;
3469 ELSE
3470 CLOSE customer_balance_stub_ret_csr;
3471 END IF;
3472
3473 -----------------------------
3474 -- for fraction of Main Bucket
3475
3476 j := p_binary_tbl.FIRST;
3477 WHILE j IS NOT NULL
3478 LOOP
3479 l_bucket := p_binary_tbl(j).bucket;
3480 l_bucket_length := p_binary_tbl(j).bucket_length;
3481
3482 ----change for the Return project
3483 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
3484 THEN
3485 OPEN customer_balance_csr;
3486 FETCH customer_balance_csr
3487 INTO l_balance;
3488 ELSE
3489 OPEN customer_balance_ret_csr;
3490 FETCH customer_balance_ret_csr
3491 INTO l_balance;
3492 END IF;
3493
3494 IF G_debug_flag = 'Y'
3495 THEN
3496 oe_debug_pub.add
3497 ( 'cust cursor at ' || l_currency_code
3498 || ' currency with balance ' || l_balance, 2 );
3499 END IF;
3500
3501 BEGIN
3502 l_term :=
3503 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3504 ( p_amount => l_balance
3505 , p_transactional_currency => l_currency_code
3506 , p_limit_currency => p_limit_curr_code
3507 , p_functional_currency => g_functional_currency
3508 , p_conversion_date => SYSDATE
3509 , p_conversion_type => g_conversion_type
3510 );
3511 l_total := l_total + NVL( l_term, 0 );
3512
3513 EXCEPTION
3514 WHEN GL_CURRENCY_API.NO_RATE OR
3515 GL_CURRENCY_API.INVALID_CURRENCY THEN
3516 oe_debug_pub.add( 'conversion exception for '
3517 || l_currency_code, 1 );
3518 add_error_currency( x_error_curr_tbl, l_currency_code );
3519 END;
3520
3521 ----change for the Return project
3522 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
3523 THEN
3524 CLOSE customer_balance_csr;
3525 ELSE
3526 CLOSE customer_balance_ret_csr;
3527 END IF;
3528
3529 j := p_binary_tbl.NEXT(j);
3530 END LOOP;
3531 END IF; -- global
3532 i := p_usage_curr_tbl.NEXT(i);
3533 END LOOP; -- i loop
3534
3535 ELSE -- customer level all currencies
3536 -- exposure is at customer level and for all currencies
3537 -- for each currency in the list
3538
3539 IF G_debug_flag = 'Y'
3540 THEN
3541 oe_debug_pub.add(' Into ALL currencies ');
3542 END IF;
3543
3544
3545 i := 0;
3546 --------------------------
3547 -- for left of Main Bucket
3548 l_bucket := p_main_bucket;
3549 l_bucket_length := G_MAX_BUCKET_LENGTH;
3550
3551 IF p_global_exposure_flag = 'Y'
3552 THEN
3553 IF G_debug_flag = 'Y'
3554 THEN
3555 oe_debug_pub.add( ' Into cust GLOBAL');
3556 END IF;
3557
3558 ----change for the Return project
3559 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
3560 THEN
3561 -----returns are not included
3562 OPEN cust_all_curr_stub_csr_global;
3563 FETCH cust_all_curr_stub_csr_global
3564 INTO l_balance, l_currency_code;
3565 -- For each currency in the cursor
3566
3567 WHILE NOT cust_all_curr_stub_csr_global%NOTFOUND
3568 LOOP
3569 IF G_debug_flag = 'Y'
3570 THEN
3571 oe_debug_pub.add
3572 ( '(all) stub global cursor at ' || l_currency_code
3573 || ' currency with balance '
3574 || l_balance || ' and bucket/length '
3575 || l_bucket || '/' || l_bucket_length, 2 );
3576 END IF;
3577
3578 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3579 l_currency_code ,1,1),0) = 0 )
3580 OR
3581 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3582 l_currency_code ,1,1),0) > 0 )
3583 AND ( l_currency_code = p_limit_curr_code )
3584 )
3585 THEN
3586 BEGIN
3587 l_term :=
3588 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3589 ( p_amount => l_balance
3590 , p_transactional_currency => l_currency_code
3591 , p_limit_currency => p_limit_curr_code
3592 , p_functional_currency => g_functional_currency
3593 , p_conversion_date => SYSDATE
3594 , p_conversion_type => g_conversion_type
3595 );
3596 l_total := l_total + NVL( l_term, 0 );
3597
3598 EXCEPTION
3599 WHEN GL_CURRENCY_API.NO_RATE
3600 OR GL_CURRENCY_API.INVALID_CURRENCY THEN
3601 oe_debug_pub.add( 'conversion exception for '
3602 || l_currency_code, 1 );
3603 add_error_currency( x_error_curr_tbl, l_currency_code );
3604 END;
3605 ELSE
3606 oe_debug_pub.add( 'Currency excluded from usages ');
3607 END IF; -- exclude curr list
3608 FETCH cust_all_curr_stub_csr_global
3609 INTO l_balance, l_currency_code;
3610 i := i + 1;
3611 END LOOP;
3612
3613 CLOSE cust_all_curr_stub_csr_global;
3614
3615 -----returns are included
3616 ELSE
3617 OPEN cust_all_curr_stub_ret_csr_gl;
3618 FETCH cust_all_curr_stub_ret_csr_gl
3619 INTO l_balance, l_currency_code;
3620 -- For each currency in the cursor
3621
3622 WHILE NOT cust_all_curr_stub_ret_csr_gl%NOTFOUND
3623 LOOP
3624 IF G_debug_flag = 'Y'
3625 THEN
3626 oe_debug_pub.add
3627 ( '(all) stub global cursor at ' || l_currency_code
3628 || ' currency with balance '
3629 || l_balance || ' and bucket/length '
3630 || l_bucket || '/' || l_bucket_length, 2 );
3631 END IF;
3632
3633 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3634 l_currency_code ,1,1),0) = 0 )
3635 OR
3636 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3637 l_currency_code ,1,1),0) > 0 )
3638 AND ( l_currency_code = p_limit_curr_code )
3639 )
3640 THEN
3641 BEGIN
3642 l_term :=
3643 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3644 ( p_amount => l_balance
3645 , p_transactional_currency => l_currency_code
3646 , p_limit_currency => p_limit_curr_code
3647 , p_functional_currency => g_functional_currency
3648 , p_conversion_date => SYSDATE
3649 , p_conversion_type => g_conversion_type
3650 );
3651 l_total := l_total + NVL( l_term, 0 );
3652
3653 EXCEPTION
3654 WHEN GL_CURRENCY_API.NO_RATE
3655 OR GL_CURRENCY_API.INVALID_CURRENCY THEN
3656 oe_debug_pub.add( 'conversion exception for '
3657 || l_currency_code, 1 );
3658 add_error_currency( x_error_curr_tbl, l_currency_code );
3659 END;
3660 ELSE
3661 oe_debug_pub.add( 'Currency excluded from usages ');
3662 END IF; -- exclude curr list
3663
3664 FETCH cust_all_curr_stub_ret_csr_gl
3665 INTO l_balance, l_currency_code;
3666 i := i + 1;
3667 END LOOP;
3668
3669 CLOSE cust_all_curr_stub_ret_csr_gl;
3670
3671 END IF;-----end of checking if returns are included
3672
3673 ------------------------start BR --------------------
3674 IF p_credit_check_rule_rec.open_ar_days IS NOT NULL
3675 AND p_credit_check_rule_rec.open_ar_balance_flag = 'Y'
3676 AND b8 = G_INVOICES
3677 THEN
3678
3679 i := 0;
3680 --------------------------
3681 -- for left of Main Bucket
3682 l_bucket := p_main_bucket;
3683 l_bucket_length := G_MAX_BUCKET_LENGTH;
3684
3685 IF G_debug_flag = 'Y'
3686 THEN
3687 oe_debug_pub.add( ' Into cust GLOBAL');
3688 END IF;
3689
3690 OPEN cust_br_all_curr_stub_csr_gl;
3691 FETCH cust_br_all_curr_stub_csr_gl
3692 INTO l_br_balance, l_currency_code;
3693
3694 -- For each currency in the cursor
3695
3696 WHILE NOT cust_br_all_curr_stub_csr_gl%NOTFOUND
3697 LOOP
3698 IF G_debug_flag = 'Y'
3699 THEN
3700 oe_debug_pub.add
3701 ( '(all) stub global cursor at ' || l_currency_code
3702 || ' currency with BR balance '
3703 || l_br_balance || ' and bucket/length '
3704 || l_bucket || '/' || l_bucket_length, 2 );
3705 END IF;
3706
3707
3708 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3709 l_currency_code ,1,1),0) = 0 )
3710 OR
3711 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3712 l_currency_code ,1,1),0) > 0 )
3713 AND ( l_currency_code = p_limit_curr_code )
3714 )
3715 THEN
3716 BEGIN
3717 l_term :=
3718 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3719 ( p_amount => l_br_balance
3720 , p_transactional_currency => l_currency_code
3721 , p_limit_currency => p_limit_curr_code
3722 , p_functional_currency => g_functional_currency
3723 , p_conversion_date => SYSDATE
3724 , p_conversion_type => g_conversion_type
3725 );
3726 l_total := l_total + NVL( l_term, 0 );
3727
3728 EXCEPTION
3729 WHEN GL_CURRENCY_API.NO_RATE
3730 OR GL_CURRENCY_API.INVALID_CURRENCY THEN
3731 oe_debug_pub.add( 'conversion exception for '
3732 || l_currency_code, 1 );
3733 add_error_currency( x_error_curr_tbl, l_currency_code );
3734 END;
3735 ELSE
3736 oe_debug_pub.add( 'Currency excluded from usages ');
3737 END IF; -- exclude curr list
3738 FETCH cust_br_all_curr_stub_csr_gl
3739 INTO l_br_balance, l_currency_code;
3740 i := i + 1;
3741 END LOOP;
3742
3743 CLOSE cust_br_all_curr_stub_csr_gl ;
3744 END IF;
3745 ---------------------------- end BR ------------------------
3746
3747 -----------------------------
3748 -- for fraction of Main Bucket
3749
3750 j := p_binary_tbl.FIRST;
3751 WHILE j IS NOT NULL LOOP
3752 l_bucket := p_binary_tbl(j).bucket;
3753 l_bucket_length := p_binary_tbl(j).bucket_length;
3754
3755 ----change for the Return project
3756 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
3757 THEN
3758 -----returns are not included
3759 OPEN cust_all_curr_csr_global;
3760 FETCH cust_all_curr_csr_global
3761 INTO l_balance, l_currency_code;
3762
3763 -- For each currency that exists, the cursor returns a row.
3764 -- Convert the balance and sum up to total exposure
3765
3766 WHILE NOT cust_all_curr_csr_global%NOTFOUND
3767 LOOP
3768 IF G_debug_flag = 'Y'
3769 THEN
3770 oe_debug_pub.add
3771 ( 'cust all global cursor at ' || l_currency_code
3772 || ' currency with balance '
3773 || l_balance || ' and bucket/length '
3774 || l_bucket || '/' || l_bucket_length, 2 );
3775
3776 END IF;
3777
3778 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3779 l_currency_code ,1,1),0) = 0 )
3780 OR
3781 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3782 l_currency_code ,1,1),0) > 0 )
3783 AND ( l_currency_code = p_limit_curr_code )
3784 )
3785 THEN
3786 BEGIN
3787 l_term :=
3788 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3789 ( p_amount => l_balance
3790 , p_transactional_currency => l_currency_code
3791 , p_limit_currency => p_limit_curr_code
3792 , p_functional_currency => g_functional_currency
3793 , p_conversion_date => SYSDATE
3794 , p_conversion_type => g_conversion_type
3795 );
3796 l_total := l_total + NVL( l_term, 0 );
3797
3798 EXCEPTION
3799 WHEN GL_CURRENCY_API.NO_RATE OR
3800 GL_CURRENCY_API.INVALID_CURRENCY THEN
3801 oe_debug_pub.add( 'conversion exception for ' ||
3802 l_currency_code, 1 );
3803 add_error_currency( x_error_curr_tbl, l_currency_code );
3804 END;
3805 ELSE
3806 oe_debug_pub.add( 'Currency excluded from usages ');
3807 END IF; -- exclude curr list
3808 FETCH cust_all_curr_csr_global INTO l_balance, l_currency_code;
3809 i := i + 1;
3810 END LOOP;
3811 CLOSE cust_all_curr_csr_global;
3812
3813 -----returns are included
3814 ELSE
3815 OPEN cust_all_curr_ret_csr_global;
3816 FETCH cust_all_curr_ret_csr_global
3817 INTO l_balance, l_currency_code;
3818
3819 -- For each currency that exists, the cursor returns a row.
3820 -- Convert the balance and sum up to total exposure
3821
3822 WHILE NOT cust_all_curr_ret_csr_global%NOTFOUND
3823 LOOP
3824 IF G_debug_flag = 'Y'
3825 THEN
3826 oe_debug_pub.add
3827 ( 'cust all global cursor at ' || l_currency_code
3828 || ' currency with balance '
3829 || l_balance || ' and bucket/length '
3830 || l_bucket || '/' || l_bucket_length, 2 );
3831
3832 END IF;
3833
3834 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3835 l_currency_code ,1,1),0) = 0 )
3836 OR
3837 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3838 l_currency_code ,1,1),0) > 0 )
3839 AND ( l_currency_code = p_limit_curr_code )
3840 )
3841 THEN
3842 BEGIN
3843 l_term :=
3844 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3845 ( p_amount => l_balance
3846 , p_transactional_currency => l_currency_code
3847 , p_limit_currency => p_limit_curr_code
3848 , p_functional_currency => g_functional_currency
3849 , p_conversion_date => SYSDATE
3850 , p_conversion_type => g_conversion_type
3851 );
3852 l_total := l_total + NVL( l_term, 0 );
3853
3854 EXCEPTION
3855 WHEN GL_CURRENCY_API.NO_RATE OR
3856 GL_CURRENCY_API.INVALID_CURRENCY THEN
3857 oe_debug_pub.add( 'conversion exception for ' ||
3858 l_currency_code, 1 );
3859 add_error_currency( x_error_curr_tbl, l_currency_code );
3860 END;
3861 ELSE
3862 oe_debug_pub.add( 'Currency excluded from usages ');
3863 END IF; -- exclude curr list
3864
3865 FETCH cust_all_curr_ret_csr_global
3866 INTO l_balance, l_currency_code;
3867 i := i + 1;
3868 END LOOP;
3869
3870 CLOSE cust_all_curr_ret_csr_global;
3871 END IF; ----end of checking if returns are included
3872
3873 j := p_binary_tbl.NEXT(j);
3874 END LOOP; -- J
3875
3876
3877 ELSE -- not global cck
3878 IF G_debug_flag = 'Y'
3879 THEN
3880 oe_debug_pub.add(' Into cust NOT global ');
3881 END IF;
3882
3883 ----change for the Return project
3884 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
3885 THEN
3886 ----returns are not included, old code
3887 OPEN customer_all_curr_stub_csr;
3888 FETCH customer_all_curr_stub_csr
3889 INTO l_balance, l_currency_code;
3890 -- For each currency in the cursor
3891
3892 WHILE NOT customer_all_curr_stub_csr%NOTFOUND
3893 LOOP
3894 IF G_debug_flag = 'Y'
3895 THEN
3896 oe_debug_pub.add
3897 ( '(all) stub cursor at ' || l_currency_code
3898 || ' currency with balance '
3899 || l_balance || ' and bucket/length '
3900 || l_bucket || '/' || l_bucket_length, 2 );
3901 END IF;
3902
3903 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3904 l_currency_code ,1,1),0) = 0 )
3905 OR
3906 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3907 l_currency_code ,1,1),0) > 0 )
3908 AND ( l_currency_code = p_limit_curr_code )
3909 )
3910 THEN
3911 BEGIN
3912 l_term :=
3913 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3914 ( p_amount => l_balance
3915 , p_transactional_currency => l_currency_code
3916 , p_limit_currency => p_limit_curr_code
3917 , p_functional_currency => g_functional_currency
3918 , p_conversion_date => SYSDATE
3919 , p_conversion_type => g_conversion_type
3920 );
3921 l_total := l_total + NVL( l_term, 0 );
3922
3923 EXCEPTION
3924 WHEN GL_CURRENCY_API.NO_RATE
3925 OR GL_CURRENCY_API.INVALID_CURRENCY THEN
3926 oe_debug_pub.add( 'conversion exception for '
3927 || l_currency_code, 1 );
3928 add_error_currency( x_error_curr_tbl, l_currency_code );
3929 END;
3930 ELSE
3931 oe_debug_pub.add(' Currency excluded from usages list ');
3932 END IF;
3933
3934 FETCH customer_all_curr_stub_csr
3935 INTO l_balance, l_currency_code;
3936 i := i + 1;
3937 END LOOP;
3938
3939 CLOSE customer_all_curr_stub_csr;
3940
3941 ------returns are included, the same code as above but
3942 ------ using different cursors
3943 ELSE
3944 OPEN customer_all_curr_stub_ret_csr;
3945 FETCH customer_all_curr_stub_ret_csr
3946 INTO l_balance, l_currency_code;
3947
3948 -- For each currency in the cursor
3949
3950 WHILE NOT customer_all_curr_stub_ret_csr%NOTFOUND
3951 LOOP
3952 IF G_debug_flag = 'Y'
3953 THEN
3954 oe_debug_pub.add
3955 ( '(all) stub cursor at ' || l_currency_code
3956 || ' currency with balance '
3957 || l_balance || ' and bucket/length '
3958 || l_bucket || '/' || l_bucket_length, 2 );
3959 END IF;
3960
3961 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3962 l_currency_code ,1,1),0) = 0 )
3963 OR
3964 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
3965 l_currency_code ,1,1),0) > 0 )
3966 AND ( l_currency_code = p_limit_curr_code )
3967 )
3968 THEN
3969 BEGIN
3970 l_term :=
3971 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
3972 ( p_amount => l_balance
3973 , p_transactional_currency => l_currency_code
3974 , p_limit_currency => p_limit_curr_code
3975 , p_functional_currency => g_functional_currency
3976 , p_conversion_date => SYSDATE
3977 , p_conversion_type => g_conversion_type
3978 );
3979 l_total := l_total + NVL( l_term, 0 );
3980
3981 EXCEPTION
3982 WHEN GL_CURRENCY_API.NO_RATE
3983 OR GL_CURRENCY_API.INVALID_CURRENCY THEN
3984 oe_debug_pub.add( 'conversion exception for '
3985 || l_currency_code, 1 );
3986 add_error_currency( x_error_curr_tbl, l_currency_code );
3987 END;
3988 ELSE
3989 oe_debug_pub.add(' Currency excluded from usages list ');
3990 END IF;
3991
3992 FETCH customer_all_curr_stub_ret_csr
3993 INTO l_balance, l_currency_code;
3994 i := i + 1;
3995 END LOOP;
3996
3997 CLOSE customer_all_curr_stub_ret_csr;
3998
3999 END IF; ---end of checking if returns are include
4000
4001 ----------------------- start BR ------------------
4002
4003 IF p_credit_check_rule_rec.open_ar_days IS NOT NULL
4004 AND p_credit_check_rule_rec.open_ar_balance_flag = 'Y'
4005 AND b8 = G_INVOICES
4006 THEN
4007 OPEN customer_br_all_curr_stub_csr;
4008 FETCH customer_br_all_curr_stub_csr
4009 INTO l_br_balance, l_currency_code;
4010
4011 -- For each currency in the cursor
4012
4013 WHILE NOT customer_br_all_curr_stub_csr%NOTFOUND
4014 LOOP
4015 IF G_debug_flag = 'Y'
4016 THEN
4017 oe_debug_pub.add
4018 ( '(all) stub cursor at ' || l_currency_code
4019 || ' currency with BR balance '
4020 || l_br_balance || ' and bucket/length '
4021 || l_bucket || '/' || l_bucket_length, 2 );
4022 END IF;
4023
4024 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4025 l_currency_code ,1,1),0) = 0 )
4026 OR
4027 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4028 l_currency_code ,1,1),0) > 0 )
4029 AND ( l_currency_code = p_limit_curr_code )
4030 )
4031 THEN
4032 BEGIN
4033 l_term :=
4034 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4035 ( p_amount => l_br_balance
4036 , p_transactional_currency => l_currency_code
4037 , p_limit_currency => p_limit_curr_code
4038 , p_functional_currency => g_functional_currency
4039 , p_conversion_date => SYSDATE
4040 , p_conversion_type => g_conversion_type
4041 );
4042 l_total := l_total + NVL( l_term, 0 );
4043
4044 EXCEPTION
4045 WHEN GL_CURRENCY_API.NO_RATE
4046 OR GL_CURRENCY_API.INVALID_CURRENCY THEN
4047 oe_debug_pub.add( 'conversion exception for '
4048 || l_currency_code, 1 );
4049 add_error_currency( x_error_curr_tbl, l_currency_code );
4050 END;
4051 ELSE
4052 oe_debug_pub.add(' Currency excluded from usages list ');
4053 END IF;
4054
4055 FETCH customer_br_all_curr_stub_csr
4056 INTO l_br_balance, l_currency_code;
4057 i := i + 1;
4058 END LOOP;
4059 CLOSE customer_br_all_curr_stub_csr ;
4060 END IF;
4061
4062 -------------------------- end BR --------------------------
4063
4064 -----------------------------
4065 -- for fraction of Main Bucket
4066
4067 j := p_binary_tbl.FIRST;
4068 WHILE j IS NOT NULL
4069 LOOP
4070 l_bucket := p_binary_tbl(j).bucket;
4071 l_bucket_length := p_binary_tbl(j).bucket_length;
4072
4073 ----change for the Return project
4074 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
4075 THEN
4076 ----returns are not included, old code
4077 OPEN customer_balance_all_curr_csr;
4078 FETCH customer_balance_all_curr_csr
4079 INTO l_balance, l_currency_code;
4080
4081 -- For each currency in the cursor
4082 WHILE NOT customer_balance_all_curr_csr%NOTFOUND
4083 LOOP
4084 IF G_debug_flag = 'Y'
4085 THEN
4086 oe_debug_pub.add
4087 ( '(all) cursor at ' || l_currency_code
4088 || ' currency with balance '
4089 || l_balance || ' and bucket/length '
4090 || l_bucket || '/' || l_bucket_length, 2 );
4091 END IF;
4092
4093 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4094 l_currency_code ,1,1),0) = 0 )
4095 OR
4096 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4097 l_currency_code ,1,1),0) > 0 )
4098 AND ( l_currency_code = p_limit_curr_code )
4099 )
4100 THEN
4101 BEGIN
4102 l_term :=
4103 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4104 ( p_amount => l_balance
4105 , p_transactional_currency => l_currency_code
4106 , p_limit_currency => p_limit_curr_code
4107 , p_functional_currency => g_functional_currency
4108 , p_conversion_date => SYSDATE
4109 , p_conversion_type => g_conversion_type
4110 );
4111 l_total := l_total + NVL( l_term, 0 );
4112
4113 EXCEPTION
4114 WHEN GL_CURRENCY_API.NO_RATE OR
4115 GL_CURRENCY_API.INVALID_CURRENCY THEN
4116
4117 oe_debug_pub.add( 'conversion exception for '
4118 || l_currency_code, 1 );
4119 add_error_currency( x_error_curr_tbl, l_currency_code );
4120 END;
4121 ELSE
4122 oe_debug_pub.add(' Currency excluded from usages list ');
4123 END IF;
4124
4125 FETCH customer_balance_all_curr_csr
4126 INTO l_balance, l_currency_code;
4127
4128 i := i + 1;
4129 END LOOP;
4130 CLOSE customer_balance_all_curr_csr;
4131
4132 ------returns are included
4133 ELSE
4134 OPEN customer_bal_all_curr_ret_csr;
4135 FETCH customer_bal_all_curr_ret_csr
4136 INTO l_balance, l_currency_code;
4137
4138 -- For each currency in the cursor
4139 WHILE NOT customer_bal_all_curr_ret_csr%NOTFOUND
4140 LOOP
4141 IF G_debug_flag = 'Y'
4142 THEN
4143 oe_debug_pub.add
4144 ( '(all) cursor at ' || l_currency_code
4145 || ' currency with balance '
4146 || l_balance || ' and bucket/length '
4147 || l_bucket || '/' || l_bucket_length, 2 );
4148 END IF;
4149
4150 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4151 l_currency_code ,1,1),0) = 0 )
4152 OR
4153 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4154 l_currency_code ,1,1),0) > 0 )
4155 AND ( l_currency_code = p_limit_curr_code )
4156 )
4157 THEN
4158 BEGIN
4159 l_term :=
4160 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4161 ( p_amount => l_balance
4162 , p_transactional_currency => l_currency_code
4163 , p_limit_currency => p_limit_curr_code
4164 , p_functional_currency => g_functional_currency
4165 , p_conversion_date => SYSDATE
4166 , p_conversion_type => g_conversion_type
4167 );
4168 l_total := l_total + NVL( l_term, 0 );
4169
4170 EXCEPTION
4171 WHEN GL_CURRENCY_API.NO_RATE OR
4172 GL_CURRENCY_API.INVALID_CURRENCY THEN
4173
4174 oe_debug_pub.add( 'conversion exception for '
4175 || l_currency_code, 1 );
4176 add_error_currency( x_error_curr_tbl, l_currency_code );
4177 END;
4178 ELSE
4179 oe_debug_pub.add(' Currency excluded from usages list ');
4180 END IF;
4181
4182 FETCH customer_bal_all_curr_ret_csr
4183 INTO l_balance, l_currency_code;
4184
4185 i := i + 1;
4186 END LOOP;
4187
4188 CLOSE customer_bal_all_curr_ret_csr;
4189
4190 END IF; ------end of checking if returns are included
4191
4192 j := p_binary_tbl.NEXT(j);
4193 END LOOP; -- J
4194
4195 END IF; -- global/not global
4196 END IF; -- all currency
4197
4198 ----------------------- END customer -----------------------------
4199 ------------------------------------------------------------------
4200 --------------------------Party-----------------------------------
4201 -------------------------------------------------------------------
4202 ELSIF p_party_id is NOT NULL
4203 THEN
4204
4205 IF G_debug_flag = 'Y'
4206 THEN
4207 oe_debug_pub.add( 'exposure at Party level ',1);
4208 oe_debug_pub.add( 'g_use_party_hierarchy => '|| g_use_party_hierarchy );
4209 END IF;
4210
4211 IF NVL(p_include_all_flag,'N') = 'N'
4212 THEN
4213 IF G_debug_flag = 'Y'
4214 THEN
4215 oe_debug_pub.add( 'NOT ALL currencies ');
4216 END IF;
4217
4218 IF g_use_party_hierarchy = 'N'
4219 THEN
4220 i := p_usage_curr_tbl.FIRST;
4221 WHILE i IS NOT NULL
4222 LOOP
4223 l_currency_code := p_usage_curr_tbl(i).usage_curr_code;
4224 --------------------------
4225 -- for left of Main Bucket
4226 l_bucket := p_main_bucket;
4227 l_bucket_length := G_MAX_BUCKET_LENGTH;
4228
4229 ----change for the Return project
4230 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
4231 THEN
4232 -----returns are not included
4233 OPEN party_balance_stub_csr_global ;
4234 FETCH party_balance_stub_csr_global
4235 INTO l_balance;
4236
4237 -----returns are included
4238 ELSE
4239 OPEN party_bal_stub_ret_csr_global ;
4240 FETCH party_bal_stub_ret_csr_global
4241 INTO l_balance;
4242 END IF;
4243
4244 IF p_credit_check_rule_rec.open_ar_days IS NOT NULL
4245 AND p_credit_check_rule_rec.open_ar_balance_flag = 'Y'
4246 AND b8 = G_INVOICES
4247 THEN
4248 OPEN party_br_stub_csr_global ;
4249 FETCH party_br_stub_csr_global
4250 INTO l_br_balance ;
4251
4252 CLOSE party_br_stub_csr_global ;
4253 END IF;
4254
4255 IF G_debug_flag = 'Y'
4256 THEN
4257 oe_debug_pub.add
4258 ( 'global stub cursor at ' || l_currency_code
4259 || ' currency with balance ' || l_balance, 2 );
4260 oe_debug_pub.add
4261 ( 'global stub cursor at ' || l_currency_code
4262 || ' currency with BR balance ' || l_br_balance, 2 );
4263 END IF;
4264 BEGIN
4265 l_term :=
4266 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4267 ( p_amount => l_balance +
4268 NVL(l_br_balance,0)
4269 , p_transactional_currency => l_currency_code
4270 , p_limit_currency => p_limit_curr_code
4271 , p_functional_currency => g_functional_currency
4272 , p_conversion_date => SYSDATE
4273 , p_conversion_type => g_conversion_type
4274 );
4275 l_total := l_total + NVL( l_term, 0 );
4276
4277 EXCEPTION
4278 WHEN GL_CURRENCY_API.NO_RATE OR
4279 GL_CURRENCY_API.INVALID_CURRENCY THEN
4280 oe_debug_pub.add( 'conversion exception for '
4281 || l_currency_code, 1 );
4282 add_error_currency( x_error_curr_tbl, l_currency_code );
4283 END;
4284
4285 ----change for the Return project
4286 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
4287 THEN
4288 CLOSE party_balance_stub_csr_global;
4289 ELSE
4290 CLOSE party_bal_stub_ret_csr_global;
4291 END IF;
4292
4293 -----------------------------
4294 -- for fraction of Main Bucket
4295
4296 j := p_binary_tbl.FIRST;
4297 WHILE j IS NOT NULL
4298 LOOP
4299 l_bucket := p_binary_tbl(j).bucket;
4300 l_bucket_length := p_binary_tbl(j).bucket_length;
4301
4302
4303 ----change for the Return project
4304 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
4305 THEN
4306 OPEN party_balance_csr_global ;
4307
4308 FETCH party_balance_csr_global
4309 INTO l_balance;
4310
4311 ---include returns
4312 ELSE
4313 OPEN party_balance_ret_csr_global ;
4314
4315 FETCH party_balance_ret_csr_global
4316 INTO l_balance;
4317 END IF;
4318
4319 IF G_debug_flag = 'Y'
4320 THEN
4321 oe_debug_pub.add
4322 ( 'global cursor at ' || l_currency_code
4323 || ' currency with balance ' || l_balance, 2 );
4324 END IF;
4325 BEGIN
4326 l_term :=
4327 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4328 ( p_amount => l_balance
4329 , p_transactional_currency => l_currency_code
4330 , p_limit_currency => p_limit_curr_code
4331 , p_functional_currency => g_functional_currency
4332 , p_conversion_date => SYSDATE
4333 , p_conversion_type => g_conversion_type
4334 );
4335 l_total := l_total + NVL( l_term, 0 );
4336
4337 EXCEPTION
4338 WHEN GL_CURRENCY_API.NO_RATE OR
4339 GL_CURRENCY_API.INVALID_CURRENCY THEN
4340 oe_debug_pub.add( 'conversion exception for '
4341 || l_currency_code, 1 );
4342 add_error_currency( x_error_curr_tbl, l_currency_code );
4343 END;
4344
4345 ----change for the Return project
4346 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
4347 THEN
4348
4349 CLOSE party_balance_csr_global ;
4350 ELSE
4351 CLOSE party_balance_ret_csr_global ;
4352 END IF;
4353
4354 j := p_binary_tbl.NEXT(j);
4355
4356 END LOOP;
4357
4358 i := p_usage_curr_tbl.NEXT(i);
4359 END LOOP; -- i loop
4360
4361 ELSE --- Hierarchy usages
4362 IF G_debug_flag = 'Y'
4363 THEN
4364 oe_debug_pub.add(' Hierarchy Usages ',1);
4365 oe_debug_pub.add(' OE_CREDIT_CHECK_UTIL.G_hierarchy_type => '||
4366 OE_CREDIT_CHECK_UTIL.G_hierarchy_type );
4367 oe_debug_pub.add(' G_MAX_BUCKET_LENGTH => '||
4368 G_MAX_BUCKET_LENGTH);
4369 END IF;
4370
4371 i := p_usage_curr_tbl.FIRST;
4372 WHILE i IS NOT NULL
4373 LOOP
4374 l_currency_code := p_usage_curr_tbl(i).usage_curr_code;
4375 --------------------------
4376 -- for left of Main Bucket
4377 l_bucket := p_main_bucket;
4378 l_bucket_length := G_MAX_BUCKET_LENGTH;
4379
4380 ---change for the Return project
4381 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
4382 THEN
4383 OPEN party_h_bal_stub_csr_gl ;
4384 FETCH party_h_bal_stub_csr_gl
4385 INTO l_balance;
4386 ELSE
4387 OPEN party_h_bal_ret_stub_csr_gl ;
4388 FETCH party_h_bal_ret_stub_csr_gl
4389 INTO l_balance;
4390 END IF;
4391
4392 IF p_credit_check_rule_rec.open_ar_days IS NOT NULL
4393 AND p_credit_check_rule_rec.open_ar_balance_flag = 'Y'
4394 AND b8 = G_INVOICES
4395 THEN
4396 OPEN party_br_h_stub_csr_gl ;
4397 FETCH party_br_h_stub_csr_gl
4398 INTO l_br_balance ;
4399 CLOSE party_br_h_stub_csr_gl ;
4400 END IF;
4401
4402 IF G_debug_flag = 'Y'
4403 THEN
4404 oe_debug_pub.add
4405 ( 'global stub cursor at ' || l_currency_code
4406 || ' currency with balance ' || l_balance, 2 );
4407 END IF;
4408
4409 BEGIN
4410 l_term :=
4411 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4412 ( p_amount => l_balance
4413 + nvl(l_br_balance ,0)
4414 , p_transactional_currency => l_currency_code
4415 , p_limit_currency => p_limit_curr_code
4416 , p_functional_currency => g_functional_currency
4417 , p_conversion_date => SYSDATE
4418 , p_conversion_type => g_conversion_type
4419 );
4420 l_total := l_total + NVL( l_term, 0 );
4421
4422 EXCEPTION
4423 WHEN GL_CURRENCY_API.NO_RATE OR
4424 GL_CURRENCY_API.INVALID_CURRENCY THEN
4425 oe_debug_pub.add( 'conversion exception for '
4426 || l_currency_code, 1 );
4427 add_error_currency( x_error_curr_tbl, l_currency_code );
4428 END;
4429
4430 ---change for the Return project
4431 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
4432 THEN
4433 CLOSE party_h_bal_stub_csr_gl ;
4434 ELSE
4435 CLOSE party_h_bal_ret_stub_csr_gl ;
4436 END IF;
4437
4438 -----------------------------
4439 -- for fraction of Main Bucket
4440
4441 j := p_binary_tbl.FIRST;
4442 WHILE j IS NOT NULL
4443 LOOP
4444 l_bucket := p_binary_tbl(j).bucket;
4445 l_bucket_length := p_binary_tbl(j).bucket_length;
4446
4447 ---change for the Return project
4448 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
4449 THEN
4450
4451 OPEN party_h_balance_csr_global ;
4452 FETCH party_h_balance_csr_global
4453 INTO l_balance;
4454 ELSE
4455 OPEN party_h_bal_ret_csr_global ;
4456 FETCH party_h_bal_ret_csr_global
4457 INTO l_balance;
4458 END IF;
4459
4460 IF G_debug_flag = 'Y'
4461 THEN
4462 oe_debug_pub.add
4463 ( 'global cursor at ' || l_currency_code
4464 || ' currency with balance ' || l_balance, 2 );
4465 END IF;
4466
4467 BEGIN
4468 l_term :=
4469 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4470 ( p_amount => l_balance
4471 , p_transactional_currency => l_currency_code
4472 , p_limit_currency => p_limit_curr_code
4473 , p_functional_currency => g_functional_currency
4474 , p_conversion_date => SYSDATE
4475 , p_conversion_type => g_conversion_type
4476 );
4477 l_total := l_total + NVL( l_term, 0 );
4478
4479 EXCEPTION
4480 WHEN GL_CURRENCY_API.NO_RATE OR
4481 GL_CURRENCY_API.INVALID_CURRENCY THEN
4482 oe_debug_pub.add( 'conversion exception for '
4483 || l_currency_code, 1 );
4484 add_error_currency( x_error_curr_tbl, l_currency_code );
4485 END;
4486
4487 ---change for the Return project
4488 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
4489 THEN
4490 CLOSE party_h_balance_csr_global ;
4491 ELSE
4492 CLOSE party_h_bal_ret_csr_global ;
4493 END IF;
4494
4495 j := p_binary_tbl.NEXT(j);
4496
4497 END LOOP;
4498
4499 i := p_usage_curr_tbl.NEXT(i);
4500 END LOOP; -- i loop
4501
4502
4503 END IF; -- hierarchy check
4504
4505 ELSE -- level all currencies
4506 IF G_debug_flag = 'Y'
4507 THEN
4508 oe_debug_pub.add(' Into ALL currencies party ');
4509 END IF;
4510
4511
4512 i := 0;
4513 --------------------------
4514 -- for left of Main Bucket
4515 l_bucket := p_main_bucket;
4516 l_bucket_length := G_MAX_BUCKET_LENGTH;
4517
4518 IF g_use_party_hierarchy = 'N'
4519 THEN
4520 IF G_debug_flag = 'Y'
4521 THEN
4522 oe_debug_pub.add( ' Into party all curr ');
4523 END IF;
4524
4525 ---change for the Return project
4526 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
4527 THEN
4528 ---returns are not included
4529 OPEN party_all_curr_stub_csr_global ;
4530 FETCH party_all_curr_stub_csr_global
4531 INTO l_balance, l_currency_code;
4532 -- For each currency in the cursor
4533
4534 WHILE NOT party_all_curr_stub_csr_global%NOTFOUND
4535 LOOP
4536 IF G_debug_flag = 'Y'
4537 THEN
4538 oe_debug_pub.add
4539 ( '(all) stub global cursor at ' || l_currency_code
4540 || ' currency with balance '
4541 || l_balance || ' and bucket/length '
4542 || l_bucket || '/' || l_bucket_length, 2 );
4543 END IF;
4544
4545 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4546 l_currency_code ,1,1),0) = 0 )
4547 OR
4548 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4549 l_currency_code ,1,1),0) > 0 )
4550 AND ( l_currency_code = p_limit_curr_code )
4551 )
4552 THEN
4553 BEGIN
4554 l_term :=
4555 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4556 ( p_amount => l_balance
4557 , p_transactional_currency => l_currency_code
4558 , p_limit_currency => p_limit_curr_code
4559 , p_functional_currency => g_functional_currency
4560 , p_conversion_date => SYSDATE
4561 , p_conversion_type => g_conversion_type
4562 );
4563 l_total := l_total + NVL( l_term, 0 );
4564
4565 EXCEPTION
4566 WHEN GL_CURRENCY_API.NO_RATE
4567 OR GL_CURRENCY_API.INVALID_CURRENCY THEN
4568 oe_debug_pub.add( 'conversion exception for '
4569 || l_currency_code, 1 );
4570 add_error_currency( x_error_curr_tbl, l_currency_code );
4571 END;
4572 ELSE
4573 oe_debug_pub.add( 'Currency excluded from usages ');
4574 END IF; -- exclude curr list
4575
4576 FETCH party_all_curr_stub_csr_global
4577 INTO l_balance, l_currency_code;
4578
4579 i := i + 1;
4580 END LOOP;
4581
4582 CLOSE party_all_curr_stub_csr_global ;
4583
4584 -----returns are included
4585 ELSE
4586 OPEN party_all_curr_stub_ret_csr_gl ;
4587 FETCH party_all_curr_stub_ret_csr_gl
4588 INTO l_balance, l_currency_code;
4589 -- For each currency in the cursor
4590
4591 WHILE NOT party_all_curr_stub_ret_csr_gl%NOTFOUND
4592 LOOP
4593 IF G_debug_flag = 'Y'
4594 THEN
4595 oe_debug_pub.add
4596 ( '(all) stub global cursor at ' || l_currency_code
4597 || ' currency with balance '
4598 || l_balance || ' and bucket/length '
4599 || l_bucket || '/' || l_bucket_length, 2 );
4600 END IF;
4601
4602 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4603 l_currency_code ,1,1),0) = 0 )
4604 OR
4605 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4606 l_currency_code ,1,1),0) > 0 )
4607 AND ( l_currency_code = p_limit_curr_code )
4608 )
4609 THEN
4610 BEGIN
4611 l_term :=
4612 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4613 ( p_amount => l_balance
4614 , p_transactional_currency => l_currency_code
4615 , p_limit_currency => p_limit_curr_code
4616 , p_functional_currency => g_functional_currency
4617 , p_conversion_date => SYSDATE
4618 , p_conversion_type => g_conversion_type
4619 );
4620 l_total := l_total + NVL( l_term, 0 );
4621
4622 EXCEPTION
4623 WHEN GL_CURRENCY_API.NO_RATE
4624 OR GL_CURRENCY_API.INVALID_CURRENCY THEN
4625 oe_debug_pub.add( 'conversion exception for '
4626 || l_currency_code, 1 );
4627 add_error_currency( x_error_curr_tbl, l_currency_code );
4628 END;
4629 ELSE
4630 oe_debug_pub.add( 'Currency excluded from usages ');
4631 END IF; -- exclude curr list
4632
4633 FETCH party_all_curr_stub_ret_csr_gl
4634 INTO l_balance, l_currency_code;
4635
4636 i := i + 1;
4637 END LOOP;
4638
4639 CLOSE party_all_curr_stub_ret_csr_gl ;
4640
4641 END IF; ---end of checking if returns are included
4642
4643 --------------------- start BR ---------------
4644 IF p_credit_check_rule_rec.open_ar_days IS NOT NULL
4645 AND p_credit_check_rule_rec.open_ar_balance_flag = 'Y'
4646 AND b8 = G_INVOICES
4647 THEN
4648
4649 OPEN party_br_all_curr_stub_csr_gl ;
4650 FETCH party_br_all_curr_stub_csr_gl
4651 INTO l_br_balance, l_currency_code;
4652 -- For each currency in the cursor
4653
4654 WHILE NOT party_br_all_curr_stub_csr_gl%NOTFOUND
4655 LOOP
4656
4657 IF G_debug_flag = 'Y'
4658 THEN
4659 oe_debug_pub.add
4660 ( '(all) stub global cursor at ' || l_currency_code
4661 || ' currency with BR balance '
4662 || l_br_balance || ' and bucket/length '
4663 || l_bucket || '/' || l_bucket_length, 2 );
4664 END IF;
4665
4666 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4667 l_currency_code ,1,1),0) = 0 )
4668 OR
4669 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4670 l_currency_code ,1,1),0) > 0 )
4671 AND ( l_currency_code = p_limit_curr_code )
4672 )
4673 THEN
4674 BEGIN
4675 l_term :=
4676 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4677 ( p_amount => l_br_balance
4678 , p_transactional_currency => l_currency_code
4679 , p_limit_currency => p_limit_curr_code
4680 , p_functional_currency => g_functional_currency
4681 , p_conversion_date => SYSDATE
4682 , p_conversion_type => g_conversion_type
4683 );
4684 l_total := l_total + NVL( l_term, 0 );
4685
4686 EXCEPTION
4687 WHEN GL_CURRENCY_API.NO_RATE
4688 OR GL_CURRENCY_API.INVALID_CURRENCY THEN
4689 oe_debug_pub.add( 'conversion exception for '
4690 || l_currency_code, 1 );
4691 add_error_currency( x_error_curr_tbl, l_currency_code );
4692 END;
4693 ELSE
4694 oe_debug_pub.add( 'Currency excluded from usages ');
4695 END IF; -- exclude curr list
4696
4697 FETCH party_br_all_curr_stub_csr_gl
4698 INTO l_br_balance, l_currency_code;
4699
4700 i := i + 1;
4701 END LOOP;
4702
4703 CLOSE party_br_all_curr_stub_csr_gl ;
4704
4705 END IF;
4706
4707 -----------------------------end BR ------------
4708 -- for fraction of Main Bucket
4709
4710 j := p_binary_tbl.FIRST;
4711 WHILE j IS NOT NULL LOOP
4712 l_bucket := p_binary_tbl(j).bucket;
4713 l_bucket_length := p_binary_tbl(j).bucket_length;
4714
4715 ---change for the Return project
4716 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
4717 THEN
4718 ---returns are not included
4719 OPEN party_all_curr_csr_global ;
4720 FETCH party_all_curr_csr_global
4721 INTO l_balance, l_currency_code;
4722
4723 -- For each currency that exists, the cursor returns a row.
4724 -- Convert the balance and sum up to total exposure
4725
4726 WHILE NOT party_all_curr_csr_global%NOTFOUND
4727 LOOP
4728
4729 IF G_debug_flag = 'Y'
4730 THEN
4731 oe_debug_pub.add
4732 ( 'party all global cursor at ' || l_currency_code
4733 || ' currency with balance '
4734 || l_balance || ' and bucket/length '
4735 || l_bucket || '/' || l_bucket_length, 2 );
4736 END IF;
4737
4738 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4739 l_currency_code ,1,1),0) = 0 )
4740 OR
4741 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4742 l_currency_code ,1,1),0) > 0 )
4743 AND ( l_currency_code = p_limit_curr_code )
4744 )
4745 THEN
4746 BEGIN
4747 l_term :=
4748 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4749 ( p_amount => l_balance
4750 , p_transactional_currency => l_currency_code
4751 , p_limit_currency => p_limit_curr_code
4752 , p_functional_currency => g_functional_currency
4753 , p_conversion_date => SYSDATE
4754 , p_conversion_type => g_conversion_type
4755 );
4756 l_total := l_total + NVL( l_term, 0 );
4757
4758 EXCEPTION
4759 WHEN GL_CURRENCY_API.NO_RATE OR
4760 GL_CURRENCY_API.INVALID_CURRENCY THEN
4761 oe_debug_pub.add( 'conversion exception for ' ||
4762 l_currency_code, 1 );
4763 add_error_currency( x_error_curr_tbl, l_currency_code );
4764 END;
4765 ELSE
4766 oe_debug_pub.add( 'Currency excluded from usages ');
4767 END IF; -- exclude curr list
4768
4769 FETCH party_all_curr_csr_global INTO l_balance, l_currency_code;
4770
4771 i := i + 1;
4772 END LOOP;
4773 CLOSE party_all_curr_csr_global;
4774
4775 ----returns are included
4776 ELSE
4777
4778 OPEN party_all_curr_ret_csr_gl ;
4779 FETCH party_all_curr_ret_csr_gl
4780 INTO l_balance, l_currency_code;
4781
4782 -- For each currency that exists, the cursor returns a row.
4783 -- Convert the balance and sum up to total exposure
4784
4785 WHILE NOT party_all_curr_ret_csr_gl%NOTFOUND
4786 LOOP
4787
4788 IF G_debug_flag = 'Y'
4789 THEN
4790 oe_debug_pub.add
4791 ( 'party all global cursor at ' || l_currency_code
4792 || ' currency with balance '
4793 || l_balance || ' and bucket/length '
4794 || l_bucket || '/' || l_bucket_length, 2 );
4795 END IF;
4796
4797 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4798 l_currency_code ,1,1),0) = 0 )
4799 OR
4800 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4801 l_currency_code ,1,1),0) > 0 )
4802 AND ( l_currency_code = p_limit_curr_code )
4803 )
4804 THEN
4805 BEGIN
4806 l_term :=
4807 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4808 ( p_amount => l_balance
4809 , p_transactional_currency => l_currency_code
4810 , p_limit_currency => p_limit_curr_code
4811 , p_functional_currency => g_functional_currency
4812 , p_conversion_date => SYSDATE
4813 , p_conversion_type => g_conversion_type
4814 );
4815 l_total := l_total + NVL( l_term, 0 );
4816
4817 EXCEPTION
4818 WHEN GL_CURRENCY_API.NO_RATE OR
4819 GL_CURRENCY_API.INVALID_CURRENCY THEN
4820 oe_debug_pub.add( 'conversion exception for ' ||
4821 l_currency_code, 1 );
4822 add_error_currency( x_error_curr_tbl, l_currency_code );
4823 END;
4824 ELSE
4825 oe_debug_pub.add( 'Currency excluded from usages ');
4826 END IF; -- exclude curr list
4827
4828 FETCH party_all_curr_ret_csr_gl
4829 INTO l_balance, l_currency_code;
4830
4831 i := i + 1;
4832 END LOOP;
4833
4834 CLOSE party_all_curr_ret_csr_gl;
4835
4836 END IF; ---end of checking if returns are included
4837
4838 j := p_binary_tbl.NEXT(j);
4839 END LOOP; -- J
4840
4841 ELSE -- Hierarchy
4842
4843 IF G_debug_flag = 'Y'
4844 THEN
4845 oe_debug_pub.add(' Into party Hierarchy ',1);
4846 END IF;
4847
4848 ---change for the Return project
4849 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
4850 THEN
4851 ---returns are not included
4852 OPEN party_h_all_curr_stub_csr_gl ;
4853
4854 FETCH party_h_all_curr_stub_csr_gl
4855 INTO l_balance, l_currency_code;
4856
4857 -- For each currency in the cursor
4858
4859 WHILE NOT party_h_all_curr_stub_csr_gl%NOTFOUND
4860 LOOP
4861 IF G_debug_flag = 'Y'
4862 THEN
4863 oe_debug_pub.add
4864 ( '(all) stub cursor at ' || l_currency_code
4865 || ' currency with balance '
4866 || l_balance || ' and bucket/length '
4867 || l_bucket || '/' || l_bucket_length, 2 );
4868 END IF;
4869
4870 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4871 l_currency_code ,1,1),0) = 0 )
4872 OR
4873 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4874 l_currency_code ,1,1),0) > 0 )
4875 AND ( l_currency_code = p_limit_curr_code )
4876 )
4877 THEN
4878 BEGIN
4879 l_term :=
4880 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4881 ( p_amount => l_balance
4882 , p_transactional_currency => l_currency_code
4883 , p_limit_currency => p_limit_curr_code
4884 , p_functional_currency => g_functional_currency
4885 , p_conversion_date => SYSDATE
4886 , p_conversion_type => g_conversion_type
4887 );
4888 l_total := l_total + NVL( l_term, 0 );
4889
4890 EXCEPTION
4891 WHEN GL_CURRENCY_API.NO_RATE
4892 OR GL_CURRENCY_API.INVALID_CURRENCY
4893 THEN
4894 oe_debug_pub.add( 'conversion exception for '
4895 || l_currency_code, 1 );
4896 add_error_currency( x_error_curr_tbl, l_currency_code );
4897 END;
4898 ELSE
4899 oe_debug_pub.add(' Currency excluded from usages list ');
4900 END IF;
4901
4902 FETCH party_h_all_curr_stub_csr_gl
4903 INTO l_balance, l_currency_code;
4904 i := i + 1;
4905 END LOOP;
4906
4907 CLOSE party_h_all_curr_stub_csr_gl ;
4908
4909 -----returns are included
4910 ELSE
4911 OPEN p_h_all_curr_stub_ret_csr_gl ;
4912
4913 FETCH p_h_all_curr_stub_ret_csr_gl
4914 INTO l_balance, l_currency_code;
4915
4916 -- For each currency in the cursor
4917
4918 WHILE NOT p_h_all_curr_stub_ret_csr_gl%NOTFOUND
4919 LOOP
4920 IF G_debug_flag = 'Y'
4921 THEN
4922 oe_debug_pub.add
4923 ( '(all) stub cursor at ' || l_currency_code
4924 || ' currency with balance '
4925 || l_balance || ' and bucket/length '
4926 || l_bucket || '/' || l_bucket_length, 2 );
4927 END IF;
4928
4929 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4930 l_currency_code ,1,1),0) = 0 )
4931 OR
4932 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4933 l_currency_code ,1,1),0) > 0 )
4934 AND ( l_currency_code = p_limit_curr_code )
4935 )
4936 THEN
4937 BEGIN
4938 l_term :=
4939 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
4940 ( p_amount => l_balance
4941 , p_transactional_currency => l_currency_code
4942 , p_limit_currency => p_limit_curr_code
4943 , p_functional_currency => g_functional_currency
4944 , p_conversion_date => SYSDATE
4945 , p_conversion_type => g_conversion_type
4946 );
4947 l_total := l_total + NVL( l_term, 0 );
4948
4949 EXCEPTION
4950 WHEN GL_CURRENCY_API.NO_RATE
4951 OR GL_CURRENCY_API.INVALID_CURRENCY
4952 THEN
4953 oe_debug_pub.add( 'conversion exception for '
4954 || l_currency_code, 1 );
4955 add_error_currency( x_error_curr_tbl, l_currency_code );
4956 END;
4957 ELSE
4958 oe_debug_pub.add(' Currency excluded from usages list ');
4959 END IF;
4960
4961 FETCH p_h_all_curr_stub_ret_csr_gl
4962 INTO l_balance, l_currency_code;
4963 i := i + 1;
4964 END LOOP;
4965
4966 CLOSE p_h_all_curr_stub_ret_csr_gl ;
4967
4968 END IF; ----end of checking if retruns are included
4969
4970 ------------------------ BR -------------
4971 IF p_credit_check_rule_rec.open_ar_days IS NOT NULL
4972 AND p_credit_check_rule_rec.open_ar_balance_flag = 'Y'
4973 AND b8 = G_INVOICES
4974 THEN
4975 OPEN party_br_h_all_curr_stub_gl ;
4976 FETCH party_br_h_all_curr_stub_gl
4977 INTO l_br_balance, l_currency_code;
4978 -- For each currency in the cursor
4979
4980 WHILE NOT party_br_h_all_curr_stub_gl%NOTFOUND
4981 LOOP
4982 IF G_debug_flag = 'Y'
4983 THEN
4984 oe_debug_pub.add
4985 ( '(all) stub cursor at ' || l_currency_code
4986 || ' currency with BR balance '
4987 || l_BR_balance || ' and bucket/length '
4988 || l_bucket || '/' || l_bucket_length, 2 );
4989 END IF;
4990
4991 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4992 l_currency_code ,1,1),0) = 0 )
4993 OR
4994 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
4995 l_currency_code ,1,1),0) > 0 )
4996 AND ( l_currency_code = p_limit_curr_code )
4997 )
4998 THEN
4999 BEGIN
5000 l_term :=
5001 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
5002 ( p_amount => l_br_balance
5003 , p_transactional_currency => l_currency_code
5004 , p_limit_currency => p_limit_curr_code
5005 , p_functional_currency => g_functional_currency
5006 , p_conversion_date => SYSDATE
5007 , p_conversion_type => g_conversion_type
5008 );
5009 l_total := l_total + NVL( l_term, 0 );
5010
5011 EXCEPTION
5012 WHEN GL_CURRENCY_API.NO_RATE
5013 OR GL_CURRENCY_API.INVALID_CURRENCY THEN
5014 oe_debug_pub.add( 'conversion exception for '
5015 || l_currency_code, 1 );
5016 add_error_currency( x_error_curr_tbl, l_currency_code );
5017 END;
5018 ELSE
5019 oe_debug_pub.add(' Currency excluded from usages list ');
5020 END IF;
5021
5022 FETCH party_br_h_all_curr_stub_gl
5023 INTO l_br_balance, l_currency_code;
5024 i := i + 1;
5025 END LOOP;
5026
5027 CLOSE party_br_h_all_curr_stub_gl ;
5028 END IF;
5029 --------------------- end BR ------------
5030 -- for fraction of Main Bucket
5031
5032 j := p_binary_tbl.FIRST;
5033 WHILE j IS NOT NULL
5034 LOOP
5035 l_bucket := p_binary_tbl(j).bucket;
5036 l_bucket_length := p_binary_tbl(j).bucket_length;
5037
5038 IF NVL(p_credit_check_rule_rec.include_returns_flag,'N') = 'N'
5039 THEN
5040 ---returns are not included
5041 OPEN party_h_all_curr_csr_global ;
5042
5043 FETCH party_h_all_curr_csr_global
5044 INTO l_balance, l_currency_code;
5045
5046 -- For each currency in the cursor
5047 WHILE NOT party_h_all_curr_csr_global%NOTFOUND
5048 LOOP
5049 IF G_debug_flag = 'Y'
5050 THEN
5051 oe_debug_pub.add
5052 ( '(all) cursor at ' || l_currency_code
5053 || ' currency with balance '
5054 || l_balance || ' and bucket/length '
5055 || l_bucket || '/' || l_bucket_length, 2 );
5056 END IF;
5057
5058 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
5059 l_currency_code ,1,1),0) = 0 )
5060 OR
5061 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
5062 l_currency_code ,1,1),0) > 0 )
5063 AND ( l_currency_code = p_limit_curr_code )
5064 )
5065 THEN
5066 BEGIN
5067 l_term :=
5068 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
5069 ( p_amount => l_balance
5070 , p_transactional_currency => l_currency_code
5071 , p_limit_currency => p_limit_curr_code
5072 , p_functional_currency => g_functional_currency
5073 , p_conversion_date => SYSDATE
5074 , p_conversion_type => g_conversion_type
5075 );
5076 l_total := l_total + NVL( l_term, 0 );
5077
5078 EXCEPTION
5079 WHEN GL_CURRENCY_API.NO_RATE OR
5080 GL_CURRENCY_API.INVALID_CURRENCY
5081 THEN
5082
5083 oe_debug_pub.add( 'conversion exception for '
5084 || l_currency_code, 1 );
5085 add_error_currency( x_error_curr_tbl, l_currency_code );
5086 END;
5087 ELSE
5088 oe_debug_pub.add(' Currency excluded from usages list ');
5089 END IF;
5090
5091 FETCH party_h_all_curr_csr_global
5092 INTO l_balance, l_currency_code;
5093
5094 i := i + 1;
5095 END LOOP;
5096 CLOSE party_h_all_curr_csr_global ;
5097
5098 ---returns are included
5099 ELSE
5100 OPEN party_h_all_curr_ret_csr_gl ;
5101
5102 FETCH party_h_all_curr_ret_csr_gl
5103 INTO l_balance, l_currency_code;
5104
5105 -- For each currency in the cursor
5106 --WHILE NOT party_h_all_curr_csr_global%NOTFOUND -- bug 9213846
5107 WHILE NOT party_h_all_curr_ret_csr_gl%NOTFOUND
5108 LOOP
5109 IF G_debug_flag = 'Y'
5110 THEN
5111 oe_debug_pub.add
5112 ( '(all) cursor at ' || l_currency_code
5113 || ' currency with balance '
5114 || l_balance || ' and bucket/length '
5115 || l_bucket || '/' || l_bucket_length, 2 );
5116 END IF;
5117
5118 IF ( NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
5119 l_currency_code ,1,1),0) = 0 )
5120 OR
5121 ((NVL(INSTRB(OE_CREDIT_CHECK_UTIL.G_excl_curr_list,
5122 l_currency_code ,1,1),0) > 0 )
5123 AND ( l_currency_code = p_limit_curr_code )
5124 )
5125 THEN
5126 BEGIN
5127 l_term :=
5128 OE_CREDIT_CHECK_UTIL.CONVERT_CURRENCY_AMOUNT
5129 ( p_amount => l_balance
5130 , p_transactional_currency => l_currency_code
5131 , p_limit_currency => p_limit_curr_code
5132 , p_functional_currency => g_functional_currency
5133 , p_conversion_date => SYSDATE
5134 , p_conversion_type => g_conversion_type
5135 );
5136 l_total := l_total + NVL( l_term, 0 );
5137
5138 EXCEPTION
5139 WHEN GL_CURRENCY_API.NO_RATE OR
5140 GL_CURRENCY_API.INVALID_CURRENCY
5141 THEN
5142
5143 oe_debug_pub.add( 'conversion exception for '
5144 || l_currency_code, 1 );
5145 add_error_currency( x_error_curr_tbl, l_currency_code );
5146 END;
5147 ELSE
5148 oe_debug_pub.add(' Currency excluded from usages list ');
5149 END IF;
5150
5151 FETCH party_h_all_curr_ret_csr_gl
5152 INTO l_balance, l_currency_code;
5153
5154 i := i + 1;
5155 END LOOP;
5156 CLOSE party_h_all_curr_ret_csr_gl ;
5157
5158 END IF; ---end of checking if returns are included
5159
5160 j := p_binary_tbl.NEXT(j);
5161 END LOOP; -- J
5162 END IF; -- global/not global
5163 END IF;
5164 ------------------------- end party ---------------------
5165 --------------------------------------------------------
5166
5167 END IF; -- top IF level
5168
5169
5170 IF G_debug_flag = 'Y'
5171 THEN
5172 oe_debug_pub.add( ' -------------------------------------');
5173 oe_debug_pub.add( ' Final l_total ===> ' || l_total,1 );
5174 oe_debug_pub.add( ' Return out from retrieve_exposure ');
5175 END IF;
5176
5177 return NVL(l_total,0) ;
5178
5179 EXCEPTION
5180
5181 WHEN OTHERS THEN
5182 oe_debug_pub.add(SQLERRM );
5183
5184 IF
5185 FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
5186 THEN
5187 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, 'retrieve_exposure');
5188 END IF;
5189
5190 END retrieve_exposure;
5191
5192 --TaxER start
5193 FUNCTION Is_Equal(p_param1 varchar2,p_param2 number)
5194 RETURN varchar2
5195 IS
5196 BEGIN
5197
5198 IF p_param1 IS NOT NULL and p_param2 IS NOT NULL THEN
5199 IF to_number(p_param1) = p_param2 THEN
5200 RETURN 'Y';
5201 END IF;
5202 END IF;
5203
5204 RETURN 'N';
5205 EXCEPTION
5206 WHEN OTHERS THEN
5207 RETURN 'N';
5208 END Is_Equal;
5209 --TaxER end
5210
5211 --========================================================================
5212 -- PROCEDURE : Init_Summary_Table PUBLIC
5213 -- PARAMETERS: x_retcode 0 success, 1 warning, 2 error
5214 -- x_errbuf error buffer
5215 -- p_lock_tables 'Y' or 'N' for all transaction tables
5216 ---
5217 -- COMMENT : This is the concurrent program body for
5218 -- Initialize Credit Summaries Table
5219 -- which will repopulate oe_credit_summaries table with summarized
5220 -- credit exposure information.
5221 -- The p_lock_tables flag specifies if
5222 -- the oe_order_lines_all, oe_order_headers_all,
5223 -- oe_cash_adjustments, ar_payment_schedules_all,
5224 -- ar_cash_receipts_all tables should all be locked in exclusive mode
5225 -- until all of the summary data is obtained.
5226 -- If the flag is not set to 'Y', none of the tables is locked.
5227 -- 08-22-03 Modified to only select lines with payment type cc flag = Y
5228 --=======================================================================--
5229 PROCEDURE Init_Summary_Table
5230 ( x_retcode OUT NOCOPY VARCHAR2
5231 , x_errbuf OUT NOCOPY VARCHAR2
5232 , p_lock_tables IN VARCHAR2
5233 )
5234 IS
5235
5236 l_return_status VARCHAR2(1);
5237 l_msg_count NUMBER;
5238 l_msg_data VARCHAR2(100);
5239
5240 l_created_by NUMBER;
5241 l_last_updated_by NUMBER;
5242 l_last_update_login NUMBER;
5243 l_request_id NUMBER;
5244 l_program_application_id NUMBER;
5245 l_program_id NUMBER;
5246
5247 l_level NUMBER;
5248 l_bucket_length NUMBER;
5249
5250 l_ret BOOLEAN; --4219133
5251 l_status VARCHAR2(30);
5252 l_ont_schema VARCHAR2(30);
5253 l_industry VARCHAR2(30);
5254 l_sql_stmnt VARCHAR2(200);
5255 l_past_due_bal VARCHAR2(1);
5256 l_order_hold_bal VARCHAR2(1);
5257 l_freight_bal VARCHAR2(1);
5258 l_sql_stmnt_hwm VARCHAR2(500); --8567481
5259 l_cc_level_flag VARCHAR2(1):='Y';
5260 --14689044 start
5261 l_header_uninvoiced_orders char(1) := 'N';
5262 l_line_uninvoiced_orders char(1) := 'N';
5263 l_header_uninvoiced_orders_tax char(1) := 'N';
5264 l_line_uninvoiced_orders_tax char(1) := 'N';
5265 l_header_uninvoiced_freight char(1) := 'N';
5266 l_line_uninvoiced_freight char(1) := 'N';
5267 l_header_and_line_freight char(1) := 'N';
5268 l_invoices char(1) := 'N';
5269 l_payments_at_risk char(1) := 'N';
5270 l_order_holds char(1) := 'N';
5271 l_line_holds char(1) := 'N';
5272 l_order_tax_holds char(1) := 'N';
5273 l_line_tax_holds char(1) := 'N';
5274 l_order_freight_holds char(1) := 'N';
5275 l_line_freight_holds char(1) := 'N';
5276 l_header_line_freight_holds char(1) := 'N';
5277 l_external_exposure char(1) := 'N';
5278 l_past_due_invoices char(1) := 'N';
5279 l_br_invoices char(1) := 'N';
5280 l_br_payments_at_risk char(1) := 'N';
5281 l_head_return_uninv_orders char(1) := 'N';
5282 l_line_return_uninv_orders char(1) := 'N';
5283 l_head_return_uninv_ord_tax char(1) := 'N';
5284 l_line_return_uninv_ord_tax char(1) := 'N';
5285 l_head_return_uninv_freight char(1) := 'N';
5286 l_line_return_uninv_freight char(1) := 'N';
5287 l_head_line_return_freight char(1) := 'N';
5288 l_order_return_holds char(1) := 'N';
5289 l_line_return_holds char(1) := 'N';
5290 l_order_return_tax_holds char(1) := 'N';
5291 l_line_return_tax_holds char(1) := 'N';
5292 l_order_return_freight_holds char(1) := 'N';
5293 l_line_return_freight_holds char(1) := 'N';
5294 l_h_l_return_freight_holds char(1) := 'N';
5295 l_tax char(1) := 'N'; --14689044
5296 --14689044 end
5297
5298 /*14689044 start
5299 CURSOR cc_precalc_rules
5300 IS
5301 SELECT
5302 orders_on_hold_flag
5303 , maximum_days_past_due
5304 , nvl(incl_freight_charges_flag, 'N') incl_freight_charges_flag
5305 FROM oe_credit_check_rules
5306 WHERE nvl(quick_cr_check_flag, 'N') = 'Y'
5307 AND sysdate between nvl(start_date_active, sysdate)
5308 and nvl(end_date_active, sysdate);
5309 14689044 end*/
5310 --14689044 start
5311 CURSOR credit_check_rules
5312 IS
5313 SELECT *
5314 FROM oe_credit_check_rules
5315 WHERE NVL(quick_cr_check_flag, 'N') = 'Y'
5316 AND sysdate between nvl(start_date_active, sysdate)
5317 and nvl(end_date_active, sysdate);
5318 --14689044 end
5319
5320 BEGIN
5321
5322 IF G_debug_flag = 'Y'
5323 THEN
5324 oe_debug_pub.add( 'In OEXVCRXB.Init_Summary_Table ', 1 );
5325 END IF;
5326
5327 -----------
5328 -- Locks needed for periodic operation (no triggers/table handlers):
5329 --
5330 -- Goal: Read-consistent view accross transaction tables
5331 -- Means: set transaction level read consistency, and only commit after all
5332 -- changes.
5333 -- This can result in ORA-1555: snapshot too old (rollback segment too small)
5334 -- because the rollback segments of all transactions occurring
5335 -- while initialization
5336 -- is in progress are used to reconstruct old (read-consistent) data.
5337 -- See "Multiversion Concurrency Control" in Oracle Concepts manual
5338 --
5339 -- (Note: When periodic initialization occurs
5340 -- while many transactions take place,
5341 -- the rollback segment for the initialization transaction will be hot
5342 -- because it is accessed to reconstruct old data in the summary table.)
5343 -- (Note: Due to the full delete, the rollback segment needs to be at least
5344 -- twice the size of the summary table. The summary table is small however.)
5345 --
5346 -- Compromise: Read-consistent view per transaction tables seperately
5347 -- Tradeoffs: +rollback segment +(potentially) contention
5348 -- -inconsistencies e.g. for payrisk vs. invoices atomic booking
5349 -- Means: Nothing required
5350 --
5351 -- Goal: consistent state of summary table
5352 -- Means: no commit until all balance types have been updated
5353
5354
5355
5356 -----------
5357 -- Locks needed for init only operation:
5358 -- Goal: No updates to transaction tables so that triggers don't interfere with
5359 -- initialization
5360 -- Means: Exclusive Locks on all transaction tables
5361 -- Compromise 1: Read-consistency or compromise as for periodic operation, while
5362 -- Triggers are switched off
5363 -- Tradeoffs: Turning triggers on is not guaranteed to
5364 -- coincide with new update,
5365 -- but quite likely
5366 -- Compromise 2: No considerations
5367 -- Tradeoffs: Triggers fire during the initialization: double counting
5368
5369
5370
5371
5372 -- TODO: Periodic operation only. Change this once we have triggers/handlers.
5373
5374 IF p_lock_tables = 'Y' THEN
5375 -- SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
5376
5377
5378 IF G_debug_flag = 'Y'
5379 THEN
5380 oe_debug_pub.add( 'starting to lock tables', 2 );
5381 END IF;
5382
5383 LOCK TABLE oe_order_lines_all IN EXCLUSIVE MODE;
5384 LOCK TABLE oe_order_headers_all IN EXCLUSIVE MODE;
5385 LOCK TABLE oe_price_adjustments IN EXCLUSIVE MODE;
5386 LOCK TABLE ar_payment_schedules_all IN EXCLUSIVE MODE;
5387 LOCK TABLE ar_cash_receipts_all IN EXCLUSIVE MODE;
5388 LOCK TABLE ar_cash_receipt_history_all IN EXCLUSIVE MODE;
5389
5390 IF G_debug_flag = 'Y'
5391 THEN
5392 oe_debug_pub.add( 'locked tables', 2 );
5393 END IF;
5394 END IF;
5395
5396
5397
5398 l_created_by := fnd_global.USER_ID;
5399 l_last_updated_by := fnd_global.USER_ID;
5400 l_last_update_login := fnd_global.LOGIN_ID;
5401
5402 l_request_id := fnd_global.CONC_REQUEST_ID;
5403 l_program_application_id := fnd_global.PROG_APPL_ID;
5404 l_program_id := fnd_global.CONC_PROGRAM_ID;
5405
5406
5407 --Bug 4219133:
5408 --If the Profile 'OM: Preserve External Credit Balances' is set to
5409 --Yes,application will use 'delete' and preserve external credit exposure.
5410 --When this profile is set to 'No', application will truncate the table
5411 --before populating the credit exposure.
5412
5413 IF G_debug_flag = 'Y'
5414 THEN
5415 oe_debug_pub.add( 'Value of the profile OM: Preserve External Credit Balances is :' || NVL(FND_PROFILE.VALUE('ONT_PRESERVE_EXT_CR_BAL'),'Y'),2);
5416 END IF;
5417
5418 --8567481 start
5419 l_ret := FND_INSTALLATION.get_app_info('ONT',l_status,l_industry,l_ont_schema);
5420 l_sql_stmnt_hwm := 'ANALYZE TABLE '|| l_ont_schema||'.oe_credit_summaries ESTIMATE STATISTICS';
5421 EXECUTE IMMEDIATE l_sql_stmnt_hwm;
5422 --8567481 end
5423
5424 IF NVL(FND_PROFILE.VALUE('ONT_PRESERVE_EXT_CR_BAL'),'Y') = 'Y' THEN
5425 /*14689044 start
5426 DELETE FROM oe_credit_summaries
5427 WHERE balance_type <> 18;
5428 14689044 end*/
5429 --14689044 start
5430 DELETE FROM oe_credit_summaries
5431 WHERE balance_type IN(1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,20,21,22,23,24,25,26,27,28,29,30,31,32
5432 ,33,34,35,36);
5433 --14689044 end
5434 ELSE
5435 l_ret := FND_INSTALLATION.get_app_info('ONT',l_status,l_industry,l_ont_schema); --This API is used to get schema name
5436 l_sql_stmnt := 'truncate table '||l_ont_schema ||'.oe_credit_summaries';
5437 EXECUTE IMMEDIATE l_sql_stmnt;
5438 END IF;
5439
5440 /* comment out the following code for bug 4219133
5441 -- Do not delete external exposure data
5442 DELETE FROM oe_credit_summaries
5443 WHERE balance_type <> 18;
5444 */
5445
5446
5447 IF G_debug_flag = 'Y'
5448 THEN
5449 oe_debug_pub.add( 'purged summary table at ' || DO_TIME, 2 );
5450 END IF;
5451
5452 -- Bug 3960616 : Scan all PreCalc CC Rules to find required Balances.
5453 /*14689044 start
5454 l_past_due_bal := 'N';
5455 l_order_hold_bal := 'N';
5456 l_freight_bal := 'N';
5457
5458 FOR cc_rules_rec in cc_precalc_rules LOOP
5459
5460 --If Max Days Past Due set on any Rule, store Past Due Invoice Balance.
5461
5462 IF cc_rules_rec.maximum_days_past_due is NOT NULL THEN
5463 l_past_due_bal := 'Y';
5464 END IF;
5465
5466 -- If Orders on Hold set to be excluded on any Rule, store Hold Balances.
5467
5468 IF cc_rules_rec.orders_on_hold_flag = 'Y' THEN
5469 l_order_hold_bal := 'Y';
5470 END IF;
5471
5472 -- If Freight Charges set to be included on any Rule, store Freight Balances.
5473
5474 IF cc_rules_rec.incl_freight_charges_flag = 'Y' THEN
5475 l_freight_bal := 'Y';
5476 END IF;
5477
5478 END LOOP;
5479
5480 begin
5481 select 'N'
5482 into l_cc_level_flag
5483 from dual
5484 where not exists ( select 1 from oe_credit_check_rules where credit_check_level_code = 'ORDER' and quick_cr_check_flag= 'Y');
5485 exception
5486 when others then
5487 l_cc_level_flag:='Y';
5488 end;
5489
5490 oe_debug_pub.add( 'Create Past Due Invoice Balance : '||l_past_due_bal);
5491 oe_debug_pub.add( 'Create Orders on Hold Balance : '||l_order_hold_bal);
5492 oe_debug_pub.add( 'Create Freight Charges Balance : '||l_freight_bal);
5493 oe_debug_pub.add( 'Credit Check Level Flag : '||l_cc_level_flag);
5494 14689044 end*/
5495
5496 --14689044 start
5497 FOR p_credit_check_rule_rec in credit_check_rules
5498 LOOP
5499
5500 IF p_credit_check_rule_rec.uninvoiced_orders_flag = 'Y'
5501 THEN
5502 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE'
5503 THEN
5504 l_line_uninvoiced_orders := 'Y';
5505
5506 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5507 THEN
5508 l_line_return_uninv_orders := 'Y';
5509 END IF;
5510
5511 IF NVL(p_credit_check_rule_rec.orders_on_hold_flag,'N') = 'N'
5512 THEN
5513 l_line_holds := 'Y';
5514
5515 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5516 THEN
5517 l_line_return_holds := 'Y';
5518 END IF;
5519
5520 END IF;
5521 ELSE
5522
5523 l_header_uninvoiced_orders := 'Y';
5524
5525 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5526 THEN
5527 l_head_return_uninv_orders := 'Y';
5528 END IF;
5529
5530 IF NVL(p_credit_check_rule_rec.orders_on_hold_flag,'N') = 'N'
5531 THEN
5532 l_order_holds := 'Y';
5533
5534 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5535 THEN
5536 l_order_return_holds := 'Y';
5537 END IF;
5538
5539 END IF;
5540 END IF;
5541
5542 END IF;
5543
5544 IF p_credit_check_rule_rec.include_tax_flag = 'Y'
5545 THEN
5546 l_tax := 'Y'; --14689044
5547 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE'
5548 THEN
5549 l_line_uninvoiced_orders_tax := 'Y';
5550
5551 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5552 THEN
5553 l_line_return_uninv_ord_tax := 'Y';
5554 END IF;
5555
5556 IF NVL(p_credit_check_rule_rec.orders_on_hold_flag,'N') = 'N'
5557 THEN
5558 l_line_tax_holds := 'Y';
5559
5560 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5561 THEN
5562 l_line_return_tax_holds := 'Y';
5563 END IF;
5564
5565 END IF;
5566 ELSE
5567 l_header_uninvoiced_orders_tax := 'Y';
5568
5569 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5570 THEN
5571 l_head_return_uninv_ord_tax := 'Y';
5572 END IF;
5573
5574 IF NVL(p_credit_check_rule_rec.orders_on_hold_flag,'N') = 'N'
5575 THEN
5576 l_order_tax_holds := 'Y';
5577
5578 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5579 THEN
5580 l_order_return_tax_holds := 'Y';
5581 END IF;
5582
5583 END IF;
5584 END IF;
5585 END IF;
5586
5587 IF p_credit_check_rule_rec.incl_freight_charges_flag = 'Y'
5588 THEN
5589 IF p_credit_check_rule_rec.credit_check_level_code = 'LINE'
5590 THEN
5591 l_line_uninvoiced_freight := 'Y';
5592
5593 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5594 THEN
5595 l_line_return_uninv_freight := 'Y';
5596 END IF;
5597
5598 IF NVL(p_credit_check_rule_rec.orders_on_hold_flag,'N') = 'N'
5599 THEN
5600 l_line_freight_holds := 'Y';
5601
5602 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5603 THEN
5604 l_line_return_freight_holds := 'Y';
5605 END IF;
5606
5607 END IF;
5608 ELSE
5609 l_header_uninvoiced_freight := 'Y';
5610
5611 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5612 THEN
5613 l_head_return_uninv_freight := 'Y';
5614 END IF;
5615
5616 IF NVL(p_credit_check_rule_rec.orders_on_hold_flag,'N') = 'N'
5617 THEN
5618 l_order_freight_holds := 'Y';
5619
5620 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5621 THEN
5622 l_order_return_freight_holds := 'Y';
5623 END IF;
5624
5625 END IF;
5626 END IF;
5627
5628 l_header_and_line_freight := 'Y';
5629
5630 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5631 THEN
5632 l_head_line_return_freight := 'Y';
5633 END IF;
5634
5635 IF NVL(p_credit_check_rule_rec.orders_on_hold_flag,'N') = 'N'
5636 THEN
5637 l_header_line_freight_holds := 'Y';
5638
5639 IF p_credit_check_rule_rec.include_returns_flag = 'Y'
5640 THEN
5641 l_h_l_return_freight_holds := 'Y';
5642 END IF;
5643
5644 END IF;
5645 END IF;
5646
5647 IF p_credit_check_rule_rec.include_external_exposure_flag = 'Y' THEN
5648 l_external_exposure := 'Y';
5649 END IF;
5650
5651 IF p_credit_check_rule_rec.open_ar_balance_flag = 'Y'
5652 AND NVL(p_credit_check_rule_rec.include_payments_at_risk_flag,'N') = 'N' THEN
5653 l_payments_at_risk := 'Y';
5654
5655 IF p_credit_check_rule_rec.open_ar_days is NULL
5656 THEN
5657 l_br_payments_at_risk:= 'Y';
5658 END IF;
5659
5660 END IF;
5661 IF p_credit_check_rule_rec.open_ar_balance_flag = 'Y' THEN
5662 l_invoices := 'Y';
5663
5664 IF p_credit_check_rule_rec.open_ar_days is NULL
5665 THEN
5666 l_br_invoices := 'Y';
5667 END IF;
5668 END IF;
5669
5670
5671 IF p_credit_check_rule_rec.maximum_days_past_due is NOT NULL THEN
5672 l_past_due_invoices := 'Y';
5673 END IF;
5674
5675 END LOOP;
5676
5677 IF G_debug_flag = 'Y'
5678 THEN
5679 oe_debug_pub.add('header_uninvoiced_orders:'||l_header_uninvoiced_orders);
5680 oe_debug_pub.add('line_uninvoiced_orders:'||l_line_uninvoiced_orders);
5681 oe_debug_pub.add('header_uninvoiced_orders_tax:'||l_header_uninvoiced_orders_tax);
5682 oe_debug_pub.add('line_uninvoiced_orders_tax:'||l_line_uninvoiced_orders_tax );
5683 oe_debug_pub.add('header_uninvoiced_freight:'||l_header_uninvoiced_freight);
5684 oe_debug_pub.add('line_uninvoiced_freight:'||l_line_uninvoiced_freight);
5685 oe_debug_pub.add('header_and_line_freight:'||l_header_and_line_freight );
5686 oe_debug_pub.add('invoices:'||l_invoices);
5687 oe_debug_pub.add('payments_at_risk:'||l_payments_at_risk);
5688 oe_debug_pub.add('order_holds:'||l_order_holds);
5689 oe_debug_pub.add('line_holds:'||l_line_holds);
5690 oe_debug_pub.add('order_tax_holds:'||l_order_tax_holds);
5691 oe_debug_pub.add('line_tax_holds:'||l_line_tax_holds);
5692 oe_debug_pub.add('order_freight_holds:'||l_order_freight_holds);
5693 oe_debug_pub.add('line_freight_holds :'||l_line_freight_holds );
5694 oe_debug_pub.add('header_line_freight_holds :'||l_header_line_freight_holds );
5695 oe_debug_pub.add('external_exposure :'||l_external_exposure );
5696 oe_debug_pub.add('past_due_invoices :'||l_past_due_invoices );
5697 oe_debug_pub.add('br_invoices:'||l_br_invoices);
5698 oe_debug_pub.add('br_payments_at_risk:'||l_br_payments_at_risk);
5699 oe_debug_pub.add('head_return_uninv_orders:'||l_head_return_uninv_orders);
5700 oe_debug_pub.add('line_return_uninv_orders:'||l_line_return_uninv_orders);
5701 oe_debug_pub.add('head_return_uninv_ord_tax:'||l_head_return_uninv_ord_tax);
5702 oe_debug_pub.add('line_return_uninv_ord_tax:'||l_line_return_uninv_ord_tax);
5703 oe_debug_pub.add('head_return_uninv_freight:'||l_head_return_uninv_freight);
5704 oe_debug_pub.add('line_return_uninv_freight:'||l_line_return_uninv_freight);
5705 oe_debug_pub.add('head_line_return_freight :'||l_head_line_return_freight);
5706 oe_debug_pub.add('order_return_holds :'||l_order_return_holds);
5707 oe_debug_pub.add('line_return_holds:'||l_line_return_holds);
5708 oe_debug_pub.add('order_return_tax_holds:'||l_order_return_tax_holds);
5709 oe_debug_pub.add('line_return_tax_holds :'||l_line_return_tax_holds);
5710 oe_debug_pub.add('order_return_freight_holds:'||l_order_return_freight_holds);
5711 oe_debug_pub.add('line_return_freight_holds:'||l_line_return_freight_holds);
5712 oe_debug_pub.add('h_l_return_freight_holds :'||l_h_l_return_freight_holds );
5713 END IF;
5714 --14689044 end
5715
5716
5717 INSERT INTO OE_INIT_CREDIT_SUMM_GTT
5718 (line_ordered_quantity ,
5719 line_unit_selling_price,
5720 order_invoice_to_org_id,
5721 rl_amount,
5722 rl_quantity_ordered,
5723 order_org_id ,
5724 order_transactional_curr_code,
5725 line_schedule_ship_date ,
5726 line_request_date ,
5727 order_request_date,
5728 order_creation_date,
5729 line_tax_value ,
5730 line_invoice_to_org_id,
5731 line_line_category_code ,
5732 line_invoiced_quantity ,
5733 line_payment_type_code ,
5734 order_payment_type_code,
5735 order_order_number ,
5736 line_line_id ,
5737 order_header_id,
5738 line_header_id ,
5739 order_cust_account_id,
5740 order_party_id,
5741 line_cust_account_id,
5742 line_party_id,
5743 interface_line_attribute6) --TaxER
5744 select /*+ leading(L) use_nl(H SU S CA CA_L SU_L S_L) */ --14689044
5745 l.ordered_quantity line_ordered_quantity,
5746 l.unit_selling_price line_unit_selling_price,
5747 h.invoice_to_org_id order_invoice_to_org_id,
5748 0 rl_amount,
5749 0 rl_quantity_ordered,
5750 h.org_id order_org_id,
5751 h.transactional_curr_code order_transactional_curr_code,
5752 l.schedule_ship_date line_schedule_ship_date,
5753 l.request_date line_request_date,
5754 h.request_date order_request_date,
5755 h.creation_date order_creation_date,
5756 --TaxER l.tax_value line_tax_value,
5757 NVL(l.tax_line_value,l.tax_value) line_tax_value, --TaxER
5758 l.invoice_to_org_id line_invoice_to_org_id,
5759 l.line_category_code line_line_category_code,
5760 l.invoiced_quantity line_invoiced_quantity,
5761 l.payment_type_code line_payment_type_code,
5762 h.payment_type_code order_payment_type_code,
5763 h.order_number order_order_number,
5764 l.line_id line_line_id,
5765 h.header_id order_header_id,
5766 l.header_id line_header_id,
5767 s.cust_account_id order_cust_account_id,
5768 ca.party_id order_party_id,
5769 s_l.cust_account_id line_cust_account_id,
5770 ca_l.party_id line_party_id,
5771 -999 interface_line_attribute6 --TaxER
5772 from oe_order_lines_all l
5773 , oe_order_headers_all h
5774 , hz_cust_site_uses_all su
5775 , hz_cust_acct_sites_all s
5776 , hz_cust_accounts ca
5777 , hz_cust_site_uses_all su_l
5778 , hz_cust_acct_sites_all s_l
5779 , hz_cust_accounts ca_l
5780 where h.header_id = l.header_id
5781 AND h.booked_flag = 'Y'
5782 AND h.open_flag = 'Y'
5783 AND l.open_flag = 'Y'
5784 AND NVL( l.invoiced_quantity, 0 ) = 0
5785 AND su.site_use_id = h.invoice_to_org_id
5786 AND su.cust_acct_site_id = s.cust_acct_site_id
5787 AND ca.cust_account_id = s.cust_account_id
5788 AND su_l.site_use_id = l.invoice_to_org_id
5789 AND su_l.cust_acct_site_id = s_l.cust_acct_site_id
5790 AND ca_l.cust_account_id = s_l.cust_account_id
5791 /*14689044 start
5792 AND EXISTS
5793 ( SELECT NULL
5794 FROM oe_payment_types_all t
5795 WHERE t.credit_check_flag = 'Y'
5796 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
5797 AND l.header_id = h.header_id
5798 AND t.payment_type_code =
5799 DECODE(l.payment_type_code, NULL,
5800 DECODE(h.payment_type_code, NULL, t.payment_type_code,
5801 h.payment_type_code),
5802 l.payment_type_code)
5803 )
5804 14689044 end*/
5805 --14689044 start
5806 AND EXISTS ( SELECT /*+ no_unnest */ NULL
5807 FROM OE_PAYMENT_TYPES_ALL T
5808 WHERE T.CREDIT_CHECK_FLAG = 'Y'
5809 AND NVL(T.ORG_ID,-99) = NVL(H.ORG_ID, -99)
5810 AND L.PAYMENT_TYPE_CODE IS NOT NULL
5811 AND T.PAYMENT_TYPE_CODE = L.PAYMENT_TYPE_CODE
5812 UNION ALL
5813 SELECT /*+ no_unnest */ NULL
5814 FROM OE_PAYMENT_TYPES_ALL T
5815 WHERE T.CREDIT_CHECK_FLAG = 'Y'
5816 AND NVL(T.ORG_ID,-99) = NVL(H.ORG_ID, -99)
5817 AND L.PAYMENT_TYPE_CODE IS NULL AND H.PAYMENT_TYPE_CODE IS NOT NULL
5818 AND T.PAYMENT_TYPE_CODE = H.PAYMENT_TYPE_CODE
5819 UNION ALL
5820 SELECT /*+ no_unnest */ NULL
5821 FROM OE_PAYMENT_TYPES_ALL T
5822 WHERE T.CREDIT_CHECK_FLAG = 'Y'
5823 AND NVL(T.ORG_ID,-99) = NVL(H.ORG_ID, -99)
5824 AND L.PAYMENT_TYPE_CODE IS NULL AND H.PAYMENT_TYPE_CODE IS NULL
5825 )
5826 --14689044 end
5827 --14689044 UNION ALL
5828 UNION --14689044
5829 select
5830 /*+ cardinality ( rl 10 ) leading(rl h l) */ 0 line_ordered_quantity,
5831 0 line_unit_selling_price,
5832 h.invoice_to_org_id order_invoice_to_org_id,
5833 rl.amount rl_amount,
5834 rl.quantity_ordered rl_quantity_ordered,
5835 h.org_id order_org_id,
5836 h.transactional_curr_code order_transactional_curr_code,
5837 l.schedule_ship_date line_schedule_ship_date,
5838 l.request_date line_request_date,
5839 h.request_date order_request_date,
5840 h.creation_date order_creation_date,
5841 --TaxER l.tax_value line_tax_value,
5842 Decode(NVL(rl.interface_line_attribute11,0),0,NVL(l.tax_line_value,l.tax_value),0) line_tax_value, --TaxER
5843 l.invoice_to_org_id line_invoice_to_org_id,
5844 l.line_category_code line_line_category_code,
5845 l.invoiced_quantity line_invoiced_quantity,
5846 l.payment_type_code line_payment_type_code,
5847 h.payment_type_code order_payment_type_code,
5848 h.order_number order_order_number,
5849 l.line_id line_line_id,
5850 h.header_id order_header_id,
5851 l.header_id line_header_id,
5852 s.cust_account_id order_cust_account_id,
5853 ca.party_id order_party_id,
5854 s_l.cust_account_id line_cust_account_id,
5855 ca_l.party_id line_party_id,
5856 DECODE(OE_CREDIT_EXPOSURE_PVT.Is_Equal(rl.interface_line_attribute6,l.line_id),'Y',-999,to_number(rl.interface_line_attribute6)) interface_line_attribute6 --TaxER
5857 from oe_order_lines_all l
5858 , oe_order_headers_all h
5859 , hz_cust_site_uses_all su
5860 , hz_cust_acct_sites_all s
5861 , hz_cust_accounts ca
5862 , hz_cust_site_uses_all su_l
5863 , hz_cust_acct_sites_all s_l
5864 , hz_cust_accounts ca_l
5865 , ra_interface_lines_all rl
5866 where h.header_id = l.header_id
5867 AND h.booked_flag = 'Y'
5868 AND rl.orig_system_bill_customer_id = ca.cust_account_id
5869 AND nvl(rl.interface_status, '~') <> 'P'
5870 AND rl.interface_line_context = 'ORDER ENTRY'
5871 AND rl.interface_line_attribute1 = h.order_number
5872 --TaxER AND rl.interface_line_attribute6 = l.line_id
5873 AND NVL( l.invoiced_quantity, 0 ) <> 0
5874 AND su.site_use_id = h.invoice_to_org_id
5875 AND su.cust_acct_site_id = s.cust_acct_site_id
5876 AND ca.cust_account_id = s.cust_account_id
5877 AND su_l.site_use_id = l.invoice_to_org_id
5878 AND su_l.cust_acct_site_id = s_l.cust_acct_site_id
5879 AND ca_l.cust_account_id = s_l.cust_account_id
5880 /*14689044 start
5881 AND EXISTS
5882 ( SELECT NULL
5883 FROM oe_payment_types_all t
5884 WHERE t.credit_check_flag = 'Y'
5885 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
5886 AND l.header_id = h.header_id
5887 AND t.payment_type_code =
5888 DECODE(l.payment_type_code, NULL,
5889 DECODE(h.payment_type_code, NULL, t.payment_type_code,
5890 h.payment_type_code),
5891 l.payment_type_code)
5892 );
5893 14689044 end*/
5894 --14689044 start
5895 AND EXISTS ( SELECT /*+ no_unnest */ NULL
5896 FROM OE_PAYMENT_TYPES_ALL T
5897 WHERE T.CREDIT_CHECK_FLAG = 'Y'
5898 AND NVL(T.ORG_ID,-99) = NVL(H.ORG_ID, -99)
5899 AND L.PAYMENT_TYPE_CODE IS NOT NULL
5900 AND T.PAYMENT_TYPE_CODE = L.PAYMENT_TYPE_CODE
5901 UNION ALL
5902 SELECT /*+ no_unnest */ NULL
5903 FROM OE_PAYMENT_TYPES_ALL T
5904 WHERE T.CREDIT_CHECK_FLAG = 'Y'
5905 AND NVL(T.ORG_ID,-99) = NVL(H.ORG_ID, -99)
5906 AND L.PAYMENT_TYPE_CODE IS NULL AND H.PAYMENT_TYPE_CODE IS NOT NULL
5907 AND T.PAYMENT_TYPE_CODE = H.PAYMENT_TYPE_CODE
5908 UNION ALL
5909 SELECT /*+ no_unnest */ NULL
5910 FROM OE_PAYMENT_TYPES_ALL T
5911 WHERE T.CREDIT_CHECK_FLAG = 'Y'
5912 AND NVL(T.ORG_ID,-99) = NVL(H.ORG_ID, -99)
5913 AND L.PAYMENT_TYPE_CODE IS NULL AND H.PAYMENT_TYPE_CODE IS NULL
5914 );
5915 --14689044 end
5916
5917
5918 -- For each balance type, a distinct insert statement
5919 -- is run against the relevant OM/AR transaction tables
5920 -- The summary table is populated with precalculated summaries
5921 -- (the SELECT subquery of each INSERT statent) which are
5922 -- then used in the Get_Exposure procedure to quickly
5923 -- determine the total exposure depending on the credit
5924 -- check rule and other parameters.
5925
5926
5927 --------------------------------------------------------
5928 -- Insert Tax Summaries into oe_credit_summaries
5929 -- for uninvoiced orders and tax balance types at
5930 -- header bill-to-site level
5931
5932 IF G_debug_flag = 'Y'
5933 THEN
5934 oe_debug_pub.add( 'Start Inserting into summary tables ',1);
5935 END IF;
5936 --14689044 IF l_cc_level_flag='Y' THEN
5937 IF l_header_uninvoiced_orders ='Y' THEN --14689044
5938 -- balance type 1
5939 INSERT INTO oe_credit_summaries
5940 ( balance
5941 , balance_type
5942 , site_use_id
5943 , cust_account_id
5944 , party_id
5945 , org_id
5946 , currency_code
5947 , bucket
5948 , creation_date
5949 , created_by
5950 , last_update_date
5951 , last_updated_by
5952 , last_update_login
5953 , program_application_id
5954 , program_id
5955 , program_update_date
5956 , request_id
5957 , bucket_duration
5958 )
5959
5960
5961 SELECT
5962 SUM( NVL( m.line_ordered_quantity, 0 )
5963 * NVL( m.line_unit_selling_price, 0 ) )
5964 - SUM( NVL( p.commitment_applied_amount, 0 ) )
5965 + SUM( NVL( m.rl_amount, 0 ))
5966 , G_HEADER_UNINVOICED_ORDERS
5967 , m.order_invoice_to_org_id
5968 , order_cust_account_id
5969 , order_party_id
5970 , m.order_org_id
5971 , m.order_transactional_curr_code
5972 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
5973 NVL( m.line_request_date,
5974 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
5975 , SYSDATE
5976 , l_created_by
5977 , SYSDATE
5978 , l_last_updated_by
5979 , l_last_update_login
5980 , l_program_application_id
5981 , l_program_id
5982 , SYSDATE
5983 , l_request_id
5984 , 1
5985
5986 FROM
5987 OE_INIT_CREDIT_SUMM_GTT m
5988 , oe_payments p
5989 WHERE
5990 m.line_line_category_code = 'ORDER'
5991 AND p.header_id (+) = m.line_header_id
5992 AND p.line_id (+) = m.line_line_id
5993 AND m.interface_line_attribute6 = -999 --TaxER
5994 GROUP BY
5995 m.order_invoice_to_org_id
5996 , m.order_transactional_curr_code
5997 , order_cust_account_id
5998 , order_party_id
5999 , m.order_org_id
6000 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6001 NVL( m.line_request_date,
6002 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) );
6003
6004
6005 IF G_debug_flag = 'Y'
6006 THEN
6007 oe_debug_pub.add( 'G_HEADER_UNINVOICED_ORDERS done at ' || DO_TIME, 2);
6008 END IF;
6009 END IF; -- l_cc_level_flag
6010
6011 --14689044 IF l_cc_level_flag='Y' THEN
6012 IF l_header_uninvoiced_orders_tax='Y' THEN --14689044
6013 -- balance type 3
6014 INSERT INTO OE_CREDIT_SUMMARIES
6015 ( balance
6016 , balance_type
6017 , site_use_id
6018 , cust_account_id
6019 , party_id
6020 , org_id
6021 , currency_code
6022 , bucket
6023 , creation_date
6024 , created_by
6025 , last_update_date
6026 , last_updated_by
6027 , last_update_login
6028 , program_application_id
6029 , program_id
6030 , program_update_date
6031 , request_id
6032 , bucket_duration
6033 )
6034
6035
6036 SELECT
6037 SUM( NVL( m.line_tax_value, 0 ) )
6038 , G_HEADER_UNINVOICED_ORDERS_TAX
6039 , m.order_invoice_to_org_id
6040 , order_cust_account_id
6041 , order_party_id
6042 , m.order_org_id
6043 , m.order_transactional_curr_code
6044 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6045 NVL( m.line_request_date,
6046 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
6047 , SYSDATE
6048 , l_created_by
6049 , SYSDATE
6050 , l_last_updated_by
6051 , l_last_update_login
6052 , l_program_application_id
6053 , l_program_id
6054 , SYSDATE
6055 , l_request_id
6056 , 1
6057
6058 FROM
6059 OE_INIT_CREDIT_SUMM_GTT m
6060 WHERE
6061 m.line_line_category_code = 'ORDER'
6062 AND m.interface_line_attribute6 = -999 --TaxER
6063 GROUP BY
6064 m.order_invoice_to_org_id
6065 , m.order_transactional_curr_code
6066 , order_cust_account_id
6067 , order_party_id
6068 , m.order_org_id
6069 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6070 NVL( m.line_request_date,
6071 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) );
6072
6073
6074 IF G_debug_flag = 'Y'
6075 THEN
6076 oe_debug_pub.add( 'G_HEADER_UNINVOICED_ORDERS_TAX done at ' || DO_TIME, 2);
6077 END IF;
6078 END IF; -- l_cc_level_flag
6079 ----------------------------------------------
6080 ---------- RETURNS ---------------------------
6081 --- For uninvoiced orders and tax returns
6082 --- balance types at header bill-to-site level
6083 ----------------------------------------------
6084 --14689044 IF l_cc_level_flag='Y' THEN
6085 IF l_head_return_uninv_orders ='Y' THEN --14689044
6086 -- balance type 23
6087 INSERT INTO oe_credit_summaries
6088 ( balance
6089 , balance_type
6090 , site_use_id
6091 , cust_account_id
6092 , party_id
6093 , org_id
6094 , currency_code
6095 , bucket
6096 , bucket_duration
6097 , creation_date
6098 , created_by
6099 , last_update_date
6100 , last_updated_by
6101 , last_update_login
6102 , program_application_id
6103 , program_id
6104 , program_update_date
6105 , request_id
6106 )
6107
6108
6109 SELECT
6110 - SUM( NVL( m.line_ordered_quantity, 0 )
6111 * NVL( m.line_unit_selling_price, 0 ) )
6112 + SUM( NVL( p.commitment_applied_amount, 0 ) )
6113 + SUM( DECODE( SIGN (NVL( m.rl_quantity_ordered, 0 )), -1, (+1), (-1) ) * NVL( m.rl_amount, 0 ) )
6114 , G_HEAD_RETURN_UNINV_ORDERS
6115 , m.order_invoice_to_org_id
6116 , order_cust_account_id
6117 , order_party_id
6118 , m.order_org_id
6119 , m.order_transactional_curr_code
6120 , -2
6121 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
6122 , sysdate
6123 , l_created_by
6124 , SYSDATE
6125 , l_last_updated_by
6126 , l_last_update_login
6127 , l_program_application_id
6128 , l_program_id
6129 , SYSDATE
6130 , l_request_id
6131
6132 FROM
6133 OE_INIT_CREDIT_SUMM_GTT m
6134 , oe_payments p
6135 WHERE
6136 m.line_line_category_code = 'RETURN'
6137 AND p.header_id (+) = m.line_header_id
6138 AND p.line_id (+) = m.line_line_id
6139 AND m.interface_line_attribute6 = -999 --TaxER
6140 GROUP BY
6141 m.order_invoice_to_org_id
6142 , m.order_transactional_curr_code
6143 , order_cust_account_id
6144 , order_party_id
6145 , m.order_org_id;
6146
6147
6148 IF G_debug_flag = 'Y'
6149 THEN
6150 oe_debug_pub.add( 'G_HEAD_RETURN_UNINV_ORDERS done at ' || DO_TIME, 2);
6151 END IF;
6152 END IF; -- l_cc_level_flag
6153
6154 --14689044 IF l_cc_level_flag='Y' THEN
6155 IF l_head_return_uninv_ord_tax ='Y' THEN --14689044
6156 -- balance type 25
6157 INSERT INTO OE_CREDIT_SUMMARIES
6158 ( balance
6159 , balance_type
6160 , site_use_id
6161 , cust_account_id
6162 , party_id
6163 , org_id
6164 , currency_code
6165 , bucket
6166 , bucket_duration
6167 , creation_date
6168 , created_by
6169 , last_update_date
6170 , last_updated_by
6171 , last_update_login
6172 , program_application_id
6173 , program_id
6174 , program_update_date
6175 , request_id
6176 )
6177
6178
6179 SELECT
6180 - SUM( NVL( m.line_tax_value, 0 ) )
6181 , G_HEAD_RETURN_UNINV_ORD_TAX
6182 , m.order_invoice_to_org_id
6183 , order_cust_account_id
6184 , order_party_id
6185 , m.order_org_id
6186 , m.order_transactional_curr_code
6187 , -2
6188 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
6189 , sysdate
6190 , l_created_by
6191 , sysdate
6192 , l_last_updated_by
6193 , l_last_update_login
6194 , l_program_application_id
6195 , l_program_id
6196 , SYSDATE
6197 , l_request_id
6198
6199 FROM
6200 OE_INIT_CREDIT_SUMM_GTT m
6201 WHERE
6202 m.line_line_category_code = 'RETURN'
6203 AND m.interface_line_attribute6 = -999 --TaxER
6204 GROUP BY
6205 m.order_invoice_to_org_id
6206 , m.order_transactional_curr_code
6207 , order_cust_account_id
6208 , order_party_id
6209 , m.order_org_id;
6210
6211 IF G_debug_flag = 'Y'
6212 THEN
6213 oe_debug_pub.add( 'G_HEAD_RETURN_UNINV_ORD_TAX done at ' || DO_TIME, 2);
6214 END IF;
6215 END IF; -- l_cc_level_flag
6216
6217 --------------------------
6218 -- Line Uninvoiced Orders
6219 --------------------------
6220 -- Note this is identical code except that
6221 -- h.invoice_to_org_id is replaced with l.invoice_to_org_id
6222
6223 -- balance type 2
6224 IF l_line_uninvoiced_orders ='Y' THEN --14689044
6225 INSERT INTO OE_CREDIT_SUMMARIES
6226 ( balance
6227 , balance_type
6228 , site_use_id
6229 , cust_account_id
6230 , party_id
6231 , org_id
6232 , currency_code
6233 , bucket
6234 , creation_date
6235 , created_by
6236 , last_update_date
6237 , last_updated_by
6238 , last_update_login
6239 , program_application_id
6240 , program_id
6241 , program_update_date
6242 , request_id
6243 , bucket_duration
6244 )
6245
6246 SELECT
6247 SUM( NVL( m.line_ordered_quantity, 0 )
6248 * NVL( m.line_unit_selling_price, 0 )
6249 )
6250 - SUM( NVL( p.commitment_applied_amount, 0 ) )
6251 + SUM( NVL( m.rl_amount, 0 ))
6252 , G_LINE_UNINVOICED_ORDERS
6253 , m.line_invoice_to_org_id
6254 , line_cust_account_id
6255 , line_party_id
6256 , m.order_org_id
6257 , m.order_transactional_curr_code
6258 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6259 NVL( m.line_request_date,
6260 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
6261 , SYSDATE
6262 , l_created_by
6263 , SYSDATE
6264 , l_last_updated_by
6265 , l_last_update_login
6266 , l_program_application_id
6267 , l_program_id
6268 , SYSDATE
6269 , l_request_id
6270 , 1
6271
6272 FROM
6273 OE_INIT_CREDIT_SUMM_GTT m
6274 , oe_payments p
6275 WHERE
6276 m.line_line_category_code = 'ORDER'
6277 AND p.header_id (+) = m.line_header_id
6278 AND p.line_id (+) = m.line_line_id
6279 AND m.interface_line_attribute6 = -999 --TaxER
6280 GROUP BY
6281 m.line_invoice_to_org_id
6282 , m.order_transactional_curr_code
6283 , line_cust_account_id
6284 , line_party_id
6285 , m.order_org_id
6286 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6287 NVL( m.line_request_date,
6288 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) );
6289
6290
6291 IF G_debug_flag = 'Y'
6292 THEN
6293 oe_debug_pub.add( 'G_LINE_UNINVOICED_ORDERS done at ' || DO_TIME, 2);
6294 END IF;
6295 END IF; --14689044
6296 -- balance type 4
6297 IF l_line_uninvoiced_orders_tax ='Y' THEN --14689044
6298 INSERT INTO OE_CREDIT_SUMMARIES
6299 ( balance
6300 , balance_type
6301 , site_use_id
6302 , cust_account_id
6303 , party_id
6304 , org_id
6305 , currency_code
6306 , bucket
6307 , creation_date
6308 , created_by
6309 , last_update_date
6310 , last_updated_by
6311 , last_update_login
6312 , program_application_id
6313 , program_id
6314 , program_update_date
6315 , request_id
6316 , bucket_duration
6317 )
6318
6319
6320 SELECT
6321 SUM( NVL( m.line_tax_value, 0 ) )
6322 , G_LINE_UNINVOICED_ORDERS_TAX
6323 , m.line_invoice_to_org_id
6324 , line_cust_account_id
6325 , line_party_id
6326 , m.order_org_id
6327 , m.order_transactional_curr_code
6328 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6329 NVL( m.line_request_date,
6330 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
6331 , SYSDATE
6332 , l_created_by
6333 , SYSDATE
6334 , l_last_updated_by
6335 , l_last_update_login
6336 , l_program_application_id
6337 , l_program_id
6338 , SYSDATE
6339 , l_request_id
6340 , 1
6341
6342 FROM
6343 OE_INIT_CREDIT_SUMM_GTT m
6344 WHERE
6345 m.line_line_category_code = 'ORDER'
6346 AND m.interface_line_attribute6 = -999 --TaxER
6347 GROUP BY
6348 m.line_invoice_to_org_id
6349 , m.order_transactional_curr_code
6350 , line_cust_account_id
6351 , line_party_id
6352 , m.order_org_id
6353 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6354 NVL( m.line_request_date,
6355 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) );
6356
6357
6358 IF G_debug_flag = 'Y'
6359 THEN
6360 oe_debug_pub.add( 'G_LINE_UNINVOICED_ORDERS_TAX done at ' || DO_TIME, 2);
6361 END IF;
6362 END IF; --14689044
6363
6364 ----------------------------------
6365 ------ RETURNS--------------------
6366 -- Line Uninvoiced Orders returns
6367 ----------------------------------
6368 -- Note this is identical code except that
6369 -- h.invoice_to_org_id is replaced with l.invoice_to_org_id
6370
6371 -- balance type 24
6372 IF l_line_return_uninv_orders ='Y' THEN --14689044
6373
6374 INSERT INTO OE_CREDIT_SUMMARIES
6375 ( balance
6376 , balance_type
6377 , site_use_id
6378 , cust_account_id
6379 , party_id
6380 , org_id
6381 , currency_code
6382 , bucket
6383 , bucket_duration
6384 , creation_date
6385 , created_by
6386 , last_update_date
6387 , last_updated_by
6388 , last_update_login
6389 , program_application_id
6390 , program_id
6391 , program_update_date
6392 , request_id
6393 )
6394
6395
6396 SELECT
6397 - SUM( NVL(m.line_ordered_quantity, 0 )
6398 * NVL( m.line_unit_selling_price, 0 )
6399 )
6400 + SUM( NVL( p.commitment_applied_amount, 0 ) )
6401 + SUM( DECODE( SIGN (NVL( m.rl_quantity_ordered, 0 )), -1, (+1), (-1) ) * NVL( m.rl_amount, 0 ) )
6402 , G_LINE_RETURN_UNINV_ORDERS
6403 , m.line_invoice_to_org_id
6404 , line_cust_account_id
6405 , line_party_id
6406 , m.order_org_id
6407 , m.order_transactional_curr_code
6408 , -2
6409 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
6410 , sysdate
6411 , l_created_by
6412 , sysdate
6413 , l_last_updated_by
6414 , l_last_update_login
6415 , l_program_application_id
6416 , l_program_id
6417 , SYSDATE
6418 , l_request_id
6419
6420 FROM
6421 OE_INIT_CREDIT_SUMM_GTT m
6422 , oe_payments p
6423 WHERE
6424 m.line_line_category_code = 'RETURN'
6425 AND p.header_id (+) = m.line_header_id
6426 AND p.line_id (+) = m.line_line_id
6427 AND m.interface_line_attribute6 = -999 --TaxER
6428 GROUP BY
6429 m.line_invoice_to_org_id
6430 , m.order_transactional_curr_code
6431 , line_cust_account_id
6432 , line_party_id
6433 , m.order_org_id;
6434
6435
6436 IF G_debug_flag = 'Y'
6437 THEN
6438 oe_debug_pub.add( 'G_LINE_RETURN_UNINV_ORDERS done at ' || DO_TIME, 2);
6439 END IF;
6440
6441 END IF; --14689044
6442 -- balance type 26
6443 IF l_line_return_uninv_ord_tax ='Y' THEN --14689044
6444
6445 INSERT INTO OE_CREDIT_SUMMARIES
6446 ( balance
6447 , balance_type
6448 , site_use_id
6449 , cust_account_id
6450 , party_id
6451 , org_id
6452 , currency_code
6453 , bucket
6454 , bucket_duration
6455 , creation_date
6456 , created_by
6457 , last_update_date
6458 , last_updated_by
6459 , last_update_login
6460 , program_application_id
6461 , program_id
6462 , program_update_date
6463 , request_id
6464 )
6465
6466
6467 SELECT
6468 - SUM( NVL(m.line_tax_value, 0 ) )
6469 , G_LINE_RETURN_UNINV_ORD_TAX
6470 , m.line_invoice_to_org_id
6471 , line_cust_account_id
6472 , line_party_id
6473 , m.order_org_id
6474 , m.order_transactional_curr_code
6475 , -2
6476 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
6477 , sysdate
6478 , l_created_by
6479 , sysdate
6480 , l_last_updated_by
6481 , l_last_update_login
6482 , l_program_application_id
6483 , l_program_id
6484 , SYSDATE
6485 , l_request_id
6486
6487 FROM
6488 OE_INIT_CREDIT_SUMM_GTT m
6489 WHERE
6490 m.line_line_category_code = 'RETURN'
6491 AND m.interface_line_attribute6 = -999 --TaxER
6492 GROUP BY
6493 m.line_invoice_to_org_id
6494 , m.order_transactional_curr_code
6495 , line_cust_account_id
6496 , line_party_id
6497 , m.order_org_id;
6498
6499
6500
6501 IF G_debug_flag = 'Y'
6502 THEN
6503 oe_debug_pub.add( 'G_LINE_RETURN_UNINV_ORD_TAX done at ' || DO_TIME, 2);
6504 END IF;
6505
6506 END IF; --14689044
6507 -- Bug 4219133 : Insert Freight Balances only if Freight Charges to be Included
6508 --14689044 IF l_freight_bal = 'Y' THEN
6509 IF l_line_uninvoiced_freight ='Y' THEN --14689044
6510 --------------------------
6511 -- Line Freight
6512 --------------------------
6513
6514 -- balance type 6
6515 INSERT INTO OE_CREDIT_SUMMARIES
6516 ( balance
6517 , balance_type
6518 , site_use_id
6519 , cust_account_id
6520 , party_id
6521 , org_id
6522 , currency_code
6523 , bucket
6524 , creation_date
6525 , created_by
6526 , last_update_date
6527 , last_updated_by
6528 , last_update_login
6529 , program_application_id
6530 , program_id
6531 , program_update_date
6532 , request_id
6533 , bucket_duration
6534 )
6535
6536 SELECT
6537 SUM
6538 ( DECODE( p.credit_or_charge_flag, 'C', (-1), (+1) )
6539 * DECODE( p.arithmetic_operator, 'LUMPSUM', --bug 4295298
6540 p.operand, (m.line_ordered_quantity * p.adjusted_amount))
6541 )
6542 -- + SUM( NVL( m.rl_amount, 0 ))
6543 , G_LINE_UNINVOICED_FREIGHT
6544 , m.line_invoice_to_org_id
6545 , line_cust_account_id
6546 , line_party_id
6547 , m.order_org_id
6548 , m.order_transactional_curr_code
6549 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6550 NVL( m.line_request_date,
6551 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
6552 , SYSDATE
6553 , l_created_by
6554 , SYSDATE
6555 , l_last_updated_by
6556 , l_last_update_login
6557 , l_program_application_id
6558 , l_program_id
6559 , SYSDATE
6560 , l_request_id
6561 , 1
6562
6563 FROM
6564 OE_INIT_CREDIT_SUMM_GTT m,
6565 oe_price_adjustments p
6566 WHERE
6567 p.line_id = m.line_line_id
6568 AND p.header_id = m.line_header_id
6569 AND p.header_id = m.order_header_id
6570 AND m.line_line_category_code = 'ORDER'
6571 AND p.applied_flag = 'Y'
6572 AND p.list_line_type_code = 'FREIGHT_CHARGE'
6573 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
6574 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
6575 GROUP BY
6576 m.line_invoice_to_org_id
6577 , m.order_transactional_curr_code
6578 , line_cust_account_id
6579 , line_party_id
6580 , m.order_org_id
6581 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6582 NVL( m.line_request_date,
6583 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) );
6584
6585
6586 IF G_debug_flag = 'Y'
6587 THEN
6588 oe_debug_pub.add( 'G_LINE_UNINVOICED_FREIGHT done at ' || DO_TIME, 2);
6589 END IF;
6590
6591 --TaxER Start
6592 IF l_tax = 'Y' THEN --14689044
6593 INSERT INTO OE_CREDIT_SUMMARIES
6594 ( balance
6595 , balance_type
6596 , site_use_id
6597 , cust_account_id
6598 , party_id
6599 , org_id
6600 , currency_code
6601 , bucket
6602 , creation_date
6603 , created_by
6604 , last_update_date
6605 , last_updated_by
6606 , last_update_login
6607 , program_application_id
6608 , program_id
6609 , program_update_date
6610 , request_id
6611 , bucket_duration
6612 )
6613
6614 SELECT
6615 SUM( p1.adjusted_amount)
6616 , G_LINE_UNINVOICED_FREIGHT_T
6617 , m.line_invoice_to_org_id
6618 , line_cust_account_id
6619 , line_party_id
6620 , m.order_org_id
6621 , m.order_transactional_curr_code
6622 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6623 NVL( m.line_request_date,
6624 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
6625 , SYSDATE
6626 , l_created_by
6627 , SYSDATE
6628 , l_last_updated_by
6629 , l_last_update_login
6630 , l_program_application_id
6631 , l_program_id
6632 , SYSDATE
6633 , l_request_id
6634 , 1
6635
6636 FROM
6637 OE_INIT_CREDIT_SUMM_GTT m,
6638 oe_price_adjustments p,
6639 oe_price_adjustments p1 --TaxER
6640 WHERE
6641 p.line_id = m.line_line_id
6642 AND p.header_id = m.line_header_id
6643 AND p.header_id = m.order_header_id
6644 AND m.line_line_category_code = 'ORDER'
6645 AND p.applied_flag = 'Y'
6646 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
6647 AND p.list_line_type_code = 'FREIGHT_CHARGE'
6648 AND p1.list_line_type_code = 'TAX' and p1.parent_adjustment_id IS NOT NULL
6649 AND p1.applied_flag = 'N' --12895421
6650 AND p.price_adjustment_id = p1.parent_adjustment_id
6651 AND p.line_id = p1.line_id
6652 AND p.header_id = p1.header_id
6653 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
6654 GROUP BY
6655 m.line_invoice_to_org_id
6656 , m.order_transactional_curr_code
6657 , line_cust_account_id
6658 , line_party_id
6659 , m.order_org_id
6660 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6661 NVL( m.line_request_date,
6662 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) );
6663
6664
6665 IF G_debug_flag = 'Y'
6666 THEN
6667 oe_debug_pub.add( 'G_LINE_UNINVOICED_FREIGHT_T done at ' || DO_TIME, 2);
6668 END IF;
6669 END IF; --14689044
6670 --TaxER End
6671 END IF; -- l_freight_bal
6672
6673 --------------------------
6674 ------- RETURNS-----------
6675 --------------------------
6676 -- Line Freight
6677 --------------------------
6678
6679 -- balance type 28
6680 IF l_line_return_uninv_freight ='Y' THEN --14689044
6681 INSERT INTO OE_CREDIT_SUMMARIES
6682 ( balance
6683 , balance_type
6684 , site_use_id
6685 , cust_account_id
6686 , party_id
6687 , org_id
6688 , currency_code
6689 , bucket
6690 , bucket_duration
6691 , creation_date
6692 , created_by
6693 , last_update_date
6694 , last_updated_by
6695 , last_update_login
6696 , program_application_id
6697 , program_id
6698 , program_update_date
6699 , request_id
6700 )
6701
6702 SELECT
6703 SUM
6704 ( DECODE( p.credit_or_charge_flag, 'C', (-1), (+1) )
6705 * DECODE( p.arithmetic_operator, 'LUMPSUM', --bug 4295298
6706 p.operand, (m.line_ordered_quantity * p.adjusted_amount))
6707 )
6708 + SUM( NVL( m.rl_amount, 0 ))
6709 , G_LINE_RETURN_UNINV_FREIGHT
6710 , m.line_invoice_to_org_id
6711 , line_cust_account_id
6712 , line_party_id
6713 , m.order_org_id
6714 , m.order_transactional_curr_code
6715 , -2
6716 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
6717 , sysdate
6718 , l_created_by
6719 , sysdate
6720 , l_last_updated_by
6721 , l_last_update_login
6722 , l_program_application_id
6723 , l_program_id
6724 , SYSDATE
6725 , l_request_id
6726
6727 FROM
6728 oe_price_adjustments p,
6729 OE_INIT_CREDIT_SUMM_GTT m
6730 WHERE
6731 p.line_id = m.line_line_id
6732 AND p.header_id = m.line_header_id
6733 AND p.header_id = m.order_header_id
6734 AND m.line_line_category_code = 'RETURN'
6735 AND p.applied_flag = 'Y'
6736 AND p.list_line_type_code = 'FREIGHT_CHARGE'
6737 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
6738 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
6739 GROUP BY
6740 m.line_invoice_to_org_id
6741 , m.order_transactional_curr_code
6742 , line_cust_account_id
6743 , line_party_id
6744 , m.order_org_id;
6745
6746
6747
6748 IF G_debug_flag = 'Y'
6749 THEN
6750 oe_debug_pub.add( 'G_LINE_RETURN_UNINV_FREIGHT done at ' || DO_TIME, 2);
6751 END IF;
6752
6753
6754 --TaxER Start
6755 IF l_tax = 'Y' THEN --14689044
6756 INSERT INTO OE_CREDIT_SUMMARIES
6757 ( balance
6758 , balance_type
6759 , site_use_id
6760 , cust_account_id
6761 , party_id
6762 , org_id
6763 , currency_code
6764 , bucket
6765 , bucket_duration
6766 , creation_date
6767 , created_by
6768 , last_update_date
6769 , last_updated_by
6770 , last_update_login
6771 , program_application_id
6772 , program_id
6773 , program_update_date
6774 , request_id
6775 )
6776
6777 SELECT
6778 SUM ( p1.adjusted_amount)
6779 , G_LINE_RETURN_UNINV_FREIGHT_T
6780 , m.line_invoice_to_org_id
6781 , line_cust_account_id
6782 , line_party_id
6783 , m.order_org_id
6784 , m.order_transactional_curr_code
6785 , -2
6786 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
6787 , sysdate
6788 , l_created_by
6789 , sysdate
6790 , l_last_updated_by
6791 , l_last_update_login
6792 , l_program_application_id
6793 , l_program_id
6794 , SYSDATE
6795 , l_request_id
6796
6797 FROM
6798 OE_INIT_CREDIT_SUMM_GTT m,
6799 oe_price_adjustments p,
6800 oe_price_adjustments p1 --TaxER
6801 WHERE
6802 p.line_id = m.line_line_id
6803 AND p.header_id = m.line_header_id
6804 AND p.header_id = m.order_header_id
6805 AND m.line_line_category_code = 'RETURN'
6806 AND p.applied_flag = 'Y'
6807 AND p.list_line_type_code = 'FREIGHT_CHARGE'
6808 AND p1.list_line_type_code = 'TAX' and p1.parent_adjustment_id IS NOT NULL
6809 AND p1.applied_flag = 'N' --12895421
6810 AND p.price_adjustment_id = p1.parent_adjustment_id
6811 AND p.line_id = p1.line_id
6812 AND p.header_id = p1.header_id
6813 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
6814 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
6815 GROUP BY
6816 m.line_invoice_to_org_id
6817 , m.order_transactional_curr_code
6818 , line_cust_account_id
6819 , line_party_id
6820 , m.order_org_id;
6821
6822 END IF; --14689044
6823
6824 IF G_debug_flag = 'Y'
6825 THEN
6826 oe_debug_pub.add( 'G_LINE_RETURN_UNINV_FREIGHT_T done at ' || DO_TIME, 2);
6827 END IF;
6828 --TaxER End
6829 END IF; --14689044
6830 -- Bug 4219133 : Insert Freight Balances only if Freight Charges to be Included.
6831
6832 --14689044 IF l_freight_bal = 'Y' THEN
6833 IF l_header_uninvoiced_freight ='Y' THEN --14689044
6834
6835 --------------------------
6836 -- Header Freight
6837 --------------------------
6838 --14689044 IF l_cc_level_flag='Y' THEN
6839 -- balance type 5
6840
6841 INSERT INTO OE_CREDIT_SUMMARIES
6842 ( balance
6843 , balance_type
6844 , site_use_id
6845 , cust_account_id
6846 , party_id
6847 , org_id
6848 , currency_code
6849 , bucket
6850 , creation_date
6851 , created_by
6852 , last_update_date
6853 , last_updated_by
6854 , last_update_login
6855 , program_application_id
6856 , program_id
6857 , program_update_date
6858 , request_id
6859 , bucket_duration
6860 )
6861
6862 SELECT
6863 SUM
6864 ( DECODE( p.credit_or_charge_flag, 'C', (-1), (+1) )
6865 * DECODE( p.arithmetic_operator, 'LUMPSUM', --bug 4295298
6866 p.operand, (m.line_ordered_quantity * p.adjusted_amount))
6867 )
6868 --+ SUM( NVL( m.rl_amount, 0 ))
6869 , G_HEADER_UNINVOICED_FREIGHT
6870 , m.order_invoice_to_org_id
6871 , order_cust_account_id
6872 , order_party_id
6873 , m.order_org_id
6874 , m.order_transactional_curr_code
6875 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6876 NVL( m.line_request_date,
6877 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
6878 , SYSDATE
6879 , l_created_by
6880 , SYSDATE
6881 , l_last_updated_by
6882 , l_last_update_login
6883 , l_program_application_id
6884 , l_program_id
6885 , SYSDATE
6886 , l_request_id
6887 , 1
6888
6889 FROM oe_price_adjustments p,
6890 OE_INIT_CREDIT_SUMM_GTT m
6891 WHERE
6892 p.line_id = m.line_line_id
6893 AND p.header_id = m.line_header_id
6894 AND p.header_id = m.order_header_id
6895 AND m.line_line_category_code = 'ORDER'
6896 AND p.applied_flag = 'Y'
6897 AND p.list_line_type_code = 'FREIGHT_CHARGE'
6898 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
6899 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
6900 GROUP BY
6901 m.order_invoice_to_org_id
6902 , m.order_transactional_curr_code
6903 , order_cust_account_id
6904 , order_party_id
6905 , m.order_org_id
6906 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6907 NVL( m.line_request_date,
6908 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) );
6909
6910 IF G_debug_flag = 'Y'
6911 THEN
6912 oe_debug_pub.add( 'G_HEADER_UNINVOICED_FREIGHT done at ' || DO_TIME, 2 );
6913 END IF;
6914
6915
6916 --TaxER start
6917 IF l_tax = 'Y' THEN --14689044
6918 INSERT INTO OE_CREDIT_SUMMARIES
6919 ( balance
6920 , balance_type
6921 , site_use_id
6922 , cust_account_id
6923 , party_id
6924 , org_id
6925 , currency_code
6926 , bucket
6927 , creation_date
6928 , created_by
6929 , last_update_date
6930 , last_updated_by
6931 , last_update_login
6932 , program_application_id
6933 , program_id
6934 , program_update_date
6935 , request_id
6936 , bucket_duration
6937 )
6938
6939 SELECT
6940 SUM
6941 ( p1.adjusted_amount)
6942 , G_HEADER_UNINVOICED_FREIGHT_T
6943 , m.order_invoice_to_org_id
6944 , order_cust_account_id
6945 , order_party_id
6946 , m.order_org_id
6947 , m.order_transactional_curr_code
6948 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6949 NVL( m.line_request_date,
6950 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
6951 , SYSDATE
6952 , l_created_by
6953 , SYSDATE
6954 , l_last_updated_by
6955 , l_last_update_login
6956 , l_program_application_id
6957 , l_program_id
6958 , SYSDATE
6959 , l_request_id
6960 , 1
6961
6962 FROM oe_price_adjustments p,
6963 oe_price_adjustments p1, --TaxER
6964 OE_INIT_CREDIT_SUMM_GTT m
6965 WHERE
6966 p.line_id = m.line_line_id
6967 AND p.header_id = m.line_header_id
6968 AND p.header_id = m.order_header_id
6969 AND m.line_line_category_code = 'ORDER'
6970 AND p.applied_flag = 'Y'
6971 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
6972 AND p.list_line_type_code = 'FREIGHT_CHARGE'
6973 AND p1.list_line_type_code = 'TAX' and p1.parent_adjustment_id IS NOT NULL
6974 AND p1.applied_flag = 'N' --12895421
6975 AND p.price_adjustment_id = p1.parent_adjustment_id
6976 AND p.line_id = p1.line_id
6977 AND p.header_id = p1.header_id
6978 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
6979 GROUP BY
6980 m.order_invoice_to_org_id
6981 , m.order_transactional_curr_code
6982 , order_cust_account_id
6983 , order_party_id
6984 , m.order_org_id
6985 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
6986 NVL( m.line_request_date,
6987 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) );
6988 --TaxER End
6989 END IF; --14689044
6990
6991 IF G_debug_flag = 'Y'
6992 THEN
6993 oe_debug_pub.add( 'G_HEADER_UNINVOICED_FREIGHT_T done at ' || DO_TIME, 2 );
6994 END IF;
6995 --14689044 END IF; -- l_cc_level_flag
6996 END IF; -- l_freight_bal
6997
6998 --------------------------------
6999 --------- RETURNS --------------
7000 -- Header Freight
7001 --------------------------------
7002 --14689044 IF l_cc_level_flag='Y' THEN
7003 IF l_head_return_uninv_freight ='Y' THEN --14689044
7004 -- balance type 27
7005
7006 INSERT INTO OE_CREDIT_SUMMARIES
7007 ( balance
7008 , balance_type
7009 , site_use_id
7010 , cust_account_id
7011 , party_id
7012 , org_id
7013 , currency_code
7014 , bucket
7015 , bucket_duration
7016 , creation_date
7017 , created_by
7018 , last_update_date
7019 , last_updated_by
7020 , last_update_login
7021 , program_application_id
7022 , program_id
7023 , program_update_date
7024 , request_id
7025 )
7026
7027
7028 SELECT
7029 SUM
7030 ( DECODE( p.credit_or_charge_flag, 'C', (-1), (+1) )
7031 * DECODE( p.arithmetic_operator, 'LUMPSUM', --bug 4295298
7032 p.operand, (m.line_ordered_quantity * p.adjusted_amount))
7033 )
7034 + SUM( NVL( m.rl_amount, 0 ))
7035 , G_HEAD_RETURN_UNINV_FREIGHT
7036 , m.order_invoice_to_org_id
7037 , order_cust_account_id
7038 , order_party_id
7039 , m.order_org_id
7040 , m.order_transactional_curr_code
7041 , -2
7042 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
7043 , sysdate
7044 , l_created_by
7045 , sysdate
7046 , l_last_updated_by
7047 , l_last_update_login
7048 , l_program_application_id
7049 , l_program_id
7050 , SYSDATE
7051 , l_request_id
7052
7053 FROM oe_price_adjustments p,
7054 OE_INIT_CREDIT_SUMM_GTT m
7055 WHERE
7056 p.line_id = m.line_line_id
7057 AND p.header_id = m.line_header_id
7058 AND p.header_id = m.order_header_id
7059 AND m.line_line_category_code = 'RETURN'
7060 AND p.applied_flag = 'Y'
7061 AND p.list_line_type_code = 'FREIGHT_CHARGE'
7062 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
7063 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
7064 GROUP BY
7065 m.order_invoice_to_org_id
7066 , m.order_transactional_curr_code
7067 , order_cust_account_id
7068 , order_party_id
7069 , m.order_org_id;
7070
7071
7072 IF G_debug_flag = 'Y'
7073 THEN
7074 oe_debug_pub.add( 'G_HEAD_RETURN_UNINV_FREIGHT done at ' || DO_TIME, 2 );
7075 END IF;
7076
7077 --TaxER Start
7078 IF l_tax = 'Y' THEN --14689044
7079 INSERT INTO OE_CREDIT_SUMMARIES
7080 ( balance
7081 , balance_type
7082 , site_use_id
7083 , cust_account_id
7084 , party_id
7085 , org_id
7086 , currency_code
7087 , bucket
7088 , bucket_duration
7089 , creation_date
7090 , created_by
7091 , last_update_date
7092 , last_updated_by
7093 , last_update_login
7094 , program_application_id
7095 , program_id
7096 , program_update_date
7097 , request_id
7098 )
7099
7100
7101 SELECT
7102 SUM ( p1.adjusted_amount)
7103 , G_HEAD_RETURN_UNINV_FREIGHT_T
7104 , m.order_invoice_to_org_id
7105 , order_cust_account_id
7106 , order_party_id
7107 , m.order_org_id
7108 , m.order_transactional_curr_code
7109 , -2
7110 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
7111 , sysdate
7112 , l_created_by
7113 , sysdate
7114 , l_last_updated_by
7115 , l_last_update_login
7116 , l_program_application_id
7117 , l_program_id
7118 , SYSDATE
7119 , l_request_id
7120
7121 FROM oe_price_adjustments p,
7122 oe_price_adjustments p1, --TaxER
7123 OE_INIT_CREDIT_SUMM_GTT m
7124 WHERE
7125 p.line_id = m.line_line_id
7126 AND p.header_id = m.line_header_id
7127 AND p.header_id = m.order_header_id
7128 AND m.line_line_category_code = 'RETURN'
7129 AND p.applied_flag = 'Y'
7130 AND p.list_line_type_code = 'FREIGHT_CHARGE'
7131 AND p1.list_line_type_code = 'TAX' and p1.parent_adjustment_id IS NOT NULL
7132 AND p1.applied_flag = 'N' --12895421
7133 AND p.price_adjustment_id = p1.parent_adjustment_id
7134 AND p.line_id = p1.line_id
7135 AND p.header_id = p1.header_id
7136 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
7137 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
7138 GROUP BY
7139 m.order_invoice_to_org_id
7140 , m.order_transactional_curr_code
7141 , order_cust_account_id
7142 , order_party_id
7143 , m.order_org_id;
7144
7145
7146 IF G_debug_flag = 'Y'
7147 THEN
7148 oe_debug_pub.add( 'G_HEAD_RETURN_UNINV_FREIGHT_T done at ' || DO_TIME, 2 );
7149 END IF;
7150 END IF; --14689044
7151 --TaxER End
7152
7153 END IF; -- l_cc_level_flag
7154 -- Bug 4219133 : Insert Freight Balances only if Freight Charges to be Included.
7155
7156 --14689044 IF l_freight_bal = 'Y' THEN
7157 IF l_header_and_line_freight ='Y' THEN --14689044
7158 --------------------------
7159 -- Header + Line Fright Part 2
7160 --------------------------
7161 -- This cost is specified at the order header and thus
7162 -- the bill-to site to be used is always the header bill-to site.
7163 -- Therefore for both line and header bill-to site level exposures,
7164 -- this same balance type summary is added
7165
7166 -- balance type 7
7167
7168 INSERT INTO OE_CREDIT_SUMMARIES
7169 ( balance
7170 , balance_type
7171 , site_use_id
7172 , cust_account_id
7173 , party_id
7174 , org_id
7175 , currency_code
7176 , bucket
7177 , creation_date
7178 , created_by
7179 , last_update_date
7180 , last_updated_by
7181 , last_update_login
7182 , program_application_id
7183 , program_id
7184 , program_update_date
7185 , request_id
7186 , bucket_duration
7187 )
7188
7189
7190 SELECT
7191 SUM( DECODE( p.credit_or_charge_flag, 'C', (-1), (+1) ) * p.operand )
7192 , G_HEADER_AND_LINE_FREIGHT
7193 , h.invoice_to_org_id
7194 , s.cust_account_id
7195 , ca.party_id
7196 , h.org_id
7197 , h.transactional_curr_code
7198 , TO_NUMBER( TO_CHAR( NVL( h.request_date, h.creation_date ), 'J' ) )
7199 , SYSDATE
7200 , l_created_by
7201 , SYSDATE
7202 , l_last_updated_by
7203 , l_last_update_login
7204 , l_program_application_id
7205 , l_program_id
7206 , SYSDATE
7207 , l_request_id
7208 , 1
7209
7210 FROM
7211 oe_price_adjustments p
7212 , oe_order_headers_all h
7213 , hz_cust_site_uses_all su
7214 , hz_cust_acct_sites_all s
7215 , hz_cust_accounts ca
7216 WHERE
7217 p.line_id IS NULL
7218 AND p.header_id = h.header_id
7219 AND h.order_category_code IN ('ORDER','MIXED')
7220 AND h.open_flag = 'Y'
7221 AND h.booked_flag = 'Y'
7222 AND p.applied_flag = 'Y'
7223 AND p.list_line_type_code = 'FREIGHT_CHARGE'
7224 AND NVL( p.invoiced_flag, 'N' ) = 'N'
7225 AND su.site_use_id = h.invoice_to_org_id
7226 AND su.cust_acct_site_id = s.cust_acct_site_id
7227 AND ca.cust_account_id = s.cust_account_id
7228 AND EXISTS
7229 ( SELECT NULL
7230 FROM oe_payment_types_all t,
7231 oe_order_lines_all l
7232 WHERE t.credit_check_flag = 'Y'
7233 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
7234 AND l.header_id = h.header_id
7235 AND t.payment_type_code =
7236 DECODE(l.payment_type_code, NULL,
7237 DECODE(h.payment_type_code, NULL, t.payment_type_code,
7238 h.payment_type_code),
7239 l.payment_type_code)
7240 )
7241 GROUP BY
7242 h.invoice_to_org_id
7243 , h.transactional_curr_code
7244 , s.cust_account_id
7245 , ca.party_id
7246 , h.org_id
7247 , TO_NUMBER( TO_CHAR( NVL( h.request_date, h.creation_date ), 'J' ) )
7248 UNION ALL --bug# 2714553
7249 SELECT
7250 SUM( NVL( rl.amount, 0 ))
7251 , G_HEADER_AND_LINE_FREIGHT
7252 , h.invoice_to_org_id
7253 , s.cust_account_id
7254 , ca.party_id
7255 , h.org_id
7256 , h.transactional_curr_code
7257 , TO_NUMBER( TO_CHAR( NVL( h.request_date, h.creation_date ), 'J' ) )
7258 , SYSDATE
7259 , l_created_by
7260 , SYSDATE
7261 , l_last_updated_by
7262 , l_last_update_login
7263 , l_program_application_id
7264 , l_program_id
7265 , SYSDATE
7266 , l_request_id
7267 , 1
7268
7269 FROM
7270 oe_price_adjustments p
7271 , oe_order_headers_all h
7272 , hz_cust_site_uses_all su
7273 , hz_cust_acct_sites_all s
7274 , hz_cust_accounts ca
7275 , ra_interface_lines_all rl
7276 WHERE
7277 p.line_id IS NULL
7278 AND p.header_id = h.header_id
7279 AND h.order_category_code IN ('ORDER','MIXED')
7280 AND h.booked_flag = 'Y'
7281 AND p.applied_flag = 'Y'
7282 AND p.list_line_type_code = 'FREIGHT_CHARGE'
7283 AND NVL( p.invoiced_flag, 'N' ) = 'Y'
7284 AND su.site_use_id = h.invoice_to_org_id
7285 AND su.cust_acct_site_id = s.cust_acct_site_id
7286 AND ca.cust_account_id = s.cust_account_id
7287 AND rl.orig_system_bill_customer_id = ca.cust_account_id
7288 AND nvl(rl.interface_status, '~') <> 'P'
7289 AND rl.interface_line_context = 'ORDER ENTRY'
7290 AND rl.interface_line_attribute1 = h.order_number
7291 AND rl.interface_line_attribute6 = p.price_adjustment_id
7292 AND EXISTS
7293 ( SELECT NULL
7294 FROM oe_payment_types_all t,
7295 oe_order_lines_all l
7296 WHERE t.credit_check_flag = 'Y'
7297 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
7298 AND l.header_id = h.header_id
7299 AND t.payment_type_code =
7300 DECODE(l.payment_type_code, NULL,
7301 DECODE(h.payment_type_code, NULL, t.payment_type_code,
7302 h.payment_type_code),
7303 l.payment_type_code)
7304 )
7305 GROUP BY
7306 h.invoice_to_org_id
7307 , h.transactional_curr_code
7308 , s.cust_account_id
7309 , ca.party_id
7310 , h.org_id
7311 , TO_NUMBER( TO_CHAR( NVL( h.request_date, h.creation_date ), 'J' ) )
7312 ;
7313
7314
7315
7316 IF G_debug_flag = 'Y'
7317 THEN
7318 oe_debug_pub.add( 'G_HEADER_AND_LINE_FREIGHT done at ' || DO_TIME, 2 );
7319 END IF;
7320
7321 --TaxER Start
7322 IF l_tax = 'Y' THEN --14689044
7323 INSERT INTO OE_CREDIT_SUMMARIES
7324 ( balance
7325 , balance_type
7326 , site_use_id
7327 , cust_account_id
7328 , party_id
7329 , org_id
7330 , currency_code
7331 , bucket
7332 , creation_date
7333 , created_by
7334 , last_update_date
7335 , last_updated_by
7336 , last_update_login
7337 , program_application_id
7338 , program_id
7339 , program_update_date
7340 , request_id
7341 , bucket_duration
7342 )
7343
7344
7345 SELECT
7346 SUM ( p.adjusted_amount)
7347 , G_HEADER_AND_LINE_FREIGHT_T
7348 , h.invoice_to_org_id
7349 , s.cust_account_id
7350 , ca.party_id
7351 , h.org_id
7352 , h.transactional_curr_code
7353 , TO_NUMBER( TO_CHAR( NVL( h.request_date, h.creation_date ), 'J' ) )
7354 , SYSDATE
7355 , l_created_by
7356 , SYSDATE
7357 , l_last_updated_by
7358 , l_last_update_login
7359 , l_program_application_id
7360 , l_program_id
7361 , SYSDATE
7362 , l_request_id
7363 , 1
7364
7365 FROM
7366 oe_price_adjustments p
7367 , oe_order_headers_all h
7368 , hz_cust_site_uses_all su
7369 , hz_cust_acct_sites_all s
7370 , hz_cust_accounts ca
7371 WHERE
7372 p.line_id IS NULL
7373 AND p.header_id = h.header_id
7374 AND h.order_category_code IN ('ORDER','MIXED')
7375 AND h.open_flag = 'Y'
7376 AND h.booked_flag = 'Y'
7377 --12597952 AND p.applied_flag = 'Y'
7378 AND p.list_line_type_code = 'TAX'
7379 AND p.parent_adjustment_id IS NOT NULL
7380 AND p.applied_flag = 'N' --12895421
7381 AND NVL( p.invoiced_flag, 'N' ) = 'N'
7382 AND su.site_use_id = h.invoice_to_org_id
7383 AND su.cust_acct_site_id = s.cust_acct_site_id
7384 AND ca.cust_account_id = s.cust_account_id
7385 AND EXISTS
7386 ( SELECT NULL
7387 FROM oe_payment_types_all t,
7388 oe_order_lines_all l
7389 WHERE t.credit_check_flag = 'Y'
7390 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
7391 AND l.header_id = h.header_id
7392 AND t.payment_type_code =
7393 DECODE(l.payment_type_code, NULL,
7394 DECODE(h.payment_type_code, NULL, t.payment_type_code,
7395 h.payment_type_code),
7396 l.payment_type_code)
7397 )
7398 GROUP BY
7399 h.invoice_to_org_id
7400 , h.transactional_curr_code
7401 , s.cust_account_id
7402 , ca.party_id
7403 , h.org_id
7404 , TO_NUMBER( TO_CHAR( NVL( h.request_date, h.creation_date ), 'J' ) )
7405 UNION ALL --bug# 2714553
7406 SELECT
7407 SUM( NVL( rl.amount, 0 ))
7408 , G_HEADER_AND_LINE_FREIGHT_T
7409 , h.invoice_to_org_id
7410 , s.cust_account_id
7411 , ca.party_id
7412 , h.org_id
7413 , h.transactional_curr_code
7414 , TO_NUMBER( TO_CHAR( NVL( h.request_date, h.creation_date ), 'J' ) )
7415 , SYSDATE
7416 , l_created_by
7417 , SYSDATE
7418 , l_last_updated_by
7419 , l_last_update_login
7420 , l_program_application_id
7421 , l_program_id
7422 , SYSDATE
7423 , l_request_id
7424 , 1
7425
7426 FROM
7427 oe_price_adjustments p
7428 , oe_order_headers_all h
7429 , hz_cust_site_uses_all su
7430 , hz_cust_acct_sites_all s
7431 , hz_cust_accounts ca
7432 , ra_interface_lines_all rl
7433 WHERE
7434 p.line_id IS NULL
7435 AND p.header_id = h.header_id
7436 AND h.order_category_code IN ('ORDER','MIXED')
7437 AND h.booked_flag = 'Y'
7438 --12597952 AND p.applied_flag = 'Y'
7439 AND p.list_line_type_code = 'TAX'
7440 AND p.parent_adjustment_id IS NOT NULL
7441 AND p.applied_flag = 'N' --12895421
7442 AND NVL( p.invoiced_flag, 'N' ) = 'Y'
7443 AND su.site_use_id = h.invoice_to_org_id
7444 AND su.cust_acct_site_id = s.cust_acct_site_id
7445 AND ca.cust_account_id = s.cust_account_id
7446 AND rl.orig_system_bill_customer_id = ca.cust_account_id
7447 AND nvl(rl.interface_status, '~') <> 'P'
7448 AND rl.interface_line_context = 'ORDER ENTRY'
7449 AND rl.interface_line_attribute1 = h.order_number
7450 AND rl.interface_line_attribute6 = p.price_adjustment_id
7451 AND EXISTS
7452 ( SELECT NULL
7453 FROM oe_payment_types_all t,
7454 oe_order_lines_all l
7455 WHERE t.credit_check_flag = 'Y'
7456 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
7457 AND l.header_id = h.header_id
7458 AND t.payment_type_code =
7459 DECODE(l.payment_type_code, NULL,
7460 DECODE(h.payment_type_code, NULL, t.payment_type_code,
7461 h.payment_type_code),
7462 l.payment_type_code)
7463 )
7464 GROUP BY
7465 h.invoice_to_org_id
7466 , h.transactional_curr_code
7467 , s.cust_account_id
7468 , ca.party_id
7469 , h.org_id
7470 , TO_NUMBER( TO_CHAR( NVL( h.request_date, h.creation_date ), 'J' ) )
7471 ;
7472
7473
7474
7475 IF G_debug_flag = 'Y'
7476 THEN
7477 oe_debug_pub.add( 'G_HEADER_AND_LINE_FREIGHT_T done at ' || DO_TIME, 2 );
7478 END IF;
7479 END IF; --14689044
7480 --TaxER End
7481
7482 END IF; -- l_freight_bal
7483
7484 -------------------------------
7485 ----- RETURNS -----------------
7486 -- Header + Line Freight Part 2
7487 -------------------------------
7488 -- This cost is specified at the order header and thus
7489 -- the bill-to site to be used is always the header bill-to site.
7490 -- Therefore for both line and header bill-to site level exposures,
7491 -- this same balance type summary is added
7492
7493 -- balance type 29
7494 IF l_head_line_return_freight ='Y' THEN --14689044
7495
7496 INSERT INTO OE_CREDIT_SUMMARIES
7497 ( balance
7498 , balance_type
7499 , site_use_id
7500 , cust_account_id
7501 , party_id
7502 , org_id
7503 , currency_code
7504 , bucket
7505 , bucket_duration
7506 , creation_date
7507 , created_by
7508 , last_update_date
7509 , last_updated_by
7510 , last_update_login
7511 , program_application_id
7512 , program_id
7513 , program_update_date
7514 , request_id
7515 )
7516
7517
7518 SELECT
7519 SUM( DECODE( p.credit_or_charge_flag, 'C', (-1), (+1) ) * p.operand )
7520 , G_HEAD_LINE_RETURN_FREIGHT
7521 , h.invoice_to_org_id
7522 , s.cust_account_id
7523 , ca.party_id
7524 , h.org_id
7525 , h.transactional_curr_code
7526 , -2
7527 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
7528 , sysdate
7529 , l_created_by
7530 , sysdate
7531 , l_last_updated_by
7532 , l_last_update_login
7533 , l_program_application_id
7534 , l_program_id
7535 , SYSDATE
7536 , l_request_id
7537
7538 FROM
7539 oe_price_adjustments p
7540 , oe_order_headers_all h
7541 , hz_cust_site_uses_all su
7542 , hz_cust_acct_sites_all s
7543 , hz_cust_accounts ca
7544 WHERE
7545 p.line_id IS NULL
7546 AND p.header_id = h.header_id
7547 AND h.order_category_code ='RETURN'
7548 AND h.open_flag = 'Y'
7549 AND h.booked_flag = 'Y'
7550 AND p.applied_flag = 'Y'
7551 AND p.list_line_type_code = 'FREIGHT_CHARGE'
7552 AND NVL( p.invoiced_flag, 'N' ) = 'N'
7553 AND su.site_use_id = h.invoice_to_org_id
7554 AND su.cust_acct_site_id = s.cust_acct_site_id
7555 AND ca.cust_account_id = s.cust_account_id
7556 AND EXISTS
7557 ( SELECT NULL
7558 FROM oe_payment_types_all t,
7559 oe_order_lines_all l
7560 WHERE t.credit_check_flag = 'Y'
7561 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
7562 AND l.header_id = h.header_id
7563 AND t.payment_type_code =
7564 DECODE(l.payment_type_code, NULL,
7565 DECODE(h.payment_type_code, NULL, t.payment_type_code,
7566 h.payment_type_code),
7567 l.payment_type_code)
7568 )
7569 GROUP BY
7570 h.invoice_to_org_id
7571 , h.transactional_curr_code
7572 , s.cust_account_id
7573 , ca.party_id
7574 , h.org_id
7575 UNION ALL --bug# 2714553
7576 SELECT
7577 SUM( NVL( rl.amount, 0 ))
7578 , G_HEAD_LINE_RETURN_FREIGHT
7579 , h.invoice_to_org_id
7580 , s.cust_account_id
7581 , ca.party_id
7582 , h.org_id
7583 , h.transactional_curr_code
7584 , -2
7585 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
7586 , sysdate
7587 , l_created_by
7588 , sysdate
7589 , l_last_updated_by
7590 , l_last_update_login
7591 , l_program_application_id
7592 , l_program_id
7593 , SYSDATE
7594 , l_request_id
7595
7596 FROM
7597 oe_price_adjustments p
7598 , oe_order_headers_all h
7599 , hz_cust_site_uses_all su
7600 , hz_cust_acct_sites_all s
7601 , hz_cust_accounts ca
7602 , ra_interface_lines_all rl
7603 WHERE
7604 p.line_id IS NULL
7605 AND p.header_id = h.header_id
7606 AND h.order_category_code ='RETURN'
7607 AND h.booked_flag = 'Y'
7608 AND p.applied_flag = 'Y'
7609 AND p.list_line_type_code = 'FREIGHT_CHARGE'
7610 AND NVL( p.invoiced_flag, 'N' ) = 'Y'
7611 AND su.site_use_id = h.invoice_to_org_id
7612 AND su.cust_acct_site_id = s.cust_acct_site_id
7613 AND ca.cust_account_id = s.cust_account_id
7614 AND rl.orig_system_bill_customer_id = ca.cust_account_id
7615 AND nvl(rl.interface_status, '~') <> 'P'
7616 AND rl.interface_line_context = 'ORDER ENTRY'
7617 AND rl.interface_line_attribute1 = h.order_number
7618 AND rl.interface_line_attribute6 = p.price_adjustment_id
7619 AND EXISTS
7620 ( SELECT NULL
7621 FROM oe_payment_types_all t,
7622 oe_order_lines_all l
7623 WHERE t.credit_check_flag = 'Y'
7624 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
7625 AND l.header_id = h.header_id
7626 AND t.payment_type_code =
7627 DECODE(l.payment_type_code, NULL,
7628 DECODE(h.payment_type_code, NULL, t.payment_type_code,
7629 h.payment_type_code),
7630 l.payment_type_code)
7631 )
7632 GROUP BY
7633 h.invoice_to_org_id
7634 , h.transactional_curr_code
7635 , s.cust_account_id
7636 , ca.party_id
7637 , h.org_id
7638 ;
7639
7640 IF G_debug_flag = 'Y'
7641 THEN
7642 oe_debug_pub.add( 'G_HEAD_LINE_RETURN_FREIGHT done at ' || DO_TIME, 2 );
7643 END IF;
7644
7645 --TaxER Start
7646 IF l_tax = 'Y' THEN --14689044
7647 INSERT INTO OE_CREDIT_SUMMARIES
7648 ( balance
7649 , balance_type
7650 , site_use_id
7651 , cust_account_id
7652 , party_id
7653 , org_id
7654 , currency_code
7655 , bucket
7656 , bucket_duration
7657 , creation_date
7658 , created_by
7659 , last_update_date
7660 , last_updated_by
7661 , last_update_login
7662 , program_application_id
7663 , program_id
7664 , program_update_date
7665 , request_id
7666 )
7667
7668
7669 SELECT
7670 SUM ( p.adjusted_amount)
7671 , G_HEAD_LINE_RETURN_FREIGHT_T
7672 , h.invoice_to_org_id
7673 , s.cust_account_id
7674 , ca.party_id
7675 , h.org_id
7676 , h.transactional_curr_code
7677 , -2
7678 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
7679 , sysdate
7680 , l_created_by
7681 , sysdate
7682 , l_last_updated_by
7683 , l_last_update_login
7684 , l_program_application_id
7685 , l_program_id
7686 , SYSDATE
7687 , l_request_id
7688
7689 FROM
7690 oe_price_adjustments p
7691 , oe_order_headers_all h
7692 , hz_cust_site_uses_all su
7693 , hz_cust_acct_sites_all s
7694 , hz_cust_accounts ca
7695 WHERE
7696 p.line_id IS NULL
7697 AND p.header_id = h.header_id
7698 AND h.order_category_code ='RETURN'
7699 AND h.open_flag = 'Y'
7700 AND h.booked_flag = 'Y'
7701 --12597952 AND p.applied_flag = 'Y'
7702 AND p.list_line_type_code = 'TAX'
7703 AND p.parent_adjustment_id IS NOT NULL
7704 AND p.applied_flag = 'N' --12895421
7705 AND NVL( p.invoiced_flag, 'N' ) = 'N'
7706 AND su.site_use_id = h.invoice_to_org_id
7707 AND su.cust_acct_site_id = s.cust_acct_site_id
7708 AND ca.cust_account_id = s.cust_account_id
7709 AND EXISTS
7710 ( SELECT NULL
7711 FROM oe_payment_types_all t,
7712 oe_order_lines_all l
7713 WHERE t.credit_check_flag = 'Y'
7714 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
7715 AND l.header_id = h.header_id
7716 AND t.payment_type_code =
7717 DECODE(l.payment_type_code, NULL,
7718 DECODE(h.payment_type_code, NULL, t.payment_type_code,
7719 h.payment_type_code),
7720 l.payment_type_code)
7721 )
7722 GROUP BY
7723 h.invoice_to_org_id
7724 , h.transactional_curr_code
7725 , s.cust_account_id
7726 , ca.party_id
7727 , h.org_id
7728 UNION ALL --bug# 2714553
7729 SELECT
7730 SUM( NVL( rl.amount, 0 ))
7731 , G_HEAD_LINE_RETURN_FREIGHT_T
7732 , h.invoice_to_org_id
7733 , s.cust_account_id
7734 , ca.party_id
7735 , h.org_id
7736 , h.transactional_curr_code
7737 , -2
7738 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
7739 , sysdate
7740 , l_created_by
7741 , sysdate
7742 , l_last_updated_by
7743 , l_last_update_login
7744 , l_program_application_id
7745 , l_program_id
7746 , SYSDATE
7747 , l_request_id
7748
7749 FROM
7750 oe_price_adjustments p
7751 , oe_order_headers_all h
7752 , hz_cust_site_uses_all su
7753 , hz_cust_acct_sites_all s
7754 , hz_cust_accounts ca
7755 , ra_interface_lines_all rl
7756 WHERE
7757 p.line_id IS NULL
7758 AND p.header_id = h.header_id
7759 AND h.order_category_code ='RETURN'
7760 AND h.booked_flag = 'Y'
7761 --12597952 AND p.applied_flag = 'Y'
7762 AND p.list_line_type_code = 'TAX'
7763 AND p.parent_adjustment_id IS NOT NULL
7764 AND p.applied_flag = 'N' --12895421
7765 AND NVL( p.invoiced_flag, 'N' ) = 'Y'
7766 AND su.site_use_id = h.invoice_to_org_id
7767 AND su.cust_acct_site_id = s.cust_acct_site_id
7768 AND ca.cust_account_id = s.cust_account_id
7769 AND rl.orig_system_bill_customer_id = ca.cust_account_id
7770 AND nvl(rl.interface_status, '~') <> 'P'
7771 AND rl.interface_line_context = 'ORDER ENTRY'
7772 AND rl.interface_line_attribute1 = h.order_number
7773 AND rl.interface_line_attribute6 = p.price_adjustment_id
7774 AND EXISTS
7775 ( SELECT NULL
7776 FROM oe_payment_types_all t,
7777 oe_order_lines_all l
7778 WHERE t.credit_check_flag = 'Y'
7779 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
7780 AND l.header_id = h.header_id
7781 AND t.payment_type_code =
7782 DECODE(l.payment_type_code, NULL,
7783 DECODE(h.payment_type_code, NULL, t.payment_type_code,
7784 h.payment_type_code),
7785 l.payment_type_code)
7786 )
7787 GROUP BY
7788 h.invoice_to_org_id
7789 , h.transactional_curr_code
7790 , s.cust_account_id
7791 , ca.party_id
7792 , h.org_id
7793 ;
7794 END IF; --14689044
7795 --TaxER End
7796
7797 IF G_debug_flag = 'Y'
7798 THEN
7799 oe_debug_pub.add( 'G_HEAD_LINE_RETURN_FREIGHT_T done at ' || DO_TIME, 2 );
7800 END IF;
7801 END IF; --14689044
7802 --------------------------
7803 -- Holds
7804 --------------------------
7805 -- This is a repeat of all the order balance types, but this
7806 -- time qualified by existing holds.
7807 -- In the Get_Exposure procedure, this negative balance
7808 -- is added if the Include Orders on Hold box is checked in the credit
7809 -- check rule
7810
7811 -- Bug 4219133:Insert Hold Balances only if Orders on Hold Need to be Excluded.
7812
7813 --14689044 IF l_order_hold_bal = 'Y' THEN
7814
7815 --14689044 IF l_cc_level_flag='Y' THEN
7816 -- balance type 10
7817 IF l_order_holds ='Y' THEN --14689044
7818
7819 INSERT INTO OE_CREDIT_SUMMARIES
7820 ( balance
7821 , balance_type
7822 , site_use_id
7823 , cust_account_id
7824 , party_id
7825 , org_id
7826 , currency_code
7827 , bucket
7828 , creation_date
7829 , created_by
7830 , last_update_date
7831 , last_updated_by
7832 , last_update_login
7833 , program_application_id
7834 , program_id
7835 , program_update_date
7836 , request_id
7837 , bucket_duration
7838 )
7839
7840
7841 SELECT
7842 - SUM( NVL( m.line_ordered_quantity, 0 )
7843 * NVL( m.line_unit_selling_price, 0 ) )
7844 + SUM( NVL( p.commitment_applied_amount, 0 ) )
7845 , G_ORDER_HOLDS
7846 , m.order_invoice_to_org_id
7847 , order_cust_account_id
7848 , order_party_id
7849 , m.order_org_id
7850 , m.order_transactional_curr_code
7851 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
7852 NVL( m.line_request_date,
7853 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
7854 , SYSDATE
7855 , l_created_by
7856 , SYSDATE
7857 , l_last_updated_by
7858 , l_last_update_login
7859 , l_program_application_id
7860 , l_program_id
7861 , SYSDATE
7862 , l_request_id
7863 , 1
7864
7865 FROM
7866 OE_INIT_CREDIT_SUMM_GTT m,
7867 oe_payments p
7868 WHERE
7869 m.line_line_category_code = 'ORDER'
7870 AND p.header_id (+) = m.line_header_id
7871 AND p.line_id (+) = m.line_line_id
7872 AND m.interface_line_attribute6 = -999 --TaxER
7873 AND EXISTS
7874 ( SELECT 1
7875 FROM
7876 oe_order_holds_all oh
7877 WHERE
7878 oh.header_id = m.order_header_id
7879 AND ( oh.line_id = m.line_line_id
7880 OR oh.line_id IS NULL
7881 )
7882 AND oh.hold_release_id IS NULL
7883 )
7884 GROUP BY
7885 m.order_invoice_to_org_id
7886 , m.order_transactional_curr_code
7887 , order_cust_account_id
7888 , order_party_id
7889 , m.order_org_id
7890 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
7891 NVL( m.line_request_date,
7892 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
7893 ;
7894
7895
7896
7897 IF G_debug_flag = 'Y'
7898 THEN
7899 oe_debug_pub.add( 'G_ORDER_HOLDS done at ' || DO_TIME, 2 );
7900 END IF;
7901 END IF; -- l_cc_level_flag
7902
7903 --14689044 IF l_cc_level_flag='Y' THEN
7904 IF l_order_tax_holds ='Y' THEN --14689044
7905 -- balance type 13
7906 INSERT INTO OE_CREDIT_SUMMARIES
7907 ( balance
7908 , balance_type
7909 , site_use_id
7910 , cust_account_id
7911 , party_id
7912 , org_id
7913 , currency_code
7914 , bucket
7915 , creation_date
7916 , created_by
7917 , last_update_date
7918 , last_updated_by
7919 , last_update_login
7920 , program_application_id
7921 , program_id
7922 , program_update_date
7923 , request_id
7924 , bucket_duration
7925 )
7926
7927
7928 SELECT
7929 - SUM( NVL( m.line_tax_value, 0 ) )
7930 , G_ORDER_TAX_HOLDS
7931 , m.order_invoice_to_org_id
7932 , order_cust_account_id
7933 , order_party_id
7934 , m.order_org_id
7935 , m.order_transactional_curr_code
7936 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
7937 NVL( m.line_request_date,
7938 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
7939 , SYSDATE
7940 , l_created_by
7941 , SYSDATE
7942 , l_last_updated_by
7943 , l_last_update_login
7944 , l_program_application_id
7945 , l_program_id
7946 , SYSDATE
7947 , l_request_id
7948 , 1
7949
7950 FROM
7951 OE_INIT_CREDIT_SUMM_GTT m
7952 WHERE
7953 m.line_line_category_code = 'ORDER'
7954 AND m.interface_line_attribute6 = -999 --TaxER
7955 AND EXISTS
7956 ( SELECT 1
7957 FROM oe_order_holds_all oh
7958 WHERE oh.header_id = m.order_header_id
7959 AND ( oh.line_id = m.line_line_id
7960 OR oh.line_id IS NULL
7961 )
7962 AND oh.hold_release_id IS NULL
7963 )
7964 GROUP BY
7965 m.order_invoice_to_org_id
7966 , m.order_transactional_curr_code
7967 , order_cust_account_id
7968 , order_party_id
7969 , m.order_org_id
7970 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
7971 NVL( m.line_request_date,
7972 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
7973 ;
7974
7975
7976 IF G_debug_flag = 'Y'
7977 THEN
7978 oe_debug_pub.add( 'G_ORDER_TAX_HOLDS done at ' || DO_TIME, 2 );
7979 END IF;
7980 END IF; -- l_cc_level_flag
7981 --14689044 END IF; -- IF l_order_hold_bal
7982
7983 -------------------------------
7984 ---------- RETURNS-------------
7985 -- Return Holds --------------
7986 -------------------------------
7987 -- This is a repeat of all the order balance types, but this
7988 -- time qualified by existing holds.
7989 -- In the Get_Exposure procedure, this negative balance
7990 -- is added if the Include Orders on Hold box is checked in the credit
7991 -- check rule
7992
7993 --14689044 IF l_cc_level_flag='Y' THEN
7994 IF l_order_return_holds ='Y' THEN --14689044
7995 -- balance type 30
7996 INSERT INTO OE_CREDIT_SUMMARIES
7997 ( balance
7998 , balance_type
7999 , site_use_id
8000 , cust_account_id
8001 , party_id
8002 , org_id
8003 , currency_code
8004 , bucket
8005 , bucket_duration
8006 , creation_date
8007 , created_by
8008 , last_update_date
8009 , last_updated_by
8010 , last_update_login
8011 , program_application_id
8012 , program_id
8013 , program_update_date
8014 , request_id
8015 )
8016
8017
8018 SELECT
8019 SUM( NVL( l.ordered_quantity, 0 )
8020 * NVL( l.unit_selling_price, 0 ) )
8021 - SUM( NVL( p.commitment_applied_amount, 0 ) )
8022 , G_ORDER_RETURN_HOLDS
8023 , h.invoice_to_org_id
8024 , s.cust_account_id
8025 , ca.party_id
8026 , h.org_id
8027 , h.transactional_curr_code
8028 , -2
8029 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
8030 , sysdate
8031 , l_created_by
8032 , sysdate
8033 , l_last_updated_by
8034 , l_last_update_login
8035 , l_program_application_id
8036 , l_program_id
8037 , SYSDATE
8038 , l_request_id
8039
8040 FROM
8041 oe_order_lines_all l
8042 , oe_order_headers_all h
8043 , oe_payments p
8044 , hz_cust_site_uses_all su
8045 , hz_cust_acct_sites_all s
8046 , hz_cust_accounts ca
8047 WHERE
8048 h.header_id = l.header_id
8049
8050 AND h.booked_flag = 'Y'
8051 AND h.open_flag = 'Y'
8052 AND l.open_flag = 'Y'
8053 AND l.line_category_code = 'RETURN'
8054 AND NVL( l.invoiced_quantity, 0 ) = 0
8055
8056 AND p.header_id (+) = l.header_id
8057 AND p.line_id (+) = l.line_id
8058
8059 AND su.site_use_id = h.invoice_to_org_id
8060 AND su.cust_acct_site_id = s.cust_acct_site_id
8061 AND ca.cust_account_id = s.cust_account_id
8062 AND EXISTS
8063 ( SELECT 1
8064 FROM oe_order_holds_all oh
8065 WHERE oh.header_id = h.header_id
8066 AND ( oh.line_id = l.line_id
8067 OR oh.line_id IS NULL
8068 )
8069 AND oh.hold_release_id IS NULL
8070 )
8071 AND EXISTS
8072 ( SELECT NULL
8073 FROM oe_payment_types_all t
8074 WHERE t.credit_check_flag = 'Y'
8075 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
8076 AND l.header_id = h.header_id
8077 AND t.payment_type_code =
8078 DECODE(l.payment_type_code, NULL,
8079 DECODE(h.payment_type_code, NULL, t.payment_type_code,
8080 h.payment_type_code),
8081 l.payment_type_code)
8082 )
8083
8084
8085
8086 GROUP BY
8087 h.invoice_to_org_id
8088 , h.transactional_curr_code
8089 , s.cust_account_id
8090 , ca.party_id
8091 , h.org_id
8092 ;
8093
8094
8095 IF G_debug_flag = 'Y'
8096 THEN
8097 oe_debug_pub.add( 'G_ORDER_RETURN_HOLDS done at ' || DO_TIME, 2 );
8098 END IF;
8099 END IF; -- l_cc_level_flag
8100
8101 --14689044 IF l_cc_level_flag='Y' THEN
8102 IF l_order_return_tax_holds ='Y' THEN --14689044
8103 -- balance type 32
8104
8105 INSERT INTO OE_CREDIT_SUMMARIES
8106 ( balance
8107 , balance_type
8108 , site_use_id
8109 , cust_account_id
8110 , party_id
8111 , org_id
8112 , currency_code
8113 , bucket
8114 , bucket_duration
8115 , creation_date
8116 , created_by
8117 , last_update_date
8118 , last_updated_by
8119 , last_update_login
8120 , program_application_id
8121 , program_id
8122 , program_update_date
8123 , request_id
8124 )
8125
8126
8127 SELECT
8128 SUM( NVL( m.line_tax_value, 0 ) )
8129 , G_ORDER_RETURN_TAX_HOLDS
8130 , m.order_invoice_to_org_id
8131 , order_cust_account_id
8132 , order_party_id
8133 , m.order_org_id
8134 , m.order_transactional_curr_code
8135 , -2
8136 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
8137 , sysdate
8138 , l_created_by
8139 , sysdate
8140 , l_last_updated_by
8141 , l_last_update_login
8142 , l_program_application_id
8143 , l_program_id
8144 , SYSDATE
8145 , l_request_id
8146
8147 FROM
8148 OE_INIT_CREDIT_SUMM_GTT m
8149 WHERE
8150 m.line_line_category_code = 'RETURN'
8151 AND m.interface_line_attribute6 = -999 --TaxER
8152 AND EXISTS
8153 ( SELECT 1
8154 FROM oe_order_holds_all oh
8155 WHERE oh.header_id = m.order_header_id
8156 AND ( oh.line_id = m.line_line_id
8157 OR oh.line_id IS NULL
8158 )
8159 AND oh.hold_release_id IS NULL
8160 )
8161 GROUP BY
8162 m.order_invoice_to_org_id
8163 , m.order_transactional_curr_code
8164 , order_cust_account_id
8165 , order_party_id
8166 , m.order_org_id
8167 ;
8168
8169
8170 IF G_debug_flag = 'Y'
8171 THEN
8172 oe_debug_pub.add( 'G_ORDER_RETURN_TAX_HOLDS done at ' || DO_TIME, 2 );
8173 END IF;
8174 END IF; -- l_cc_level_flag
8175
8176 --14689044 IF l_order_hold_bal = 'Y' THEN
8177 --------------------------
8178 -- Line Uninvoiced Orders Holds
8179 --------------------------
8180 -- Note this is identical code except that
8181 -- h.invoice_to_org_id is replaced with l.invoice_to_org_id
8182
8183 -- balance type 11
8184 IF l_line_holds ='Y' THEN --14689044
8185
8186 INSERT INTO OE_CREDIT_SUMMARIES
8187 ( balance
8188 , balance_type
8189 , site_use_id
8190 , cust_account_id
8191 , party_id
8192 , org_id
8193 , currency_code
8194 , bucket
8195 , creation_date
8196 , created_by
8197 , last_update_date
8198 , last_updated_by
8199 , last_update_login
8200 , program_application_id
8201 , program_id
8202 , program_update_date
8203 , request_id
8204 , bucket_duration
8205 )
8206
8207
8208 SELECT
8209 - SUM( NVL( m.line_ordered_quantity, 0 )
8210 * NVL( m.line_unit_selling_price, 0 ) )
8211 + SUM( NVL( p.commitment_applied_amount, 0 ) )
8212 , G_LINE_HOLDS
8213 , m.line_invoice_to_org_id
8214 , line_cust_account_id
8215 , line_party_id
8216 , m.order_org_id
8217 , m.order_transactional_curr_code
8218 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
8219 NVL( m.line_request_date,
8220 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
8221 , SYSDATE
8222 , l_created_by
8223 , SYSDATE
8224 , l_last_updated_by
8225 , l_last_update_login
8226 , l_program_application_id
8227 , l_program_id
8228 , SYSDATE
8229 , l_request_id
8230 , 1
8231
8232 FROM
8233 OE_INIT_CREDIT_SUMM_GTT m
8234 , oe_payments p
8235 WHERE
8236 m.line_line_category_code = 'ORDER'
8237 AND p.header_id (+) = m.line_header_id
8238 AND p.line_id (+) = m.line_line_id
8239 AND m.interface_line_attribute6 = -999 --TaxER
8240 AND EXISTS
8241 ( SELECT 1
8242 FROM oe_order_holds_all oh
8243 WHERE oh.header_id = m.order_header_id
8244 AND ( oh.line_id = m.line_line_id
8245 OR oh.line_id IS NULL
8246 )
8247 AND oh.hold_release_id IS NULL
8248 )
8249 GROUP BY
8250 m.line_invoice_to_org_id
8251 , m.order_transactional_curr_code
8252 , line_cust_account_id
8253 , line_party_id
8254 , m.order_org_id
8255 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
8256 NVL( m.line_request_date,
8257 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
8258 ;
8259
8260
8261 IF G_debug_flag = 'Y'
8262 THEN
8263 oe_debug_pub.add( 'G_LINE_HOLDS done at ' || DO_TIME, 2 );
8264 END IF;
8265
8266 END IF; --14689044
8267 -- balance type 14
8268 IF l_line_tax_holds ='Y' THEN --14689044
8269
8270 INSERT INTO OE_CREDIT_SUMMARIES
8271 ( balance
8272 , balance_type
8273 , site_use_id
8274 , cust_account_id
8275 , party_id
8276 , org_id
8277 , currency_code
8278 , bucket
8279 , creation_date
8280 , created_by
8281 , last_update_date
8282 , last_updated_by
8283 , last_update_login
8284 , program_application_id
8285 , program_id
8286 , program_update_date
8287 , request_id
8288 , bucket_duration
8289 )
8290
8291
8292 SELECT
8293 - SUM( NVL( m.line_tax_value, 0 ) )
8294 , G_LINE_TAX_HOLDS
8295 , m.line_invoice_to_org_id
8296 , line_cust_account_id
8297 , line_party_id
8298 , m.order_org_id
8299 , m.order_transactional_curr_code
8300 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
8301 NVL( m.line_request_date,
8302 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
8303 , SYSDATE
8304 , l_created_by
8305 , SYSDATE
8306 , l_last_updated_by
8307 , l_last_update_login
8308 , l_program_application_id
8309 , l_program_id
8310 , SYSDATE
8311 , l_request_id
8312 , 1
8313
8314 FROM
8315 OE_INIT_CREDIT_SUMM_GTT m
8316 WHERE
8317 m.line_line_category_code = 'ORDER'
8318 AND m.interface_line_attribute6 = -999 --TaxER
8319 AND EXISTS
8320 ( SELECT 1
8321 FROM oe_order_holds_all oh
8322 WHERE oh.header_id = m.order_header_id
8323 AND ( oh.line_id = m.line_line_id
8324 OR oh.line_id IS NULL
8325 )
8326 AND oh.hold_release_id IS NULL
8327 )
8328 GROUP BY
8329 m.line_invoice_to_org_id
8330 , m.order_transactional_curr_code
8331 , line_cust_account_id
8332 , line_party_id
8333 , m.order_org_id
8334 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
8335 NVL( m.line_request_date,
8336 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
8337 ;
8338
8339
8340 IF G_debug_flag = 'Y'
8341 THEN
8342 oe_debug_pub.add( 'G_LINE_TAX_HOLDS done at ' || DO_TIME, 2 );
8343 END IF;
8344 END IF; -- IF l_order_hold_bal
8345
8346 --------------------------------
8347 ----- RETURNS ------------------
8348 -- Line Uninvoiced Orders Holds
8349 --------------------------------
8350 -- Note this is identical code except that
8351 -- h.invoice_to_org_id is replaced with l.invoice_to_org_id
8352
8353 -- balance type 31
8354 IF l_line_return_holds ='Y' THEN --14689044
8355
8356 INSERT INTO OE_CREDIT_SUMMARIES
8357 ( balance
8358 , balance_type
8359 , site_use_id
8360 , cust_account_id
8361 , party_id
8362 , org_id
8363 , currency_code
8364 , bucket
8365 , bucket_duration
8366 , creation_date
8367 , created_by
8368 , last_update_date
8369 , last_updated_by
8370 , last_update_login
8371 , program_application_id
8372 , program_id
8373 , program_update_date
8374 , request_id
8375 )
8376
8377
8378 SELECT
8379 SUM( NVL( m.line_ordered_quantity, 0 )
8380 * NVL( m.line_unit_selling_price, 0 ) )
8381 - SUM( NVL( p.commitment_applied_amount, 0 ) )
8382 , G_LINE_RETURN_HOLDS
8383 , m.line_invoice_to_org_id
8384 , line_cust_account_id
8385 , line_party_id
8386 , m.order_org_id
8387 , m.order_transactional_curr_code
8388 , -2
8389 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
8390 , sysdate
8391 , l_created_by
8392 , sysdate
8393 , l_last_updated_by
8394 , l_last_update_login
8395 , l_program_application_id
8396 , l_program_id
8397 , SYSDATE
8398 , l_request_id
8399
8400 FROM
8401 OE_INIT_CREDIT_SUMM_GTT m
8402 , oe_payments p
8403 WHERE
8404 m.line_line_category_code = 'RETURN'
8405 AND p.header_id (+) = m.line_header_id
8406 AND p.line_id (+) = m.line_line_id
8407 AND m.interface_line_attribute6 = -999 --TaxER
8408 AND EXISTS
8409 ( SELECT 1
8410 FROM oe_order_holds_all oh
8411 WHERE oh.header_id = m.order_header_id
8412 AND ( oh.line_id = m.line_line_id
8413 OR oh.line_id IS NULL
8414 )
8415 AND oh.hold_release_id IS NULL
8416 )
8417 GROUP BY
8418 m.line_invoice_to_org_id
8419 , m.order_transactional_curr_code
8420 , line_cust_account_id
8421 , line_party_id
8422 , m.order_org_id
8423 ;
8424
8425
8426 IF G_debug_flag = 'Y'
8427 THEN
8428 oe_debug_pub.add( 'G_LINE_RETURN_HOLDS done at ' || DO_TIME, 2 );
8429 END IF;
8430
8431 END IF; --14689044
8432 -- balance type 33
8433
8434 IF l_line_return_tax_holds ='Y' THEN --14689044
8435
8436 INSERT INTO OE_CREDIT_SUMMARIES
8437 ( balance
8438 , balance_type
8439 , site_use_id
8440 , cust_account_id
8441 , party_id
8442 , org_id
8443 , currency_code
8444 , bucket
8445 , bucket_duration
8446 , creation_date
8447 , created_by
8448 , last_update_date
8449 , last_updated_by
8450 , last_update_login
8451 , program_application_id
8452 , program_id
8453 , program_update_date
8454 , request_id
8455 )
8456
8457
8458 SELECT
8459 SUM( NVL( m.line_tax_value, 0 ) )
8460 , G_LINE_RETURN_TAX_HOLDS
8461 , m.line_invoice_to_org_id
8462 , line_cust_account_id
8463 , line_party_id
8464 , m.order_org_id
8465 , m.order_transactional_curr_code
8466 , -2
8467 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
8468 , sysdate
8469 , l_created_by
8470 , sysdate
8471 , l_last_updated_by
8472 , l_last_update_login
8473 , l_program_application_id
8474 , l_program_id
8475 , SYSDATE
8476 , l_request_id
8477
8478 FROM
8479 OE_INIT_CREDIT_SUMM_GTT m
8480 WHERE
8481 m.line_line_category_code = 'RETURN'
8482 AND m.interface_line_attribute6 = -999 --TaxER
8483 AND EXISTS
8484 ( SELECT 1
8485 FROM oe_order_holds_all oh
8486 WHERE oh.header_id = m.order_header_id
8487 AND ( oh.line_id = m.line_line_id
8488 OR oh.line_id IS NULL
8489 )
8490 AND oh.hold_release_id IS NULL
8491 )
8492 GROUP BY
8493 m.line_invoice_to_org_id
8494 , m.order_transactional_curr_code
8495 , line_cust_account_id
8496 , line_party_id
8497 , m.order_org_id
8498 ;
8499
8500 IF G_debug_flag = 'Y'
8501 THEN
8502 oe_debug_pub.add( 'G_LINE_RETURN_TAX_HOLDS done at ' || DO_TIME, 2 );
8503 END IF;
8504
8505 END IF; --14689044
8506
8507 --14689044 IF l_order_hold_bal = 'Y' THEN
8508 --------------------------
8509 -- Line Freight Holds
8510 --------------------------
8511
8512 -- balance type 16
8513
8514 IF l_line_freight_holds ='Y' THEN --14689044
8515
8516 INSERT INTO OE_CREDIT_SUMMARIES
8517 ( balance
8518 , balance_type
8519 , site_use_id
8520 , cust_account_id
8521 , party_id
8522 , org_id
8523 , currency_code
8524 , bucket
8525 , creation_date
8526 , created_by
8527 , last_update_date
8528 , last_updated_by
8529 , last_update_login
8530 , program_application_id
8531 , program_id
8532 , program_update_date
8533 , request_id
8534 , bucket_duration
8535 )
8536
8537 SELECT
8538 - SUM
8539 ( DECODE( p.credit_or_charge_flag, 'C', (-1), (+1) )
8540 * DECODE( p.arithmetic_operator, 'LUMPSUM', --bug 4295298
8541 p.operand, (m.line_ordered_quantity * p.adjusted_amount))
8542 )
8543 , G_LINE_FREIGHT_HOLDS
8544 , m.line_invoice_to_org_id
8545 , line_cust_account_id
8546 , line_party_id
8547 , m.order_org_id
8548 , m.order_transactional_curr_code
8549 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
8550 NVL( m.line_request_date,
8551 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
8552 , SYSDATE
8553 , l_created_by
8554 , SYSDATE
8555 , l_last_updated_by
8556 , l_last_update_login
8557 , l_program_application_id
8558 , l_program_id
8559 , SYSDATE
8560 , l_request_id
8561 , 1
8562
8563 FROM
8564 oe_price_adjustments p,
8565 OE_INIT_CREDIT_SUMM_GTT m
8566 WHERE
8567 p.line_id = m.line_line_id
8568 AND p.header_id = m.line_header_id
8569 AND p.header_id = m.order_header_id
8570 AND m.line_line_category_code = 'ORDER'
8571 AND p.applied_flag = 'Y'
8572 AND p.list_line_type_code = 'FREIGHT_CHARGE'
8573 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
8574 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
8575 AND EXISTS
8576 ( SELECT 1
8577 FROM oe_order_holds_all oh
8578 WHERE oh.header_id = m.order_header_id
8579 AND ( oh.line_id = m.line_line_id
8580 OR oh.line_id IS NULL
8581 )
8582 AND oh.hold_release_id IS NULL
8583 )
8584 GROUP BY
8585 m.line_invoice_to_org_id
8586 , m.order_transactional_curr_code
8587 , line_cust_account_id
8588 , line_party_id
8589 , m.order_org_id
8590 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
8591 NVL( m.line_request_date,
8592 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
8593 ;
8594
8595
8596 IF G_debug_flag = 'Y'
8597 THEN
8598 oe_debug_pub.add( 'G_LINE_FREIGHT_HOLDS done at ' || DO_TIME, 2 );
8599 END IF;
8600
8601 --TaxER Start
8602 IF l_tax = 'Y' THEN --14689044
8603 INSERT INTO OE_CREDIT_SUMMARIES
8604 ( balance
8605 , balance_type
8606 , site_use_id
8607 , cust_account_id
8608 , party_id
8609 , org_id
8610 , currency_code
8611 , bucket
8612 , creation_date
8613 , created_by
8614 , last_update_date
8615 , last_updated_by
8616 , last_update_login
8617 , program_application_id
8618 , program_id
8619 , program_update_date
8620 , request_id
8621 , bucket_duration
8622 )
8623
8624 SELECT
8625 - SUM ( p1.adjusted_amount)
8626 , G_LINE_FREIGHT_HOLDS_T
8627 , m.line_invoice_to_org_id
8628 , line_cust_account_id
8629 , line_party_id
8630 , m.order_org_id
8631 , m.order_transactional_curr_code
8632 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
8633 NVL( m.line_request_date,
8634 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
8635 , SYSDATE
8636 , l_created_by
8637 , SYSDATE
8638 , l_last_updated_by
8639 , l_last_update_login
8640 , l_program_application_id
8641 , l_program_id
8642 , SYSDATE
8643 , l_request_id
8644 , 1
8645
8646 FROM
8647 oe_price_adjustments p,
8648 oe_price_adjustments p1, --TaxER
8649 OE_INIT_CREDIT_SUMM_GTT m
8650 WHERE
8651 p.line_id = m.line_line_id
8652 AND p.header_id = m.line_header_id
8653 AND p.header_id = m.order_header_id
8654 AND m.line_line_category_code = 'ORDER'
8655 AND p.applied_flag = 'Y'
8656 AND p.list_line_type_code = 'FREIGHT_CHARGE'
8657 AND p1.list_line_type_code = 'TAX' and p1.parent_adjustment_id IS NOT NULL
8658 AND p1.applied_flag = 'N' --12895421
8659 AND p.price_adjustment_id = p1.parent_adjustment_id
8660 AND p.line_id = p1.line_id
8661 AND p.header_id = p1.header_id
8662 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
8663 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
8664 AND EXISTS
8665 ( SELECT 1
8666 FROM oe_order_holds_all oh
8667 WHERE oh.header_id = m.order_header_id
8668 AND ( oh.line_id = m.line_line_id
8669 OR oh.line_id IS NULL
8670 )
8671 AND oh.hold_release_id IS NULL
8672 )
8673 GROUP BY
8674 m.line_invoice_to_org_id
8675 , m.order_transactional_curr_code
8676 , line_cust_account_id
8677 , line_party_id
8678 , m.order_org_id
8679 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
8680 NVL( m.line_request_date,
8681 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
8682 ;
8683
8684
8685 IF G_debug_flag = 'Y'
8686 THEN
8687 oe_debug_pub.add( 'G_LINE_FREIGHT_HOLDS_T done at ' || DO_TIME, 2 );
8688 END IF;
8689 END IF; --14689044
8690 --TaxER End
8691 END IF; -- IF l_order_hold_bal
8692
8693 ---------------------------------
8694 --------- RETURNS ---------------
8695 -- Line Freight Holds ----------
8696 ---------------------------------
8697
8698 -- balance type 35
8699
8700 IF l_line_return_freight_holds ='Y' THEN --14689044
8701
8702 INSERT INTO OE_CREDIT_SUMMARIES
8703 ( balance
8704 , balance_type
8705 , site_use_id
8706 , cust_account_id
8707 , party_id
8708 , org_id
8709 , currency_code
8710 , bucket
8711 , bucket_duration
8712 , creation_date
8713 , created_by
8714 , last_update_date
8715 , last_updated_by
8716 , last_update_login
8717 , program_application_id
8718 , program_id
8719 , program_update_date
8720 , request_id
8721 )
8722
8723 SELECT
8724 - SUM
8725 ( DECODE( p.credit_or_charge_flag, 'C', (-1), (+1) )
8726 * DECODE( p.arithmetic_operator, 'LUMPSUM', --bug 4295298
8727 p.operand, (m.line_ordered_quantity * p.adjusted_amount))
8728 )
8729 , G_LINE_RETURN_FREIGHT_HOLDS
8730 , m.line_invoice_to_org_id
8731 , line_cust_account_id
8732 , line_party_id
8733 , m.order_org_id
8734 , m.order_transactional_curr_code
8735 , -2
8736 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
8737 , sysdate
8738 , l_created_by
8739 , sysdate
8740 , l_last_updated_by
8741 , l_last_update_login
8742 , l_program_application_id
8743 , l_program_id
8744 , SYSDATE
8745 , l_request_id
8746
8747 FROM
8748 oe_price_adjustments p,
8749 OE_INIT_CREDIT_SUMM_GTT m
8750 WHERE
8751 p.line_id = m.line_line_id
8752 AND p.header_id = m.line_header_id
8753 AND p.header_id = m.order_header_id
8754 AND m.line_line_category_code = 'RETURN'
8755 AND p.applied_flag = 'Y'
8756 AND p.list_line_type_code = 'FREIGHT_CHARGE'
8757 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
8758 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
8759 AND EXISTS
8760 ( SELECT 1
8761 FROM oe_order_holds_all oh
8762 WHERE oh.header_id = m.order_header_id
8763 AND ( oh.line_id = m.line_line_id
8764 OR oh.line_id IS NULL
8765 )
8766 AND oh.hold_release_id IS NULL
8767 )
8768 GROUP BY
8769 m.line_invoice_to_org_id
8770 , m.order_transactional_curr_code
8771 , line_cust_account_id
8772 , line_party_id
8773 , m.order_org_id
8774 ;
8775
8776
8777 IF G_debug_flag = 'Y'
8778 THEN
8779 oe_debug_pub.add( 'G_LINE_RETURN_FREIGHT_HOLDS done at ' || DO_TIME, 2 );
8780 END IF;
8781
8782 --TaxER Start
8783 IF l_tax = 'Y' THEN --14689044
8784 INSERT INTO OE_CREDIT_SUMMARIES
8785 ( balance
8786 , balance_type
8787 , site_use_id
8788 , cust_account_id
8789 , party_id
8790 , org_id
8791 , currency_code
8792 , bucket
8793 , bucket_duration
8794 , creation_date
8795 , created_by
8796 , last_update_date
8797 , last_updated_by
8798 , last_update_login
8799 , program_application_id
8800 , program_id
8801 , program_update_date
8802 , request_id
8803 )
8804
8805 SELECT
8806 - SUM ( p1.adjusted_amount)
8807 , G_LINE_RETURN_FREIGHT_HOLDS_T
8808 , m.line_invoice_to_org_id
8809 , line_cust_account_id
8810 , line_party_id
8811 , m.order_org_id
8812 , m.order_transactional_curr_code
8813 , -2
8814 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
8815 , sysdate
8816 , l_created_by
8817 , sysdate
8818 , l_last_updated_by
8819 , l_last_update_login
8820 , l_program_application_id
8821 , l_program_id
8822 , SYSDATE
8823 , l_request_id
8824
8825 FROM
8826 oe_price_adjustments p,
8827 oe_price_adjustments p1, --TaxER
8828 OE_INIT_CREDIT_SUMM_GTT m
8829 WHERE
8830 p.line_id = m.line_line_id
8831 AND p.header_id = m.line_header_id
8832 AND p.header_id = m.order_header_id
8833 AND m.line_line_category_code = 'RETURN'
8834 AND p.applied_flag = 'Y'
8835 AND p.list_line_type_code = 'FREIGHT_CHARGE'
8836 AND p1.list_line_type_code = 'TAX' and p1.parent_adjustment_id IS NOT NULL
8837 AND p1.applied_flag = 'N' --12895421
8838 AND p.price_adjustment_id = p1.parent_adjustment_id
8839 AND p.line_id = p1.line_id
8840 AND p.header_id = p1.header_id
8841 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
8842 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
8843 AND EXISTS
8844 ( SELECT 1
8845 FROM oe_order_holds_all oh
8846 WHERE oh.header_id = m.order_header_id
8847 AND ( oh.line_id = m.line_line_id
8848 OR oh.line_id IS NULL
8849 )
8850 AND oh.hold_release_id IS NULL
8851 )
8852 GROUP BY
8853 m.line_invoice_to_org_id
8854 , m.order_transactional_curr_code
8855 , line_cust_account_id
8856 , line_party_id
8857 , m.order_org_id
8858 ;
8859
8860
8861 IF G_debug_flag = 'Y'
8862 THEN
8863 oe_debug_pub.add( 'G_LINE_RETURN_FREIGHT_HOLDS_T done at ' || DO_TIME, 2 );
8864 END IF;
8865 END IF; --14689044
8866 --TaxER End
8867
8868 END IF; --14689044
8869
8870 --14689044 IF l_order_hold_bal = 'Y' THEN
8871 --------------------------
8872 -- Header Freight Holds
8873 --------------------------
8874 --14689044 IF l_cc_level_flag='Y' THEN
8875 IF l_order_freight_holds ='Y' THEN --14689044
8876 -- balance type 15
8877
8878 INSERT INTO OE_CREDIT_SUMMARIES
8879 ( balance
8880 , balance_type
8881 , site_use_id
8882 , cust_account_id
8883 , party_id
8884 , org_id
8885 , currency_code
8886 , bucket
8887 , creation_date
8888 , created_by
8889 , last_update_date
8890 , last_updated_by
8891 , last_update_login
8892 , program_application_id
8893 , program_id
8894 , program_update_date
8895 , request_id
8896 , bucket_duration
8897 )
8898
8899
8900 SELECT
8901 - SUM
8902 ( DECODE( p.credit_or_charge_flag, 'C', (-1), (+1) )
8903 * DECODE( p.arithmetic_operator, 'LUMPSUM', --bug 4295298
8904 p.operand, (m.line_ordered_quantity * p.adjusted_amount))
8905 )
8906 , G_ORDER_FREIGHT_HOLDS
8907 , m.order_invoice_to_org_id
8908 , order_cust_account_id
8909 , order_party_id
8910 , m.order_org_id
8911 , m.order_transactional_curr_code
8912 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
8913 NVL( m.line_request_date,
8914 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
8915 , SYSDATE
8916 , l_created_by
8917 , SYSDATE
8918 , l_last_updated_by
8919 , l_last_update_login
8920 , l_program_application_id
8921 , l_program_id
8922 , SYSDATE
8923 , l_request_id
8924 , 1
8925
8926 FROM oe_price_adjustments p,
8927 OE_INIT_CREDIT_SUMM_GTT m
8928 WHERE
8929 p.line_id = m.line_line_id
8930 AND p.header_id = m.line_header_id
8931 AND p.header_id = m.order_header_id
8932 AND m.line_line_category_code = 'ORDER'
8933 AND p.applied_flag = 'Y'
8934 AND p.list_line_type_code = 'FREIGHT_CHARGE'
8935 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
8936 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
8937 AND EXISTS
8938 ( SELECT 1
8939 FROM oe_order_holds_all oh
8940 WHERE oh.header_id = m.order_header_id
8941 AND ( oh.line_id = m.line_line_id
8942 OR oh.line_id IS NULL
8943 )
8944 AND oh.hold_release_id IS NULL
8945 )
8946 GROUP BY
8947 m.order_invoice_to_org_id
8948 , m.order_transactional_curr_code
8949 , order_cust_account_id
8950 , order_party_id
8951 , m.order_org_id
8952 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
8953 NVL( m.line_request_date,
8954 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
8955 ;
8956
8957
8958 IF G_debug_flag = 'Y'
8959 THEN
8960 oe_debug_pub.add( 'G_ORDER_FREIGHT_HOLDS done at ' || DO_TIME, 2 );
8961 END IF;
8962
8963 --TaxER Start
8964 IF l_tax = 'Y' THEN --14689044
8965 INSERT INTO OE_CREDIT_SUMMARIES
8966 ( balance
8967 , balance_type
8968 , site_use_id
8969 , cust_account_id
8970 , party_id
8971 , org_id
8972 , currency_code
8973 , bucket
8974 , creation_date
8975 , created_by
8976 , last_update_date
8977 , last_updated_by
8978 , last_update_login
8979 , program_application_id
8980 , program_id
8981 , program_update_date
8982 , request_id
8983 , bucket_duration
8984 )
8985
8986
8987 SELECT
8988 - SUM ( p1.adjusted_amount)
8989 , G_ORDER_FREIGHT_HOLDS_T
8990 , m.order_invoice_to_org_id
8991 , order_cust_account_id
8992 , order_party_id
8993 , m.order_org_id
8994 , m.order_transactional_curr_code
8995 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
8996 NVL( m.line_request_date,
8997 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
8998 , SYSDATE
8999 , l_created_by
9000 , SYSDATE
9001 , l_last_updated_by
9002 , l_last_update_login
9003 , l_program_application_id
9004 , l_program_id
9005 , SYSDATE
9006 , l_request_id
9007 , 1
9008
9009 FROM oe_price_adjustments p,
9010 oe_price_adjustments p1, --TaxER
9011 OE_INIT_CREDIT_SUMM_GTT m
9012 WHERE
9013 p.line_id = m.line_line_id
9014 AND p.header_id = m.line_header_id
9015 AND p.header_id = m.order_header_id
9016 AND m.line_line_category_code = 'ORDER'
9017 AND p.applied_flag = 'Y'
9018 AND p.list_line_type_code = 'FREIGHT_CHARGE'
9019 AND p1.list_line_type_code = 'TAX' and p1.parent_adjustment_id IS NOT NULL
9020 AND p1.applied_flag = 'N' --12895421
9021 AND p.price_adjustment_id = p1.parent_adjustment_id
9022 AND p.line_id = p1.line_id
9023 AND p.header_id = p1.header_id
9024 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
9025 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
9026 AND EXISTS
9027 ( SELECT 1
9028 FROM oe_order_holds_all oh
9029 WHERE oh.header_id = m.order_header_id
9030 AND ( oh.line_id = m.line_line_id
9031 OR oh.line_id IS NULL
9032 )
9033 AND oh.hold_release_id IS NULL
9034 )
9035 GROUP BY
9036 m.order_invoice_to_org_id
9037 , m.order_transactional_curr_code
9038 , order_cust_account_id
9039 , order_party_id
9040 , m.order_org_id
9041 , TO_NUMBER( TO_CHAR( NVL( m.line_schedule_ship_date,
9042 NVL( m.line_request_date,
9043 NVL( m.order_request_date, m.order_creation_date) ) ), 'J' ) )
9044 ;
9045
9046
9047 IF G_debug_flag = 'Y'
9048 THEN
9049 oe_debug_pub.add( 'G_ORDER_FREIGHT_HOLDS_T done at ' || DO_TIME, 2 );
9050 END IF;
9051 END IF; --14689044
9052 --TaxER End
9053
9054 END IF; -- l_cc_level_flag
9055 --14689044 END IF; -- IF l_order_hold_bal
9056
9057 --------------------------------------
9058 -------- RETURNS ---------------------
9059 -- Header Freight Holds -------------
9060 --------------------------------------
9061 --14689044 IF l_cc_level_flag='Y' THEN
9062 IF l_order_return_freight_holds ='Y' THEN --14689044
9063 -- balance type 34
9064
9065 INSERT INTO OE_CREDIT_SUMMARIES
9066 ( balance
9067 , balance_type
9068 , site_use_id
9069 , cust_account_id
9070 , party_id
9071 , org_id
9072 , currency_code
9073 , bucket
9074 , bucket_duration
9075 , creation_date
9076 , created_by
9077 , last_update_date
9078 , last_updated_by
9079 , last_update_login
9080 , program_application_id
9081 , program_id
9082 , program_update_date
9083 , request_id
9084 )
9085
9086
9087 SELECT
9088 - SUM
9089 ( DECODE( p.credit_or_charge_flag, 'C', (-1), (+1) )
9090 * DECODE( p.arithmetic_operator, 'LUMPSUM', --bug 4295298
9091 p.operand, (m.line_ordered_quantity * p.adjusted_amount))
9092 )
9093 , G_ORDER_RETURN_FREIGHT_HOLDS
9094 , m.order_invoice_to_org_id
9095 , order_cust_account_id
9096 , order_party_id
9097 , m.order_org_id
9098 , m.order_transactional_curr_code
9099 , -2
9100 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
9101 , sysdate
9102 , l_created_by
9103 , sysdate
9104 , l_last_updated_by
9105 , l_last_update_login
9106 , l_program_application_id
9107 , l_program_id
9108 , SYSDATE
9109 , l_request_id
9110
9111 FROM oe_price_adjustments p,
9112 OE_INIT_CREDIT_SUMM_GTT m
9113 WHERE
9114 p.line_id = m.line_line_id
9115 AND p.header_id = m.line_header_id
9116 AND p.header_id = m.order_header_id
9117 AND m.line_line_category_code = 'RETURN'
9118 AND p.applied_flag = 'Y'
9119 AND p.list_line_type_code = 'FREIGHT_CHARGE'
9120 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
9121 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
9122 AND EXISTS
9123 ( SELECT 1
9124 FROM oe_order_holds_all oh
9125 WHERE oh.header_id = m.order_header_id
9126 AND ( oh.line_id = m.line_line_id
9127 OR oh.line_id IS NULL
9128 )
9129 AND oh.hold_release_id IS NULL
9130 )
9131 GROUP BY
9132 m.order_invoice_to_org_id
9133 , m.order_transactional_curr_code
9134 , order_cust_account_id
9135 , order_party_id
9136 , m.order_org_id
9137 ;
9138
9139 IF G_debug_flag = 'Y'
9140 THEN
9141 oe_debug_pub.add( 'G_ORDER_RETURN_FREIGHT_HOLDS done at ' || DO_TIME, 2 );
9142 END IF;
9143
9144 --TaxER Start
9145 IF l_tax = 'Y' THEN --14689044
9146 INSERT INTO OE_CREDIT_SUMMARIES
9147 ( balance
9148 , balance_type
9149 , site_use_id
9150 , cust_account_id
9151 , party_id
9152 , org_id
9153 , currency_code
9154 , bucket
9155 , bucket_duration
9156 , creation_date
9157 , created_by
9158 , last_update_date
9159 , last_updated_by
9160 , last_update_login
9161 , program_application_id
9162 , program_id
9163 , program_update_date
9164 , request_id
9165 )
9166
9167
9168 SELECT
9169 - SUM ( p1.adjusted_amount)
9170 , G_ORDER_RETURN_FREIGHT_HOLDS_T
9171 , m.order_invoice_to_org_id
9172 , order_cust_account_id
9173 , order_party_id
9174 , m.order_org_id
9175 , m.order_transactional_curr_code
9176 , -2
9177 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
9178 , sysdate
9179 , l_created_by
9180 , sysdate
9181 , l_last_updated_by
9182 , l_last_update_login
9183 , l_program_application_id
9184 , l_program_id
9185 , SYSDATE
9186 , l_request_id
9187
9188 FROM oe_price_adjustments p,
9189 oe_price_adjustments p1, --TaxER
9190 OE_INIT_CREDIT_SUMM_GTT m
9191 WHERE
9192 p.line_id = m.line_line_id
9193 AND p.header_id = m.line_header_id
9194 AND p.header_id = m.order_header_id
9195 AND m.line_line_category_code = 'RETURN'
9196 AND p.applied_flag = 'Y'
9197 AND p.list_line_type_code = 'FREIGHT_CHARGE'
9198 AND p1.list_line_type_code = 'TAX' and p1.parent_adjustment_id IS NOT NULL
9199 AND p1.applied_flag = 'N' --12895421
9200 AND p.price_adjustment_id = p1.parent_adjustment_id
9201 AND p.line_id = p1.line_id
9202 AND p.header_id = p1.header_id
9203 AND m.interface_line_attribute6 = decode(m.rl_amount,0,-999,p.price_adjustment_id) --TaxER
9204 --TaxER AND NVL( p.invoiced_flag, 'N' ) = 'N'
9205 AND EXISTS
9206 ( SELECT 1
9207 FROM oe_order_holds_all oh
9208 WHERE oh.header_id = m.order_header_id
9209 AND ( oh.line_id = m.line_line_id
9210 OR oh.line_id IS NULL
9211 )
9212 AND oh.hold_release_id IS NULL
9213 )
9214 GROUP BY
9215 m.order_invoice_to_org_id
9216 , m.order_transactional_curr_code
9217 , order_cust_account_id
9218 , order_party_id
9219 , m.order_org_id
9220 ;
9221 END IF; --14689044
9222 --TaxER End
9223
9224 IF G_debug_flag = 'Y'
9225 THEN
9226 oe_debug_pub.add( 'G_ORDER_RETURN_FREIGHT_HOLDS_T done at ' || DO_TIME, 2 );
9227 END IF;
9228 END IF; -- l_cc_level_flag
9229
9230 --14689044 IF l_order_hold_bal = 'Y' THEN
9231 --------------------------
9232 -- Header + Line Freight Part 2 Holds
9233 --------------------------
9234
9235 IF l_header_line_freight_holds ='Y' THEN --14689044
9236
9237 -- balance type 17
9238
9239 INSERT INTO OE_CREDIT_SUMMARIES
9240 ( balance
9241 , balance_type
9242 , site_use_id
9243 , cust_account_id
9244 , party_id
9245 , org_id
9246 , currency_code
9247 , bucket
9248 , creation_date
9249 , created_by
9250 , last_update_date
9251 , last_updated_by
9252 , last_update_login
9253 , program_application_id
9254 , program_id
9255 , program_update_date
9256 , request_id
9257 , bucket_duration
9258 )
9259
9260
9261 SELECT
9262 - SUM( DECODE( p.credit_or_charge_flag, 'C', (-1), (+1) ) * p.operand )
9263 , G_HEADER_LINE_FREIGHT_HOLDS
9264 , h.invoice_to_org_id
9265 , s.cust_account_id
9266 , ca.party_id
9267 , h.org_id
9268 , h.transactional_curr_code
9269 , TO_NUMBER( TO_CHAR( NVL( h.request_date, h.creation_date ), 'J' ) )
9270 , SYSDATE
9271 , l_created_by
9272 , SYSDATE
9273 , l_last_updated_by
9274 , l_last_update_login
9275 , l_program_application_id
9276 , l_program_id
9277 , SYSDATE
9278 , l_request_id
9279 , 1
9280
9281 FROM
9282 oe_price_adjustments p
9283 , oe_order_headers_all h
9284 , hz_cust_site_uses_all su
9285 , hz_cust_acct_sites_all s
9286 , hz_cust_accounts ca
9287 WHERE
9288 p.line_id IS NULL
9289 AND p.header_id = h.header_id
9290 AND h.order_category_code IN ('ORDER','MIXED')
9291 AND h.open_flag = 'Y'
9292 AND h.booked_flag = 'Y'
9293 AND p.applied_flag = 'Y'
9294 AND p.list_line_type_code = 'FREIGHT_CHARGE'
9295 AND NVL( p.invoiced_flag, 'N' ) = 'N'
9296 AND su.site_use_id = h.invoice_to_org_id
9297 AND su.cust_acct_site_id = s.cust_acct_site_id
9298 AND ca.cust_account_id = s.cust_account_id
9299 AND EXISTS
9300 ( SELECT 1
9301 FROM oe_order_holds_all oh
9302 WHERE oh.header_id = h.header_id
9303 AND oh.hold_release_id IS NULL
9304 )
9305 AND EXISTS
9306 ( SELECT NULL
9307 FROM oe_payment_types_all t,
9308 oe_order_lines_all l
9309 WHERE t.credit_check_flag = 'Y'
9310 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
9311 AND l.header_id = h.header_id
9312 AND t.payment_type_code =
9313 DECODE(l.payment_type_code, NULL,
9314 DECODE(h.payment_type_code, NULL, t.payment_type_code,
9315 h.payment_type_code),
9316 l.payment_type_code)
9317 )
9318 GROUP BY
9319 h.invoice_to_org_id
9320 , h.transactional_curr_code
9321 , s.cust_account_id
9322 , ca.party_id
9323 , h.org_id
9324 , TO_NUMBER( TO_CHAR( NVL( h.request_date, h.creation_date ), 'J' ) )
9325 ;
9326
9327 IF G_debug_flag = 'Y'
9328 THEN
9329 oe_debug_pub.add( 'G_HEADER_LINE_FREIGHT_HOLDS done at ' || DO_TIME, 2 );
9330 END IF;
9331
9332 --TaxER Start
9333 IF l_tax = 'Y' THEN --14689044
9334 INSERT INTO OE_CREDIT_SUMMARIES
9335 ( balance
9336 , balance_type
9337 , site_use_id
9338 , cust_account_id
9339 , party_id
9340 , org_id
9341 , currency_code
9342 , bucket
9343 , creation_date
9344 , created_by
9345 , last_update_date
9346 , last_updated_by
9347 , last_update_login
9348 , program_application_id
9349 , program_id
9350 , program_update_date
9351 , request_id
9352 , bucket_duration
9353 )
9354
9355
9356 SELECT
9357 - SUM ( p.adjusted_amount)
9358 , G_HEADER_LINE_FREIGHT_HOLDS_T
9359 , h.invoice_to_org_id
9360 , s.cust_account_id
9361 , ca.party_id
9362 , h.org_id
9363 , h.transactional_curr_code
9364 , TO_NUMBER( TO_CHAR( NVL( h.request_date, h.creation_date ), 'J' ) )
9365 , SYSDATE
9366 , l_created_by
9367 , SYSDATE
9368 , l_last_updated_by
9369 , l_last_update_login
9370 , l_program_application_id
9371 , l_program_id
9372 , SYSDATE
9373 , l_request_id
9374 , 1
9375
9376 FROM
9377 oe_price_adjustments p
9378 , oe_order_headers_all h
9379 , hz_cust_site_uses_all su
9380 , hz_cust_acct_sites_all s
9381 , hz_cust_accounts ca
9382 WHERE
9383 p.line_id IS NULL
9384 AND p.header_id = h.header_id
9385 AND h.order_category_code IN ('ORDER','MIXED')
9386 AND h.open_flag = 'Y'
9387 AND h.booked_flag = 'Y'
9388 AND p.applied_flag = 'Y'
9389 AND p.list_line_type_code = 'TAX'
9390 AND p.parent_adjustment_id IS NOT NULL
9391 AND p.applied_flag = 'N' --12895421
9392 AND NVL( p.invoiced_flag, 'N' ) = 'N'
9393 AND su.site_use_id = h.invoice_to_org_id
9394 AND su.cust_acct_site_id = s.cust_acct_site_id
9395 AND ca.cust_account_id = s.cust_account_id
9396 AND EXISTS
9397 ( SELECT 1
9398 FROM oe_order_holds_all oh
9399 WHERE oh.header_id = h.header_id
9400 AND oh.hold_release_id IS NULL
9401 )
9402 AND EXISTS
9403 ( SELECT NULL
9404 FROM oe_payment_types_all t,
9405 oe_order_lines_all l
9406 WHERE t.credit_check_flag = 'Y'
9407 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
9408 AND l.header_id = h.header_id
9409 AND t.payment_type_code =
9410 DECODE(l.payment_type_code, NULL,
9411 DECODE(h.payment_type_code, NULL, t.payment_type_code,
9412 h.payment_type_code),
9413 l.payment_type_code)
9414 )
9415 GROUP BY
9416 h.invoice_to_org_id
9417 , h.transactional_curr_code
9418 , s.cust_account_id
9419 , ca.party_id
9420 , h.org_id
9421 , TO_NUMBER( TO_CHAR( NVL( h.request_date, h.creation_date ), 'J' ) )
9422 ;
9423
9424 IF G_debug_flag = 'Y'
9425 THEN
9426 oe_debug_pub.add( 'G_HEADER_LINE_FREIGHT_HOLDS_T done at ' || DO_TIME, 2 );
9427 END IF;
9428 END IF; --14689044
9429 --TaxER End
9430
9431 END IF; -- IF l_order_hold_bal
9432
9433 --------------------------------------
9434 ------------- RETURNS ----------------
9435 -- Header + Line Fright Part 2 Holds
9436 --------------------------------------
9437
9438 IF l_h_l_return_freight_holds ='Y' THEN --14689044
9439
9440 -- balance type 36
9441
9442 INSERT INTO OE_CREDIT_SUMMARIES
9443 ( balance
9444 , balance_type
9445 , site_use_id
9446 , cust_account_id
9447 , party_id
9448 , org_id
9449 , currency_code
9450 , bucket
9451 , bucket_duration
9452 , creation_date
9453 , created_by
9454 , last_update_date
9455 , last_updated_by
9456 , last_update_login
9457 , program_application_id
9458 , program_id
9459 , program_update_date
9460 , request_id
9461 )
9462
9463
9464 SELECT
9465 - SUM( DECODE( p.credit_or_charge_flag, 'C', (-1), (+1) ) * p.operand )
9466 , G_H_L_RETURN_FREIGHT_HOLDS
9467 , h.invoice_to_org_id
9468 , s.cust_account_id
9469 , ca.party_id
9470 , h.org_id
9471 , h.transactional_curr_code
9472 , -2
9473 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
9474 , sysdate
9475 , l_created_by
9476 , sysdate
9477 , l_last_updated_by
9478 , l_last_update_login
9479 , l_program_application_id
9480 , l_program_id
9481 , SYSDATE
9482 , l_request_id
9483
9484 FROM
9485 oe_price_adjustments p
9486 , oe_order_headers_all h
9487 , hz_cust_site_uses_all su
9488 , hz_cust_acct_sites_all s
9489 , hz_cust_accounts ca
9490 WHERE
9491 p.line_id IS NULL
9492 AND p.header_id = h.header_id
9493 AND h.order_category_code = 'RETURN'
9494 AND h.open_flag = 'Y'
9495 AND h.booked_flag = 'Y'
9496 AND p.applied_flag = 'Y'
9497 AND p.list_line_type_code = 'FREIGHT_CHARGE'
9498 AND NVL( p.invoiced_flag, 'N' ) = 'N'
9499 AND su.site_use_id = h.invoice_to_org_id
9500 AND su.cust_acct_site_id = s.cust_acct_site_id
9501 AND ca.cust_account_id = s.cust_account_id
9502 AND EXISTS
9503 ( SELECT 1
9504 FROM oe_order_holds_all oh
9505 WHERE oh.header_id = h.header_id
9506 AND oh.hold_release_id IS NULL
9507 )
9508 AND EXISTS
9509 ( SELECT NULL
9510 FROM oe_payment_types_all t,
9511 oe_order_lines_all l
9512 WHERE t.credit_check_flag = 'Y'
9513 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
9514 AND l.header_id = h.header_id
9515 AND t.payment_type_code =
9516 DECODE(l.payment_type_code, NULL,
9517 DECODE(h.payment_type_code, NULL, t.payment_type_code,
9518 h.payment_type_code),
9519 l.payment_type_code)
9520 )
9521 GROUP BY
9522 h.invoice_to_org_id
9523 , h.transactional_curr_code
9524 , s.cust_account_id
9525 , ca.party_id
9526 , h.org_id
9527 ;
9528
9529 IF G_debug_flag = 'Y'
9530 THEN
9531 oe_debug_pub.add( 'G_H_L_RETURN_FREIGHT_HOLDS done at ' || DO_TIME, 2 );
9532 END IF;
9533
9534 --TaxER Start
9535 IF l_tax = 'Y' THEN --14689044
9536 INSERT INTO OE_CREDIT_SUMMARIES
9537 ( balance
9538 , balance_type
9539 , site_use_id
9540 , cust_account_id
9541 , party_id
9542 , org_id
9543 , currency_code
9544 , bucket
9545 , bucket_duration
9546 , creation_date
9547 , created_by
9548 , last_update_date
9549 , last_updated_by
9550 , last_update_login
9551 , program_application_id
9552 , program_id
9553 , program_update_date
9554 , request_id
9555 )
9556
9557
9558 SELECT
9559 - SUM ( p.adjusted_amount)
9560 , G_H_L_RETURN_FREIGHT_HOLDS_T
9561 , h.invoice_to_org_id
9562 , s.cust_account_id
9563 , ca.party_id
9564 , h.org_id
9565 , h.transactional_curr_code
9566 , -2
9567 , OE_CREDIT_EXPOSURE_PVT.G_MAX_BUCKET_LENGTH
9568 , sysdate
9569 , l_created_by
9570 , sysdate
9571 , l_last_updated_by
9572 , l_last_update_login
9573 , l_program_application_id
9574 , l_program_id
9575 , SYSDATE
9576 , l_request_id
9577
9578 FROM
9579 oe_price_adjustments p
9580 , oe_order_headers_all h
9581 , hz_cust_site_uses_all su
9582 , hz_cust_acct_sites_all s
9583 , hz_cust_accounts ca
9584 WHERE
9585 p.line_id IS NULL
9586 AND p.header_id = h.header_id
9587 AND h.order_category_code = 'RETURN'
9588 AND h.open_flag = 'Y'
9589 AND h.booked_flag = 'Y'
9590 AND p.applied_flag = 'Y'
9591 AND p.list_line_type_code = 'TAX'
9592 AND p.parent_adjustment_id IS NOT NULL
9593 AND p.applied_flag = 'N' --12895421
9594 AND NVL( p.invoiced_flag, 'N' ) = 'N'
9595 AND su.site_use_id = h.invoice_to_org_id
9596 AND su.cust_acct_site_id = s.cust_acct_site_id
9597 AND ca.cust_account_id = s.cust_account_id
9598 AND EXISTS
9599 ( SELECT 1
9600 FROM oe_order_holds_all oh
9601 WHERE oh.header_id = h.header_id
9602 AND oh.hold_release_id IS NULL
9603 )
9604 AND EXISTS
9605 ( SELECT NULL
9606 FROM oe_payment_types_all t,
9607 oe_order_lines_all l
9608 WHERE t.credit_check_flag = 'Y'
9609 AND NVL(t.org_id,-99) = NVL(h.org_id, -99)
9610 AND l.header_id = h.header_id
9611 AND t.payment_type_code =
9612 DECODE(l.payment_type_code, NULL,
9613 DECODE(h.payment_type_code, NULL, t.payment_type_code,
9614 h.payment_type_code),
9615 l.payment_type_code)
9616 )
9617 GROUP BY
9618 h.invoice_to_org_id
9619 , h.transactional_curr_code
9620 , s.cust_account_id
9621 , ca.party_id
9622 , h.org_id
9623 ;
9624
9625 IF G_debug_flag = 'Y'
9626 THEN
9627 oe_debug_pub.add( 'G_H_L_RETURN_FREIGHT_HOLDS_T done at ' || DO_TIME, 2 );
9628 END IF;
9629 END IF; --14689044
9630 --TaxER End
9631
9632 END IF; --14689044
9633
9634 --------------------------
9635 -- Invoices
9636 --------------------------
9637 -- The term in ther where clause containing the hard-coded
9638 -- GL date was recommended for performance reasons
9639 -- by AR
9640
9641 -- balance type 8
9642
9643 IF l_invoices ='Y' THEN --14689044
9644
9645 INSERT INTO OE_CREDIT_SUMMARIES
9646 ( balance
9647 , balance_type
9648 , site_use_id
9649 , cust_account_id
9650 , party_id
9651 , org_id
9652 , currency_code
9653 , bucket
9654 , creation_date
9655 , created_by
9656 , last_update_date
9657 , last_updated_by
9658 , last_update_login
9659 , program_application_id
9660 , program_id
9661 , program_update_date
9662 , request_id
9663 , bucket_duration
9664 )
9665
9666 SELECT
9667 SUM( sch.amount_due_remaining )
9668 , G_INVOICES
9669 , sch.customer_site_use_id
9670 , sch.customer_id
9671 , ca.party_id
9672 , sch.org_id
9673 , sch.invoice_currency_code
9674 , TO_NUMBER( TO_CHAR( sch.trx_date, 'J' ) )
9675 , sysdate
9676 , l_created_by
9677 , sysdate
9678 , l_last_updated_by
9679 , l_last_update_login
9680 , l_program_application_id
9681 , l_program_id
9682 , SYSDATE
9683 , l_request_id
9684 , 1
9685
9686 FROM
9687 ar_payment_schedules_all sch ,
9688 hz_cust_accounts ca
9689 , hz_cust_site_uses_all su
9690 WHERE
9691 NVL( receipt_confirmed_flag, 'Y' ) = 'Y'
9692 AND gl_date_closed = to_date( '31-12-4712', 'DD-MM-YYYY')
9693 AND ca.cust_account_id = sch.customer_id
9694 AND su.site_use_id = sch.customer_site_use_id
9695 AND su.site_use_code <> 'DRAWEE'
9696 GROUP BY
9697 sch.customer_site_use_id
9698 , sch.invoice_currency_code
9699 , sch.customer_id
9700 , ca.party_id
9701 , sch.org_id
9702 , TO_NUMBER( TO_CHAR( sch.trx_date, 'J' ) )
9703 ;
9704
9705
9706 IF G_debug_flag = 'Y'
9707 THEN
9708 oe_debug_pub.add( 'G_INVOICES done at ' || DO_TIME, 2 );
9709 END IF;
9710
9711 END IF; --14689044
9712
9713 -----------------------------------------
9714 -- Pay Risk
9715 -----------------------------------------
9716
9717 -- balance type 9
9718
9719 IF l_payments_at_risk ='Y' THEN --14689044
9720
9721 INSERT INTO OE_CREDIT_SUMMARIES
9722 ( balance
9723 , balance_type
9724 , site_use_id
9725 , cust_account_id
9726 , party_id
9727 , org_id
9728 , currency_code
9729 , bucket
9730 , creation_date
9731 , created_by
9732 , last_update_date
9733 , last_updated_by
9734 , last_update_login
9735
9736 , program_application_id
9737 , program_id
9738 , program_update_date
9739 , request_id
9740 , bucket_duration
9741 )
9742
9743
9744 SELECT
9745 SUM( crh.amount ) pay_risk
9746 , G_PAYMENTS_AT_RISK
9747 , cr.customer_site_use_id
9748 , cr.pay_from_customer
9749 , ca.party_id
9750 , cr.org_id
9751 , cr.currency_code
9752 , TO_NUMBER( TO_CHAR( cr.receipt_date, 'J' ) )
9753 , sysdate
9754 , l_created_by
9755 , sysdate
9756 , l_last_updated_by
9757 , l_last_update_login
9758
9759 , l_program_application_id
9760 , l_program_id
9761 , SYSDATE
9762 , l_request_id
9763 , 1
9764
9765 FROM
9766 ar_cash_receipts_all cr
9767 , ar_cash_receipt_history_all crh
9768 , hz_cust_accounts ca
9769 , hz_cust_site_uses_all su
9770 WHERE
9771 cr.cash_receipt_id = crh.cash_receipt_id
9772 AND crh.current_record_flag = 'Y'
9773 AND NVL( cr.confirmed_flag, 'Y' ) = 'Y'
9774 AND NVL( cr.reversal_category, cr.status || 'X' ) <> cr.status
9775 AND crh.status NOT IN
9776 (
9777 DECODE( crh.factor_flag
9778 , 'Y', 'RISK_ELIMINATED'
9779 , 'N', 'CLEARED'
9780 )
9781 , 'REVERSED'
9782 )
9783 AND NOT EXISTS
9784 (
9785 SELECT
9786 'X'
9787 FROM
9788 ar_receivable_applications_all rap
9789 WHERE
9790 rap.cash_receipt_id = cr.cash_receipt_id
9791 AND rap.applied_payment_schedule_id = -2
9792 AND rap.display = 'Y'
9793 )
9794 AND ca.cust_account_id = cr.pay_from_customer
9795 AND su.site_use_id = cr.customer_site_use_id
9796 AND su.site_use_code <> 'DRAWEE'
9797 GROUP BY
9798 cr.customer_site_use_id
9799 , cr.currency_code
9800 , cr.pay_from_customer
9801 , ca.party_id
9802 , cr.org_id
9803 , TO_NUMBER( TO_CHAR( cr.receipt_date, 'J' ) )
9804 ;
9805
9806 IF G_debug_flag = 'Y'
9807 THEN
9808 oe_debug_pub.add( 'G_PAYMENTS_AT_RISK done at ' || DO_TIME, 2 );
9809 END IF;
9810
9811 END IF; --14689044
9812 ---------------------- BR ------------------
9813
9814 -- balance type 21
9815
9816 IF l_br_invoices ='Y' THEN --14689044
9817
9818 INSERT INTO OE_CREDIT_SUMMARIES
9819 ( balance
9820 , balance_type
9821 , site_use_id
9822 , cust_account_id
9823 , party_id
9824 , org_id
9825 , currency_code
9826 , bucket
9827 , creation_date
9828 , created_by
9829 , last_update_date
9830 , last_updated_by
9831 , last_update_login
9832
9833 , program_application_id
9834 , program_id
9835 , program_update_date
9836 , request_id
9837 , bucket_duration
9838 )
9839
9840 SELECT
9841 SUM( sch.amount_due_remaining )
9842 , G_BR_INVOICES
9843 , sch.customer_site_use_id
9844 , sch.customer_id
9845 , ca.party_id
9846 , sch.org_id
9847 , sch.invoice_currency_code
9848 , TO_NUMBER( TO_CHAR( sch.trx_date, 'J' ) )
9849 , sysdate
9850 , l_created_by
9851 , sysdate
9852 , l_last_updated_by
9853 , l_last_update_login
9854
9855 , l_program_application_id
9856 , l_program_id
9857 , SYSDATE
9858 , l_request_id
9859 , 1
9860
9861 FROM
9862 ar_payment_schedules_all sch ,
9863 hz_cust_accounts ca
9864 , hz_cust_site_uses_all su
9865 WHERE
9866 NVL( receipt_confirmed_flag, 'Y' ) = 'Y'
9867 AND gl_date_closed = to_date( '31-12-4712', 'DD-MM-YYYY')
9868 AND ca.cust_account_id = sch.customer_id
9869 AND su.site_use_id = sch.customer_site_use_id
9870 AND su.site_use_code = 'DRAWEE'
9871 GROUP BY
9872 sch.customer_site_use_id
9873 , sch.invoice_currency_code
9874 , sch.customer_id
9875 , ca.party_id
9876 , sch.org_id
9877 , TO_NUMBER( TO_CHAR( sch.trx_date, 'J' ) )
9878 ;
9879
9880
9881 IF G_debug_flag = 'Y'
9882 THEN
9883 oe_debug_pub.add( 'G_BR_INVOICES done at ' || DO_TIME, 2 );
9884 END IF;
9885
9886 END IF; --14689044
9887 -----------------------------------------
9888 -- Pay Risk
9889 -----------------------------------------
9890
9891 -- balance type 22
9892
9893 IF l_br_payments_at_risk ='Y' THEN --14689044
9894
9895 INSERT INTO OE_CREDIT_SUMMARIES
9896 ( balance
9897 , balance_type
9898 , site_use_id
9899 , cust_account_id
9900 , party_id
9901 , org_id
9902 , currency_code
9903 , bucket
9904 , creation_date
9905 , created_by
9906 , last_update_date
9907 , last_updated_by
9908 , last_update_login
9909
9910 , program_application_id
9911 , program_id
9912 , program_update_date
9913 , request_id
9914 , bucket_duration
9915 )
9916
9917
9918 SELECT
9919 SUM( crh.amount ) pay_risk
9920 , G_BR_PAYMENTS_AT_RISK
9921 , cr.customer_site_use_id
9922 , cr.pay_from_customer
9923 , ca.party_id
9924 , cr.org_id
9925 , cr.currency_code
9926 , TO_NUMBER( TO_CHAR( cr.receipt_date, 'J' ) )
9927 , sysdate
9928 , l_created_by
9929 , sysdate
9930 , l_last_updated_by
9931 , l_last_update_login
9932
9933 , l_program_application_id
9934 , l_program_id
9935 , SYSDATE
9936 , l_request_id
9937 , 1
9938
9939 FROM
9940 ar_cash_receipts_all cr
9941 , ar_cash_receipt_history_all crh
9942 , hz_cust_accounts ca
9943 , hz_cust_site_uses_all su
9944 WHERE
9945 cr.cash_receipt_id = crh.cash_receipt_id
9946 AND crh.current_record_flag = 'Y'
9947 AND NVL( cr.confirmed_flag, 'Y' ) = 'Y'
9948 AND NVL( cr.reversal_category, cr.status || 'X' ) <> cr.status
9949 AND crh.status NOT IN
9950 (
9951 DECODE( crh.factor_flag
9952 , 'Y', 'RISK_ELIMINATED'
9953 , 'N', 'CLEARED'
9954 )
9955 , 'REVERSED'
9956 )
9957 AND NOT EXISTS
9958 (
9959 SELECT
9960 'X'
9961 FROM
9962 ar_receivable_applications_all rap
9963 WHERE
9964 rap.cash_receipt_id = cr.cash_receipt_id
9965 AND rap.applied_payment_schedule_id = -2
9966 AND rap.display = 'Y'
9967 )
9968 AND ca.cust_account_id = cr.pay_from_customer
9969 AND su.site_use_id = cr.customer_site_use_id
9970 AND su.site_use_code = 'DRAWEE'
9971 GROUP BY
9972 cr.customer_site_use_id
9973 , cr.currency_code
9974 , cr.pay_from_customer
9975 , ca.party_id
9976 , cr.org_id
9977 , TO_NUMBER( TO_CHAR( cr.receipt_date, 'J' ) )
9978 ;
9979
9980 IF G_debug_flag = 'Y'
9981 THEN
9982 oe_debug_pub.add( 'G_PAYMENTS_AT_RISK done at ' || DO_TIME, 2 );
9983 END IF;
9984
9985 END IF; --14689044
9986
9987 -- Bug 4219133 : Insert Past Due Inv Balance only if needed.
9988
9989 --14689044 IF l_past_due_bal = 'Y' THEN
9990
9991 ----------------------- past due inv -------------
9992
9993 -- balance type 20
9994
9995 IF l_past_due_invoices ='Y' THEN --14689044
9996
9997 INSERT INTO OE_CREDIT_SUMMARIES
9998 ( balance
9999 , balance_type
10000 , site_use_id
10001 , cust_account_id
10002 , party_id
10003 , org_id
10004 , currency_code
10005 , bucket
10006 , creation_date
10007 , created_by
10008 , last_update_date
10009 , last_updated_by
10010 , last_update_login
10011 , program_application_id
10012 , program_id
10013 , program_update_date
10014 , request_id
10015 , bucket_duration
10016 )
10017
10018 SELECT
10019 COUNT(payment_schedule_id)
10020 , G_past_due_invoices
10021 , sch.customer_site_use_id
10022 , sch.customer_id
10023 , ca.party_id
10024 , sch.org_id
10025 , sch.invoice_currency_code
10026 , TO_NUMBER( TO_CHAR( sch.due_date, 'J' ) )
10027 , sysdate
10028 , l_created_by
10029 , sysdate
10030 , l_last_updated_by
10031 , l_last_update_login
10032 , l_program_application_id
10033 , l_program_id
10034 , SYSDATE
10035 , l_request_id
10036 , 1
10037
10038 FROM
10039 ar_payment_schedules_all sch ,
10040 hz_cust_accounts ca
10041 WHERE
10042 NVL( receipt_confirmed_flag, 'Y' ) = 'Y'
10043 AND gl_date_closed = to_date( '31-12-4712', 'DD-MM-YYYY')
10044 AND ca.cust_account_id = sch.customer_id
10045 AND amount_due_remaining > 0
10046 GROUP BY
10047 sch.customer_site_use_id
10048 , sch.invoice_currency_code
10049 , sch.customer_id
10050 , ca.party_id
10051 , sch.org_id
10052 , TO_NUMBER( TO_CHAR( sch.due_date, 'J' ) )
10053 ;
10054
10055 IF G_debug_flag = 'Y'
10056 THEN
10057 oe_debug_pub.add( 'past due invt ' || DO_TIME, 2 );
10058 END IF;
10059
10060 END IF; -- IF l_past_due_bal
10061
10062 IF G_debug_flag = 'Y'
10063 THEN
10064 oe_debug_pub.add( ' End of first phase ');
10065 END IF;
10066
10067
10068 ----------------------
10069 --- second phase -----
10070 ----------------------
10071 l_level := 0;
10072 l_bucket_length := POWER( 2, l_level );
10073
10074 -- Commented for thr bug 7688615 to improve the performance.
10075 /*UPDATE
10076 oe_credit_summaries
10077 SET
10078 bucket_duration = l_bucket_length
10079 WHERE balance_type NOT IN (18,23,24,25,26,27,28,29,30,31,32,33,34,35,36); ---change for Returns
10080
10081 */
10082 IF NVL(FND_PROFILE.VALUE('ONT_PRESERVE_EXT_CR_BAL'),'Y') = 'N' THEN
10083 UPDATE
10084 oe_credit_summaries
10085 SET
10086 bucket_duration = l_bucket_length
10087 WHERE balance_type =18;
10088 END IF;
10089
10090 IF G_debug_flag = 'Y'
10091 THEN
10092 oe_debug_pub.add( 'level 0 records updated at ' || DO_TIME, 2 );
10093 END IF;
10094
10095 l_level := 1;
10096 l_bucket_length := POWER( 2, l_level );
10097
10098 --8567481 start
10099 --- Modification for the Bucket Logic -------
10100 /*14689044 start
10101 INSERT
10102 (balance,
10103 balance_type,
10104 site_use_id,
10105 cust_account_id,
10106 party_id,
10107 org_id,
10108 currency_code,
10109 bucket,
10110 bucket_duration)
10111 SELECT
10112 balance
10113 , balance_type
10114 , site_use_id
10115 , cust_account_id
10116 , party_id
10117 , org_id
10118 , currency_code
10119 , bucket
10120 , bucket_duration
10121 FROM
10122 oe_credit_summaries
10123 WHERE
10124 balance_type NOT IN (18,23,24,25,26,27,28,29,30,31,32,33,34,35,36); ---change for Returns
10125
10126 WHILE l_level <= G_MAX_BUCKET_LEVEL LOOP
10127
10128
10129 INSERT
10130 ( balance
10131 , balance_type
10132 , site_use_id
10133 , cust_account_id
10134 , party_id
10135 , org_id
10136 , currency_code
10137 , bucket
10138 ,bucket_duration
10139 , creation_date
10140 , created_by
10141 , last_update_date
10142 , last_updated_by
10143 , last_update_login
10144 , program_application_id
10145 , program_id
10146 , program_update_date
10147 , request_id
10148 )
10149
10150 SELECT
10151 SUM( balance )
10152 , balance_type
10153 , site_use_id
10154 , cust_account_id
10155 , party_id
10156 , org_id
10157 , currency_code
10158 , bucket - MOD( bucket, l_bucket_length )
10159 , l_bucket_length
10160 , SYSDATE
10161 , l_created_by
10162 , SYSDATE
10163 , l_last_updated_by
10164 , l_last_update_login
10165 , l_program_application_id
10166 , l_program_id
10167 , SYSDATE
10168 , l_request_id
10169
10170 FROM
10171 OE_INIT_SUMM_TMP
10172 -- WHERE
10173 -- bucket_duration = l_bucket_length / 2
10174 GROUP BY
10175 balance_type
10176 , site_use_id
10177 , cust_account_id
10178 , party_id
10179 , org_id
10180 , currency_code
10181 , bucket - MOD( bucket, l_bucket_length )
10182 ;
10183
10184 IF G_debug_flag = 'Y'
10185 THEN
10186 oe_debug_pub.add( 'level ' || l_level || ' records done at '||DO_TIME, 2 );
10187 END IF;
10188
10189 l_level := l_level + 1;
10190 l_bucket_length := POWER( 2, l_level );
10191 END LOOP;
10192 14689044 end*/
10193 --8567481 end
10194
10195 --14689044 /*8567481 start
10196 WHILE l_level <= G_MAX_BUCKET_LEVEL LOOP
10197
10198 -- hints are introduced as part of the performance bug 7688615
10199
10200 INSERT INTO /*+ parallel */ OE_CREDIT_SUMMARIES
10201 ( balance
10202 , balance_type
10203 , site_use_id
10204 , cust_account_id
10205 , party_id
10206 , org_id
10207 , currency_code
10208 , bucket
10209 ,bucket_duration
10210 , creation_date
10211 , created_by
10212 , last_update_date
10213 , last_updated_by
10214 , last_update_login
10215 , program_application_id
10216 , program_id
10217 , program_update_date
10218 , request_id
10219 )
10220
10221 SELECT
10222 SUM( balance )
10223 , balance_type
10224 , site_use_id
10225 , cust_account_id
10226 , party_id
10227 , org_id
10228 , currency_code
10229 , bucket - MOD( bucket, l_bucket_length )
10230 , l_bucket_length
10231 , SYSDATE
10232 , l_created_by
10233 , SYSDATE
10234 , l_last_updated_by
10235 , l_last_update_login
10236 , l_program_application_id
10237 , l_program_id
10238 , SYSDATE
10239 , l_request_id
10240
10241 FROM
10242 oe_credit_summaries
10243 WHERE
10244 bucket_duration = l_bucket_length / 2
10245 AND balance_type NOT IN (18,23,24,25,26,27,28,29,30,31,32,33,34,35,36) ---change for Returns
10246 GROUP BY
10247 balance_type
10248 , site_use_id
10249 , cust_account_id
10250 , party_id
10251 , org_id
10252 , currency_code
10253 , bucket - MOD( bucket, l_bucket_length )
10254 ;
10255
10256 IF G_debug_flag = 'Y'
10257 THEN
10258 oe_debug_pub.add( 'level ' || l_level || ' records done at '||DO_TIME, 2 );
10259 END IF;
10260
10261 l_level := l_level + 1;
10262 l_bucket_length := POWER( 2, l_level );
10263 END LOOP;
10264 --14689044 8567481 end */
10265
10266 IF G_debug_flag = 'Y'
10267 THEN
10268 oe_debug_pub.add( ' Done Inserting into summary table, about to COMMIT');
10269 END IF;
10270
10271 COMMIT;
10272
10273 x_retcode := 0;
10274
10275 IF G_debug_flag = 'Y'
10276 THEN
10277 oe_debug_pub.add( ' after COMMIT command');
10278 oe_debug_pub.add( 'Exiting OE_CREDIT_EXPOSURE_PVT.Init_Summary_Table ', 1 );
10279 END IF;
10280
10281 EXCEPTION
10282
10283 WHEN OTHERS THEN
10284
10285 IF
10286 FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
10287 THEN
10288 FND_MSG_PUB.Add_Exc_Msg
10289 ( G_PKG_NAME , 'Init_Summary_Table' );
10290 END IF;
10291
10292 x_errbuf := FND_MSG_PUB.Get( p_encoded => FND_API.G_FALSE );
10293 x_retcode := 2;
10294
10295
10296 END Init_Summary_Table;
10297
10298 --========================================================================
10299 -- PROCEDURE : Get_Exposure PUBLIC
10300 -- PARAMETERS: x_retcode 0 success, 1 warning, 2 error
10301 -- x_errbuf error buffer
10302 -- p_customer_id not null (tca: cust_account_id)
10303 -- p_site_use_id can be null
10304 -- p_header_id order header
10305 -- p_credit_check_rule_rec
10306 -- p_system_parameters_rec for org id
10307 -- p_limit_curr_code currency in which to show the exposure
10308 -- p_usage_curr_tbl only include tran in these currencies
10309 -- p_include_all_flag include transactions in any currency
10310 -- x_total_exposure
10311 -- x_return_status
10312 -- x_error_curr_tbl contains currencies with no rates
10313
10314 ---
10315 -- COMMENT : This returns the total exposure for a customer or customer site
10316 -- using precalculated data.
10317 -- rajkrish Jan-23-2002 included the logic for p_global_exposure_flag
10318 --=======================================================================--
10319
10320 PROCEDURE Get_Exposure
10321 ( p_customer_id IN NUMBER
10322 , p_site_use_id IN NUMBER
10323 , p_party_id IN NUMBER := NULL
10324 , p_header_id IN NUMBER
10325 , p_credit_check_rule_rec IN
10326 OE_CREDIT_CHECK_UTIL.oe_credit_rules_rec_type
10327 , p_system_parameters_rec IN
10328 OE_CREDIT_CHECK_UTIL.oe_systems_param_rec_type
10329 , p_limit_curr_code IN
10330 HZ_CREDIT_PROFILE_AMTS.currency_code%TYPE
10331 , p_usage_curr_tbl IN OE_CREDIT_CHECK_UTIL.curr_tbl_type
10332 , p_include_all_flag IN VARCHAR2
10333 , p_global_exposure_flag IN VARCHAR2 := 'N'
10334 , p_need_exposure_details IN VARCHAR2 := 'N'
10335 , x_total_exposure OUT NOCOPY NUMBER
10336 , x_order_amount OUT NOCOPY NUMBER
10337 , x_order_hold_amount OUT NOCOPY NUMBER
10338 , x_ar_amount OUT NOCOPY NUMBER
10339 , x_return_status OUT NOCOPY VARCHAR2
10340 , x_error_curr_tbl OUT NOCOPY OE_CREDIT_CHECK_UTIL.curr_tbl_type
10341 )
10342 IS
10343
10344 i BINARY_INTEGER;
10345 l_site_use_id NUMBER;
10346 l_org_id NUMBER;
10347 l_currency_code HZ_CREDIT_PROFILE_AMTS.currency_code%TYPE;
10348 l_balance NUMBER;
10349 l_term NUMBER;
10350 l_total NUMBER;
10351
10352 l_bucket NUMBER;
10353 l_bucket_length NUMBER;
10354 l_main_bucket NUMBER;
10355 l_main_bucket_length NUMBER;
10356 l_level NUMBER;
10357 l_binary_tbl oe_credit_exposure_pvt.Binary_tbl_type;
10358 j NUMBER;
10359 l_ship NUMBER;
10360 l_both_exposure VARCHAR2(1) ;
10361
10362 CURSOR C_g_use_party_hierarchy IS
10363 SELECT
10364 'Y'
10365 FROM
10366 hz_hierarchy_nodes hn
10367 WHERE hn.parent_id = p_party_id
10368 AND hn.parent_object_type = 'ORGANIZATION'
10369 and hn.parent_table_name = 'HZ_PARTIES'
10370 and hn.child_object_type = 'ORGANIZATION'
10371 and hn.effective_start_date <= sysdate
10372 and hn.effective_end_date >= SYSDATE
10373 and hn.hierarchy_type
10374 = OE_CREDIT_CHECK_UTIL.G_hierarchy_type ;
10375
10376 BEGIN
10377 g_use_party_hierarchy := 'N' ;
10378
10379
10380 IF G_debug_flag = 'Y'
10381 THEN
10382 oe_debug_pub.add( 'IN OEXVCRXB.OE_CREDIT_EXPOSURE_PVT.Get_Exposure', 1 );
10383 oe_debug_pub.add( '+++++++++++++++++++++++++++++++++++++++++++');
10384 oe_debug_pub.add( 'p_customer_id : ' || p_customer_id, 2 );
10385 oe_debug_pub.add( 'p_site_use_id : ' || p_site_use_id, 2 );
10386 oe_debug_pub.add( 'p_party_id : '|| p_party_id ,2);
10387 oe_debug_pub.add( 'p_header_id : ' || p_header_id, 2 );
10388 oe_debug_pub.add( 'g_use_party_hierarchy : '|| g_use_party_hierarchy );
10389 oe_debug_pub.add( ' p_include_all_flag => '||
10390 p_include_all_flag );
10391 oe_debug_pub.add(' p_global_exposure_flag => '||
10392 p_global_exposure_flag );
10393 oe_debug_pub.add(' p_need_exposure_details => '||
10394 p_need_exposure_details );
10395 oe_debug_pub.add
10396 ( 'p_credit_check_rule_rec.credit_check_rule_id: '
10397 || p_credit_check_rule_rec.credit_check_rule_id, 2 );
10398 oe_debug_pub.add
10399 ( 'p_credit_check_rule_rec.name: '
10400 || p_credit_check_rule_rec.name, 2 );
10401 oe_debug_pub.add
10402 ( 'p_credit_check_rule_rec.failure_result_code: '
10403 || p_credit_check_rule_rec.failure_result_code, 2 );
10404 oe_debug_pub.add
10405 ( 'p_credit_check_rule_rec.open_ar_balance_flag : '
10406 || p_credit_check_rule_rec.open_ar_balance_flag, 2 );
10407 oe_debug_pub.add
10408 ( 'p_credit_check_rule_rec.uninvoiced_orders_flag : '
10409 || p_credit_check_rule_rec.uninvoiced_orders_flag, 2 );
10410 oe_debug_pub.add
10411 ( 'p_credit_check_rule_rec.orders_on_hold_flag : '
10412 || p_credit_check_rule_rec.orders_on_hold_flag, 2 );
10413 oe_debug_pub.add
10414 ( 'p_credit_check_rule_rec.shipping_interval : '
10415 || p_credit_check_rule_rec.shipping_interval, 2 );
10416 oe_debug_pub.add
10417 ( 'p_credit_check_rule_rec.open_ar_days : '
10418 || p_credit_check_rule_rec.open_ar_days, 2 );
10419 oe_debug_pub.add
10420 ( 'p_credit_check_rule_rec.start_date_active : '
10421 || p_credit_check_rule_rec.start_date_active, 2 );
10422 oe_debug_pub.add
10423 ( 'p_credit_check_rule_rec.end_date_active : '
10424 || p_credit_check_rule_rec.end_date_active, 2 );
10425 oe_debug_pub.add
10426 ( 'p_credit_check_rule_rec.include_payments_at_risk_flag : '
10427 || p_credit_check_rule_rec.include_payments_at_risk_flag, 2 );
10428 oe_debug_pub.add
10429 ( 'p_credit_check_rule_rec.include_tax_flag : '
10430 || p_credit_check_rule_rec.include_tax_flag, 2 );
10431 oe_debug_pub.add
10432 ( 'p_credit_check_rule_rec.maximum_days_past_due : '
10433 || p_credit_check_rule_rec.maximum_days_past_due, 2 );
10434 oe_debug_pub.add
10435 ( 'p_credit_check_rule_rec.QUICK_CR_CHECK_FLAG : '
10436 || p_credit_check_rule_rec.QUICK_CR_CHECK_FLAG, 2 );
10437 oe_debug_pub.add
10438 ( 'p_credit_check_rule_rec.incl_freight_charges_flag : '
10439 || p_credit_check_rule_rec.incl_freight_charges_flag, 2 );
10440 oe_debug_pub.add
10441 ( 'p_credit_check_rule_rec.shipping_horizon : '
10442 || p_credit_check_rule_rec.shipping_horizon, 2 );
10443 oe_debug_pub.add
10444 ( 'p_credit_check_rule_rec.include_external_exposure_flag : '
10445 || p_credit_check_rule_rec.include_external_exposure_flag, 2 );
10446 oe_debug_pub.add
10447 ( 'p_credit_check_rule_rec.include_returns_flag : '
10448 || p_credit_check_rule_rec.include_returns_flag, 2 );
10449 oe_debug_pub.add
10450 ( 'p_system_parameters_rec.org_id : '
10451 || p_system_parameters_rec.org_id, 2 );
10452 oe_debug_pub.add
10453 ( 'p_system_parameters_rec.master_organization_id : '
10454 || p_system_parameters_rec.master_organization_id, 2 );
10455 oe_debug_pub.add( 'p_limit_curr_code: ' || p_limit_curr_code, 2 );
10456 oe_debug_pub.add( 'p_include_all_flag: ' || p_include_all_flag, 2 );
10457 oe_debug_pub.add( 'p_global_exposure_flag = '|| p_global_exposure_flag );
10458
10459 END IF;
10460
10461 ------------------------------------------------------------------
10462
10463 g_use_party_hierarchy := 'N' ;
10464
10465 IF p_party_id is not NULL
10466 THEN
10467 OPEN C_g_use_party_hierarchy ;
10468
10469 FETCH C_g_use_party_hierarchy
10470 INTO g_use_party_hierarchy ;
10471
10472 CLOSE C_g_use_party_hierarchy ;
10473 ELSE
10474 g_use_party_hierarchy := 'N' ;
10475 END IF;
10476
10477
10478 IF G_debug_flag = 'Y'
10479 THEN
10480 oe_debug_pub.add( 'final g_use_party_hierarchy ==> '||
10481 g_use_party_hierarchy );
10482 END IF;
10483 ------------------------------------------------------------------
10484
10485 i := p_usage_curr_tbl.FIRST;
10486
10487 WHILE i IS NOT NULL LOOP
10488 IF G_debug_flag = 'Y'
10489 THEN
10490 oe_debug_pub.add( 'usage curr: '
10491 || p_usage_curr_tbl(i).usage_curr_code, 2 );
10492 END IF;
10493 i := p_usage_curr_tbl.NEXT(i);
10494 END LOOP;
10495
10496 g_conversion_type := p_credit_check_rule_rec.conversion_type;
10497
10498
10499 -----------
10500 -- Locks needed for consistency
10501 -- Goal: read-consistency of oe_credit_summaries during exposure
10502 -- Means: SHARE lock or read-only transaction.
10503 -- SHARE: Need to verify that update overrides share.
10504 -- read-only: May slow down query due to reconstruction using
10505 -- rollback segment w.r.t SCN
10506 -- Compromise: do nothing
10507 -- Tradeoffs: (consistent periodic) inconsistency extremely unlikely
10508 -- (triggers/table handlers) inconsistency slightly more likely
10509 -- since seperate exposure and update transactions may be correlated
10510
10511 -- Get the functional currency for use in currency conversion
10512 -- using triangulation
10513
10514 g_functional_currency := oe_credit_check_util.Get_GL_Currency;
10515
10516 l_org_id := OE_CREDIT_CHECK_UTIL.G_org_id; --bug# 5031301
10517 l_total := 0;
10518 l_both_exposure := 'N' ;
10519
10520 x_ar_amount := NULL;
10521 x_order_amount := NULL ;
10522 x_order_hold_amount := NULL ;
10523 -----------------------------
10524
10525 IF NVL(p_need_exposure_details,'N') = 'N'
10526 THEN
10527 -- Order Management Summaries
10528 IF G_debug_flag = 'Y'
10529 THEN
10530 oe_debug_pub.add(' OM Balances ');
10531 oe_debug_pub.add(' call balance_types_om ');
10532 END IF;
10533
10534 balance_types_om( p_credit_check_rule_rec );
10535
10536 calculate_buckets
10537 ( ship_date( p_credit_check_rule_rec.shipping_horizon )
10538 , p_credit_check_rule_rec.shipping_interval
10539 , l_main_bucket
10540 , l_binary_tbl
10541 );
10542
10543
10544 ---------------------
10545 -- IF no OM or AR Horizon days setup, then the exposure
10546 -- can be calculated in one execution from the
10547 -- summary table both for OM and AR exposure as we need
10548 -- all the data
10549
10550 IF p_credit_check_rule_rec.open_ar_days IS NULL
10551 AND p_credit_check_rule_rec.shipping_interval IS NULL
10552 THEN
10553 IF G_debug_flag = 'Y'
10554 THEN
10555 oe_debug_pub.add(' Call balance_types_om_and_ar ');
10556 END IF;
10557
10558 balance_types_om_and_ar( p_credit_check_rule_rec );
10559
10560 l_both_exposure := 'Y' ;
10561
10562 ELSE
10563 IF G_debug_flag = 'Y'
10564 THEN
10565 oe_debug_pub.add(' Select OM and AR exposure separately ');
10566 END IF;
10567 END IF;
10568
10569 IF G_debug_flag = 'Y'
10570 THEN
10571 oe_debug_pub.add(' l_both_exposure ==> '|| l_both_exposure );
10572 oe_debug_pub.add(' Call retrieve_exposure ');
10573 END IF;
10574
10575 l_total := l_total + retrieve_exposure
10576 ( p_binary_tbl => l_binary_tbl
10577 , p_site_use_id => p_site_use_id
10578 , p_customer_id => p_customer_id
10579 , p_party_id => p_party_id
10580 , p_org_id => l_org_id
10581 , p_include_all_flag => p_include_all_flag
10582 , p_usage_curr_tbl => p_usage_curr_tbl
10583 , p_limit_curr_code => p_limit_curr_code
10584 , p_main_bucket => l_main_bucket
10585 , p_global_exposure_flag => p_global_exposure_flag
10586 , p_credit_check_rule_rec => p_credit_check_rule_rec
10587 , x_error_curr_tbl => x_error_curr_tbl
10588 );
10589
10590 IF G_debug_flag = 'Y'
10591 THEN
10592 oe_debug_pub.add(' Out of Retreive exposure with total ==> '
10593 || l_total );
10594 END IF;
10595
10596 ---------------------------------
10597 -- Accounts Receivables Summaries
10598
10599 IF l_both_exposure = 'N'
10600 THEN
10601 IF G_debug_flag = 'Y'
10602 THEN
10603 oe_debug_pub.add(' AR exposure ');
10604 oe_debug_pub.add(' Call balance_types_ar ');
10605 END IF;
10606
10607 balance_types_ar( p_credit_check_rule_rec );
10608
10609
10610 calculate_buckets
10611 ( open_date( p_credit_check_rule_rec.open_ar_days )
10612 , p_credit_check_rule_rec.open_ar_days
10613 , l_main_bucket
10614 , l_binary_tbl
10615 );
10616
10617 oe_debug_pub.add(' Call retrieve_exposure for AR balance ');
10618
10619 l_total := l_total + retrieve_exposure
10620 ( p_binary_tbl => l_binary_tbl
10621 , p_site_use_id => p_site_use_id
10622 , p_customer_id => p_customer_id
10623 , p_party_id => p_party_id
10624 , p_org_id => l_org_id
10625 , p_include_all_flag => p_include_all_flag
10626 , p_usage_curr_tbl => p_usage_curr_tbl
10627 , p_limit_curr_code => p_limit_curr_code
10628 , p_main_bucket => l_main_bucket
10629 , p_global_exposure_flag => p_global_exposure_flag
10630 , p_credit_check_rule_rec => p_credit_check_rule_rec
10631 , x_error_curr_tbl => x_error_curr_tbl
10632 );
10633
10634 IF G_debug_flag = 'Y'
10635 THEN
10636 oe_debug_pub.add(' out of AR retrieve_exposure ==> '||
10637 l_total );
10638 END IF;
10639
10640 ELSE
10641 IF G_debug_flag = 'Y'
10642 THEN
10643 oe_debug_pub.add(' NO need for AR expe as both exp calculated = '
10644 || l_both_exposure );
10645 END IF;
10646 END IF;
10647
10648 x_total_exposure := l_total;
10649
10650 ELSE
10651
10652 ------------------------------ support detail exposure ------------
10653 IF G_debug_flag = 'Y'
10654 THEN
10655 oe_debug_pub.add(' support detail exposure ',1);
10656 END IF;
10657
10658 balance_types_om_hold( p_credit_check_rule_rec );
10659
10660 calculate_buckets
10661 ( ship_date( p_credit_check_rule_rec.shipping_horizon )
10662 , p_credit_check_rule_rec.shipping_interval
10663 , l_main_bucket
10664 , l_binary_tbl
10665 );
10666
10667 x_order_hold_amount := retrieve_exposure
10668 ( p_binary_tbl => l_binary_tbl
10669 , p_site_use_id => p_site_use_id
10670 , p_customer_id => p_customer_id
10671 , p_party_id => p_party_id
10672 , p_org_id => l_org_id
10673 , p_include_all_flag => p_include_all_flag
10674 , p_usage_curr_tbl => p_usage_curr_tbl
10675 , p_limit_curr_code => p_limit_curr_code
10676 , p_main_bucket => l_main_bucket
10677 , p_global_exposure_flag => p_global_exposure_flag
10678 , p_credit_check_rule_rec => p_credit_check_rule_rec
10679 , x_error_curr_tbl => x_error_curr_tbl
10680 );
10681
10682 IF G_debug_flag = 'Y'
10683 THEN
10684 oe_debug_pub.add(' x_order_hold_amount => '||
10685 x_order_hold_amount );
10686
10687 oe_debug_pub.add(' x_order_amount => '|| x_order_amount );
10688
10689 oe_debug_pub.add(' x_ar_amount ' || x_ar_amount );
10690 END IF;
10691 --------------------------------------------------------
10692 balance_types_om_nohold ( p_credit_check_rule_rec );
10693
10694 calculate_buckets
10695 ( ship_date( p_credit_check_rule_rec.shipping_horizon )
10696 , p_credit_check_rule_rec.shipping_interval
10697 , l_main_bucket
10698 , l_binary_tbl
10699 );
10700
10701 x_order_amount := retrieve_exposure
10702 ( p_binary_tbl => l_binary_tbl
10703 , p_site_use_id => p_site_use_id
10704 , p_customer_id => p_customer_id
10705 , p_party_id => p_party_id
10706 , p_org_id => l_org_id
10707 , p_include_all_flag => p_include_all_flag
10708 , p_usage_curr_tbl => p_usage_curr_tbl
10709 , p_limit_curr_code => p_limit_curr_code
10710 , p_main_bucket => l_main_bucket
10711 , p_global_exposure_flag => p_global_exposure_flag
10712 , p_credit_check_rule_rec => p_credit_check_rule_rec
10713 , x_error_curr_tbl => x_error_curr_tbl
10714 );
10715
10716 IF G_debug_flag = 'Y'
10717 THEN
10718 oe_debug_pub.add(' x_order_amount => '|| x_order_amount );
10719 oe_debug_pub.add(' AR exposure ');
10720 oe_debug_pub.add(' Call balance_types_ar ');
10721 END IF;
10722
10723 balance_types_ar( p_credit_check_rule_rec );
10724
10725
10726 calculate_buckets
10727 ( open_date( p_credit_check_rule_rec.open_ar_days )
10728 , p_credit_check_rule_rec.open_ar_days
10729 , l_main_bucket
10730 , l_binary_tbl
10731 );
10732
10733 oe_debug_pub.add(' Call retrieve_exposure for AR balance ');
10734
10735 x_ar_amount := retrieve_exposure
10736 ( p_binary_tbl => l_binary_tbl
10737 , p_site_use_id => p_site_use_id
10738 , p_customer_id => p_customer_id
10739 , p_party_id => p_party_id
10740 , p_org_id => l_org_id
10741 , p_include_all_flag => p_include_all_flag
10742 , p_usage_curr_tbl => p_usage_curr_tbl
10743 , p_limit_curr_code => p_limit_curr_code
10744 , p_main_bucket => l_main_bucket
10745 , p_global_exposure_flag => p_global_exposure_flag
10746 , p_credit_check_rule_rec => p_credit_check_rule_rec
10747 , x_error_curr_tbl => x_error_curr_tbl
10748 );
10749
10750 IF G_debug_flag = 'Y'
10751 THEN
10752 oe_debug_pub.add(' out of AR retrieve_exposure ==> '||
10753 x_ar_amount );
10754 END IF;
10755
10756 --bug# 5597791
10757 IF G_debug_flag = 'Y'
10758 THEN
10759 oe_debug_pub.add(' x_order_hold_amount => '||
10760 x_order_hold_amount );
10761
10762 oe_debug_pub.add(' x_order_amount => '|| x_order_amount );
10763
10764 oe_debug_pub.add(' x_ar_amount ' || x_ar_amount );
10765 END IF;
10766
10767 x_total_exposure := nvl(x_order_hold_amount,0) + nvl(x_order_amount,0) + nvl(x_ar_amount,0);
10768
10769 END IF; -- exposure details
10770
10771 --------------------------------------------------------------
10772 x_return_status := FND_API.G_RET_STS_SUCCESS;
10773
10774 IF G_debug_flag = 'Y'
10775 THEN
10776 oe_debug_pub.add(' ');
10777 oe_debug_pub.add(' Total FINAL exposure ==> '|| x_total_exposure,1 );
10778 oe_debug_pub.add(' ');
10779 oe_debug_pub.add('*************************************************');
10780 oe_debug_pub.add( 'Exiting OE_CREDIT_EXPOSURE_PVT.Get_Exposure', 1 );
10781 END IF;
10782
10783
10784 l_total := 0;
10785 l_both_exposure := 'N' ;
10786
10787
10788
10789 EXCEPTION
10790
10791 WHEN FND_API.G_EXC_ERROR THEN
10792 x_return_status := FND_API.G_RET_STS_ERROR;
10793
10794 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
10795 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10796 oe_debug_pub.add(SQLERRM );
10797
10798 WHEN OTHERS THEN
10799 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
10800 oe_debug_pub.add(SQLERRM );
10801 IF
10802 FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )
10803 THEN
10804 -- FND_MSG_PUB.Add_Exc_Msg( l_api_name, 'Get_Exposure' );
10805 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, 'Get_Exposure' );
10806 END IF;
10807
10808 END Get_Exposure;
10809
10810
10811 END OE_CREDIT_EXPOSURE_PVT;