DBA Data[Home] [Help]

PACKAGE BODY: APPS.JA_JAINASST_XMLP_PKG

Source


1 PACKAGE BODY JA_JAINASST_XMLP_PKG AS
2 /* $Header: JAINASSTB.pls 120.1 2007/12/25 16:13:14 dwkrishn noship $ */
3   FUNCTION CF_1FORMULA RETURN VARCHAR2 IS
4     N VARCHAR2(100);
5   BEGIN
6     SELECT
7       COMPANY_NAME
8     INTO N
9     FROM
10       FA_SYSTEM_CONTROLS;
11     RETURN (N);
12   END CF_1FORMULA;
13 
14   FUNCTION CF_3FORMULA(OP_TOT IN NUMBER
15                       ,COS_TOT IN NUMBER
16                       ,CS_4 IN NUMBER) RETURN NUMBER IS
17     N NUMBER;
18   BEGIN
19     N := NVL(OP_TOT
20             ,0) + NVL(COS_TOT
21             ,0) - NVL(CS_4
22             ,0);
23     IF N <= 0 THEN
24       N := 0;
25     END IF;
26     RETURN (N);
27   END CF_3FORMULA;
28 
29   FUNCTION CF_4FORMULA(BLOCK_ID IN NUMBER
30                       ,TYPE IN VARCHAR2
31                       ,RATE IN NUMBER) RETURN NUMBER IS
32     V_TYPE JAI_FA_AST_BLOCKS.TYPE%TYPE;
33     V_RATE NUMBER;
34     V_SALE NUMBER;
35     V_BLOCK_ID NUMBER;
36     V_BLOCK_ID1 NUMBER;
37     CURSOR TYPE_RATE_CUR IS
38       SELECT
39         TYPE,
40         RATE
41       FROM
42         JAI_FA_AST_BLOCKS
43       WHERE BLOCK_ID = CF_4FORMULA.BLOCK_ID
44         AND BOOK_TYPE_CODE = BOOK_NAME;
45     CURSOR BLOCK_ID_CUR_RET IS
46       SELECT
47         BLOCK_ID
48       FROM
49         JAI_FA_AST_BLOCKS
50       WHERE TYPE = CF_4FORMULA.TYPE
51         AND RATE = CF_4FORMULA.RATE
52         AND START_DATE < JA_JAINASST_XMLP_PKG.START_DATE
53         AND BOOK_TYPE_CODE = BOOK_NAME;
54     CURSOR SALE_CUR(CP_OWNED_LEASED IN FA_ADDITIONS.OWNED_LEASED%TYPE,CP_STATUS IN FA_RETIREMENTS.STATUS%TYPE) IS
55       SELECT
56         NVL(SUM(FAR.PROCEEDS_OF_SALE - FAR.COST_OF_REMOVAL)
57            ,0) SALE
58       FROM
59         JAI_FA_AST_BLOCK_DTLS JBA,
60         FA_ADDITIONS FA,
61         JAI_FA_AST_BLOCKS JABLOA,
62         FA_RETIREMENTS FAR
63       WHERE FA.OWNED_LEASED = CP_OWNED_LEASED
64         AND FA.ASSET_ID = JBA.ASSET_ID
65         AND JBA.BLOCK_ID = JABLOA.BLOCK_ID
66         AND FAR.BOOK_TYPE_CODE = JABLOA.BOOK_TYPE_CODE
67         AND JABLOA.BOOK_TYPE_CODE = BOOK_NAME
68         AND JABLOA.TYPE = CF_4FORMULA.TYPE
69         AND JABLOA.RATE = CF_4FORMULA.RATE
70         AND JBA.ASSET_ID = FAR.ASSET_ID
71         AND FAR.STATUS = CP_STATUS
72         AND FAR.DATE_RETIRED between JA_JAINASST_XMLP_PKG.START_DATE
73         AND JA_JAINASST_XMLP_PKG.END_DATE;
74   BEGIN
75     OPEN TYPE_RATE_CUR;
76     FETCH TYPE_RATE_CUR
77      INTO V_TYPE,V_RATE;
78     CLOSE TYPE_RATE_CUR;
79     OPEN BLOCK_ID_CUR_RET;
80     FETCH BLOCK_ID_CUR_RET
81      INTO V_BLOCK_ID;
82     CLOSE BLOCK_ID_CUR_RET;
83     OPEN SALE_CUR('OWNED','PROCESSED');
84     FETCH SALE_CUR
85      INTO V_SALE;
86     CLOSE SALE_CUR;
87     IF NVL(V_SALE
88        ,0) < 0 THEN
89       V_SALE := 0;
90     END IF;
91     RETURN (V_SALE);
92   END CF_4FORMULA;
93 
94   FUNCTION CF_5FORMULA(ASSET_ID IN NUMBER
95                       ,BLOCK_ID1 IN NUMBER) RETURN NUMBER IS
96     CURSOR DEPN_OF_ASSET_CUR IS
97       SELECT
98         DEPN_OF_ASSETS
99       FROM
100         JAI_FA_DEP_BLOCKS
101       WHERE UNPLANNED_DEPN = ASSET_ID
102         AND BLOCK_ID = BLOCK_ID1;
103     V_DEPN_OF_ASSET NUMBER;
104   BEGIN
105     OPEN DEPN_OF_ASSET_CUR;
106     FETCH DEPN_OF_ASSET_CUR
107      INTO V_DEPN_OF_ASSET;
108     CLOSE DEPN_OF_ASSET_CUR;
109     RETURN (V_DEPN_OF_ASSET);
110   END CF_5FORMULA;
111 
112   FUNCTION CF_6FORMULA(BLOCK_ID IN NUMBER
113                       ,TYPE IN VARCHAR2
114                       ,OP_TOT IN NUMBER
115                       ,COS_TOT IN NUMBER
116                       ,RATE IN NUMBER) RETURN NUMBER IS
117     LV_ASSEST_CAPITALIZED JAI_FA_AST_BLOCK_DTLS.ASSET_TYPE%TYPE;
118     LV_FLAG FA_BOOKS.CAPITALIZE_FLAG%TYPE;
119     LV_ASSET_TYPE JAI_FA_AST_BLOCK_DTLS.ASSET_TYPE%TYPE;
120     CURSOR CUR_GET_VALID_ASSETS IS
121       SELECT
122         '1'
123       FROM
124         JAI_FA_AST_BLOCK_DTLS JBA,
125         FA_BOOKS FAB,
126         JAI_FA_AST_BLOCKS JABOA
127       WHERE JBA.ASSET_ID = FAB.ASSET_ID
128         AND ( ( JBA.ASSET_TYPE = LV_ASSEST_CAPITALIZED
129         AND FAB.CAPITALIZE_FLAG = LV_FLAG )
130       OR JBA.ASSET_TYPE = LV_ASSET_TYPE )
131         AND JBA.DATE_OF_ACQUISITION BETWEEN JABOA.START_DATE
132         AND NVL(JABOA.YEAR_ENDED
133          ,END_DATE)
134         AND FAB.DATE_INEFFECTIVE IS NULL
135         AND FAB.TRANSACTION_HEADER_ID_OUT IS NULL
136         AND FAB.PERIOD_COUNTER_FULLY_RETIRED IS NULL
137         AND JBA.BLOCK_ID = TO_CHAR(JABOA.BLOCK_ID)
138         AND JABOA.BOOK_TYPE_CODE = FAB.BOOK_TYPE_CODE
139         AND JABOA.BOOK_TYPE_CODE = BOOK_NAME
140         AND JABOA.TYPE = (
141         SELECT
142           TYPE
143         FROM
144           JAI_FA_AST_BLOCKS
145         WHERE BLOCK_ID = CF_6FORMULA.BLOCK_ID )
146         AND ( JABOA.START_DATE <= NVL(JA_JAINASST_XMLP_PKG.START_DATE
147          ,JABOA.START_DATE)
148       OR JABOA.START_DATE BETWEEN NVL(JA_JAINASST_XMLP_PKG.START_DATE
149          ,JABOA.START_DATE)
150         AND NVL(END_DATE
151          ,JABOA.YEAR_ENDED) );
152     CURSOR CUR_GET_ST_OP_BAL(CP_BLOCK_ID IN JAI_FA_AST_BLOCKS.BLOCK_ID%TYPE) IS
153       SELECT
154         OPENING_WDV
155       FROM
156         JAI_FA_AST_BLOCKS JABOA
157       WHERE JABOA.BOOK_TYPE_CODE = BOOK_NAME
158         AND JABOA.TYPE = (
159         SELECT
160           TYPE
161         FROM
162           JAI_FA_AST_BLOCKS
163         WHERE BLOCK_ID = CP_BLOCK_ID )
164       ORDER BY
165         START_DATE ASC;
166     LV_EXISTS VARCHAR2(1);
167     LN_OPENING_WDV JAI_FA_AST_BLOCKS.OPENING_WDV%TYPE;
168     CURSOR DEPR_CUR1 IS
169       SELECT
170         A.ASSET_ID,
171         A.COST,
172         A.TRANSACTION_HEADER_ID_IN,
173         A.DATE_EFFECTIVE
174       FROM
175         FA_BOOKS A,
176         JAI_FA_AST_BLOCKS B,
177         JAI_FA_AST_BLOCK_DTLS C,
178         JAI_FA_AST_PERIOD_RATES D
179       WHERE A.ASSET_ID = C.ASSET_ID
180         AND ( ( C.ASSET_TYPE = LV_ASSEST_CAPITALIZED
181         AND A.CAPITALIZE_FLAG = LV_FLAG )
182       OR C.ASSET_TYPE = LV_ASSET_TYPE )
183         AND B.BLOCK_ID = CF_6FORMULA.BLOCK_ID
184         AND TO_CHAR(B.BLOCK_ID) = C.BLOCK_ID
185         AND A.BOOK_TYPE_CODE = B.BOOK_TYPE_CODE
186         AND A.BOOK_TYPE_CODE = BOOK_NAME
187         AND C.DATE_OF_ACQUISITION between D.START_DATE
188         AND D.END_DATE
189         AND B.START_DATE between NVL(JA_JAINASST_XMLP_PKG.START_DATE
190          ,B.START_DATE)
191         AND NVL(END_DATE
192          ,B.YEAR_ENDED)
193         AND D.START_DATE >= ADD_MONTHS(JA_JAINASST_XMLP_PKG.START_DATE,6)
194         AND D.SLNO = 2
195         AND A.DATE_INEFFECTIVE is null
196         AND A.TRANSACTION_HEADER_ID_OUT is null;
197     CURSOR BLOCK_RET_CUR_FIR(P_BLOCK_TYPE IN VARCHAR2) IS
198       SELECT
199         NVL(SUM(C.PROCEEDS_OF_SALE - C.COST_OF_REMOVAL)
200            ,0) SALE
201       FROM
202         JAI_FA_AST_BLOCKS A,
203         FA_ADDITIONS B,
204         FA_RETIREMENTS C,
205         JAI_FA_AST_PERIOD_RATES D
206       WHERE B.CONTEXT = P_CONTEXT_VALUE
207         AND TO_CHAR(A.BLOCK_ID) = B.ATTRIBUTE2
208         AND A.BOOK_TYPE_CODE = BOOK_NAME
209         AND B.OWNED_LEASED = 'OWNED'
210         AND B.ASSET_TYPE IN ( 'CAPITALIZED' , 'EXPENSED' )
211         AND TO_DATE(B.ATTRIBUTE1
212              ,'DD-MON-RRRR') between D.START_DATE
213         AND D.END_DATE
214         AND D.START_DATE < ADD_MONTHS(JA_JAINASST_XMLP_PKG.START_DATE
215                 ,6)
216         AND D.SLNO = 1
217         AND B.ASSET_ID = C.ASSET_ID
218         AND C.STATUS = 'PROCESSED'
219         AND A.TYPE = P_BLOCK_TYPE
220         AND A.BLOCK_ID = CF_6FORMULA.BLOCK_ID
221         AND C.DATE_RETIRED BETWEEN JA_JAINASST_XMLP_PKG.START_DATE
222         AND JA_JAINASST_XMLP_PKG.END_DATE;
223     CURSOR BLOCK_RET_CUR_SEC(P_BLOCK_TYPE IN VARCHAR2) IS
224       SELECT
225         NVL(SUM(C.PROCEEDS_OF_SALE - C.COST_OF_REMOVAL)
226            ,0) SALE
227       FROM
228         JAI_FA_AST_BLOCKS A,
229         FA_ADDITIONS B,
230         FA_RETIREMENTS C,
231         JAI_FA_AST_PERIOD_RATES D
232       WHERE B.CONTEXT = P_CONTEXT_VALUE
233         AND TO_CHAR(A.BLOCK_ID) = B.ATTRIBUTE2
234         AND A.BOOK_TYPE_CODE = BOOK_NAME
235         AND B.OWNED_LEASED = 'OWNED'
236         AND B.ASSET_TYPE IN ( 'CAPITALIZED' , 'EXPENSED' )
237         AND TO_DATE(B.ATTRIBUTE1
238              ,'DD-MON-RRRR') between D.START_DATE
239         AND D.END_DATE
240         AND D.START_DATE >= ADD_MONTHS(JA_JAINASST_XMLP_PKG.START_DATE
241                 ,6)
242         AND D.SLNO = 2
243         AND B.ASSET_ID = C.ASSET_ID
244         AND C.STATUS = 'PROCESSED'
245         AND A.TYPE = P_BLOCK_TYPE
246         AND A.BLOCK_ID = CF_6FORMULA.BLOCK_ID
247         AND C.DATE_RETIRED BETWEEN JA_JAINASST_XMLP_PKG.START_DATE
248         AND JA_JAINASST_XMLP_PKG.END_DATE;
249     V_COST NUMBER;
250     V_TOTAL1 NUMBER;
251     V_TOTAL2 NUMBER;
252     V_DEPRN NUMBER;
253     V_DEPRNAFTER NUMBER;
254     V_DEPRNBEFORE NUMBER;
255     LN_TOTAL_SEC_HF_COST NUMBER := 0;
256     V_FIR_DEDUCTION NUMBER;
257     V_SEC_DEDUCTION NUMBER;
258   BEGIN
259     LV_ASSEST_CAPITALIZED := 'CAPITALIZED';
260     LV_FLAG := 'YES';
261     LV_ASSET_TYPE := 'EXPENSED';
262     OPEN CUR_GET_VALID_ASSETS;
263     FETCH CUR_GET_VALID_ASSETS
264      INTO LV_EXISTS;
265     OPEN CUR_GET_ST_OP_BAL(CP_BLOCK_ID => BLOCK_ID);
266     FETCH CUR_GET_ST_OP_BAL
267      INTO LN_OPENING_WDV;
268     CLOSE CUR_GET_ST_OP_BAL;
269     IF CUR_GET_VALID_ASSETS%NOTFOUND AND LN_OPENING_WDV = 0 THEN
270       /*SRW.MESSAGE(1275
271                  ,'1.1 opening wdv for the first period record for the type and book name is 0')*/NULL;
272       V_DEPRN := 0;
273     ELSE
274       V_FIR_DEDUCTION := NULL;
275       V_SEC_DEDUCTION := NULL;
276       OPEN BLOCK_RET_CUR_FIR(TYPE);
277       FETCH BLOCK_RET_CUR_FIR
278        INTO V_FIR_DEDUCTION;
279       CLOSE BLOCK_RET_CUR_FIR;
280       OPEN BLOCK_RET_CUR_SEC(TYPE);
281       FETCH BLOCK_RET_CUR_SEC
282        INTO V_SEC_DEDUCTION;
283       CLOSE BLOCK_RET_CUR_SEC;
284       LV_ASSEST_CAPITALIZED := 'CAPITALIZED';
285       LV_FLAG := 'YES';
286       LV_ASSET_TYPE := 'EXPENSED';
287       FOR rec_depr_cur IN DEPR_CUR1 LOOP
288         LN_TOTAL_SEC_HF_COST := CALCULATE_ACTUAL_COST(P_TRANSACTION_HEADER_ID_IN => REC_DEPR_CUR.TRANSACTION_HEADER_ID_IN
289                                                      ,P_DATE_EFFECTIVE => REC_DEPR_CUR.DATE_EFFECTIVE
290                                                      ,P_BOOK_NAME => BOOK_NAME
291                                                      ,P_ASSET_ID => REC_DEPR_CUR.ASSET_ID
292                                                      ,P_COST => NVL(REC_DEPR_CUR.COST
293                                                         ,0)) + LN_TOTAL_SEC_HF_COST;
294       END LOOP;
295       /*SRW.MESSAGE(1275
296                  ,'CF_6 1.ln_total_sec_hf_cost ->' || LN_TOTAL_SEC_HF_COST)*/NULL;
297       V_TOTAL2 := NVL(OP_TOT
298                      ,0) + NVL(COS_TOT
299                      ,0) - NVL(LN_TOTAL_SEC_HF_COST
300                      ,0) - NVL(V_FIR_DEDUCTION
301                      ,0);
302       V_DEPRNBEFORE := V_TOTAL2 * (RATE / 100);
303       /*SRW.MESSAGE(1275
304                  ,'CF_6 2.1 V_Total2 -> ' || V_TOTAL2 || ', v_DeprnBefore -> ' || V_DEPRNBEFORE)*/NULL;
305       IF V_TOTAL2 < 0 THEN
306         V_DEPRNBEFORE := 0;
307         LN_TOTAL_SEC_HF_COST := NVL(LN_TOTAL_SEC_HF_COST
308                                    ,0) + V_TOTAL2;
309       ELSE
310         V_DEPRNBEFORE := V_TOTAL2 * (RATE / 100);
311       END IF;
312       LN_TOTAL_SEC_HF_COST := NVL(LN_TOTAL_SEC_HF_COST
313                                  ,0) - NVL(V_SEC_DEDUCTION
314                                  ,0);
315       V_DEPRNAFTER := NVL(LN_TOTAL_SEC_HF_COST
316                          ,0) * (RATE / 100) * 0.5;
317       V_DEPRN := V_DEPRNBEFORE + V_DEPRNAFTER;
318       IF V_DEPRN <= 0 THEN
319         V_DEPRN := 0;
320       END IF;
321     END IF;
322     CLOSE CUR_GET_VALID_ASSETS;
323     RETURN (V_DEPRN);
324   END CF_6FORMULA;
325 
326   FUNCTION AFTERPFORM RETURN BOOLEAN IS
327   BEGIN
328     RETURN (TRUE);
329   END AFTERPFORM;
330 
331   FUNCTION AFTERREPORT RETURN BOOLEAN IS
332   BEGIN
333     /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
334     RETURN (TRUE);
335   END AFTERREPORT;
336 
337   FUNCTION CF_8FORMULA(BLOCK_ID IN NUMBER) RETURN NUMBER IS
338     LV_ASSEST_CAPITALIZED JAI_FA_AST_BLOCK_DTLS.ASSET_TYPE%TYPE;
339     LV_FLAG FA_BOOKS.CAPITALIZE_FLAG%TYPE;
340     LV_ASSET_TYPE JAI_FA_AST_BLOCK_DTLS.ASSET_TYPE%TYPE;
341     CURSOR ASSET_COST IS
342       SELECT
343         NVL(SUM(COST)
344            ,0) COST
345       FROM
346         FA_BOOKS A,
347         JAI_FA_AST_BLOCK_DTLS B
348       WHERE A.ASSET_ID NOT IN (
349         SELECT
350           ASSET_ID
351         FROM
352           FA_RETIREMENTS
353         WHERE BOOK_TYPE_CODE = BOOK_NAME
354           AND STATUS = 'PROCESSED'
355           AND DATE_RETIRED between START_DATE
356           AND END_DATE )
357         AND B.ASSET_ID = A.ASSET_ID
358         AND ( ( B.ASSET_TYPE = LV_ASSEST_CAPITALIZED
359         AND A.CAPITALIZE_FLAG = LV_FLAG )
360       OR B.ASSET_TYPE = LV_ASSET_TYPE )
361         AND B.BLOCK_ID = TO_CHAR(BLOCK_ID)
362         AND A.BOOK_TYPE_CODE = BOOK_NAME
363         AND B.DATE_OF_ACQUISITION between START_DATE
364         AND END_DATE
365         AND A.RETIREMENT_PENDING_FLAG = 'NO'
366       GROUP BY
367         B.BLOCK_ID;
368     V_ASSET_COST NUMBER;
369   BEGIN
370     LV_ASSEST_CAPITALIZED := 'CAPITALIZED';
371     LV_FLAG := 'YES';
372     LV_ASSET_TYPE := 'EXPENSED';
373     OPEN ASSET_COST;
374     FETCH ASSET_COST
375      INTO V_ASSET_COST;
376     CLOSE ASSET_COST;
377     RETURN (V_ASSET_COST);
378   END CF_8FORMULA;
379 
380   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
381     CURSOR C_PROGRAM_ID(P_REQUEST_ID IN NUMBER) IS
382       SELECT
383         CONCURRENT_PROGRAM_ID,
384         NVL(ENABLE_TRACE
385            ,'N')
386       FROM
387         FND_CONCURRENT_REQUESTS
388       WHERE REQUEST_ID = P_REQUEST_ID;
389     CURSOR GET_AUDSID IS
390       SELECT
391         A.SID,
392         A.SERIAL#,
393         B.SPID
394       FROM
395         V$SESSION A,
396         V$PROCESS B
397       WHERE AUDSID = USERENV('SESSIONID')
398         AND A.PADDR = B.ADDR;
399     CURSOR GET_DBNAME IS
400       SELECT
401         NAME
402       FROM
403         V$DATABASE;
404     V_AUDSID NUMBER := USERENV('SESSIONID');
405     V_SID NUMBER;
406     V_SERIAL NUMBER;
407     V_SPID VARCHAR2(9);
408     V_DBNAME VARCHAR2(25);
409     V_ENABLE_TRACE FND_CONCURRENT_PROGRAMS.ENABLE_TRACE%TYPE;
410     V_PROGRAM_ID FND_CONCURRENT_PROGRAMS.CONCURRENT_PROGRAM_ID%TYPE;
411   BEGIN
412     /*SRW.MESSAGE(1275
413                ,'Report Version is 120.4 Last modified date is 13/10/2006')*/NULL;
414     P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
415     /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
416     BEGIN
417       OPEN C_PROGRAM_ID(P_CONC_REQUEST_ID);
418       FETCH C_PROGRAM_ID
419        INTO V_PROGRAM_ID,V_ENABLE_TRACE;
420       CLOSE C_PROGRAM_ID;
421       /*SRW.MESSAGE(1275
422                  ,'v_program_id -> ' || V_PROGRAM_ID || ', v_enable_trace -> ' || V_ENABLE_TRACE || ', request_id -> ' || P_CONC_REQUEST_ID)*/NULL;
423       IF V_ENABLE_TRACE = 'Y' THEN
424         OPEN GET_AUDSID;
425         FETCH GET_AUDSID
426          INTO V_SID,V_SERIAL,V_SPID;
427         CLOSE GET_AUDSID;
428         OPEN GET_DBNAME;
429         FETCH GET_DBNAME
430          INTO V_DBNAME;
431         CLOSE GET_DBNAME;
432         /*SRW.MESSAGE(1275
433                    ,'TraceFile Name = ' || LOWER(V_DBNAME) || '_ora_' || V_SPID || '.trc')*/NULL;
434         EXECUTE IMMEDIATE
435           'ALTER SESSION SET EVENTS ''10046 trace name context forever, level 4''';
436       END IF;
437     EXCEPTION
438       WHEN OTHERS THEN
439         /*SRW.MESSAGE(1275
440                    ,'Error during enabling the trace. ErrCode -> ' || SQLCODE || ', ErrMesg -> ' || SQLERRM)*/NULL;
441     END;
442     P_CONTEXT_VALUE := 'India B Of Assets';
443     LSTART_DATE:=to_char(START_DATE,'DD/MON/YYYY');
444     LEND_DATE:=to_char(END_DATE,'DD/MON/YYYY');
445 
446     RETURN (TRUE);
447   END BEFOREREPORT;
448 
449   FUNCTION CF_ADDITIONS_COSTFORMULA(COST IN NUMBER
450                                    ,TRANSACTION_HEADER_ID_IN IN NUMBER
451                                    ,DATE_EFFECTIVE IN DATE
452                                    ,ASSET_ID IN NUMBER) RETURN NUMBER IS
453     CURSOR CUR_GET_ADDITION_COST(CP_TRANSACTION_HEADER_ID_IN IN FA_BOOKS.TRANSACTION_HEADER_ID_IN%TYPE,CP_DATE_EFFECTIVE IN FA_BOOKS.DATE_EFFECTIVE%TYPE,CP_BOOK_NAME IN FA_BOOKS.BOOK_TYPE_CODE%TYPE,CP_ASSET_ID IN FA_BOOKS.ASSET_ID%TYPE) IS
454       SELECT
455         TRANSACTION_HEADER_ID_IN,
456         DATE_EFFECTIVE,
457         FAB.COST
458       FROM
459         FA_BOOKS FAB
460       WHERE FAB.TRANSACTION_HEADER_ID_OUT = CP_TRANSACTION_HEADER_ID_IN
461         AND TRUNC(FAB.DATE_INEFFECTIVE) = TRUNC(CP_DATE_EFFECTIVE)
462         AND FAB.BOOK_TYPE_CODE = CP_BOOK_NAME
463         AND FAB.ASSET_ID = CP_ASSET_ID
464         AND FAB.RETIREMENT_ID IS NOT NULL;
465     REC_CUR_GET_ADDITION_COST CUR_GET_ADDITION_COST%ROWTYPE;
466     LN_ADDITION_COST FA_BOOKS.COST%TYPE;
467     LN_TRANSACTION_HEADER_ID_IN FA_BOOKS.TRANSACTION_HEADER_ID_IN%TYPE;
468     LD_DATE_EFFECTIVE FA_BOOKS.DATE_EFFECTIVE%TYPE;
469   BEGIN
470     /*SRW.MESSAGE(1275
471                ,'in cf8 formula column processing')*/NULL;
472     IF NVL(COST
473        ,0) <> 0 THEN
474       LN_ADDITION_COST := COST;
475       LN_TRANSACTION_HEADER_ID_IN := TRANSACTION_HEADER_ID_IN;
476       LD_DATE_EFFECTIVE := DATE_EFFECTIVE;
477       LOOP
478         OPEN CUR_GET_ADDITION_COST(CP_TRANSACTION_HEADER_ID_IN => LN_TRANSACTION_HEADER_ID_IN,CP_DATE_EFFECTIVE => LD_DATE_EFFECTIVE,CP_BOOK_NAME => BOOK_NAME,CP_ASSET_ID => ASSET_ID);
479         FETCH CUR_GET_ADDITION_COST
480          INTO REC_CUR_GET_ADDITION_COST;
481         IF CUR_GET_ADDITION_COST%NOTFOUND THEN
482           CLOSE CUR_GET_ADDITION_COST;
483           EXIT;
484         ELSE
485           LN_TRANSACTION_HEADER_ID_IN := REC_CUR_GET_ADDITION_COST.TRANSACTION_HEADER_ID_IN;
486           LD_DATE_EFFECTIVE := REC_CUR_GET_ADDITION_COST.DATE_EFFECTIVE;
487           LN_ADDITION_COST := REC_CUR_GET_ADDITION_COST.COST;
488           CLOSE CUR_GET_ADDITION_COST;
489         END IF;
490       END LOOP;
491       /*SRW.MESSAGE(1275
492                  ,'value of  ln_addition_cost is ' || LN_ADDITION_COST)*/NULL;
493       RETURN (LN_ADDITION_COST);
494     ELSE
495       RETURN 0;
496     END IF;
497   END CF_ADDITIONS_COSTFORMULA;
498 
499   FUNCTION CF_CLOSING_WDV_TOTALFORMULA(DEP_TOT IN NUMBER
500                                       ,CF_3 IN NUMBER) RETURN NUMBER IS
501     LN_CLOSING_WDV_TOTAL JAI_FA_AST_BLOCKS.CLOSING_WDV%TYPE;
502   BEGIN
503     IF NVL(DEP_TOT
504        ,0) = 0 THEN
505       LN_CLOSING_WDV_TOTAL := 0;
506     ELSE
507       LN_CLOSING_WDV_TOTAL := NVL(CF_3 - DEP_TOT
508                                  ,0);
509     END IF;
510     IF LN_CLOSING_WDV_TOTAL < 0 THEN
511       LN_CLOSING_WDV_TOTAL := 0;
512     END IF;
513     RETURN (LN_CLOSING_WDV_TOTAL);
514   END CF_CLOSING_WDV_TOTALFORMULA;
515 
516   FUNCTION CALCULATE_ACTUAL_COST(P_TRANSACTION_HEADER_ID_IN IN FA_BOOKS.TRANSACTION_HEADER_ID_IN%TYPE
517                                 ,P_DATE_EFFECTIVE IN FA_BOOKS.DATE_EFFECTIVE%TYPE
518                                 ,P_BOOK_NAME IN FA_BOOKS.BOOK_TYPE_CODE%TYPE
519                                 ,P_ASSET_ID IN FA_BOOKS.ASSET_ID%TYPE
520                                 ,P_COST IN FA_BOOKS.COST%TYPE) RETURN NUMBER IS
521     CURSOR CUR_GET_ADDITION_COST(CP_TRANSACTION_HEADER_ID_IN IN FA_BOOKS.TRANSACTION_HEADER_ID_IN%TYPE,CP_DATE_EFFECTIVE IN FA_BOOKS.DATE_EFFECTIVE%TYPE,CP_BOOK_NAME IN FA_BOOKS.BOOK_TYPE_CODE%TYPE,CP_ASSET_ID IN FA_BOOKS.ASSET_ID%TYPE) IS
522       SELECT
523         TRANSACTION_HEADER_ID_IN,
524         DATE_EFFECTIVE,
525         FAB.COST
526       FROM
527         FA_BOOKS FAB
528       WHERE FAB.TRANSACTION_HEADER_ID_OUT = CP_TRANSACTION_HEADER_ID_IN
529         AND TRUNC(FAB.DATE_INEFFECTIVE) = TRUNC(CP_DATE_EFFECTIVE)
530         AND FAB.BOOK_TYPE_CODE = CP_BOOK_NAME
531         AND FAB.ASSET_ID = CP_ASSET_ID
532         AND FAB.RETIREMENT_ID IS NOT NULL;
533     REC_CUR_GET_ADDITION_COST CUR_GET_ADDITION_COST%ROWTYPE;
534     LN_ADDITION_COST FA_BOOKS.COST%TYPE;
535     LN_TRANSACTION_HEADER_ID_IN FA_BOOKS.TRANSACTION_HEADER_ID_IN%TYPE;
536     LD_DATE_EFFECTIVE FA_BOOKS.DATE_EFFECTIVE%TYPE;
537   BEGIN
538     /*SRW.MESSAGE(1275
539                ,'in function calculate_actual_cost for actual cost processing')*/NULL;
540     LN_ADDITION_COST := P_COST;
541     LN_TRANSACTION_HEADER_ID_IN := P_TRANSACTION_HEADER_ID_IN;
542     LD_DATE_EFFECTIVE := P_DATE_EFFECTIVE;
543     LOOP
544       OPEN CUR_GET_ADDITION_COST(CP_TRANSACTION_HEADER_ID_IN => LN_TRANSACTION_HEADER_ID_IN,CP_DATE_EFFECTIVE => LD_DATE_EFFECTIVE,CP_BOOK_NAME => P_BOOK_NAME,CP_ASSET_ID => P_ASSET_ID);
545       FETCH CUR_GET_ADDITION_COST
546        INTO REC_CUR_GET_ADDITION_COST;
547       IF CUR_GET_ADDITION_COST%NOTFOUND THEN
548         CLOSE CUR_GET_ADDITION_COST;
549         EXIT;
550       ELSE
551         LN_TRANSACTION_HEADER_ID_IN := REC_CUR_GET_ADDITION_COST.TRANSACTION_HEADER_ID_IN;
552         LD_DATE_EFFECTIVE := REC_CUR_GET_ADDITION_COST.DATE_EFFECTIVE;
553         LN_ADDITION_COST := REC_CUR_GET_ADDITION_COST.COST;
554         CLOSE CUR_GET_ADDITION_COST;
555       END IF;
556     END LOOP;
557     /*SRW.MESSAGE(1275
558                ,'Asset ->' || P_ASSET_ID || ' Book_name ' || P_BOOK_NAME || 'value of ln_addition_cost is ' || LN_ADDITION_COST)*/NULL;
559     RETURN (LN_ADDITION_COST);
560   END CALCULATE_ACTUAL_COST;
561 
562 END JA_JAINASST_XMLP_PKG;
563 
564