DBA Data[Home] [Help]

PACKAGE BODY: APPS.FA_FAS771_XMLP_PKG

Source


1 PACKAGE BODY FA_FAS771_XMLP_PKG AS
2 /* $Header: FAS771B.pls 120.0.12010000.1 2008/07/28 13:15:31 appldev ship $ */
3 function BookFormula return VARCHAR2 is
4 begin
5 DECLARE
6   l_book       VARCHAR2(15);
7   l_book_class VARCHAR2(15);
8   l_accounting_flex_structure NUMBER(15);
9   l_currency_code VARCHAR2(15);
10   l_distribution_source_book VARCHAR2(15);
11   l_precision NUMBER(15);
12 BEGIN
13   SELECT bc.book_type_code,
14          bc.book_class,
15          bc.accounting_flex_structure,
16          bc.distribution_source_book,
17          sob.currency_code,
18          cur.precision
19   INTO   l_book,
20          l_book_class,
21          l_accounting_flex_Structure,
22          l_distribution_source_book,
23          l_currency_code,
24          l_precision
25   FROM   FA_BOOK_CONTROLS bc,
26          GL_SETS_OF_BOOKS sob,
27          FND_CURRENCIES cur
28   WHERE  bc.book_type_code = P_BOOK
29   AND    sob.set_of_books_id = bc.set_of_books_id
30   AND    sob.currency_code    = cur.currency_code;
31   Book_Class := l_book_class;
32   Accounting_Flex_Structure:=l_accounting_flex_structure;
33   Distribution_SOurce_Book :=l_distribution_source_book;
34   Currency_Code := l_currency_code;
35   P_Min_Precision := l_precision;
36   return(l_book);
37 END;
38 RETURN NULL; end;
39 function report_nameformula(Company_Name in varchar2) return varchar2 is
40 begin
41 DECLARE
42   l_report_name VARCHAR2(80);
43   l_conc_program_id NUMBER;
44 BEGIN
45 --Added during DT Fix
46 P_CONC_REQUEST_ID := fnd_global.CONC_REQUEST_ID;
47 --End of DT Fix
48   RP_Company_Name := Company_Name;
49   SELECT cr.concurrent_program_id
50   INTO l_conc_program_id
51   FROM FND_CONCURRENT_REQUESTS cr
52   WHERE cr.program_application_id = 140
53   AND   cr.request_id = P_CONC_REQUEST_ID;
54   SELECT cp.user_concurrent_program_name
55   INTO   l_report_name
56   FROM    FND_CONCURRENT_PROGRAMS_VL cp
57   WHERE
58       cp.concurrent_program_id= l_conc_program_id
59   and cp.application_id = 140;
60   --RP_Report_Name := l_report_name;
61   RP_Report_Name := substr(l_report_name,1,instr(l_report_name,' (XML)'));
62   RETURN(l_report_name);
63 EXCEPTION
64   WHEN OTHERS THEN
65     IF (P_ADJUSTED = 'TRUE') THEN
66     	RP_Report_Name := ':Adjusted Form 4562 - Depreciation and Amortization Report:';
67     ELSE RP_Report_Name := ':Form 4562 - Depreciation and Amortization Report:';
68     END IF;
69     RETURN(RP_Report_Name);
70 END;
71 RETURN NULL; end;
72 function BeforeReport return boolean is
73 begin
74 /*SRW.USER_EXIT('FND SRWINIT');*/null;
75   return (TRUE);
76 end;
77 function AfterReport return boolean is
78 begin
79 /*SRW.USER_EXIT('FND SRWEXIT');*/null;
80   return (TRUE);
81 end;
82 function report_period_close_dateformul(end_period_counter in number) return varchar2 is
83 begin
84 declare
85 end_date date;
86 begin
87 select nvl(PERIOD_CLOSE_DATE,sysdate)
88 into end_date
89 FROM FA_DEPRN_PERIODS
90 WHERE BOOK_TYPE_CODE = P_BOOK
91 and period_counter = end_period_counter;
92 return(to_char(end_date,'DD-MON-YYYY HH24:MI:SS'));
93 end;
94 RETURN NULL; end;
95 function d_lifeformula(life_in_months in number, adjusted_rate in number, bonus_rate in number, production in number) return varchar2 is
96 begin
97 /*srw.reference(life_in_months);*/null;
98 /*srw.reference(adjusted_rate);*/null;
99 /*srw.reference(bonus_rate);*/null;
100 /*srw.reference(production);*/null;
101 begin
102 return(fadolif(life_in_months, adjusted_rate, bonus_rate, production));
103 end;
104 RETURN NULL; end;
105 function ytdformula(YTD_ADJ in number, YTD_DEPRN in number) return number is
106 begin
107 RETURN(YTD_ADJ + YTD_DEPRN);
108 end;
109 function specialformula(asset_id in number, book in varchar2, FISCAL_YEAR_ADDED in varchar2, deprn_method in varchar2, SPECIAL_DEPRN in number, YTD in number) return number is
110 tmp number:=0;
111 begin
112 /*srw.reference(YTD);*/null;
113 /*SRW.REFERENCE(SPECIAL_DEPRN);*/null;
114 /*SRW.REFERENCE(SPECIAL);*/null;
115 /*SRW.REFERENCE(CURRENCY_CODE);*/null;
116 /*SRW.REFERENCE(YTD);*/null;
117 /*SRW.REFERENCE(BOOK);*/null;
118 /*SRW.REFERENCE(ASSET_ID);*/null;
119 /*SRW.REFERENCE(FISCAL_YEAR_ADDED);*/null;
120 /*SRW.REFERENCE(P_FISCAL_YEAR);*/null;
121 /*SRW.REFERENCE(P_SPECIAL_FLAG);*/null;
122 /*SRW.REFERENCE(DEPRN_METHOD);*/null;
123 IF IsAmortized(asset_id, book) and
124 	(FISCAL_YEAR_ADDED = to_char(P_FISCAL_YEAR)
125 	and ( instr(deprn_method, '30B') > 0  or
126               instr(deprn_method, '50B') > 0 ) ) THEN
127 	P_SPECIAL_FLAG := '#';
128 	RETURN (0);
129 ELSIF (ABS(SPECIAL_DEPRN) > ABS(YTD))  and    	(FISCAL_YEAR_ADDED = to_char(P_FISCAL_YEAR)
130 	and ( instr(deprn_method, '30B') > 0 or
131               instr(deprn_method, '50B') > 0 ) ) THEN
132 	P_SPECIAL_FLAG := '*';
133 	RETURN (0);
134 else
135 	P_SPECIAL_FLAG := '';
136 	return(round(special_deprn, p_min_precision));
137 end if;
138 end;
139 FUNCTION isAmortized (p_asset_id number, p_book varchar2) RETURN boolean IS
140 tmp 	Number:=0;
141 BEGIN
142 /*SRW.REFERENCE(P_FISCAL_YEAR);*/null;
143 select count(*)
144 into tmp
145 from fa_transaction_headers
146 where asset_id = p_asset_id
147 and book_type_code = p_book
148 and transaction_subtype = 'AMORTIZED'
149 AND to_char(transaction_date_entered, 'YYYY') = P_FISCAL_YEAR;
150 if tmp > 0 Then
151 	return TRUE;
152 end if;
153 return FALSE;
154 END;
155 --Functions to refer Oracle report placeholders--
156  Function Accounting_Flex_Structure_p return number is
157 	Begin
158 	 return Accounting_Flex_Structure;
159 	 END;
160  Function ACCT_BAL_APROMPT_p return varchar2 is
161 	Begin
162 	 return ACCT_BAL_APROMPT;
163 	 END;
164  Function Currency_Code_p return varchar2 is
165 	Begin
166 	 return Currency_Code;
167 	 END;
168  Function Book_Class_p return varchar2 is
169 	Begin
170 	 return Book_Class;
171 	 END;
172  Function Distribution_Source_Book_p return varchar2 is
173 	Begin
174 	 return Distribution_Source_Book;
175 	 END;
176  Function RP_COMPANY_NAME_p return varchar2 is
177 	Begin
178 	 return RP_COMPANY_NAME;
179 	 END;
180  Function RP_REPORT_NAME_p return varchar2 is
181 	Begin
182 	 return RP_REPORT_NAME;
183 	 END;
184  Function P_SPECIAL_FLAG_p return varchar2 is
185 	Begin
186 	 return P_SPECIAL_FLAG;
187 	 END;
188 FUNCTION fadolif(life NUMBER,
189 		adj_rate NUMBER,
190 		bonus_rate NUMBER,
191 		prod NUMBER)
192 RETURN CHAR IS
193    retval CHAR(7);
194    num_chars NUMBER;
195    temp_retval number;
196 BEGIN
197    IF life IS NOT NULL
198    THEN
199       -- Fix for bug 601202 -- added substrb after lpad.  changed '90' to '999'
200       temp_retval := fnd_number.canonical_to_number((LPAD(SUBSTR(TO_CHAR(TRUNC(life/12, 0), '999'), 2, 3),3,' ') || '.' ||
201 		SUBSTR(TO_CHAR(MOD(life, 12), '00'), 2, 2)) );
202       retval := to_char(temp_retval,'999D99');
203    ELSIF adj_rate IS NOT NULL
204    THEN
205       /* Bug 1744591
206          Changed 90D99 to 990D99 */
207            retval := SUBSTR(TO_CHAR(ROUND((adj_rate + NVL(bonus_rate, 0))*100, 2), '990.99'),2,6) || '%';
208    ELSIF prod IS NOT NULL
209    THEN
210 	--test for length of production_capacity; if it's longer
211 	--than 7 characters, then display in exponential notation
212       --IF prod <= 9999999
213       --THEN
214       --   retval := TO_CHAR(prod);
215       --ELSE
216       --   retval := SUBSTR(LTRIM(TO_CHAR(prod, '9.9EEEE')), 1, 7);
217       --END IF;
218 	--display nothing for UOP assets
219 	retval := '';
220    ELSE
221 	--should not occur
222       retval := ' ';
223    END IF;
224    return(retval);
225 END;
226 END FA_FAS771_XMLP_PKG ;
227