[Home] [Help]
PACKAGE BODY: APPS.FV_SLA_AR_PROCESSING_PKG
Source
1 PACKAGE BODY fv_sla_ar_processing_pkg AS
2 --$Header: FVXLAARB.pls 120.4.12020000.2 2013/02/13 14:41:24 snama ship $
3
4 ---------------------------------------------------------------------------
5 ---------------------------------------------------------------------------
6
7 c_FAILURE CONSTANT NUMBER := -1;
8 c_SUCCESS CONSTANT NUMBER := 0;
9 C_GL_APPLICATION CONSTANT NUMBER := 101;
10 C_GL_APPL_SHORT_NAME CONSTANT VARCHAR2(30) := 'SQLGL';
11 C_GL_FLEX_CODE CONSTANT VARCHAR2(10) := 'GL#';
12 CRLF CONSTANT VARCHAR2(1) := FND_GLOBAL.newline;
13 g_path_name CONSTANT VARCHAR2(200) := 'fv.plsql.fvxlaarb.fv_sla_ar_processing_pkg';
14 C_STATE_LEVEL CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
15 C_PROC_LEVEL CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
16
17 --AR Attribute Category
18 TYPE ARCategoryTabType IS TABLE OF fv_ar_acc_category_map_dtl.transaction_category%TYPE INDEX BY BINARY_INTEGER;
19 g_ar_category_tab ARCategoryTabType;
20
21 PROCEDURE trace
22 (
23 p_level IN NUMBER,
24 p_procedure_name IN VARCHAR2,
25 p_debug_info IN VARCHAR2
26 )
27 IS
28 BEGIN
29 fv_sla_utl_processing_pkg.trace
30 (
31 p_level => p_level,
32 p_procedure_name => p_procedure_name,
33 p_debug_info => p_debug_info
34 );
35 END trace;
36
37 PROCEDURE stack_error
38 (
39 p_program_name IN VARCHAR2,
40 p_location IN VARCHAR2,
41 p_error_message IN VARCHAR2
42 )
43 IS
44 BEGIN
45 fv_sla_utl_processing_pkg.stack_error
46 (
47 p_program_name => p_program_name,
48 p_location => p_location,
49 p_error_message => p_error_message
50 );
51 END;
52
53 PROCEDURE init
54 IS
55 l_procedure_name VARCHAR2(100) :='.init';
56 BEGIN
57 trace(C_STATE_LEVEL, l_procedure_name, 'Package Information');
58 trace(C_STATE_LEVEL, l_procedure_name, '$Header: FVXLAARB.pls 120.4.12020000.2 2013/02/13 14:41:24 snama ship $');
59 END;
60
61 PROCEDURE get_ar_transaction_category
62 (
63 p_org_id IN NUMBER,
64 p_rec_attribute_type IN fv_ar_acc_category_map_hdr.receivable_attribute_type%TYPE,
65 p_rec_atrribute_id IN fv_ar_acc_category_map_dtl.receivable_attribute_id%TYPE,
66 p_rec_attribute_cat OUT NOCOPY fv_ar_acc_category_map_dtl.transaction_category%TYPE,
67 p_error_code OUT NOCOPY NUMBER,
68 p_error_desc OUT NOCOPY VARCHAR2
69 )
70 IS
71 l_procedure_name VARCHAR2(100) :='.get_ar_transaction_category';
72 l_hash_value NUMBER;
73 BEGIN
74 l_procedure_name := g_path_name || l_procedure_name;
75 p_error_code := c_SUCCESS;
76 p_error_desc := NULL;
77 -------------------------------------------------------------------------
78 trace(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
79 trace(C_STATE_LEVEL, l_procedure_name, 'p_org_id='||p_org_id);
80 trace(C_STATE_LEVEL, l_procedure_name, 'p_rec_attribute_type='||p_rec_attribute_type);
81 trace(C_STATE_LEVEL, l_procedure_name, 'p_rec_atrrinbute_id='||p_rec_atrribute_id);
82 -------------------------------------------------------------------------
83 /* Commented out for bug: 14098827
84 l_hash_value := DBMS_UTILITY.get_hash_value
85 (
86 name => 'ORG_ID:'||p_org_id||'@*?ATTRIBUTE_TYPE:'||p_rec_attribute_type||'@*?ATTRIBUTE_ID:'||p_rec_atrribute_id||'@*?END:',
87 base => 1000,
88 hash_size => 32768
89 );
90
91 IF g_ar_category_tab.EXISTS(l_hash_value) THEN
92 p_rec_attribute_cat := g_ar_category_tab(l_hash_value);
93 ELSE
94 */
95 BEGIN
96 SELECT d.transaction_category
97 INTO p_rec_attribute_cat
98 FROM fv_ar_acc_category_map_hdr h,
99 fv_ar_acc_category_map_dtl d
100 WHERE h.fv_sla_map_hdr_id = d.fv_sla_map_hdr_id
101 AND NVL(h.org_id, -1) = NVL(p_org_id, -1)
102 AND h.receivable_attribute_type = p_rec_attribute_type
103 AND d.receivable_attribute_id = p_rec_atrribute_id;
104 EXCEPTION
105 WHEN NO_DATA_FOUND THEN
106 p_rec_attribute_cat := NULL;
107 WHEN OTHERS THEN
108 p_error_code := c_FAILURE;
109 fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
110 fnd_message.set_token('MESSAGE' , 'System Error :'||SQLERRM);
111 p_error_desc := fnd_message.get;
112 stack_error (l_procedure_name, 'LEDGER_TAB', p_error_desc);
113 trace(C_STATE_LEVEL, l_procedure_name, 'ERROR:LEDGER_TAB:'||p_error_desc);
114 END;
115 /*
116 END IF;
117
118 IF (p_error_code = c_SUCCESS) THEN
119 g_ar_category_tab(l_hash_value) := p_rec_attribute_cat;
120 END IF;
121 */
122 trace(C_PROC_LEVEL, l_procedure_name, 'p_rec_attribute_cat='||p_rec_attribute_cat);
123 trace(C_PROC_LEVEL, l_procedure_name, 'END');
124 EXCEPTION
125 WHEN OTHERS THEN
126 p_error_code := c_FAILURE;
127 fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
128 fnd_message.set_token('MESSAGE' , 'System Error :'||SQLERRM);
129 p_error_desc := fnd_message.get;
130 fv_sla_utl_processing_pkg.stack_error (l_procedure_name, 'FINAL', p_error_desc);
131 trace(C_STATE_LEVEL, l_procedure_name, 'ERROR:FINAL:'||p_error_desc);
132 END;
133
134 PROCEDURE get_ar_invoice_details
135 (
136 p_transcation_id IN NUMBER,
137 p_org_id OUT NOCOPY NUMBER,
138 p_customer_id OUT NOCOPY NUMBER,
139 p_rec_atrribute_id OUT NOCOPY NUMBER,
140 p_rec_attribute_type OUT NOCOPY fv_ar_acc_category_map_hdr.receivable_attribute_type%TYPE,
141 p_error_code OUT NOCOPY NUMBER,
142 p_error_desc OUT NOCOPY VARCHAR2
143 )
144 IS
145 l_procedure_name VARCHAR2(100) :='.get_ar_invoice_details';
146 BEGIN
147 l_procedure_name := g_path_name || l_procedure_name;
148
149 p_error_code := c_SUCCESS;
150 p_error_desc := NULL;
151 -------------------------------------------------------------------------
152 trace(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
153 trace(C_STATE_LEVEL, l_procedure_name, 'p_transcation_id='||p_transcation_id);
154 -------------------------------------------------------------------------
155
156 p_rec_attribute_type := 'TT';
157 BEGIN
158 SELECT h.org_id,
159 h.cust_trx_type_id,
160 h.bill_to_customer_id
161 INTO p_org_id,
162 p_rec_atrribute_id,
163 p_customer_id
164 FROM ra_customer_trx_all h
165 WHERE customer_trx_id = p_transcation_id;
166 EXCEPTION
167 WHEN OTHERS THEN
168 p_error_code := c_FAILURE;
169 fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
170 fnd_message.set_token('MESSAGE' , 'System Error :'||SQLERRM);
171 p_error_desc := fnd_message.get;
172 stack_error (l_procedure_name, 'ra_customer_trx_all_tab', p_error_desc);
173 trace(C_STATE_LEVEL, l_procedure_name, 'ERROR:ra_customer_trx_all_tab:'||p_error_desc);
174 END;
175
176 trace(C_PROC_LEVEL, l_procedure_name, 'p_org_id='||p_org_id);
177 trace(C_PROC_LEVEL, l_procedure_name, 'p_customer_id='||p_customer_id);
178 trace(C_PROC_LEVEL, l_procedure_name, 'p_rec_atrribute_id='||p_rec_atrribute_id);
179 trace(C_PROC_LEVEL, l_procedure_name, 'p_rec_attribute_type='||p_rec_attribute_type);
180 trace(C_PROC_LEVEL, l_procedure_name, 'END');
181 EXCEPTION
182 WHEN OTHERS THEN
183 p_error_code := c_FAILURE;
184 fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
185 fnd_message.set_token('MESSAGE' , 'System Error :'||SQLERRM);
186 p_error_desc := fnd_message.get;
187 stack_error (l_procedure_name, 'FINAL', p_error_desc);
188 trace(C_STATE_LEVEL, l_procedure_name, 'ERROR:FINAL:'||p_error_desc);
189 END;
190
191 PROCEDURE get_ar_receipt_details
192 (
193 p_transcation_id IN NUMBER,
194 p_org_id OUT NOCOPY NUMBER,
195 p_customer_id OUT NOCOPY NUMBER,
196 p_rec_atrribute_id OUT NOCOPY NUMBER,
197 p_rec_attribute_type OUT NOCOPY fv_ar_acc_category_map_hdr.receivable_attribute_type%TYPE,
198 p_error_code OUT NOCOPY NUMBER,
199 p_error_desc OUT NOCOPY VARCHAR2
200 )
201 IS
202 l_procedure_name VARCHAR2(100) :='.get_ar_receipt_details';
203 l_project_id pa_projects.project_id%TYPE;
204 l_rect_type ar_cash_receipts_all.type%TYPE;
205 BEGIN
206 l_procedure_name := g_path_name || l_procedure_name;
207
208 p_error_code := c_SUCCESS;
209 p_error_desc := NULL;
210 -------------------------------------------------------------------------
211 trace(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
212 trace(C_STATE_LEVEL, l_procedure_name, 'p_transcation_id='||p_transcation_id);
213 -------------------------------------------------------------------------
214
215 p_rec_attribute_type := 'RM';
216 BEGIN
217
218 SELECT type
219 INTO l_rect_type
220 FROM ar_cash_receipts_all
221 WHERE cash_receipt_id = p_transcation_id;
222
223 --Misc receipts will not have cust info, so bypassing
224 --this select for misc receipts
225 IF l_rect_type <> 'MISC' THEN
226 SELECT h.org_id,
227 h.receipt_method_id,
228 hcas.cust_account_id
229 INTO p_org_id,
230 p_rec_atrribute_id,
231 p_customer_id
232 FROM ar_cash_receipts_all h,
233 hz_cust_site_uses_all hcsu,
234 hz_cust_acct_sites_all hcas
235 WHERE h.cash_receipt_id = p_transcation_id
236 AND hcsu.site_use_id = h.customer_site_use_id
237 AND hcas.cust_acct_site_id = hcsu.cust_acct_site_id;
238 END IF;
239 EXCEPTION
240 WHEN OTHERS THEN
241 p_error_code := c_FAILURE;
242 fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
243 fnd_message.set_token('MESSAGE' , 'System Error :'||SQLERRM);
244 p_error_desc := fnd_message.get;
245 stack_error (l_procedure_name, 'ar_cash_receipts_all_tab', p_error_desc);
246 trace(C_STATE_LEVEL, l_procedure_name, 'ERROR:ar_cash_receipts_all_tab:'||p_error_desc);
247
248 END;
249 p_org_id := -1;
250
251
252 trace(C_PROC_LEVEL, l_procedure_name, 'p_org_id='||p_org_id);
253 trace(C_PROC_LEVEL, l_procedure_name, 'p_customer_id='||p_customer_id);
254 trace(C_PROC_LEVEL, l_procedure_name, 'p_rec_atrribute_id='||p_rec_atrribute_id);
255 trace(C_PROC_LEVEL, l_procedure_name, 'p_rec_attribute_type='||p_rec_attribute_type);
256 trace(C_PROC_LEVEL, l_procedure_name, 'END');
257 EXCEPTION
258 WHEN OTHERS THEN
259 p_error_code := c_FAILURE;
260 fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
261 fnd_message.set_token('MESSAGE' , 'System Error :'||SQLERRM);
262 p_error_desc := fnd_message.get;
263 stack_error (l_procedure_name, 'FINAL', p_error_desc);
264 trace(C_STATE_LEVEL, l_procedure_name, 'ERROR:FINAL:'||p_error_desc);
265 END;
266
267 PROCEDURE get_ar_adjustment_details
268 (
269 p_transcation_id IN NUMBER,
270 p_org_id OUT NOCOPY NUMBER,
271 p_customer_id OUT NOCOPY NUMBER,
272 p_rec_atrribute_id OUT NOCOPY NUMBER,
273 p_rec_attribute_type OUT NOCOPY fv_ar_acc_category_map_hdr.receivable_attribute_type%TYPE,
274 p_error_code OUT NOCOPY NUMBER,
275 p_error_desc OUT NOCOPY VARCHAR2
276 )
277 IS
278 l_procedure_name VARCHAR2(100) :='.get_ar_adjustment_details';
279 BEGIN
280 l_procedure_name := g_path_name || l_procedure_name;
281
282 p_error_code := c_SUCCESS;
283 p_error_desc := NULL;
284 -------------------------------------------------------------------------
285 trace(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
286 trace(C_STATE_LEVEL, l_procedure_name, 'p_transcation_id='||p_transcation_id);
287 -------------------------------------------------------------------------
288
289 p_rec_attribute_type := 'RA';
290 BEGIN
291 /*
292 SELECT h.org_id,
293 h.receivables_trx_id,
294 hcas.cust_account_id
295 INTO p_org_id,
296 p_rec_atrribute_id,
297 p_customer_id
298 FROM ar_adjustments_all h,
299 ar_cash_receipts_all acr,
300 hz_cust_site_uses_all hcsu,
301 hz_cust_acct_sites_all hcas
302 WHERE h.adjustment_id = p_transcation_id
303 AND h.associated_cash_receipt_id = acr.cash_receipt_id
304 AND hcsu.site_use_id = acr.customer_site_use_id
305 AND hcas.cust_acct_site_id = hcsu.cust_acct_site_id;
306 */
307
308 SELECT h.org_id,
309 h.receivables_trx_id,
310 hcas.cust_account_id
311 INTO p_org_id,
312 p_rec_atrribute_id,
313 p_customer_id
314 FROM ar_adjustments_all h,
315 ra_customer_trx_all acr,
316 hz_cust_site_uses_all hcsu,
317 hz_cust_acct_sites_all hcas
318 WHERE h.adjustment_id = p_transcation_id
319 AND h.customer_trx_id = acr.customer_trx_id
320 AND hcsu.site_use_id = acr.bill_to_site_use_id
321 AND hcas.cust_acct_site_id = hcsu.cust_acct_site_id;
322
323 EXCEPTION
324 WHEN OTHERS THEN
325 p_error_code := c_FAILURE;
326 fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
327 fnd_message.set_token('MESSAGE' , 'System Error :'||SQLERRM);
328 p_error_desc := fnd_message.get;
329 stack_error (l_procedure_name, 'ar_adjustments_all_tab', p_error_desc);
330 trace(C_STATE_LEVEL, l_procedure_name, 'ERROR:ar_adjustments_all_tab:'||p_error_desc);
331 END;
332
333 trace(C_PROC_LEVEL, l_procedure_name, 'p_org_id='||p_org_id);
334 trace(C_PROC_LEVEL, l_procedure_name, 'p_customer_id='||p_customer_id);
335 trace(C_PROC_LEVEL, l_procedure_name, 'p_rec_atrribute_id='||p_rec_atrribute_id);
336 trace(C_PROC_LEVEL, l_procedure_name, 'p_rec_attribute_type='||p_rec_attribute_type);
337 trace(C_PROC_LEVEL, l_procedure_name, 'END');
338 EXCEPTION
339 WHEN OTHERS THEN
340 p_error_code := c_FAILURE;
341 fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
342 fnd_message.set_token('MESSAGE' , 'System Error :'||SQLERRM);
343 p_error_desc := fnd_message.get;
344 stack_error (l_procedure_name, 'FINAL', p_error_desc);
345 trace(C_STATE_LEVEL, l_procedure_name, 'ERROR:FINAL:'||p_error_desc);
346 END;
347
348 PROCEDURE get_ar_document_details
349 (
350 p_event_id IN NUMBER,
351 p_org_id OUT NOCOPY NUMBER,
352 p_customer_id OUT NOCOPY NUMBER,
353 p_rec_atrribute_id OUT NOCOPY NUMBER,
354 p_rec_attribute_type OUT NOCOPY fv_ar_acc_category_map_hdr.receivable_attribute_type%TYPE,
355 p_error_code OUT NOCOPY NUMBER,
356 p_error_desc OUT NOCOPY VARCHAR2
357 )
358 IS
359 l_procedure_name VARCHAR2(100) :='.get_ar_document_details';
360 l_entity_code xla_transaction_entities.entity_code%TYPE;
361 l_transcation_id xla_transaction_entities.source_id_int_1%TYPE;
362 BEGIN
363 l_procedure_name := g_path_name || l_procedure_name;
364
365 p_error_code := c_SUCCESS;
366 p_error_desc := NULL;
367 -------------------------------------------------------------------------
368 trace(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
369 trace(C_STATE_LEVEL, l_procedure_name, 'p_event_id='||p_event_id);
370 -------------------------------------------------------------------------
371
372 BEGIN
373 SELECT t.source_id_int_1,
374 t.entity_code
375 INTO l_transcation_id,
376 l_entity_code
377 FROM xla_events e,
378 xla_transaction_entities t
379 WHERE e.entity_id = t.entity_id
380 AND e.event_id = p_event_id;
381
382 trace(C_PROC_LEVEL, l_procedure_name, 'l_entity_code='||l_entity_code);
383 trace(C_PROC_LEVEL, l_procedure_name, 'l_transcation_id='||l_transcation_id);
384 EXCEPTION
385 WHEN OTHERS THEN
386 p_error_code := c_FAILURE;
387 fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
388 fnd_message.set_token('MESSAGE' , 'System Error :'||SQLERRM);
389 p_error_desc := fnd_message.get;
390 stack_error (l_procedure_name, 'xla_events_tab', p_error_desc);
391 trace(C_STATE_LEVEL, l_procedure_name, 'ERROR:xla_events_tab:'||p_error_desc);
392 END;
393
394 p_rec_atrribute_id := NULL;
395 IF (p_error_code = c_SUCCESS) THEN
396 IF (l_entity_code = 'TRANSACTIONS') THEN
397 get_ar_invoice_details
398 (
399 p_transcation_id => l_transcation_id,
400 p_org_id => p_org_id,
401 p_customer_id => p_customer_id,
402 p_rec_atrribute_id => p_rec_atrribute_id,
403 p_rec_attribute_type => p_rec_attribute_type,
404 p_error_code => p_error_code,
405 p_error_desc => p_error_desc
406 );
407 ELSIF (l_entity_code = 'RECEIPTS') THEN
408 get_ar_receipt_details
409 (
410 p_transcation_id => l_transcation_id,
411 p_org_id => p_org_id,
412 p_customer_id => p_customer_id,
413 p_rec_atrribute_id => p_rec_atrribute_id,
414 p_rec_attribute_type => p_rec_attribute_type,
415 p_error_code => p_error_code,
416 p_error_desc => p_error_desc
417 );
418 ELSIF (l_entity_code = 'ADJUSTMENTS') THEN
419 get_ar_adjustment_details
420 (
421 p_transcation_id => l_transcation_id,
422 p_org_id => p_org_id,
423 p_customer_id => p_customer_id,
424 p_rec_atrribute_id => p_rec_atrribute_id,
425 p_rec_attribute_type => p_rec_attribute_type,
426 p_error_code => p_error_code,
427 p_error_desc => p_error_desc
428 );
429 END IF;
430 END IF;
431
432 trace(C_PROC_LEVEL, l_procedure_name, 'p_org_id='||p_org_id);
433 trace(C_PROC_LEVEL, l_procedure_name, 'p_customer_id='||p_customer_id);
434 trace(C_PROC_LEVEL, l_procedure_name, 'p_rec_atrribute_id='||p_rec_atrribute_id);
435 trace(C_PROC_LEVEL, l_procedure_name, 'p_rec_attribute_type='||p_rec_attribute_type);
436 trace(C_PROC_LEVEL, l_procedure_name, 'END');
437 EXCEPTION
438 WHEN OTHERS THEN
439 p_error_code := c_FAILURE;
440 fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
441 fnd_message.set_token('MESSAGE' , 'System Error :'||SQLERRM);
442 p_error_desc := fnd_message.get;
443 stack_error (l_procedure_name, 'FINAL', p_error_desc);
444 trace(C_STATE_LEVEL, l_procedure_name, 'ERROR:FINAL:'||p_error_desc);
445 END;
446
447 PROCEDURE get_receipt_info_for_pr
448 (
449 p_transcation_id IN NUMBER,
450 p_rec_attribute_cat OUT NOCOPY fv_ar_acc_category_map_dtl.transaction_category%TYPE,
451 p_advance_required OUT NOCOPY VARCHAR2,
452 p_advance_amount OUT NOCOPY NUMBER,
453 p_customer_id OUT NOCOPY NUMBER,
454 p_error_code OUT NOCOPY NUMBER,
455 p_error_desc OUT NOCOPY VARCHAR2
456 )
457 IS
458 l_procedure_name VARCHAR2(100) :='.get_receipt_info_for_pr';
459 l_org_id NUMBER;
460 l_rec_atrribute_id NUMBER;
461 l_rec_attribute_type fv_ar_acc_category_map_hdr.receivable_attribute_type%TYPE;
462 l_cash_receipt_id ar_receivable_applications_all.cash_receipt_id%TYPE;
463 l_payment_set_id ar_receivable_applications_all.payment_set_id%TYPE;
464 l_stmt VARCHAR2(2000);
465 BEGIN
466 l_procedure_name := g_path_name || l_procedure_name;
467
468 p_error_code := c_SUCCESS;
469 p_error_desc := NULL;
470 p_advance_required := NULL;
471 p_advance_amount := 0;
472 -------------------------------------------------------------------------
473 trace(C_STATE_LEVEL, l_procedure_name, 'BEGIN');
474 trace(C_STATE_LEVEL, l_procedure_name, 'p_transcation_id='||p_transcation_id);
475 -------------------------------------------------------------------------
476
477 BEGIN
478 SELECT cash_receipt_id,
479 payment_set_id
480 INTO l_cash_receipt_id,
481 l_payment_set_id
482 FROM ar_receivable_applications_all ara
483 WHERE ara.receivable_application_id = p_transcation_id;
484 trace(C_STATE_LEVEL, l_procedure_name, 'l_cash_receipt_id='||l_cash_receipt_id);
485 trace(C_STATE_LEVEL, l_procedure_name, 'l_payment_set_id='||l_payment_set_id);
486 EXCEPTION
487 WHEN OTHERS THEN
488 p_error_code := c_FAILURE;
489 fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
490 fnd_message.set_token('MESSAGE' , 'System Error :'||SQLERRM);
491 p_error_desc := fnd_message.get;
492 stack_error (l_procedure_name, 'ar_receivable_applications_all', p_error_desc);
493 trace(C_STATE_LEVEL, l_procedure_name, 'ERROR:ar_receivable_applications_all:'||p_error_desc);
494 END;
495
496 IF (p_error_code = c_SUCCESS) THEN
497 get_ar_receipt_details
498 (
499 p_transcation_id => l_cash_receipt_id,
500 p_org_id => l_org_id,
501 p_customer_id => p_customer_id,
502 p_rec_atrribute_id => l_rec_atrribute_id,
503 p_rec_attribute_type => l_rec_attribute_type,
504 p_error_code => p_error_code,
505 p_error_desc => p_error_desc
506 );
507 END IF;
508
509 IF (p_error_code = c_SUCCESS AND l_rec_atrribute_id IS NOT NULL) THEN
510 get_ar_transaction_category
511 (
512 p_org_id => l_org_id,
513 p_rec_attribute_type => l_rec_attribute_type,
514 p_rec_atrribute_id => l_rec_atrribute_id,
515 p_rec_attribute_cat => p_rec_attribute_cat,
516 p_error_code => p_error_code,
517 p_error_desc => p_error_desc
518 );
519 END IF;
520
521 IF (p_error_code = c_SUCCESS AND l_rec_atrribute_id IS NOT NULL) THEN
522 BEGIN
523 /* Dynamic query used because the below columns exist only in 12.1+*/
524 trace(C_STATE_LEVEL, l_procedure_name, 'Executing Dynamic Statement');
525 l_stmt := 'SELECT advance_required, advance_amount
526 FROM pa_agreements_all
527 WHERE payment_set_id = :l_payment_set_id';
528 EXECUTE IMMEDIATE l_stmt INTO p_advance_required, p_advance_amount;
529 EXCEPTION
530 WHEN OTHERS THEN
531 trace(C_STATE_LEVEL, l_procedure_name, 'Dynamic Statement returned error:'||SQLERRM);
532 p_advance_required := NULL;
533 p_advance_amount := 0;
534 END;
535 END IF;
536
537 trace(C_PROC_LEVEL, l_procedure_name, 'p_rec_attribute_cat='||p_rec_attribute_cat);
538 trace(C_PROC_LEVEL, l_procedure_name, 'END');
539 EXCEPTION
540 WHEN OTHERS THEN
541 p_error_code := c_FAILURE;
542 fnd_message.set_name('FND', 'FND_GENERIC_MESSAGE');
543 fnd_message.set_token('MESSAGE' , 'System Error :'||SQLERRM);
544 p_error_desc := fnd_message.get;
545 stack_error (l_procedure_name, 'FINAL', p_error_desc);
546 trace(C_STATE_LEVEL, l_procedure_name, 'ERROR:FINAL:'||p_error_desc);
547 END;
548
549 PROCEDURE ar_extract
550 (
551 p_application_id IN NUMBER,
552 p_accounting_mode IN VARCHAR2
553 )
554 IS
555 l_procedure_name VARCHAR2(100):='.AR_EXTRACT';
556 l_index NUMBER;
557 l_ledger_info fv_sla_utl_processing_pkg.LedgerRecType;
558 l_error_code NUMBER;
559 l_gt_error_code NUMBER;
560 l_error_desc VARCHAR2(1024);
561 l_fund_value VARCHAR(30);
562 l_account_value VARCHAR2(30);
563 l_bfy_value VARCHAR2(30);
564 l_fv_extract_detail fv_sla_utl_processing_pkg.fv_ref_detail;
565 l_treasury_symbol_id fv_treasury_symbols.treasury_symbol_id%TYPE;
566 l_treasury_symbol fv_treasury_symbols.treasury_symbol%TYPE;
567 l_fund_category fv_fund_parameters.fund_category%TYPE;
568 l_fund_status VARCHAR2(100);
569 l_fund_time_frame fv_treasury_symbols.time_frame%TYPE;
570 l_rec_attribute_cat fv_ar_acc_category_map_dtl.transaction_category%TYPE;
571 l_pya VARCHAR2(1);
572 l_pya_type VARCHAR2(20);
573 l_no_pya_acct_flag fv_treasury_symbols.no_pya_acct_flag%TYPE;
574 l_direct_or_reimb VARCHAR2(1);
575 l_fund_type fv_treasury_symbols.fund_type%TYPE;
576 l_rec_atrribute_id NUMBER;
577 l_rec_attribute_type fv_ar_acc_category_map_hdr.receivable_attribute_type%TYPE;
578 l_org_id NUMBER;
579 l_customer_id NUMBER;
580 l_fed_non_fed_ind VARCHAR2(1);
581
582 CURSOR cur_ar_inv_extract_details
583 (
584 c_event_id NUMBER
585 )
586 IS
587 SELECT l.event_id,
588 l.trx_line_dist_ccid,
589 l.line_number
590 FROM ar_cust_trx_lines_l_v l
591 WHERE l.event_id = c_event_id
592 AND l.trx_line_dist_account_class = 'REV';
593
594 CURSOR cur_ar_cm_extract_details
595 (
596 c_event_id NUMBER
597 )
598 IS
599 SELECT l.event_id,
600 l.trx_line_dist_ccid,
601 l.line_number
602 FROM ar_cust_trx_lines_l_v l
603 WHERE l.event_id = c_event_id
604 AND l.trx_line_dist_account_class = 'REV';
605
606 CURSOR cur_ar_rct_extract_details
607 (
608 c_event_id NUMBER
609 ) IS
610 SELECT d.event_id,
611 d.line_number,
612 d.dist_code_combination_id,
613 l.trx_line_dist_ccid
614 FROM ar_distributions_l_v d,
615 ar_cust_trx_lines_l_v l
616 WHERE d.dist_source_type IN ('REC', 'ADJ')
617 AND l.event_id = d.event_id
618 AND l.line_number = d.line_number
619 AND d.event_id = c_event_id
620 AND NVL(d.dist_ref_mf_dist_flag||d.dist_source_table_secondary, ' ') <> 'UUPMFCHMIAR'
621 UNION
622 SELECT d.event_id,
623 d.line_number,
624 d.dist_code_combination_id,
625 d.dist_code_combination_id trx_line_dist_ccid
626 FROM ar_distributions_l_v d
627 WHERE d.dist_source_type IN ('ACC', 'OTHER ACC')
628 AND d.event_id = c_event_id
629 AND NVL(d.dist_ref_mf_dist_flag||d.dist_source_table_secondary, ' ') <> 'UUPMFCHMIAR';
630
631 CURSOR cur_misc_rct_extract_details
632 (
633 c_event_id NUMBER
634 )
635 IS
636 SELECT arv.event_id,
637 arv.line_number,
638 arv.dist_code_combination_id
639 FROM ar_distributions_l_v arv
640 WHERE arv.event_id = c_event_id
641 AND dist_source_type = 'MISCCASH'
642 AND dist_mfar_additional_entry = 'Y'
643 AND dist_paired_source_type = 'CLEARED';
644
645
646
647 BEGIN
648 l_procedure_name := g_path_name || l_procedure_name;
649 trace(C_STATE_LEVEL, l_procedure_name, 'Begin of procedure '||l_procedure_name);
650 trace(C_STATE_LEVEL, l_procedure_name, 'Accounting Mode: ' || p_accounting_mode);
651 trace(C_STATE_LEVEL, l_procedure_name, 'Application ID: ' || p_application_id);
652
653 /* Validate the application ID */
654 IF (p_application_id <> 222) THEN
655 RETURN;
656 END IF;
657
658 /* Validate the accounting mode */
659 IF (p_accounting_mode NOT IN ('D', 'F')) THEN
660 RETURN;
661 END IF;
662
663 l_index:=0;
664 FOR event_rec IN (SELECT *
665 FROM xla_events_gt
666 WHERE application_id = p_application_id) LOOP
667 fv_sla_utl_processing_pkg.get_ledger_info
668 (
669 p_ledger_id => event_rec.ledger_id,
670 p_ledger_rec => l_ledger_info,
671 p_error_code => l_error_code,
672 p_error_desc => l_error_desc
673 );
674
675 IF (l_error_code = c_SUCCESS) THEN
676 get_ar_document_details
677 (
678 p_event_id => event_rec.event_id,
679 p_org_id => l_org_id,
680 p_customer_id => l_customer_id,
681 p_rec_atrribute_id => l_rec_atrribute_id,
682 p_rec_attribute_type => l_rec_attribute_type,
683 p_error_code => l_error_code,
684 p_error_desc => l_error_desc
685 );
686 END IF;
687
688 IF (l_error_code = c_SUCCESS) THEN
689 get_ar_transaction_category
690 (
691 p_org_id => l_org_id,
692 p_rec_attribute_type => l_rec_attribute_type,
693 p_rec_atrribute_id => l_rec_atrribute_id,
694 p_rec_attribute_cat => l_rec_attribute_cat,
695 p_error_code => l_error_code,
696 p_error_desc => l_error_desc
697 );
698 END IF;
699
700 IF (l_error_code = C_SUCCESS) THEN
701 trace(C_STATE_LEVEL, l_procedure_name, 'Calling get_fed_non_fed_ind');
702 trace(C_STATE_LEVEL, l_procedure_name, 'l_customer_id='||l_customer_id);
703 fv_sla_utl_processing_pkg.get_fed_non_fed_ind
704 (
705 p_cust_vend_id => l_customer_id,
706 p_cust_or_vend => 'C',
707 p_fed_non_fed_ind => l_fed_non_fed_ind,
708 p_error_code => l_error_code,
709 p_error_desc => l_error_desc
710 );
711 trace(C_STATE_LEVEL, l_procedure_name, 'get_fed_non_fed_ind Returned');
712 trace(C_STATE_LEVEL, l_procedure_name, 'l_fed_non_fed_ind='||l_fed_non_fed_ind);
713 trace(C_STATE_LEVEL, l_procedure_name, 'l_error_code='||l_error_code);
714 trace(C_STATE_LEVEL, l_procedure_name, 'l_error_desc='||l_error_desc);
715 END IF;
716
717 IF (l_error_code = c_SUCCESS) THEN
718 trace(C_STATE_LEVEL, l_procedure_name, 'event_rec.event_type_code: ' || event_rec.event_type_code);
719 IF (event_rec.event_type_code IN ('INV_CREATE',
720 'INV_UPDATE',
721 'DM_CREATE',
722 'DM_UPDATE',
723 'CM_CREATE',
724 'CM_UPDATE'
725 )) THEN
726 FOR inv_rec IN cur_ar_inv_extract_details(event_rec.event_id) LOOP
727 IF (l_error_code = C_SUCCESS) THEN
728 trace(C_STATE_LEVEL, l_procedure_name, 'Calling get_segment_values');
729 trace(C_STATE_LEVEL, l_procedure_name, 'p_ledger_id='||l_ledger_info.ledger_id);
730 trace(C_STATE_LEVEL, l_procedure_name, 'p_ccid='||inv_rec.trx_line_dist_ccid);
731 fv_sla_utl_processing_pkg.get_segment_values
732 (
733 p_ledger_id => l_ledger_info.ledger_id,
734 p_ccid => inv_rec.trx_line_dist_ccid,
735 p_fund_value => l_fund_value,
736 p_account_value => l_account_value,
737 p_bfy_value => l_bfy_value,
738 p_error_code => l_error_code,
739 p_error_desc => l_error_desc
740 );
741 END IF;
742
743 IF (l_error_code = C_SUCCESS) THEN
744 trace(C_STATE_LEVEL, l_procedure_name, 'p_fund_value='||l_fund_value);
745 trace(C_STATE_LEVEL, l_procedure_name, 'p_account_value='||l_account_value);
746 trace(C_STATE_LEVEL, l_procedure_name, 'p_bfy_value='||l_bfy_value);
747
748 trace(C_STATE_LEVEL, l_procedure_name, 'Calling get_fund_details');
749 trace(C_STATE_LEVEL, l_procedure_name, 'p_application_id='||p_application_id);
750 trace(C_STATE_LEVEL, l_procedure_name, 'p_ledger_id='||l_ledger_info.ledger_id);
751 trace(C_STATE_LEVEL, l_procedure_name, 'p_fund_value='||l_fund_value);
752 trace(C_STATE_LEVEL, l_procedure_name, 'p_gl_date='||event_rec.event_date);
753 fv_sla_utl_processing_pkg.get_fund_details
754 (
755 p_application_id => p_application_id,
756 p_ledger_id => l_ledger_info.ledger_id,
757 p_fund_value => l_fund_value,
758 p_gl_date => event_rec.event_date,
759 p_appor_category => l_fund_category,
760 p_direct_or_reimb => l_direct_or_reimb,
761 p_fund_status => l_fund_status,
762 p_fund_time_frame => l_fund_time_frame,
763 p_treasury_symbol_id => l_treasury_symbol_id,
764 p_treasury_symbol => l_treasury_symbol,
765 p_no_pya_acct_flag => l_no_pya_acct_flag,
766 p_fund_type => l_fund_type,
767 p_error_code => l_error_code,
768 p_error_desc => l_error_desc
769 );
770 END IF;
771
772 IF (l_error_code = C_SUCCESS) THEN
773 l_index := l_index + 1;
774 l_fv_extract_detail(l_index).fed_non_fed_ind := l_fed_non_fed_ind;
775 l_fv_extract_detail(l_index).fund_value := l_fund_value;
776 l_fv_extract_detail(l_index).fund_type := l_fund_type;
777 l_fv_extract_detail(l_index).event_id := event_rec.event_id;
778 l_fv_extract_detail(l_index).line_number := inv_rec.line_number;
779 l_fv_extract_detail(l_index).application_id := p_application_id;
780 l_fv_extract_detail(l_index).prior_year_flag := 'N';
781 l_fv_extract_detail(l_index).fund_category := l_fund_category;
782 l_fv_extract_detail(l_index).fund_expired_status := l_fund_status;
783 l_fv_extract_detail(l_index).fund_time_frame := l_fund_time_frame;
784 l_fv_extract_detail(l_index).ar_transaction_category := l_rec_attribute_cat;
785 l_fv_extract_detail(l_index).direct_or_reimb := l_direct_or_reimb;
786
787 ELSE
788 -- Added for bug 14189341
789 trace(C_STATE_LEVEL, l_procedure_name, ' Inserting accounting errors into xla_accounting_errors table for event :'||event_rec.event_id);
790 fv_sla_utl_processing_pkg.INSERT_FV_XLA_ACC_ERRORS
791 (
792 p_appli_s_name=> 'FV',
793 p_msg_name => 'FV_AR_FUND_NO_SETUP',
794 p_entity_id => event_rec.entity_id,
795 p_event_id => event_rec.event_id,
796 p_ledger_id => l_ledger_info.ledger_id
797 );
798
799 -- Update process status code to E
800 IF (event_rec.event_id is not null) THEN
801
802 BEGIN
803 trace(C_STATE_LEVEL, l_procedure_name, ' Before updating xla_events_gt');
804 update xla_events_gt
805 set PROCESS_STATUS_CODE='E'
806 where event_id=event_rec.event_id
807 and application_id=p_application_id;
808 EXCEPTION
809 WHEN OTHERS THEN
810 trace(C_STATE_LEVEL, l_procedure_name, ' EVENT ID DOES NOT EXIST: event_id-> ' || event_rec.event_id);
811 END;
812 END IF;
813 END IF;
814
815
816
817 END LOOP;
818 ELSIF (event_rec.event_type_code IN ('RECP_CREATE',
819 'RECP_UPDATE',
820 'RECP_REVERSE',
821 'ADJ_CREATE')) THEN
822 FOR rec_rec IN cur_ar_rct_extract_details (event_rec.event_id) LOOP
823 IF (l_error_code = C_SUCCESS) THEN
824 trace(C_STATE_LEVEL, l_procedure_name, 'Calling get_segment_values');
825 trace(C_STATE_LEVEL, l_procedure_name, 'p_ledger_id='||l_ledger_info.ledger_id);
826 trace(C_STATE_LEVEL, l_procedure_name, 'p_ccid='||rec_rec.trx_line_dist_ccid);
827 fv_sla_utl_processing_pkg.get_segment_values
828 (
829 p_ledger_id => l_ledger_info.ledger_id,
830 p_ccid => rec_rec.trx_line_dist_ccid,
831 p_fund_value => l_fund_value,
832 p_account_value => l_account_value,
833 p_bfy_value => l_bfy_value,
834 p_error_code => l_error_code,
835 p_error_desc => l_error_desc
836 );
837 END IF;
838
839 IF (l_error_code = C_SUCCESS) THEN
840 trace(C_STATE_LEVEL, l_procedure_name, 'p_fund_value='||l_fund_value);
841 trace(C_STATE_LEVEL, l_procedure_name, 'p_account_value='||l_account_value);
842 trace(C_STATE_LEVEL, l_procedure_name, 'p_bfy_value='||l_bfy_value);
843
844 trace(C_STATE_LEVEL, l_procedure_name, 'Calling get_fund_details');
845 trace(C_STATE_LEVEL, l_procedure_name, 'p_application_id='||p_application_id);
846 trace(C_STATE_LEVEL, l_procedure_name, 'p_ledger_id='||l_ledger_info.ledger_id);
847 trace(C_STATE_LEVEL, l_procedure_name, 'p_fund_value='||l_fund_value);
848 trace(C_STATE_LEVEL, l_procedure_name, 'p_gl_date='||event_rec.event_date);
849 fv_sla_utl_processing_pkg.get_fund_details
850 (
851 p_application_id => p_application_id,
852 p_ledger_id => l_ledger_info.ledger_id,
853 p_fund_value => l_fund_value,
854 p_gl_date => event_rec.event_date,
855 p_appor_category => l_fund_category,
856 p_direct_or_reimb => l_direct_or_reimb,
857 p_fund_status => l_fund_status,
858 p_fund_time_frame => l_fund_time_frame,
859 p_treasury_symbol_id => l_treasury_symbol_id,
860 p_treasury_symbol => l_treasury_symbol,
861 p_no_pya_acct_flag => l_no_pya_acct_flag,
862 p_fund_type => l_fund_type,
863 p_error_code => l_error_code,
864 p_error_desc => l_error_desc
865 );
866
867 END IF;
868
869 IF (l_error_code = C_SUCCESS) THEN
870 l_pya := 'N';
871 IF (NVL(l_no_pya_acct_flag, 'N') = 'N') THEN
872 fv_sla_utl_processing_pkg.get_prior_year_status
873 (
874 p_application_id => p_application_id,
875 p_ledger_id => l_ledger_info.ledger_id,
876 p_bfy_value => l_bfy_value,
877 p_gl_date => event_rec.event_date,
878 p_pya => l_pya,
879 p_pya_type => l_pya_type,
880 p_error_code => l_error_code,
881 p_error_desc => l_error_desc
882 );
883 END IF;
884 END IF;
885
886 IF (l_error_code = C_SUCCESS) THEN
887 l_index := l_index + 1;
888 l_fv_extract_detail(l_index).fed_non_fed_ind := l_fed_non_fed_ind;
889 l_fv_extract_detail(l_index).fund_value := l_fund_value;
890 l_fv_extract_detail(l_index).fund_type := l_fund_type;
891 l_fv_extract_detail(l_index).event_id := event_rec.event_id;
892 l_fv_extract_detail(l_index).line_number := rec_rec.line_number;
893 l_fv_extract_detail(l_index).application_id := p_application_id;
894 l_fv_extract_detail(l_index).prior_year_flag := l_pya;
895 l_fv_extract_detail(l_index).fund_category := l_fund_category;
896 l_fv_extract_detail(l_index).fund_expired_status := l_fund_status;
897 l_fv_extract_detail(l_index).fund_time_frame := l_fund_time_frame;
898 l_fv_extract_detail(l_index).ar_transaction_category := l_rec_attribute_cat;
899 l_fv_extract_detail(l_index).direct_or_reimb := l_direct_or_reimb;
900 ELSE
901 -- Added for bug 14189341
902 trace(C_STATE_LEVEL, l_procedure_name, ' Inserting accounting errors into xla_accounting_errors table for event :'||event_rec.event_id);
903 fv_sla_utl_processing_pkg.INSERT_FV_XLA_ACC_ERRORS
904 (
905 p_appli_s_name=> 'FV',
906 p_msg_name => 'FV_AR_FUND_NO_SETUP',
907 p_entity_id => event_rec.entity_id,
908 p_event_id => event_rec.event_id,
909 p_ledger_id => l_ledger_info.ledger_id
910 );
911
912 -- Update process status code to E
913 IF (event_rec.event_id is not null) THEN
914
915 BEGIN
916 trace(C_STATE_LEVEL, l_procedure_name, ' Before updating xla_events_gt');
917 update xla_events_gt
918 set PROCESS_STATUS_CODE='E'
919 where event_id=event_rec.event_id
920 and application_id=p_application_id;
921 EXCEPTION
922 WHEN OTHERS THEN
923 trace(C_STATE_LEVEL, l_procedure_name, ' EVENT ID DOES NOT EXIST: event_id-> ' || event_rec.event_id);
924 END;
925 END IF;
926 END IF;
927 END LOOP;
928 ELSIF (event_rec.event_type_code IN ('MISC_RECP_CREATE',
929 'MISC_RECP_UPDATE',
930 'MISC_RECP_REVERSE')) THEN
931 FOR misc_rec IN cur_misc_rct_extract_details (event_rec.event_id) LOOP
932 IF (l_error_code = C_SUCCESS) THEN
933 trace(C_STATE_LEVEL, l_procedure_name, 'Calling get_segment_values');
934 trace(C_STATE_LEVEL, l_procedure_name, 'p_ledger_id='||l_ledger_info.ledger_id);
935 trace(C_STATE_LEVEL, l_procedure_name, 'p_ccid='||misc_rec.dist_code_combination_id);
936 fv_sla_utl_processing_pkg.get_segment_values
937 (
938 p_ledger_id => l_ledger_info.ledger_id,
939 p_ccid => misc_rec.dist_code_combination_id,
940 p_fund_value => l_fund_value,
941 p_account_value => l_account_value,
942 p_bfy_value => l_bfy_value,
943 p_error_code => l_error_code,
944 p_error_desc => l_error_desc
945 );
946 END IF;
947
948 IF (l_error_code = C_SUCCESS) THEN
949 trace(C_STATE_LEVEL, l_procedure_name, 'p_fund_value='||l_fund_value);
950 trace(C_STATE_LEVEL, l_procedure_name, 'p_account_value='||l_account_value);
951 trace(C_STATE_LEVEL, l_procedure_name, 'p_bfy_value='||l_bfy_value);
952
953 trace(C_STATE_LEVEL, l_procedure_name, 'Calling get_fund_details');
954 trace(C_STATE_LEVEL, l_procedure_name, 'p_application_id='||p_application_id);
955 trace(C_STATE_LEVEL, l_procedure_name, 'p_ledger_id='||l_ledger_info.ledger_id);
956 trace(C_STATE_LEVEL, l_procedure_name, 'p_fund_value='||l_fund_value);
957 trace(C_STATE_LEVEL, l_procedure_name, 'p_gl_date='||event_rec.event_date);
958 fv_sla_utl_processing_pkg.get_fund_details
959 (
960 p_application_id => p_application_id,
961 p_ledger_id => l_ledger_info.ledger_id,
962 p_fund_value => l_fund_value,
963 p_gl_date => event_rec.event_date,
964 p_appor_category => l_fund_category,
965 p_direct_or_reimb => l_direct_or_reimb,
966 p_fund_status => l_fund_status,
967 p_fund_time_frame => l_fund_time_frame,
968 p_treasury_symbol_id => l_treasury_symbol_id,
969 p_treasury_symbol => l_treasury_symbol,
970 p_no_pya_acct_flag => l_no_pya_acct_flag,
971 p_fund_type => l_fund_type,
972 p_error_code => l_error_code,
973 p_error_desc => l_error_desc
974 );
975 END IF;
976 IF (l_error_code = C_SUCCESS) THEN
977 l_pya := 'N';
978 IF (NVL(l_no_pya_acct_flag, 'N') = 'N') THEN
979 fv_sla_utl_processing_pkg.get_prior_year_status
980 (
981 p_application_id => p_application_id,
982 p_ledger_id => l_ledger_info.ledger_id,
983 p_bfy_value => l_bfy_value,
984 p_gl_date => event_rec.event_date,
985 p_pya => l_pya,
986 p_pya_type => l_pya_type,
987 p_error_code => l_error_code,
988 p_error_desc => l_error_desc
989 );
990 END IF;
991 END IF;
992
993 IF (l_error_code = C_SUCCESS) THEN
994 l_index := l_index + 1;
995 l_fv_extract_detail(l_index).fed_non_fed_ind := l_fed_non_fed_ind;
996 l_fv_extract_detail(l_index).fund_value := l_fund_value;
997 l_fv_extract_detail(l_index).fund_type := l_fund_type;
998 l_fv_extract_detail(l_index).event_id := event_rec.event_id;
999 l_fv_extract_detail(l_index).line_number := misc_rec.line_number;
1000 l_fv_extract_detail(l_index).application_id := p_application_id;
1001 l_fv_extract_detail(l_index).prior_year_flag := l_pya;
1002 l_fv_extract_detail(l_index).fund_category := l_fund_category;
1003 l_fv_extract_detail(l_index).fund_expired_status := l_fund_status;
1004 l_fv_extract_detail(l_index).fund_time_frame := l_fund_time_frame;
1005 l_fv_extract_detail(l_index).ar_transaction_category := l_rec_attribute_cat;
1006 l_fv_extract_detail(l_index).direct_or_reimb := l_direct_or_reimb;
1007 ELSE
1008 -- Added for bug 14189341
1009 trace(C_STATE_LEVEL, l_procedure_name, ' Inserting accounting errors into xla_accounting_errors table for event :'||event_rec.event_id);
1010 fv_sla_utl_processing_pkg.INSERT_FV_XLA_ACC_ERRORS
1011 (
1012 p_appli_s_name=> 'FV',
1013 p_msg_name => 'FV_AR_FUND_NO_SETUP',
1014 p_entity_id => event_rec.entity_id,
1015 p_event_id => event_rec.event_id,
1016 p_ledger_id => l_ledger_info.ledger_id
1017 );
1018
1019 -- Update process status code to E
1020 IF (event_rec.event_id is not null) THEN
1021
1022 BEGIN
1023 trace(C_STATE_LEVEL, l_procedure_name, ' Before updating xla_events_gt');
1024 update xla_events_gt
1025 set PROCESS_STATUS_CODE='E'
1026 where event_id=event_rec.event_id
1027 and application_id=p_application_id;
1028 EXCEPTION
1029 WHEN OTHERS THEN
1030 trace(C_STATE_LEVEL, l_procedure_name, ' EVENT ID DOES NOT EXIST: event_id-> ' || event_rec.event_id);
1031 END;
1032 END IF;
1033 END IF;
1034 END LOOP;
1035 END IF;
1036 END IF;
1037
1038 END LOOP;
1039
1040 IF (l_error_code = C_SUCCESS) THEN
1041 FORALL l_index IN l_fv_extract_detail .first..l_fv_extract_detail.last
1042 INSERT INTO fv_extract_detail_gt VALUES l_fv_extract_detail(l_index);
1043 trace(C_STATE_LEVEL, l_procedure_name, 'Trxn Cat: '||l_rec_attribute_cat);
1044 trace(C_STATE_LEVEL, l_procedure_name, 'Dir or Reimb: '||l_direct_or_reimb);
1045 END IF;
1046 trace(C_STATE_LEVEL, l_procedure_name, 'Calling dump_gt_table');
1047 fv_sla_utl_processing_pkg.dump_gt_table
1048 (
1049 p_fv_extract_detail => l_fv_extract_detail,
1050 p_error_code => l_gt_error_code,
1051 p_error_desc => l_error_desc
1052 );
1053
1054 /* Commented for bug 14189341
1055 IF (l_error_code <> C_SUCCESS) OR (l_gt_error_code <> C_SUCCESS) THEN
1056 APP_EXCEPTION.RAISE_EXCEPTION;
1057 END IF;
1058 */
1059 trace(C_PROC_LEVEL, l_procedure_name, 'End of procedure'||l_procedure_name);
1060
1061 EXCEPTION
1062 WHEN OTHERS THEN
1063 trace(C_STATE_LEVEL, l_procedure_name, 'ERROR encountered in Federal AR SLA Processing: ' || SQLERRM);
1064 FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
1065 FND_MESSAGE.SET_TOKEN('MESSAGE' , 'Procedure :fv_sla_processing_pkg.ar_extract'|| CRLF||
1066 'Error :'||SQLERRM);
1067 FND_MSG_PUB.ADD;
1068 APP_EXCEPTION.RAISE_EXCEPTION;
1069 END ar_extract;
1070
1071 PROCEDURE extract
1072 (
1073 p_application_id IN NUMBER,
1074 p_accounting_mode IN VARCHAR2
1075 )
1076 IS
1077
1078 l_debug_info VARCHAR2(240);
1079 l_procedure_name VARCHAR2(100) :='.EXTRACT';
1080
1081 BEGIN
1082
1083 l_procedure_name := g_path_name || l_procedure_name;
1084 -------------------------------------------------------------------------
1085 l_debug_info := 'Begin of procedure '||l_procedure_name;
1086 trace(C_STATE_LEVEL, l_procedure_name, l_debug_info);
1087 -------------------------------------------------------------------------
1088 -------------------------------------------------------------------------
1089
1090
1091 IF (p_application_id = 222) THEN
1092 ar_extract(p_application_id, p_accounting_mode);
1093 ELSE
1094 RETURN;
1095 END IF;
1096
1097 -------------------------------------------------------------------------
1098 l_debug_info := 'End of procedure '||l_procedure_name;
1099 trace(C_PROC_LEVEL, l_procedure_name, l_debug_info);
1100 -------------------------------------------------------------------------
1101
1102 EXCEPTION
1103 WHEN OTHERS THEN
1104 l_debug_info := 'Error in Federal SLA Processing ' || SQLERRM;
1105 trace(C_STATE_LEVEL, l_procedure_name, l_debug_info);
1106 FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
1107 FND_MESSAGE.SET_TOKEN('MESSAGE' ,
1108 'Procedure :fv_sla_processing_pkg.extract'|| CRLF||
1109 'Error :'||SQLERRM);
1110 FND_MSG_PUB.ADD;
1111 APP_EXCEPTION.RAISE_EXCEPTION;
1112
1113 END extract;
1114
1115 PROCEDURE preaccounting
1116 (
1117 p_application_id IN NUMBER,
1118 p_ledger_id IN INTEGER,
1119 p_process_category IN VARCHAR2,
1120 p_end_date IN DATE,
1121 p_accounting_mode IN VARCHAR2,
1122 p_valuation_method IN VARCHAR2,
1123 p_security_id_int_1 IN INTEGER,
1124 p_security_id_int_2 IN INTEGER,
1125 p_security_id_int_3 IN INTEGER,
1126 p_security_id_char_1 IN VARCHAR2,
1127 p_security_id_char_2 IN VARCHAR2,
1128 p_security_id_char_3 IN VARCHAR2,
1129 p_report_request_id IN INTEGER
1130 ) IS
1131 BEGIN
1132 NULL;
1133 END;
1134
1135 PROCEDURE postprocessing
1136 (
1137 p_application_id IN NUMBER,
1138 p_accounting_mode IN VARCHAR2
1139 )
1140 IS
1141 BEGIN
1142 NULL;
1143 END;
1144
1145
1146 PROCEDURE postaccounting
1147 (
1148 p_application_id IN NUMBER,
1149 p_ledger_id IN INTEGER,
1150 p_process_category IN VARCHAR2,
1151 p_end_date IN DATE,
1152 p_accounting_mode IN VARCHAR2,
1153 p_valuation_method IN VARCHAR2,
1154 p_security_id_int_1 IN INTEGER,
1155 p_security_id_int_2 IN INTEGER,
1156 p_security_id_int_3 IN INTEGER,
1157 p_security_id_char_1 IN VARCHAR2,
1158 p_security_id_char_2 IN VARCHAR2,
1159 p_security_id_char_3 IN VARCHAR2,
1160 p_report_request_id IN INTEGER
1161 )
1162 IS
1163 BEGIN
1164 NULL;
1165 END;
1166 BEGIN
1167 init;
1168 END fv_sla_ar_processing_pkg;
1169