DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_ARINTF_PVT

Source


1 PACKAGE BODY OKL_ARINTF_PVT AS
2 /* $Header: OKLRAINB.pls 120.122.12020000.2 2013/01/24 11:33:24 venkatho ship $ */
3 
4   G_MODULE VARCHAR2(255) := 'okl.plsql.okl_arintf_pvt';
5   G_DEBUG_ENABLED CONSTANT VARCHAR2(10) := OKL_DEBUG_PUB.CHECK_LOG_ENABLED;
6   G_IS_DEBUG_STATEMENT_ON BOOLEAN;
7   -- Start of wraper code generated automatically by Debug code generator
8   L_MODULE VARCHAR2(40) := 'LEASE.RECEIVABLES.BILLING';
9   L_DEBUG_ENABLED VARCHAR2(10);
10 --  L_DEBUG_ENABLED CONSTANT VARCHAR2(10) := OKL_DEBUG_PUB.CHECK_LOG_ENABLED;
11   L_LEVEL_PROCEDURE NUMBER;
12   IS_DEBUG_PROCEDURE_ON BOOLEAN;
13 -- End of wraper code generated automatically by Debug code generator
14 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
15 	-- vpanwar 20-July-07 -- interface line length increase from 30 to 150
16     G_AR_DATA_LENGTH CONSTANT VARCHAR2(4) := '150';
17     -- end vpanwar 20-July-07 -- interface line length increase from 30 to 150
18     G_ACC_SYS_OPTION VARCHAR2(4);
19 --end: |           15-FEB-07 cklee  R12 Billing enhancement project                 |
20 
21 -- rmunjulu R12 Fixes
22 TYPE dist_rec_type IS RECORD (
23    account_class          RA_INTERFACE_DISTRIBUTIONS_ALL.account_class%TYPE,
24    dist_amount            OKL_TRNS_ACC_DSTRS.amount%TYPE,
25    dist_percent           OKL_TRNS_ACC_DSTRS.percentage%TYPE,
26    code_combination_id    OKL_TRNS_ACC_DSTRS.code_combination_id%TYPE);
27 
28 -- rmunjulu R12 Fixes
29 TYPE dist_tbl_type IS TABLE OF dist_rec_type INDEX BY BINARY_INTEGER;
30 --
31 ----------------------------------------------------------------------------------
32 -- Start of comments
33 --
34 -- Procedure Name  : get_cust_config_from_line
35 -- Description     : This logic is migrated from okl_stream_billing_pvt
36 -- Business Rules  : irm_id, ibt_id, and customer_bank_account will be
37 --                   overrided if contract line setting exists
38 -- Parameters      :
39 --
40 -- Version         : 1.0
41 -- HISTORY:        : 12-Feb-2008 Bug 6755333 Populate line bill to address only if
42 --                               line level bill to adress is not null
43 -- End of comments
44 ----------------------------------------------------------------------------------
45 
46  PROCEDURE get_cust_config_from_line(
47    p_kle_id                       IN NUMBER
48    ,p_customer_address_id          IN NUMBER
49    ,p_customer_bank_account_id     IN NUMBER
50    ,p_receipt_method_id            IN NUMBER
51    ,x_customer_address_id          OUT NOCOPY NUMBER
52    ,x_customer_bank_account_id     OUT NOCOPY NUMBER
53    ,x_receipt_method_id            OUT NOCOPY NUMBER
54    -- BANK-ACCOUNT-UPTAKE-START
55    ,x_creation_method_code         OUT NOCOPY VARCHAR2
56 	 ,x_bank_line_id1                OUT NOCOPY NUMBER
57    -- BANK-ACCOUNT-UPTAKE-START
58 	 )
59 IS
60     l_return_status	VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
61     -- -----------------------------------------------------
62     -- Variable definitions for line level bill-to_support
63     -- -----------------------------------------------------
64     l_pmth_line_id1                OKC_RULES_B.OBJECT1_ID1%TYPE;
65     l_rct_line_method_code         AR_RECEIPT_CLASSES.CREATION_METHOD_CODE%TYPE;
66     lp_rct_line_method_code         AR_RECEIPT_CLASSES.CREATION_METHOD_CODE%TYPE;
67     l_bank_line_id1                OKC_RULES_B.OBJECT1_ID1%TYPE;
68 
69     l_line_cust_bank_acct_id       OKL_TRX_AR_INVOICES_V.customer_bank_account_id%TYPE;
70     l_line_cust_address_id         OKL_TRX_AR_INVOICES_V.ibt_id%TYPE;
71     l_line_receipt_method_id       OKL_TRX_AR_INVOICES_V.irm_id%TYPE;
72     l_line_term_id                 OKL_TRX_AR_INVOICES_V.irt_id%TYPE;
73 
74     l_khr_id okc_k_headers_b.id%type;
75 
76    CURSOR get_chr_id (p_kle_id NUMBER) IS
77      select dnz_chr_id
78      from okc_k_lines_b
79      where id = p_kle_id;
80 
81   -- nikshah -- Bug # 5484903 Fixed,
82   -- Changed CURSOR line_bill_to_csr SQL definition
83    CURSOR line_bill_to_csr(p_khr_id NUMBER, p_kle_id NUMBER) IS
84         SELECT cs.cust_acct_site_id, cp.standard_terms payment_term_id
85         FROM okc_k_headers_b khr
86            , okx_cust_site_uses_v cs
87            , okc_k_lines_b cle
88            , hz_customer_profiles cp
89         WHERE khr.id = p_khr_id
90         AND cle.dnz_chr_id = khr.id
91         AND cle.chr_id IS NOT NULL
92         AND cle.id = p_kle_id
93         AND cle.BILL_TO_SITE_USE_ID = cs.id1
94         AND khr.bill_to_site_use_id = cp.site_use_id(+)
95         UNION
96         SELECT cs.cust_acct_site_id, cp.standard_terms payment_term_id
97         FROM okc_k_headers_b khr
98            , okc_k_lines_b cle
99            , okc_k_items item
100            , okc_k_lines_b linked_asset
101            , okx_cust_site_uses_v cs
102            , hz_customer_profiles cp
103         WHERE khr.id = p_khr_id
104         AND cle.dnz_chr_id = khr.id
105         AND cle.id = p_kle_id
106         AND cle.chr_id IS NULL
107         AND cle.id = item.cle_id
108         AND item.object1_id1 = linked_asset.id
109         AND linked_asset.BILL_TO_SITE_USE_ID = cs.id1
110         AND khr.bill_to_site_use_id = cp.site_use_id(+);
111 
112    CURSOR cust_line_pmth_csr ( p_khr_id NUMBER, p_kle_id NUMBER ) IS
113         SELECT  object1_id1
114         FROM OKC_RULES_B       rul,
115              Okc_rule_groups_B rgp
116         WHERE rul.rgp_id     = rgp.id                  AND
117               rgp.rgd_code   = 'LABILL'                AND
118               rgp.cle_id     = p_kle_id                AND
119               rul.rule_information_category = 'LAPMTH' AND
120               rgp.dnz_chr_id = p_khr_id
121         UNION
122         SELECT  rul.object1_id1
123         FROM okc_k_lines_b cle
124             , okc_k_items_v item
125             , okc_k_lines_b linked_asset
126             , OKC_RULES_B       rul
127             , Okc_rule_groups_B rgp
128         WHERE cle.dnz_chr_id = p_khr_id                AND
129               cle.id = p_kle_id                        AND
130               cle.chr_id IS NULL                       AND
131               cle.id = item.cle_id                     AND
132               item.object1_id1 = linked_asset.id       AND
133               linked_asset.id = rgp.cle_id             AND
134               linked_asset.dnz_chr_id = rgp.dnz_chr_id AND
135               rgp.rgd_code   = 'LABILL'                AND
136               rul.rgp_id     = rgp.id                  AND
137               rul.rule_information_category = 'LAPMTH';
138 
139     CURSOR rcpt_mthd_csr(p_cust_rct_mthd NUMBER) IS
140  	   SELECT C.RECEIPT_METHOD_ID
141 	   FROM RA_CUST_RECEIPT_METHODS C
142 	   WHERE C.cust_receipt_method_id = p_cust_rct_mthd;
143 
144     -- Bank Account Cursor
145    CURSOR rcpt_method_csr ( p_rct_method_id  NUMBER) IS
146 	   SELECT C.CREATION_METHOD_CODE
147 	   FROM  AR_RECEIPT_METHODS M,
148        		 AR_RECEIPT_CLASSES C
149 	   WHERE  M.RECEIPT_CLASS_ID = C.RECEIPT_CLASS_ID AND
150 	   		  M.receipt_method_id = p_rct_method_id;
151 
152 CURSOR cust_line_bank_csr ( p_khr_id NUMBER, p_kle_id NUMBER ) IS
153         SELECT  object1_id1
154         FROM OKC_RULES_B       rul,
155              Okc_rule_groups_B rgp
156         WHERE rul.rgp_id     = rgp.id                  AND
157               rgp.cle_id     = p_kle_id                AND
158               rgp.rgd_code   = 'LABILL'                AND
159               rul.rule_information_category = 'LABACC' AND
160               rgp.dnz_chr_id = p_khr_id
161         UNION
162         SELECT  rul.object1_id1
163         FROM okc_k_lines_b cle
164             , okc_k_items_v item
165             , okc_k_lines_b linked_asset
166             , OKC_RULES_B       rul
167             , Okc_rule_groups_B rgp
168         WHERE cle.dnz_chr_id = p_khr_id                AND
169               cle.id = p_kle_id                        AND
170               cle.chr_id IS NULL                       AND
171               cle.id = item.cle_id                     AND
172               item.object1_id1 = linked_asset.id       AND
173               linked_asset.id = rgp.cle_id             AND
174               linked_asset.dnz_chr_id = rgp.dnz_chr_id AND
175               rgp.rgd_code   = 'LABILL'                AND
176               rul.rgp_id     = rgp.id                  AND
177               rul.rule_information_category = 'LABACC';
178 
179    CURSOR bank_acct_csr(p_id1 NUMBER) IS
180 	   SELECT bank_account_id
181 	   FROM OKX_RCPT_METHOD_ACCOUNTS_V
182 	   WHERE id1 = p_id1;
183 
184 BEGIN
185 
186     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
187       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','p_kle_id:'||p_kle_id);
188       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','p_customer_address_id:'||p_customer_address_id);
189       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','p_customer_bank_account_id:'||p_customer_bank_account_id);
190       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','p_receipt_method_id:'||p_receipt_method_id);
191     END IF;
192 
193      -- assign to out parameters 1st
194      x_customer_address_id        := p_customer_address_id;
195      x_customer_bank_account_id   := p_customer_bank_account_id;
196      x_receipt_method_id          := p_receipt_method_id;
197 
198      -- -------------------------------------------------------
199      -- Get bill-to_site and payment term, receipt method and
200      -- bank account id
201      -- -------------------------------------------------------
202      l_line_cust_address_id   := NULL;
203      l_line_term_id           := NULL;
204 
205      OPEN  rcpt_method_csr (p_receipt_method_id);
206      FETCH rcpt_method_csr INTO l_rct_line_method_code;
207      CLOSE rcpt_method_csr;
208 
209      -- BANK-ACCOUNT-UPTAKE-START
210      x_creation_method_code := l_rct_line_method_code;
211      -- BANK-ACCOUNT-UPTAKE-END
212 
213      IF (p_kle_id IS NOT NULL AND p_kle_id <> okl_api.g_miss_num) THEN
214 
215 		    OPEN  get_chr_id(p_kle_id);
216         FETCH get_chr_id INTO l_khr_id;
217         CLOSE get_chr_id;
218 
219 		    OPEN  line_bill_to_csr(l_khr_id, p_kle_id );
220         FETCH line_bill_to_csr INTO l_line_cust_address_id, l_line_term_id;
221         CLOSE line_bill_to_csr;
222 
223 				IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
224 					fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','l_khr_id:'||l_khr_id);
225 					fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','l_line_cust_address_id:'||l_line_cust_address_id);
226 					fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','l_line_term_id:'||l_line_term_id);
227 				END IF;
228 
229 
230       --  IF l_line_cust_address_id IS NOT NULL THEN --sosharma commented bug 6788194
231 
232             l_pmth_line_id1          := NULL;
233             l_line_receipt_method_id := NULL;
234           --  l_rct_line_method_code   := NULL;
235             l_bank_line_id1          := NULL;
236 
237             OPEN  cust_line_pmth_csr (l_khr_id, p_kle_id );
238             FETCH cust_line_pmth_csr INTO l_pmth_line_id1;
239             CLOSE cust_line_pmth_csr;
240 
241             OPEN  rcpt_mthd_csr( l_pmth_line_id1 );
242             FETCH rcpt_mthd_csr INTO l_line_receipt_method_id;
243             CLOSE rcpt_mthd_csr;
244 
245             OPEN  rcpt_method_csr (l_line_receipt_method_id);
246 	        FETCH rcpt_method_csr INTO lp_rct_line_method_code;
247 	        CLOSE rcpt_method_csr;
248 
249             -- BANK-ACCOUNT-UPTAKE-START
250             -- sosharma changes for setting variables only if valus is prsent
251          IF lp_rct_line_method_code IS NOT NULL THEN
252             x_creation_method_code := lp_rct_line_method_code;
253             l_rct_line_method_code:=lp_rct_line_method_code;
254          END IF;
255             -- BANK-ACCOUNT-UPTAKE-END
256             IF (l_rct_line_method_code <> 'MANUAL') THEN
257               OPEN  cust_line_bank_csr ( l_khr_id, p_kle_id );
258               FETCH cust_line_bank_csr INTO l_bank_line_id1;
259               CLOSE cust_line_bank_csr;
260           -- sosharma changes for setting variables only if value is prsent
261         IF l_bank_line_id1 IS NOT NULL THEN
262 							  x_bank_line_id1 := l_bank_line_id1;
263          END IF;
264 
265 			  OPEN 	bank_acct_csr( l_bank_line_id1 );
266 			  FETCH bank_acct_csr INTO l_line_cust_bank_acct_id;
267 			  CLOSE bank_acct_csr;
268 	        END IF;
269 
270         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
271           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','l_pmth_line_id1:'||l_pmth_line_id1);
272           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','l_line_receipt_method_id:'||l_line_receipt_method_id);
273           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','l_rct_line_method_code:'||l_rct_line_method_code);
274           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','l_bank_line_id1:'||l_bank_line_id1);
275           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','l_line_cust_address_id:'||l_line_cust_address_id);
276         END IF;
277 
278 
279         -- END IF;-- sosharma commented bug 6788194
280 
281 				-- Bug 6755333
282 				-- Populate line cust address id and line receipt method
283         IF l_line_cust_address_id IS NOT NULL THEN -- rmunjulu bug 5594606 added
284 
285           x_customer_address_id := l_line_cust_address_id;  -- rmunjulu R12 Fixes -- added
286         END IF;
287 
288 				IF l_line_receipt_method_id IS NOT NULL THEN
289           x_receipt_method_id := l_line_receipt_method_id; -- rmunjulu bug 5594606 -- l_ext_receipt_method_id; -- rmunjulu R12 Fixes -- added
290         END IF;
291 
292         IF l_line_cust_bank_acct_id IS NOT NULL THEN
293           x_customer_bank_account_id := l_line_cust_bank_acct_id;
294         END IF;
295 
296      END IF; --IF p_kle_id IS NOT NULL THEN
297 
298       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
299         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','x_customer_address_id:'||x_customer_address_id);
300         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','x_receipt_method_id:'||x_receipt_method_id);
301         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_cust_config_from_line.debug','x_customer_bank_account_id:'||x_customer_bank_account_id);
302       END IF;
303 
304 EXCEPTION
305     WHEN OTHERS THEN
306         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
307                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Failure in get_cust_config_from_line');
308         END IF;
309 
310         IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
311             FND_LOG.STRING(FND_LOG.LEVEL_EXCEPTION,'okl_arintf_pvt',
312                'EXCEPTION :'||'OTHERS');
313         END IF;
314 
315 END get_cust_config_from_line;
316 --
317 
318 ----------------------------------------------------------------------------------
319 -- Start of comments
320 --
321 -- Procedure Name  : nullout_rec_method
322 -- Description     : This logic is migrated from okl_internal_to_external
323 -- Business Rules  :
324 -- Parameters      :
325 --
326 -- Version         : 1.0
327 --  added p_payment_trxn_extension_id and x_payment_trxn_extension_id  parameters for bug 6788231
328 --
329 -- End of comments
330 ----------------------------------------------------------------------------------
331  PROCEDURE nullout_rec_method(
332     p_contract_id                  IN NUMBER
333    ,p_Quote_number                 IN NUMBER
334    ,p_sty_id                       IN NUMBER
335    ,p_customer_bank_account_id     IN NUMBER
336    ,p_receipt_method_id            IN NUMBER -- irm_id
337    ,p_payment_trxn_extension_id    IN NUMBER
338    ,x_customer_bank_account_id     OUT NOCOPY NUMBER
339    ,x_receipt_method_id            OUT NOCOPY NUMBER
340    ,x_payment_trxn_extension_id    OUT NOCOPY NUMBER
341  )
342 IS
343     l_return_status	VARCHAR2(3) := OKL_API.G_RET_STS_SUCCESS;
344     lx_remrkt_sty_id number;
345 
346 BEGIN
347       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
348         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','p_contract_id:'||p_contract_id);
349         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','p_Quote_number:'||p_Quote_number);
350         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','p_sty_id:'||p_sty_id);
351         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','p_customer_bank_account_id:'||p_customer_bank_account_id);
352         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','p_receipt_method_id:'||p_receipt_method_id);
353         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','p_payment_trxn_extension_id:'||p_payment_trxn_extension_id);
354       END IF;
355 
356       IF p_contract_id IS NOT NULL THEN
357         --bug 5160519 : Sales Order Billing
358         -- Order Management sales for remarketing, these billing details are
359         --purely from the Order, so if payment method,Bank Account is not passed,
360         --then pass as NULL.
361 
362         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
363           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','calling Okl_Streams_Util.get_primary_stream_type');
364         END IF;
365         --get primary stream type for remarketing stream
366         Okl_Streams_Util.get_primary_stream_type(p_contract_id,
367                                                 'ASSET_SALE_RECEIVABLE',
368                                                  l_return_status,
369                                                  lx_remrkt_sty_id);
370         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
371           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','Okl_Streams_Util.get_primary_stream_type returned l_return_status:'||l_return_status||' and lx_remrkt_sty_id:'||lx_remrkt_sty_id);
372         END IF;
373         IF l_return_status = Okl_Api.g_ret_sts_success THEN
374 
375           IF(lx_remrkt_sty_id = p_sty_id) THEN
376 
377             x_customer_bank_account_id := NULL;
378             x_receipt_method_id := NULL;
379 	    x_payment_trxn_extension_id:=NULL; -- added for bug 6788231
380           ELSE
381             x_customer_bank_account_id := p_customer_bank_account_id;
382             x_receipt_method_id        := p_receipt_method_id;
383             x_payment_trxn_extension_id:= p_payment_trxn_extension_id;
384             IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
385               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','x_customer_bank_account_id:'||x_customer_bank_account_id);
386               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','x_receipt_method_id:'||x_receipt_method_id);
387               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','x_payment_trxn_extension_id:'||x_payment_trxn_extension_id);
388             END IF;
389           END IF;
390         END IF;
391 
392         --bug 5160519 : end
393 
394         --bug 5160519 : Lease Vendor Billing
395         --  For termination quote to  Lease Vendor AND repurchase quote to Lease Vendor
396         -- on VPA...the payment method should be taken from the Vendor Billing Details,
397         -- if NULL, then as per above, pass nothing to AR and let AR default to Primary
398         -- payment method
399 
400         IF p_Quote_number IS NOT NULL THEN
401           -- if termination record
402           x_receipt_method_id := NULL;
403           x_customer_bank_account_id := NULL;
404           x_payment_trxn_extension_id:=NULL; -- added for bug 6788231
405         ELSE
406           x_customer_bank_account_id := p_customer_bank_account_id;
407           x_receipt_method_id := p_receipt_method_id;
408           x_payment_trxn_extension_id:= p_payment_trxn_extension_id; -- added for bug 6788231
409           IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
410             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','x_customer_bank_account_id:'||x_customer_bank_account_id);
411             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','x_receipt_method_id:'||x_receipt_method_id);
412             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.nullout_rec_method.debug','x_payment_trxn_extension_id:'||x_payment_trxn_extension_id);
413           END IF;
414         END IF;
415       -- If p_contract_id IS NULL then, return the same values as passed into the procedure
416 			ELSE
417           x_customer_bank_account_id := p_customer_bank_account_id;
418           x_receipt_method_id := p_receipt_method_id;
419           x_payment_trxn_extension_id:= p_payment_trxn_extension_id;
420       END IF; -- IF p_contract_id IS NOT NULL THEN
421         --bug 5160519:end
422 
423         --bug 5160519
424         --if not remarketing invoice
425 
426 
427 EXCEPTION
428     WHEN OTHERS THEN
429         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
430                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Failure in nullout_rec_method');
431         END IF;
432 
433         IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
434             FND_LOG.STRING(FND_LOG.LEVEL_EXCEPTION,'okl_arintf_pvt',
435                'EXCEPTION :'||'OTHERS');
436         END IF;
437 
438 END nullout_rec_method;
439 
440 ----------------------------------------------------------------------------------
441 -- Start of comments
442 --
443 -- Procedure Name  : Get_chr_inv_grp
444 -- Description     :
445 -- Business Rules  :
446 -- Parameters      :
447 --
448 -- Version         : 1.0
449 -- End of comments
450 ----------------------------------------------------------------------------------
451  PROCEDURE Get_chr_inv_grp(
452     p_inf_id                       IN NUMBER
453    ,p_sty_id                       IN NUMBER
454    ,x_group_by_contract_yn         OUT NOCOPY VARCHAR2
455    ,x_contract_level_yn            OUT NOCOPY VARCHAR2
456    ,x_group_asset_yn               OUT NOCOPY VARCHAR2
457    ,x_invoice_group                OUT NOCOPY VARCHAR2
458  )
459 is
460 
461     CURSOR inv_format_csr ( p_format_id IN NUMBER, p_stream_id IN NUMBER ) IS
462 		      SELECT  inf.contract_level_yn, -- Multi-contract Y/N
463 					  ity.group_by_contract_yn,  -- Provide Contract Details
464                       ity.group_asset_yn, -- Combine Assets
465                       inf.name -- invoice group
466 	           FROM   okl_invoice_formats_v   inf,
467 			          okl_invoice_types_v     ity,
468        			      okl_invc_line_types_v   ilt,
469        			      okl_invc_frmt_strms_v   frs,
470        			      okl_strm_type_v         sty
471 		      WHERE   inf.id                  = ity.inf_id
472 		      AND     ity.inf_id              = p_format_id
473 		      AND     ilt.ity_id              = ity.id
474 		      AND     frs.ilt_id              = ilt.id
475 		      AND     sty.id                  = frs.sty_id
476 		      AND	  frs.sty_id		      = p_stream_id;
477 
478     --Bug# 10123867: Modified inv_format_default_csr to fetch
479     --               the default values correctly
480     CURSOR inv_format_default_csr ( p_format_id IN NUMBER ) IS
481               SELECT  inf.contract_level_yn, -- Multi-contract Y/N
482                       ity.group_by_contract_yn,  -- Provide Contract Details
483                       ity.group_asset_yn, -- Combine Assets
484                       inf.name -- invoice group
485               FROM    okl_invoice_formats_v   inf,
486                       okl_invoice_types_v     ity,
487                       okl_invc_line_types_v   ilt
488               WHERE   inf.id     = p_format_id
489               AND     ity.inf_id = inf.id
490               AND     ilt.ity_id = ity.id
491               AND     inf.ilt_id = ilt.id;
492 
493 begin
494 
495   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
496     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_chr_inv_grp.debug','p_inf_id:'||p_inf_id);
497     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_chr_inv_grp.debug','p_sty_id:'||p_sty_id);
498   END IF;
499 
500   IF p_inf_id IS NOT NULL and p_sty_id IS NOT NULL THEN
501 
502     OPEN inv_format_csr ( p_inf_id, p_sty_id);
503     FETCH inv_format_csr INTO x_contract_level_yn,
504 	                          x_group_by_contract_yn,
505 	                          x_group_asset_yn,
506 	                          x_invoice_group;
507     CLOSE inv_format_csr;
508 
509     --Bug# 10123867: If stream type has not been defined in the Invoice Group,
510     --               then fetch the values using Default Invoice Line Type
511     IF x_invoice_group IS NULL THEN
512       OPEN inv_format_default_csr ( p_inf_id);
513       FETCH inv_format_default_csr INTO x_contract_level_yn,
514 	                                  x_group_by_contract_yn,
515           	                            x_group_asset_yn,
516         	                            x_invoice_group;
517       CLOSE inv_format_default_csr;
518     END IF;
519 
520   ELSIF p_inf_id IS NOT NULL and p_sty_id IS NULL THEN
521 
522     OPEN inv_format_default_csr ( p_inf_id);
523     FETCH inv_format_default_csr INTO x_contract_level_yn,
524 	                                  x_group_by_contract_yn,
525         	                          x_group_asset_yn,
526         	                          x_invoice_group;
527     CLOSE inv_format_default_csr;
528 
529   ELSE
530 
531     x_group_by_contract_yn := NULL;
532     x_contract_level_yn := NULL;
533     x_group_asset_yn := NULL;
534     x_invoice_group := NULL;
535 
536   END IF;
537 
538   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
539     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_chr_inv_grp.debug','x_group_by_contract_yn:'||x_group_by_contract_yn);
540     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_chr_inv_grp.debug','x_contract_level_yn:'||x_contract_level_yn);
541     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_chr_inv_grp.debug','x_group_asset_yn:'||x_group_asset_yn);
542     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_chr_inv_grp.debug','x_invoice_group:'||x_invoice_group);
543   END IF;
544 
545 EXCEPTION
546     WHEN OTHERS THEN
547         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
548                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Failure in Get_chr_inv_grp');
549         END IF;
550 
551         IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
552             FND_LOG.STRING(FND_LOG.LEVEL_EXCEPTION,'okl_arintf_pvt',
553                'EXCEPTION :'||'OTHERS');
554         END IF;
555 
556 end Get_chr_inv_grp;
557 
558 ----------------------------------------------------------------------------------
559 -- Start of comments
560 --
561 -- Procedure Name  : Get_acct_disb
562 -- Description     :
563 -- Business Rules  :
564 -- Parameters      :
565 --
566 -- Version         : 1.0
567 -- rmunjulu : R12 Fixes - changed the out parameters to table type
568 -- End of comments
569 ----------------------------------------------------------------------------------
570  PROCEDURE Get_acct_disb(
571    p_tld_id               IN NUMBER
572    --Bug# 10160494
573    ,p_cust_trx_type_id IN NUMBER
574    ,x_dist_tbl             OUT NOCOPY dist_tbl_type
575    --,x_account_class        OUT NOCOPY VARCHAR2
576    --,x_dist_amount          OUT NOCOPY VARCHAR2
577    --,x_dist_percent         OUT NOCOPY VARCHAR2
578    --,x_code_combination_id  OUT NOCOPY VARCHAR2
579  )
580 is
581 
582         -- Selects distributions created by the accounting Engine
583         CURSOR acc_dstrs_csr(p_source_id IN NUMBER,   p_source_table IN VARCHAR2) IS
584         SELECT cr_dr_flag,
585                code_combination_id,
586                source_id,
587                amount,
588                percentage,
589         --Start code changes for rev rec by fmiao on 10/05/2004
590                NVL(comments,   '-99') comments --End code changes for rev rec by fmiao on 10/05/2004
591         FROM okl_trns_acc_dstrs
592         WHERE source_id = p_source_id
593         AND source_table = p_source_table;
594 
595 i NUMBER := 1; -- rmunjulu R12 Fixes
596 l_account_class varchar2(150); -- rmunjulu R12 Fixes
597 
598   --Bug# 10160494
599   CURSOR cust_trx_type_csr(p_cust_trx_type_id IN NUMBER) IS
600   SELECT type
601   FROM ra_cust_trx_types
602   WHERE cust_trx_type_id = p_cust_trx_type_id;
603 
604   l_type ra_cust_trx_types.type%type;
605   --Bug# 10160494
606 
607 BEGIN
608     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
609       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','p_tld_id:'||p_tld_id);
610     END IF;
611 -- rmunjulu R12 Fixes -- modified code to populate the new out TBL type
612 
613 -- rmunjulu R12 Fixes -- modified code to populate x_dist_tbl with values from cursor
614 
615       --Bug# 10160494
616       l_type := NULL;
617       OPEN cust_trx_type_csr(p_cust_trx_type_id => p_cust_trx_type_id);
618       FETCH cust_trx_type_csr INTO l_type;
619       CLOSE cust_trx_type_csr;
620       --Bug# 10160494
621 
622       FOR acc_dtls_rec IN acc_dstrs_csr(p_tld_id, 'OKL_TXD_AR_LN_DTLS_B') LOOP
623 
624         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
625           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','acc_dtls_rec.cr_dr_flag'||acc_dtls_rec.cr_dr_flag);
626           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','acc_dtls_rec.code_combination_id'||acc_dtls_rec.code_combination_id);
627           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','acc_dtls_rec.source_id'||acc_dtls_rec.source_id);
628           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','acc_dtls_rec.amount'||acc_dtls_rec.amount);
629           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','acc_dtls_rec.percentage'||acc_dtls_rec.percentage);
630           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','acc_dtls_rec.comments'||acc_dtls_rec.comments);
631         END IF;
632         -- rmunjulu R12 Fixes -- commented and moved below
633         --x_dist_tbl(i).code_combination_id := acc_dtls_rec.code_combination_id;
634         --x_dist_tbl(i).dist_amount := acc_dtls_rec.amount;
635         --x_dist_tbl(i).dist_percent := acc_dtls_rec.percentage;
636 
637         -- rmunjulu R12 Fixes Use local variable for l_account_class
638         -- Bug 9464082 - Added if condition for Credit Memo
639         --Bug# 10160494: Replaced logic added by Bug 9464082 with the
640         --               below logic to determine Rec and Rev accounts
641         IF l_type = 'INV' THEN
642           IF(acc_dtls_rec.cr_dr_flag = 'C') THEN
643             --x_dist_tbl(i).account_class := 'REV'; -- rmunjulu R12 Fixes
644             l_account_class := 'REV'; -- rmunjulu R12 Fixes
645           ELSE
646             --x_dist_tbl(i).account_class := 'REC'; -- rmunjulu R12 Fixes
647             l_account_class := 'REC'; -- rmunjulu R12 Fixes
648           END IF;
649         ELSIF l_type = 'CM' THEN
650           IF(acc_dtls_rec.cr_dr_flag = 'C') THEN
651             --x_dist_tbl(i).account_class := 'REC'; -- rmunjulu R12 Fixes
652             l_account_class := 'REC'; -- rmunjulu R12 Fixes
653           ELSE
654             --x_dist_tbl(i).account_class := 'REV'; -- rmunjulu R12 Fixes
655             l_account_class := 'REV'; -- rmunjulu R12 Fixes
656           END IF;
657         END IF;
658         --Bug# 10160494
659 
660         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
661           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','l_account_class'||l_account_class);
662         END IF;
663 
664         --Start code changes for rev rec by fmiao on 10/05/2004
665         -- rmunjulu R12 Fixes, modified the condition to create
666         -- distributions only in case of REV
667 
668         -- Bug# 9890065 - Ensure that cash basis distributions pass only 3 REC, REV and UNEARN
669         IF (((acc_dtls_rec.comments = 'CASH_RECEIPT'
670            AND l_account_class <> 'REC') OR(acc_dtls_rec.comments <> 'CASH_RECEIPT'))) THEN
671 
672            -- rmunjulu R12 Fixes moved to here from above
673            x_dist_tbl(i).code_combination_id := acc_dtls_rec.code_combination_id;
674            x_dist_tbl(i).dist_amount := acc_dtls_rec.amount;
675            x_dist_tbl(i).dist_percent := acc_dtls_rec.percentage;
676 
677            -- rmunjulu R12 Fixes set account class
678            x_dist_tbl(i).account_class := l_account_class;
679 
680           IF(acc_dtls_rec.comments = 'CASH_RECEIPT') THEN
681             x_dist_tbl(i).account_class := 'UNEARN';
682           END IF;
683 
684           IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
685             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','x_dist_tbl('||i||').code_combination_id:'||x_dist_tbl(i).code_combination_id);
686             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','x_dist_tbl('||i||').dist_amount:'||x_dist_tbl(i).dist_amount);
687             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','x_dist_tbl('||i||').dist_amount:'||x_dist_tbl(i).dist_amount);
688             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','x_dist_tbl('||i||').dist_percent:'||x_dist_tbl(i).dist_percent);
689             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','x_dist_tbl('||i||').account_class:'||x_dist_tbl(i).account_class);
690           END IF;
691          i := i + 1; -- rmunjulu R12 Fixes -- Increment inside IF --nikshah Bug 8238593, incrementing i after below if statement
692       END IF;
693 
694 
695 
696      END LOOP;
697 
698 EXCEPTION
699     WHEN OTHERS THEN
700         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
701                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Failure in Get_acct_disb');
702         END IF;
703 
704         IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
705             FND_LOG.STRING(FND_LOG.LEVEL_EXCEPTION,'okl_arintf_pvt',
706                'EXCEPTION :'||'OTHERS');
707         END IF;
708 
709 end Get_acct_disb;
710 
711 ---------------------------------------------------------------------------
712 -- PROCEDURE get_customer_id from a contract
713 ---------------------------------------------------------------------------
714 
715 PROCEDURE get_customer_id
716   (  l_contract_number IN VARCHAR2
717     ,l_customer_id   OUT NOCOPY NUMBER
718   )
719 IS
720     --modified by pgomes on 21-aug-2003 for rules migration
721     CURSOR get_khr_id_csr ( p_contract_number VARCHAR2 ) IS
722            SELECT cust_acct_id
723            FROM okc_k_headers_b
724            where contract_number = p_contract_number;
725 
726     --commented out by pgomes on 21-aug-2003 for rules migration
727 BEGIN
728       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
729         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','l_contract_number:'||l_contract_number);
730       END IF;
731       --modified by pgomes on 21-aug-2003 for rules migration
732       -- Get the customer acct id
733       OPEN  get_khr_id_csr(l_contract_number);
734       FETCH get_khr_id_csr INTO l_customer_id;
735       CLOSE get_khr_id_csr;
736       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
737         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.Get_acct_disb.debug','l_customer_id:'||l_customer_id);
738       END IF;
739       --commented out by pgomes on 21-aug-2003 for rules migration
740 
741 EXCEPTION
742     WHEN OTHERS THEN
743         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
744                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Failure in Get_Customer_Id');
745         END IF;
746 
747         IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
748             FND_LOG.STRING(FND_LOG.LEVEL_EXCEPTION,'okl_arintf_pvt',
749                'EXCEPTION :'||'OTHERS');
750         END IF;
751 
752 END get_customer_id;
753 
754 PROCEDURE get_vendor_auto_bank_dtls
755   ( p_api_version IN NUMBER,
756    	p_init_msg_list IN VARCHAR2,
757     p_khr_id IN NUMBER,
758    	p_customer_address_id IN NUMBER,
759     p_bank_id IN VARCHAR2,
760     p_trx_date IN DATE,
761     p_receipt_method_id IN NUMBER,
762   	x_receipt_method_id            OUT NOCOPY NUMBER,
763   	x_payment_trxn_extension_id    OUT NOCOPY NUMBER,
764   	x_customer_bank_account_id     OUT NOCOPY NUMBER,
765     x_return_status                OUT NOCOPY VARCHAR2,
766     x_msg_count                    OUT NOCOPY NUMBER,
767     x_msg_data                     OUT NOCOPY VARCHAR2
768 
769   ) IS
770 
771   l_bank_id OKL_TRX_AR_INVOICES_B.CUSTOMER_BANK_ACCOUNT_ID%TYPE := p_bank_id;
772 
773   CURSOR instr_type_csr(p_instr_use_id NUMBER)
774   IS
775   SELECT   ipiu.payment_function
776 		   , fpc.payment_channel_code
777            , ipiu.payment_flow
778   FROM iby_pmt_instr_uses_all ipiu
779       ,iby_fndcpt_pmt_chnnls_vl fpc
780   WHERE instrument_id = p_instr_use_id
781     AND fpc.instrument_type = ipiu.instrument_type;
782 
783   CURSOR chr_dtls_csr (cp_khr_id IN NUMBER)
784   IS
785   SELECT cpr.object1_id1 party_id
786    	   , khr.authoring_org_id org_id
787 	   , khr.cust_acct_id
788 	   , khr.contract_number
789 	   , khr.application_id app_id
790        , khr.BILL_TO_SITE_USE_ID
791        , khr.CURRENCY_CODE
792   FROM OKL_K_HEADERS_FULL_V khr
793 	 , OKC_K_PARTY_ROLES_B CPR
794   WHERE khr.ID = cpr.chr_id
795     AND cpr.rle_code = 'LESSEE'
796 	AND khr.ID = cp_khr_id;
797 
798   --Bug# 10275519: Modifications to fetch Bank Account
799   --               correctly when there are multiple vendors
800   --               on a contract
801   CURSOR c_vendor_bank_csr ( cp_khr_id NUMBER, cp_cust_acct_id NUMBER) IS
802   SELECT  rul.object1_id1
803   FROM OKC_RULES_B       rul,
804   	 Okc_rule_groups_B rgp,
805        Okc_rg_party_roles rpr,
806        Okc_k_party_roles_b cpl
807   WHERE rul.rgp_id     = rgp.id                  AND
808         rgp.rgd_code   = 'LAVENB'                AND
809         rgp.dnz_chr_id = rgp.chr_id              AND
810         rul.rule_information_category = 'LABACC' AND
811         rgp.dnz_chr_id = cp_khr_id               AND
812         rpr.dnz_chr_id = rgp.dnz_chr_id          AND
813         rpr.rgp_id = rgp.id                      AND
814         rpr.cpl_id = cpl.id                      AND
815         cpl.dnz_chr_id = rgp.chr_id              AND
816         cpl.chr_id = rgp.chr_id                  AND
817         cpl.rle_code = 'OKL_VENDOR'              AND
818         cpl.cust_acct_id = cp_cust_acct_id;
819 
820   CURSOR cust_site_use_id_csr (cp_customer_address_id NUMBER) IS
821   Select site_use_id
822   from HZ_CUST_SITE_USES
823   where cust_acct_site_id=cp_customer_address_id
824     and site_use_code = 'BILL_TO';
825 
826   CURSOR c_get_account_details (cp_customer_address_id NUMBER)IS
827   select a.cust_account_id, a.party_id
828   from hz_cust_acct_sites_all s,
829        hz_cust_accounts a
830   where s.cust_acct_site_id = cp_customer_address_id
831     AND s.cust_account_id = a.cust_account_id;
832 
833   -- Bug# 11669781: changed the cursor for adding iby_fndcpt_pmt_chnnls_vl
834 /*  CURSOR instrument_payment_use_id_csr(
835             p_bank_id           iby_pmt_instr_uses_all.instrument_id%TYPE,
836             p_payment_function  iby_pmt_instr_uses_all.payment_function%TYPE,
837             p_party_id          okc_k_party_roles_b.object1_id1%TYPE,
838             p_cust_acct_id      okl_k_headers_full_v.cust_acct_id%TYPE,
839             p_site_use_id       hz_cust_site_uses_all.site_use_id%TYPE,
840             p_org_id            okl_k_headers_full_v.authoring_org_id%TYPE,
841             p_payment_flow      iby_pmt_instr_uses_all.payment_flow%TYPE) IS
842   SELECT instrument_payment_use_id, fpc.payment_channel_code
843   FROM  iby_pmt_instr_uses_all ibyinstr, iby_external_payers_all pay,iby_fndcpt_pmt_chnnls_vl fpc
844   WHERE ibyinstr.instrument_id    = p_bank_id
845   AND   ibyinstr.payment_flow     = p_payment_flow
846   AND   pay.payment_function      = p_payment_function
847   AND   ibyinstr.EXT_PMT_PARTY_ID = pay.EXT_PAYER_ID
848   AND   pay.party_id              = p_party_id
849   AND   NVL(pay.org_id,p_org_id)  = p_org_id
850   AND   pay.cust_account_id       = p_cust_acct_id
851   AND   NVL(pay.acct_site_use_id,p_site_use_id)      = p_site_use_id
852   AND   fpc.instrument_type = ibyinstr.instrument_type;*/
853 
854  -- bug 11886651
855  CURSOR instrument_payment_use_id_csr(
856             p_bank_id           iby_pmt_instr_uses_all.instrument_id%TYPE,
857             p_payment_function  iby_pmt_instr_uses_all.payment_function%TYPE,
858             p_party_id          okc_k_party_roles_b.object1_id1%TYPE,
859             p_cust_acct_id      okl_k_headers_full_v.cust_acct_id%TYPE,
860             p_site_use_id       hz_cust_site_uses_all.site_use_id%TYPE,
861             p_org_id            okl_k_headers_full_v.authoring_org_id%TYPE
862         --   p_payment_flow      iby_pmt_instr_uses_all.payment_flow%TYPE
863 	  ) IS
864   SELECT instr_assignment_id,
865     fpc.payment_channel_code
866   FROM iby_fndcpt_payer_assgn_instr_v ibyinstr,
867     iby_fndcpt_pmt_chnnls_vl fpc
868   WHERE ibyinstr.instrument_id = p_bank_id
869    AND  ibyinstr.payment_function      = p_payment_function
870    AND ibyinstr.party_id = p_party_id
871    AND nvl(ibyinstr.org_id,   p_org_id) = p_org_id
872    AND ibyinstr.cust_account_id = p_cust_acct_id
873    AND nvl(ibyinstr.acct_site_use_id,   p_site_use_id) = p_site_use_id
874    AND nvl(assignment_end_date,   sysdate + 10) > sysdate
875    AND fpc.instrument_type = ibyinstr.instrument_type
876    AND fpc.payment_channel_code in ('BANK_ACCT_XFER','CREDIT_CARD');
877 
878 
879   -- Bug# 11669781: added payment_channel_code
880   l_payment_channel_code  iby_fndcpt_pmt_chnnls_vl.payment_channel_code%type;
881 
882   CURSOR cust_instr_payment_use_id_csr (
883             p_cust_acct_id      okl_k_headers_full_v.cust_acct_id%TYPE,
884             p_site_use_id       hz_cust_site_uses_all.site_use_id%TYPE,
885             p_currency_code     okl_k_headers_full_v.currency_code%type
886             ) IS
887   Select substrb(min(decode(acct_site_use_id, NULL, '2' || to_char(instr_assignment_id),
888                                                 '1' || to_char(instr_assignment_id))), 2)
889   from  IBY_FNDCPT_payer_assgn_instr_v
890   where instrument_type     = 'BANKACCOUNT'
891   and   cust_account_id     = p_cust_acct_id
892   and   p_site_use_id = nvl(acct_site_use_id,p_site_use_id)
893   and   currency_code       = p_currency_code
894   and   order_of_preference =  (select substrb(min(decode(acct_site_use_id, NULL, '2' || to_char(order_of_preference),
895                                      '1' || to_char(order_of_preference))), 2) from  IBY_FNDCPT_payer_assgn_instr_v
896                                      where instrument_type     = 'BANKACCOUNT'
897                                      and   cust_account_id     = p_cust_acct_id
898                                      and   p_site_use_id = nvl(acct_site_use_id,p_site_use_id)
899                                      and   currency_code       = p_currency_code
900                                      and   p_trx_date between NVL(assignment_start_date, p_trx_date)
901                                                                and NVL(assignment_end_date, p_trx_date)
902           )
903   and   p_trx_date between NVL(assignment_start_date,p_trx_date)
904   and NVL(assignment_end_date,p_trx_date);
905 
906   cursor instrument_id_csr (p_instr_payment_use_id iby_pmt_instr_uses_all.instrument_payment_use_id%type)
907   is
908   select instrument_id
909   from iby_pmt_instr_uses_all
910   where instrument_payment_use_id = p_instr_payment_use_id;
911 
912   --Get vendor payment method attached in a contract
913   --Bug# 10275519: Modifications to fetch Payment Method
914   --               correctly when there are multiple vendors
915   --               on a contract
916   CURSOR c_ven_payment_method(p_khr_id NUMBER, p_cust_acct_id NUMBER) IS
917   SELECT  rul.object1_id1
918         FROM OKC_RULES_B       rul,
919              Okc_rule_groups_B rgp,
920              Okc_rg_party_roles rpr,
921              Okc_k_party_roles_b cpl
922         WHERE rul.rgp_id     = rgp.id                  AND
923               rgp.rgd_code   = 'LAVENB'                AND
924               rul.rule_information_category = 'LAPMTH' AND
925               rgp.dnz_chr_id = p_khr_id                AND
926               rpr.dnz_chr_id = rgp.dnz_chr_id          AND
927               rpr.rgp_id = rgp.id                      AND
928               rpr.cpl_id = cpl.id                      AND
929               cpl.dnz_chr_id = rgp.chr_id              AND
930               cpl.chr_id = rgp.chr_id                  AND
931               cpl.rle_code = 'OKL_VENDOR'              AND
932               cpl.cust_acct_id = p_cust_acct_id;
933 
934   CURSOR c_rcpt_mthd(p_payment_method_id NUMBER) IS
935   SELECT C.RECEIPT_METHOD_ID
936   FROM RA_CUST_RECEIPT_METHODS C
937   WHERE C.cust_receipt_method_id = p_payment_method_id;
938 
939   CURSOR c_receipt_method ( p_rct_method_id  NUMBER) IS
940   SELECT C.CREATION_METHOD_CODE, M.PAYMENT_CHANNEL_CODE
941   FROM  AR_RECEIPT_METHODS M,
942   		AR_RECEIPT_CLASSES C
943   WHERE  M.RECEIPT_CLASS_ID = C.RECEIPT_CLASS_ID AND
944   		 M.receipt_method_id = p_rct_method_id;
945 
946   --Get primary active vendor payment method from customer account or from site.
947   CURSOR c_vendor_payment_method(p_cust_acct_id NUMBER, p_site_use_id NUMBER)
948   IS
949   SELECT RM.Payment_channel_code,
950          CRM.CUST_RECEIPT_METHOD_ID,
951          CRM.RECEIPT_METHOD_ID
952   FROM RA_CUST_RECEIPT_METHODS CRM,
953        AR_RECEIPT_METHODS RM
954   WHERE RM.RECEIPT_METHOD_ID = CRM.RECEIPT_METHOD_ID
955     AND customer_id = p_cust_acct_id
956     AND NVL(site_use_id,-101) = NVL(p_site_use_id,-101)
957     AND NVL(CRM.PRIMARY_FLAG,'N') = 'Y'
958     AND NVL(TRUNC(CRM.END_DATE),TRUNC(SYSDATE)) >= TRUNC(SYSDATE);
959 
960   CURSOR c_vendor_payment_instrument(p_party_id NUMBER,
961                                      p_cust_acct_id NUMBER,
962                                      p_site_use_id NUMBER,
963                                      p_instrument_type VARCHAR2)
964   IS
965   SELECT *
966   FROM
967     (
968     SELECT * FROM
969     (SELECT PIU.INSTRUMENT_PAYMENT_USE_ID,
970            PIU.PAYMENT_FUNCTION,
971            PIU.ORDER_OF_PREFERENCE,
972            PIU.PAYMENT_FLOW
973     FROM   IBY_PMT_INSTR_USES_ALL PIU,
974            IBY_CREDITCARD ccard,
975            iby_external_payers_all pay
976     WHERE  ccard.INSTRID = PIU.instrument_id
977        AND PIU.INSTRUMENT_TYPE = p_instrument_type
978        AND sysdate <= NVL(ccard.inactive_date,sysdate)
979        AND PIU.EXT_PMT_PARTY_ID = pay.EXT_PAYER_ID
980        AND PAY.PARTY_ID = p_party_id
981        AND PAY.CUST_ACCOUNT_ID = p_cust_acct_id
982        AND NVL(PAY.ACCT_SITE_USE_ID,-101) = NVL(p_site_use_id,-101)
983        AND PIU.PAYMENT_FUNCTION =  'CUSTOMER_PAYMENT'
984        AND NVL(CCARD.EXPIRED_FLAG,'N') = 'N'
985     UNION
986     SELECT PIU.INSTRUMENT_PAYMENT_USE_ID,
987            PIU.PAYMENT_FUNCTION,
988            PIU.ORDER_OF_PREFERENCE,
989            PIU.PAYMENT_FLOW
990     FROM   IBY_PMT_INSTR_USES_ALL PIU,
991            iby_ext_bank_accounts eb,
992            iby_external_payers_all pay
993     WHERE  PIU.instrument_id = eb.ext_bank_account_id
994        AND PIU.PAYMENT_FUNCTION = 'CUSTOMER_PAYMENT'
995        AND PIU.INSTRUMENT_TYPE = p_instrument_type
996        AND PIU.EXT_PMT_PARTY_ID = pay.EXT_PAYER_ID
997        AND pay.party_id  = p_party_id
998        AND PAY.CUST_ACCOUNT_ID = p_cust_acct_id
999        AND NVL(PAY.ACCT_SITE_USE_ID,-101) = NVL(p_site_use_id,-101)
1000        AND sysdate <= NVL(eb.end_date,sysdate)
1001     ) ORDER BY ORDER_OF_PREFERENCE
1002     )
1003   WHERE ROWNUM = 1;
1004 
1005   chr_dtls_rec chr_dtls_csr%ROWTYPE;
1006   instr_type_rec instr_type_csr%ROWTYPE;
1007   l_vendor_bank_rec c_vendor_bank_csr%ROWTYPE;
1008   l_site_use_id  HZ_CUST_SITE_USES_ALL.SITE_USE_ID%TYPE;
1009   l_instrument_payment_use_id iby_pmt_instr_uses_all.instrument_payment_use_id%type;
1010   l_instrument_id   iby_pmt_instr_uses_all.instrument_id%type;
1011   l_payment_method_id okc_rules_b.object1_id1%type;
1012   l_receipt_method_id RA_CUST_RECEIPT_METHODS.RECEIPT_METHOD_ID%TYPE;
1013   l_creation_method AR_RECEIPT_CLASSES.CREATION_METHOD_CODE%TYPE;
1014   l_vend_pmt_mth_acct_rec c_vendor_payment_method%ROWTYPE;
1015   l_vend_pmt_mth_site_rec c_vendor_payment_method%ROWTYPE;
1016   l_vend_pmt_ins_acct_rec c_vendor_payment_instrument%ROWTYPE;
1017   l_vend_pmt_ins_site_rec c_vendor_payment_instrument%ROWTYPE;
1018   l_vend_acct_pmt_channel_code AR_RECEIPT_METHODS.PAYMENT_CHANNEL_CODE%TYPE DEFAULT NULL;
1019   l_vend_site_pmt_channel_code AR_RECEIPT_METHODS.PAYMENT_CHANNEL_CODE%TYPE DEFAULT NULL;
1020   l_instrument_type IBY_PMT_INSTR_USES_ALL.INSTRUMENT_TYPE%TYPE DEFAULT NULL;
1021   l_vend_payment_channel_code AR_RECEIPT_METHODS.PAYMENT_CHANNEL_CODE%TYPE DEFAULT NULL;
1022 
1023   l_vend_pmt_mth_acct_found BOOLEAN := FALSE;
1024   l_vend_pmt_mth_site_found BOOLEAN := FALSE;
1025   l_vend_pmt_ins_acct_found BOOLEAN := FALSE;
1026   l_vend_pmt_ins_site_found BOOLEAN := FALSE;
1027   l_vendor_bank_rec_found   BOOLEAN := FALSE;
1028 
1029   l_return_status	       VARCHAR2(1);
1030   l_msg_count            NUMBER;
1031   l_msg_data             VARCHAR2(32767);
1032 
1033   l_payer                IBY_FNDCPT_COMMON_PUB.payercontext_rec_type;
1034   l_payer_equivalency    VARCHAR2(500);
1035   l_pmt_channel          IBY_FNDCPT_PMT_CHNNLS_VL.payment_channel_code%TYPE;
1036   l_trxn_attribs         IBY_FNDCPT_TRXN_PUB.trxnextension_rec_type;
1037   l_entity_id            NUMBER;
1038   l_response             IBY_FNDCPT_COMMON_PUB.result_rec_type;
1039   l_true                 VARCHAR2(1) := 'T';
1040   l_cust_acct_id         hz_cust_accounts.cust_account_id%TYPE;
1041   l_party_id             hz_parties.party_id%type;
1042 
1043 BEGIN
1044     x_return_status := Okl_Api.G_RET_STS_SUCCESS;
1045     x_receipt_method_id := p_receipt_method_id;
1046     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1047       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','p_api_version:'||p_api_version);
1048       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','p_init_msg_list:'||p_init_msg_list);
1049       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','p_khr_id:'||p_khr_id);
1050       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','p_customer_address_id:'||p_customer_address_id);
1051       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','p_bank_id:'||p_bank_id);
1052       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','p_trx_date:'||p_trx_date);
1053     END IF;
1054 
1055     -- Fetch contract details
1056 	OPEN chr_dtls_csr (cp_khr_id => p_khr_id);
1057 	FETCH chr_dtls_csr INTO chr_dtls_rec;
1058 	CLOSE chr_dtls_csr;
1059 
1060     --Get site use id based on cust account site id
1061     OPEN cust_site_use_id_csr (p_customer_address_id);
1062 	FETCH cust_site_use_id_csr INTO l_site_use_id;
1063 	CLOSE cust_site_use_id_csr;
1064 
1065     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1066       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_site_use_id:'||l_site_use_id);
1067     END IF;
1068 
1069     --Get cust account id and party id based on cust account site id
1070     OPEN c_get_account_details(p_customer_address_id);
1071     FETCH c_get_account_details INTO l_cust_acct_id,l_party_id;
1072     CLOSE c_get_account_details;
1073 
1074     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1075       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_cust_acct_id:'||l_cust_acct_id);
1076       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_party_id:'||l_party_id);
1077     END IF;
1078 
1079     --Populate payer information record
1080     l_payer.party_id                          := l_party_id;
1081     l_payer.org_type                          := 'OPERATING_UNIT';
1082     l_payer.org_id                            := chr_dtls_rec.org_id;
1083     l_payer.cust_account_id                   := l_cust_acct_id;
1084     l_payer.account_site_id                   := l_site_use_id;
1085 
1086     --Get primary payment method at vendor account level
1087     OPEN c_vendor_payment_method(l_cust_acct_id,NULL);
1088     FETCH c_vendor_payment_method INTO l_vend_pmt_mth_acct_rec;
1089     l_vend_pmt_mth_acct_found := c_vendor_payment_method%FOUND;
1090     CLOSE c_vendor_payment_method;
1091 
1092     --Get highest ordered instrument number for above payment method
1093     --at vendor account level
1094     IF l_vend_pmt_mth_acct_found THEN
1095       l_vend_acct_pmt_channel_code := l_vend_pmt_mth_acct_rec.PAYMENT_CHANNEL_CODE;
1096 
1097       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1098         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_acct_pmt_channel_code:'||l_vend_acct_pmt_channel_code);
1099       END IF;
1100 
1101       IF l_vend_acct_pmt_channel_code = 'BANK_ACCT_XFER' THEN
1102         l_instrument_type := 'BANKACCOUNT';
1103       ELSIF l_vend_acct_pmt_channel_code = 'CREDIT_CARD' THEN
1104         l_instrument_type := 'CREDITCARD';
1105       END IF;
1106       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1107         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_instrument_type:'||l_instrument_type);
1108       END IF;
1109 
1110       IF l_instrument_type IS NOT NULL THEN
1111         OPEN c_vendor_payment_instrument(l_party_id, l_cust_acct_id, NULL, l_instrument_type);
1112         FETCH c_vendor_payment_instrument INTO l_vend_pmt_ins_acct_rec;
1113         l_vend_pmt_ins_acct_found := c_vendor_payment_instrument%FOUND;
1114         CLOSE c_vendor_payment_instrument;
1115       END IF;
1116     END IF;
1117 
1118     --Get primary payment method at vendor account site level
1119     OPEN c_vendor_payment_method(l_cust_acct_id,l_site_use_id);
1120     FETCH c_vendor_payment_method INTO l_vend_pmt_mth_site_rec;
1121     l_vend_pmt_mth_site_found := c_vendor_payment_method%FOUND;
1122     CLOSE c_vendor_payment_method;
1123 
1124     --Get highest ordered instrument number for above payment method
1125     --at vendor account site level
1126     l_instrument_type := NULL;
1127     IF l_vend_pmt_mth_site_found THEN
1128       l_vend_site_pmt_channel_code := l_vend_pmt_mth_site_rec.PAYMENT_CHANNEL_CODE;
1129 
1130       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1131         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_site_pmt_channel_code 1:'||l_vend_site_pmt_channel_code);
1132       END IF;
1133 
1134       IF l_vend_site_pmt_channel_code = 'BANK_ACCT_XFER' THEN
1135         l_instrument_type := 'BANKACCOUNT';
1136       ELSIF l_vend_site_pmt_channel_code = 'CREDIT_CARD' THEN
1137         l_instrument_type := 'CREDITCARD';
1138       END IF;
1139 
1140       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1141         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_instrument_type 1:'||l_instrument_type);
1142       END IF;
1143 
1144       IF l_instrument_type IS NOT NULL THEN
1145         OPEN c_vendor_payment_instrument(l_party_id, l_cust_acct_id, l_site_use_id, l_instrument_type);
1146         FETCH c_vendor_payment_instrument INTO l_vend_pmt_ins_site_rec;
1147         l_vend_pmt_ins_site_found := c_vendor_payment_instrument%FOUND;
1148         CLOSE c_vendor_payment_instrument;
1149       END IF;
1150     END IF;
1151 
1152     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1153       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_bank_id:'||l_bank_id);
1154     END IF;
1155 
1156     IF l_bank_id IS NULL THEN
1157       --Get bank account associated to vendor or vendor account site
1158       --or vendor account. And if not available, throw an error.
1159 
1160       --First get payment method, if any, associated to vendor party details
1161       --in contract
1162       --Bug# 10275519
1163       OPEN c_ven_payment_method(p_khr_id, l_cust_acct_id);
1164       FETCH c_ven_payment_method INTO l_payment_method_id;
1165       CLOSE c_ven_payment_method;
1166 
1167       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1168         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_bank_id IS NULL');
1169         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_payment_method_id:'||l_payment_method_id);
1170       END IF;
1171 
1172       IF l_payment_method_id IS NOT NULL
1173       THEN
1174         --Get creation code from below 2 cursors
1175         OPEN c_rcpt_mthd(l_payment_method_id);
1176         FETCH c_rcpt_mthd INTO l_receipt_method_id;
1177         CLOSE c_rcpt_mthd;
1178 
1179         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1180           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_payment_method_id IS NOT NULL');
1181           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_receipt_method_id:'||l_receipt_method_id);
1182         END IF;
1183 
1184         OPEN c_receipt_method(l_receipt_method_id);
1185         FETCH c_receipt_method INTO l_creation_method, l_vend_payment_channel_code ;
1186         CLOSE c_receipt_method;
1187 
1188         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1189           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_creation_method:'||l_creation_method);
1190           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_payment_channel_code:'||l_vend_payment_channel_code);
1191         END IF;
1192 
1193         --Get instrument ID
1194         --Bug# 10275519
1195         OPEN c_vendor_bank_csr(p_khr_id, l_cust_acct_id);
1196         FETCH c_vendor_bank_csr INTO l_vendor_bank_rec;
1197         l_vendor_bank_rec_found := c_vendor_bank_csr%FOUND;
1198         CLOSE c_vendor_bank_csr;
1199       END IF;
1200     END IF;
1201 
1202     IF l_bank_id IS NOT NULL THEN
1203       -- Bug# 11669781: Commented out instr_type_csr
1204       -- OPEN  instr_type_csr(l_bank_id);
1205       -- FETCH instr_type_csr INTO instr_type_rec;
1206       -- CLOSE instr_type_csr;
1207 
1208       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1209         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_bank_id IS NOT NULL');
1210         -- fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','instr_type_rec.payment_function:'||instr_type_rec.payment_function);
1211         -- fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','instr_type_rec.payment_flow:'||instr_type_rec.payment_flow);
1212         -- fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','instr_type_rec.payment_channel_code:'||instr_type_rec.payment_channel_code);
1213         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','chr_dtls_rec.org_id:'||chr_dtls_rec.org_id);
1214       END IF;
1215  -- bug 11886651
1216      /*  OPEN instrument_payment_use_id_csr(l_bank_id,'CUSTOMER_PAYMENT',l_party_id,
1217                                            l_cust_acct_id,l_site_use_id,
1218                                            chr_dtls_rec.org_id, 'FUNDS_CAPTURE');*/
1219     OPEN instrument_payment_use_id_csr(l_bank_id,'CUSTOMER_PAYMENT',l_party_id,
1220                                            l_cust_acct_id,l_site_use_id,
1221                                            chr_dtls_rec.org_id);
1222       FETCH instrument_payment_use_id_csr     INTO l_instrument_payment_use_id, l_payment_channel_code; -- Bug# 11669781: Added l_payment_channel_code
1223       CLOSE instrument_payment_use_id_csr;
1224 
1225       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1226         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_instrument_payment_use_id:'||l_instrument_payment_use_id);
1227         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_payment_channel_code:'||l_payment_channel_code);
1228       END IF;
1229 
1230       l_payer.payment_function                  := 'CUSTOMER_PAYMENT'; -- Bug# 11669781
1231       l_pmt_channel                             := l_payment_channel_code; --Bug# 11669781
1232     ELSIF l_vendor_bank_rec_found THEN
1233       l_instrument_payment_use_id := l_vendor_bank_rec.object1_id1;
1234 
1235       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1236         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vendor_bank_rec_found');
1237         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_instrument_payment_use_id:'||l_instrument_payment_use_id);
1238       END IF;
1239 
1240       IF l_instrument_payment_use_id IS NULL THEN
1241         -- Write Contract Number in the log so that user can identify
1242         --for which contract it is failing
1243         FND_FILE.PUT_LINE (FND_FILE.LOG, 'Contract Number :'||chr_dtls_rec.contract_number);
1244         fnd_message.set_name('AR', 'AR_RAXTRX-1763');
1245         fnd_msg_pub.add;
1246         RAISE FND_API.G_EXC_ERROR;
1247       END IF;
1248       OPEN instrument_id_csr(l_instrument_payment_use_id);
1249       FETCH instrument_id_csr INTO l_instrument_id;
1250       CLOSE instrument_id_csr;
1251 
1252       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1253         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_instrument_id:'||l_instrument_id);
1254       END IF;
1255 
1256        -- Bug# 11669781: Commented out instr_type_csr
1257       --OPEN  instr_type_csr(l_instrument_id);
1258       --FETCH instr_type_csr INTO instr_type_rec;
1259       --CLOSE instr_type_csr;
1260  -- bug 11886651
1261     /*   OPEN instrument_payment_use_id_csr(l_instrument_id,'CUSTOMER_PAYMENT',l_party_id,
1262                                            l_cust_acct_id,l_site_use_id,
1263                                            chr_dtls_rec.org_id, 'FUNDS_CAPTURE');*/
1264   OPEN instrument_payment_use_id_csr(l_instrument_id,'CUSTOMER_PAYMENT',l_party_id,
1265                                            l_cust_acct_id,l_site_use_id,
1266                                            chr_dtls_rec.org_id);
1267 
1268       FETCH instrument_payment_use_id_csr     INTO l_instrument_payment_use_id, l_payment_channel_code;
1269       CLOSE instrument_payment_use_id_csr;
1270 
1271       l_payer.payment_function                  := 'CUSTOMER_PAYMENT'; -- Bug# 11669781
1272       l_pmt_channel                             := l_payment_channel_code; --Bug# 11669781
1273 
1274       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1275         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_payer.payment_function:'||l_payer.payment_function);
1276         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_pmt_channel:'||l_payment_channel_code);
1277       END IF;
1278 
1279     ELSE --In all other cases, get bank account details defined at account/site level
1280       --If payment method defined in parties tab but not payment instrument
1281       IF l_vend_payment_channel_code IS NOT NULL THEN
1282         --Get instrument for payment channel code derived from
1283         --payment method defined in parties tab
1284 
1285         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1286           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','ELSE IF l_vend_payment_channel_code IS NOT NULL');
1287           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_payment_channel_code:'||l_vend_payment_channel_code);
1288         END IF;
1289 
1290         l_instrument_type := NULL;
1291         IF l_vend_payment_channel_code = 'BANK_ACCT_XFER' THEN
1292           l_instrument_type := 'BANKACCOUNT';
1293         ELSIF l_vend_payment_channel_code = 'CREDIT_CARD' THEN
1294           l_instrument_type := 'CREDITCARD';
1295         END IF;
1296 
1297         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1298           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_instrument_type:'||l_instrument_type);
1299         END IF;
1300 
1301         IF l_instrument_type IS NOT NULL THEN
1302           --Get it from site level
1303           OPEN c_vendor_payment_instrument(l_party_id, l_cust_acct_id, l_site_use_id, l_instrument_type);
1304           FETCH c_vendor_payment_instrument INTO l_vend_pmt_ins_site_rec;
1305           l_vend_pmt_ins_site_found := c_vendor_payment_instrument%FOUND;
1306           CLOSE c_vendor_payment_instrument;
1307 
1308           --Get it from account level
1309           OPEN c_vendor_payment_instrument(l_party_id, l_cust_acct_id, NULL, l_instrument_type);
1310           FETCH c_vendor_payment_instrument INTO l_vend_pmt_ins_acct_rec;
1311           l_vend_pmt_ins_acct_found := c_vendor_payment_instrument%FOUND;
1312           CLOSE c_vendor_payment_instrument;
1313         END IF;
1314 
1315         --Now we got instrument from site and account level both for a payment channel
1316         --derived from payment method defined in parties tab.
1317         l_pmt_channel                             := l_vend_payment_channel_code;
1318         IF l_vend_pmt_ins_site_found THEN
1319           l_payer.payment_function                  := l_vend_pmt_ins_site_rec.payment_function;
1320           l_instrument_payment_use_id               := l_vend_pmt_ins_site_rec.INSTRUMENT_PAYMENT_USE_ID;
1321 
1322         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1323           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_pmt_ins_site_rec.payment_function:'||l_vend_pmt_ins_site_rec.payment_function);
1324           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_pmt_ins_site_rec.INSTRUMENT_PAYMENT_USE_ID:'||l_vend_pmt_ins_site_rec.INSTRUMENT_PAYMENT_USE_ID);
1325         END IF;
1326 
1327         ELSIF l_vend_pmt_ins_acct_found THEN
1328           l_payer.payment_function                  := l_vend_pmt_ins_acct_rec.payment_function;
1329           l_instrument_payment_use_id               := l_vend_pmt_ins_acct_rec.INSTRUMENT_PAYMENT_USE_ID;
1330 
1331         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1332           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_pmt_ins_acct_rec.payment_function:'||l_vend_pmt_ins_acct_rec.payment_function);
1333           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_pmt_ins_acct_rec.INSTRUMENT_PAYMENT_USE_ID:'||l_vend_pmt_ins_acct_rec.INSTRUMENT_PAYMENT_USE_ID);
1334         END IF;
1335 
1336         ELSE
1337           -- Write Contract Number in the log so that user can identify
1338           --for which contract it is failing
1339           FND_FILE.PUT_LINE (FND_FILE.LOG, 'Contract Number :'||chr_dtls_rec.contract_number);
1340           fnd_message.set_name('AR', 'AR_RAXTRX-1763');
1341           fnd_msg_pub.add;
1342           RAISE FND_API.G_EXC_ERROR;
1343         END IF;
1344       --Else payment method is not defined in parties tab
1345       --Hence derive from vendor account or site level
1346       ELSE
1347         IF l_vend_pmt_mth_site_found THEN
1348           IF l_vend_pmt_ins_site_found THEN
1349             l_payer.payment_function                  := l_vend_pmt_ins_site_rec.payment_function;
1350             l_pmt_channel                             := l_vend_site_pmt_channel_code;
1351             l_instrument_payment_use_id               := l_vend_pmt_ins_site_rec.INSTRUMENT_PAYMENT_USE_ID;
1352             x_receipt_method_id                       := l_vend_pmt_mth_site_rec.RECEIPT_METHOD_ID;
1353 
1354             IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1355               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','ELSE l_vend_pmt_mth_site_found and l_vend_pmt_ins_site_found');
1356               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_pmt_ins_site_rec.payment_function:'||l_vend_pmt_ins_site_rec.payment_function);
1357               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_pmt_ins_site_rec.INSTRUMENT_PAYMENT_USE_ID:'||l_vend_pmt_ins_site_rec.INSTRUMENT_PAYMENT_USE_ID);
1358               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_pmt_mth_site_rec.RECEIPT_METHOD_ID:'||l_vend_pmt_mth_site_rec.RECEIPT_METHOD_ID);
1359               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_site_pmt_channel_code:'||l_vend_site_pmt_channel_code);
1360             END IF;
1361 
1362           ELSIF l_vend_pmt_ins_acct_found THEN
1363             l_payer.payment_function                  := l_vend_pmt_ins_acct_rec.payment_function;
1364             l_pmt_channel                             := l_vend_acct_pmt_channel_code;
1365             l_instrument_payment_use_id               := l_vend_pmt_ins_acct_rec.INSTRUMENT_PAYMENT_USE_ID;
1366             x_receipt_method_id                       := l_vend_pmt_mth_acct_rec.RECEIPT_METHOD_ID;
1367 
1368             IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1369               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','ELSE l_vend_pmt_mth_site_found and l_vend_pmt_ins_acct_found');
1370               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_pmt_ins_acct_rec.payment_function:'||l_vend_pmt_ins_acct_rec.payment_function);
1371               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_pmt_ins_acct_rec.INSTRUMENT_PAYMENT_USE_ID:'||l_vend_pmt_ins_acct_rec.INSTRUMENT_PAYMENT_USE_ID);
1372               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_pmt_mth_acct_rec.RECEIPT_METHOD_ID:'||l_vend_pmt_mth_acct_rec.RECEIPT_METHOD_ID);
1373               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_acct_pmt_channel_code:'||l_vend_acct_pmt_channel_code);
1374             END IF;
1375 
1376           END IF;
1377         ELSIF l_vend_pmt_mth_acct_found THEN
1378           IF l_vend_pmt_ins_acct_found THEN
1379             l_payer.payment_function                  := l_vend_pmt_ins_acct_rec.payment_function;
1380             l_pmt_channel                             := l_vend_acct_pmt_channel_code;
1381             l_instrument_payment_use_id               := l_vend_pmt_ins_acct_rec.INSTRUMENT_PAYMENT_USE_ID;
1382             x_receipt_method_id                       := l_vend_pmt_mth_acct_rec.RECEIPT_METHOD_ID;
1383 
1384             IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1385               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','ELSIF l_vend_pmt_mth_acct_found');
1386               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_pmt_ins_acct_rec.payment_function:'||l_vend_pmt_ins_acct_rec.payment_function);
1387               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_pmt_ins_acct_rec.INSTRUMENT_PAYMENT_USE_ID:'||l_vend_pmt_ins_acct_rec.INSTRUMENT_PAYMENT_USE_ID);
1388               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_pmt_mth_acct_rec.RECEIPT_METHOD_ID:'||l_vend_pmt_mth_acct_rec.RECEIPT_METHOD_ID);
1389               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_vend_acct_pmt_channel_code:'||l_vend_acct_pmt_channel_code);
1390             END IF;
1391 
1392           END IF;
1393         END IF;
1394         IF l_instrument_payment_use_id IS NULL THEN
1395           -- Write Contract Number in the log so that user can identify
1396           --for which contract it is failing
1397           FND_FILE.PUT_LINE (FND_FILE.LOG, 'Contract Number :'||chr_dtls_rec.contract_number);
1398           fnd_message.set_name('AR', 'AR_RAXTRX-1763');
1399           fnd_msg_pub.add;
1400           RAISE FND_API.G_EXC_ERROR;
1401         END IF;
1402       END IF;
1403     END IF;
1404 
1405     l_payer_equivalency                       := NULL;
1406 	l_trxn_attribs.originating_application_id := chr_dtls_rec.app_id;
1407 	l_trxn_attribs.order_id                   := chr_dtls_rec.contract_number;
1408 	l_trxn_attribs.po_number                  := NULL;
1409 	l_trxn_attribs.po_line_number             := NULL;
1410 	l_trxn_attribs.trxn_ref_number1           := NULL;
1411 	l_trxn_attribs.trxn_ref_number2           := NULL;
1412 	l_trxn_attribs.instrument_security_code   := NULL;
1413 	l_trxn_attribs.voiceauth_flag             := NULL;
1414 	l_trxn_attribs.voiceauth_code             := NULL;
1415 	l_trxn_attribs.voiceauth_date             := NULL;
1416 	l_trxn_attribs.additional_info            := NULL;
1417 
1418     IF (l_payer_equivalency  IS NULL)
1419 	THEN
1420 	  l_payer_equivalency := 'UPWARD';
1421 	END IF;
1422 
1423       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1424         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','Before call to IBY_FNDCPT_TRXN_PUB.CREATE_TRANSACTION_EXTENSION');
1425         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_instrument_payment_use_id:'||l_instrument_payment_use_id);
1426         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_pmt_channel:'||l_pmt_channel);
1427         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','l_payer.payment_function:'||l_payer.payment_function);
1428       END IF;
1429 
1430 	-- Call to insert the transaction extension through Payments PL/SQL API
1431 	IBY_FNDCPT_TRXN_PUB.CREATE_TRANSACTION_EXTENSION(
1432         p_api_version           => p_api_version,
1433         p_init_msg_list         => p_init_msg_list,
1434         p_commit                => l_true,
1435         x_return_status         => x_return_status,
1436         x_msg_count             => x_msg_count,
1437         x_msg_data              => x_msg_data,
1438         p_payer                 => l_payer,
1439         p_payer_equivalency     => l_payer_equivalency,
1440         p_pmt_channel           => l_pmt_channel,
1441         p_instr_assignment      => l_instrument_payment_use_id, --sosharma bug 6608452
1442         p_trxn_attribs          => l_trxn_attribs,
1443         x_entity_id             => l_entity_id,
1444         x_response              => l_response);
1445 
1446 	IF (x_return_status = 'S') THEN
1447       okl_debug_pub.logmessage('AUTOINVOICE:Transaction Extension Id: '|| l_entity_id);
1448       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1449         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_entity_id:'||l_entity_id);
1450       END IF;
1451       x_payment_trxn_extension_id := l_entity_id;
1452     ELSE
1453       IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1454         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1455       ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1456         RAISE FND_API.G_EXC_ERROR;
1457       END IF;
1458     END IF;
1459 
1460     x_customer_bank_account_id := null;
1461     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1462 	  fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','x_payment_trxn_extension_id:'||x_payment_trxn_extension_id);
1463 	  fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_vendor_auto_bank_dtls.debug','x_customer_bank_account_id:'||x_customer_bank_account_id);
1464 	END IF;
1465 
1466 EXCEPTION
1467   WHEN FND_API.G_EXC_ERROR THEN
1468     x_return_status := OKL_API.G_RET_STS_ERROR;
1469     FND_MSG_PUB.Count_And_Get
1470       (p_count         =>      x_msg_count,
1471        p_data          =>      x_msg_data);
1472 
1473   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1474     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1475     FND_MSG_PUB.Count_And_Get
1476       (p_count         =>      x_msg_count,
1477        p_data          =>      x_msg_data);
1478 
1479   WHEN OTHERS THEN
1480     x_return_status   :=  Okl_Api.G_RET_STS_ERROR;
1481     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1482             OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, SQLERRM);
1483     END IF;
1484 END get_vendor_auto_bank_dtls;
1485 
1486 	---------------------------------------------------------------------------
1487 	-- PROCEDURE get_auto_bank_dtls
1488 	----------------------------------------------------------------------------------
1489 	-- Start of comments
1490 	--
1491 	-- Procedure Name  : get_auto_bank_dtls
1492 	-- Description     : Moved the code to derive the Payment Transaction Extension ID
1493 	--                   into a separate procedure
1494 	-- Business Rules  : Derives the Payment Transaction Extension ID from IBY
1495 	-- Parameters      :
1496 	--
1497 	-- Version         : 1.0
1498 	-- HISTORY:        : schodava 25-Feb-08 created
1499 	-- End of comments
1500 	----------------------------------------------------------------------------------
1501   PROCEDURE get_auto_bank_dtls
1502   ( p_api_version IN NUMBER,
1503    	p_init_msg_list IN VARCHAR2,
1504 	   p_khr_id IN NUMBER,
1505    	p_customer_address_id IN NUMBER,
1506     p_bank_id IN VARCHAR2,
1507     p_trx_date IN DATE,
1508   		x_payment_trxn_extension_id OUT NOCOPY NUMBER,
1509   		x_customer_bank_account_id OUT NOCOPY NUMBER,
1510     x_return_status                OUT NOCOPY VARCHAR2,
1511     x_msg_count                    OUT NOCOPY NUMBER,
1512     x_msg_data                     OUT NOCOPY VARCHAR2
1513 
1514   ) IS
1515 		 -- BANK-ACCOUNT-UPTAKE-START
1516     l_bank_id              okc_rules_b.object1_id1%TYPE := NULL;
1517 		l_return_status	       VARCHAR2(1);
1518 		l_msg_count            NUMBER;
1519 		l_msg_data             VARCHAR2(32767);
1520 
1521 		l_payer                IBY_FNDCPT_COMMON_PUB.payercontext_rec_type;
1522 		l_payer_equivalency    VARCHAR2(500);
1523 		l_pmt_channel          IBY_FNDCPT_PMT_CHNNLS_VL.payment_channel_code%TYPE;
1524 		l_trxn_attribs         IBY_FNDCPT_TRXN_PUB.trxnextension_rec_type;
1525 		l_entity_id            NUMBER;
1526 		l_response             IBY_FNDCPT_COMMON_PUB.result_rec_type;
1527 		-- This values based on global variables from FND_API G_TRUE and G_FALSE;
1528 		l_true                 VARCHAR2(1) := 'T';
1529 		l_cust_acct_id         hz_cust_accounts.cust_account_id%TYPE;
1530 		l_party_id             hz_parties.party_id%type;
1531 
1532 		CURSOR instr_type_csr(p_instr_use_id NUMBER)
1533 		IS
1534 		SELECT   ipiu.payment_function
1535 			   , fpc.payment_channel_code
1536                , ipiu.payment_flow
1537 			FROM iby_pmt_instr_uses_all ipiu
1538 				 ,  iby_fndcpt_pmt_chnnls_vl fpc
1539 			WHERE instrument_id = p_instr_use_id
1540 			AND fpc.instrument_type = ipiu.instrument_type;
1541 
1542 		instr_type_rec instr_type_csr%ROWTYPE;
1543 
1544 		CURSOR chr_dtls_csr (cp_khr_id IN NUMBER)
1545 		IS
1546 			SELECT cpr.object1_id1 party_id
1547 					 , khr.authoring_org_id org_id
1548 					 , khr.cust_acct_id
1549 					 , khr.contract_number
1550 					 , khr.application_id app_id
1551       , khr.BILL_TO_SITE_USE_ID
1552       , khr.CURRENCY_CODE
1553 			FROM OKL_K_HEADERS_FULL_V khr
1554 				 , OKC_K_PARTY_ROLES_B CPR
1555 			WHERE khr.ID = cpr.chr_id
1556 				AND cpr.rle_code = 'LESSEE'
1557 				AND khr.ID = cp_khr_id;
1558 		chr_dtls_rec chr_dtls_csr%ROWTYPE;
1559 
1560 	  -- Fetch the Contract Level Bank Id
1561 	  CURSOR cust_bank_csr ( cp_khr_id NUMBER ) IS
1562 					SELECT  object1_id1
1563 					FROM OKC_RULES_B       rul,
1564 							 Okc_rule_groups_B rgp
1565 					WHERE rul.rgp_id     = rgp.id                  AND
1566 								rgp.rgd_code   = 'LABILL'                AND
1567 								rgp.dnz_chr_id = rgp.chr_id              AND
1568 								rul.rule_information_category = 'LABACC' AND
1569 								rgp.dnz_chr_id = cp_khr_id;
1570 		cust_bank_rec cust_bank_csr%ROWTYPE;
1571 
1572 
1573     -- BANK-ACCOUNT-UPTAKE-END
1574     -- gboomina modified for bug 6832065 - Start
1575     -- Cursor to get site use id
1576     CURSOR cust_site_use_id_csr (cp_customer_address_id NUMBER) IS
1577       Select site_use_id
1578       from HZ_CUST_SITE_USES
1579       where cust_acct_site_id=cp_customer_address_id
1580       and site_use_code = 'BILL_TO';
1581   		l_site_use_id  HZ_CUST_SITE_USES_ALL.SITE_USE_ID%TYPE;
1582     -- gboomina modified for bug 6832065 - End
1583 
1584     CURSOR c_get_account_details (cp_customer_address_id NUMBER)IS
1585      select a.cust_account_id, a.party_id
1586      from hz_cust_acct_sites_all s,
1587           hz_cust_accounts a
1588      where s.cust_acct_site_id = cp_customer_address_id
1589        AND s.cust_account_id = a.cust_account_id;
1590 
1591 
1592 --sosharma bug 6608452
1593 
1594  -- sosharma 10167846  changed the cursor for adding iby_fndcpt_pmt_chnnls_vl
1595     --instrument_payment_use_id to be passed to IBY Bug 7162253
1596  /*   CURSOR instrument_payment_use_id_csr(
1597             p_payment_function  iby_pmt_instr_uses_all.payment_function%TYPE,
1598             p_party_id          okc_k_party_roles_b.object1_id1%TYPE,
1599             p_cust_acct_id      okl_k_headers_full_v.cust_acct_id%TYPE,
1600             p_site_use_id       hz_cust_site_uses_all.site_use_id%TYPE,
1601             p_org_id            okl_k_headers_full_v.authoring_org_id%TYPE,
1602             p_payment_flow      iby_pmt_instr_uses_all.payment_flow%TYPE) IS
1603     SELECT instrument_payment_use_id,fpc.payment_channel_code
1604     FROM  iby_pmt_instr_uses_all ibyinstr, iby_external_payers_all pay,iby_fndcpt_pmt_chnnls_vl fpc
1605     WHERE ibyinstr.instrument_id    = p_bank_id
1606     AND   ibyinstr.payment_flow     = p_payment_flow
1607     AND   pay.payment_function      = p_payment_function
1608     AND   ibyinstr.EXT_PMT_PARTY_ID = pay.EXT_PAYER_ID
1609     AND   pay.party_id              = p_party_id
1610     AND   NVL(pay.org_id,p_org_id)  = p_org_id
1611     AND   pay.cust_account_id       = p_cust_acct_id
1612     AND   NVL(pay.acct_site_use_id,p_site_use_id)      = p_site_use_id
1613     AND fpc.instrument_type = ibyinstr.instrument_type;*/
1614 
1615      -- bug 11886651
1616  CURSOR instrument_payment_use_id_csr(
1617             p_payment_function  iby_pmt_instr_uses_all.payment_function%TYPE,
1618             p_party_id          okc_k_party_roles_b.object1_id1%TYPE,
1619             p_cust_acct_id      okl_k_headers_full_v.cust_acct_id%TYPE,
1620             p_site_use_id       hz_cust_site_uses_all.site_use_id%TYPE,
1621             p_org_id            okl_k_headers_full_v.authoring_org_id%TYPE
1622            -- p_payment_flow      iby_pmt_instr_uses_all.payment_flow%TYPE
1623 	    ) IS
1624  SELECT instr_assignment_id,
1625     fpc.payment_channel_code
1626   FROM iby_fndcpt_payer_assgn_instr_v ibyinstr,
1627     iby_fndcpt_pmt_chnnls_vl fpc
1628   WHERE ibyinstr.instrument_id = p_bank_id
1629    AND  ibyinstr.payment_function      = p_payment_function
1630    AND ibyinstr.party_id = p_party_id
1631    AND nvl(ibyinstr.org_id,   p_org_id) = p_org_id
1632    AND ibyinstr.cust_account_id = p_cust_acct_id
1633    AND nvl(ibyinstr.acct_site_use_id,   p_site_use_id) = p_site_use_id
1634    AND nvl(assignment_end_date,   sysdate + 10) > sysdate
1635    AND fpc.instrument_type = ibyinstr.instrument_type
1636    AND fpc.payment_channel_code in ('BANK_ACCT_XFER','CREDIT_CARD');
1637 
1638 
1639     l_instrument_payment_use_id iby_pmt_instr_uses_all.instrument_payment_use_id%type;
1640      -- sosharma 10167846 added payment_channel_code
1641     payment_channel_code  iby_fndcpt_pmt_chnnls_vl.payment_channel_code%type;
1642 
1643     CURSOR cust_instr_payment_use_id_csr (
1644             p_cust_acct_id      okl_k_headers_full_v.cust_acct_id%TYPE,
1645             p_site_use_id       hz_cust_site_uses_all.site_use_id%TYPE,
1646             p_currency_code     okl_k_headers_full_v.currency_code%type
1647             ) IS
1648       Select substrb(min(decode(acct_site_use_id, NULL, '2' || to_char(instr_assignment_id),
1649                                                 '1' || to_char(instr_assignment_id))), 2)
1650       from  IBY_FNDCPT_payer_assgn_instr_v
1651       where instrument_type     = 'BANKACCOUNT'
1652       and   cust_account_id     = p_cust_acct_id
1653       and   p_site_use_id = nvl(acct_site_use_id,p_site_use_id)
1654       and   currency_code       = p_currency_code
1655       and   order_of_preference =  (select substrb(min(decode(acct_site_use_id, NULL, '2' || to_char(order_of_preference),
1656                                      '1' || to_char(order_of_preference))), 2) from  IBY_FNDCPT_payer_assgn_instr_v
1657                                      where instrument_type     = 'BANKACCOUNT'
1658                                      and   cust_account_id     = p_cust_acct_id
1659                                      and   p_site_use_id = nvl(acct_site_use_id,p_site_use_id)
1660                                      and   currency_code       = p_currency_code
1661                                      and   p_trx_date between NVL(assignment_start_date, p_trx_date)
1662                                                                and NVL(assignment_end_date, p_trx_date)
1663           )
1664       and   p_trx_date between NVL(assignment_start_date,p_trx_date)
1665       and NVL(assignment_end_date,p_trx_date);
1666 
1667       cursor instrument_id_csr (p_instr_payment_use_id iby_pmt_instr_uses_all.instrument_payment_use_id%type)
1668         is
1669         select instrument_id
1670         from iby_pmt_instr_uses_all
1671         where instrument_payment_use_id = p_instr_payment_use_id;
1672 
1673       l_instrument_id   iby_pmt_instr_uses_all.instrument_id%type;
1674 
1675   BEGIN
1676 
1677     x_return_status := Okl_Api.G_RET_STS_SUCCESS;
1678 
1679     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1680       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','p_api_version:'||p_api_version);
1681       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','p_init_msg_list:'||p_init_msg_list);
1682       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','p_khr_id:'||p_khr_id);
1683       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','p_customer_address_id:'||p_customer_address_id);
1684       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','p_bank_id:'||p_bank_id);
1685       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','p_trx_date:'||p_trx_date);
1686     END IF;
1687 
1688     -- Fetch contract details
1689 	OPEN chr_dtls_csr (cp_khr_id => p_khr_id);
1690 	FETCH chr_dtls_csr INTO chr_dtls_rec;
1691 	CLOSE chr_dtls_csr;
1692 
1693     OPEN cust_site_use_id_csr (p_customer_address_id);
1694 	FETCH cust_site_use_id_csr INTO l_site_use_id;
1695 	CLOSE cust_site_use_id_csr;
1696 
1697       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1698         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','l_site_use_id:'||l_site_use_id);
1699       END IF;
1700 
1701     OPEN c_get_account_details(p_customer_address_id);
1702     FETCH c_get_account_details INTO l_cust_acct_id,l_party_id;
1703     CLOSE c_get_account_details;
1704 
1705     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1706       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','l_cust_acct_id:'||l_cust_acct_id);
1707       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','l_party_id:'||l_party_id);
1708       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','chr_dtls_rec.party_id:'||chr_dtls_rec.party_id);
1709       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','chr_dtls_rec.cust_Acct_id:'||chr_dtls_rec.cust_Acct_id);
1710     END IF;
1711 
1712     l_party_id := NVL(l_party_id, chr_dtls_rec.party_id);
1713     l_cust_acct_id := NVL(l_cust_acct_id, chr_dtls_rec.cust_Acct_id);
1714 
1715     l_payer.party_id                          := l_party_id;
1716     l_payer.org_type                          := 'OPERATING_UNIT';
1717     l_payer.org_id                            := chr_dtls_rec.org_id;
1718     l_payer.cust_account_id                   := l_cust_acct_id;
1719     l_payer.account_site_id                   := l_site_use_id;
1720 
1721     l_bank_id := p_bank_id;
1722 
1723      -- gboomina added for bug 7513216 - start
1724   -- If Bank account is not passed from contract, get the bank account
1725   -- defined at AR Customer setup
1726      IF l_bank_id IS NOT NULL THEN
1727      -- sosharma 10167846  changes added payment_channel_code
1728         --  OPEN  instr_type_csr(l_bank_id);
1729         --  FETCH instr_type_csr INTO instr_type_rec;
1730        --   CLOSE instr_type_csr;
1731 
1732           IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1733             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','l_bank_id IS NOT NULL');
1734          --   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','instr_type_rec.payment_function:'||instr_type_rec.payment_function);
1735             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','chr_dtls_rec.org_id:'||chr_dtls_rec.org_id);
1736          --   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','instr_type_rec.payment_flow:'||instr_type_rec.payment_flow);
1737           END IF;
1738      -- bug 11886651
1739         /*  OPEN instrument_payment_use_id_csr('CUSTOMER_PAYMENT',l_party_id,
1740                                             l_cust_acct_id,l_site_use_id,
1741                                             chr_dtls_rec.org_id, 'FUNDS_CAPTURE');*/
1742 	OPEN instrument_payment_use_id_csr('CUSTOMER_PAYMENT',l_party_id,
1743                                             l_cust_acct_id,l_site_use_id,
1744                                             chr_dtls_rec.org_id);
1745           FETCH instrument_payment_use_id_csr     INTO l_instrument_payment_use_id,payment_channel_code;-- sosharma 10167846  changes added payment_channel_code
1746           CLOSE instrument_payment_use_id_csr;
1747 
1748           IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1749             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','l_instrument_payment_use_id:'||l_instrument_payment_use_id);
1750             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','payment_channel_code:'||payment_channel_code);
1751           END IF;
1752 
1753      ELSE
1754           OPEN cust_instr_payment_use_id_csr(l_cust_acct_id ,
1755                                        l_site_use_id,
1756                                        chr_dtls_rec.currency_code);
1757           FETCH cust_instr_payment_use_id_csr INTO l_instrument_payment_use_id;
1758           CLOSE cust_instr_payment_use_id_csr;
1759 
1760           IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1761             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','l_bank_id IS NULL');
1762             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','l_instrument_payment_use_id:'||l_instrument_payment_use_id);
1763           END IF;
1764 
1765           -- If Bank account is not defined at AR Customer Setup also, then throw error
1766           IF l_instrument_payment_use_id IS NULL THEN
1767           -- Write Contract Number in the log so that user can identify
1768           -- for which contract it is failing
1769                FND_FILE.PUT_LINE (FND_FILE.LOG, 'Contract Number :'||chr_dtls_rec.contract_number);
1770                fnd_message.set_name('AR', 'AR_RAXTRX-1763');
1771                fnd_msg_pub.add;
1772                RAISE FND_API.G_EXC_ERROR;
1773           END IF;
1774 
1775           OPEN instrument_id_csr(l_instrument_payment_use_id);
1776           FETCH instrument_id_csr INTO l_instrument_id;
1777           CLOSE instrument_id_csr;
1778 
1779           IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1780             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','l_instrument_id:'||l_instrument_id);
1781           END IF;
1782 
1783           OPEN  instr_type_csr(l_instrument_id);
1784           FETCH instr_type_csr INTO instr_type_rec;
1785           CLOSE instr_type_csr;
1786            payment_channel_code:= instr_type_rec.payment_channel_code; -- sosharma 10167846  changes added payment_channel_code
1787      END IF;
1788      -- gboomina bug 7513216 - end
1789 
1790 --		l_instr_assignment                        := l_bank_id;
1791 		l_payer_equivalency                       := NULL;
1792 		l_payer.payment_function                  := 'CUSTOMER_PAYMENT';-- sosharma 10167846  changes
1793 		l_pmt_channel                             := payment_channel_code;-- sosharma 10167846  changes
1794 	  -- ansethur 07-feb-2007 for 6788194
1795 		l_trxn_attribs.originating_application_id := chr_dtls_rec.app_id;
1796 		l_trxn_attribs.order_id                   := chr_dtls_rec.contract_number; -- Some dummy value, not sure of the significance, need to investigate further
1797 
1798 		l_trxn_attribs.po_number                  := NULL;
1799 		l_trxn_attribs.po_line_number             := NULL;
1800 		l_trxn_attribs.trxn_ref_number1           := NULL;
1801 		l_trxn_attribs.trxn_ref_number2           := NULL;
1802 		l_trxn_attribs.instrument_security_code   := NULL;
1803 		l_trxn_attribs.voiceauth_flag             := NULL;
1804 		l_trxn_attribs.voiceauth_code             := NULL;
1805 		l_trxn_attribs.voiceauth_date             := NULL;
1806 		l_trxn_attribs.additional_info            := NULL;
1807 
1808 		-- Default value to UPWARD
1809 		IF (l_payer_equivalency  IS NULL)
1810 		THEN
1811 			l_payer_equivalency := 'UPWARD';
1812 		END IF;
1813 
1814           IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1815             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','Before call to IBY_FNDCPT_TRXN_PUB.CREATE_TRANSACTION_EXTENSION');
1816             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','l_payer.payment_function:'||l_payer.payment_function);
1817             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','l_pmt_channel:'||l_pmt_channel);
1818             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','l_instrument_payment_use_id:'||l_instrument_payment_use_id);
1819           END IF;
1820 
1821 		-- Call to insert the transaction extension through Payments PL/SQL API
1822 		IBY_FNDCPT_TRXN_PUB.CREATE_TRANSACTION_EXTENSION(
1823         p_api_version           => p_api_version,
1824         p_init_msg_list         => p_init_msg_list,
1825         p_commit                => l_true,
1826         x_return_status         => x_return_status,
1827         x_msg_count             => x_msg_count,
1828         x_msg_data              => x_msg_data,
1829         p_payer                 => l_payer,
1830         p_payer_equivalency     => l_payer_equivalency,
1831         p_pmt_channel           => l_pmt_channel,
1832         p_instr_assignment      => l_instrument_payment_use_id, --sosharma bug 6608452
1833         p_trxn_attribs          => l_trxn_attribs,
1834         x_entity_id             => l_entity_id,
1835         x_response              => l_response);
1836  	-- The values are based on FND_API.  S, E, U (Success, Error, Unexpected
1837 	IF (x_return_status = 'S') THEN
1838      okl_debug_pub.logmessage('AUTOINVOICE:Transaction Extension Id: '|| l_entity_id);
1839      IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1840       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_entity_id:'||l_entity_id);
1841      END IF;
1842 
1843      -- Assign out variables
1844         x_payment_trxn_extension_id := l_entity_id;
1845    ELSE
1846      IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1847        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1848      ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1849        RAISE FND_API.G_EXC_ERROR;
1850      END IF;
1851 	  END IF;
1852 
1853    -- For a receipt method code of 'automatic', customer bank account id column is not used
1854    x_customer_bank_account_id := null;
1855 
1856 		IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
1857 			fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','x_payment_trxn_extension_id:'||x_payment_trxn_extension_id);
1858 			fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_auto_bank_dtls.debug','x_customer_bank_account_id:'||x_customer_bank_account_id);
1859 		END IF;
1860 
1861 EXCEPTION
1862   WHEN FND_API.G_EXC_ERROR THEN
1863     x_return_status := OKL_API.G_RET_STS_ERROR;
1864     FND_MSG_PUB.Count_And_Get
1865       (p_count         =>      x_msg_count,
1866        p_data          =>      x_msg_data);
1867 
1868   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1869     x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1870     FND_MSG_PUB.Count_And_Get
1871       (p_count         =>      x_msg_count,
1872        p_data          =>      x_msg_data);
1873 
1874   WHEN OTHERS THEN
1875     x_return_status   :=  Okl_Api.G_RET_STS_ERROR;
1876     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1877             OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE, SQLERRM);
1878     END IF;
1879 	END get_auto_bank_dtls;
1880 
1881 ---------------------------------------------------------------------------
1882 -- PROCEDURE Get_rec_feeder
1883 ---------------------------------------------------------------------------
1884 PROCEDURE Get_REC_FEEDER
1885   ( p_api_version                  IN  NUMBER
1886   , p_init_msg_list                IN  VARCHAR2
1887   , x_return_status                OUT NOCOPY VARCHAR2
1888   , x_msg_count                    OUT NOCOPY NUMBER
1889   , x_msg_data                     OUT NOCOPY VARCHAR2
1890   , p_trx_date_from                IN  DATE
1891   , p_trx_date_to                  IN  DATE
1892   , p_assigned_process             IN  VARCHAR2
1893   ) IS
1894 
1895 l_xfer_tbl     xfer_tbl_type;
1896 
1897 type inv_lines_tbl_type is table of ra_interface_lines_all%rowtype index by binary_integer;
1898 type inv_dist_tbl_type is table of ra_interface_distributions_all%rowtype index by pls_integer;
1899 type sales_credits_tbl_type is table of ra_interface_salescredits_all%rowtype index by pls_integer;
1900 type ar_contingency_tbl_type is table of ar_interface_conts_all%rowtype index by pls_integer;
1901 
1902 inv_lines_tbl       inv_lines_tbl_type;
1903 inv_dist_tbl        inv_dist_tbl_type;
1904 sales_credits_tbl   sales_credits_tbl_type;
1905 ar_contingency_tbl  ar_contingency_tbl_type;
1906 
1907 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
1908   l_group_by_contract_yn okl_invoice_types_v.group_by_contract_yn%type;
1909   l_group_asset_yn okl_invoice_types_v.group_asset_yn%type;
1910   l_contract_level_yn okl_invoice_formats_v.contract_level_yn%type;
1911   l_invoice_group okl_invoice_formats_v.name%type;
1912   l_khr_id okc_k_headers_b.id%type;
1913   l_bank_line_id1                OKC_RULES_B.OBJECT1_ID1%TYPE;
1914 
1915 
1916         CURSOR acc_sys_option is
1917         select account_derivation
1918 		from okl_sys_acct_opts;
1919 
1920 CURSOR xfer_csr IS
1921        SELECT
1922         TAI.ID TAI_ID
1923 --        , TIL.AMOUNT AMOUNT
1924 --  19-Mar-2007 cklee -- Change amount referece to TLD instead                |
1925         , TLD.AMOUNT AMOUNT
1926         , TIL.DESCRIPTION LINE_DESCRIPTION
1927         , NVL(TLD.INVENTORY_ITEM_ID, TIL.INVENTORY_ITEM_ID) INVENTORY_ITEM_ID
1928         , TIL.inv_receiv_line_code LINE_TYPE
1929         , TIL.QUANTITY
1930         , TIL.LINE_NUMBER
1931         , NVL(TLD.STY_ID, TIL.STY_ID) STY_ID
1932         , KHR.ID KHR_ID
1933         , KHR.CONTRACT_NUMBER
1934 --start:|  06-Apr-2007 cklee -- Fixed kle_id, asset_number issues                    |
1935 --        , KLE.NAME ASSET_NUMBER
1936         , NULL ASSET_NUMBER
1937 --end:|  06-Apr-2007 cklee -- Fixed kle_id, asset_number issues                    |
1938         , TLD.INVOICE_FORMAT_LINE_TYPE -- STREAM_GROUP
1939         , STY.NAME STREAM_TYPE
1940         , TAI.CURRENCY_CODE
1941         , TAI.currency_conversion_date
1942         , TAI.currency_conversion_rate
1943         , TAI.currency_conversion_type
1944         , TAI.CUST_TRX_TYPE_ID
1945         , TAI.IBT_ID CUSTOMER_ADDRESS_ID
1946 --        , TAI.CUSTOMER_BANK_ACCOUNT_ID
1947         , NVL(TIL.bank_acct_id, TAI.CUSTOMER_BANK_ACCOUNT_ID) CUSTOMER_BANK_ACCOUNT_ID
1948         , TAI.IXX_ID CUSTOMER_ID
1949         , TAI.DESCRIPTION HDR_DESCRIPTION
1950         , NULL INVOICE_MESSAGE
1951         , TAI.ORG_ID
1952         , TAI.IRM_ID RECEIPT_METHOD_ID
1953         , TAI.SET_OF_BOOKS_ID
1954         , TAI.TAX_EXEMPT_FLAG
1955         , TAI.IRT_ID TERM_ID
1956         , TAI.DATE_INVOICED TRX_DATE
1957 --        , TAI.TRX_NUMBER
1958 --if auto-transaction generation is turn on, invoice_number (trx_number) is not a required column.
1959         , NULL TRX_NUMBER -- refer to metalink: Note:277086.1
1960         , TAI.CONSOLIDATED_INVOICE_NUMBER
1961         , TLD.INVOICE_FORMAT_TYPE
1962         , TAI.INVOICE_PULL_YN
1963         , TAI.PRIVATE_LABEL
1964 	, TAI.LEGAL_ENTITY_ID -- for LE Uptake project 08-11-2006
1965         , NULL ACCOUNT_CLASS
1966         , NULL DIST_AMOUNT
1967         , NULL DIST_PERCENT
1968         , NULL CODE_COMBINATION_ID
1969 --        , XLS.LSM_ID
1970         , STY.ACCRUAL_YN rev_rec_basis
1971         , NULL CM_ACCT_RULE
1972         , TLD.TLD_ID_REVERSES rev_txn_id
1973 --        , NULL REV_LSM_ID
1974         , NVL(TLD.INVENTORY_ORG_ID, TIL.INVENTORY_ORG_ID) INVENTORY_ORG_ID
1975         , KHR.inv_organization_id WARE_HOUSE_ID
1976         , NVL(TLD.KLE_ID, TIL.KLE_ID) KLE_ID
1977         , NULL SHIP_TO
1978         , NULL l_inv_id
1979         , NULL uom_code
1980         , TLD.ID TXN_ID
1981 --
1982 -- R12 additional columns pass to AR interface
1983         , TAI.OKL_SOURCE_BILLING_TRX
1984         , TAI.Investor_Agreement_Number
1985         , TAI.Investor_Name
1986         , (select qte.quote_number from OKL_TRX_QUOTES_B qte where qte.id = TAI.QTE_ID) Quote_number
1987         , NULL rbk_request_number
1988         , TLD.RBK_ORI_INVOICE_NUMBER
1989         , TLD.RBK_ORI_INVOICE_LINE_NUMBER
1990         , TLD.RBK_ADJUSTMENT_DATE
1991         , TAI.INF_ID
1992         , TAI.TRY_ID
1993         , TRYT.NAME TRY_NAME
1994 		-- bug 6744584: contingency fix, added contingecy_id..racheruv
1995 		, STY.CONTINGENCY_ID
1996         , TLD.INVOICE_FORMAT_LINE_TYPE INVOICE_LINE_TYPE -- Bug 7045347
1997         , TIL.ID TIL_ID -- Bug# 12617408
1998        FROM OKL_TXD_AR_LN_DTLS_B TLD,
1999             OKL_TXL_AR_INV_LNS_V TIL,
2000             OKL_TRX_AR_INVOICES_V TAI,
2001             OKC_K_HEADERS_ALL_B  KHR,
2002 --start:|  06-Apr-2007 cklee -- Fixed kle_id, asset_number issues                    |
2003 --            OKC_K_LINES_V KLE,
2004 --end:|  06-Apr-2007 cklee -- Fixed kle_id, asset_number issues                    |
2005             OKL_STRM_TYPE_V  STY,
2006             OKL_TRX_TYPES_TL TRYT,
2007             OKL_PARALLEL_PROCESSES OPP
2008        WHERE TLD.STY_ID = STY.ID
2009        AND TLD.TIL_ID_DETAILS = TIL.ID
2010        AND TIL.TAI_ID = TAI.ID
2011        AND TAI.KHR_ID = KHR.ID
2012 --start:|  06-Apr-2007 cklee -- Fixed kle_id, asset_number issues                    |
2013 --	   AND KLE.ID = TIL.KLE_ID
2014 --end:|  06-Apr-2007 cklee -- Fixed kle_id, asset_number issues                    |
2015        AND TAI.TRY_ID = TRYT.ID
2016        AND TRYT.LANGUAGE = 'US'
2017 	   AND TAI.TRX_STATUS_CODE = 'SUBMITTED'
2018        AND OPP.OBJECT_TYPE = 'XTRX_CONTRACT'
2019        AND OPP.OBJECT_VALUE = KHR.CONTRACT_NUMBER
2020        AND OPP.ASSIGNED_PROCESS = p_assigned_process
2021        ORDER BY TAI.ID
2022        ;
2023 
2024 --  l_try_name OKL_TRX_TYPES_TL.name%type;
2025   x_tax_det_rec OKL_PROCESS_SALES_TAX_PVT.tax_det_rec_type;
2026 
2027 
2028     -- ------------------------------------------------
2029     -- Cursors to check if Customer is on Bankruptcy
2030     -- ------------------------------------------------
2031 	-- Start -- Added by venkatho as part of Bug 15953012
2032 	CURSOR cust_bankruptcy_csr IS
2033 	      SELECT   distinct khr.id 			khr_id
2034 		      ,khr.contract_number		contract_number
2035 		      ,tai.id 				tai_id
2036 		      ,tai.okl_source_billing_trx
2037 		      ,tai.ixx_id			customer_id
2038 		      ,iex_wf_ban_status_pub.get_turninvoff(hca.party_id,hca.cust_account_id,SYSDATE) bankruptcy_sts
2039 	       FROM   okl_trx_ar_invoices_b tai,
2040 		      okc_k_headers_b  	    khr,
2041 		      hz_cust_accounts 		hca
2042 	       WHERE  tai.khr_id 	 = khr.id
2043 	       AND    tai.ixx_id	 = khr.cust_acct_id
2044 	       AND    khr.cust_acct_id 	 = hca.cust_account_id
2045 	       AND    hca.status	 = 'A'
2046 	       AND    khr.cust_acct_id IS NOT NULL
2047 	       AND    tai.trx_status_code = 'SUBMITTED';
2048 
2049 
2050 	CURSOR cust_bankrupt_cnt_csr IS
2051 	       SELECT  khr.contract_number			khr_number
2052 		      ,nvl(hca.account_name,hp.party_name)	name
2053 		      ,COUNT(tai.id)				cust_rec_cnt
2054 	       FROM    okl_trx_ar_invoices_b tai,
2055 		       hz_cust_accounts	     hca,
2056 		       okc_k_headers_b	     khr,
2057 		       hz_parties	     hp
2058 	       WHERE   tai.ixx_id	   = khr.cust_acct_id
2059 	       AND     khr.cust_acct_id	   = hca.cust_account_id
2060 	       AND     hca.party_id	   = hp.party_id
2061 	       AND     tai.khr_id	   = khr.id
2062 	       AND     hca.status	   = 'A'
2063 	       AND     tai.trx_status_code = 'CUST-BANKRUPT'
2064 	       GROUP BY khr.contract_number
2065 		       ,nvl(hca.account_name,hp.party_name);
2066 
2067 	CURSOR bankrupt_cnt_cust_csr IS
2068 	       SELECT  COUNT(tai.id)	cust_bkrpt_cnt
2069 	       FROM    okl_trx_ar_invoices_b tai
2070 	       WHERE   tai.trx_status_code = 'CUST-BANKRUPT';
2071 
2072 		l_cust_bkrpt_cnt		NUMBER;
2073 	-- End -- Added by venkatho as part of Bug 15953012
2074 
2075 
2076     -- ------------------------------------------------
2077     -- Cursors to check if Vendor is on Bankruptcy
2078     -- ------------------------------------------------
2079 	-- Start -- Added by venkatho as part of Bug 15953954
2080 	CURSOR vndr_bankruptcy_csr IS
2081 	      SELECT  distinct khr.id 			khr_id
2082 		      ,khr.contract_number		contract_number
2083 		      ,tai.ixx_id			vendor_customer_id
2084 		      ,iex_wf_ban_status_pub.get_turninvoff(hca.party_id,hca.cust_account_id,SYSDATE) bankruptcy_sts
2085 	       FROM   okl_trx_ar_invoices_b	tai,
2086 		      okc_k_headers_b  		khr,
2087 		      hz_cust_accounts 		hca,
2088 		      okc_k_party_roles_b	opr
2089 	       WHERE  tai.khr_id 	 	= khr.id
2090 	       AND    khr.cust_acct_id 	 	<> tai.ixx_id
2091 	       AND    tai.ixx_id		=  hca.cust_account_id
2092 	       AND    opr.dnz_chr_id		=  khr.id
2093 	       AND    opr.cle_id IS NULL
2094 	       AND    opr.rle_code 		= 'OKL_VENDOR'
2095 	       AND    hca.status	 	= 'A'
2096 	       AND    khr.cust_acct_id IS NOT NULL
2097 	       AND    tai.trx_status_code       = 'SUBMITTED';
2098 
2099 	CURSOR vndr_bankrupt_cnt_csr IS
2100 	       SELECT  khr.contract_number	khr_number
2101 		      ,ap.vendor_name		name
2102 		      ,COUNT(tai.id)		vndr_rec_cnt
2103 	       FROM    okl_trx_ar_invoices_b tai,
2104 		       hz_cust_accounts	     hca,
2105 		       okc_k_headers_b	     khr,
2106 		       ap_suppliers	     ap,
2107 		       hz_parties	     hp
2108 	       WHERE   tai.ixx_id	   = hca.cust_account_id
2109 	       AND     khr.cust_acct_id	   <> tai.ixx_id
2110 	       AND     tai.khr_id	   = khr.id
2111 	       AND     ap.party_id	   = hp.party_id
2112 	       AND     hp.party_id	   = hca.party_id
2113 	       AND     hca.status	   = 'A'
2114 	       AND     tai.trx_status_code = 'VNDR-BANKRUPT'
2115 	       GROUP BY khr.contract_number
2116 		       ,ap.vendor_name;
2117 
2118 	CURSOR bankrupt_cnt_vndr_csr IS
2119 	       SELECT  COUNT(tai.id)	vndr_bkrpt_cnt
2120 	       FROM    okl_trx_ar_invoices_b tai
2121 	       WHERE   tai.trx_status_code = 'VNDR-BANKRUPT';
2122 
2123 		l_vndr_bkrpt_cnt		NUMBER;
2124 		l_vndr_cnt			NUMBER;
2125 	-- End -- Added by venkatho as part of Bug 15953954
2126 
2127 
2128     -- ------------------------------------------------
2129     -- Printing and debug log
2130     -- ------------------------------------------------
2131     l_request_id      NUMBER;
2132 
2133     CURSOR req_id_csr IS
2134 	  SELECT
2135           DECODE(Fnd_Global.CONC_REQUEST_ID,-1,NULL,Fnd_Global.CONC_REQUEST_ID)
2136 	  FROM dual;
2137 
2138  	 ------------------------------------------------------------
2139 	 -- Operating Unit
2140 	 ------------------------------------------------------------
2141      CURSOR op_unit_csr IS
2142             SELECT NAME
2143             FROM hr_operating_units
2144             WHERE organization_id = mo_global.get_current_org_id;
2145 
2146 
2147 -- For R12, OKL_TXD_AR_LN_DTLS_B will be invoice line.
2148 --
2149     CURSOR tld_cnt_csr( p_req_id NUMBER, p_sts VARCHAR2 ) IS
2150           SELECT count(1)
2151           FROM OKL_TXD_AR_LN_DTLS_B TLD
2152           WHERE EXISTS
2153 		         (SELECT 1
2154                   FROM OKL_TRX_AR_INVOICES_B TAI,
2155                        OKL_TXL_AR_INV_LNS_B  TIL
2156                   WHERE TLD.TIL_ID_DETAILS = TIL.ID
2157                   AND TIL.TAI_ID = TAI.ID
2158                   AND TAI.trx_status_code = p_sts
2159 				  AND TAI.request_id = p_req_id);
2160 
2161       CURSOR tld_cnt_csr_selected( p_req_id NUMBER ) IS
2162           SELECT count(1)
2163           FROM OKL_TXD_AR_LN_DTLS_B TLD
2164           WHERE EXISTS
2165                          (SELECT 1
2166                   FROM OKL_TRX_AR_INVOICES_B TAI,
2167                        OKL_TXL_AR_INV_LNS_B  TIL
2168                   WHERE TLD.TIL_ID_DETAILS = TIL.ID
2169                   AND TIL.TAI_ID = TAI.ID
2170                                   AND TAI.request_id = p_req_id);
2171 
2172 
2173 
2174 --end: |           15-FEB-07 cklee  R12 Billing enhancement project                 |
2175 
2176     l_selected_count    NUMBER;
2177     l_succ_cnt          NUMBER;
2178     l_err_cnt           NUMBER;
2179     l_op_unit_name      hr_operating_units.name%TYPE;
2180     lx_msg_data         VARCHAR2(450);
2181     l_msg_index_out     NUMBER :=0;
2182 
2183     -- ------------------------------------------------
2184     -- Bind variables to address issues in bug 3761940
2185     -- ------------------------------------------------
2186     processed_sts  okl_trx_ar_invoices_b.trx_status_code%TYPE;
2187     error_sts      okl_trx_ar_invoices_b.trx_status_code%TYPE;
2188 
2189     -- -------------------------
2190     -- Bulk Fetch Size
2191     -- -------------------------
2192     L_FETCH_SIZE   NUMBER := 10000;
2193     l_hdr_id       NUMBER := -9999;
2194 
2195     l_commit_cnt   NUMBER := 0;
2196 
2197     -- ----------------------
2198     -- Std Who columns
2199     -- ----------------------
2200     lx_last_updated_by     okl_trx_ar_invoices_b.last_updated_by%TYPE := Fnd_Global.USER_ID;
2201     lx_last_update_login   okl_trx_ar_invoices_b.last_update_login%TYPE := Fnd_Global.LOGIN_ID;
2202     lx_request_id          okl_trx_ar_invoices_b.request_id%TYPE := Fnd_Global.CONC_REQUEST_ID;
2203 
2204     lx_program_application_id
2205                 okl_trx_ar_invoices_b.program_application_id%TYPE := Fnd_Global.PROG_APPL_ID;
2206     lx_program_id  okl_trx_ar_invoices_b.program_id%TYPE := Fnd_Global.CONC_PROGRAM_ID;
2207 
2208     -- ---------------------------
2209     -- Bulk Insert changes
2210     -- ---------------------------
2211 
2212     CURSOR l_get_inv_org_yn_csr(cp_org_id IN NUMBER) IS
2213         SELECT lease_inv_org_yn
2214         FROM OKL_SYSTEM_PARAMS
2215         WHERE org_id = cp_org_id;
2216 
2217     l_rev_rec_basis     okl_strm_type_b.accrual_yn%type;
2218     l_org_id            NUMBER := MO_GLOBAL.GET_CURRENT_ORG_ID();
2219     l_use_inv_org       VARCHAR2(10) := NULL;
2220 
2221 
2222     --vthiruva - Bug 4222231..start
2223     --modified sales_rep_csr to remove hard coded where clause
2224     CURSOR sales_rep_csr(p_salesrep_id IN ra_salesreps.salesrep_id%TYPE) IS
2225        SELECT SALESREP_ID, SALESREP_NUMBER
2226        FROM ra_salesreps
2227        --WHERE NAME = 'No Sales Credit';
2228        WHERE SALESREP_ID = p_salesrep_id;
2229 
2230     --added new cursor to fetch the sales rep for the contract.
2231     CURSOR get_sales_rep(p_contract_number okc_k_headers_b.contract_number%TYPE) IS
2232        SELECT contact.object1_id1
2233        FROM okc_k_headers_b hdr, okc_contacts contact
2234        WHERE contact.dnz_chr_id = hdr.id
2235        AND hdr.contract_number = p_contract_number
2236        AND contact.cro_code = 'SALESPERSON';
2237 
2238     l_prev_contract_num    okc_k_headers_b.contract_number%TYPE;
2239     l_sales_person         okc_contacts_v.object1_id1%TYPE;
2240     --vthiruva - Bug 4222231..end
2241 
2242     CURSOR sales_type_credit_csr IS
2243        SELECT sales_credit_type_id
2244        FROM so_sales_credit_types
2245        WHERE name = 'Quota Sales Credit';
2246 
2247     l_salesrep_id          ra_salesreps.SALESREP_ID%TYPE;
2248     l_salesrep_number      ra_salesreps.SALESREP_NUMBER%TYPE;
2249     l_sales_type_credit    so_sales_credit_types.sales_credit_type_id%TYPE;
2250 
2251     l_top_kle_id    NUMBER;
2252 
2253 --start:|  06-Apr-2007 cklee -- Fixed kle_id, asset_number issues                    |
2254     l_is_top_line number;
2255     is_top_line_flag boolean;
2256 
2257     CURSOR is_top_line ( p_cle_id NUMBER ) IS
2258        SELECT 1
2259        FROM okc_k_lines_b kle
2260        where kle.id = p_cle_id
2261        and   kle.cle_id is null; -- it's top line
2262 
2263     CURSOR get_top_line ( p_cle_id NUMBER ) IS
2264       select cle.id--, lse.lty_code
2265       from okc_k_lines_b cle--,
2266 --           okc_line_styles_b lse
2267 --      where lse.id = cle.lse_id
2268 --      and cle.cle_id is null
2269       where cle.cle_id is null -- it's top line
2270       start with cle.id = p_cle_id
2271       connect by cle.id = prior cle.cle_id;
2272 
2273     CURSOR get_top_line_name ( p_cle_id NUMBER ) IS
2274       select cle.name
2275       from OKC_K_LINES_V cle
2276       where cle.id = p_cle_id;
2277 
2278 --end:|  06-Apr-2007 cklee -- Fixed kle_id, asset_number issues                    |
2279 
2280     l_chr_id        okc_k_lines_b.chr_id%TYPE;
2281 
2282   	l_ship_to		   NUMBER;
2283 
2284     lx_customer_id     NUMBER;
2285     l_chk_customer_id   NUMBER;
2286 
2287     -- Local Variables
2288     l_install_location_id NUMBER;
2289     l_location_id         NUMBER;
2290 
2291     -- Code Changed for Bug 3044872
2292     CURSOR get_inv_item_id ( p_fin_asset_line_id NUMBER ) IS
2293         SELECT c.OBJECT1_ID1
2294         FROM okc_k_lines_b a,
2295              okc_line_styles_b b,
2296              okc_k_items c
2297         WHERE a.cle_id   = p_fin_asset_line_id
2298         AND   b.lty_code = 'ITEM'
2299         AND   a.lse_id   = b.id
2300         AND   a.id       = c.cle_id;
2301 
2302     l_inv_id        NUMBER;
2303 
2304     l_uom_code      mtl_system_items.primary_uom_code%TYPE;
2305 
2306     CURSOR get_uom_code ( p_inv_item_id NUMBER ) IS
2307        SELECT primary_uom_code
2308        FROM mtl_system_items
2309        WHERE inventory_item_id = p_inv_item_id;
2310 
2311     l_temp_sold_fee      VARCHAR2(1);
2312 
2313 
2314     CURSOR Ship_to_csr( p_kle_top_line IN NUMBER ) IS
2315         SELECT --cim.object1_id1 item_instance,
2316        	       --cim.object1_id2 "#",
2317        	    csi.install_location_id
2318             , csi.location_id
2319         FROM  csi_item_instances csi,
2320        	      okc_k_items cim,
2321        	      okc_k_lines_b   inst,
2322        	      okc_k_lines_b   ib,
2323        	      okc_line_styles_b lse
2324         WHERE  csi.instance_id = TO_NUMBER(cim.object1_id1)
2325 	    AND    cim.cle_id = ib.id
2326 	    AND    ib.cle_id = inst.id
2327 	    AND    inst.lse_id = lse.id
2328 	    AND    lse.lty_code = 'FREE_FORM2'
2329 	    AND    inst.cle_id = p_kle_top_line;
2330 
2331     CURSOR Ship_to_csr2( p_customer_num NUMBER, p_install_location NUMBER, p_location NUMBER, p_org_id NUMBER ) IS
2332        SELECT a.CUST_ACCT_SITE_ID
2333        FROM   hz_cust_acct_sites_all a,
2334               hz_cust_site_uses_all  b,
2335               hz_party_sites      c
2336        WHERE  a.CUST_ACCT_SITE_ID = b.CUST_ACCT_SITE_ID AND
2337               b.site_use_code     = 'SHIP_TO'           AND
2338               a.party_site_id     = c.party_site_id     AND
2339               a.cust_account_id   = p_customer_num      AND
2340               a.org_id            = p_org_id            AND
2341               c.party_site_id     = p_install_location  AND
2342               c.location_id       = p_location;
2343 
2344     CURSOR sold_service_fee_csr ( p_cle_id NUMBER ) IS
2345        SELECT '1'
2346        FROM okc_k_lines_v a,
2347             okc_line_styles_v b
2348        WHERE a.lse_id = b.id
2349        AND b.lty_code = 'SOLD_SERVICE'
2350        AND a.id = p_cle_id;
2351 
2352     CURSOR get_service_inv_csr ( p_cle_id NUMBER ) IS
2353         SELECT c.object1_id1
2354         FROM okc_k_lines_v a,
2355              okc_line_styles_v b,
2356              okc_k_items c
2357         WHERE a.lse_id = b.id
2358         AND b.lty_code = 'SOLD_SERVICE'
2359         AND a.id = p_cle_id
2360         AND c.cle_id = a.id;
2361 
2362 
2363 type error_tbl_type is table of error_rec_type index by binary_integer;
2364 
2365 error_tbl   error_tbl_type;
2366 
2367 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
2368 --l_error_xsi_id    okl_ext_sell_invs_v.id%TYPE;
2369 l_error_tai_id    okl_trx_ar_invoices_b.id%TYPE;
2370 l_error_txd_id    OKL_TXD_AR_LN_DTLS_B.id%TYPE;
2371 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
2372 
2373 hdr_cnt         NUMBER;
2374 sales_cr_cnt    NUMBER;
2375 cont_cnt        NUMBER;
2376 
2377     -- Bug 6619311
2378     /*CURSOR get_memo_line_id_csr IS
2379         SELECT MEMO_LINE_ID
2380         FROM ar_memo_lines
2381         WHERE NAME = 'Lease Upfront Tax';
2382 
2383 l_memo_line_id   ar_memo_lines.memo_line_id%TYPE;
2384 */
2385 
2386   Cursor is_legacy_invoice (p_rev_txn_id OKL_TXD_AR_LN_DTLS_B.id%type) is
2387     select lsm_id
2388     from OKL_TXD_AR_LN_DTLS_B
2389     where id = p_rev_txn_id;
2390 
2391     l_lsm_id OKL_TXD_AR_LN_DTLS_B.lsm_id%type;
2392 
2393   Cursor get_invoice_line_id (p_rev_txn_id OKL_TXD_AR_LN_DTLS_B.id%type) is
2394     select a.customer_trx_line_id
2395 	    from ra_customer_trx_lines_all a
2396     where a.INTERFACE_LINE_ATTRIBUTE14 = to_char(p_rev_txn_id); -- AKP
2397 
2398     l_customer_trx_line_id ra_customer_trx_lines_all.customer_trx_line_id%type;
2399 
2400      --akrangan addeed ebtax billing impacts coding start
2401       CURSOR tax_sources_csr(p_tai_id IN NUMBER
2402                              ,p_tld_id IN number
2403                              )
2404       IS
2405       SELECT txs.trx_id,
2406              txs.trx_line_id,
2407              txs.trx_level_type,
2408              txs.application_id,
2409              txs.event_class_code,
2410              txs.entity_code,
2411              inv.tax_line_id -- Bug 6619311
2412       FROM   okl_tax_sources txs,
2413              okl_txl_ar_inv_lns_b inv
2414              ,okl_txd_ar_ln_dtls_b tld
2415       WHERE  txs.trx_id =  inv.txs_trx_id
2416       AND    trx_line_id  = inv.txs_trx_line_id
2417       AND    inv.id =  tld.til_id_details
2418       AND    inv.tai_id = p_tai_id
2419       AND    tld.id = p_tld_id;
2420 
2421      tax_sources_rec      tax_sources_csr%ROWTYPE;
2422       -- Bug 6619311
2423       CURSOR zx_lines_csr(p_zx_lines_id IN NUMBER)
2424       IS
2425       SELECT HISTORICAL_FLAG,
2426              TAX_REGIME_CODE,
2427              TAX,
2428              TAX_STATUS_CODE,
2429              TAX_RATE_CODE,
2430              TAX_JURISDICTION_CODE,
2431              TAXABLE_AMT,
2432              LEGAL_ENTITY_ID
2433       FROM   ZX_LINES
2434       WHERE  TAX_LINE_ID = p_zx_lines_id;
2435      zx_lines_rec      zx_lines_csr%ROWTYPE;
2436 
2437      tx                  NUMBER;
2438      l_tx                NUMBER;
2439    --akrangan added ebtax billing impacts coding end
2440 
2441 lx_dist_tbl dist_tbl_type; -- rmunjulu R12 Fixes
2442 n NUMBER; -- rmunjulu R12 Fixes
2443     l_creation_method_code AR_RECEIPT_CLASSES.CREATION_METHOD_CODE%TYPE;
2444 
2445   -- gboomina added for bug 7513216 - start
2446   cursor get_khr_id_csr (p_contract_number okc_k_headers_all_b.contract_number%type)
2447   is
2448     select id from okc_k_headers_all_b
2449     where contract_number = p_contract_number;
2450   -- gboomina added for bug 7513216 - end
2451 
2452     --nikshah added for bug 9223230 start
2453     --Cursor to check if invoice line belongs to customer?
2454     CURSOR c_inv_customer(p_chr_id OKC_K_HEADERS_B.ID%TYPE, p_cust_acct_id OKC_K_HEADERS_B.CUST_ACCT_ID%TYPE) IS
2455     SELECT 1
2456      FROM   okc_k_headers_b
2457      WHERE  id = p_chr_id
2458         AND cust_acct_id = p_cust_acct_id;
2459 
2460     l_inv_customer_rec c_inv_customer%ROWTYPE;
2461     l_inv_customer BOOLEAN := TRUE;
2462     --nikshah added for bug 9223230 end
2463 
2464 -- sosharma for bug 9871252
2465     CURSOR rcpt_cr_method_csr ( p_rct_method_id  NUMBER) IS
2466 	   SELECT C.CREATION_METHOD_CODE
2467 	   FROM  AR_RECEIPT_METHODS M,
2468        		 AR_RECEIPT_CLASSES C
2469 	   WHERE  M.RECEIPT_CLASS_ID = C.RECEIPT_CLASS_ID AND
2470 	   		  M.receipt_method_id = p_rct_method_id;
2471 
2472       rct_method_code         AR_RECEIPT_CLASSES.CREATION_METHOD_CODE%TYPE;
2473 
2474     -- Bug#9576651 - Start
2475     -- Define error table
2476     type error_tai_tbl_type IS TABLE OF NUMBER
2477         INDEX BY BINARY_INTEGER;
2478     l_error_tai_tbl error_tai_tbl_type;
2479     l_error_tai_cnt NUMBER DEFAULT 0;
2480     l_conc_status BOOLEAN;
2481     -- Bug#9576651 - End
2482 
2483 
2484     l_trx_type_name  OKL_TRX_TYPES_TL.name%type;  --sechawla 01-jun-11 12539101
2485 
2486     --Bug# 12617408
2487     CURSOR rmkt_ship_to_csr(p_til_id IN NUMBER) IS
2488     SELECT hsu.cust_acct_site_id
2489     FROM  okl_txl_ar_inv_lns_b til,
2490           oe_order_lines_all oli,
2491           oe_order_headers_all ohe,
2492           hz_cust_site_uses_all hsu
2493     WHERE til.id = p_til_id
2494     AND   oli.line_id = til.isl_id
2495     AND   ohe.header_id = oli.header_id
2496     AND   hsu.site_use_id = NVL(oli.ship_to_org_id, ohe.ship_to_org_id);
2497 
2498 BEGIN
2499 
2500     L_DEBUG_ENABLED := OKL_DEBUG_PUB.CHECK_LOG_ENABLED;
2501 
2502     IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2503        FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'okl_arintf_pvt','Begin(+)');
2504     END IF;
2505 
2506     -- ------------------------
2507     -- Print Input variables
2508     -- ------------------------
2509     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2510           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'p_trx_date_from '||p_trx_date_from);
2511       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'p_trx_date_to '||p_trx_date_to);
2512     END IF;
2513     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2514       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','p_trx_date_from:'||p_trx_date_from);
2515       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','p_trx_date_to:'||p_trx_date_to);
2516     END IF;
2517 
2518 
2519     x_return_status := Okl_Api.G_RET_STS_SUCCESS;
2520 
2521 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
2522     OPEN acc_sys_option;
2523     FETCH acc_sys_option INTO G_ACC_SYS_OPTION;
2524     CLOSE acc_sys_option;
2525 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
2526 
2527     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2528       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','G_ACC_SYS_OPTION:'||G_ACC_SYS_OPTION);
2529     END IF;
2530 
2531     -- ----------------------------
2532     -- Work out common parameters
2533     -- ----------------------------
2534 
2535     OPEN l_get_inv_org_yn_csr( l_org_id );
2536     FETCH l_get_inv_org_yn_csr INTO l_use_inv_org;
2537     CLOSE l_get_inv_org_yn_csr;
2538 
2539     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2540       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_use_inv_org:'||l_use_inv_org);
2541     END IF;
2542 
2543     --vthiruva - Bug 4222231..start
2544     --defaulted salesrep variables to 'No Sales Credit'
2545     l_salesrep_id       := -3;
2546     l_salesrep_number   := -3;
2547     l_prev_contract_num := NULL;
2548     --vthiruva - Bug 4222231..end
2549 
2550     l_sales_type_credit := NULL;
2551     OPEN  sales_type_credit_csr;
2552     FETCH sales_type_credit_csr INTO l_sales_type_credit;
2553     CLOSE sales_type_credit_csr;
2554 
2555     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2556       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_sales_type_credit:'||l_sales_type_credit);
2557     END IF;
2558 
2559     -- Bug 6619311
2560     /*
2561     -- get memo line id for tax only invoices
2562     l_memo_line_id := NULL;
2563     OPEN  get_memo_line_id_csr;
2564     FETCH get_memo_line_id_csr INTO l_memo_line_id;
2565     CLOSE get_memo_line_id_csr;
2566 
2567     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2568       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_memo_line_id:'||l_memo_line_id);
2569     END IF;
2570 
2571     if l_memo_line_id is null then
2572         FND_FILE.PUT_LINE(FND_FILE.LOG,
2573         'WARNING: A memo line with name -- Lease Upfront Tax,
2574         must exist to import tax-only invoices.');
2575     end if;
2576     */
2577 
2578 
2579      -- Start added as part of Bug 15953012
2580 	l_cust_bkrpt_cnt	:= 0;
2581 	FOR cust_bankruptcy_rec IN cust_bankruptcy_csr
2582 	LOOP
2583 
2584 		--IF (cust_bankruptcy_rec.okl_source_billing_trx = 'TAX_ONLY_INVOICE_TAX' AND cust_bankruptcy_rec.bankruptcy_sts = 'Y')
2585 		IF (cust_bankruptcy_rec.bankruptcy_sts = 'Y')
2586 		THEN
2587 
2588 		     UPDATE  okl_trx_ar_invoices_b trx
2589 		     SET     trx_status_code = 'CUST-BANKRUPT'
2590 		     WHERE   khr_id	     = cust_bankruptcy_rec.khr_id
2591 		     AND     ixx_id	     = cust_bankruptcy_rec.customer_id
2592 		     AND     trx_status_code = 'SUBMITTED';
2593 
2594 		     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2595 			 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Updating Customer header records with BANKRUPT Status as Customer is on Bankrupty for khr_id: '||cust_bankruptcy_rec.khr_id);
2596 		     END IF;
2597 
2598 		     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2599 		       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Updating Customer header records with BANKRUPT Status as Customer is on Bankrupty for khr_id: '||cust_bankruptcy_rec.khr_id);
2600 		     END IF;
2601 
2602 		END IF;
2603 
2604 	END LOOP;
2605 
2606 	OPEN bankrupt_cnt_cust_csr;
2607 	FETCH bankrupt_cnt_cust_csr INTO l_cust_bkrpt_cnt;
2608 	CLOSE bankrupt_cnt_cust_csr;
2609     -- End added as part of Bug 15953012
2610 
2611 
2612      -- Start added as part of Bug 15953954
2613 	l_vndr_bkrpt_cnt		:= 0;
2614 	FOR vndr_bankruptcy_rec IN vndr_bankruptcy_csr
2615 	LOOP
2616 
2617 		IF (vndr_bankruptcy_rec.bankruptcy_sts = 'Y')
2618 		THEN
2619 
2620 		     UPDATE  okl_trx_ar_invoices_b
2621 		     SET     trx_status_code = 'VNDR-BANKRUPT'
2622 		     WHERE   khr_id	     = vndr_bankruptcy_rec.khr_id
2623 		     AND     ixx_id	     = vndr_bankruptcy_rec.vendor_customer_id
2624 		     AND     trx_status_code = 'SUBMITTED';
2625 
2626 		     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2627 			 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Updating Vendor header records with BANKRUPT Status as Vendor is on Bankruptcy for khr_id: '||vndr_bankruptcy_rec.khr_id);
2628 		     END IF;
2629 
2630 		     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2631 		       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Updating Vendor header records with BANKRUPT Status as Vendor is on Bankruptcy for khr_id: '||vndr_bankruptcy_rec.khr_id);
2632 		     END IF;
2633 
2634 		END IF;
2635 
2636 	END LOOP;
2637 
2638 	OPEN bankrupt_cnt_vndr_csr;
2639 	FETCH bankrupt_cnt_vndr_csr INTO l_vndr_bkrpt_cnt;
2640 	CLOSE bankrupt_cnt_vndr_csr;
2641 
2642 	IF ( l_vndr_bkrpt_cnt >0 OR l_cust_bkrpt_cnt >0)
2643 	THEN
2644 		COMMIT;
2645 	END IF;
2646 
2647     -- End added as part of Bug 15953954
2648 
2649 
2650     -- -----------------------------
2651     -- Start Bulk Fetch Code
2652     -- -----------------------------
2653     OPEN  xfer_csr;
2654     LOOP
2655     l_xfer_tbl.delete;
2656     FETCH xfer_csr BULK COLLECT INTO l_xfer_tbl LIMIT L_FETCH_SIZE;
2657 
2658     FND_FILE.PUT_LINE (FND_FILE.LOG, 'l_xfer_tbl count is: '||l_xfer_tbl.COUNT);
2659         -- --------------------------------------
2660         -- Process bulk-fetched records
2661         -- --------------------------------------
2662         IF l_xfer_tbl.COUNT > 0 THEN
2663 
2664            --l_hdr_id     := -9999;  -- Bug 7234827
2665 
2666            l_commit_cnt := 0;
2667 
2668            -- ---------------------------------------------------
2669            -- Update rest of the table records with missing data
2670            -- ---------------------------------------------------
2671            IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2672                         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Updating records with missing data');
2673            END IF;
2674 
2675             IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2676               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Updating records with missing data');
2677             END IF;
2678 
2679            hdr_cnt := 0;
2680            FOR K IN l_xfer_tbl.FIRST..l_xfer_tbl.LAST LOOP
2681             UPDATE okl_trx_ar_invoices_b
2682             SET request_id = lx_request_id
2683             WHERE ID = l_xfer_tbl(k).tai_id ;
2684 
2685 
2686             IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2687               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','starting l_xfer_tbl with k:'||k);
2688               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').tai_id:'||l_xfer_tbl(k).tai_id);
2689               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').amount:'||l_xfer_tbl(k).amount);
2690               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').line_description:'||l_xfer_tbl(k).line_description);
2691               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').inventory_item_id:'||l_xfer_tbl(k).inventory_item_id);
2692               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').line_type:'||l_xfer_tbl(k).line_type);
2693               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').quantity:'||l_xfer_tbl(k).quantity);
2694               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').line_number:'||l_xfer_tbl(k).line_number);
2695               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').sty_id:'||l_xfer_tbl(k).sty_id);
2696               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').khr_id:'||l_xfer_tbl(k).khr_id);
2697               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').contract_number:'||l_xfer_tbl(k).contract_number);
2698               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').asset_number:'||l_xfer_tbl(k).asset_number);
2699               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').invoice_format_line_type:'||l_xfer_tbl(k).invoice_format_line_type);
2700               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').stream_type:'||l_xfer_tbl(k).stream_type);
2701               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').currency_code:'||l_xfer_tbl(k).currency_code);
2702               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').currency_conversion_date:'||l_xfer_tbl(k).currency_conversion_date);
2703               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').currency_conversion_rate:'||l_xfer_tbl(k).currency_conversion_rate);
2704               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').currency_conversion_type:'||l_xfer_tbl(k).currency_conversion_type);
2705               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').cust_trx_type_id:'||l_xfer_tbl(k).cust_trx_type_id);
2706               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').customer_address_id:'||l_xfer_tbl(k).customer_address_id);
2707               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').customer_bank_account_id:'||l_xfer_tbl(k).customer_bank_account_id);
2708               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').customer_id:'||l_xfer_tbl(k).customer_id);
2709               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').hdr_description:'||l_xfer_tbl(k).hdr_description);
2710               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').invoice_message:'||l_xfer_tbl(k).invoice_message);
2711               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').org_id:'||l_xfer_tbl(k).org_id);
2712               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').receipt_method_id:'||l_xfer_tbl(k).receipt_method_id);
2713               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').set_of_books_id:'||l_xfer_tbl(k).set_of_books_id);
2714               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').tax_exempt_flag:'||l_xfer_tbl(k).tax_exempt_flag);
2715               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').term_id:'||l_xfer_tbl(k).term_id);
2716               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').trx_date:'||l_xfer_tbl(k).trx_date);
2717               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').trx_number:'||l_xfer_tbl(k).trx_number);
2718               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').consolidated_invoice_number:'||l_xfer_tbl(k).consolidated_invoice_number);
2719               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').invoice_format_type:'||l_xfer_tbl(k).invoice_format_type);
2720               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').invoice_pull_yn:'||l_xfer_tbl(k).invoice_pull_yn);
2721               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').private_label:'||l_xfer_tbl(k).private_label);
2722               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').legal_entity_id:'||l_xfer_tbl(k).legal_entity_id);
2723               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').account_class:'||l_xfer_tbl(k).account_class);
2724               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').dist_amount:'||l_xfer_tbl(k).dist_amount);
2725               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').dist_percent:'||l_xfer_tbl(k).dist_percent);
2726               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').code_combination_id:'||l_xfer_tbl(k).code_combination_id);
2727               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').rev_rec_basis:'||l_xfer_tbl(k).rev_rec_basis);
2728               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').cm_acct_rule:'||l_xfer_tbl(k).cm_acct_rule);
2729               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').rev_txn_id:'||l_xfer_tbl(k).rev_txn_id);
2730               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').inventory_org_id:'||l_xfer_tbl(k).inventory_org_id);
2731               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').ware_house_id:'||l_xfer_tbl(k).ware_house_id);
2732               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').kle_id:'||l_xfer_tbl(k).kle_id);
2733               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').ship_to:'||l_xfer_tbl(k).ship_to);
2734               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').l_inv_id:'||l_xfer_tbl(k).l_inv_id);
2735               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').uom_code:'||l_xfer_tbl(k).uom_code);
2736               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').txn_id:'||l_xfer_tbl(k).txn_id);
2737               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').okl_source_billing_trx:'||l_xfer_tbl(k).okl_source_billing_trx);
2738               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').investor_agreement_number:'||l_xfer_tbl(k).investor_agreement_number);
2739               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').investor_name:'||l_xfer_tbl(k).investor_name);
2740               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').quote_number:'||l_xfer_tbl(k).quote_number);
2741               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').rbk_request_number:'||l_xfer_tbl(k).rbk_request_number);
2742               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').rbk_ori_invoice_number:'||l_xfer_tbl(k).rbk_ori_invoice_number);
2743               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').rbk_ori_invoice_line_number:'||l_xfer_tbl(k).rbk_ori_invoice_line_number);
2744               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').rbk_adjustment_date:'||l_xfer_tbl(k).rbk_adjustment_date);
2745               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').inf_id:'||l_xfer_tbl(k).inf_id);
2746               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').try_id:'||l_xfer_tbl(k).try_id);
2747               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').try_name:'||l_xfer_tbl(k).try_name);
2748               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').invoice_line_type:'||l_xfer_tbl(k).invoice_line_type);
2749               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').til_id:'||l_xfer_tbl(k).til_id);
2750             END IF;
2751 
2752 
2753 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
2754 -- It seems like the folowing is a block of dead code. l_rev_rec_basis initial as null
2755 -- so the "then" will never be happened
2756                   -- Populate CM acct rule
2757 --                  IF (  l_rev_rec_basis = 'CASH_RECEIPT'
2758                   -- cklee : start: For bug 5387704/R12: 5447521
2759                   IF (  l_xfer_tbl(k).rev_rec_basis = 'CASH_RECEIPT'
2760                   -- cklee : end: For bug 5387704/R12: 5447521
2761 --                        AND l_xfer_tbl(k).XLS_AMOUNT < 0    )
2762                         AND l_xfer_tbl(k).AMOUNT < 0    )
2763                   THEN
2764                     l_xfer_tbl(k).cm_acct_rule := 'PRORATE';
2765                   END IF;
2766 
2767                  IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2768                    fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').cm_acct_rule:'||l_xfer_tbl(k).cm_acct_rule);
2769                  END IF;
2770 
2771                   -- To find the top line kle_id
2772 
2773 --start:|  06-Apr-2007 cklee -- Fixed kle_id, asset_number issues                    |
2774                   -- 1. Check if it's a top line
2775                   OPEN is_top_line(l_xfer_tbl(k).kle_id);
2776                   FETCH is_top_line INTO l_is_top_line;
2777                   is_top_line_flag := is_top_line%FOUND;
2778                   CLOSE is_top_line;
2779 
2780                   IF is_top_line_flag THEN
2781                     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2782                       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug',l_xfer_tbl(k).kle_id || ' is top line');
2783                     END IF;
2784                   ELSE
2785                     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2786                       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug',l_xfer_tbl(k).kle_id || ' is not a top line');
2787                     END IF;
2788                   END IF;
2789 
2790                   -- 2. get top line if needed
2791                   --Bug# 10089273
2792                   l_top_kle_id := NULL;
2793                   IF NOT is_top_line_flag THEN
2794                     OPEN get_top_line(l_xfer_tbl(k).kle_id);
2795                     --Bug# 10089273
2796                     FETCH get_top_line INTO l_top_kle_id;
2797                     CLOSE get_top_line;
2798                   ELSE
2799                     l_top_kle_id := l_xfer_tbl(k).kle_id;
2800                   END IF;
2801 
2802                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2803                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug',l_top_kle_id || ' fetched as a top line');
2804                   END IF;
2805 
2806                   -- 3. get top line name (asset number)
2807                   --Bug# 10089273
2808                   OPEN get_top_line_name(l_top_kle_id);
2809                   FETCH get_top_line_name INTO l_xfer_tbl(k).ASSET_NUMBER;
2810                   CLOSE get_top_line_name;
2811 
2812                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2813                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug',l_xfer_tbl(k).ASSET_NUMBER || ' fetched as asset number');
2814                   END IF;
2815 
2816 --end:|  06-Apr-2007 cklee -- Fixed kle_id, asset_number issues                    |
2817 
2818 
2819                   -- Populate warehouse_id
2820                   IF (NVL(l_use_inv_org, 'N') = 'Y') THEN
2821                        --if it is a Remarketing invoice
2822                        IF (l_xfer_tbl(k).inventory_org_id IS NOT NULL) THEN
2823                          l_xfer_tbl(k).ware_house_id := l_xfer_tbl(k).inventory_org_id;
2824                        END IF;
2825                   ELSE
2826                       l_xfer_tbl(k).ware_house_id := NULL;
2827                   END IF;
2828 
2829                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2830                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').ware_house_id:'||l_xfer_tbl(k).ware_house_id);
2831                   END IF;
2832 
2833                   l_chr_id := l_xfer_tbl(k).khr_id;
2834 
2835 
2836 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
2837 
2838                   -- Bug 4523079; stmathew
2839                   l_install_location_id := NULL;
2840                   l_location_id := NULL;
2841                   -- End Code; Bug 4523079; stmathew
2842 
2843                   --Bug# 10089273
2844                   OPEN  ship_to_csr(l_top_kle_id);
2845                   FETCH ship_to_csr INTO l_install_location_id, l_location_id;
2846                   CLOSE ship_to_csr;
2847 
2848                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2849                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_install_location_id:'||l_install_location_id);
2850                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_location_id:'||l_location_id);
2851                   END IF;
2852 
2853                   l_temp_sold_fee := NULL;
2854                   --Bug# 10089273
2855                   OPEN  sold_service_fee_csr (l_top_kle_id);
2856                   FETCH sold_service_fee_csr INTO l_temp_sold_fee;
2857                   CLOSE sold_service_fee_csr;
2858 
2859                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2860                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_temp_sold_fee:'||l_temp_sold_fee);
2861                   END IF;
2862 
2863                   IF l_temp_sold_fee = '1' THEN
2864                     -- Get Inventory_item_id
2865                     l_inv_id := NULL;
2866                     --Bug# 10089273
2867                     OPEN  get_service_inv_csr (l_top_kle_id);
2868                     FETCH get_service_inv_csr INTO l_inv_id;
2869                     CLOSE get_service_inv_csr;
2870                   ELSE
2871                     -- Get Inventory_item_id
2872                     l_inv_id := NULL;
2873                     --Bug# 10089273
2874                     OPEN  get_inv_item_id (l_top_kle_id);
2875                     FETCH get_inv_item_id INTO l_inv_id;
2876                     CLOSE get_inv_item_id;
2877                   END IF;
2878 
2879                   -- -------------------------------------------
2880                   -- Store inventory item id for the item on
2881                   -- contract line
2882                   -- -------------------------------------------
2883                   l_xfer_tbl(k).l_inv_id := l_inv_id;
2884 
2885                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2886                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_inv_id:'||l_inv_id);
2887                   END IF;
2888 
2889                   -- Get UOM Code
2890                   l_uom_code := NULL;
2891                   IF l_xfer_tbl(k).INVENTORY_ITEM_ID IS NULL THEN
2892                     l_xfer_tbl(k).INVENTORY_ITEM_ID := l_inv_id;
2893                     OPEN  get_uom_code ( l_inv_id );
2894                     FETCH get_uom_code INTO l_uom_code;
2895                     CLOSE get_uom_code;
2896                   ELSE
2897                     OPEN  get_uom_code ( l_xfer_tbl(k).INVENTORY_ITEM_ID );
2898                     FETCH get_uom_code INTO l_uom_code;
2899                     CLOSE get_uom_code;
2900                   END IF;
2901 
2902                   l_xfer_tbl(k).uom_code := l_uom_code;
2903                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2904                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_uom_code:'||l_uom_code);
2905                   END IF;
2906                   -- Check if Vendor is the same as the customer on the Contract
2907                   lx_customer_id := NULL;
2908                   get_customer_id(  l_xfer_tbl(k).CONTRACT_NUMBER ,lx_customer_id );
2909                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2910                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','lx_customer_id:'||lx_customer_id);
2911                   END IF;
2912                   -- Bug 4523079; stmathew
2913                   l_ship_to := NULL;
2914                   -- End code Bug 4523079; stmathew
2915 
2916                   --Bug# 12617408
2917                   -- For Remarketing invoices, fetch ship_to from Sales Order
2918                   IF NVL(l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX,'NONE') = 'REMARKETING' THEN
2919 
2920                     OPEN rmkt_ship_to_csr(p_til_id => l_xfer_tbl(k).til_id);
2921                     FETCH rmkt_ship_to_csr INTO l_ship_to;
2922                     CLOSE rmkt_ship_to_csr;
2923 
2924                   ELSE
2925                     OPEN  Ship_to_csr2( lx_customer_id, l_install_location_id, l_location_id, l_xfer_tbl(k).ORG_ID);
2926                     FETCH Ship_to_csr2 INTO l_ship_to;
2927                     CLOSE Ship_to_csr2;
2928 
2929                     IF ( lx_customer_id = l_xfer_tbl(k).CUSTOMER_ID ) THEN
2930                           NULL;
2931                     ELSE
2932                           l_ship_to := NULL;
2933                     END IF;
2934 
2935                   END IF;
2936 
2937                   l_xfer_tbl(k).ship_to := l_ship_to;
2938                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2939                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').ship_to:'||l_xfer_tbl(k).ship_to);
2940                   END IF;
2941 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
2942                   -- Bug 7622476
2943                   /*
2944                   -- get invoice group related data
2945                   Get_chr_inv_grp(
2946                     p_inf_id                => l_xfer_tbl(k).inf_id
2947                    ,p_sty_id                => l_xfer_tbl(k).sty_id
2948                    ,x_group_by_contract_yn  => l_group_by_contract_yn
2949                    ,x_contract_level_yn     => l_contract_level_yn
2950                    ,x_group_asset_yn        => l_group_asset_yn
2951                    ,x_invoice_group         => l_invoice_group
2952                    );
2953 
2954                  l_khr_id := l_xfer_tbl(k).KHR_ID;
2955                  l_xfer_tbl(k).KHR_ID := NULL;
2956                  --l_kle_id := l_xfer_tbl(k).KLE_ID;
2957                  --l_xfer_tbl(k).KLE_ID := NULL;
2958                  IF (l_group_by_contract_yn  = 'Y' OR l_contract_level_yn = 'N') THEN
2959                    l_xfer_tbl(k).KHR_ID := l_khr_id;
2960                    --IF l_group_by_assets_yn = 'N' THEN
2961                    --  l_xfer_tbl(k).KLE_ID := l_kle_id;
2962                    --END IF;
2963                  END IF; */
2964 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
2965 
2966            END LOOP; -- Populate missing values
2967 
2968            inv_lines_tbl.delete;
2969            inv_dist_tbl.delete;
2970            sales_credits_tbl.delete;
2971            ar_contingency_tbl.delete;
2972            IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2973              fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','finished deleting pl/sql tables');
2974            END IF;
2975            -- Build ra_interface_lines_rec
2976            -- Build ra_interface_distributions_rec
2977            -- Build ra_interface_salescredits_all
2978            -- Build ar_interface_conts_all
2979 
2980            IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
2981                         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Building AR records');
2982            END IF;
2983 
2984            n := 1; -- rmunjulu R12 Fixes  -- initialize n
2985            FOR K IN l_xfer_tbl.FIRST..l_xfer_tbl.LAST LOOP
2986 
2987            BEGIN -- Bug#9576651
2988              IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
2989                fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','starting l_xfer_tbl loop with k:'||k);
2990              END IF;
2991              --Check if invoice line is belonging to vendor as a customer
2992              --or contract customer
2993 
2994 	     -- sosharma FP bug 9962325
2995            if l_xfer_tbl(K).CUSTOMER_ID is NULL then
2996 
2997 	      l_chk_customer_id:=null;
2998               get_customer_id(  l_xfer_tbl(k).CONTRACT_NUMBER ,l_chk_customer_id );
2999 
3000 	   end if;
3001 
3002              OPEN c_inv_customer(l_xfer_tbl(K).KHR_ID, nvl(l_xfer_tbl(K).CUSTOMER_ID,l_chk_customer_id));
3003              FETCH c_inv_customer INTO l_inv_customer_rec;
3004              l_inv_customer := c_inv_customer%FOUND;
3005              CLOSE c_inv_customer;
3006                -- ----------------------------------
3007                -- Update prev header status
3008                -- Except for first record
3009                -- ----------------------------------
3010                IF l_hdr_id <> -9999 THEN
3011 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
3012 --                    UPDATE OKL_EXT_SELL_INVS_B
3013                     UPDATE okl_trx_ar_invoices_b
3014 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
3015                     SET trx_status_code = 'PROCESSED',
3016                         last_update_date = sysdate,
3017                         last_updated_by = lx_last_updated_by,
3018                         last_update_login = lx_last_update_login,
3019                         request_id = lx_request_id,
3020                         program_update_date = sysdate,
3021                         program_application_id = lx_program_application_id,
3022                         program_id = lx_program_id
3023                     WHERE ID = l_hdr_id;
3024                     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3025                                           OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Updating header record with id: '||l_hdr_id);
3026                     END IF;
3027                    IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3028                      fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Updating header record with id: '||l_hdr_id);
3029                    END IF;
3030                END IF;
3031 
3032                -- --------------------------
3033                -- Increment Commit counter
3034                -- --------------------------
3035 
3036                l_commit_cnt := l_commit_cnt + 1;
3037 
3038                IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3039 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
3040 --                                OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Updating header record with id: '||l_xfer_tbl(k).xsi_id );
3041                                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Updating header record with id: '||l_xfer_tbl(k).tai_id );
3042 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
3043                END IF;
3044                IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3045                  fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Updating header record with id: '||l_xfer_tbl(k).tai_id);
3046                END IF;
3047 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
3048 --               IF l_hdr_id <> l_xfer_tbl(k).xsi_id THEN
3049 --commented out for R12               IF l_hdr_id <> l_xfer_tbl(k).tai_id THEN
3050 --                  hdr_cnt := hdr_cnt + 1;
3051                   hdr_cnt := k;
3052 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
3053 
3054                   --vthiruva - Bug 4222231..start
3055                   --for each new contract fetch the sales rep is and number and if there is no
3056                   --sales rep attached to the contract, default it to 'No Sales Credit'(-3)
3057                   -- Bug 7622476
3058                   -- get invoice group related data
3059                   Get_chr_inv_grp(
3060                     p_inf_id                => l_xfer_tbl(k).inf_id
3061                    ,p_sty_id                => l_xfer_tbl(k).sty_id
3062                    ,x_group_by_contract_yn  => l_group_by_contract_yn
3063                    ,x_contract_level_yn     => l_contract_level_yn
3064                    ,x_group_asset_yn        => l_group_asset_yn
3065                    ,x_invoice_group         => l_invoice_group
3066                    );
3067 
3068                  l_khr_id := l_xfer_tbl(k).KHR_ID;
3069                  l_xfer_tbl(k).KHR_ID := NULL;
3070                  --l_kle_id := l_xfer_tbl(k).KLE_ID;
3071                  --l_xfer_tbl(k).KLE_ID := NULL;
3072                  IF (l_group_by_contract_yn  = 'Y' OR l_contract_level_yn = 'N') THEN
3073                    l_xfer_tbl(k).KHR_ID := l_khr_id;
3074                    --IF l_group_by_assets_yn = 'N' THEN
3075                    --  l_xfer_tbl(k).KLE_ID := l_kle_id;
3076                    --END IF;
3077                  END IF;
3078 
3079                   IF (l_prev_contract_num IS NULL OR
3080                       l_prev_contract_num <> l_xfer_tbl(k).CONTRACT_NUMBER) THEN
3081 
3082                     OPEN get_sales_rep(l_xfer_tbl(k).CONTRACT_NUMBER);
3083                     FETCH get_sales_rep INTO l_sales_person;
3084                     IF get_sales_rep%NOTFOUND THEN
3085                       l_salesrep_id := -3;
3086                       l_salesrep_number := -3;
3087                     ELSE
3088                       OPEN sales_rep_csr(l_sales_person);
3089                       FETCH sales_rep_csr INTO l_salesrep_id, l_salesrep_number;
3090                       CLOSE sales_rep_csr;
3091                     END IF;
3092                     CLOSE get_sales_rep;
3093                    IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3094                      fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_salesrep_id:'||l_salesrep_id);
3095                      fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_salesrep_number:'||l_salesrep_number);
3096                    END IF;
3097                     l_prev_contract_num := l_xfer_tbl(k).CONTRACT_NUMBER;
3098 
3099                   END IF;
3100                   --vthiruva - Bug 4222231..end
3101 
3102                   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3103                                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Preparing Ra_interface_lines_all record.');
3104                   END IF;
3105 
3106                   -- -------------------------------------
3107                   -- Build Invoice Lines Table
3108                   -- -------------------------------------
3109                   inv_lines_tbl(hdr_cnt).WAREHOUSE_ID := l_xfer_tbl(k).ware_house_id;
3110                   --Bug# 13340410: Setting org_id upfront so that record can be
3111                   -- deleted from ra_interface_lines in case of errors
3112                   inv_lines_tbl(hdr_cnt).ORG_ID := l_xfer_tbl(k).ORG_ID;
3113 
3114                   IF (l_xfer_tbl(k).rev_rec_basis = 'CASH_RECEIPT') THEN
3115                     --Added if clause by bkatraga for bug 5616268
3116                     --Accounting_rule_id will not be populated in case of on-account credit memo
3117                     IF ((l_xfer_tbl(k).AMOUNT >= 0) OR (l_xfer_tbl(k).rev_txn_id IS NOT NULL)) THEN
3118                         inv_lines_tbl(hdr_cnt).ACCOUNTING_RULE_ID := 1;
3119                     END IF;
3120                     --end bkatraga
3121                   ELSE
3122                         inv_lines_tbl(hdr_cnt).ACCOUNTING_RULE_ID := NULL;
3123                   END IF;
3124 
3125                   inv_lines_tbl(hdr_cnt).ACCOUNTING_RULE_DURATION := NULL;
3126                   inv_lines_tbl(hdr_cnt).AGREEMENT_ID := NUll;
3127 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
3128 --                  inv_lines_tbl(hdr_cnt).AMOUNT := l_xfer_tbl(k).XLS_AMOUNT;
3129                   inv_lines_tbl(hdr_cnt).AMOUNT := l_xfer_tbl(k).AMOUNT;
3130 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
3131 
3132                   -- tax-only invoice
3133 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
3134 --                  if l_xfer_tbl(k).XLS_AMOUNT = 0 then
3135                   -- Bug 6619311
3136                   /*
3137                   if l_xfer_tbl(k).AMOUNT = 0 then
3138 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
3139                      inv_lines_tbl(hdr_cnt).memo_line_id := l_memo_line_id;
3140                   end if;
3141                   */
3142 
3143                   inv_lines_tbl(hdr_cnt).BATCH_SOURCE_NAME := 'OKL_CONTRACTS';
3144                   inv_lines_tbl(hdr_cnt).COMMENTS := l_xfer_tbl(k).INVOICE_MESSAGE;
3145                   inv_lines_tbl(hdr_cnt).CONVERSION_DATE := l_xfer_tbl(k).currency_conversion_date;
3146                   inv_lines_tbl(hdr_cnt).CONVERSION_RATE := l_xfer_tbl(k).currency_conversion_rate;
3147                   inv_lines_tbl(hdr_cnt).CONVERSION_TYPE := l_xfer_tbl(k).currency_conversion_type;
3148                   inv_lines_tbl(hdr_cnt).CREATED_BY := G_user_id;
3149                   inv_lines_tbl(hdr_cnt).CREATION_DATE := sysdate;
3150                   inv_lines_tbl(hdr_cnt).CREDIT_METHOD_FOR_ACCT_RULE := l_xfer_tbl(k).cm_acct_rule;
3151                   inv_lines_tbl(hdr_cnt).CREDIT_METHOD_FOR_INSTALLMENTS := NULL;
3152                   inv_lines_tbl(hdr_cnt).CURRENCY_CODE := l_xfer_tbl(k).CURRENCY_CODE;
3153                   inv_lines_tbl(hdr_cnt).CUST_TRX_TYPE_ID := l_xfer_tbl(k).CUST_TRX_TYPE_ID;
3154                   /*inv_lines_tbl(hdr_cnt).DESCRIPTION := NVL (NVL (l_xfer_tbl(k).LINE_DESCRIPTION,
3155                                 l_xfer_tbl(k).HDR_DESCRIPTION), 'OKL Billing');*/
3156                   -- Bug 7045347
3157                   inv_lines_tbl(hdr_cnt).DESCRIPTION := NVL(l_xfer_tbl(k).INVOICE_LINE_TYPE, SUBSTR(TRIM(l_xfer_tbl(k).STREAM_TYPE),1,G_AR_DATA_LENGTH));
3158                   inv_lines_tbl(hdr_cnt).LAST_UPDATED_BY := G_user_id;
3159                   inv_lines_tbl(hdr_cnt).LAST_UPDATE_DATE := sysdate;
3160                   inv_lines_tbl(hdr_cnt).LINE_TYPE := l_xfer_tbl(k).LINE_TYPE;
3161 
3162                   inv_lines_tbl(hdr_cnt).TRX_NUMBER := l_xfer_tbl(k).TRX_NUMBER;
3163                   inv_lines_tbl(hdr_cnt).TRX_DATE := l_xfer_tbl(k).TRX_DATE;
3164                   inv_lines_tbl(hdr_cnt).GL_DATE := l_xfer_tbl(k).TRX_DATE;
3165                   inv_lines_tbl(hdr_cnt).PRINTING_OPTION := NULL;
3166 
3167 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
3168                   inv_lines_tbl(hdr_cnt).CONS_BILLING_NUMBER := NULL;
3169                   IF l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX = 'INVESTOR_STAKE' THEN
3170 		    -- gkhuntet 24-JUL-2007  added for Investor Invoices Start.
3171                     inv_lines_tbl(hdr_cnt).BATCH_SOURCE_NAME := 'OKL_INVESTOR';
3172 	 	    -- gkhuntet 24-JUL-2007  added for Investor Invoices End.
3173 		    inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE1 := SUBSTR(TRIM(l_xfer_tbl(k).Investor_Agreement_Number),1,G_AR_DATA_LENGTH);
3174                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE2 := NULL;
3175                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE3 := NULL;
3176                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE4 := SUBSTR(TRIM(l_xfer_tbl(k).Investor_Name),1,G_AR_DATA_LENGTH);
3177                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE5 := SUBSTR(TRIM(l_xfer_tbl(k).STREAM_TYPE),1,G_AR_DATA_LENGTH);
3178                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE6 := NULL;
3179                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE7 := NULL;
3180                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE8 := NULL;
3181                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE9 := NULL;
3182                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE10 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
3183                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE11 := NULL;
3184                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE12 := NULL;
3185                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE13 := NULL;
3186                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE14 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
3187                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE15 := NULL;
3188                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_CONTEXT := 'OKL_INVESTOR';
3189 
3190                   ELSE
3191                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE1 := NULL;
3192                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE2 := SUBSTR(TRIM(l_invoice_group),1,G_AR_DATA_LENGTH);
3193                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE3 := SUBSTR(TRIM(l_xfer_tbl(k).INVOICE_PULL_YN),1,G_AR_DATA_LENGTH);
3194                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE4 := SUBSTR(TRIM(l_xfer_tbl(k).PRIVATE_LABEL),1,G_AR_DATA_LENGTH);
3195                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE5 := NULL;
3196                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE6 := SUBSTR(TRIM(l_xfer_tbl(k).CONTRACT_NUMBER),1,G_AR_DATA_LENGTH);
3197                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE7 := SUBSTR(TRIM(l_xfer_tbl(k).ASSET_NUMBER),1,G_AR_DATA_LENGTH);
3198                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE8 := SUBSTR(TRIM(l_xfer_tbl(k).INVOICE_FORMAT_LINE_TYPE),1,G_AR_DATA_LENGTH);
3199                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE9 := SUBSTR(TRIM(l_xfer_tbl(k).STREAM_TYPE),1,G_AR_DATA_LENGTH);
3200                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE10 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
3201                     -- if the source of the billing trx is termination quote, the OKL billing trx number is Quite_number
3202                     IF l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX = 'TERMINATION_QUOTE' THEN
3203                       inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE11 := SUBSTR(TRIM(l_xfer_tbl(k).Quote_number),1,G_AR_DATA_LENGTH);
3204                     END IF;
3205                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE12 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).KHR_ID)),1,G_AR_DATA_LENGTH);
3206                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE13 := SUBSTR(TRIM(l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX),1,G_AR_DATA_LENGTH);
3207                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE14 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
3208                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_ATTRIBUTE15 := SUBSTR(TRIM(l_xfer_tbl(k).INVOICE_FORMAT_TYPE),1,G_AR_DATA_LENGTH);
3209                     inv_lines_tbl(hdr_cnt).INTERFACE_LINE_CONTEXT := 'OKL_CONTRACTS';
3210                   END IF;
3211 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
3212 
3213 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
3214 -- start: cklee 3/22/2007
3215 -- Credit memo:
3216 -- If It's a credit memo invoice, we need to assign the invoice reference
3217 -- to interfcae table for the following:
3218 -- 1. If the invoice reference is a legacy invoice (up to OKL.H), assign FK to
3219 --    REFERENCE_LINExxx
3220 -- 2. If the invoice reference is NOT a legacy invoice (R12 going forward), get the AR
3221 --    invoice line and then assign to REFERENCE_LINE_ID.
3222           IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3223             --Bug# 13340410
3224             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').org_id:' || inv_lines_tbl(hdr_cnt).org_id);
3225 
3226             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').accounting_rule_id:'||inv_lines_tbl(hdr_cnt).accounting_rule_id);
3227             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').amount:'||inv_lines_tbl(hdr_cnt).amount);
3228             -- Bug 6619311
3229             /*
3230             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').memo_line_id:'||inv_lines_tbl(hdr_cnt).memo_line_id);
3231             */
3232             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').batch_source_name:'||inv_lines_tbl(hdr_cnt).batch_source_name);
3233             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').comments:'||inv_lines_tbl(hdr_cnt).comments);
3234             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').conversion_date:'||inv_lines_tbl(hdr_cnt).conversion_date);
3235             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').conversion_rate:'||inv_lines_tbl(hdr_cnt).conversion_rate);
3236             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').conversion_type:'||inv_lines_tbl(hdr_cnt).conversion_type);
3237             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').created_by:'||inv_lines_tbl(hdr_cnt).created_by);
3238             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').creation_date:'||inv_lines_tbl(hdr_cnt).creation_date);
3239             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').credit_method_for_acct_rule:'||inv_lines_tbl(hdr_cnt).credit_method_for_acct_rule);
3240             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').credit_method_for_installments:'|| inv_lines_tbl(hdr_cnt).credit_method_for_installments);
3241             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').currency_code:'||inv_lines_tbl(hdr_cnt).currency_code);
3242             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').cust_trx_type_id:'||inv_lines_tbl(hdr_cnt).cust_trx_type_id);
3243             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').description:'||inv_lines_tbl(hdr_cnt).description);
3244             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').last_updated_by:'||inv_lines_tbl(hdr_cnt).last_updated_by);
3245             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').last_update_date:'||inv_lines_tbl(hdr_cnt).last_update_date);
3246             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').line_type:'||inv_lines_tbl(hdr_cnt).line_type);
3247             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').trx_number:'||inv_lines_tbl(hdr_cnt).trx_number);
3248             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').trx_date:'||inv_lines_tbl(hdr_cnt).trx_date);
3249             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').gl_date:'||inv_lines_tbl(hdr_cnt).gl_date);
3250             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').printing_option:'||inv_lines_tbl(hdr_cnt).printing_option);
3251             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').batch_source_name:'||inv_lines_tbl(hdr_cnt).batch_source_name);
3252             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute1:'||inv_lines_tbl(hdr_cnt).interface_line_attribute1);
3253             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute2:'||inv_lines_tbl(hdr_cnt).interface_line_attribute2);
3254             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute3:'||inv_lines_tbl(hdr_cnt).interface_line_attribute3);
3255             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute4:'||inv_lines_tbl(hdr_cnt).interface_line_attribute4);
3256             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute5:'||inv_lines_tbl(hdr_cnt).interface_line_attribute5);
3257             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute6:'||inv_lines_tbl(hdr_cnt).interface_line_attribute6);
3258             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute7:'||inv_lines_tbl(hdr_cnt).interface_line_attribute7);
3259             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute8:'||inv_lines_tbl(hdr_cnt).interface_line_attribute8);
3260             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute9:'||inv_lines_tbl(hdr_cnt).interface_line_attribute9);
3261             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute10:'||inv_lines_tbl(hdr_cnt).interface_line_attribute10);
3262             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute11:'||inv_lines_tbl(hdr_cnt).interface_line_attribute11);
3263             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute12:'||inv_lines_tbl(hdr_cnt).interface_line_attribute12);
3264             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute13:'||inv_lines_tbl(hdr_cnt).interface_line_attribute13);
3265             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute14:'||inv_lines_tbl(hdr_cnt).interface_line_attribute14);
3266             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_attribute15:'||inv_lines_tbl(hdr_cnt).interface_line_attribute15);
3267             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').interface_line_context:'||inv_lines_tbl(hdr_cnt).interface_line_context);
3268 
3269           END IF;
3270 
3271 
3272                   IF (l_xfer_tbl(k).rev_txn_id IS NOT NULL) THEN
3273 
3274 
3275                     open is_legacy_invoice(l_xfer_tbl(k).rev_txn_id);
3276                     fetch is_legacy_invoice into l_lsm_id;
3277                     close is_legacy_invoice;
3278 
3279 
3280                     -- it's a legacy invoice for which the credit memo is applied
3281 					IF l_lsm_id is not null THEN
3282 
3283 
3284                         inv_lines_tbl(hdr_cnt).REFERENCE_LINE_CONTEXT := 'OKL_CONTRACTS';
3285                         inv_lines_tbl(hdr_cnt).REFERENCE_LINE_ATTRIBUTE14
3286                             := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).rev_txn_id)),1,G_AR_DATA_LENGTH);
3287 
3288                     ELSE
3289 
3290 
3291                       OPEN get_invoice_line_id(l_xfer_tbl(k).rev_txn_id);
3292                       fetch get_invoice_line_id into l_customer_trx_line_id;
3293                       close get_invoice_line_id;
3294 
3295 
3296                       inv_lines_tbl(hdr_cnt).REFERENCE_LINE_ID := TO_CHAR(l_customer_trx_line_id);
3297 
3298 
3299                     END IF;
3300                   END IF;
3301 -- end: cklee 3/22/2007
3302 
3303           IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3304             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_lsm_id:'||l_lsm_id);
3305             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').reference_line_context:'||inv_lines_tbl(hdr_cnt).reference_line_context);
3306             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').reference_line_id:'||inv_lines_tbl(hdr_cnt).reference_line_id);
3307           END IF;
3308 
3309 
3310                   --akrangan added ebtax billing impacts coding start
3311                   IF l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX = 'TAX_ONLY_INVOICE_TAX' THEN
3312  	          OPEN tax_sources_csr(p_tai_id => l_xfer_tbl(k).tai_id,
3313  	                              p_tld_id =>l_xfer_tbl(k).txn_id);
3314  	          FETCH tax_sources_csr INTO tax_sources_rec;
3315  	          CLOSE tax_sources_csr;
3316  	          --populating the invoice lines interface tbl with tax sources rec
3317  	          inv_lines_tbl(hdr_cnt).source_trx_id := tax_sources_rec.trx_id;
3318  	          inv_lines_tbl(hdr_cnt).source_trx_line_id := tax_sources_rec.trx_line_id;
3319  	          inv_lines_tbl(hdr_cnt).source_trx_line_type := tax_sources_rec.trx_level_type;
3320  	          inv_lines_tbl(hdr_cnt).source_application_id := tax_sources_rec.application_id;
3321  	          inv_lines_tbl(hdr_cnt).source_event_class_code := tax_sources_rec.event_class_code;
3322  	          inv_lines_tbl(hdr_cnt).source_entity_code := tax_sources_rec.entity_code;
3323                   -- Bug 6619311
3324                   inv_lines_tbl(hdr_cnt).SOURCE_TRX_DETAIL_TAX_LINE_ID := tax_sources_rec.tax_line_id;
3325                   inv_lines_tbl(hdr_cnt).TAXED_UPSTREAM_FLAG := 'Y';
3326                   inv_lines_tbl(hdr_cnt).TAXABLE_FLAG := 'N';
3327                   OPEN zx_lines_csr(tax_sources_rec.tax_line_id);
3328                   FETCH zx_lines_csr into zx_lines_rec;
3329                   CLOSE zx_lines_csr;
3330                   inv_lines_tbl(hdr_cnt).HISTORICAL_FLAG := zx_lines_rec.HISTORICAL_FLAG;
3331                   inv_lines_tbl(hdr_cnt).TAX_REGIME_CODE := zx_lines_rec.TAX_REGIME_CODE;
3332                   inv_lines_tbl(hdr_cnt).TAX := zx_lines_rec.TAX;
3333                   inv_lines_tbl(hdr_cnt).TAX_STATUS_CODE := zx_lines_rec.TAX_STATUS_CODE;
3334                   inv_lines_tbl(hdr_cnt).TAX_RATE_CODE := zx_lines_rec.TAX_RATE_CODE;
3335                   inv_lines_tbl(hdr_cnt).TAX_JURISDICTION_CODE := zx_lines_rec.TAX_JURISDICTION_CODE;
3336                   inv_lines_tbl(hdr_cnt).TAXABLE_AMOUNT := zx_lines_rec.TAXABLE_AMT;
3337                   inv_lines_tbl(hdr_cnt).LEGAL_ENTITY_ID := zx_lines_rec.LEGAL_ENTITY_ID;
3338                   /*inv_lines_tbl(hdr_cnt).TRX_BUSINESS_CATEGORY := NULL;
3339                   inv_lines_tbl(hdr_cnt).TAX_CODE := NULL;
3340                   inv_lines_tbl(hdr_cnt).PRODUCT_CATEGORY := NULL;
3341                   inv_lines_tbl(hdr_cnt).PRODUCT_TYPE := NULL;
3342                   inv_lines_tbl(hdr_cnt).LINE_INTENDED_USE := NULL;
3343                   inv_lines_tbl(hdr_cnt).USER_DEFINED_FISC_CLASS := NULL;
3344                   inv_lines_tbl(hdr_cnt).ASSESSABLE_VALUE := NULL;
3345                   --inv_lines_tbl(hdr_cnt).DEFAULT_TAXATION_COUNTRY := NULL;*/
3346                   inv_lines_tbl(hdr_cnt).DEFAULT_TAXATION_COUNTRY := x_tax_det_rec.X_DEFAULT_TAXATION_COUNTRY;
3347 
3348                   END IF;
3349  	          --akrangan added ebtax billing impacts coding end
3350             IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3351               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').source_trx_id:'||inv_lines_tbl(hdr_cnt).source_trx_id);
3352               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').source_trx_line_id:'||inv_lines_tbl(hdr_cnt).source_trx_line_id);
3353               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').source_trx_line_type:'||inv_lines_tbl(hdr_cnt).source_trx_line_type);
3354               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').source_application_id:'||inv_lines_tbl(hdr_cnt).source_application_id);
3355               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').source_event_class_code:'||inv_lines_tbl(hdr_cnt).source_event_class_code);
3356               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').source_entity_code:'||inv_lines_tbl(hdr_cnt).source_entity_code);
3357             END IF;
3358 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
3359 
3360                   IF l_xfer_tbl(k).INVENTORY_ITEM_ID IS NULL
3361 		    AND l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX <> 'TAX_ONLY_INVOICE_TAX' THEN
3362                      inv_lines_tbl(hdr_cnt).INVENTORY_ITEM_ID := l_xfer_tbl(k).l_inv_id;
3363                   ELSIF l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX <> 'TAX_ONLY_INVOICE_TAX' THEN
3364                      inv_lines_tbl(hdr_cnt).INVENTORY_ITEM_ID := l_xfer_tbl(k).INVENTORY_ITEM_ID;
3365                   END IF;
3366 
3367                 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3368                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').inventory_item_id:'||inv_lines_tbl(hdr_cnt).inventory_item_id);
3369                 END IF;
3370 
3371                   IF (l_xfer_tbl(k).rev_rec_basis = 'CASH_RECEIPT') THEN
3372                     --Added if clause by bkatraga for bug 5616268
3373                     --Accounting_rule_id will not be populated in case of on-account credit memo
3374                     IF ((l_xfer_tbl(k).AMOUNT >= 0) OR (l_xfer_tbl(k).rev_txn_id IS NOT NULL)) THEN
3375                          inv_lines_tbl(hdr_cnt).INVOICING_RULE_ID := -2;
3376                     END IF;
3377                     --end bkatraga
3378                   ELSE
3379                         inv_lines_tbl(hdr_cnt).INVOICING_RULE_ID := NULL;
3380                   END IF;
3381 
3382                 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3383                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').invoicing_rule_id:'||inv_lines_tbl(hdr_cnt).invoicing_rule_id);
3384                 END IF;
3385 
3386                   IF (l_xfer_tbl(k).rev_rec_basis = 'CASH_RECEIPT') THEN
3387                         inv_lines_tbl(hdr_cnt).OVERRIDE_AUTO_ACCOUNTING_FLAG := 'Y';
3388                   ELSE
3389                         inv_lines_tbl(hdr_cnt).OVERRIDE_AUTO_ACCOUNTING_FLAG := NULL;
3390                   END IF;
3391                 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3392                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').override_auto_accounting_flag:'||inv_lines_tbl(hdr_cnt).override_auto_accounting_flag);
3393                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').RECEIPT_METHOD_ID:'||l_xfer_tbl(k).RECEIPT_METHOD_ID);
3394                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl('||k||').KLE_ID:'||l_xfer_tbl(k).KLE_ID);
3395                 END IF;
3396 
3397 --start: |           28-Mar-07 cklee  R12 Billing enhancement project
3398 -- get bill-to information from contract line if any
3399                   --nikshah for bug 9223230, added if clause
3400 		  --nikshah for bug 9255769, switch the order of if blocks
3401                         --  and added investor stake condition
3402  IF NVL(l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX,'NONE') <> 'REMARKETING' THEN   --Bug# 9974381
3403                   IF NOT l_inv_customer AND
3404                      l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX <> 'INVESTOR_STAKE'THEN
3405 
3406 
3407                     --Vendor bank account details
3408                -- sosharma Bug  9871252 , Added check to call procedure only for Automatic payment method
3409 
3410                         --Bug# 9974381
3411                         -- Initialize rct_method_code
3412                         rct_method_code := NULL;
3413 	                  OPEN  rcpt_cr_method_csr (l_xfer_tbl(k).RECEIPT_METHOD_ID);
3414 	                  FETCH rcpt_cr_method_csr INTO rct_method_code;
3415 	                  CLOSE rcpt_cr_method_csr;
3416 
3417 		    IF rct_method_code = 'AUTOMATIC' then
3418                     get_vendor_auto_bank_dtls
3419                                 ( p_api_version => p_api_version,
3420                              	  p_init_msg_list => p_init_msg_list,
3421                                   p_khr_id => l_khr_id,
3422                                   p_customer_address_id => l_xfer_tbl(k).CUSTOMER_ADDRESS_ID,
3423                                   p_bank_id => l_xfer_tbl(k).CUSTOMER_BANK_ACCOUNT_ID,
3424                                   p_trx_date => l_xfer_tbl(k).trx_date,
3425                                   p_receipt_method_id => l_xfer_tbl(k).RECEIPT_METHOD_ID,
3426                                   x_receipt_method_id => l_xfer_tbl(k).RECEIPT_METHOD_ID,
3427                                   x_payment_trxn_extension_id => inv_lines_tbl(hdr_cnt).payment_trxn_extension_id,
3428                                   x_customer_bank_account_id => inv_lines_tbl(hdr_cnt).customer_bank_account_id,
3429                                   x_return_status             => x_return_status,
3430                                   x_msg_count                 => x_msg_count,
3431                                   x_msg_data                  => x_msg_data);
3432                     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3433                       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3434                     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3435                       RAISE FND_API.G_EXC_ERROR;
3436                     END IF;
3437                     -- For Automatic receipt method, bank account id should be NULL as the column is obsoleted
3438                     l_xfer_tbl(k).CUSTOMER_BANK_ACCOUNT_ID := NULL;
3439                     END IF;
3440                   ELSE
3441                     get_cust_config_from_line(
3442                      p_kle_id                       => l_xfer_tbl(k).KLE_ID
3443                     ,p_customer_address_id          => l_xfer_tbl(k).CUSTOMER_ADDRESS_ID
3444                     ,p_customer_bank_account_id     => l_xfer_tbl(k).CUSTOMER_BANK_ACCOUNT_ID
3445                     ,p_receipt_method_id            => l_xfer_tbl(k).RECEIPT_METHOD_ID
3446                     ,x_customer_address_id          => l_xfer_tbl(k).CUSTOMER_ADDRESS_ID
3447                     ,x_customer_bank_account_id     => l_xfer_tbl(k).CUSTOMER_BANK_ACCOUNT_ID
3448                     ,x_receipt_method_id            => l_xfer_tbl(k).RECEIPT_METHOD_ID
3449                     -- BANK-ACCOUNT-UPTAKE-START
3450                     ,x_creation_method_code         => l_creation_method_code
3451 					,x_bank_line_id1                => l_bank_line_id1
3452                     -- BANK-ACCOUNT-UPTAKE-END
3453                     );
3454                   END IF;
3455 End if; --Bug# 9974381
3456 
3457 --end: |           28-Mar-07 cklee  R12 Billing enhancement project
3458 
3459                   inv_lines_tbl(hdr_cnt).ORIG_SYSTEM_BILL_CUSTOMER_ID := l_xfer_tbl(k).CUSTOMER_ID;
3460                   inv_lines_tbl(hdr_cnt).ORIG_SYSTEM_BILL_ADDRESS_ID := l_xfer_tbl(k).CUSTOMER_ADDRESS_ID;
3461                   inv_lines_tbl(hdr_cnt).ORIG_SYSTEM_SHIP_CUSTOMER_ID := l_xfer_tbl(k).CUSTOMER_ID;
3462 
3463                   IF l_xfer_tbl(k).ship_to IS NOT NULL THEN
3464                         inv_lines_tbl(hdr_cnt).ORIG_SYSTEM_SHIP_ADDRESS_ID := l_xfer_tbl(k).ship_to;
3465                   ELSE
3466                         inv_lines_tbl(hdr_cnt).ORIG_SYSTEM_SHIP_ADDRESS_ID := l_xfer_tbl(k).CUSTOMER_ADDRESS_ID;
3467                   END IF;
3468 
3469                 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3470                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').orig_system_bill_customer_id:'||inv_lines_tbl(hdr_cnt).orig_system_bill_customer_id);
3471                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').orig_system_bill_address_id:'||inv_lines_tbl(hdr_cnt).orig_system_bill_address_id);
3472                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').orig_system_ship_customer_id:'||inv_lines_tbl(hdr_cnt).orig_system_ship_customer_id);
3473                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').orig_system_ship_address_id:'||inv_lines_tbl(hdr_cnt).orig_system_ship_address_id);
3474                 END IF;
3475 
3476                   inv_lines_tbl(hdr_cnt).ORIG_SYSTEM_BILL_CONTACT_ID := NULL;
3477                   inv_lines_tbl(hdr_cnt).ORIG_SYSTEM_SOLD_CUSTOMER_ID := NULL;
3478                   --vthiruva - Bug 4222231..start..removed hardcoding of sales rep
3479                   inv_lines_tbl(hdr_cnt).PRIMARY_SALESREP_NUMBER := l_salesrep_number;
3480                   inv_lines_tbl(hdr_cnt).PRIMARY_SALESREP_ID := l_salesrep_id;
3481                   --vthiruva - Bug 4222231..end
3482                   inv_lines_tbl(hdr_cnt).PURCHASE_ORDER := NULL;
3483                   inv_lines_tbl(hdr_cnt).PURCHASE_ORDER_REVISION := NULL;
3484                   inv_lines_tbl(hdr_cnt).PURCHASE_ORDER_DATE := NULL;
3485                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3486                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').primary_salesrep_number:'||inv_lines_tbl(hdr_cnt).primary_salesrep_number);
3487                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').primary_salesrep_id:'||inv_lines_tbl(hdr_cnt).primary_salesrep_id);
3488                   END IF;
3489 
3490 -- BANK-ACCOUNT-UPTAKE-START
3491   IF (l_creation_method_code = 'AUTOMATIC') THEN
3492     -- call procedure get_auto_bank_dtls to derive banking details for the
3493     -- automatic receipt creation method
3494     -- gboomina Bug 6832065 - Start
3495     -- get khr_id from contract number. khr_id is not populated in l_xfer_tbl for all records.
3496     -- some of l_xfer_tbl records can have khr_id as NULL. so getting khr_id using l_xfer_tbl(k).contract_number.
3497     if (l_xfer_tbl(k).khr_id is null) then
3498       open get_khr_id_csr(l_xfer_tbl(k).contract_number);
3499       fetch get_khr_id_csr into l_khr_id;
3500       close get_khr_id_csr;
3501     else
3502       l_khr_id := l_xfer_tbl(k).khr_id;
3503     end if;
3504     --nikshah added for bug 9223230, if clause.
3505     --Added ELSE block
3506     IF l_inv_customer THEN
3507     get_auto_bank_dtls(p_api_version               => p_api_version,
3508                        p_init_msg_list             => p_init_msg_list,
3509                        p_khr_id                    => l_khr_id, -- gboomina for bug 7513216
3510                        p_customer_address_id       => l_xfer_tbl(k).CUSTOMER_ADDRESS_ID,
3511                        p_bank_id                   => l_xfer_tbl(k).CUSTOMER_BANK_ACCOUNT_ID,
3512                        -- gboomina added p_trx_date for bug 7513216
3513 		                     p_trx_date                  => l_xfer_tbl(k).trx_date,
3514                        x_payment_trxn_extension_id => inv_lines_tbl(hdr_cnt).payment_trxn_extension_id,
3515                        x_customer_bank_account_id  => inv_lines_tbl(hdr_cnt).customer_bank_account_id,
3516                        x_return_status             => x_return_status,
3517                        x_msg_count                 => x_msg_count,
3518                        x_msg_data                  => x_msg_data
3519                        );
3520     END IF;
3521     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3522       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3523     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3524       RAISE FND_API.G_EXC_ERROR;
3525     END IF;
3526 
3527     -- For Automatic receipt method, bank account id should be NULL as the column is obsoleted
3528     l_xfer_tbl(k).CUSTOMER_BANK_ACCOUNT_ID := NULL;
3529     -- gboomina Bug 6832065 - End
3530 	END IF;
3531 
3532 
3533 --start: |           23-Mar-07 cklee  R12 Billing enhancement project
3534                   -- Null out receive mathod and bank account for Sales Order and Termination Quote,
3535                   -- These values will be taken from the AR setup for the customer.
3536 		  -- 08-feb-2008 ansethur  added payment trx extension  as well to get nulled out
3537                   nullout_rec_method(
3538                    p_contract_id                  => l_xfer_tbl(k).khr_id
3539                   ,p_Quote_number                 => l_xfer_tbl(k).Quote_number
3540                   ,p_sty_id                       => l_xfer_tbl(k).sty_id
3541                   ,p_customer_bank_account_id     => l_xfer_tbl(k).CUSTOMER_BANK_ACCOUNT_ID
3542                   ,p_receipt_method_id            => l_xfer_tbl(k).RECEIPT_METHOD_ID -- irm_id
3543                   ,p_payment_trxn_extension_id    => inv_lines_tbl(hdr_cnt).PAYMENT_TRXN_EXTENSION_ID
3544                   ,x_customer_bank_account_id     => inv_lines_tbl(hdr_cnt).CUSTOMER_BANK_ACCOUNT_ID
3545                   ,x_receipt_method_id            => inv_lines_tbl(hdr_cnt).RECEIPT_METHOD_ID
3546                   ,x_payment_trxn_extension_id    => inv_lines_tbl(hdr_cnt).PAYMENT_TRXN_EXTENSION_ID
3547                   );
3548 
3549 --                  inv_lines_tbl(hdr_cnt).CUSTOMER_BANK_ACCOUNT_ID := l_xfer_tbl(k).CUSTOMER_BANK_ACCOUNT_ID;
3550 --                  inv_lines_tbl(hdr_cnt).RECEIPT_METHOD_ID := l_xfer_tbl(k).RECEIPT_METHOD_ID;
3551 --end: |           23-Mar-07 cklee  R12 Billing enhancement project
3552                   inv_lines_tbl(hdr_cnt).RECEIPT_METHOD_NAME := NULL;
3553 
3554    IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3555     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_creation_method_code:'||l_creation_method_code);
3556     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl(k).CUSTOMER_ADDRESS_ID:'||l_xfer_tbl(k).CUSTOMER_ADDRESS_ID);
3557     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','l_xfer_tbl(k).CUSTOMER_BANK_ACCOUNT_ID'||l_xfer_tbl(k).CUSTOMER_BANK_ACCOUNT_ID);
3558    END IF;
3559 
3560 
3561 
3562                   -- tax-only invoice
3563 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
3564 --                  if l_xfer_tbl(k).XLS_AMOUNT = 0 then
3565                   if l_xfer_tbl(k).AMOUNT = 0 then
3566 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
3567                      inv_lines_tbl(hdr_cnt).QUANTITY := 0;
3568                   else
3569                      inv_lines_tbl(hdr_cnt).QUANTITY := l_xfer_tbl(k).QUANTITY;
3570                   end if;
3571 
3572 
3573                   inv_lines_tbl(hdr_cnt).QUANTITY_ORDERED := NULL;
3574                   inv_lines_tbl(hdr_cnt).REASON_CODE := NULL;
3575                   inv_lines_tbl(hdr_cnt).REASON_CODE_MEANING := NULL;
3576 --                  inv_lines_tbl(hdr_cnt).REFERENCE_LINE_ID := NULL;
3577                   inv_lines_tbl(hdr_cnt).RULE_START_DATE := NULL;
3578                   inv_lines_tbl(hdr_cnt).SALES_ORDER := NULL;
3579                   inv_lines_tbl(hdr_cnt).SALES_ORDER_LINE := NULL;
3580                   inv_lines_tbl(hdr_cnt).SALES_ORDER_DATE := NULL;
3581                   inv_lines_tbl(hdr_cnt).SALES_ORDER_SOURCE := NULL;
3582                   inv_lines_tbl(hdr_cnt).SET_OF_BOOKS_ID := l_xfer_tbl(k).SET_OF_BOOKS_ID;
3583 
3584                   IF l_xfer_tbl(k).TAX_EXEMPT_FLAG = 'S' THEN
3585                     inv_lines_tbl(hdr_cnt).TAX_EXEMPT_FLAG := 'S';
3586                   ELSIF l_xfer_tbl(k).TAX_EXEMPT_FLAG = 'E' THEN
3587                     inv_lines_tbl(hdr_cnt).TAX_EXEMPT_FLAG := 'E';
3588                   ELSIF l_xfer_tbl(k).TAX_EXEMPT_FLAG = 'R' THEN
3589                     inv_lines_tbl(hdr_cnt).TAX_EXEMPT_FLAG := 'R';
3590                   ELSE
3591                     inv_lines_tbl(hdr_cnt).TAX_EXEMPT_FLAG := 'S';
3592                   END IF;
3593 
3594                   inv_lines_tbl(hdr_cnt).TAX_EXEMPT_NUMBER := NULL;
3595 
3596                   IF l_xfer_tbl(k).TAX_EXEMPT_FLAG = 'E' THEN
3597                     inv_lines_tbl(hdr_cnt).TAX_EXEMPT_REASON_CODE := 'MANUFACTURER';
3598                   ELSE
3599                     inv_lines_tbl(hdr_cnt).TAX_EXEMPT_REASON_CODE := NULL;
3600                   END IF;
3601 
3602                   inv_lines_tbl(hdr_cnt).TERM_ID := l_xfer_tbl(k).TERM_ID;
3603                   inv_lines_tbl(hdr_cnt).UNIT_SELLING_PRICE := NULL;
3604                   inv_lines_tbl(hdr_cnt).UNIT_STANDARD_PRICE := NULL;
3605                   inv_lines_tbl(hdr_cnt).UOM_CODE := l_xfer_tbl(k).uom_code;
3606                   --Bug# 13340410: Moved this code above
3607                   --inv_lines_tbl(hdr_cnt).ORG_ID := l_xfer_tbl(k).ORG_ID;
3608 		  inv_lines_tbl(hdr_cnt).LEGAL_ENTITY_ID := l_xfer_tbl(k).LEGAL_ENTITY_ID; -- for LE Uptake project 08-11-2006
3609 
3610 
3611                   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3612                                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Done Preparing Ra_interface_lines_all record.');
3613                   END IF;
3614                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3615                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').legal_entity_id:' || inv_lines_tbl(hdr_cnt).legal_entity_id);
3616                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').org_id:' || inv_lines_tbl(hdr_cnt).org_id);
3617                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').quantity:' || inv_lines_tbl(hdr_cnt).quantity);
3618                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').quantity_ordered:' || inv_lines_tbl(hdr_cnt).quantity_ordered);
3619                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').reason_code:' || inv_lines_tbl(hdr_cnt).reason_code);
3620                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').reason_code_meaning:' || inv_lines_tbl(hdr_cnt).reason_code_meaning);
3621                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').receipt_method_name:' || inv_lines_tbl(hdr_cnt).receipt_method_name);
3622                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').rule_start_date:' || inv_lines_tbl(hdr_cnt).rule_start_date);
3623                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').sales_order:' || inv_lines_tbl(hdr_cnt).sales_order);
3624                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').sales_order_date:' || inv_lines_tbl(hdr_cnt).sales_order_date);
3625                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').sales_order_line:' || inv_lines_tbl(hdr_cnt).sales_order_line);
3626                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').sales_order_source:' || inv_lines_tbl(hdr_cnt).sales_order_source);
3627                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').set_of_books_id:' || inv_lines_tbl(hdr_cnt).set_of_books_id);
3628                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').tax_exempt_flag:' || inv_lines_tbl(hdr_cnt).tax_exempt_flag);
3629                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').tax_exempt_number:' || inv_lines_tbl(hdr_cnt).tax_exempt_number);
3630                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').tax_exempt_reason_code:' || inv_lines_tbl(hdr_cnt).tax_exempt_reason_code);
3631                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').term_id:' || inv_lines_tbl(hdr_cnt).term_id);
3632                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').unit_selling_price:' || inv_lines_tbl(hdr_cnt).unit_selling_price);
3633                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').unit_standard_price:' || inv_lines_tbl(hdr_cnt).unit_standard_price);
3634                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').uom_code:' || inv_lines_tbl(hdr_cnt).uom_code);
3635                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Done Preparing Ra_interface_lines_all record.');
3636                   END IF;
3637                   -- Start Sales Tax Code
3638 
3639                   -- -------------------------------------
3640                   -- Insert Tax record
3641                   -- -------------------------------------
3642 
3643                   -- Insert tax record for ivoices and on-account credit memos
3644                 IF NVL(l_xfer_tbl(k).TAX_EXEMPT_FLAG, 'S') <> 'E' THEN
3645 
3646                   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3647                                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Preparing Ra_interface_lines_all tax record.');
3648                   END IF;
3649                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3650                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Preparing Ra_interface_lines_all tax record.');
3651                   END IF;
3652 --start|           02-MAR-07 cklee  R12 Billing enhancement project                 |
3653 -- ebtax integration
3654 /*
3655                   open c_try_name(l_xfer_tbl(k).try_id);
3656                   fetch c_try_name into l_try_name;
3657                   close c_try_name;
3658 */
3659 
3660 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3661   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','try_name before okl_process_sales_tax_pvt.get_tax_determinants'||l_xfer_tbl(k).try_name);
3662 END IF;
3663                 IF (
3664                     ((l_xfer_tbl(k).try_name = 'Credit Memo') AND (l_xfer_tbl(k).rev_txn_id IS NULL))
3665                     OR
3666                     ((l_xfer_tbl(k).try_name = 'Release Credit Memo') AND (l_xfer_tbl(k).rev_txn_id IS NULL))  --sechawla 25-Sep-2010 10139246  : added
3667                     OR
3668                     (l_xfer_tbl(k).try_name = 'Billing')
3669                     OR
3670                     (l_xfer_tbl(k).try_name = 'Release Billing') --sechawla 25-Sep-2010 10139246  : added
3671                     OR
3672                     (l_xfer_tbl(k).try_name = 'Evergreen') --sechawla 01-jun-11 12539101 : added this condition
3673 
3674                    ) THEN                  --- vpanwar for bug no 6401432
3675                  -- IF l_xfer_tbl(k).try_name IN ('Billing', 'Credit Memo') THEN   --- vpanwar for bug no 6401432
3676 
3677                  --sechawla 01-jun-11 12539101 : 'Evergreen' transaction to be treated as 'Billing' transaction for
3678                  --tax purposes. Tax determinants need to be fetched for Evergreen, just like Billing transaction.
3679                  IF l_xfer_tbl(k).try_name = 'Evergreen' THEN
3680                     l_trx_type_name := 'Billing';
3681                  ELSE
3682                     l_trx_type_name := l_xfer_tbl(k).try_name;
3683                  END IF;
3684 
3685                     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3686 
3687                      --sechawla 25-Sep-2010 10139246  : added following debug messages
3688                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','calling okl_process_sales_tax_pvt.get_tax_determinants');
3689 
3690                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','calling get_tax_determinants  for try_name '||l_xfer_tbl(k).try_name);
3691                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','calling get_tax_determinants  for rev_txn_id '||l_xfer_tbl(k).rev_txn_id);
3692                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','calling get_tax_determinants  for amount'||l_xfer_tbl(k).amount);
3693                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','calling get_tax_determinants  for sty_id'||l_xfer_tbl(k).sty_id);
3694                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','calling get_tax_determinants  for quote_number'||l_xfer_tbl(k).quote_number);
3695                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','calling get_tax_determinants  for khr_id'||l_xfer_tbl(k).khr_id);
3696                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','calling get_tax_determinants  for contract_number'||l_xfer_tbl(k).contract_number);
3697 
3698                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','calling get_tax_determinants  for OKL_SOURCE_BILLING_TRX'||l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX);
3699 
3700 
3701 
3702 
3703 
3704                     END IF;
3705                     OKL_PROCESS_SALES_TAX_PVT.get_tax_determinants(
3706                       p_api_version     => p_api_version,
3707                       p_init_msg_list   => p_init_msg_list,
3708                       x_return_status   => x_return_status,
3709                       x_msg_count       => x_msg_count,
3710                       x_msg_data        => x_msg_data,
3711                       p_source_trx_id   => l_xfer_tbl(k).TXN_ID,
3712                       --p_source_trx_name => l_xfer_tbl(k).try_name,   --sechawla 01-jun-11 12539101
3713                       p_source_trx_name => l_trx_type_name, --sechawla 01-jun-11 12539101
3714                       p_source_table    => 'OKL_TXD_AR_LN_DTLS_B',
3715                       x_tax_det_rec     => x_tax_det_rec); -- 5902234
3716                     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3717                       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','okl_process_sales_tax_pvt.get_tax_determinants returned with x_return_status:'||x_return_status);
3718                     END IF;
3719 
3720 
3721                     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3722                       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3723                     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
3724                       RAISE FND_API.G_EXC_ERROR;
3725                     END IF;
3726                     --akrangan code fix  begin
3727 		    --added to eliminate tax attributes for tax only invoices
3728                     IF l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX <> 'TAX_ONLY_INVOICE_TAX' THEN
3729                     -- 5902234
3730                     inv_lines_tbl(hdr_cnt).TAX_CODE := x_tax_det_rec.X_TAX_CODE;
3731                     inv_lines_tbl(hdr_cnt).TRX_BUSINESS_CATEGORY := x_tax_det_rec.X_TRX_BUSINESS_CATEGORY;
3732                     inv_lines_tbl(hdr_cnt).PRODUCT_CATEGORY := x_tax_det_rec.X_PRODUCT_CATEGORY;
3733                     inv_lines_tbl(hdr_cnt).PRODUCT_TYPE := x_tax_det_rec.X_PRODUCT_TYPE;
3734                     inv_lines_tbl(hdr_cnt).LINE_INTENDED_USE := x_tax_det_rec.X_LINE_INTENDED_USE;
3735 		    --added by akrangan for ebtax billing impacts start
3736                     inv_lines_tbl(hdr_cnt).USER_DEFINED_FISC_CLASS := x_tax_det_rec.X_USER_DEFINED_FISC_CLASS;
3737 		    --akrangan code fix  begin
3738 		    END IF; --IF l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX <> 'TAX_ONLY_INVOICE_TAX'
3739                     --akrangan code fix  end
3740 
3741                  --06-Jan-11 sechawla 10640648   : Set TAXED_UPSTREAM_FLAG only for Tax only invoice
3742                   IF l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX = 'TAX_ONLY_INVOICE_TAX'     THEN
3743 	     	      inv_lines_tbl(hdr_cnt).TAXED_UPSTREAM_FLAG := 'Y';
3744 		    ELSE
3745                      inv_lines_tbl(hdr_cnt).TAXED_UPSTREAM_FLAG := null;
3746 		    END IF; --06-Jan-11 sechawla 10640648
3747 
3748 
3749 		    --added by akrangan for ebtax billing impacts end
3750                     inv_lines_tbl(hdr_cnt).ASSESSABLE_VALUE := x_tax_det_rec.X_ASSESSABLE_VALUE;
3751                     inv_lines_tbl(hdr_cnt).DEFAULT_TAXATION_COUNTRY := x_tax_det_rec.X_DEFAULT_TAXATION_COUNTRY;
3752                     /*inv_lines_tbl(hdr_cnt).UPSTREAM_TRX_REPORTED_FLAG := x_tax_det_rec.X_UPSTREAM_TRX_REPORTED_FLAG; */
3753                     IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3754                       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').tax_code:' || inv_lines_tbl(hdr_cnt).tax_code);
3755                       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').trx_business_category:' || inv_lines_tbl(hdr_cnt).trx_business_category);
3756                       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').product_category:' || inv_lines_tbl(hdr_cnt).product_category);
3757                       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').product_type:' || inv_lines_tbl(hdr_cnt).product_type);
3758                       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').line_intended_use:' || inv_lines_tbl(hdr_cnt).line_intended_use);
3759                       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').user_defined_fisc_class :' || inv_lines_tbl(hdr_cnt).user_defined_fisc_class );
3760                       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').taxed_upstream_flag:' || inv_lines_tbl(hdr_cnt).taxed_upstream_flag);
3761                       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').assessable_value:' || inv_lines_tbl(hdr_cnt).assessable_value);
3762                       fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_lines_tbl('||hdr_cnt||').default_taxation_country:' || inv_lines_tbl(hdr_cnt).default_taxation_country);
3763                     END IF;
3764 
3765             else
3766                   --sechawla 25-Sep-2010 10139246  : added following debug messages
3767                 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3768                    fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','did not call get_tax_determinants  for try_name '||l_xfer_tbl(k).try_name);
3769                    fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','did not call get_tax_determinants  for rev_txn_id '||l_xfer_tbl(k).rev_txn_id);
3770                    fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','did not call get_tax_determinants  for amount'||l_xfer_tbl(k).amount);
3771                    fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','did not call get_tax_determinants  for sty_id'||l_xfer_tbl(k).sty_id);
3772                    fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','did not call get_tax_determinants  for quote_number'||l_xfer_tbl(k).quote_number);
3773                    fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','did not call get_tax_determinants  for khr_id'||l_xfer_tbl(k).khr_id);
3774                    fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','did not call get_tax_determinants  for contract_number'||l_xfer_tbl(k).contract_number);
3775 
3776                    fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','did not call get_tax_determinants  for OKL_SOURCE_BILLING_TRX'||l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX);
3777 
3778 
3779                 END IF;
3780 
3781            END IF;
3782 
3783 --end|           02-MAR-07 cklee  R12 Billing enhancement project                 |
3784 
3785 --start|           02-MAR-07 cklee  R12 Billing enhancement project                 |
3786 
3787 
3788                   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3789                                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Done Preparing Ra_interface_lines_all tax record.');
3790                   END IF;
3791                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3792                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Done Preparing Ra_interface_lines_all tax record.');
3793                   END IF;
3794                 END IF;
3795 
3796                   -- End Sales Tax Code
3797 
3798 
3799                   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3800                                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Preparing Ra_Sales_Credits_all record.');
3801                   END IF;
3802                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3803                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Preparing Ra_Sales_Credits_all record.');
3804                   END IF;
3805                   -- -------------------------------------
3806                   -- Build Sales Credits Table
3807                   -- -------------------------------------
3808                   sales_cr_cnt := ( sales_credits_tbl.count + 1 );
3809 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
3810 -- Change variable name to match the main cursor query name
3811                 IF l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX = 'INVESTOR_STAKE' THEN
3812                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE1 := SUBSTR(TRIM(l_xfer_tbl(k).Investor_Agreement_Number),1,G_AR_DATA_LENGTH);
3813                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE2 := NULL;
3814                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE3 := NULL;
3815                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE4 := SUBSTR(TRIM(l_xfer_tbl(k).Investor_Name),1,G_AR_DATA_LENGTH);
3816                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE5 := SUBSTR(TRIM(l_xfer_tbl(k).STREAM_TYPE),1,G_AR_DATA_LENGTH);
3817                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE6 := NULL;
3818                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE7 := NULL;
3819                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE8 := NULL;
3820                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE9 := NULL;
3821                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE10 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
3822                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE11 := NULL;
3823                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE12 := NULL;
3824                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE13 := NULL;
3825                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE14 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
3826                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE15 := NULL;
3827                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_CONTEXT := 'OKL_INVESTOR';
3828 
3829                   ELSE
3830                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE1 := NULL;
3831                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE2 := SUBSTR(TRIM(l_invoice_group),1,G_AR_DATA_LENGTH);
3832                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE3 := SUBSTR(TRIM(l_xfer_tbl(k).INVOICE_PULL_YN),1,G_AR_DATA_LENGTH);
3833                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE4 := SUBSTR(TRIM(l_xfer_tbl(k).PRIVATE_LABEL),1,G_AR_DATA_LENGTH);
3834                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE5 := NULL;
3835                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE6 := SUBSTR(TRIM(l_xfer_tbl(k).CONTRACT_NUMBER),1,G_AR_DATA_LENGTH);
3836                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE7 := SUBSTR(TRIM(l_xfer_tbl(k).ASSET_NUMBER),1,G_AR_DATA_LENGTH);
3837                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE8 := SUBSTR(TRIM(l_xfer_tbl(k).INVOICE_FORMAT_LINE_TYPE),1,G_AR_DATA_LENGTH);
3838                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE9 := SUBSTR(TRIM(l_xfer_tbl(k).STREAM_TYPE),1,G_AR_DATA_LENGTH);
3839                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE10 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
3840                     -- if the source of the billing trx is termination quote, the OKL billing trx number is Quite_number
3841                     IF l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX = 'TERMINATION_QUOTE' THEN
3842                       sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE11 := SUBSTR(TRIM(l_xfer_tbl(k).Quote_number),1,G_AR_DATA_LENGTH);
3843                     END IF;
3844                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE12 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).KHR_ID)),1,G_AR_DATA_LENGTH);
3845                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE13 := SUBSTR(TRIM(l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX),1,G_AR_DATA_LENGTH);
3846                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE14 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
3847                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_ATTRIBUTE15 := SUBSTR(TRIM(l_xfer_tbl(k).INVOICE_FORMAT_TYPE),1,G_AR_DATA_LENGTH);
3848                     sales_credits_tbl(sales_cr_cnt).INTERFACE_LINE_CONTEXT := 'OKL_CONTRACTS';
3849                   END IF;
3850 
3851 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
3852 
3853                   sales_credits_tbl(sales_cr_cnt).SALES_CREDIT_AMOUNT_SPLIT := NULL;
3854                   sales_credits_tbl(sales_cr_cnt).SALES_CREDIT_PERCENT_SPLIT := 100;
3855                   sales_credits_tbl(sales_cr_cnt).SALES_CREDIT_TYPE_ID := l_sales_type_credit;
3856                   sales_credits_tbl(sales_cr_cnt).SALES_CREDIT_TYPE_NAME := 'Quota Sales Credit';
3857                   --vthiruva - Bug 4222231..start..removed hardcoding of sales rep
3858                   sales_credits_tbl(sales_cr_cnt).SALESREP_ID := l_salesrep_id;
3859                   sales_credits_tbl(sales_cr_cnt).SALESREP_NUMBER := l_salesrep_number;
3860                   --vthiruva - Bug 4222231..end
3861                   sales_credits_tbl(sales_cr_cnt).CREATED_BY := G_user_id;
3862                   sales_credits_tbl(sales_cr_cnt).CREATION_DATE := sysdate;
3863                   sales_credits_tbl(sales_cr_cnt).LAST_UPDATED_BY := G_user_id;
3864                   sales_credits_tbl(sales_cr_cnt).LAST_UPDATE_DATE := sysdate;
3865                   sales_credits_tbl(sales_cr_cnt).ORG_ID := l_xfer_tbl(k).ORG_ID;
3866                   sales_credits_tbl(sales_cr_cnt).CREATED_BY := G_user_id;
3867                   sales_credits_tbl(sales_cr_cnt).CREATION_DATE := sysdate;
3868                   sales_credits_tbl(sales_cr_cnt).LAST_UPDATED_BY := G_user_id;
3869                   sales_credits_tbl(sales_cr_cnt).LAST_UPDATE_DATE := sysdate;
3870 
3871                   IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3872                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').created_by:' || sales_credits_tbl(sales_cr_cnt).created_by);
3873                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').creation_date:' || sales_credits_tbl(sales_cr_cnt).creation_date);
3874                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute1:' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute1);
3875                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute10 :' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute10);
3876                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute11 :' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute11);
3877                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute12 :' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute12);
3878                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute13 :' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute13);
3879                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute14 :' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute14);
3880                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute15 :' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute15);
3881                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute2:' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute2);
3882                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute3:' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute3);
3883                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute4:' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute4);
3884                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute5:' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute5);
3885                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute6:' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute6);
3886                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute7:' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute7);
3887                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute8:' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute8);
3888                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_attribute9:' || sales_credits_tbl(sales_cr_cnt).interface_line_attribute9);
3889                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').interface_line_context:' || sales_credits_tbl(sales_cr_cnt).interface_line_context);
3890                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').last_update_date:' || sales_credits_tbl(sales_cr_cnt).last_update_date);
3891                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').last_updated_by:' || sales_credits_tbl(sales_cr_cnt).last_updated_by);
3892                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').org_id:' || sales_credits_tbl(sales_cr_cnt).org_id);
3893                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').sales_credit_amount_split:' || sales_credits_tbl(sales_cr_cnt).sales_credit_amount_split);
3894                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').sales_credit_percent_split :' || sales_credits_tbl(sales_cr_cnt).sales_credit_percent_split);
3895                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').sales_credit_type_id:' || sales_credits_tbl(sales_cr_cnt).sales_credit_type_id);
3896                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').sales_credit_type_name:' || sales_credits_tbl(sales_cr_cnt).sales_credit_type_name);
3897                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').salesrep_id:' || sales_credits_tbl(sales_cr_cnt).salesrep_id);
3898                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','sales_credits_tbl('||sales_cr_cnt||').salesrep_number:' || sales_credits_tbl(sales_cr_cnt).salesrep_number);
3899                     fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Done Preparing Ra_Sales_Credits_all record.');
3900                   END IF;
3901 
3902                   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3903                                       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Done Preparing Ra_Sales_Credits_all record.');
3904                   END IF;
3905                   -- -------------------------------------
3906                   -- Build Contingency table
3907                   -- -------------------------------------
3908                   IF (l_xfer_tbl(k).rev_rec_basis = 'CASH_RECEIPT') THEN
3909                       -- -------------------------------------
3910                       -- Build AR contingencies table
3911                       -- -------------------------------------
3912                       --begin bug 5474184
3913                       cont_cnt := ( ar_contingency_tbl.count + 1 );
3914 
3915                       BEGIN
3916                         SELECT AR_INTERFACE_CONTS_S.NEXTVAL
3917                         INTO ar_contingency_tbl(cont_cnt).INTERFACE_CONTINGENCY_ID
3918                         FROM DUAL;
3919                       EXCEPTION
3920                         WHEN OTHERS THEN
3921                             IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3922                                 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'ERROR retrieving ar_contingency_tbl(cont_cnt).INTERFACE_CONTINGENCY_ID: '
3923                                                         ||sqlerrm);
3924                             END IF;
3925                             IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3926                               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ERROR retrieving ar_contingency_tbl(cont_cnt).INTERFACE_CONTINGENCY_ID:'||sqlerrm);
3927                             END IF;
3928                       END;
3929                       --end  bug 5474184
3930 
3931                       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
3932                                               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Preparing ar_contingency record.');
3933                       END IF;
3934                       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
3935                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Preparing ar_contingency record.');
3936                       END IF;
3937 --                      cont_cnt := ( ar_contingency_tbl.count + 1 );
3938 -- start: cklee 3/29/2007
3939                       /* 6472168
3940                       cont_cnt := hdr_cnt;
3941                       --ar_contingency_tbl(cont_cnt).CONTINGENCY_ID := ar_contingency_tbl(hdr_cnt).INTERFACE_CONTINGENCY_ID; */
3942                       -- 6472168
3943 					  -- start: bug 6744584 .. contingency_id populated from stream type table rather than
3944 					  -- a sequence id.. contingency_code is no longer used...racheruv
3945                       --ar_contingency_tbl(cont_cnt).CONTINGENCY_ID := ar_contingency_tbl(cont_cnt).INTERFACE_CONTINGENCY_ID;
3946                       ar_contingency_tbl(cont_cnt).CONTINGENCY_ID := l_xfer_tbl(k).contingency_id;
3947 
3948                       --ar_contingency_tbl(cont_cnt).CONTINGENCY_CODE := 'OKL_COLLECTIBILITY';
3949 					  -- end: bug 6744584 .. contingency_id populated from stream type table rather than
3950 -- end: cklee 3/29/2007
3951 
3952                       ar_contingency_tbl(cont_cnt).EXPIRATION_DATE := NULL;
3953                       ar_contingency_tbl(cont_cnt).EXPIRATION_DAYS := NULL;
3954                       ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ID := NULL;
3955                       ar_contingency_tbl(cont_cnt).INTERFACE_LINE_CONTEXT := 'OKL_CONTRACTS';
3956 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
3957 -- Change variable name to match the main cursor query name
3958 
3959                   IF l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX = 'INVESTOR_STAKE' THEN
3960                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE1 := SUBSTR(TRIM(l_xfer_tbl(k).Investor_Agreement_Number),1,G_AR_DATA_LENGTH);
3961                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE2 := NULL;
3962                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE3 := NULL;
3963                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE4 := SUBSTR(TRIM(l_xfer_tbl(k).Investor_Name),1,G_AR_DATA_LENGTH);
3964                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE5 := SUBSTR(TRIM(l_xfer_tbl(k).STREAM_TYPE),1,G_AR_DATA_LENGTH);
3965                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE6 := NULL;
3966                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE7 := NULL;
3967                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE8 := NULL;
3968                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE9 := NULL;
3969                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE10 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
3970                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE11 := NULL;
3971                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE12 := NULL;
3972                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE13 := NULL;
3973                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE14 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
3974                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE15 := NULL;
3975                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_CONTEXT := 'OKL_INVESTOR';
3976 
3977                   ELSE
3978                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE1 := NULL;
3979                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE2 := SUBSTR(TRIM(l_invoice_group),1,G_AR_DATA_LENGTH);
3980                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE3 := SUBSTR(TRIM(l_xfer_tbl(k).INVOICE_PULL_YN),1,G_AR_DATA_LENGTH);
3981                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE4 := SUBSTR(TRIM(l_xfer_tbl(k).PRIVATE_LABEL),1,G_AR_DATA_LENGTH);
3982                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE5 := NULL;
3983                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE6 := SUBSTR(TRIM(l_xfer_tbl(k).CONTRACT_NUMBER),1,G_AR_DATA_LENGTH);
3984                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE7 := SUBSTR(TRIM(l_xfer_tbl(k).ASSET_NUMBER),1,G_AR_DATA_LENGTH);
3985                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE8 := SUBSTR(TRIM(l_xfer_tbl(k).INVOICE_FORMAT_LINE_TYPE),1,G_AR_DATA_LENGTH);
3986                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE9 := SUBSTR(TRIM(l_xfer_tbl(k).STREAM_TYPE),1,G_AR_DATA_LENGTH);
3987                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE10 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
3988                     -- if the source of the billing trx is termination quote, the OKL billing trx number is Quite_number
3989                     IF l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX = 'TERMINATION_QUOTE' THEN
3990                       ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE11 := SUBSTR(TRIM(l_xfer_tbl(k).Quote_number),1,G_AR_DATA_LENGTH);
3991                     END IF;
3992                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE12 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).KHR_ID)),1,G_AR_DATA_LENGTH);
3993                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE13 := SUBSTR(TRIM(l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX),1,G_AR_DATA_LENGTH);
3994                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE14 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
3995                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_ATTRIBUTE15 := SUBSTR(TRIM(l_xfer_tbl(k).INVOICE_FORMAT_TYPE),1,G_AR_DATA_LENGTH);
3996                     ar_contingency_tbl(cont_cnt).INTERFACE_LINE_CONTEXT := 'OKL_CONTRACTS';
3997 
3998                   END IF;
3999 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
4000 
4001 
4002                       ar_contingency_tbl(cont_cnt).ORG_ID := l_xfer_tbl(k).ORG_ID;
4003                       ar_contingency_tbl(cont_cnt).REQUEST_ID := NULL;
4004                       ar_contingency_tbl(cont_cnt).CREATED_BY := G_user_id;
4005                       ar_contingency_tbl(cont_cnt).CREATION_DATE := sysdate;
4006                       ar_contingency_tbl(cont_cnt).LAST_UPDATED_BY := G_user_id;
4007                       ar_contingency_tbl(cont_cnt).LAST_UPDATE_DATE := sysdate;
4008                       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4009                                               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Done Preparing ar_contingency record.');
4010                       END IF;
4011                       IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4012 						--bug 6744584 .. contingency_code is not used anymore.
4013                         --fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').contingency_code:' || ar_contingency_tbl(cont_cnt).contingency_code);
4014                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').contingency_id:' || ar_contingency_tbl(cont_cnt).contingency_id);
4015                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').expiration_date:' || ar_contingency_tbl(cont_cnt).expiration_date);
4016                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').expiration_days:' || ar_contingency_tbl(cont_cnt).expiration_days);
4017                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute1:' || ar_contingency_tbl(cont_cnt).interface_line_attribute1);
4018                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute10 :' || ar_contingency_tbl(cont_cnt).interface_line_attribute10);
4019                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute11 :' || ar_contingency_tbl(cont_cnt).interface_line_attribute11);
4020                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute12 :' || ar_contingency_tbl(cont_cnt).interface_line_attribute12);
4021                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute13 :' || ar_contingency_tbl(cont_cnt).interface_line_attribute13);
4022                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute14 :' || ar_contingency_tbl(cont_cnt).interface_line_attribute14);
4023                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute15 :' || ar_contingency_tbl(cont_cnt).interface_line_attribute15);
4024                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute2:' || ar_contingency_tbl(cont_cnt).interface_line_attribute2);
4025                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute3:' || ar_contingency_tbl(cont_cnt).interface_line_attribute3);
4026                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute4:' || ar_contingency_tbl(cont_cnt).interface_line_attribute4);
4027                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute5:' || ar_contingency_tbl(cont_cnt).interface_line_attribute5);
4028                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute6:' || ar_contingency_tbl(cont_cnt).interface_line_attribute6);
4029                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute7:' || ar_contingency_tbl(cont_cnt).interface_line_attribute7);
4030                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute8:' || ar_contingency_tbl(cont_cnt).interface_line_attribute8);
4031                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_attribute9:' || ar_contingency_tbl(cont_cnt).interface_line_attribute9);
4032                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_context:' || ar_contingency_tbl(cont_cnt).interface_line_context);
4033                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').interface_line_id:' || ar_contingency_tbl(cont_cnt).interface_line_id);
4034                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').org_id:' || ar_contingency_tbl(cont_cnt).org_id);
4035                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').request_id:' || ar_contingency_tbl(cont_cnt).request_id);
4036                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').created_by:' || ar_contingency_tbl(cont_cnt).created_by);
4037                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').creation_date:' || ar_contingency_tbl(cont_cnt).creation_date);
4038                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').last_updated_by:' || ar_contingency_tbl(cont_cnt).last_updated_by);
4039                         fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','ar_contingency_tbl('||cont_cnt||').last_update_date:' || ar_contingency_tbl(cont_cnt).last_update_date);
4040                       END IF;
4041                   END IF; -- Contingency Table check
4042 -- cklee: start: 3/7/07
4043 --commented out for R12               END IF;
4044 -- cklee: end: 3/7/07
4045 
4046                -- -------------------------------------
4047                -- Build AR invoice distributions table
4048                -- -------------------------------------
4049 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4050 --               IF l_xfer_tbl(k).XLS_AMOUNT <> 0 THEN
4051                IF l_xfer_tbl(k).AMOUNT <> 0 THEN
4052 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
4053 
4054                  IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4055                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Preparing inv_dist record.');
4056                  END IF;
4057 
4058 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4059                  IF G_ACC_SYS_OPTION = 'ATS' THEN
4060 -- get accounting disb via internal billing details table
4061 -- rmunjulu R12 Fixes, modified to use the new signature of Get_acct_disb
4062                    Get_acct_disb(
4063                     p_tld_id               => l_xfer_tbl(k).txn_id,
4064                     --Bug# 10160494
4065                     p_cust_trx_type_id     => l_xfer_tbl(k).CUST_TRX_TYPE_ID,
4066                     x_dist_tbl             => lx_dist_tbl);
4067 
4068 -- rmunjulu R12 Fixes, loop through the lx_dist_tbl and populate inv_dist_tbl
4069 -- Note : the inv_dist_tbl loop has changed from k to n ( n might be more than k)
4070                    IF lx_dist_tbl.COUNT > 0 THEN
4071                       FOR m in lx_dist_tbl.FIRST .. lx_dist_tbl.LAST LOOP
4072 
4073                --Commented by ssiruvol for bug 5946084
4074 	         --akrangan uncommnetd the code here for enabling billing distribution begin
4075                          IF (l_xfer_tbl(k).rev_rec_basis = 'CASH_RECEIPT' AND  l_xfer_tbl(k).AMOUNT < 0
4076                          AND lx_dist_tbl(m).ACCOUNT_CLASS = 'REV') THEN
4077                             inv_dist_tbl(n).ACCOUNT_CLASS := 'UNEARN';
4078                          ELSE
4079                             inv_dist_tbl(n).ACCOUNT_CLASS := lx_dist_tbl(m).ACCOUNT_CLASS;
4080                          END IF;
4081 	           --akrangan uncommnetd the code here for enabling billing distribution end
4082 			 /*
4083 			 --code commented by akrangan since it is breaking the billing distribution flow
4084                inv_dist_tbl(k).ACCOUNT_CLASS := l_xfer_tbl(k).ACCOUNT_CLASS; --Added by ssiruvol for Bug 5946084
4085 */
4086 
4087                          inv_dist_tbl(n).AMOUNT := lx_dist_tbl(m).DIST_AMOUNT;
4088                          inv_dist_tbl(n).PERCENT := lx_dist_tbl(m).DIST_PERCENT;
4089 
4090                          inv_dist_tbl(n).CODE_COMBINATION_ID := lx_dist_tbl(m).CODE_COMBINATION_ID;
4091                          inv_dist_tbl(n).INTERFACE_LINE_CONTEXT := 'OKL_CONTRACTS';
4092 
4093                           IF l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX = 'INVESTOR_STAKE' THEN
4094                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE1 := SUBSTR(TRIM(l_xfer_tbl(k).Investor_Agreement_Number),1,G_AR_DATA_LENGTH);
4095                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE2 := NULL;
4096                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE3 := NULL;
4097                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE4 := SUBSTR(TRIM(l_xfer_tbl(k).Investor_Name),1,G_AR_DATA_LENGTH);
4098                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE5 := SUBSTR(TRIM(l_xfer_tbl(k).STREAM_TYPE),1,G_AR_DATA_LENGTH);
4099                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE6 := NULL;
4100                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE7 := NULL;
4101                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE8 := NULL;
4102                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE9 := NULL;
4103                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE10 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
4104                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE11 := NULL;
4105                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE12 := NULL;
4106                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE13 := NULL;
4107                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE14 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
4108                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE15 := NULL;
4109                             inv_dist_tbl(n).INTERFACE_LINE_CONTEXT := 'OKL_INVESTOR';
4110 
4111                          ELSE
4112                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE1 := NULL;
4113                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE2 := SUBSTR(TRIM(l_invoice_group),1,G_AR_DATA_LENGTH);
4114                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE3 := SUBSTR(TRIM(l_xfer_tbl(k).INVOICE_PULL_YN),1,G_AR_DATA_LENGTH);
4115                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE4 := SUBSTR(TRIM(l_xfer_tbl(k).PRIVATE_LABEL),1,G_AR_DATA_LENGTH);
4116                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE5 := NULL;
4117                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE6 := SUBSTR(TRIM(l_xfer_tbl(k).CONTRACT_NUMBER),1,G_AR_DATA_LENGTH);
4118                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE7 := SUBSTR(TRIM(l_xfer_tbl(k).ASSET_NUMBER),1,G_AR_DATA_LENGTH);
4119                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE8 := SUBSTR(TRIM(l_xfer_tbl(k).INVOICE_FORMAT_LINE_TYPE),1,G_AR_DATA_LENGTH);
4120                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE9 := SUBSTR(TRIM(l_xfer_tbl(k).STREAM_TYPE),1,G_AR_DATA_LENGTH);
4121                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE10 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
4122                             -- if the source of the billing trx is termination quote, the OKL billing trx number is Quite_number
4123                             IF l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX = 'TERMINATION_QUOTE' THEN
4124                               inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE11 := SUBSTR(TRIM(l_xfer_tbl(k).Quote_number),1,G_AR_DATA_LENGTH);
4125                             END IF;
4126                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE12 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).KHR_ID)),1,G_AR_DATA_LENGTH);
4127                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE13 := SUBSTR(TRIM(l_xfer_tbl(k).OKL_SOURCE_BILLING_TRX),1,G_AR_DATA_LENGTH);
4128                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE14 := SUBSTR(TRIM(TO_CHAR(l_xfer_tbl(k).TXN_ID)),1,G_AR_DATA_LENGTH);
4129                             inv_dist_tbl(n).INTERFACE_LINE_ATTRIBUTE15 := SUBSTR(TRIM(l_xfer_tbl(k).INVOICE_FORMAT_TYPE),1,G_AR_DATA_LENGTH);
4130                             inv_dist_tbl(n).INTERFACE_LINE_CONTEXT := 'OKL_CONTRACTS';
4131                          END IF;
4132 
4133                          inv_dist_tbl(n).ORG_ID := l_xfer_tbl(k).ORG_ID;
4134                          inv_dist_tbl(n).CREATED_BY := G_user_id;
4135                          inv_dist_tbl(n).CREATION_DATE := sysdate;
4136                          inv_dist_tbl(n).LAST_UPDATED_BY := G_user_id;
4137                          inv_dist_tbl(n).LAST_UPDATE_DATE := sysdate;
4138 
4139                          IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4140                             OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Done Preparing inv_dist record.');
4141                          END IF;
4142                         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4143                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').account_class:' || inv_dist_tbl(n).account_class);
4144                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').amount:' || inv_dist_tbl(n).amount);
4145                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').code_combination_id:' || inv_dist_tbl(n).code_combination_id);
4146                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').created_by:' || inv_dist_tbl(n).created_by);
4147                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').creation_date:' || inv_dist_tbl(n).creation_date);
4148                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute1:' || inv_dist_tbl(n).interface_line_attribute1 );
4149                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute10 :' || inv_dist_tbl(n).interface_line_attribute10);
4150                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute11 :' || inv_dist_tbl(n).interface_line_attribute11);
4151                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute12 :' || inv_dist_tbl(n).interface_line_attribute12);
4152                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute13 :' || inv_dist_tbl(n).interface_line_attribute13);
4153                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute14 :' || inv_dist_tbl(n).interface_line_attribute14);
4154                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute15 :' || inv_dist_tbl(n).interface_line_attribute15);
4155                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute2:' || inv_dist_tbl(n).interface_line_attribute2 );
4156                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute3:' || inv_dist_tbl(n).interface_line_attribute3 );
4157                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute4:' || inv_dist_tbl(n).interface_line_attribute4 );
4158                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute5:' || inv_dist_tbl(n).interface_line_attribute5 );
4159                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute6:' || inv_dist_tbl(n).interface_line_attribute6 );
4160                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute7:' || inv_dist_tbl(n).interface_line_attribute7 );
4161                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute8:' || inv_dist_tbl(n).interface_line_attribute8 );
4162                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_attribute9:' || inv_dist_tbl(n).interface_line_attribute9 );
4163                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').interface_line_context:' || inv_dist_tbl(n).interface_line_context);
4164                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').last_update_date:' || inv_dist_tbl(n).last_update_date);
4165                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').last_updated_by:' || inv_dist_tbl(n).last_updated_by);
4166                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').org_id:' || inv_dist_tbl(n).org_id);
4167                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','inv_dist_tbl('||n||').percent:' || inv_dist_tbl(n).percent);
4168                         END IF;
4169                          n := n + 1;
4170                       END LOOP;
4171 
4172                    END IF;
4173 
4174 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4175                  END IF; -- IF G_ACC_SYS_OPTION = 'ATS' THEN
4176 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
4177 
4178                END IF; -- IF l_xfer_tbl(k).AMOUNT <> 0 THEN
4179                 -- ---------------------------------
4180                 -- Check and reset commit counter
4181                 -- ---------------------------------
4182 
4183                 IF l_commit_cnt > G_COMMIT_SIZE THEN
4184 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4185 -- Additional check to see if all TAI related TXD records have been completed
4186                 --Added below if condition by nikshah for bug 7696685
4187                 IF l_xfer_tbl.exists(k+1) THEN
4188                   IF l_xfer_tbl(k).TAI_ID <> l_xfer_tbl(k+1).TAI_ID THEN
4189                     l_commit_cnt := 0;
4190                     COMMIT;
4191                   END IF;
4192                 END IF;
4193 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
4194                 END IF;
4195 
4196                 -- ---------------------------------
4197                 -- Set header_id local variable
4198                 -- ---------------------------------
4199 
4200 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4201 --                l_hdr_id := l_xfer_tbl(k).xsi_id;
4202                 l_hdr_id := l_xfer_tbl(k).tai_id;
4203 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
4204 
4205           -- Bug#9576651 - Start
4206           -- Added exception block to handle exceptions raised by APIs
4207           EXCEPTION
4208             WHEN OTHERS THEN
4209               l_error_tai_tbl(l_error_tai_cnt) := l_xfer_tbl(k).tai_id;
4210 
4211               FND_FILE.put_line(fnd_file.log,
4212                        '--------- ERROR LOG START ---------------' );
4213               FND_FILE.put_line(fnd_file.log,
4214                        'CONTRACT_NUMBER : ' || l_xfer_tbl(k).CONTRACT_NUMBER);
4215               FND_FILE.put_line(fnd_file.log,
4216                        'ASSET_NUMBER : ' || l_xfer_tbl(k).ASSET_NUMBER);
4217 
4218               FND_MSG_PUB.Count_And_Get
4219                      (p_count         =>      x_msg_count,
4220                       p_data          =>      x_msg_data);
4221 
4222 
4223               IF x_msg_count > 0 THEN
4224                  FOR i IN 1..x_msg_count LOOP
4225                    fnd_msg_pub.get (p_msg_index => i,
4226                            p_encoded => 'F',
4227                            p_data => lx_msg_data,
4228                            p_msg_index_out => l_msg_index_out);
4229                 --   FND_FILE.put_line(fnd_file.log,
4230                 --       'ERROR (OKL_ARIntf_Pvt.Get_REC_FEEDER): ' || lx_msg_data);
4231                  END LOOP;
4232                   FND_FILE.put_line(fnd_file.log,
4233                        'ERROR (OKL_ARIntf_Pvt.Get_REC_FEEDER): ' || lx_msg_data);
4234 
4235                END IF;
4236               FND_FILE.put_line(fnd_file.log,
4237                        '--------- ERROR LOG END ---------------' );
4238 
4239               l_error_tai_cnt := l_error_tai_cnt + 1;
4240           END;
4241           -- Bug#9576651 - End
4242            END LOOP;
4243 
4244            -- ----------------------------------
4245            -- Update prev header status
4246            -- ----------------------------------
4247 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4248 --           UPDATE OKL_EXT_SELL_INVS_B
4249 -- Update internal billing table instead
4250            UPDATE okl_trx_ar_invoices_b
4251 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
4252            SET trx_status_code = 'PROCESSED',
4253                last_update_date = sysdate,
4254                last_updated_by = lx_last_updated_by,
4255                last_update_login = lx_last_update_login,
4256                request_id = lx_request_id,
4257                program_update_date = sysdate,
4258                program_application_id = lx_program_application_id,
4259                program_id = lx_program_id
4260            WHERE ID = l_hdr_id;
4261 
4262           IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4263             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Updating last record with id: '||l_hdr_id);
4264           END IF;
4265            IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4266                         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Updating last record with id: '||l_hdr_id);
4267            END IF;
4268            COMMIT;
4269 
4270            -- -------------------------------------
4271            -- Clear error table before bulk insert
4272            -- -------------------------------------
4273            error_tbl.delete;
4274 
4275            -- ---------------------------------------------
4276            -- Transfer line records to the AR interface
4277            -- ---------------------------------------------
4278 
4279            IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4280                         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting into ra_interface_lines_all');
4281            END IF;
4282           IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4283             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Inserting into ra_interface_lines_all');
4284           END IF;
4285 
4286            IF inv_lines_tbl.COUNT > 0 THEN
4287             FORALL indx in inv_lines_tbl.first..inv_lines_tbl.LAST
4288                 SAVE EXCEPTIONS
4289                 INSERT INTO ra_interface_lines_all
4290                 VALUES inv_lines_tbl(indx);
4291            END IF;
4292 
4293            IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4294                         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Done Inserting into ra_interface_lines_all');
4295            END IF;
4296           IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4297             fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Done Inserting into ra_interface_lines_all');
4298           END IF;
4299            IF SQL%BULK_EXCEPTIONS.COUNT > 0 THEN
4300             FOR i IN 1..SQL%BULK_EXCEPTIONS.COUNT LOOP
4301                 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4302                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'For interface lines, error ' || i || ' occurred during '||
4303                     'iteration ' || SQL%BULK_EXCEPTIONS(i).ERROR_INDEX);
4304                 END IF;
4305 
4306                 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4307                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Oracle error is ' ||
4308                     SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
4309                     -- bug 5474184
4310                 END IF;
4311                 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4312                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','For interface lines, error ' || i || ' occurred during iteration ' || SQL%BULK_EXCEPTIONS(i).ERROR_INDEX);
4313                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Oracle error is ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
4314                 -- bug 5474184
4315                 END IF;
4316 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4317 --                error_tbl(error_tbl.count + 1).id :=   to_number(inv_lines_tbl(i).interface_line_attribute10||
4318 --                                                               inv_lines_tbl(i).interface_line_attribute11);
4319                 error_tbl(error_tbl.count + 1).id :=   to_number(inv_lines_tbl(i).interface_line_attribute14);
4320 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4321 
4322             END LOOP;
4323            END IF;
4324 
4325            -- ---------------------------------------------
4326            -- Transfer sales credits records to the AR interface
4327            -- ---------------------------------------------
4328            IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4329                         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting into sales_credits');
4330            END IF;
4331            IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4332              fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Inserting into sales_credits');
4333            END IF;
4334            IF sales_credits_tbl.COUNT > 0 THEN
4335             FORALL indx in sales_credits_tbl.first..sales_credits_tbl.LAST
4336                 SAVE EXCEPTIONS
4337                 INSERT INTO RA_INTERFACE_SALESCREDITS_ALL
4338                 VALUES sales_credits_tbl(indx);
4339            END IF;
4340 
4341            IF SQL%BULK_EXCEPTIONS.COUNT > 0 THEN
4342             FOR i IN 1..SQL%BULK_EXCEPTIONS.COUNT LOOP
4343                 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4344                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'For sales credits, error ' || i || ' occurred during '||
4345                     'iteration ' || SQL%BULK_EXCEPTIONS(i).ERROR_INDEX);
4346                 END IF;
4347         		IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4348                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Oracle error is ' ||
4349                     SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
4350                 -- bug 5474184
4351                 END IF;
4352                 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4353                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','For sales credits, error ' || i || ' occurred during iteration ' || SQL%BULK_EXCEPTIONS(i).ERROR_INDEX);
4354                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Oracle error is ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
4355                 -- bug 5474184
4356                 END IF;
4357 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4358 --                error_tbl(error_tbl.count + 1).id :=   to_number(sales_credits_tbl(i).interface_line_attribute10||
4359 --                                                               sales_credits_tbl(i).interface_line_attribute11);
4360                 error_tbl(error_tbl.count + 1).id :=   to_number(sales_credits_tbl(i).interface_line_attribute14);
4361 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
4362             END LOOP;
4363            END IF;
4364 
4365            -- ---------------------------------------------
4366            -- Transfer contingency records to the AR interface
4367            -- ---------------------------------------------
4368 
4369            IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4370                         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting into ar_contingency');
4371            END IF;
4372            IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4373              fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Inserting into ar_contingency');
4374            END IF;
4375            IF ar_contingency_tbl.COUNT > 0 THEN
4376 
4377             FORALL indx in ar_contingency_tbl.first..ar_contingency_tbl.LAST
4378                 SAVE EXCEPTIONS
4379                 INSERT INTO AR_INTERFACE_CONTS_ALL
4380                 VALUES ar_contingency_tbl(indx);
4381 
4382            END IF;
4383 
4384            IF SQL%BULK_EXCEPTIONS.COUNT > 0 THEN
4385             FOR i IN 1..SQL%BULK_EXCEPTIONS.COUNT LOOP
4386                 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4387                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'For AR contingencies, error ' || i || ' occurred during '||
4388                     'iteration ' || SQL%BULK_EXCEPTIONS(i).ERROR_INDEX);
4389                 END IF;
4390 
4391 				IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4392                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Oracle error is ' ||
4393                     SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
4394                 -- bug 5474184
4395                 END IF;
4396                 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4397                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','For AR contingencies, error ' || i || ' occurred during iteration ' || SQL%BULK_EXCEPTIONS(i).ERROR_INDEX);
4398                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Oracle error is ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
4399                 -- bug 5474184
4400                 END IF;
4401 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4402 --                error_tbl(error_tbl.count + 1).id :=   to_number(ar_contingency_tbl(i).interface_line_attribute10||
4403 --                                                               ar_contingency_tbl(i).interface_line_attribute11);
4404                 error_tbl(error_tbl.count + 1).id :=   to_number(ar_contingency_tbl(i).interface_line_attribute14);
4405 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
4406             END LOOP;
4407            END IF;
4408 
4409            -- ----------------------------------------------------------
4410            -- Transfer invoice distribution records to the AR interface
4411            -- ----------------------------------------------------------
4412            IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4413                         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inserting into inv_dist');
4414            END IF;
4415            IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4416              fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Inserting into inv_dist');
4417            END IF;
4418            IF inv_dist_tbl.count > 0 THEN
4419             FORALL indx in inv_dist_tbl.first..inv_dist_tbl.LAST
4420                 SAVE EXCEPTIONS
4421                 INSERT INTO RA_INTERFACE_DISTRIBUTIONS_ALL
4422                 VALUES inv_dist_tbl(indx);
4423            END IF;
4424 
4425            IF SQL%BULK_EXCEPTIONS.COUNT > 0 THEN
4426             FOR i IN 1..SQL%BULK_EXCEPTIONS.COUNT LOOP
4427                 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4428                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'For distributions, error ' || i || ' occurred during '||
4429                     'iteration ' || SQL%BULK_EXCEPTIONS(i).ERROR_INDEX);
4430                 END IF;
4431 
4432                 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4433                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Oracle error is ' ||
4434                     SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
4435                 -- bug 5474184
4436                 END IF;
4437                 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4438                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','For distributions, error ' || i || ' occurred during iteration ' || SQL%BULK_EXCEPTIONS(i).ERROR_INDEX);
4439                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Oracle error is ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
4440                 -- bug 5474184
4441                 END IF;
4442 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4443 --                error_tbl(error_tbl.count + 1).id :=   to_number(inv_dist_tbl(i).interface_line_attribute10||
4444 --                                                               inv_dist_tbl(i).interface_line_attribute11);
4445                 error_tbl(error_tbl.count + 1).id :=   to_number(inv_dist_tbl(i).interface_line_attribute14);
4446 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
4447 
4448             END LOOP;
4449            END IF;
4450 
4451            if error_tbl.count > 0 then
4452                 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4453                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Error Processing');
4454                 END IF;
4455                 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4456                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Error Processing');
4457                 END IF;
4458                 for indx in error_tbl.FIRST..error_tbl.LAST loop
4459 
4460 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4461 -- Modify the error table keys to internal billing tables
4462                     -- UPDATE XSI trx_status_code to 'WORKING'
4463 --                    l_error_xsi_id := NULL;
4464                     Begin
4465                         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4466 --                                                  OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'** XSI_ID is : '||l_error_xsi_id);
4467                            OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'** TXD_ID is : '||error_tbl(indx).id);
4468                         END IF;
4469                         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4470                           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','** TXD_ID is : '||error_tbl(indx).id);
4471                         END IF;
4472                     Exception
4473                         When Others Then
4474 --                            l_error_xsi_id := NULL;
4475                             l_error_txd_id := NULL;
4476                             l_error_tai_id := NULL;
4477 
4478                             IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4479 --                                                          OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'** Exception ** error_xsi_id: '||l_error_xsi_id);
4480                               OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'** Exception ** error_txd_id: '||error_tbl(indx).id);
4481                             END IF;
4482                             IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4483                               fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','** Exception ** error_txd_id: '||error_tbl(indx).id);
4484                             END IF;
4485                     End;
4486 --                    update okl_ext_sell_invs_b
4487                     update okl_trx_ar_invoices_b tai
4488                     set tai.trx_status_code = 'WORKING'
4489 --                    where id = l_error_xsi_id;
4490                     where id = l_error_tai_id;
4491 --end: |           15-FEB-07 cklee  R12 Billing enhancement project
4492 
4493                     -- --------------------------------------------
4494                     -- delete records from sales credits interface
4495                     -- --------------------------------------------
4496                     delete from RA_INTERFACE_SALESCREDITS
4497 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4498 --                    where interface_line_attribute10 = to_char(SUBSTR (error_tbl(indx).id,1, 20))
4499 --                    and interface_line_attribute11 = to_char(SUBSTR(error_tbl(indx).id,21));
4500                     where interface_line_attribute14 = to_char(error_tbl(indx).id);
4501 --endt: |           15-FEB-07 cklee  R12 Billing enhancement project
4502 
4503                     -- ----------------------------------
4504                     -- delete records from contingencies
4505                     -- ----------------------------------
4506                     delete from AR_INTERFACE_CONTS
4507 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4508 --                    where interface_line_attribute10 = to_char(SUBSTR (error_tbl(indx).id,1, 20))
4509 --                    and interface_line_attribute11 = to_char(SUBSTR(error_tbl(indx).id,21));
4510                     where interface_line_attribute14 = to_char(error_tbl(indx).id);
4511 --endt: |           15-FEB-07 cklee  R12 Billing enhancement project
4512 
4513                     -- ---------------------------
4514                     -- delete records from distributions
4515                     -- ---------------------------
4516                     delete from RA_INTERFACE_DISTRIBUTIONS
4517 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4518 --                    where interface_line_attribute10 = to_char(SUBSTR (error_tbl(indx).id,1, 20))
4519 --                    and interface_line_attribute11 = to_char(SUBSTR(error_tbl(indx).id,21));
4520                     where interface_line_attribute14 = to_char(error_tbl(indx).id);
4521 --endt: |           15-FEB-07 cklee  R12 Billing enhancement project
4522 
4523                     -- ---------------------------
4524                     -- delete records from lines
4525                     -- ---------------------------
4526                     delete from ra_interface_lines
4527 --start: |           15-FEB-07 cklee  R12 Billing enhancement project
4528 --                    where interface_line_attribute10 = to_char(SUBSTR (error_tbl(indx).id,1, 20))
4529 --                    and interface_line_attribute11 = to_char(SUBSTR(error_tbl(indx).id,21));
4530                     where interface_line_attribute14 = to_char(error_tbl(indx).id);
4531 --endt: |           15-FEB-07 cklee  R12 Billing enhancement project
4532 
4533                 end loop;
4534            end if;
4535 
4536         END IF; -- If PL/sql table has any records
4537     EXIT WHEN xfer_csr%NOTFOUND;
4538     END LOOP;
4539     CLOSE xfer_csr;
4540 
4541     l_xfer_tbl.delete;
4542     -- -----------------------------
4543     -- End Bulk Fetch Code
4544     -- -----------------------------
4545 
4546     -- Bug#9576651 - Start
4547     -- Handle the records with error
4548 
4549   --  IF l_error_tai_cnt > 0 THEN
4550       IF l_error_tai_tbl.count > 0 THEN
4551       -- Delete AR Interface tables
4552       FOR err_tai_cnt IN l_error_tai_tbl.first .. l_error_tai_tbl.last
4553       LOOP
4554         DELETE FROM RA_INTERFACE_SALESCREDITS
4555          WHERE interface_line_attribute14 IN
4556                (SELECT TLD.ID
4557                   FROM OKL_TXD_AR_LN_DTLS_B TLD
4558                      , OKL_TXL_AR_INV_LNS_B TIL
4559                      , OKL_TRX_AR_INVOICES_B TAI
4560                   WHERE TIL.ID = TLD.TIL_ID_DETAILS
4561                     AND TAI.ID = TIL.TAI_ID
4562                     AND TAI.ID = l_error_tai_tbl(err_tai_cnt));
4563 
4564         DELETE FROM AR_INTERFACE_CONTS
4565          WHERE interface_line_attribute14 IN
4566                (SELECT TLD.ID
4567                   FROM OKL_TXD_AR_LN_DTLS_B TLD
4568                      , OKL_TXL_AR_INV_LNS_B TIL
4569                      , OKL_TRX_AR_INVOICES_B TAI
4570                   WHERE TIL.ID = TLD.TIL_ID_DETAILS
4571                     AND TAI.ID = TIL.TAI_ID
4572                     AND TAI.ID = l_error_tai_tbl(err_tai_cnt));
4573 
4574         DELETE FROM RA_INTERFACE_DISTRIBUTIONS
4575          WHERE interface_line_attribute14 IN
4576                (SELECT TLD.ID
4577                   FROM OKL_TXD_AR_LN_DTLS_B TLD
4578                      , OKL_TXL_AR_INV_LNS_B TIL
4579                      , OKL_TRX_AR_INVOICES_B TAI
4580                   WHERE TIL.ID = TLD.TIL_ID_DETAILS
4581                     AND TAI.ID = TIL.TAI_ID
4582                     AND TAI.ID = l_error_tai_tbl(err_tai_cnt));
4583 
4584         DELETE FROM RA_INTERFACE_LINES
4585          WHERE interface_line_attribute14 IN
4586                (SELECT TLD.ID
4587                   FROM OKL_TXD_AR_LN_DTLS_B TLD
4588                      , OKL_TXL_AR_INV_LNS_B TIL
4589                      , OKL_TRX_AR_INVOICES_B TAI
4590                   WHERE TIL.ID = TLD.TIL_ID_DETAILS
4591                     AND TAI.ID = TIL.TAI_ID
4592                     AND TAI.ID = l_error_tai_tbl(err_tai_cnt));
4593 
4594       -- Update the OKL_TRX_AR_INVOICES_B back to Submitted status
4595         UPDATE OKL_TRX_AR_INVOICES_B
4596           SET TRX_STATUS_CODE = 'SUBMITTED'
4597         WHERE ID  = l_error_tai_tbl(err_tai_cnt);
4598       END LOOP;
4599 
4600       -- Update the concurrent program status to Warning
4601       l_conc_status:= FND_CONCURRENT.set_completion_status(status=>'WARNING',message=>NULL);
4602     END IF;
4603     -- Bug#9576651 - End
4604 
4605 	------------------------------------------------------------
4606 	-- Print log and output messages
4607 	------------------------------------------------------------
4608 
4609     -- Get the request Id
4610     l_request_id := NULL;
4611     OPEN  req_id_csr;
4612     FETCH req_id_csr INTO l_request_id;
4613     CLOSE req_id_csr;
4614 
4615     processed_sts       := 'PROCESSED';
4616     error_sts           := 'ERROR';
4617 
4618     l_succ_cnt          := 0;
4619     l_err_cnt           := 0;
4620 
4621 --start: |           15-FEB-07 cklee  R12 Billing enhancement project                 |
4622      OPEN   tld_cnt_csr_selected( l_request_id);
4623      FETCH  tld_cnt_csr_selected INTO l_selected_count;
4624      CLOSE  tld_cnt_csr_selected;
4625 
4626      OPEN   tld_cnt_csr( l_request_id, processed_sts );
4627      FETCH  tld_cnt_csr INTO l_succ_cnt;
4628      CLOSE  tld_cnt_csr;
4629 
4630      -- Error Count
4631      OPEN   tld_cnt_csr( l_request_id, error_sts );
4632      FETCH  tld_cnt_csr INTO l_err_cnt;
4633      CLOSE  tld_cnt_csr;
4634 
4635 
4636 --end: |           15-FEB-07 cklee  R12 Billing enhancement project                 |
4637 
4638 
4639     ----------------------------------------
4640     -- Get Operating unit name
4641     ----------------------------------------
4642     l_op_unit_name := NULL;
4643     OPEN  op_unit_csr;
4644     FETCH op_unit_csr INTO l_op_unit_name;
4645     CLOSE op_unit_csr;
4646 
4647     -- Start New Out File stmathew 15-OCT-2004
4648     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 54, ' ')||'Oracle Leasing and Finance Management'||lpad(' ', 55, ' '));
4649     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 132, ' '));
4650     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 49, ' ')||'Receivables Invoice Transfer To AR'||lpad(' ', 49, ' '));
4651     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 49, ' ')||'----------------------------------'||lpad(' ', 49, ' '));
4652     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 132, ' '));
4653     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 132, ' '));
4654     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,'Operating Unit: '||l_op_unit_name);
4655     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,'Request Id: '||l_request_id||lpad(' ',74,' ') ||'Run Date: '||to_char(sysdate));
4656     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,'Currency: '||Okl_Accounting_Util.get_func_curr_code);
4657     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad('-', 132, '-'));
4658     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'From Bill Date  : ' ||p_trx_date_from);
4659     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, 'To Bill Date    : ' ||p_trx_date_to);
4660     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad('-', 132, '-'));
4661     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 132, ' '));
4662     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 132, ' '));
4663 
4664     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,'Processing Details:'||lpad(' ', 113, ' '));
4665     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 132, ' '));
4666     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '                Number of Invoice Lines Selected: '||l_selected_count);
4667     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '                Number of Invoice Lines Transferred: '||l_succ_cnt);
4668     FND_FILE.PUT_LINE (FND_FILE.OUTPUT, '                Number of Invoice Lines Errored: '||(l_selected_count - l_succ_cnt));
4669 
4670     -- START of code added as part of Bankruptcy changes - Bug#: 15953012, 15953954
4671     IF (l_cust_bkrpt_cnt >0 OR l_vndr_bkrpt_cnt >0)
4672     THEN
4673 
4674 	    FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 132, ' '));
4675 	    FND_FILE.PUT_LINE (FND_FILE.OUTPUT,'                Invoice Lines of below contracts are not Transferred because of Bankruptcy');
4676 	    FND_FILE.PUT_LINE (FND_FILE.OUTPUT,'                --------------------------------------------------------------------------');
4677 
4678     END IF;
4679 
4680 
4681     IF (l_cust_bkrpt_cnt >0)
4682     THEN
4683 
4684 	    FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 132, ' '));
4685 	    FOR cust_bankrupt_cnt_rec IN cust_bankrupt_cnt_csr
4686 	    LOOP
4687 
4688 		FND_FILE.PUT_LINE (FND_FILE.OUTPUT, rpad('                LESSEE : '||cust_bankrupt_cnt_rec.name,80,' ')||rpad('Contract# : '||cust_bankrupt_cnt_rec.khr_number,35,' ')||'No. of Lines not Transferred : '||cust_bankrupt_cnt_rec.cust_rec_cnt);
4689 
4690 	    END LOOP;
4691 
4692     END IF;
4693 
4694 
4695     IF (l_vndr_bkrpt_cnt >0)
4696     THEN
4697 	    FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 132, ' '));
4698 	    FOR vndr_bankrupt_cnt_rec IN vndr_bankrupt_cnt_csr
4699 	    LOOP
4700 
4701 		FND_FILE.PUT_LINE (FND_FILE.OUTPUT, rpad('                LEASE VENDOR : '||vndr_bankrupt_cnt_rec.name,80,' ')||rpad('Contract# : '||vndr_bankrupt_cnt_rec.khr_number,35,' ')||'No. of Lines not Transferred : '||vndr_bankrupt_cnt_rec.vndr_rec_cnt);
4702 
4703 	    END LOOP;
4704 
4705     END IF;
4706     -- END of code added as part of Bankruptcy changes - Bug#: 15953012, 15953954
4707 
4708     FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 132, ' '));
4709 
4710 
4711     -- Start added as part of Bug#: 15953012, 15953954
4712 	 UPDATE okl_trx_ar_invoices_b
4713 	 SET 	trx_status_code = 'SUBMITTED'
4714 	 WHERE 	trx_status_code IN ('CUST-BANKRUPT','VNDR-BANKRUPT');
4715 
4716 	 IF (SQL%ROWCOUNT >0) THEN
4717 	    COMMIT;
4718 	 END IF;
4719     -- End added as part of Bug#: 15953012, 15953954
4720 
4721     -- End New Out File stmathew 15-OCT-2004
4722     IF x_msg_count > 0 THEN
4723        FOR i IN 1..x_msg_count LOOP
4724             IF i = 1 THEN
4725                 FND_FILE.PUT_LINE (FND_FILE.OUTPUT,'Details of Errored Invoice Lines:'||lpad(' ', 97, ' '));
4726                 FND_FILE.PUT_LINE (FND_FILE.OUTPUT,rpad(' ', 132, ' '));
4727             END IF;
4728             fnd_msg_pub.get (p_msg_index => i,
4729                        p_encoded => 'F',
4730                        p_data => lx_msg_data,
4731                        p_msg_index_out => l_msg_index_out);
4732 
4733             FND_FILE.PUT_LINE (FND_FILE.OUTPUT,TO_CHAR(i) || ': ' || lx_msg_data);
4734 
4735             IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
4736                 FND_LOG.STRING(FND_LOG.LEVEL_EXCEPTION,'okl_arintf_pvt',
4737                   TO_CHAR(i) || ': ' || lx_msg_data);
4738             END IF;
4739 
4740       END LOOP;
4741     END IF;
4742 
4743 
4744     IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
4745        FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,'okl_arintf_pvt'
4746 									,'End(-)');
4747     END IF;
4748 
4749 	-- ----------------------------------------------------------
4750 	-- End processing
4751 	-- ----------------------------------------------------------
4752 
4753     -- -------------------------------------------
4754     -- Purge data from the Parallel process Table
4755     -- -------------------------------------------
4756     IF p_assigned_process IS NOT NULL THEN
4757 
4758         DELETE okl_parallel_processes
4759         WHERE assigned_process = p_assigned_process;
4760 
4761         COMMIT;
4762 
4763     END IF;
4764 
4765 
4766 EXCEPTION
4767 
4768     WHEN bulk_errors THEN
4769 
4770         -- -------------------------------------------
4771         -- Purge data from the Parallel process Table
4772         -- -------------------------------------------
4773         IF p_assigned_process IS NOT NULL THEN
4774             DELETE okl_parallel_processes
4775             WHERE assigned_process = p_assigned_process;
4776             COMMIT;
4777         END IF;
4778 
4779            IF SQL%BULK_EXCEPTIONS.COUNT > 0 THEN
4780             FOR i IN 1..SQL%BULK_EXCEPTIONS.COUNT LOOP
4781                 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4782                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Exception: For interface lines, error ' || i || ' occurred during '||
4783                     'iteration ' || SQL%BULK_EXCEPTIONS(i).ERROR_INDEX);
4784                 END IF;
4785                 IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4786                                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Oracle error is ' ||
4787                     SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
4788                 -- bug 5474184
4789                 END IF;
4790                 IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4791                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Exception: For interface lines, error ' || i || ' occurred during iteration ' || SQL%BULK_EXCEPTIONS(i).ERROR_INDEX);
4792                   fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','Oracle error is ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
4793                 -- bug 5474184
4794                 END IF;
4795             END LOOP;
4796            END IF;
4797 
4798         WHEN FND_API.G_EXC_ERROR THEN
4799           x_return_status := OKL_API.G_RET_STS_ERROR;
4800           FND_MSG_PUB.Count_And_Get
4801             (p_count         =>      x_msg_count,
4802              p_data          =>      x_msg_data);
4803 
4804         IF x_msg_count > 0 THEN
4805            FOR i IN 1..x_msg_count LOOP
4806 
4807                 fnd_msg_pub.get (p_msg_index => i,
4808                            p_encoded => 'F',
4809                            p_data => lx_msg_data,
4810                            p_msg_index_out => l_msg_index_out);
4811 
4812                 FND_FILE.put_line(fnd_file.log,'ERROR (OKL_ARIntf_Pvt.Get_REC_FEEDER): ' || lx_msg_data);
4813           END LOOP;
4814         END IF;
4815 
4816         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4817           x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
4818           FND_MSG_PUB.Count_And_Get
4819             (p_count         =>      x_msg_count,
4820              p_data          =>      x_msg_data);
4821 
4822         IF x_msg_count > 0 THEN
4823            FOR i IN 1..x_msg_count LOOP
4824 
4825                 fnd_msg_pub.get (p_msg_index => i,
4826                            p_encoded => 'F',
4827                            p_data => lx_msg_data,
4828                            p_msg_index_out => l_msg_index_out);
4829 
4830                 FND_FILE.put_line(fnd_file.log,'ERROR (OKL_ARIntf_Pvt.Get_REC_FEEDER): ' || lx_msg_data);
4831           END LOOP;
4832         END IF;
4833 
4834    WHEN OTHERS THEN
4835         x_return_status   :=  Okl_Api.G_RET_STS_ERROR;
4836         IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
4837                   OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'INSERT Failed ' || SQLERRM);
4838         END IF;
4839         IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
4840           fnd_log.STRING(fnd_log.level_statement,'okl.plsql.okl_arintf_pvt.get_rec_feeder.debug','INSERT Failed ' || SQLERRM);
4841         END IF;
4842         -- -------------------------------------------
4843         -- Purge data from the Parallel process Table
4844         -- -------------------------------------------
4845         IF p_assigned_process IS NOT NULL THEN
4846             DELETE okl_parallel_processes
4847             WHERE assigned_process = p_assigned_process;
4848             COMMIT;
4849         END IF;
4850 
4851         IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
4852             FND_LOG.STRING(FND_LOG.LEVEL_EXCEPTION,'okl_arintf_pvt',
4853                'EXCEPTION :'||'OTHERS');
4854         END IF;
4855 
4856 END Get_REC_FEEDER;
4857 
4858 END Okl_Arintf_Pvt;