4 BEGIN
1 PACKAGE BODY IGI_IGIIARPS_XMLP_PKG AS
2 /* $Header: IGIIARPSB.pls 120.0.12010000.2 2008/08/14 13:24:26 sharoy ship $ */
3 FUNCTION CF_PERIODNAMEFORMULA RETURN NUMBER IS
5 SELECT
6 PERIOD_NAME
7 INTO CP_PERIOD_NAME
8 FROM
9 FA_DEPRN_PERIODS
10 WHERE PERIOD_COUNTER = P_PERIOD_COUNTER
11 AND BOOK_TYPE_CODE = P_BOOK_TYPE_CODE;
12 RETURN (1);
13 END CF_PERIODNAMEFORMULA;
14
15 FUNCTION BEFOREREPORT RETURN BOOLEAN IS
16 BEGIN
17 P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
18 /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
19 INSERT_INFO_VAR := do_insertformula();
20
21 select SUBSTR(argument1,INSTR(argument1,'=',1)+1,LENGTH(argument1)),
25 into P_BOOK_TYPE_CODE,P_REVALUATION_ID,P_PERIOD_COUNTER
22 SUBSTR(argument2,INSTR(argument2,'=',1)+1,LENGTH(argument2)),
23 SUBSTR(argument3,INSTR(argument3,'=',1)+1,LENGTH(argument3))
24
26 from FND_CONCURRENT_REQUESTS
27 where request_id=P_CONC_REQUEST_ID;
28
29
30 SELECT accounting_flex_structure
31 INTO accounting_Flex_structure
32 FROM fa_book_controls
33 WHERE book_Type_code = p_book_type_code;
34
35 RETURN (TRUE);
36 END BEFOREREPORT;
37
38 FUNCTION MINOR_CATEGORYFORMULA RETURN VARCHAR2 IS
39 MINOR_CAT VARCHAR2(15);
40 BEGIN
41 RETURN ('abcd');
42 END MINOR_CATEGORYFORMULA;
43
44 FUNCTION AFTERREPORT RETURN BOOLEAN IS
45 BEGIN
46 ROLLBACK;
47 /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
48 RETURN (TRUE);
49 END AFTERREPORT;
50
51 FUNCTION CF_CALC_COMPANY_NAMEFORMULA(COMPANY_NAME IN VARCHAR2) RETURN NUMBER IS
52 BEGIN
53 P_BOOK := P_BOOK_TYPE_CODE;
54 RP_COMPANY_NAME := COMPANY_NAME;
55 RETURN 1;
56 END CF_CALC_COMPANY_NAMEFORMULA;
57
58 FUNCTION CF_CURR_CODEFORMULA RETURN NUMBER IS
59 L_CURR_CODE VARCHAR2(20);
60 BEGIN
61 SELECT
62 A.CURRENCY_CODE
63 INTO L_CURR_CODE
64 FROM
65 GL_SETS_OF_BOOKS A,
66 FA_BOOK_CONTROLS B
67 WHERE A.SET_OF_BOOKS_ID = B.SET_OF_BOOKS_ID
68 AND B.BOOK_TYPE_CODE = P_BOOK_TYPE_CODE;
69 CP_CURR_CODE := L_CURR_CODE;
70 RETURN (1);
71 EXCEPTION
72 WHEN OTHERS THEN
73 /*SRW.MESSAGE(100
74 ,'Failed. Currency code not defined')*/NULL;
75 /*SRW.MESSAGE(100
76 ,' No is ' || SQLERRM)*/NULL;
77 /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
78 RETURN (1);
79 END CF_CURR_CODEFORMULA;
80
81 FUNCTION CF_REPORT_NAMEFORMULA RETURN NUMBER IS
82 L_REPORT_NAME VARCHAR2(240);
83 BEGIN
84 SELECT
85 CP.USER_CONCURRENT_PROGRAM_NAME
86 INTO L_REPORT_NAME
87 FROM
88 FND_CONCURRENT_PROGRAMS_TL CP,
89 FND_CONCURRENT_REQUESTS CR
90 WHERE CR.REQUEST_ID = P_CONC_REQUEST_ID
91 AND CP.LANGUAGE = USERENV('LANG')
92 AND CP.APPLICATION_ID = CR.PROGRAM_APPLICATION_ID
93 AND CP.CONCURRENT_PROGRAM_ID = CR.CONCURRENT_PROGRAM_ID;
94 l_report_name:= substr(l_report_name,1,instr(l_report_name,' (XML)'));
95 RP_REPORT_NAME := L_REPORT_NAME;
96 RETURN (1);
97 EXCEPTION
98 WHEN OTHERS THEN
99 RP_REPORT_NAME := 'Inflation Accounting Asset Revaluation Preview Summary Report:';
100 /*SRW.MESSAGE(98
101 ,'report name is ' || RP_REPORT_NAME)*/NULL;
102 RETURN (1);
103 END CF_REPORT_NAMEFORMULA;
104
105 FUNCTION CF_PERIOD_NAMEFORMULA RETURN NUMBER IS
106 BEGIN
107 SELECT
108 PERIOD_NAME
109 INTO CP_PERIOD_NAME
110 FROM
111 FA_DEPRN_PERIODS
112 WHERE PERIOD_COUNTER = P_PERIOD_COUNTER
113 AND BOOK_TYPE_CODE = P_BOOK_TYPE_CODE;
114 SELECT
115 CT.FISCAL_YEAR_NAME FISCAL_YEAR_NAME
116 INTO P_FISCAL_YEAR
117 FROM
118 FA_BOOK_CONTROLS BC,
119 FA_CALENDAR_TYPES CT
120 WHERE BC.BOOK_TYPE_CODE = P_BOOK_TYPE_CODE
121 AND BC.DEPRN_CALENDAR = CT.CALENDAR_TYPE;
122 RETURN (1);
123 END CF_PERIOD_NAMEFORMULA;
124
125 FUNCTION CF_REP_TOLERANCEFORMULA(S_REP_B_REVAL_COST IN NUMBER
126 ,S_REP_A_REVAL_COST IN NUMBER) RETURN VARCHAR2 IS
127 TOL_VAL VARCHAR2(4);
128 GAP NUMBER;
129 BEGIN
130 IF CF_TOLERANCE_LEVEL IS NOT NULL AND S_REP_B_REVAL_COST <> 0 THEN
131 GAP := ABS(((NVL(S_REP_A_REVAL_COST
132 ,0) - NVL(S_REP_B_REVAL_COST
133 ,0)) / NVL(S_REP_B_REVAL_COST
134 ,0)) * 100);
135 IF GAP >= CF_TOLERANCE_LEVEL THEN
136 TOL_VAL := '***';
137 ELSE
138 TOL_VAL := ' ';
139 END IF;
140 END IF;
141 RETURN (TOL_VAL);
142 END CF_REP_TOLERANCEFORMULA;
143
144 FUNCTION CALC_TOLERANCE_LEVELFORMULA RETURN NUMBER IS
145 BEGIN
146 FND_PROFILE.GET('IGI_IAC_REVAL_TOLERANCE',CF_TOLERANCE_LEVEL);
147 RETURN 1;
148 END CALC_TOLERANCE_LEVELFORMULA;
149
150 FUNCTION CF_CO_TOLERANCEFORMULA(S_CO_B_REVAL_COST IN NUMBER
151 ,S_CO_A_REVAL_COST IN NUMBER) RETURN CHAR IS
152 TOL_VAL VARCHAR2(4);
153 GAP NUMBER;
154 BEGIN
155 IF CF_TOLERANCE_LEVEL IS NOT NULL AND S_CO_B_REVAL_COST <> 0 THEN
156 GAP := ABS(((NVL(S_CO_A_REVAL_COST
157 ,0) - NVL(S_CO_B_REVAL_COST
158 ,0)) / NVL(S_CO_B_REVAL_COST
159 ,0)) * 100);
160 IF GAP >= CF_TOLERANCE_LEVEL THEN
161 TOL_VAL := '***';
162 ELSE
163 TOL_VAL := ' ';
164 END IF;
165 END IF;
166 RETURN (TOL_VAL);
167 END CF_CO_TOLERANCEFORMULA;
168
169 FUNCTION CF_MC_TOLERANCEFORMULA(S_MC_B_REVAL_COST IN NUMBER
170 ,S_MC_A_REVAL_COST IN NUMBER) RETURN CHAR IS
171 TOL_VAL VARCHAR2(4);
172 GAP NUMBER;
173 BEGIN
174 IF CF_TOLERANCE_LEVEL IS NOT NULL AND S_MC_B_REVAL_COST <> 0 THEN
175 GAP := ABS(((NVL(S_MC_A_REVAL_COST
176 ,0) - NVL(S_MC_B_REVAL_COST
177 ,0)) / NVL(S_MC_B_REVAL_COST
178 ,0)) * 100);
179 IF GAP >= CF_TOLERANCE_LEVEL THEN
183 END IF;
180 TOL_VAL := '***';
181 ELSE
182 TOL_VAL := ' ';
184 END IF;
185 RETURN (TOL_VAL);
186 END CF_MC_TOLERANCEFORMULA;
187
188 FUNCTION CF_CAT_TOLERANCEFORMULA(S_CAT_B_REVAL_COST IN NUMBER
189 ,S_CAT_A_REVAL_COST IN NUMBER) RETURN CHAR IS
190 TOL_VAL VARCHAR2(4);
191 GAP NUMBER;
192 BEGIN
193 IF CF_TOLERANCE_LEVEL IS NOT NULL AND S_CAT_B_REVAL_COST <> 0 THEN
194 GAP := ABS(((NVL(S_CAT_A_REVAL_COST
195 ,0) - NVL(S_CAT_B_REVAL_COST
196 ,0)) / NVL(S_CAT_B_REVAL_COST
197 ,0)) * 100);
198 IF GAP >= CF_TOLERANCE_LEVEL THEN
199 TOL_VAL := '***';
200 ELSE
201 TOL_VAL := ' ';
202 END IF;
203 END IF;
204 RETURN (TOL_VAL);
205 END CF_CAT_TOLERANCEFORMULA;
206
207 FUNCTION CF_CC_TOLERANCEFORMULA(S_CC_B_REVAL_COST IN NUMBER
208 ,S_CC_A_REVAL_COST IN NUMBER) RETURN CHAR IS
209 TOL_VAL VARCHAR2(4);
210 GAP NUMBER;
211 BEGIN
212 CF_B_REVAL_COST := S_CC_B_REVAL_COST;
213 CF_A_REVAL_COST := S_CC_A_REVAL_COST;
214 IF CF_TOLERANCE_LEVEL IS NOT NULL AND CF_B_REVAL_COST <> 0 THEN
215 GAP := ABS(((NVL(CF_A_REVAL_COST
216 ,0) - NVL(CF_B_REVAL_COST
217 ,0)) / NVL(CF_B_REVAL_COST
218 ,0)) * 100);
219 IF GAP >= CF_TOLERANCE_LEVEL THEN
220 TOL_VAL := '***';
221 ELSE
222 TOL_VAL := ' ';
223 END IF;
224 END IF;
225 RETURN (TOL_VAL);
226 END CF_CC_TOLERANCEFORMULA;
227
228 FUNCTION CF_CALC_PLACEHOLDERSFORMULA RETURN NUMBER IS
229 TOL_VAL VARCHAR2(4);
230 GAP NUMBER;
231 BEGIN
232 RETURN 1;
233 END CF_CALC_PLACEHOLDERSFORMULA;
234
235 FUNCTION CF_MAJOR_CATFORMULA(MAJOR_CATEGORY IN VARCHAR2) RETURN NUMBER IS
236 BEGIN
237 CP_MAJOR_CATEGORY := MAJOR_CATEGORY;
238 RETURN 1;
239 END CF_MAJOR_CATFORMULA;
240
241 PROCEDURE INSERT_INFO IS
242 L_SOURCE_TYPE_CODE VARCHAR2(50);
243 L_AMOUNT1 VARCHAR2(200);
244 L_AMOUNT2 VARCHAR2(200);
245 L_AMOUNT3 VARCHAR2(200);
246 L_SQL VARCHAR2(15000);
247 IDX NUMBER;
248 L_ASSET_ID NUMBER;
249 L_DIST_CCID NUMBER;
250 L_SOURCE VARCHAR2(30);
251 L_AMOUNT NUMBER;
252 L_DATA_SOURCE VARCHAR2(30);
253 L_DISPLAY_ORDER NUMBER;
254 BEGIN
255 -- delete from igi_iac_balances_report;
256
257 FOR idx IN 1..5 LOOP
258 IF (idx = 1) THEN
259 l_source_type_code := 'COST';
260 l_amount1 := 'nvl(dd.cost,0)';
261 l_amount2 := 'nvl(idb.adjustment_cost,0)+nvl(dd.cost,0)';
262 l_amount3 := 'nvl(idb.adjustment_cost,0)+nvl(dd.cost,0)';
263 ELSIF (idx = 2) THEN
264 l_source_type_code := 'REVAL_RSV';
265 l_amount1 := 0;
266 l_amount2 := 'nvl(idb.reval_reserve_net,0)';
267 l_amount3 := 'nvl(idb.reval_reserve_net,0)';
268 ELSIF (idx = 3) THEN
269 l_source_type_code := 'OP_EXPENSE';
270 l_amount1 := 0;
271 l_amount2 := '(-1)*nvl(idb.operating_acct_net,0)';
272 l_amount3 := '(-1)*nvl(idb.operating_acct_net,0)';
273 ELSIF (idx = 4) THEN
274 l_source_type_code := 'DEP_RSV';
275 l_amount1 := 'dd.deprn_reserve';
276 l_Amount2 := 'nvl(idb.deprn_reserve+deprn_reserve_backlog,0)+ nvl(dd.deprn_reserve,0)';
277 l_Amount3 := 'nvl(idb.deprn_reserve+deprn_reserve_backlog,0)+ nvl(dd.deprn_reserve,0)';
278 ELSE
279 l_source_type_code := 'BACKLOG';
280 l_amount1 := 0;
281 l_amount2 := 'nvl(idb.deprn_reserve_backlog,0)';
282 l_amount3 := 'nvl(idb.deprn_reserve_backlog,0)';
283 END IF;
284
285 -- define the insert statement
286
287 l_sql := 'INSERT INTO igi_iac_balances_report(
288 asset_id,
289 distribution_ccid,
290 source_type_code,
291 amount,
292 data_source,
293 display_order )
294 SELECT ad.asset_id
295 ,dh.code_combination_id distribution_ccid
296 ,'''||l_source_type_code||''' source_type_code
297 ,'||l_amount1||' amount
298 ,''Before'' data_source
299 ,''1'' display_order
300 FROM fa_deprn_detail dd,
301 fa_books bk,
302 gl_code_combinations cc,
303 fa_additions ad,
304 fa_distribution_history dh,
305 fa_categories fc,
306 igi_iac_reval_asset_rules irar,
307 igi_iac_reval_categories irc
308 WHERE irc.revaluation_id = '||p_revaluation_id||
309 ' AND irar.asset_id = bk.asset_id
310 AND irar.revaluation_id = irc.revaluation_id
311 AND irar.category_id = irc.category_id
312 AND irc.select_category = ''Y''
313 AND irar.selected_for_reval_flag = ''Y''
314 AND irar.book_type_code = '''||p_book_type_code||'''
315 AND bk.book_type_code = irar.book_type_code
316 AND bk.asset_id = ad.asset_id
317 AND dd.period_counter = (SELECT MAX(period_counter)
318 FROM fa_deprn_summary ds
319 WHERE ds.asset_id =bk.asset_id
320 AND ds.book_type_code= '''||p_book_type_code||'''
321 AND ds.period_counter<= '||p_period_counter||')
322 AND EXISTS (SELECT MAX(ith.adjustment_id)
323 FROM igi_iac_transaction_headers ith
324 WHERE ith.asset_id = bk.asset_id
328 AND dh.book_type_code = bk.book_type_code
325 AND ith.book_type_code = '''||p_book_type_code||'''
326 AND ith.adjustment_status NOT IN (''PREVIEW'',''OBSOLETE''))
327 AND bk.date_ineffective IS NULL
329 AND dd.asset_id= bk.asset_id
330 AND dh.asset_id = dd.asset_id
331 AND dh.distribution_id = dd.distribution_id
332 AND dh.transaction_header_id_out IS NULL
333 AND dh.code_combination_id = cc.code_combination_id
334 AND fc.category_id=ad.asset_category_id
335 AND bk.asset_id NOT IN
336 (SELECT asset_id
337 FROM igi_iac_asset_balances
338 WHERE book_type_code = bk.book_type_code
339 AND asset_id = bk.asset_id)
340 AND bk.asset_id NOT IN (SELECT asset_id
341 FROM igi_iac_exceptions
342 WHERE revaluation_id = irc.revaluation_id)
343 UNION
344 SELECT ad.asset_id
345 ,dh.code_combination_id distribution_ccid
346 ,'''||l_source_type_code||''' source_type_code
347 ,'||l_amount2||' amount
348 ,''Before'' data_source
349 ,''1'' display_order
350 FROM igi_iac_det_balances idb,
351 fa_deprn_detail dd,
352 fa_books bk,
353 gl_code_combinations cc,
354 fa_additions ad,
355 fa_categories fc,
356 fa_distribution_history dh ,
357 igi_iac_reval_asset_rules irar,
358 igi_iac_reval_categories irc
359 WHERE irc.revaluation_id = '||p_revaluation_id||'
360 AND irar.asset_id = bk.asset_id
361 AND irar.selected_for_reval_flag = ''Y''
362 AND irar.revaluation_id = irc.revaluation_id
363 AND irar.category_id = irc.category_id
364 AND irc.select_category = ''Y''
365 AND irar.book_type_code = '''||p_book_type_code||'''
366 AND bk.book_type_code = irar.book_type_code
367 AND bk.asset_id = ad.asset_id
368 AND dd.asset_id=bk.asset_id
369 AND dd.period_counter =(SELECT max(period_counter)
370 FROM fa_deprn_summary ds
371 WHERE ds.asset_id =bk.asset_id
372 AND ds.book_type_code='''||p_book_type_code||'''
373 AND ds.period_counter<='||p_period_counter||')
374 AND idb.adjustment_id =(SELECT max(ith.adjustment_id)
375 FROM igi_iac_transaction_headers ith
376 WHERE ith.asset_id = bk.asset_id
377 AND ith.book_type_code ='''||p_book_type_code||'''
378 AND ith.adjustment_status NOT IN (''PREVIEW'', ''OBSOLETE''))
379 AND bk.date_ineffective IS NULL
380 AND dh.book_type_code = bk.book_type_code
381 AND dh.asset_id = dd.asset_id
382 AND dh.distribution_id = dd.distribution_id
383 AND dh.transaction_header_id_out is NULL
384 AND dh.distribution_id = idb.distribution_id
385 AND dh.asset_id = idb.asset_id
386 AND dh.book_type_code = idb.book_type_code
387 AND dh.code_combination_id = cc.code_combination_id
388 AND fc.category_id= ad.asset_category_id
389 AND bk.asset_id NOT IN (SELECT asset_id
390 FROM igi_iac_exceptions
391 WHERE revaluation_id = irc.revaluation_id)
392 UNION
393 SELECT ad.asset_id
394 ,dh.code_combination_id distribution_ccid
395 ,'''||l_source_type_code||''' source_type_code
396 ,'||l_amount3||' amount
397 ,''After'' data_source
398 ,''2'' display_order
399 FROM igi_iac_det_balances idb,
400 fa_deprn_detail dd,
401 fa_books bk,
402 gl_code_combinations cc,
403 fa_additions ad,
404 fa_categories fc,
405 fa_distribution_history dh,
406 igi_iac_reval_asset_rules irar,
407 igi_iac_reval_categories irc
408 WHERE irc.revaluation_id = '||p_revaluation_id||'
409 and irar.asset_id = bk.asset_id
410 and irar.selected_for_reval_flag = ''Y''
411 AND irar.revaluation_id = irc.revaluation_id
412 AND irar.category_id = irc.category_id
413 AND irc.select_category = ''Y''
414 and irar.book_type_code = '''||p_book_type_code||'''
415 and bk.book_type_code= irar.book_type_code
416 and bk.asset_id = ad.asset_id
417 and idb.adjustment_id=(select max(ith.adjustment_id)
418 from igi_iac_transaction_headers ith
419 where ith.asset_id = bk.asset_id
420 and ith.book_type_code ='''||p_book_type_code||'''
421 and ith.period_counter <='||p_period_counter||'
422 and ith.adjustment_status=''PREVIEW'')
423 and dd.period_counter=(select max(period_counter)
424 from fa_deprn_summary ds
425 where ds.asset_id =bk.asset_id
426 and ds.book_type_code='''||p_book_type_code||'''
427 and ds.period_counter<='||p_period_counter||')
428 and bk.date_ineffective is NULL
429 and dh.book_type_code = bk.book_type_code
430 and dh.asset_id = dd.asset_id
431 and dd.asset_id=bk.asset_id
432 and dh.distribution_id = dd.distribution_id
433 and dh.transaction_header_id_out is NULL
434 and dh.distribution_id = idb.distribution_id
435 and dh.code_combination_id = cc.code_combination_id
436 and fc.category_id=ad.asset_category_id
437 AND bk.asset_id NOT IN (SELECT asset_id
438 FROM igi_iac_exceptions
439 WHERE revaluation_id = irc.revaluation_id)
440 ';
441
442 -- srw.message(999,l_sql);
443
444 execute immediate l_sql;
445 END LOOP;
446
447 END INSERT_INFO;
448
452 RETURN (1);
449 FUNCTION DO_INSERTFORMULA RETURN NUMBER IS
450 BEGIN
451 INSERT_INFO;
453 EXCEPTION
454 WHEN OTHERS THEN
455 RETURN (0);
456 END DO_INSERTFORMULA;
457
458 FUNCTION B_REVALUED_COSTFORMULA(BALANCE_TYPE IN VARCHAR2
459 ,REVALUED_COST IN NUMBER) RETURN NUMBER IS
460 L_NUM NUMBER;
461 BEGIN
462 IF (BALANCE_TYPE = 'Before') THEN
463 L_NUM := REVALUED_COST;
464 END IF;
465 RETURN (L_NUM);
466 EXCEPTION
467 WHEN OTHERS THEN
468 RETURN (0);
469 END B_REVALUED_COSTFORMULA;
470
471 FUNCTION A_REVALUED_COSTFORMULA(BALANCE_TYPE IN VARCHAR2
472 ,REVALUED_COST IN NUMBER) RETURN NUMBER IS
473 L_NUM NUMBER;
474 BEGIN
475 IF (BALANCE_TYPE = 'After') THEN
476 L_NUM := REVALUED_COST;
477 END IF;
478 RETURN (L_NUM);
479 EXCEPTION
480 WHEN OTHERS THEN
481 RETURN (0);
482 END A_REVALUED_COSTFORMULA;
483
484 FUNCTION B_REVAL_RESERVEFORMULA(BALANCE_TYPE IN VARCHAR2
485 ,REVALUATION_RESERVE IN NUMBER) RETURN NUMBER IS
486 L_NUM NUMBER;
487 BEGIN
488 IF (BALANCE_TYPE = 'Before') THEN
489 L_NUM := REVALUATION_RESERVE;
490 END IF;
491 RETURN (L_NUM);
492 EXCEPTION
493 WHEN OTHERS THEN
494 RETURN (0);
495 END B_REVAL_RESERVEFORMULA;
496
497 FUNCTION A_REVAL_RESERVEFORMULA(BALANCE_TYPE IN VARCHAR2
498 ,REVALUATION_RESERVE IN NUMBER) RETURN NUMBER IS
499 L_NUM NUMBER;
500 BEGIN
501 IF (BALANCE_TYPE = 'After') THEN
502 L_NUM := REVALUATION_RESERVE;
503 END IF;
504 RETURN (L_NUM);
505 EXCEPTION
506 WHEN OTHERS THEN
507 RETURN (0);
508 END A_REVAL_RESERVEFORMULA;
509
510 FUNCTION B_OPERATING_ACCTFORMULA(BALANCE_TYPE IN VARCHAR2
511 ,OPERATING_ACCT IN NUMBER) RETURN NUMBER IS
512 L_NUM NUMBER;
513 BEGIN
514 IF (BALANCE_TYPE = 'Before') THEN
515 L_NUM := OPERATING_ACCT;
516 END IF;
517 RETURN (L_NUM);
518 EXCEPTION
519 WHEN OTHERS THEN
520 RETURN (0);
521 END B_OPERATING_ACCTFORMULA;
522
523 FUNCTION A_OPERATING_ACCTFORMULA(BALANCE_TYPE IN VARCHAR2
524 ,OPERATING_ACCT IN NUMBER) RETURN NUMBER IS
525 L_NUM NUMBER;
526 BEGIN
527 IF (BALANCE_TYPE = 'After') THEN
528 L_NUM := OPERATING_ACCT;
529 END IF;
530 RETURN (L_NUM);
531 EXCEPTION
532 WHEN OTHERS THEN
533 RETURN (0);
534 END A_OPERATING_ACCTFORMULA;
535
536 FUNCTION B_ACC_DEPRNFORMULA(BALANCE_TYPE IN VARCHAR2
537 ,ACCUMULATED_DEPRECIATION IN NUMBER) RETURN NUMBER IS
538 L_NUM NUMBER;
539 BEGIN
540 IF (BALANCE_TYPE = 'Before') THEN
541 L_NUM := ACCUMULATED_DEPRECIATION;
542 END IF;
543 RETURN (L_NUM);
544 EXCEPTION
545 WHEN OTHERS THEN
546 RETURN (0);
547 END B_ACC_DEPRNFORMULA;
548
549 FUNCTION A_ACC_DEPRNFORMULA(BALANCE_TYPE IN VARCHAR2
550 ,ACCUMULATED_DEPRECIATION IN NUMBER) RETURN NUMBER IS
551 L_NUM NUMBER;
552 BEGIN
553 IF (BALANCE_TYPE = 'After') THEN
554 L_NUM := ACCUMULATED_DEPRECIATION;
555 END IF;
556 RETURN (L_NUM);
557 EXCEPTION
558 WHEN OTHERS THEN
559 RETURN (0);
560 END A_ACC_DEPRNFORMULA;
561
562 FUNCTION B_ACC_BLOGFORMULA(BALANCE_TYPE IN VARCHAR2
563 ,ACCUMULATED_BACKLOG IN NUMBER) RETURN NUMBER IS
564 L_NUM NUMBER;
565 BEGIN
566 IF (BALANCE_TYPE = 'Before') THEN
567 L_NUM := ACCUMULATED_BACKLOG;
568 END IF;
569 RETURN (L_NUM);
570 EXCEPTION
571 WHEN OTHERS THEN
572 RETURN (0);
573 END B_ACC_BLOGFORMULA;
574
575 FUNCTION A_ACC_BLOGFORMULA(BALANCE_TYPE IN VARCHAR2
576 ,ACCUMULATED_BACKLOG IN NUMBER) RETURN NUMBER IS
577 L_NUM NUMBER;
578 BEGIN
579 IF (BALANCE_TYPE = 'After') THEN
580 L_NUM := ACCUMULATED_BACKLOG;
581 END IF;
582 RETURN (L_NUM);
583 EXCEPTION
584 WHEN OTHERS THEN
585 RETURN (0);
586 END A_ACC_BLOGFORMULA;
587
588 FUNCTION ACCOUNTING_FLEX_STRUCTURE_P RETURN NUMBER IS
589 BEGIN
590 RETURN ACCOUNTING_FLEX_STRUCTURE;
591 END ACCOUNTING_FLEX_STRUCTURE_P;
592
593 FUNCTION CP_REP_FORMAT_DIFF_P RETURN NUMBER IS
594 BEGIN
595 RETURN CP_REP_FORMAT_DIFF;
596 END CP_REP_FORMAT_DIFF_P;
597
598 FUNCTION CP_CO_FORMAT_DIFF_P RETURN NUMBER IS
599 BEGIN
600 RETURN CP_CO_FORMAT_DIFF;
601 END CP_CO_FORMAT_DIFF_P;
602
603 FUNCTION CP_MC_FORMAT_DIFF_P RETURN NUMBER IS
604 BEGIN
605 RETURN CP_MC_FORMAT_DIFF;
606 END CP_MC_FORMAT_DIFF_P;
607
608 FUNCTION F_MINOR_CATEGORY_P RETURN VARCHAR2 IS
609 BEGIN
610 RETURN F_MINOR_CATEGORY;
611 END F_MINOR_CATEGORY_P;
612
613 FUNCTION CP_MAJOR_CATEGORY_P RETURN VARCHAR2 IS
614 BEGIN
615 RETURN CP_MAJOR_CATEGORY;
616 END CP_MAJOR_CATEGORY_P;
617
618 FUNCTION CP_CAT_FORMAT_DIFF_P RETURN NUMBER IS
619 BEGIN
620 RETURN CP_CAT_FORMAT_DIFF;
621 END CP_CAT_FORMAT_DIFF_P;
622
623 FUNCTION CP_COST_ACCT_P RETURN VARCHAR2 IS
624 BEGIN
625 RETURN CP_COST_ACCT;
626 END CP_COST_ACCT_P;
627
628 FUNCTION CP_REVAL_RES_ACCT_P RETURN VARCHAR2 IS
629 BEGIN
630 RETURN CP_REVAL_RES_ACCT;
631 END CP_REVAL_RES_ACCT_P;
632
633 FUNCTION CP_ACC_DEPRN_ACCT_P RETURN VARCHAR2 IS
634 BEGIN
635 RETURN CP_ACC_DEPRN_ACCT;
636 END CP_ACC_DEPRN_ACCT_P;
637
638 FUNCTION CP_OPERATING_ACCT_P RETURN VARCHAR2 IS
639 BEGIN
640 RETURN CP_OPERATING_ACCT;
641 END CP_OPERATING_ACCT_P;
642
643 FUNCTION CP_BACKLOG_ACCT_P RETURN VARCHAR2 IS
644 BEGIN
645 RETURN CP_BACKLOG_ACCT;
646 END CP_BACKLOG_ACCT_P;
647
648 FUNCTION CP_CC_FORMAT_DIFF_P RETURN NUMBER IS
649 BEGIN
650 RETURN CP_CC_FORMAT_DIFF;
651 END CP_CC_FORMAT_DIFF_P;
652
653 FUNCTION CP_A_FORMAT_DIFF_P RETURN NUMBER IS
654 BEGIN
655 RETURN CP_A_FORMAT_DIFF;
656 END CP_A_FORMAT_DIFF_P;
657
658 FUNCTION F_REVAL_RESERVE_DIFF_P RETURN NUMBER IS
659 BEGIN
660 RETURN F_REVAL_RESERVE_DIFF;
661 END F_REVAL_RESERVE_DIFF_P;
662
663 FUNCTION F_REVAL_COST_DIFF_P RETURN NUMBER IS
664 BEGIN
665 RETURN F_REVAL_COST_DIFF;
666 END F_REVAL_COST_DIFF_P;
667
668 FUNCTION F_OPERATING_ACCT_DIFF_P RETURN NUMBER IS
669 BEGIN
670 RETURN F_OPERATING_ACCT_DIFF;
671 END F_OPERATING_ACCT_DIFF_P;
672
673 FUNCTION F_ACC_DEPRN_DIFF_P RETURN NUMBER IS
674 BEGIN
675 RETURN F_ACC_DEPRN_DIFF;
676 END F_ACC_DEPRN_DIFF_P;
677
678 FUNCTION F_ACC_BACKLOG_DIFF_P RETURN NUMBER IS
679 BEGIN
680 RETURN F_ACC_BACKLOG_DIFF;
681 END F_ACC_BACKLOG_DIFF_P;
682
683 FUNCTION RP_REPORT_NAME_P RETURN VARCHAR2 IS
684 BEGIN
685 RETURN RP_REPORT_NAME;
686 END RP_REPORT_NAME_P;
687
688 FUNCTION RP_COMPANY_NAME_P RETURN VARCHAR2 IS
689 BEGIN
690 RETURN RP_COMPANY_NAME;
691 END RP_COMPANY_NAME_P;
692
693 FUNCTION CP_PERIOD_NAME_P RETURN VARCHAR2 IS
694 BEGIN
695 RETURN CP_PERIOD_NAME;
696 END CP_PERIOD_NAME_P;
697
698 FUNCTION P_FISCAL_YEAR_P RETURN VARCHAR2 IS
699 BEGIN
700 RETURN P_FISCAL_YEAR;
701 END P_FISCAL_YEAR_P;
702
703 FUNCTION P_BOOK_P RETURN VARCHAR2 IS
704 BEGIN
705 RETURN P_BOOK;
706 END P_BOOK_P;
707
708 FUNCTION CP_CURR_CODE_P RETURN VARCHAR2 IS
709 BEGIN
710 RETURN CP_CURR_CODE;
711 END CP_CURR_CODE_P;
712
713 FUNCTION CP_ACCOUNT_SEGMENT_P RETURN VARCHAR2 IS
714 BEGIN
715 RETURN CP_ACCOUNT_SEGMENT;
716 END CP_ACCOUNT_SEGMENT_P;
717
718
719 function CF_calc_acct_valueFormula( asset_category_id in number,cp_account_segment in VARCHAR2) return Number is
720
721 oper_exp number(15);
722 bk_rsv number(15);
723 asset_cost number(15);
724 deprn_rsv number(15);
725 reval_rsv number(15);
726 sql_stmt varchar2(500);
727 begin
728
729
730 Select asset_cost_acct,deprn_reserve_acct into
731 cp_cost_acct,cp_acc_deprn_acct
732 from fa_category_books
733 where book_type_code = p_book_type_code and
734 category_id = asset_category_id;
735
736 cp_cost_acct := '('||cp_cost_acct||')';
737
738
739
740 select operating_expense_ccid,backlog_deprn_rsv_ccid,reval_rsv_ccid
741 into oper_exp, bk_rsv,reval_rsv
742 from igi_iac_category_books where
743 book_type_code = p_book_type_code and
744 category_id = asset_category_id;
745
746
747 execute immediate('select ' || cp_account_segment ||' from gl_code_combinations cc where
748 chart_of_accounts_id= ' || accounting_flex_structure || ' and
749 code_combination_id = '|| oper_exp) into
750 cp_operating_acct;
751
752 execute immediate('select ' || cp_account_segment ||' from gl_code_combinations cc where
753 chart_of_accounts_id= ' || accounting_flex_structure || ' and
754 code_combination_id = '|| bk_rsv) into
755 cp_backlog_acct;
756
757
758 execute immediate('select ' || cp_account_segment ||' from gl_code_combinations cc where
759 chart_of_accounts_id= ' || accounting_flex_structure || ' and
760 code_combination_id = '|| reval_rsv) into
761 cp_reval_res_acct;
762
763 cp_reval_res_acct := '('||cp_reval_res_acct||')';
764 cp_operating_acct := '(' || cp_operating_acct ||')';
765 cp_acc_deprn_acct := '(' || cp_acc_deprn_acct || '+' || cp_backlog_acct || ')';
766 cp_backlog_acct := '('||cp_backlog_acct||')';
767
768
769 return 1;
770 end;
771 END IGI_IGIIARPS_XMLP_PKG;