[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;