DBA Data[Home] [Help]

PACKAGE BODY: APPS.FA_TOFES_YUD_ALEF_PKG

Source


1 PACKAGE BODY FA_TOFES_YUD_ALEF_PKG AS
2 -- $Header: FASTYAPB.pls 120.4.12010000.1 2008/07/28 13:17:46 appldev ship $
3 -- ****************************************************************************************
4 -- Copyright (c)  2000  Oracle Solution Services (India)     Product Development
5 -- All rights reserved
6 -- ****************************************************************************************
7 --
8 -- PROGRAM NAME
9 --  FASTYAPB.pls
10 --
11 -- DESCRIPTION
12 --  This script creates the package body of FA_TOFES_YUD_ALEF_PKG.
13 --  This package is used to generate Israeli Fixed Asset Report.
14 --
15 -- USAGE
16 --   To install        How to Install
17 --   To execute        How to Execute
18 --
19 -- PROGRAM LIST        DESCRIPTION
20 --
21 -- BEFOREREPORT        This function is used to dynamically get the
22 --                     WHERE clause in SELECT statement.
23 --
24 --YTD_TRANS_AMT		This Funtion is used to Calculate the YTD TRANSACTION AMOUNT
25 --
26 --YTD_DEPRN_AMT		This Funtion is used to Calculate the YTD Depreciation Amount
27 --
28 --YTD_DEPRN_RETIRE_AMT  This Funtion is used to calcualte the YTD Depreciation retire Amount
29 --
30 --ACCM_DEPRN_PR_AMT	This Funtion is used to calcualte the Accumulated Depreciation Prior Year Amount
31 --
32 --PURCHASE_DATE		This Funtion is used to calculate the Purchase Date
33 --
34 -- DEPENDENCIES
35 -- None
36 --
37 -- CALLED BY
38 -- Tofes Yud Alef Report 1342 (Israel)
39 --
40 -- LAST UPDATE DATE    22-Jan-2007
41 -- Date the program has been modified for the last time.
42 --
43 -- HISTORY
44 -- =======
45 --
46 -- VERSION DATE        AUTHOR(S)       DESCRIPTION
47 -- ------- ----------- --------------- --------------------------------------
48 -- Draft1A 22-Jan-2007 Karna Kumar M Initial Creation
49 --===========================================================================*/
50 
51 --Function to Calculate the YTD TRANSACTION AMOUNT
52 FUNCTION YTD_TRANS_AMT(p_asset_id_in IN NUMBER)
53 RETURN NUMBER
54 IS
55 ln_amount  NUMBER;
56 BEGIN
57   SELECT SUM(DECODE(DEBIT_CREDIT_FLAG, 'CR', ADJUSTMENT_AMOUNT * (-1), ADJUSTMENT_AMOUNT))
58     INTO ln_amount
59     FROM FA_ADJUSTMENTS
60    WHERE BOOK_TYPE_CODE   = P_BOOK_NAME
61      AND ASSET_ID    = p_asset_id_in
62      AND ADJUSTMENT_TYPE  = 'COST'
63      AND SOURCE_TYPE_CODE = 'ADJUSTMENT'
64      AND PERIOD_COUNTER_ADJUSTED BETWEEN p_lex_begin_period_counter AND p_lex_end_period_counter;
65 RETURN ln_amount;
66 EXCEPTION
67   WHEN NO_DATA_FOUND THEN
68   ln_amount := 0;
69   RETURN ln_amount;
70 END YTD_TRANS_AMT;
71 
72 --=====================================================================
73 --=====================================================================
74 
75 FUNCTION DEPRN_CLAIM_NUMBER
76 RETURN NUMBER
77 IS
78 ln_number  NUMBER;
79 BEGIN
80   SELECT CASE WHEN (MONTHS_BETWEEN(ADD_MONTHS(FB.DATE_PLACED_IN_SERVICE,FB.LIFE_IN_MONTHS), FDP.PERIOD_OPEN_DATE)) > 12 THEN 12
81               ELSE (MONTHS_BETWEEN(ADD_MONTHS(FB.DATE_PLACED_IN_SERVICE,FB.LIFE_IN_MONTHS), FDP.PERIOD_OPEN_DATE))
82          END
83     INTO ln_number
84     FROM FA_BOOKS FB
85         ,FA_DEPRN_PERIODS  FDP
86    WHERE FB.BOOK_type_code   = FDP.book_type_code
87      AND FB.BOOK_type_code   = P_BOOK_NAME
88      AND FDP.period_counter  = p_lex_begin_period_counter
89      AND FB.DEPRECIATE_FLAG  = 'YES'
90   AND FB.TRANSACTION_HEADER_ID_IN  = (SELECT max(fb1.TRANSACTION_HEADER_ID_IN)
91        FROM FA_BOOKS  fb1
92       WHERE fb1.BOOK_type_code   = P_BOOK_NAME
93         AND fb1.DEPRECIATE_FLAG   = 'YES');
94 RETURN ln_number;
95 EXCEPTION
96  WHEN NO_DATA_FOUND THEN
97  ln_number := 1;
98  RETURN ln_number;
99 END DEPRN_CLAIM_NUMBER;
100 
101 --=====================================================================
102 --=====================================================================
103 --Function to Calculate the YTD Depreciation Amount
104 FUNCTION YTD_DEPRN_AMT(p_asset_id_in IN NUMBER)
105 RETURN NUMBER
106 IS
107 ln_amount  NUMBER;
108 BEGIN
109   /*SELECT SUM(DEPRN_AMOUNT)
110     INTO ln_amount
111     FROM FA_DEPRN_SUMMARY
112    WHERE BOOK_TYPE_CODE = P_BOOK_NAME
113      AND ASSET_ID     = p_asset_id_in
114      AND PERIOD_COUNTER BETWEEN p_lex_begin_period_counter AND p_lex_end_period_counter;*/
115    SELECT YTD_DEPRN
116    INTO ln_amount
117     FROM FA_DEPRN_SUMMARY
118    WHERE BOOK_TYPE_CODE = P_BOOK_NAME
119      AND ASSET_ID     = p_asset_id_in
120      AND PERIOD_COUNTER = p_lex_end_period_counter;
121 RETURN ln_amount;
122 EXCEPTION
123  WHEN NO_DATA_FOUND THEN
124  ln_amount := 0;
125  RETURN ln_amount;
126 END YTD_DEPRN_AMT;
127 
128 --=====================================================================
129 --=====================================================================
130 --Function to Calculate the YTD Depreciation retire Amount
131 FUNCTION YTD_DEPRN_RETIRE_AMT(p_asset_id_in IN NUMBER, p_period_counter IN NUMBER)
132 RETURN NUMBER
133 IS
134 ln_amount  NUMBER;
135 BEGIN
136   /*SELECT SUM(DEPRN_AMOUNT)
137     INTO ln_amount
138     FROM FA_DEPRN_SUMMARY
139    WHERE BOOK_TYPE_CODE = P_BOOK_NAME
140      AND ASSET_ID     = p_asset_id_in
141      AND PERIOD_COUNTER BETWEEN p_lex_begin_period_counter AND p_lex_end_period_counter;*/
142   SELECT DEPRN_ADJUSTMENT_AMOUNT
143     INTO ln_amount
144     FROM FA_DEPRN_SUMMARY
145    WHERE BOOK_TYPE_CODE = P_BOOK_NAME
146      AND ASSET_ID     = p_asset_id_in
147      AND period_counter = p_period_counter
148      AND PERIOD_COUNTER > (SELECT MAX(fdp.period_counter)
149   FROM fa_deprn_periods fdp
150   WHERE FDP.book_type_code = P_BOOK_NAME
151   AND fdp.fiscal_year < (SELECT MAX(fiscal_year)
152            FROM FA_DEPRN_PERIODS
153          WHERE book_type_code = P_BOOK_NAME
154          AND  period_close_date IS NOT NULL));
155   RETURN ln_amount;
156 EXCEPTION
157   WHEN NO_DATA_FOUND THEN
158   ln_amount := 0;
159   RETURN ln_amount;
160 END YTD_DEPRN_RETIRE_AMT;
161 
162 --=====================================================================
163 --=====================================================================
164 --Function to calculate the Accumulated Depreciation Prior Year Amount
165 FUNCTION ACCM_DEPRN_PR_AMT(p_asset_id_in IN NUMBER)
166 RETURN NUMBER
167 IS
168 ln_amount  NUMBER;
169 BEGIN
170   SELECT SUM(DEPRN_AMOUNT)
171     INTO ln_amount
172     FROM FA_DEPRN_SUMMARY
173    WHERE BOOK_TYPE_CODE = P_BOOK_NAME
174      AND ASSET_ID     = p_asset_id_in
175      AND PERIOD_COUNTER <= (SELECT MAX(fdp.period_counter)
176     FROM fa_deprn_periods fdp
177    WHERE FDP.book_type_code = P_BOOK_NAME
178      AND fdp.fiscal_year < (SELECT MAX(fiscal_year)
179                               FROM FA_DEPRN_PERIODS
180 					         WHERE book_type_code = P_BOOK_NAME
181 					           AND  period_close_date IS NOT NULL));
182 RETURN ln_amount;
183 EXCEPTION
184   WHEN NO_DATA_FOUND THEN
185   ln_amount := 0;
186   RETURN ln_amount;
187 END ACCM_DEPRN_PR_AMT;
188 
189 --=====================================================================
190 --=====================================================================
191 --Function to calculate the Accumulated Depreciation Prior Year Amount
192 FUNCTION ACCM_DEPRN_PR_RETIRE_AMT(p_asset_id_in IN NUMBER, p_period_counter IN NUMBER)
193 RETURN NUMBER
194 IS
195 ln_amount  NUMBER;
196 BEGIN
197   SELECT SUM(DEPRN_ADJUSTMENT_AMOUNT)
198     INTO ln_amount
199     FROM FA_DEPRN_SUMMARY
200    WHERE BOOK_TYPE_CODE = P_BOOK_NAME
201      AND ASSET_ID     = p_asset_id_in
202      AND PERIOD_COUNTER = P_PERIOD_COUNTER
203      AND PERIOD_COUNTER <= (SELECT MAX(fdp.period_counter)
204     FROM fa_deprn_periods fdp
205    WHERE FDP.book_type_code = P_BOOK_NAME
206      AND fdp.fiscal_year < (SELECT MAX(fiscal_year)
207                               FROM FA_DEPRN_PERIODS
208 					         WHERE book_type_code = P_BOOK_NAME
209 					           AND period_close_date IS NOT NULL));
210 RETURN ln_amount;
211 EXCEPTION
212   WHEN NO_DATA_FOUND THEN
213   ln_amount := 0;
214   RETURN ln_amount;
215 END ACCM_DEPRN_PR_RETIRE_AMT;
216 
217 --=====================================================================
218 --=====================================================================
219 --Purchase date
220 FUNCTION PURCHASE_DATE(p_asset_id_in IN NUMBER)
221 RETURN DATE
222 IS
223 ld_date  DATE;
224 BEGIN
225  SELECT INVOICE_DATE
226    INTO ld_date
227    FROM AP_INVOICES_ALL
228   WHERE INVOICE_ID IN (SELECT FAI.INVOICE_ID
229                          FROM FA_ASSET_INVOICES FAI
230                              ,FA_ADDITIONS_B FA
231                              ,FA_BOOKS FB
232                        WHERE FAI.ASSET_ID = FA.ASSET_ID
233                          AND FA.ASSET_ID = FB.ASSET_ID
234                          AND FA.ASSET_ID = p_asset_id_in
235                          AND FB.BOOK_TYPE_CODE = P_BOOK_NAME)
236                          AND VENDOR_ID IN (SELECT FAI.PO_VENDOR_ID
237                         FROM FA_ASSET_INVOICES FAI
238                             ,FA_ADDITIONS_B FA
239                             ,FA_BOOKS FB
240                        WHERE FAI.ASSET_ID = FA.ASSET_ID
241 					     AND FA.ASSET_ID = FB.ASSET_ID
242 					     AND FA.ASSET_ID = p_asset_id_in
243 					     AND FB.BOOK_TYPE_CODE = P_BOOK_NAME);
244 
245 RETURN ld_date;
246 EXCEPTION
247   WHEN NO_DATA_FOUND THEN
248   SELECT FB.DATE_PLACED_IN_SERVICE
249     INTO ld_date
250     FROM FA_ADDITIONS_B FA
251         ,FA_BOOKS     FB
252    WHERE FA.ASSET_ID = FB.ASSET_ID
253      AND FA.ASSET_ID = p_asset_id_in
254      AND FB.BOOK_TYPE_CODE = P_BOOK_NAME
255      AND FB.TRANSACTION_HEADER_ID_OUT IS NULL;
256 
257   RETURN ld_date;
258 END PURCHASE_DATE;
259 
260 --=====================================================================
261 --=====================================================================
262 
263 FUNCTION beforeReport
264 RETURN BOOLEAN
265 IS
266 BEGIN
267   fnd_file.put_line(fnd_file.log,'In the Before Report Proc');
268   SELECT PERIOD_COUNTER
269     INTO p_lex_begin_period_counter
270     FROM FA_DEPRN_PERIODS
271    WHERE BOOK_TYPE_CODE  = P_BOOK_NAME
272      AND PERIOD_NAME  = P_BEGIN_PERIOD;
273   fnd_file.put_line(fnd_file.log,'p_lex_begin_period_counter::'||p_lex_begin_period_counter);
274 
275   SELECT PERIOD_COUNTER
276     INTO p_lex_end_period_counter
277     FROM FA_DEPRN_PERIODS
278    WHERE BOOK_TYPE_CODE  = P_BOOK_NAME
279      AND PERIOD_NAME  = P_END_PERIOD;
280 fnd_file.put_line(fnd_file.log,'p_lex_end_period_counter::'||p_lex_end_period_counter);
281 
282   SELECT Accounting_flex_structure
283     INTO lc_acct_flex_struc
284     FROM FA_BOOK_CONTROLS
285    WHERE book_type_code = P_BOOK_NAME;
286 fnd_file.put_line(fnd_file.log,'lc_acct_flex_struc::'||lc_acct_flex_struc);
287 
288 RETURN(TRUE);
289 END beforeReport;
290 
291 END FA_TOFES_YUD_ALEF_PKG;