DBA Data[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