[Home] [Help]
PACKAGE BODY: APPS.FA_FAS860_XMLP_PKG
Source
1 PACKAGE BODY FA_FAS860_XMLP_PKG AS
2 /* $Header: FAS860B.pls 120.0.12010000.1 2008/07/28 13:15:59 appldev ship $ */
3 FUNCTION REPORT_NAMEFORMULA(COMPANY_NAME IN VARCHAR2) RETURN VARCHAR2 IS
4 BEGIN
5 DECLARE
6 L_REPORT_NAME VARCHAR2(80);
7 BEGIN
8 RP_COMPANY_NAME := COMPANY_NAME;
9 SELECT
10 CP.USER_CONCURRENT_PROGRAM_NAME
11 INTO
12 L_REPORT_NAME
13 FROM
14 FND_CONCURRENT_PROGRAMS_VL CP,
15 FND_CONCURRENT_REQUESTS CR
16 WHERE CR.REQUEST_ID = P_CONC_REQUEST_ID
17 AND CP.APPLICATION_ID = CR.PROGRAM_APPLICATION_ID
18 AND CP.CONCURRENT_PROGRAM_ID = CR.CONCURRENT_PROGRAM_ID;
19 RP_REPORT_NAME := L_REPORT_NAME;
20 IF (UPPER(RP_REPORT_NAME) LIKE 'MASS%CHANGE%PREVIEW%REPORT%(XML)%') THEN
21 RP_REPORT_NAME := 'Mass Change Preview Report';
22 END IF;
23 RETURN (L_REPORT_NAME);
24 EXCEPTION
25 WHEN OTHERS THEN
26 RP_REPORT_NAME := 'Mass Change Preview Report';
27 RETURN (RP_REPORT_NAME);
28 END;
29 RETURN NULL;
30 END REPORT_NAMEFORMULA;
31 FUNCTION BEFOREREPORT RETURN BOOLEAN IS
32 BEGIN
33 P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
34 SELECT
35 --SUBSTR(ARGUMENT1,INSTR(ARGUMENT1,'"',1,1)+1,(INSTR(ARGUMENT1,'"',1,2)-INSTR(ARGUMENT1,'"',1,1) -1))
36 SUBSTR(ARGUMENT1,INSTR(ARGUMENT1,'=',1,1)+1)
37 INTO P_MASS_CHANGE_ID1
38 FROM FND_CONCURRENT_REQUESTS
39 WHERE REQUEST_ID =P_CONC_REQUEST_ID;
40 RETURN (TRUE);
41 END BEFOREREPORT;
42 FUNCTION AFTERREPORT RETURN BOOLEAN IS
43 BEGIN
44 RETURN (TRUE);
45 END AFTERREPORT;
46 FUNCTION C_BOOKFORMULA RETURN VARCHAR2 IS
47 BEGIN
48 DECLARE
49 BOOK VARCHAR(15);
50 BOOK_CLASS VARCHAR(15);
51 FROM_RULE VARCHAR(15);
52 TO_RULE VARCHAR(15);
53 FROM_ASSET VARCHAR(15);
54 TO_ASSET VARCHAR(15);
55 FROM_DPIS DATE;
56 TO_DPIS DATE;
57 BEGIN
58 SELECT
59 MCH.BOOK_TYPE_CODE,
60 BC.BOOK_CLASS,
61 MCH.FROM_ASSET_NUMBER,
62 MCH.TO_ASSET_NUMBER,
63 MCH.FROM_DATE_PLACED_IN_SERVICE,
64 MCH.TO_DATE_PLACED_IN_SERVICE,
65 FM.RATE_SOURCE_RULE,
66 TM.RATE_SOURCE_RULE
67 INTO
68 BOOK
69 ,BOOK_CLASS
70 ,FROM_ASSET
71 ,TO_ASSET
72 ,FROM_DPIS
73 ,TO_DPIS
74 ,FROM_RULE
75 ,TO_RULE
76 FROM
77 FA_MASS_CHANGES MCH,
78 FA_METHODS FM,
79 FA_METHODS TM,
80 FA_BOOK_CONTROLS BC
81 --WHERE MCH.MASS_CHANGE_ID = P_MASS_CHANGE_ID
82 WHERE MCH.MASS_CHANGE_ID = P_MASS_CHANGE_ID1
83 AND FM.METHOD_CODE (+) = MCH.FROM_METHOD_CODE
84 AND NVL(FM.LIFE_IN_MONTHS (+),
85 - 1) = NVL(MCH.FROM_LIFE_IN_MONTHS
86 ,-1)
87 AND TM.METHOD_CODE (+) = MCH.TO_METHOD_CODE
88 AND NVL(TM.LIFE_IN_MONTHS (+),
89 - 1) = NVL(MCH.TO_LIFE_IN_MONTHS
90 ,-1)
91 AND BC.BOOK_TYPE_CODE = MCH.BOOK_TYPE_CODE
92 AND BC.DATE_INEFFECTIVE IS NULL;
93 C_BOOK_CLASS := BOOK_CLASS;
94 C_OLD_RULE := FROM_RULE;
95 C_NEW_RULE := TO_RULE;
96 C_FROM_ASSET := FROM_ASSET;
97 C_TO_ASSET := TO_ASSET;
98 C_FROM_DPIS := FROM_DPIS;
99 C_TO_DPIS := TO_DPIS;
100 RETURN (BOOK);
101 EXCEPTION
102 WHEN NO_DATA_FOUND THEN
103 RETURN (' ');
104 END;
105 RETURN NULL;
106 END C_BOOKFORMULA;
107 FUNCTION C_DO_UPDATEFORMULA(C_COUNT IN NUMBER) RETURN NUMBER IS
108 BEGIN
109 BEGIN
110 UPDATE
111 FA_MASS_CHANGES
112 SET
113 STATUS = 'PREVIEWED'
114 --WHERE MASS_CHANGE_ID = P_MASS_CHANGE_ID
115 WHERE MASS_CHANGE_ID = P_MASS_CHANGE_ID1
116 AND STATUS = 'PREVIEW';
117 COMMIT;
118 RETURN (C_COUNT);
119 END;
120 RETURN NULL;
121 END C_DO_UPDATEFORMULA;
122 FUNCTION D_OLD_LIFEFORMULA(OLD_LIFE IN NUMBER) RETURN VARCHAR2 IS
123 BEGIN
124 BEGIN
125 IF (OLD_LIFE IS NOT NULL) THEN
126 RETURN (FADOLIF(OLD_LIFE
127 ,NULL
128 ,NULL
129 ,NULL));
130 ELSE
131 RETURN (' ');
132 END IF;
133 END;
134 RETURN NULL;
135 END D_OLD_LIFEFORMULA;
136 FUNCTION D_NEW_LIFEFORMULA(NEW_LIFE IN NUMBER) RETURN VARCHAR2 IS
137 BEGIN
138 BEGIN
139 IF (NEW_LIFE IS NOT NULL) THEN
140 RETURN (FADOLIF(NEW_LIFE
141 ,NULL
142 ,NULL
143 ,NULL));
144 ELSE
145 RETURN (' ');
146 END IF;
147 END;
148 RETURN NULL;
149 END D_NEW_LIFEFORMULA;
150 FUNCTION CHANGE_LEGALFORMULA(NEW_UOM IN VARCHAR2
151 ,ADDED_THIS_PERIOD IN NUMBER
152 ,ASSET_ID IN NUMBER
153 ,C_BOOK IN VARCHAR2) RETURN VARCHAR2 IS
154 BEGIN
155 DECLARE
156 MESSAGE_NAME VARCHAR(30);
157 BEGIN
158 NEW_UOM_REAL := NEW_UOM;
159 MESSAGE_NAME := NULL;
160 IF (C_OLD_RULE <> C_NEW_RULE) THEN
161 IF (C_OLD_RULE = 'PRODUCTION') THEN
162 IF (ADDED_THIS_PERIOD = 0) THEN
163 MESSAGE_NAME := 'FA_MASSCHG_ASSET_DEPRED';
164 ELSE
165 DECLARE
166 TEMP VARCHAR2(30);
167 BEGIN
168 SELECT
169 'PRODUCTION IN TAX'
170 INTO
171 TEMP
172 FROM
173 FA_BOOK_CONTROLS BC,
174 FA_BOOKS BK,
175 FA_METHODS ME
176 WHERE BK.BOOK_TYPE_CODE = BC.BOOK_TYPE_CODE
177 AND BK.ASSET_ID = ASSET_ID
178 AND BK.DATE_INEFFECTIVE IS NULL
179 AND BC.DISTRIBUTION_SOURCE_BOOK = C_BOOK
180 AND BC.DATE_INEFFECTIVE IS NULL
181 AND BC.BOOK_CLASS = 'TAX'
182 AND ME.METHOD_CODE = BK.DEPRN_METHOD_CODE
183 AND NVL(ME.LIFE_IN_MONTHS
184 ,-1) = NVL(BK.LIFE_IN_MONTHS
185 ,-1)
186 AND ME.RATE_SOURCE_RULE = 'PRODUCTION';
187 MESSAGE_NAME := 'FA_MASSCHG_PROD_IN_TAX';
188 EXCEPTION
189 WHEN NO_DATA_FOUND THEN
190 NULL;
191 END;
192 END IF;
193 ELSIF (C_NEW_RULE = 'PRODUCTION') THEN
194 IF (ADDED_THIS_PERIOD = 0) THEN
195 MESSAGE_NAME := 'FA_MASSCHG_ASSET_DEPRED';
196 ELSIF (C_BOOK_CLASS = 'TAX') THEN
197 DECLARE
198 NEW_UOM VARCHAR(25);
199 BEGIN
200 SELECT
201 UNIT_OF_MEASURE
202 INTO
203 NEW_UOM
204 FROM
205 FA_BOOK_CONTROLS BC,
206 FA_BOOKS BK
207 WHERE BK.BOOK_TYPE_CODE = BC.DISTRIBUTION_SOURCE_BOOK
208 AND BK.ASSET_ID = ASSET_ID
209 AND BK.DATE_INEFFECTIVE IS NULL
210 AND BC.BOOK_TYPE_CODE = C_BOOK
211 AND BC.DATE_INEFFECTIVE IS NULL;
212 NEW_UOM_REAL := NEW_UOM;
213 EXCEPTION
214 WHEN OTHERS THEN
215 NULL;
216 END;
217 DECLARE
218 TEMP VARCHAR2(30);
219 BEGIN
220 SELECT
221 'PRODUCTION IN CORP'
222 INTO
223 TEMP
224 FROM
225 FA_BOOK_CONTROLS BC,
226 FA_BOOKS BK,
227 FA_METHODS ME
228 WHERE BK.BOOK_TYPE_CODE = BC.DISTRIBUTION_SOURCE_BOOK
229 AND BK.ASSET_ID = ASSET_ID
230 AND BK.DATE_INEFFECTIVE IS NULL
231 AND BC.BOOK_TYPE_CODE = C_BOOK
232 AND BC.DATE_INEFFECTIVE IS NULL
233 AND ME.METHOD_CODE = BK.DEPRN_METHOD_CODE
234 AND NVL(ME.LIFE_IN_MONTHS
235 ,-1) = NVL(BK.LIFE_IN_MONTHS
236 ,-1)
237 AND ME.RATE_SOURCE_RULE = 'PRODUCTION';
238 EXCEPTION
239 WHEN NO_DATA_FOUND THEN
240 MESSAGE_NAME := 'FA_MASSCHG_NOT_PROD_IN_CORP';
241 END;
242 END IF;
243 END IF;
244 END IF;
245 RETURN (MESSAGE_NAME);
246 END;
247 RETURN NULL;
248 END CHANGE_LEGALFORMULA;
249 FUNCTION MESSAGE_DISPFORMULA(CHANGE_LEGAL IN VARCHAR2
250 ,MESSAGE_DISP IN VARCHAR2) RETURN VARCHAR2 IS
251 BEGIN
252 BEGIN
253 IF (CHANGE_LEGAL IS NOT NULL) THEN
254 FND_MESSAGE.SET_NAME('140'
255 ,':CHANGE_LEGAL');
256 END IF;
257 RETURN (MESSAGE_DISP);
258 END;
259 RETURN NULL;
260 END MESSAGE_DISPFORMULA;
261 FUNCTION NEW_UOM_REAL_P RETURN VARCHAR2 IS
262 BEGIN
263 RETURN NEW_UOM_REAL;
264 END NEW_UOM_REAL_P;
265 FUNCTION RP_COMPANY_NAME_P RETURN VARCHAR2 IS
266 BEGIN
267 RETURN RP_COMPANY_NAME;
268 END RP_COMPANY_NAME_P;
269 FUNCTION RP_REPORT_NAME_P RETURN VARCHAR2 IS
270 BEGIN
271 RETURN RP_REPORT_NAME;
272 END RP_REPORT_NAME_P;
273 FUNCTION C_OLD_RULE_P RETURN VARCHAR2 IS
274 BEGIN
275 RETURN C_OLD_RULE;
276 END C_OLD_RULE_P;
277 FUNCTION C_NEW_RULE_P RETURN VARCHAR2 IS
278 BEGIN
279 RETURN C_NEW_RULE;
280 END C_NEW_RULE_P;
281 FUNCTION C_FROM_ASSET_P RETURN VARCHAR2 IS
282 BEGIN
283 RETURN C_FROM_ASSET;
284 END C_FROM_ASSET_P;
285 FUNCTION C_TO_ASSET_P RETURN VARCHAR2 IS
286 BEGIN
287 RETURN C_TO_ASSET;
288 END C_TO_ASSET_P;
289 FUNCTION C_FROM_DPIS_P RETURN DATE IS
290 BEGIN
291 RETURN C_FROM_DPIS;
292 END C_FROM_DPIS_P;
293 FUNCTION C_TO_DPIS_P RETURN DATE IS
294 BEGIN
295 RETURN C_TO_DPIS;
296 END C_TO_DPIS_P;
297 FUNCTION C_BOOK_CLASS_P RETURN VARCHAR2 IS
298 BEGIN
299 RETURN C_BOOK_CLASS;
300 END C_BOOK_CLASS_P;
301 --added
302 FUNCTION fadolif(life NUMBER,
303 adj_rate NUMBER,
304 bonus_rate NUMBER,
305 prod NUMBER)
306 RETURN CHAR IS
307 retval CHAR(7);
308 num_chars NUMBER;
309 temp_retval number;
310 BEGIN
311 IF life IS NOT NULL
312 THEN
313 -- Fix for bug 601202 -- added substrb after lpad. changed '90' to '999'
314 temp_retval := fnd_number.canonical_to_number((LPAD(SUBSTR(TO_CHAR(TRUNC(life/12, 0), '999'), 2, 3),3,' ') || '.' ||
315 SUBSTR(TO_CHAR(MOD(life, 12), '00'), 2, 2)) );
316 retval := to_char(temp_retval,'999D99');
317 ELSIF adj_rate IS NOT NULL
318 THEN
319 /* Bug 1744591
320 Changed 90D99 to 990D99 */
321 retval := SUBSTR(TO_CHAR(ROUND((adj_rate + NVL(bonus_rate, 0))*100, 2), '990.99'),2,6) || '%';
322 ELSIF prod IS NOT NULL
323 THEN
324 --test for length of production_capacity; if it's longer
325 --than 7 characters, then display in exponential notation
326 --IF prod <= 9999999
327 --THEN
328 -- retval := TO_CHAR(prod);
329 --ELSE
330 -- retval := SUBSTR(LTRIM(TO_CHAR(prod, '9.9EEEE')), 1, 7);
331 --END IF;
332 --display nothing for UOP assets
333 retval := '';
334 ELSE
335 --should not occur
336 retval := ' ';
337 END IF;
338 return(retval);
339 END;
340 END FA_FAS860_XMLP_PKG;
341