[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