DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_CREATE_DISB_TRANS_PVT

Source


1 PACKAGE BODY OKL_CREATE_DISB_TRANS_PVT AS
2 /* $Header: OKLRCDTB.pls 120.13 2007/12/11 20:08:56 cklee noship $ */
3 
4 -- Start of wraper code generated automatically by Debug code generator
5   G_MODULE                 VARCHAR2(40) := 'LEASE.DISBURSEMENTS';
6   G_DEBUG_ENABLED CONSTANT VARCHAR2(10) := OKL_DEBUG_PUB.CHECK_LOG_ENABLED;
7   G_LEVEL_PROCEDURE        NUMBER;
8   G_IS_DEBUG_PROCEDURE_ON  BOOLEAN;
9   G_IS_DEBUG_STATEMENT_ON  BOOLEAN;
10 
11 --start:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
12   G_STANDARD                         CONSTANT VARCHAR2(200) := 'STANDARD';
13   G_CREDIT                           CONSTANT VARCHAR2(200) := 'CREDIT';
14  ----------------------------------------------------------------------------
15  -- Global Exception
16  ----------------------------------------------------------------------------
17  G_EXCEPTION_HALT_VALIDATION	EXCEPTION;
18 --end:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
19 
20 -- End of wraper code generated automatically by Debug code generator
21 
22 --start:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
23 
24 ----------------------------------------------------------------------------
25 -- Start of comments
26 --
27 -- Procedure Name  : populate_more_attrs
28 -- Description     : Populate additional attributes
29 -- Business Rules  :
30 -- Parameters      :
31 -- Version         : 1.0
32 -- End of comments
33 --
34 ----------------------------------------------------------------------------
35   FUNCTION populate_more_attrs(
36     p_tapv_rec                  IN  tapv_rec_type
37     ,x_tapv_rec                 OUT NOCOPY tapv_rec_type
38   ) RETURN VARCHAR2
39   IS
40     l_return_status   VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
41 --    l_set_of_books_id NUMBER;
42     l_terms_id NUMBER;
43 --    l_application_id NUMBER;
44     l_pay_group_lookup_code PO_VENDOR_SITES_ALL.PAY_GROUP_LOOKUP_CODE%TYPE;
45     l_vendor_id NUMBER;
46 
47   CURSOR c_vendor(p_vendor_site_id NUMBER)
48   IS
49   --start modified abhsaxen for performance SQLID 20562381
50   select vs.vendor_id
51   from   ap_supplier_sites vs
52   where vs.vendor_site_id = p_vendor_site_id
53   ;
54   --end modified abhsaxen for performance SQLID 20562381
55 
56   CURSOR c_app
57   IS
58   select a.application_id
59   from FND_APPLICATION a
60   where APPLICATION_SHORT_NAME = 'OKL'
61   ;
62 
63 /*
64   CURSOR c_set_of_books(p_org_id  NUMBER)
65   IS
66   select to_number(a.set_of_books_id)
67   from HR_OPERATING_UNITS a
68   where ORGANIZATION_ID = p_org_id
69   ;
70 */
71 
72   CURSOR c_vendor_sites(p_vendor_site_id  NUMBER)
73   IS
74   select a.TERMS_ID, a.PAY_GROUP_LOOKUP_CODE
75   from PO_VENDOR_SITES_ALL a
76   where vendor_site_id = p_vendor_site_id
77   ;
78 
79     -- select apps.FND_DOC_SEQ_885_S.nextval from dual;
80 /*
81     l_document_category VARCHAR2(100):= 'OKL Lease Pay Invoices';--'OKL Lease Receipt Invoices';
82     l_okl_application_id number(3) := 540;
83 
84     lX_dbseqnm           VARCHAR2(2000):= '';
85     lX_dbseqid           NUMBER(38):= NULL;
86 */
87   BEGIN
88 
89     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
90       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs begin');
91     END IF;
92 
93     -- assgin to OUT always
94     x_tapv_rec := p_tapv_rec;
95     IF (p_tapv_rec.payment_method_code is null or
96         p_tapv_rec.payment_method_code = OKL_API.G_MISS_CHAR) THEN
97       x_tapv_rec.payment_method_code := 'CHECK'; -- set default value
98     END IF;
99     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
100       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs: x_tapv_rec.payment_method_code:' || x_tapv_rec.payment_method_code);
101     END IF;
102 
103 /*
104 -- 1. SET_OF_BOOKS_ID
105     OPEN c_set_of_books(p_tapv_rec.org_id);
106     FETCH c_set_of_books INTO l_set_of_books_id;
107     CLOSE c_set_of_books;
108 */
109 
110     IF (p_tapv_rec.SET_OF_BOOKS_ID is null or
111         p_tapv_rec.SET_OF_BOOKS_ID = OKL_API.G_MISS_NUM) THEN
112       x_tapv_rec.SET_OF_BOOKS_ID := OKL_ACCOUNTING_UTIL.get_set_of_books_id;--l_set_of_books_id;
113     END IF;
114     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
115       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs: x_tapv_rec.SET_OF_BOOKS_ID:' || x_tapv_rec.SET_OF_BOOKS_ID);
116     END IF;
117 -- 2. IPPT_ID
118   -- cklee 05/04/2004
119     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
120       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs: p_tapv_rec.IPPT_ID:' || p_tapv_rec.IPPT_ID);
121     END IF;
122     IF (p_tapv_rec.IPPT_ID IS NULL or
123         p_tapv_rec.IPPT_ID = OKL_API.G_MISS_NUM) THEN
124 
125       OPEN c_vendor_sites(p_tapv_rec.ipvs_id);
126       FETCH c_vendor_sites INTO l_terms_id, l_pay_group_lookup_code;
127       CLOSE c_vendor_sites;
128 
129       x_tapv_rec.IPPT_ID := l_terms_id;
130 
131     END IF;
132     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
133       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs: x_tapv_rec.IPPT_ID:' || x_tapv_rec.IPPT_ID);
134     END IF;
135 
136 -- 3. INVOICE_NUMBER
137 /*
138     OPEN c_app;
139     FETCH c_app INTO l_application_id;
140     CLOSE c_app;
141 
142     l_okl_application_id := nvl(l_application_id,540);
143 --
144 -- display specific application error if 'OKL Lease Pay Invoices' has not been setup or setup incorrectly
145 --
146     BEGIN
147       x_tapv_rec.invoice_number := fnd_seqnum.get_next_sequence
148                          (appid      =>  l_okl_application_id,
149                          cat_code    =>  l_document_category,
150                          sobid       =>  OKL_ACCOUNTING_UTIL.get_set_of_books_id,--l_set_of_books_id,
151                          met_code    =>  'A',
152                          trx_date    =>  SYSDATE,
153                          dbseqnm     =>  lx_dbseqnm,
154                          dbseqid     =>  lx_dbseqid);
155     EXCEPTION
156       WHEN OTHERS THEN
157         IF SQLCODE = 100 THEN
158           OKL_API.Set_Message(p_app_name      => G_APP_NAME,
159                               p_msg_name      => 'OKL_PAY_INV_SEQ_CHECK');
160           RAISE G_EXCEPTION_HALT_VALIDATION;
161         END IF;
162     END;
163 
164 -- cklee set vendor_invoice_numner if it's NULL
165     IF (p_tapv_rec.vendor_invoice_number IS NULL ) THEN
166       x_tapv_rec.vendor_invoice_number := p_tapv_rec.invoice_number;
167     END IF;
168 */
169 -- 4. NETTABLE_YN
170     IF (p_tapv_rec.NETTABLE_YN is null or
171         p_tapv_rec.NETTABLE_YN = OKL_API.G_MISS_CHAR) THEN
172       x_tapv_rec.NETTABLE_YN := 'N';
173     END IF;
174     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
175       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs: x_tapv_rec.NETTABLE_YN:' || x_tapv_rec.NETTABLE_YN);
176     END IF;
177 
178 -- 5. PAY_GROUP_LOOKUP_CODE
179   -- cklee 05/04/2004
180     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
181       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs: p_tapv_rec.PAY_GROUP_LOOKUP_CODE:' || p_tapv_rec.PAY_GROUP_LOOKUP_CODE);
182     END IF;
183 
184     IF (p_tapv_rec.PAY_GROUP_LOOKUP_CODE IS NULL or
185         p_tapv_rec.PAY_GROUP_LOOKUP_CODE = OKL_API.G_MISS_CHAR) THEN
186 
187 -- fixed PAY_GROUP_LOOKUP_CODE default data missing issues
188       OPEN c_vendor_sites(p_tapv_rec.ipvs_id);
189       FETCH c_vendor_sites INTO l_terms_id, l_pay_group_lookup_code;
190       CLOSE c_vendor_sites;
191 
192       x_tapv_rec.PAY_GROUP_LOOKUP_CODE := l_pay_group_lookup_code;
193 
194     END IF;
195     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
196       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs: x_tapv_rec.PAY_GROUP_LOOKUP_CODE:' || x_tapv_rec.PAY_GROUP_LOOKUP_CODE);
197     END IF;
198 
199 -- 6. vednor id
200     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
201       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs: p_tapv_rec.VENDOR_ID:' || p_tapv_rec.VENDOR_ID);
202     END IF;
203     IF (p_tapv_rec.VENDOR_ID is null or
204         p_tapv_rec.VENDOR_ID = OKL_API.G_MISS_NUM) THEN
205 
206       OPEN c_vendor(p_tapv_rec.ipvs_id);
207       FETCH c_vendor INTO l_vendor_id;
208       CLOSE c_vendor;
209 
210       x_tapv_rec.VENDOR_ID := l_vendor_id;
211 
212     END IF;
213     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
214       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs: x_tapv_rec.VENDOR_ID:' || x_tapv_rec.VENDOR_ID);
215     END IF;
216 
217 -- 7. invoice_type
218 -- cklee 05/04/2004
219 
220     IF (p_tapv_rec.INVOICE_TYPE is null or
221        p_tapv_rec.INVOICE_TYPE = OKL_API.G_MISS_CHAR) THEN
222 
223       x_tapv_rec.INVOICE_TYPE := G_STANDARD;
224 
225     END IF;
226     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
227       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs: x_tapv_rec.INVOICE_TYPE:' || x_tapv_rec.INVOICE_TYPE);
228     END IF;
229 
230     -- 8. If invoice type is G_STANDARD then invoice amount is positive
231     --    If invoice type is G_CREDIT then the invoice amount is negative.
232     --    sjalasut, made changes to incorporate the business rule as part
233     --    of OKLR12B Disbursements Project
234     IF((x_tapv_rec.INVOICE_TYPE = G_STANDARD AND x_tapv_rec.AMOUNT < 0)
235        OR(x_tapv_rec.INVOICE_TYPE = G_CREDIT AND x_tapv_rec.AMOUNT > 0))THEN
236       x_tapv_rec.AMOUNT := ((x_tapv_rec.AMOUNT) * (-1));
237     END IF;
238     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
239       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs: x_tapv_rec.AMOUNT:' || x_tapv_rec.AMOUNT);
240     END IF;
241 
242 --START:|             11-Dec-07    cklee   -- Fixed bug: 6682348 -- stamped request_id when insert      |
243     x_tapv_rec.REQUEST_ID := Fnd_Global.CONC_REQUEST_ID;
244     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
245       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs: x_tapv_rec.REQUEST_ID:' || x_tapv_rec.REQUEST_ID);
246     END IF;
247 --END:|             11-Dec-07    cklee   -- Fixed bug: 6682348 -- stamped request_id when insert      |
248 
249 
250 
251     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
252       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.populate_more_attrs end');
253     END IF;
254 
255     RETURN l_return_status;
256   EXCEPTION
257 
258     WHEN G_EXCEPTION_HALT_VALIDATION THEN
259 
260       l_return_status := OKL_API.G_RET_STS_ERROR;
261 
262 
263       RETURN l_return_status;
264     WHEN OTHERS THEN
265       l_return_status := OKL_API.G_RET_STS_UNEXP_ERROR ;
266 
267       OKL_API.Set_Message(p_app_name      => G_APP_NAME,
268                           p_msg_name      => G_UNEXPECTED_ERROR,
269                           p_token1        => G_SQLCODE_TOKEN,
270                           p_token1_value  => SQLCODE,
271                           p_token2        => G_SQLERRM_TOKEN,
272                           p_token2_value  => SQLERRM);
273       RETURN l_return_status;
274   END;
275 --end:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
276 ----------------------------------------------------------------------------
277 -- Start of comments
278 --
279 -- Procedure Name  : create_disb_trx
280 -- Description     :
281 -- Business Rules  :
282 -- Parameters      :
283 -- Version         : 1.0
284 -- End of comments
285 --
286 ----------------------------------------------------------------------------
287   PROCEDURE create_disb_trx(p_api_version	IN  NUMBER
288                        	    ,p_init_msg_list	IN  VARCHAR2	DEFAULT OKL_API.G_FALSE
289   	                    ,x_return_status	OUT NOCOPY VARCHAR2
290   	                    ,x_msg_count        OUT NOCOPY NUMBER
291   	                    ,x_msg_data	        OUT NOCOPY VARCHAR2
292                             ,p_tapv_rec         IN tapv_rec_type
293                             ,p_tplv_tbl         IN tplv_tbl_type
294                             ,x_tapv_rec         OUT NOCOPY tapv_rec_type
295                             ,x_tplv_tbl         OUT NOCOPY tplv_tbl_type)
296  IS
297 
298  -----------------------------------------------------------------
299     -- Declare Process Variable
300  --------------------------------------------------------------------
301     l_api_name	    CONSTANT VARCHAR2(30)   := 'CREATE_DISB_TRX';
302     l_okl_application_id NUMBER(3) := FND_GLOBAL.PROG_APPL_ID;
303     l_application_id NUMBER(3);
304     l_document_category VARCHAR2(100):= 'OKL Lease Pay Invoices';
305     lX_dbseqnm          VARCHAR2(2000):= '';
306     lX_dbseqid          NUMBER(38):= NULL;
307     l_return_status     VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
308     cnt                 NUMBER;
309     l_total_amount      NUMBER;
310     l_khr_id            NUMBER;
311     l_legal_entity_id   NUMBER;
312     l_currency_code            okc_k_headers_b.currency_code%type;
313     l_currency_conversion_type okl_k_headers.currency_conversion_type%type;
314     l_currency_conversion_rate okl_k_headers.currency_conversion_rate%type;
315     l_currency_conversion_date okl_k_headers.currency_conversion_date%type;
316 
317 
318 
319  ---------------------------------------------------------------
320     -- Declare records: Payable Invoice Headers, Lines and Distributions
321  ----------------------------------------------------------------
322     l_tapv_rec              tapv_rec_type;
323     lx_tapv_rec             tapv_rec_type;
324     l_tplv_tbl              tplv_tbl_type;
325     lx_tplv_tbl             tplv_tbl_type;
326 --start:|             17-May-07    cklee   -- Accounting API CR                                         |
327     l_tmpl_identify_tbl     Okl_Account_Dist_Pvt.TMPL_IDENTIFY_TBL_TYPE;
328     l_dist_info_tbl         Okl_Account_Dist_Pvt.dist_info_TBL_TYPE;
329     l_pdt_id               Okl_k_headers.pdt_id%type;
330 --    l_tmpl_identify_rec     Okl_Account_Dist_Pvt.TMPL_IDENTIFY_REC_TYPE;
331 --    l_dist_info_rec         Okl_Account_Dist_Pvt.dist_info_REC_TYPE;
332     l_ctxt_val_tbl          Okl_Account_Dist_Pvt.CTXT_TBL_TYPE;
333     l_acc_gen_primary_key_tbl  Okl_Account_Dist_Pvt.ACC_GEN_TBL_TYPE;
334 --    l_ctxt_val_tbl          okl_execute_formula_pvt.ctxt_val_tbl_type;
335 --    l_acc_gen_primary_key_tbl  Okl_Account_Generator_Pvt.primary_key_tbl;
336 --    l_template_tbl             Okl_Account_Dist_Pub.AVLV_TBL_TYPE;
337 --    l_amount_tbl               Okl_Account_Dist_Pub.AMOUNT_TBL_TYPE;
338     l_template_tbl             Okl_Account_Dist_Pvt.AVLV_OUT_TBL_TYPE;
339     l_amount_tbl               Okl_Account_Dist_Pvt.AMOUNT_OUT_TBL_TYPE;
340     l_fact_synd_code           fnd_lookups.lookup_code%TYPE;
341     l_inv_acct_code            okc_rules_b.RULE_INFORMATION1%TYPE;
342 --end:|             17-May-07    cklee   -- Accounting API CR                                         |
343 
344     CURSOR pdt_id_csr (p_khr_id  IN NUMBER) IS
345     SELECT  khr.pdt_id
346     FROM    okl_k_headers khr
347     WHERE   khr.id =  p_khr_id;
348 
349     --Get currency conversion attributes for a contract
350     CURSOR l_curr_conv_csr(p_khr_id IN NUMBER) IS
351     SELECT khr.currency_code
352            ,chr.currency_conversion_type
353            ,chr.currency_conversion_rate
354            ,chr.currency_conversion_date
355            ,chr.legal_entity_id
356     FROM   okc_k_headers_b khr,
357             okl_k_headers chr
358     WHERE khr.id = chr.id
359     AND     khr.id = p_khr_id;
360 
361   CURSOR c_app
362     IS
363   select a.application_id
364   from FND_APPLICATION a
365   where APPLICATION_SHORT_NAME = 'OKL'
366   ;
367 
368  BEGIN
369    IF (G_DEBUG_ENABLED = 'Y') THEN
370       G_IS_DEBUG_PROCEDURE_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_PROCEDURE);
371       G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT); -- cklee 01-oct-2007
372    END IF;
373 
374    IF (G_IS_DEBUG_PROCEDURE_ON = true) THEN
375       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_PROCEDURE, G_MODULE,'Begin Debug OKLRCDTB.pls  ');
376    END IF;
377 
378     --Print Input Variables
379     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
380       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Header Parameters');
381 --start:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
382 --      OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Contract Id  :'||p_tapv_rec.khr_id);
383 --end:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
384       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Trx Status Code  :'||p_tapv_rec.trx_status_code);
385       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Vendor Id  :'||p_tapv_rec.vendor_id);
386       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Currency Code  :'||p_tapv_rec.currency_code);
387       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Payment Method Code  :'||p_tapv_rec.payment_method_code);
388       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Pay Group Lookup Code  :'||p_tapv_rec.pay_group_lookup_code);
389       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Invoice Type  :'||p_tapv_rec.invoice_type);
390       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Set Of Books Id  :'||p_tapv_rec.set_of_books_id);
391       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Try Id  :'||p_tapv_rec.try_id);
392       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Ipvs Id  :'||p_tapv_rec.ipvs_id);
393       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Ippt Id  :'||p_tapv_rec.ippt_id);
394       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Date Entered  :'||p_tapv_rec.date_entered);
395       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Date Invoiced  :'||p_tapv_rec.date_invoiced);
396       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Amount  :'||p_tapv_rec.amount);
397       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Org Id  :'||p_tapv_rec.org_id);
398       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Legal Entity Id  :'||p_tapv_rec.legal_entity_id);
399 
400       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Line Parameters');
401       IF p_tplv_tbl.COUNT > 0 THEN
402         cnt := p_tplv_tbl.FIRST;
403       LOOP
404 --start:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
405       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Contract Id  :'||p_tplv_tbl(cnt).khr_id);
406 --end:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
407         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Inv Distr Line Code :'||cnt||' -'||p_tplv_tbl(cnt).inv_distr_line_code);
408         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Disbursement Basis Code :'||cnt||' -'||p_tplv_tbl(cnt).disbursement_basis_code);
409          OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Line Number :'||cnt||' -'||p_tplv_tbl(cnt).line_number);
410          OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Object Version Number :'||cnt||' -'||p_tplv_tbl(cnt).object_version_number);
411         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Amount :'||cnt||' -'||p_tplv_tbl(cnt).amount);
412         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Sty Id :'||cnt||' -'||p_tplv_tbl(cnt).sty_id);
413         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Org Id :'||cnt||' -'||p_tplv_tbl(cnt).org_id);
414 
415         EXIT WHEN cnt = p_tplv_tbl.LAST;
416         cnt := p_tplv_tbl.NEXT(cnt);
417       END LOOP;
418     END IF;
419   END IF;
420 
421    l_return_status := okl_api.start_activity(
422                                        	p_api_name	=> l_api_name,
423     	                                p_init_msg_list	=> p_init_msg_list,
424     	                                p_api_type	=> '_PVT',
425     	                                x_return_status	=> l_return_status);
426 
427    IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
428     		  RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
429    ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
430     		  RAISE OKL_API.G_EXCEPTION_ERROR;
431    END IF;
432 
433    ------------------------------------------------------------
434    -- Initialization of Parameters
435    ------------------------------------------------------------
436    l_tapv_rec := p_tapv_rec;
437    l_tplv_tbl := p_tplv_tbl;
438 
439    ------------------------------------------------------------
440 
441 --start:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
442    -- populates more attributes
443    l_return_status := populate_more_attrs(p_tapv_rec, l_tapv_rec);
444    --- Store the highest degree of error
445    IF (l_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
446      IF (x_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR) THEN
447        x_return_status := l_return_status;
448      END IF;
449 
450      IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
451        OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: populate_more_attrs raise exception');
452      END IF;
453      RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
454    END IF;
455 --end:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
456 
457   -- Generating Invoice Number from Document Sequence if no invoice number is passed from source transaction
458   BEGIN
459 
460     OPEN c_app;
461     FETCH c_app INTO l_application_id;
462     CLOSE c_app;
463 
464     l_okl_application_id := nvl(l_application_id,540);
465 
466     IF (NVL(l_tapv_rec.invoice_number,okl_api.g_miss_char) = okl_api.g_miss_char) THEN
467        l_tapv_rec.invoice_number := fnd_seqnum.get_next_sequence
468                 (appid      =>  l_okl_application_id,
469                 cat_code    =>  l_document_category,
470                 sobid       =>  l_tapv_rec.set_of_books_id, -- |             28-Sep-07    cklee   -- Fixed bug:6457524 set_of_book_id is missing issue         |
471                 met_code    =>  'A',
472                 trx_date    =>  SYSDATE,
473                 dbseqnm     =>  lx_dbseqnm,
474                 dbseqid     =>  lx_dbseqid);
475        IF (NVL(l_tapv_rec.vendor_invoice_number,okl_api.g_miss_char) = okl_api.g_miss_char) THEN
476              l_tapv_rec.vendor_invoice_number := l_tapv_rec.invoice_number;
477        END IF;
478     ELSE
479       IF (NVL(l_tapv_rec.vendor_invoice_number,okl_api.g_miss_char) = okl_api.g_miss_char) THEN
480          l_tapv_rec.vendor_invoice_number := fnd_seqnum.get_next_sequence
481                 (appid      =>  l_okl_application_id,
482                 cat_code    =>  l_document_category,
483                 sobid       =>  l_tapv_rec.set_of_books_id,
484                 met_code    =>  'A',
485                 trx_date    =>  SYSDATE,
486                 dbseqnm     =>  lx_dbseqnm,
487                 dbseqid     =>  lx_dbseqid);
488       END IF;
489     END IF;
490   EXCEPTION
491   WHEN OTHERS THEN
492 
493     OKL_API.Set_Message(p_app_name      => G_APP_NAME,
494                         p_msg_name      => 'OKL_PAY_INV_SEQ_CHECK');
495     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
496       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: fnd_seqnum.get_next_sequence raise exception');
497       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: fnd_seqnum.get_next_sequence: l_okl_application_id' || l_okl_application_id);
498       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: fnd_seqnum.get_next_sequence: l_document_category' || l_document_category);
499       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: fnd_seqnum.get_next_sequence: l_tapv_rec.set_of_books_id' || l_tapv_rec.set_of_books_id);
500     END IF;
501     RAISE OKL_API.G_EXCEPTION_ERROR ;
502 
503   END;
504 
505 --|             06-Dec-07    cklee   -- Fixed bug: 6663203                                        |
506 --|                                      raise proper error message if request amount = 0         |
507   --Raise message if amount  = 0
508   IF l_tapv_rec.amount = 0 THEN
509      OKL_API.SET_MESSAGE
510                 ( p_app_name     => g_app_name,
511                   p_msg_name     => 'OKL_AMT_CANNOT_BE_ZERO'
512                 ) ;
513      RAISE OKL_API.G_EXCEPTION_ERROR ;
514   END IF;
515 
516   --Raise message if Currency code is not passed
517   IF l_tapv_rec.currency_code IS NULL THEN
518      OKL_API.SET_MESSAGE
519                 ( p_app_name     => g_app_name,
520                   p_msg_name     => g_required_value,
521                   p_token1       => g_col_name_token,
522                   p_token1_value => 'currency_code'
523                 ) ;
524      RAISE OKL_API.G_EXCEPTION_ERROR ;
525   END IF;
526 
527   --get contract currency parameters
528 --start:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
529 --  l_khr_id := l_tapv_rec.khr_id;
530   cnt := l_tplv_tbl.FIRST;
531   l_khr_id := l_tplv_tbl(cnt).khr_id;
532 --end:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
533 
534   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
535     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: l_khr_id' || l_khr_id);
536   END IF;
537 
538   FOR cur IN l_curr_conv_csr(l_khr_id) LOOP
539     l_currency_code := cur.currency_code;
540     l_currency_conversion_type := cur.currency_conversion_type;
541     l_currency_conversion_rate := cur.currency_conversion_rate;
542     l_currency_conversion_date := cur.currency_conversion_date;
543     l_legal_entity_id          := cur.legal_entity_id;
544   END LOOP;
545   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
546     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: l_currency_code' || l_currency_code);
547     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: l_currency_type' || l_currency_conversion_type);
548     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: l_currency_rate' || l_currency_conversion_rate);
549     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: l_currency_date' || l_currency_conversion_date);
550     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: l_legal_entity_id' || l_legal_entity_id);
551   END IF;
552 
553 
554 --start:|             14-Sep-07    cklee   -- Restored khr_id back to okl_trx_ap_invs_all_b for the     |
555   IF (NVL(l_tapv_rec.khr_id,okl_api.g_miss_num) = okl_api.g_miss_num) then -- 28-Sep-07    cklee   -- Fixed bug:6455033
556     l_tapv_rec.khr_id := l_khr_id;
557   END IF;
558 --end:|             14-Sep-07    cklee   -- Restored khr_id back to okl_trx_ap_invs_all_b for the     |
559 
560 --Transaction Status defaulted to Entered
561   IF (NVL(l_tapv_rec.trx_status_code,okl_api.g_miss_char) = okl_api.g_miss_char) then
562     l_tapv_rec.trx_status_code := 'ENTERED';
563   END IF;
564 
565   --Check for currency conversion type
566   IF (NVL(l_tapv_rec.currency_conversion_type, okl_api.g_miss_char) = okl_api.g_miss_char) THEN
567     l_tapv_rec.currency_conversion_type := l_currency_conversion_type;
568   END IF;
569 
570  --Check for currency conversion date
571   IF (NVL(l_tapv_rec.currency_conversion_date, okl_api.g_miss_date) = okl_api.g_miss_date) THEN
572     l_tapv_rec.currency_conversion_date := l_currency_conversion_date;
573   END IF;
574 
575  --Handle Currency Conversion Rate
576   IF l_tapv_rec.currency_conversion_type = 'User' THEN
577     IF (l_tapv_rec.currency_code = okl_accounting_util.get_func_curr_code) THEN
578       l_tapv_rec.currency_conversion_rate := 1;
579     ELSE
580       IF NVL(l_tapv_rec.currency_conversion_rate,okl_api.g_miss_num) = okl_api.g_miss_num THEN
581         l_tapv_rec.currency_conversion_rate := l_currency_conversion_rate;
582       END IF;
583     END IF;
584   END IF;
585 
586   --Raise message if Payment Method Code is not passed
587    IF (NVL(l_tapv_rec.payment_method_code,okl_api.g_miss_char) = okl_api.g_miss_char) THEN
588       --raise message
589       OKL_Api.SET_MESSAGE
590                 ( p_app_name     => g_app_name,
591                   p_msg_name     => g_required_value,
592                   p_token1       => g_col_name_token,
593                   p_token1_value => 'payment_method_code'
594                 ) ;
595       RAISE OKL_API.G_EXCEPTION_ERROR;
596    END IF;
597 
598   --Raise message if Pay Group Lookup Code is not passed
599    IF (NVL(l_tapv_rec.pay_group_lookup_code,okl_api.g_miss_char) = okl_api.g_miss_char) THEN
600      --raise message
601       OKL_Api.SET_MESSAGE
602                 ( p_app_name     => g_app_name,
603                   p_msg_name     => g_required_value,
604                   p_token1       => g_col_name_token,
605                   p_token1_value => 'pay_group_lookup_code'
606                 ) ;
607       RAISE OKL_API.G_EXCEPTION_ERROR;
608    END IF;
609 
610   --Raise message if Invoice Type is not passed
611   IF (NVL(l_tapv_rec.invoice_type,okl_api.g_miss_char) = okl_api.g_miss_char) THEN
612     --raise message
613     OKL_Api.SET_MESSAGE
614                 ( p_app_name     => g_app_name,
615                   p_msg_name     => g_required_value,
616                   p_token1       => g_col_name_token,
617                   p_token1_value => 'invoice_type'
618                 ) ;
619       RAISE OKL_API.G_EXCEPTION_ERROR;
620 
621   END IF;
622 
623  --Negate the positive amount passed if invoice type is CREDIT
624   IF l_tapv_rec.invoice_type = 'CREDIT' THEN
625     IF SIGN(l_tapv_rec.amount) = 1 THEN
626       l_tapv_rec.amount := -(l_tapv_rec.amount);
627     END IF;
628   END IF;
629 
630   -- Raise message if Set of Books Id is not passed
631   IF NVL(l_tapv_rec.set_of_books_id,okl_api.g_miss_num) = okl_api.g_miss_num THEN
632     --raise message
633     OKL_Api.SET_MESSAGE
634                 ( p_app_name     => g_app_name,
635                   p_msg_name     => g_required_value,
636                   p_token1       => g_col_name_token,
637                   p_token1_value => 'set_of_books_id'
638                 ) ;
639     RAISE OKL_API.G_EXCEPTION_ERROR;
640 
641   END IF;
642 
643 
644   --Raise message if try id is not passed
645   IF NVL(l_tapv_rec.try_id,okl_api.g_miss_num) = okl_api.g_miss_num THEN
646     --raise message
647      OKL_Api.SET_MESSAGE
648                 ( p_app_name     => g_app_name,
649                   p_msg_name     => g_required_value,
650                   p_token1       => g_col_name_token,
651                   p_token1_value => 'try_id'
652                 ) ;
653     RAISE OKL_API.G_EXCEPTION_ERROR;
654   END IF;
655 
656  --Raise message if vendor site id is not passed
657   IF NVL(l_tapv_rec.ipvs_id,okl_api.g_miss_num) = okl_api.g_miss_num THEN
658     --raise message
659      OKL_Api.SET_MESSAGE
660                 ( p_app_name     => g_app_name,
661                   p_msg_name     => g_required_value,
662                   p_token1       => g_col_name_token,
663                   p_token1_value => 'ipvs_id'
664                 ) ;
665     RAISE OKL_API.G_EXCEPTION_ERROR;
666   END IF;
667 
668   --Raise message id payment terms id is not passed
669   IF NVL(l_tapv_rec.ippt_id,okl_api.g_miss_num) = okl_api.g_miss_num THEN
670     --raise message
671      OKL_Api.SET_MESSAGE
672                 ( p_app_name     => g_app_name,
673                   p_msg_name     => g_required_value,
674                   p_token1       => g_col_name_token,
675                   p_token1_value => 'ippt_id'
676                 ) ;
677     RAISE OKL_API.G_EXCEPTION_ERROR;
678   END IF;
679 
680 
681   --Raise message if date entered is not passed
682   IF NVL(l_tapv_rec.date_entered,okl_api.g_miss_date) = okl_api.g_miss_date THEN
683     --raise message
684      OKL_Api.SET_MESSAGE
685                 ( p_app_name     => g_app_name,
686                   p_msg_name     => g_required_value,
687                   p_token1       => g_col_name_token,
688                   p_token1_value => 'date_entered'
689                 ) ;
690     RAISE OKL_API.G_EXCEPTION_ERROR;
691   END IF;
692 
693   --Raise message if date invoiced is not passed
694   IF NVL(l_tapv_rec.date_invoiced,okl_api.g_miss_date) = okl_api.g_miss_date THEN
695     --raise message
696      OKL_Api.SET_MESSAGE
697                 ( p_app_name     => g_app_name,
698                   p_msg_name     => g_required_value,
699                   p_token1       => g_col_name_token,
700                   p_token1_value => 'date_invoiced'
701                 ) ;
702     RAISE OKL_API.G_EXCEPTION_ERROR;
703   END IF;
704 
705   --Raise message if amount is not passed
706   IF NVL(l_tapv_rec.amount,okl_api.g_miss_num) = okl_api.g_miss_num THEN
707     --raise message
708      OKL_Api.SET_MESSAGE
709                 ( p_app_name     => g_app_name,
710                   p_msg_name     => g_required_value,
711                   p_token1       => g_col_name_token,
712                   p_token1_value => 'amount'
713                 ) ;
714       RAISE OKL_API.G_EXCEPTION_ERROR;
715 
716   END IF;
717 
718   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
719     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: before OKL_ACCOUNTING_UTIL.round_amount');
720     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: l_tapv_rec.amount' || l_tapv_rec.amount);
721     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: l_tapv_rec.currency_code' || l_tapv_rec.currency_code);
722   END IF;
723   --Rounding the amount
724   l_tapv_rec.amount := OKL_ACCOUNTING_UTIL.round_amount(l_tapv_rec.amount, l_tapv_rec.currency_code);
725   IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
726     OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: after OKL_ACCOUNTING_UTIL.round_amount');
727   END IF;
728 --start: 5/18/2007 cklee added rounding logc for line's amount
729   cnt := l_tplv_tbl.FIRST;
730   LOOP
731     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
732       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: before OKL_ACCOUNTING_UTIL.round_amount');
733       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: l_tplv_tbl(cnt)' || cnt);
734       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: l_tplv_tbl(cnt).amount' || l_tplv_tbl(cnt).amount);
735       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: l_tapv_rec.currency_code' || l_tapv_rec.currency_code);
736     END IF;
737     --Rounding the amount
738     l_tplv_tbl(cnt).amount := OKL_ACCOUNTING_UTIL.round_amount(l_tplv_tbl(cnt).amount, l_tapv_rec.currency_code);
739     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
740       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'OKL_CREATE_DISB_TRANS_PVT.create_disb_trx: after OKL_ACCOUNTING_UTIL.round_amount');
741     END IF;
742     EXIT WHEN cnt = l_tplv_tbl.LAST;
743     cnt := l_tplv_tbl.NEXT(cnt);
744   END LOOP;
745 --end: 5/18/2007 cklee added rounding logc for line's amount
746 
747   -- Default gl date to date invoiced
748   IF NVL(l_tapv_rec.date_gl,okl_api.g_miss_date) = okl_api.g_miss_date THEN
749     l_tapv_rec.date_gl := l_tapv_rec.date_invoiced;
750   END IF;
751 
752   --Raise message id org id is not passed
753   IF NVL(l_tapv_rec.org_id,okl_api.g_miss_num) = okl_api.g_miss_num THEN
754     --Raise message
755     OKL_Api.SET_MESSAGE
756                 ( p_app_name     => g_app_name,
757                   p_msg_name     => g_required_value,
758                   p_token1       => g_col_name_token,
759                   p_token1_value => 'org_id'
760                 ) ;
761     RAISE OKL_API.G_EXCEPTION_ERROR;
762   END IF;
763 
764 -- Default legal entity id from the contract legal entity
765   IF NVL(l_tapv_rec.legal_entity_id,okl_api.g_miss_num) = okl_api.g_miss_num THEN
766     --derive the legal entity id from the contract
767     l_tapv_rec.legal_entity_id := l_legal_entity_id;
768   END IF;
769 
770 
771   --Create the header
772    IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
773      OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'before create transaction invoice header');
774    END IF;
775 
776    OKL_TRX_AP_INVOICES_PUB.Insert_trx_ap_invoices(p_api_version      =>  p_api_version
777                                                  ,p_init_msg_list    =>   p_init_msg_list
778                                                  ,x_return_status    =>   x_return_status
779                                                  ,x_msg_count        =>   x_msg_count
780                                                  ,x_msg_data         =>   x_msg_data
781                                                  ,p_tapv_rec         =>   l_tapv_rec
782                                                  ,x_tapv_rec         =>   lx_tapv_rec);
783 
784     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
785        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
786     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
787        RAISE OKC_API.G_EXCEPTION_ERROR;
788     END IF;
789 
790      IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
791       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'after create invoice header,invoice header id : ' || lx_tapv_rec.id);
792       END IF;
793 
794      ------------------------------------------------------------
795       -- Insert Invoice Line
796       ------------------------------------------------------------
797 
798     l_total_amount := 0;
799       cnt := l_tplv_tbl.FIRST;
800       LOOP
801         IF NVL(l_tplv_tbl(cnt).inv_distr_line_code,okl_api.g_miss_char) = okl_api.g_miss_char THEN
802           l_tplv_tbl(cnt).inv_distr_line_code := 'ITEM';
803         END IF;
804         IF NVL(l_tplv_tbl(cnt).sty_id,okl_api.g_miss_num) = okl_api.g_miss_num THEN
805       --Raise message
806           OKL_Api.SET_MESSAGE
807                 ( p_app_name     => g_app_name,
808                   p_msg_name     => g_required_value,
809                   p_token1       => g_col_name_token,
810                   p_token1_value => 'line'||cnt||' sty_id'
811                 ) ;
812           RAISE OKL_API.G_EXCEPTION_ERROR;
813         END IF;
814         IF NVL(l_tplv_tbl(cnt).line_number,okl_api.g_miss_num) = okl_api.g_miss_num THEN
815           --Raise message
816           OKL_Api.SET_MESSAGE
817                 ( p_app_name     => g_app_name,
818                   p_msg_name     => g_required_value,
819                   p_token1       => g_col_name_token,
820                   p_token1_value => 'line'||cnt||' line_number'
821                 ) ;
822           RAISE OKL_API.G_EXCEPTION_ERROR;
823         END IF;
824         IF NVL(l_tplv_tbl(cnt).amount,okl_api.g_miss_num) = okl_api.g_miss_num THEN
825          --Raise message
826            OKL_Api.SET_MESSAGE
827                 ( p_app_name     => g_app_name,
828                   p_msg_name     => g_required_value,
829                   p_token1       => g_col_name_token,
830                   p_token1_value => 'line'||cnt||' amount'
831                 ) ;
832           RAISE OKL_API.G_EXCEPTION_ERROR;
833         ELSE
834           IF l_tapv_rec.invoice_type = 'CREDIT' THEN
835             IF SIGN(l_tplv_tbl(cnt).amount) = 1 THEN
836                l_tplv_tbl(cnt).amount := -(l_tplv_tbl(cnt).amount);
837             END IF;
838           END IF;
839         END IF;
840         IF NVL(l_tplv_tbl(cnt).org_id,okl_api.g_miss_num) = okl_api.g_miss_num THEN
841         --Raise message
842           OKL_Api.SET_MESSAGE
843                 ( p_app_name     => g_app_name,
844                   p_msg_name     => g_required_value,
845                   p_token1       => g_col_name_token,
846                   p_token1_value => 'line'||cnt||' org_id'
847                 ) ;
848           RAISE OKL_API.G_EXCEPTION_ERROR;
849         END IF;
850 --START:|             11-Dec-07    cklee   -- Fixed bug: 6682348 -- stamped request_id when insert      |
851         l_tplv_tbl(cnt).REQUEST_ID := Fnd_Global.CONC_REQUEST_ID;
852 --END:|             11-Dec-07    cklee   -- Fixed bug: 6682348 -- stamped request_id when insert      |
853 
854         l_total_amount := l_total_amount + l_tplv_tbl(cnt).amount;
855         l_tplv_tbl(cnt).tap_id := lx_tapv_rec.id;
856 
857         EXIT WHEN cnt = l_tplv_tbl.LAST;
858         cnt := l_tplv_tbl.NEXT(cnt);
859        END LOOP;
860 
861   --Error: Sign of total amount on lines do not match the sign of amount on the header transaction
862    IF SIGN(l_total_amount) <> SIGN(l_tapv_rec.amount) THEN
863      OKL_API.set_message( p_app_name      => 'OKL',
864                           p_msg_name      => 'OKL_BPD_SIGN_ERROR');
865       RAISE OKL_API.G_EXCEPTION_ERROR;
866    END IF;
867 
868    IF l_total_amount <> l_tapv_rec.amount THEN
869      OKL_API.set_message( p_app_name      => 'OKL',
870                           p_msg_name      => 'OKL_BPD_AMOUNT_ERROR');
871       RAISE OKL_API.G_EXCEPTION_ERROR;
872    END IF;
873 
874    IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
875      OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'before create transaction invoice line');
876    END IF;
877 
878    OKL_TXL_AP_INV_LNS_PUB.insert_txl_ap_inv_lns(
879             p_api_version       =>   p_api_version
880             ,p_init_msg_list    =>  p_init_msg_list
881             ,x_return_status    =>   x_return_status
882             ,x_msg_count        =>   x_msg_count
883             ,x_msg_data         =>   x_msg_data
884             ,p_tplv_tbl         =>   l_tplv_tbl
885             ,x_tplv_tbl         =>   lx_tplv_tbl);
886 
887     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
888        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
889     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
890      RAISE OKl_API.G_EXCEPTION_ERROR;
891     END IF;
892 
893     cnt := lx_tplv_tbl.FIRST;
894      LOOP
895       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
896         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'after create ap invoice line, ap invoice line id : ' || lx_tplv_tbl(cnt).id);
897       END IF;
898       EXIT WHEN cnt = lx_tplv_tbl.LAST;
899       cnt := lx_tplv_tbl.NEXT(cnt);
900     END LOOP;
901 
902 --start:|             17-May-07    cklee   -- Accounting API CR                                         |
903 /*
904     --Create Distributions
905     --------------------Accounting Engine Calls---------------------------
906 
907     l_tmpl_identify_rec.product_id := NULL;
908 
909     -- Get Product Id
910 --start:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
911 --    OPEN  pdt_id_csr ( p_tapv_rec.khr_id );
912     OPEN  pdt_id_csr ( l_khr_id );
913 --end:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
914 	FETCH pdt_id_csr INTO l_tmpl_identify_rec.product_id;
915 	CLOSE pdt_id_csr;
916 
917      cnt := lx_tplv_tbl.FIRST;
918      LOOP
919 	l_tmpl_identify_rec.transaction_type_id    := P_tapv_rec.try_id;
920 	l_tmpl_identify_rec.stream_type_id         := lx_tplv_tbl(cnt).sty_id;
921 
922 	l_tmpl_identify_rec.ADVANCE_ARREARS        := NULL;
923 	l_tmpl_identify_rec.FACTORING_SYND_FLAG    := NULL;
924 	l_tmpl_identify_rec.SYNDICATION_CODE       := NULL;
925 	--l_tmpl_identify_rec.FACTORING_CODE         := NULL;
926 	l_tmpl_identify_rec.MEMO_YN                := 'N';
927 	l_tmpl_identify_rec.PRIOR_YEAR_YN          := 'N';
928 
929        Okl_Securitization_Pvt.check_khr_ia_associated(p_api_version => p_api_version
930                                                 ,p_init_msg_list => p_init_msg_list
931                                                 ,x_return_status => x_return_status
932                                                 ,x_msg_count => x_msg_count
933                                                 ,x_msg_data => x_msg_data
934 --start:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
935 --                                                ,p_khr_id =>  p_tapv_rec.khr_id
936                                                 ,p_khr_id =>  l_khr_id
937 --end:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
938                                                 ,p_scs_code => NULL
939                                                 ,p_trx_date => p_tapv_rec.date_invoiced
940                                                 ,x_fact_synd_code => l_tmpl_identify_rec.FACTORING_SYND_FLAG
941                                                 ,x_inv_acct_code => l_tmpl_identify_rec.INVESTOR_CODE);
942 
943        IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
944          RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
945        ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
946          RAISE OKL_API.G_EXCEPTION_ERROR;
947        END IF;
948 
949        IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
950        	 OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Okl_Securitization_pvt.check_khr_ia_associated called successfully'|| x_return_status);
951        END IF;
952 
953         l_dist_info_rec.source_id		    	   := lx_tplv_tbl(cnt).id;
954 	l_dist_info_rec.source_table			   := 'OKL_TXL_AP_INV_LNS_B';
955 	l_dist_info_rec.accounting_date			   := l_tapv_rec.date_invoiced;
956 	l_dist_info_rec.gl_reversal_flag		   :='N';
957 	l_dist_info_rec.post_to_gl			   :='N';
958 	l_dist_info_rec.amount				   := ABS(lx_tplv_tbl(cnt).amount);
959 	l_dist_info_rec.currency_code			   := l_tapv_rec.currency_code;
960 --start:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
961 --	l_dist_info_rec.contract_id			   := l_tapv_rec.khr_id;
962 	l_dist_info_rec.contract_id			   := l_khr_id;
963 --end:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
964 	l_dist_info_rec.contract_line_id        	   := lx_tplv_tbl(cnt).kle_id;
965 
966 
967     --Check for currency code
968     l_dist_info_rec.currency_code := l_tapv_rec.currency_code;
969 
970     IF (NVL(l_dist_info_rec.currency_code, okl_api.g_miss_char) = okl_api.g_miss_char) IS NULL THEN
971       l_dist_info_rec.currency_code := l_currency_code;
972     END IF;
973 
974     --Check for currency conversion type
975     l_dist_info_rec.currency_conversion_type := l_tapv_rec.currency_conversion_type;
976 
977     IF (NVL(l_dist_info_rec.currency_conversion_type, okl_api.g_miss_char) = okl_api.g_miss_char) THEN
978       l_dist_info_rec.currency_conversion_type := l_currency_conversion_type;
979     END IF;
980 
981     --Check for currency conversion date
982     l_dist_info_rec.currency_conversion_date := l_tapv_rec.currency_conversion_date;
983 
984     IF (NVL(l_dist_info_rec.currency_conversion_date, okl_api.g_miss_date) =  okl_api.g_miss_date) THEN
985       l_dist_info_rec.currency_conversion_date := l_currency_conversion_date;
986     END IF;
987 
988 
989     IF (l_dist_info_rec.currency_conversion_type = 'User') THEN
990       IF (l_dist_info_rec.currency_code = okl_accounting_util.get_func_curr_code) THEN
991         l_dist_info_rec.currency_conversion_rate := 1;
992       ELSE
993         IF (NVL(l_tapv_rec.currency_conversion_rate, okl_api.g_miss_num) = okl_api.g_miss_num) THEN
994           l_dist_info_rec.currency_conversion_rate := l_currency_conversion_rate;
995         ELSE
996           l_dist_info_rec.currency_conversion_rate := l_tapv_rec.currency_conversion_rate;
997         END IF;
998       END IF;
999     ELSIF (l_dist_info_rec.currency_conversion_type = 'Spot' OR l_dist_info_rec.currency_conversion_type = 'Corporate') THEN
1000       l_dist_info_rec.currency_conversion_rate := okl_accounting_util.get_curr_con_rate
1001                                                 (p_from_curr_code => l_dist_info_rec.currency_code,
1002 	                                         p_to_curr_code => okl_accounting_util.get_func_curr_code,
1003 	                                         p_con_date => l_dist_info_rec.currency_conversion_date,
1004 	                                         p_con_type => l_dist_info_rec.currency_conversion_type);
1005     END IF;
1006 
1007     l_dist_info_rec.currency_conversion_rate := NVL(l_dist_info_rec.currency_conversion_rate, 1);
1008 
1009   -- Call to populate account generator API
1010 
1011     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1012       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Call to Okl_Acc_Call_Pvt.Okl_Populate_Acc_Gen ');
1013     END IF;
1014 
1015     Okl_Acc_Call_Pvt.Okl_Populate_Acc_Gen (
1016 --start:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
1017 --	p_contract_id	     => p_tapv_rec.khr_id,
1018 	p_contract_id	     => l_khr_id,
1019 --end:|             11-May-07    cklee   -- added defaulted attributes for the following:             |
1020 	p_contract_line_id	 => lx_tplv_tbl(cnt).kle_id,
1021 	x_acc_gen_tbl		 => l_acc_gen_primary_key_tbl,
1022 	x_return_status		 => x_return_status);
1023 
1024     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1025       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1026     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1027      RAISE OKL_API.G_EXCEPTION_ERROR;
1028     END IF;
1029 
1030     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1031       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'End call to Okl_Acc_Call_Pvt.Okl_Populate_Acc_Gen');
1032     END IF;
1033 
1034 
1035    -- Call to Distributons API
1036 
1037     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1038        OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Call to Okl_Account_Dist_Pub.Create_Accounting_Dist');
1039     END IF;
1040     Okl_Account_Dist_Pub.CREATE_ACCOUNTING_DIST(
1041 				   p_api_version             => p_api_version
1042                                   ,p_init_msg_list           => p_init_msg_list
1043                                   ,x_return_status  	     => x_return_status
1044                                   ,x_msg_count      	     => x_msg_count
1045                                   ,x_msg_data       	     => x_msg_data
1046                                   ,p_tmpl_identify_rec 	     => l_tmpl_identify_rec
1047                                   ,p_dist_info_rec           => l_dist_info_rec
1048                                   ,p_ctxt_val_tbl            => l_ctxt_val_tbl
1049                                   ,p_acc_gen_primary_key_tbl => l_acc_gen_primary_key_tbl
1050                                   ,x_template_tbl            => l_template_tbl
1051                                   ,x_amount_tbl              => l_amount_tbl);
1052 
1053      IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1054        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1055      ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1056        RAISE OKL_API.G_EXCEPTION_ERROR;
1057      END IF;
1058 
1059      IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1060        OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'End Call to Okl_Account_Dist_Pub.Create_Accounting_Dist ');
1061      END IF;
1062 
1063 
1064      EXIT WHEN cnt = lx_tplv_tbl.LAST;
1065      cnt := lx_tplv_tbl.NEXT(cnt);
1066     END LOOP;
1067 */
1068 --end:|             17-May-07    cklee   -- Accounting API CR                                         |
1069 ------------------End Accounting Engine Calls -----------------------
1070     x_tapv_rec := lx_tapv_rec;
1071     x_tplv_tbl := lx_tplv_tbl;
1072 
1073 ------------------------------------------------------------------------------
1074 -- START: Move accounting call after creating the OKL AP internal invoice lines
1075 ------------------------------------------------------------------------------
1076 --start:|             17-May-07    cklee   -- Accounting API CR                                         |
1077     --Create Distributions
1078     --------------------Accounting Engine Calls---------------------------
1079     l_pdt_id := NULL;
1080 
1081     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1082       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'before pdt_id_csr');
1083     END IF;
1084     -- Get Product Id
1085     OPEN  pdt_id_csr ( l_khr_id );
1086 	FETCH pdt_id_csr INTO l_pdt_id;
1087 	CLOSE pdt_id_csr;
1088     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1089       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'after pdt_id_csr');
1090     END IF;
1091 
1092     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1093       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'before pOkl_Securitization_Pvt.check_khr_ia_associated');
1094     END IF;
1095     -- We need to call once per khr_id
1096     Okl_Securitization_Pvt.check_khr_ia_associated(p_api_version => p_api_version
1097                                                 ,p_init_msg_list => p_init_msg_list
1098                                                 ,x_return_status => x_return_status
1099                                                 ,x_msg_count => x_msg_count
1100                                                 ,x_msg_data => x_msg_data
1101                                                 ,p_khr_id =>  l_khr_id
1102                                                 ,p_scs_code => NULL
1103                                                 ,p_trx_date => p_tapv_rec.date_invoiced
1104                                                 ,x_fact_synd_code => l_fact_synd_code
1105                                                 ,x_inv_acct_code => l_inv_acct_code);
1106 
1107     IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1108        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1109     ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1110        RAISE OKL_API.G_EXCEPTION_ERROR;
1111     END IF;
1112 
1113     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1114        OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Okl_Securitization_pvt.check_khr_ia_associated called successfully'|| x_return_status);
1115     END IF;
1116 
1117     cnt := lx_tplv_tbl.FIRST;
1118     LOOP
1119   	  l_tmpl_identify_tbl(cnt).transaction_type_id    := P_tapv_rec.try_id;
1120       l_tmpl_identify_tbl(cnt).stream_type_id         := lx_tplv_tbl(cnt).sty_id;
1121   	  l_tmpl_identify_tbl(cnt).product_id             := l_pdt_id;
1122 
1123       l_tmpl_identify_tbl(cnt).ADVANCE_ARREARS        := NULL;
1124       l_tmpl_identify_tbl(cnt).FACTORING_SYND_FLAG    := l_fact_synd_code;
1125       l_tmpl_identify_tbl(cnt).INVESTOR_CODE          := l_inv_acct_code;
1126       l_tmpl_identify_tbl(cnt).SYNDICATION_CODE       := NULL;
1127       --l_tmpl_identify_tbl(cnt).FACTORING_CODE         := NULL;
1128       l_tmpl_identify_tbl(cnt).MEMO_YN                := 'N';
1129       l_tmpl_identify_tbl(cnt).PRIOR_YEAR_YN          := 'N';
1130 
1131       l_dist_info_tbl(cnt).source_id	    	   := lx_tplv_tbl(cnt).id;
1132       l_dist_info_tbl(cnt).source_table			   := 'OKL_TXL_AP_INV_LNS_B';
1133       l_dist_info_tbl(cnt).accounting_date		   := l_tapv_rec.date_invoiced;
1134       l_dist_info_tbl(cnt).gl_reversal_flag		   :='N';
1135       l_dist_info_tbl(cnt).post_to_gl			   :='N';
1136 --      l_dist_info_tbl(cnt).amount				   := ABS(lx_tplv_tbl(cnt).amount);
1137       l_dist_info_tbl(cnt).amount				   := lx_tplv_tbl(cnt).amount;
1138       l_dist_info_tbl(cnt).currency_code		   := l_tapv_rec.currency_code;
1139       l_dist_info_tbl(cnt).contract_id			   := l_khr_id;
1140       l_dist_info_tbl(cnt).contract_line_id    	   := lx_tplv_tbl(cnt).kle_id;
1141 
1142 
1143       --Check for currency code
1144       l_dist_info_tbl(cnt).currency_code := l_tapv_rec.currency_code;
1145 
1146       IF (NVL(l_dist_info_tbl(cnt).currency_code, okl_api.g_miss_char) = okl_api.g_miss_char) IS NULL THEN
1147         l_dist_info_tbl(cnt).currency_code := l_currency_code;
1148       END IF;
1149 
1150       --Check for currency conversion type
1151       l_dist_info_tbl(cnt).currency_conversion_type := l_tapv_rec.currency_conversion_type;
1152 
1153       IF (NVL(l_dist_info_tbl(cnt).currency_conversion_type, okl_api.g_miss_char) = okl_api.g_miss_char) THEN
1154         l_dist_info_tbl(cnt).currency_conversion_type := l_currency_conversion_type;
1155       END IF;
1156 
1157       --Check for currency conversion date
1158       l_dist_info_tbl(cnt).currency_conversion_date := l_tapv_rec.currency_conversion_date;
1159 
1160       IF (NVL(l_dist_info_tbl(cnt).currency_conversion_date, okl_api.g_miss_date) =  okl_api.g_miss_date) THEN
1161         l_dist_info_tbl(cnt).currency_conversion_date := l_currency_conversion_date;
1162       END IF;
1163 
1164       IF (l_dist_info_tbl(cnt).currency_conversion_type = 'User') THEN
1165         IF (l_dist_info_tbl(cnt).currency_code = okl_accounting_util.get_func_curr_code) THEN
1166           l_dist_info_tbl(cnt).currency_conversion_rate := 1;
1167         ELSE
1168           IF (NVL(l_tapv_rec.currency_conversion_rate, okl_api.g_miss_num) = okl_api.g_miss_num) THEN
1169             l_dist_info_tbl(cnt).currency_conversion_rate := l_currency_conversion_rate;
1170           ELSE
1171             l_dist_info_tbl(cnt).currency_conversion_rate := l_tapv_rec.currency_conversion_rate;
1172           END IF;
1173         END IF;
1174       ELSIF (l_dist_info_tbl(cnt).currency_conversion_type = 'Spot' OR l_dist_info_tbl(cnt).currency_conversion_type = 'Corporate') THEN
1175         l_dist_info_tbl(cnt).currency_conversion_rate := okl_accounting_util.get_curr_con_rate
1176                                                 (p_from_curr_code => l_dist_info_tbl(cnt).currency_code,
1177 	                                             p_to_curr_code => okl_accounting_util.get_func_curr_code,
1178 	                                             p_con_date => l_dist_info_tbl(cnt).currency_conversion_date,
1179     	                                         p_con_type => l_dist_info_tbl(cnt).currency_conversion_type);
1180       END IF;
1181 
1182       l_dist_info_tbl(cnt).currency_conversion_rate := NVL(l_dist_info_tbl(cnt).currency_conversion_rate, 1);
1183 
1184       -- Call to populate account generator API
1185 
1186       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1187         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Call to Okl_Acc_Call_Pvt.Okl_Populate_Acc_Gen ');
1188       END IF;
1189 
1190       Okl_Acc_Call_Pvt.Okl_Populate_Acc_Gen (
1191     	p_contract_id	     => l_khr_id,
1192     	p_contract_line_id	 => lx_tplv_tbl(cnt).kle_id,
1193     	x_acc_gen_tbl		 => l_acc_gen_primary_key_tbl(cnt).acc_gen_key_tbl,
1194     	x_return_status		 => x_return_status);
1195 
1196       l_acc_gen_primary_key_tbl(cnt).source_id := lx_tplv_tbl(cnt).id;
1197 
1198       IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1199         RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1200       ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1201        RAISE OKL_API.G_EXCEPTION_ERROR;
1202       END IF;
1203 
1204       IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1205         OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'End call to Okl_Acc_Call_Pvt.Okl_Populate_Acc_Gen');
1206       END IF;
1207 
1208       EXIT WHEN cnt = lx_tplv_tbl.LAST;
1209       cnt := lx_tplv_tbl.NEXT(cnt);
1210     END LOOP;
1211 
1212     IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1213        OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'Call to Okl_Account_Dist_Pub.Create_Accounting_Dist');
1214     END IF;
1215     Okl_Account_Dist_Pvt.CREATE_ACCOUNTING_DIST(
1216 								   p_api_version             => p_api_version
1217                                   ,p_init_msg_list           => p_init_msg_list
1218                                   ,x_return_status  	     => x_return_status
1219                                   ,x_msg_count      	     => x_msg_count
1220                                   ,x_msg_data       	     => x_msg_data
1221                                   ,p_tmpl_identify_tbl 	     => l_tmpl_identify_tbl
1222                                   ,p_dist_info_tbl           => l_dist_info_tbl
1223                                   ,p_ctxt_val_tbl            => l_ctxt_val_tbl
1224                                   ,p_acc_gen_primary_key_tbl => l_acc_gen_primary_key_tbl
1225                                   ,x_template_tbl            => l_template_tbl
1226                                   ,x_amount_tbl              => l_amount_tbl
1227                                   ,p_trx_header_id           => lx_tapv_rec.ID
1228                                   ,p_trx_header_table        => 'OKL_TRX_AP_INVOICES_B');
1229 
1230      IF (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1231        RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1232      ELSIF (x_return_status = OKL_API.G_RET_STS_ERROR) THEN
1233        RAISE OKL_API.G_EXCEPTION_ERROR;
1234      END IF;
1235 
1236      IF (G_IS_DEBUG_STATEMENT_ON = true) THEN
1237        OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_STATEMENT, G_MODULE,'End Call to Okl_Account_Dist_Pub.Create_Accounting_Dist ');
1238      END IF;
1239 
1240 --end:|             17-May-07    cklee   -- Accounting API CR                                         |
1241 ------------------------------------------------------------------------------
1242 -- END: Move accounting call after creating the OKL AP internal invoice lines
1243 ------------------------------------------------------------------------------
1244 
1245 
1246     OKL_API.END_ACTIVITY (x_msg_count,
1247                           x_msg_data );
1248 
1249     IF (G_IS_DEBUG_PROCEDURE_ON = true) THEN
1250       OKL_DEBUG_PUB.LOG_DEBUG(FND_LOG.LEVEL_PROCEDURE, G_MODULE,'End OKLRCDTB.pls Debug call ');
1251     END IF;
1252  EXCEPTION
1253   WHEN OKL_API.G_EXCEPTION_ERROR THEN
1254     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1255                                l_api_name,
1256                                G_PKG_NAME,
1257                                'OKL_API.G_RET_STS_ERROR',
1258                                x_msg_count,
1259                                x_msg_data,
1260                                '_PVT');
1261     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1262     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1263                               l_api_name,
1264                               G_PKG_NAME,
1265                               'OKL_API.G_RET_STS_UNEXP_ERROR',
1266                               x_msg_count,
1267                               x_msg_data,
1268                               '_PVT');
1269     WHEN OTHERS THEN
1270        x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1271                               l_api_name,
1272                               G_PKG_NAME,
1273                               'OTHERS',
1274                               x_msg_count,
1275                               x_msg_data,
1276                               '_PVT');
1277 
1278   END Create_Disb_Trx;
1279 
1280 
1281   -- Procedure for updating Transaction status
1282   PROCEDURE Update_Disb_Trx(p_api_version               IN  NUMBER
1283                            ,p_init_msg_list             IN  VARCHAR2    DEFAULT OKL_API.G_FALSE
1284                            ,x_return_status             OUT NOCOPY VARCHAR2
1285                            ,x_msg_count                 OUT NOCOPY NUMBER
1286                            ,x_msg_data                  OUT NOCOPY VARCHAR2
1287                            ,p_tapv_rec                  IN tapv_rec_type
1288                            ,x_tapv_rec                  OUT NOCOPY tapv_rec_type
1289                             )
1290   IS
1291    l_api_name      CONSTANT VARCHAR2(30)   := 'UPDATE_DISB_TRX';
1292    l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1293    l_tapv_rec      tapv_rec_type;
1294    lx_tapv_rec     tapv_rec_type;
1295   BEGIN
1296     IF (G_DEBUG_ENABLED = 'Y') THEN
1297       G_IS_DEBUG_STATEMENT_ON := OKL_DEBUG_PUB.CHECK_LOG_ON(G_MODULE, FND_LOG.LEVEL_STATEMENT);
1298     END IF;
1299 
1300    l_return_status := okl_api.start_activity(
1301                                         p_api_name      => l_api_name,
1302                                         p_init_msg_list => p_init_msg_list,
1303                                         p_api_type      => '_PVT',
1304                                         x_return_status => l_return_status);
1305 
1306    IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1307                   RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1308    ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1309                   RAISE OKL_API.G_EXCEPTION_ERROR;
1310    END IF;
1311 
1312    l_tapv_rec := p_tapv_rec;
1313 
1314    OKL_TRX_AP_INVOICES_PUB.Update_trx_ap_invoices(p_api_version      =>  p_api_version
1315                                                  ,p_init_msg_list    =>   p_init_msg_list
1316                                                  ,x_return_status    =>   x_return_status
1317                                                  ,x_msg_count        =>   x_msg_count
1318                                                  ,x_msg_data         =>   x_msg_data
1319                                                  ,p_tapv_rec         =>   l_tapv_rec
1320                                                  ,x_tapv_rec         =>   lx_tapv_rec);
1321 
1322     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1323        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1324     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1325        RAISE OKC_API.G_EXCEPTION_ERROR;
1326     END IF;
1327 
1328    x_tapv_rec := lx_tapv_rec;
1329 
1330    OKL_API.END_ACTIVITY (x_msg_count,
1331                           x_msg_data );
1332 
1333    EXCEPTION
1334     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1335     x_return_status := OKL_API.HANDLE_EXCEPTIONS(
1336                                l_api_name,
1337                                G_PKG_NAME,
1338                                'OKL_API.G_RET_STS_ERROR',
1339                                x_msg_count,
1340                                x_msg_data,
1341                                '_PVT');
1342     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1343     x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1344                               l_api_name,
1345                               G_PKG_NAME,
1346                               'OKL_API.G_RET_STS_UNEXP_ERROR',
1347                               x_msg_count,
1348                               x_msg_data,
1349                               '_PVT');
1350     WHEN OTHERS THEN
1351        x_return_status :=OKL_API.HANDLE_EXCEPTIONS(
1352                               l_api_name,
1353                               G_PKG_NAME,
1354                               'OTHERS',
1355                               x_msg_count,
1356                               x_msg_data,
1357                               '_PVT');
1358 
1359   END Update_Disb_Trx;
1360 
1361   FUNCTION get_khr_line_amount(p_invoice_id IN NUMBER
1362                               ,p_khr_id IN NUMBER) RETURN NUMBER IS
1363     l_khr_line_amount NUMBER DEFAULT 0;
1364 /*
1365 		CURSOR l_khr_line_amt_csr(cp_invoice_id NUMBER, cp_khr_id NUMBER) IS
1366 		SELECT sum(lin.amount) khr_line_amount
1367 		FROM ap_invoice_lines_all lin
1368 		    ,okl_txl_ap_inv_lns_all_b tpl
1369 		    ,fnd_application app
1370 		WHERE lin.application_id = app.application_id
1371 		AND   app.application_short_name = 'OKL'
1372 		AND   lin.product_table = 'OKL_TXL_AP_INV_LNS_ALL_B'
1373 		AND   tpl.id = TO_NUMBER(lin.reference_key1)
1374 		AND   lin.invoice_id = cp_invoice_id
1375 		AND   tpl.khr_id = cp_khr_id;
1376 */
1377 --start: cklee 08/31/07 fixed for the migration
1378 		CURSOR l_khr_line_amt_csr(cp_invoice_id NUMBER, cp_khr_id NUMBER) IS
1379 		SELECT sum(tpl.amount) khr_line_amount
1380 		FROM ap_invoices_all ap
1381 		    ,okl_txl_ap_inv_lns_all_b tpl
1382       	    ,okl_cnsld_ap_invs_all cin
1383 		where ap.product_table = 'OKL_CNSLD_AP_INVS_ALL'
1384 		AND   cin.cnsld_ap_inv_id = TO_NUMBER(ap.reference_key1)
1385 		AND   tpl.cnsld_ap_inv_id = cin.cnsld_ap_inv_id
1386 		AND   ap.invoice_id = cp_invoice_id
1387 		AND   tpl.khr_id = cp_khr_id;
1388 --end: cklee 08/31/07 fixed for the migration
1389 
1390   BEGIN
1391 	  OPEN l_khr_line_amt_csr(p_invoice_id, p_khr_id);
1392 	  FETCH l_khr_line_amt_csr INTO l_khr_line_amount;
1393 	  CLOSE l_khr_line_amt_csr;
1394 
1395 	  RETURN l_khr_line_amount;
1396   END get_khr_line_amount;
1397 
1398  END OKL_CREATE_DISB_TRANS_PVT;