DBA Data[Home] [Help]

PACKAGE BODY: APPS.ARP_CR_UTIL

Source


1 PACKAGE BODY ARP_CR_UTIL AS
2 /*$Header: ARRUTILB.pls 120.4 2003/11/04 20:43:40 orashid ship $*/
3 --
4 --
5 PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
6 
7 PROCEDURE get_dist_ccid( P_cr_id    IN ar_cash_receipts.cash_receipt_id%TYPE,
8                          P_source_table IN ar_distributions.source_table%TYPE,
9                          P_source_type IN ar_distributions.source_type%TYPE,
10 			 P_rma_rec IN ar_receipt_method_accounts%ROWTYPE,
11                          P_ccid  OUT NOCOPY ar_distributions.code_combination_id%TYPE)
12 IS
13 l_ccid ar_distributions.code_combination_id%TYPE;
14 --
15 CURSOR ar_get_crh_ccid_C IS
16        SELECT dist.code_combination_id ccid
17        FROM   ar_distributions dist,
18               ar_cash_receipt_history crh
19        WHERE  dist.source_table = 'CRH'
20        AND    dist.source_id = crh.cash_receipt_history_id
21        AND    dist.source_type = P_source_type
22        AND    crh.cash_receipt_id = P_cr_id
23        ORDER BY LINE_ID desc;
24 --
25 BEGIN
26    --
27    IF PG_DEBUG in ('Y', 'C') THEN
28       arp_standard.debug( '<<<<<<< arp_cr_util.get_dist_ccid' );
29    END IF;
30    --
31    OPEN ar_get_crh_ccid_C;
32    FETCH ar_get_crh_ccid_C INTO l_ccid;
33    CLOSE ar_get_crh_ccid_C;
34 
35    IF ( P_rma_rec.receipt_method_id IS NOT NULL ) AND
36       ( l_ccid IS NULL )
37    THEN
38         IF ( P_source_type = 'CASH' )
39         THEN
40            l_ccid := P_rma_rec.cash_ccid;
41         ELSE
42            IF P_source_type = 'BANK_CHARGES'
43            THEN
44               l_ccid := P_rma_rec.bank_charges_ccid;
45            ELSE
46               IF P_source_type = 'REMITTANCE'
47               THEN
48                  l_ccid := P_rma_rec.remittance_ccid;
49               ELSE
50                  IF P_source_type = 'SHORT_TERM_DEBT'
51                  THEN
52                     l_ccid := P_rma_rec.short_term_debt_ccid;
53                  ELSE
54                     IF P_source_type = 'FACTOR'
55                     THEN
56                        l_ccid := P_rma_rec.factor_ccid;
57                     ELSE
58                        IF P_source_type = 'CONFIRMATION'
59                        THEN
60                           l_ccid := P_rma_rec.receipt_clearing_ccid;
61                        END IF;
62                     END IF;
63                  END IF;
64               END IF;
65            END IF;
66         END IF;
67      END IF;
68    --
69    P_ccid := l_ccid;
70    --
71    IF PG_DEBUG in ('Y', 'C') THEN
72       arp_standard.debug( '<<<<<<< arp_cr_util.get_dist_ccid' );
73    END IF;
74    --
75 EXCEPTION
76      WHEN OTHERS THEN
77           IF PG_DEBUG in ('Y', 'C') THEN
78              arp_standard.debug( 'EXCEPTION arp_cr_util.get_dist_ccid' );
79           END IF;
80           RAISE;
81 END get_dist_ccid;
82 --
83 --
84 --
85 PROCEDURE get_creation_info( P_receipt_method_id    IN ar_cash_receipts.receipt_method_id%TYPE,
86                          P_remit_bank_account_id    IN ar_cash_receipts.remit_bank_acct_use_id%type,
87                          P_history_status OUT NOCOPY ar_cash_receipt_history.status%TYPE,
88                          P_source_type OUT NOCOPY ar_distributions.source_type%TYPE,
89 			 P_ccid OUT NOCOPY ar_distributions.code_combination_id%TYPE,
90 			 P_override_remit_account_flag OUT NOCOPY ar_cash_receipts.override_remit_account_flag%TYPE) IS
91 l_history_status ar_cash_receipt_history.status%TYPE;
92 l_source_type ar_distributions.source_type%TYPE;
93 l_ccid ar_distributions.code_combination_id%TYPE;
94 l_override_remit_account_flag ar_cash_receipts.override_remit_account_flag%TYPE;
95 --
96 BEGIN
97    --
98    IF PG_DEBUG in ('Y', 'C') THEN
99       arp_standard.debug( '<<<<<<< arp_cr_util.get_creation_info' );
100    END IF;
101    --
102    SELECT rc.creation_status,
103           decode( rc.creation_status,
104  		  'APPROVED', null,
105 		  'CONFIRMED','CONFIRMATION',
106 		  'REMITTED', 'REMITTANCE',
107                   'CLEARED', 'CASH' ),
108           decode(rc.creation_status,
109 			'APPROVED',null,
110 			'CONFIRMED', rma.receipt_clearing_ccid,
111 			'REMITTED',  rma.remittance_ccid,
112 			'CLEARED', rma.cash_ccid),
113           nvl(rma.override_remit_account_flag,'Y')
114    INTO   l_history_status,
115 	  l_source_type,
116 	  l_ccid,
117           l_override_remit_account_flag
118    FROM   ar_receipt_classes rc,
119           ar_receipt_methods rm,
120           ar_receipt_method_accounts rma
121    WHERE  rm.receipt_class_id = rc.receipt_class_id
122    AND    rm.receipt_method_id = p_receipt_method_id
123    AND    rma.receipt_method_id = rm.receipt_method_id
124    AND    rma.remit_bank_acct_use_id = P_remit_bank_account_id;
125    --
126    P_history_status := l_history_status;
127    P_source_type := l_source_type;
128    P_ccid := l_ccid;
129    P_override_remit_account_flag := l_override_remit_account_flag;
130    --
131    IF PG_DEBUG in ('Y', 'C') THEN
132       arp_standard.debug( '<<<<<<< arp_cr_util.get_creation_info' );
133    END IF;
134    --
135 
136 EXCEPTION
137      WHEN OTHERS THEN
138           IF PG_DEBUG in ('Y', 'C') THEN
139              arp_standard.debug( 'EXCEPTION arp_cr_util.get_creation_info' );
140           END IF;
141           RAISE;
142 END get_creation_info;
143 --
144 
145 
146 PROCEDURE get_batch_id( p_cr_id IN ar_cash_receipts.cash_receipt_id%TYPE,
147 		  	p_batch_id OUT NOCOPY ar_batches.batch_id%TYPE) IS
148 --
149 BEGIN
150    --
151    IF PG_DEBUG in ('Y', 'C') THEN
152       arp_standard.debug( 'arp_cr_util.get_batch_id()+' );
153    END IF;
154    --
155    -- We select 'max' this is because if returns NULL, we do not
156    -- want it to raise a return null exception.
157    -- Note: there's only one record per cash receipt in history table has
158    -- first_postable_flag ='Y'
159    --
160    SELECT max(crh.batch_id)
161    INTO   p_batch_id
162    FROM   ar_cash_receipt_history crh,
163           ar_batches bat
164    WHERE  crh.cash_receipt_id = p_cr_id
165    AND    crh.first_posted_record_flag = 'Y'
166    AND    bat.batch_id = crh.batch_id
167    AND    bat.type = 'MANUAL';
168    --
169    IF PG_DEBUG in ('Y', 'C') THEN
170       arp_standard.debug( 'arp_cr_util.get_batch_id()-' );
171    END IF;
172    --
173 EXCEPTION
174      WHEN OTHERS THEN
175           IF PG_DEBUG in ('Y', 'C') THEN
176              arp_standard.debug( 'EXCEPTION arp_cr_util.get_batch_id' );
177           END IF;
178           RAISE;
179 END get_batch_id;
180 
181 END ARP_CR_UTIL;