[Home] [Help]
PACKAGE BODY: APPS.FA_GAINLOSS_PRO_PKG
Source
1 PACKAGE BODY FA_GAINLOSS_PRO_PKG AS
2 /* $Header: fagprob.pls 120.8.12020000.2 2012/07/20 11:46:55 spooyath ship $*/
3 /*=============================================================================
4 | NAME fagpsa |
5 | |
6 | FUNCTION This function loads the control byte and performs all the |
7 | retirement and reinstatement calculations if needed. |
8 | |
9 | HISTORY 1/12/89 M Chan Created |
10 | |
11 | 01/09/97 S Behura Rewrote in PL/SQL |
12 |============================================================================*/
13
14 Function fagpsa (ret in out nocopy fa_ret_types.ret_struct, today in date,
15 cpd_name in varchar2, cpd_ctr in number,
16 user_id in number, p_log_level_rec IN FA_API_TYPES.log_level_rec_type) RETURN BOOLEAN IS
17
18 bk fa_ret_types.book_struct;
19 dpr fa_STD_TYPES.dpr_struct;
20 pds_per_year number;
21 p_pds_per_year number;
22 cpd_num number;
23 ret_pdnum number;
24 pro_mth number;
25 dsd_mth number;
26 pro_fy number;
27 dsd_fy number;
28
29 h_ret_status varchar2(15);
30 h_retirement_id number(15);
31
32 l_calling_fn varchar2(40) := 'FA_GAINLOSS_PRO_PKG.fagpsa';
33
34 BEGIN <<FAGPSA>>
35
36 -- dbms_output.put_line('in fagpsa 1');
37
38 bk.raf := 0;
39 bk.adj_rate := 0;
40 bk.adjusted_cost := 0;
41 bk.current_cost := 0;
42 bk.recoverable_cost := 0;
43 bk.salvage_value := 0;
44 bk.itc_amount := 0;
45 bk.reval_amort_basis := 0;
46 bk.unrevalued_cost := 0;
47 dpr.adj_cost := 0;
48 dpr.rec_cost := 0;
49 dpr.reval_amo_basis := 0;
50 dpr.deprn_rsv := 0;
51 dpr.reval_rsv := 0;
52 dpr.adj_rate := 0;
53 dpr.rate_adj_factor := 0;
54 dpr.capacity := 0;
55 dpr.ltd_prod := 0;
56 dpr.adj_rec_cost := 0;
57 dpr.used_by_adjustment := TRUE;
58 dpr.deprn_override_used_by := 'RET'; --Bug11886090
59 dpr.mrc_sob_type_code := ret.mrc_sob_type_code; --Bug11886090
60
61 -- dbms_output.put_line('in fagpsa 2');
62
63 if not FA_GAINLOSS_MIS_PKG.faggbi(bk, ret, p_log_level_rec => p_log_level_rec) then
64
65 fa_srvr_msg.add_message(
66 calling_fn => 'fa_gainloss_pro_pkg.fagpsa',
67 name => 'FA_RET_GENERIC_ERROR',
68 token1 => 'MODULE',
69 value1 => 'FAGGBI',
70 token2 => 'INFO',
71 value2 => 'FA_BOOKS',
72 token3 => 'ASSET',
73 value3 => ret.asset_number , p_log_level_rec => p_log_level_rec);
74
75 return(FALSE);
76
77 end if;
78
79 -- Bug 7522956: Initialize method cache to be used
80 -- later in faxama
81 if (not fa_cache_pkg.fazccmt(
82 bk.method_code,
83 bk.lifemonths,
84 p_log_level_rec => p_log_level_rec)) then
85
86 fa_srvr_msg.add_message(
87 calling_fn => 'fa_gainloss_pro_pkg.fagpsa',
88 name => 'FA_RET_GENERIC_ERROR',
89 token1 => 'MODULE',
90 value1 => 'FAZCCMT',
91 token2 => 'PROCESS',
92 value2 => 'CACHE',
93 token3 => 'METHOD',
94 value3 => bk.method_code,
95 p_log_level_rec => p_log_level_rec);
96
97 return(FALSE);
98
99 end if;
100 -- dbms_output.put_line('in fagpsa 3');
101
102 if not FA_GAINLOSS_MIS_PKG.fagpdi(
103 ret.book, pds_per_year,
104 bk.d_cal, cpd_name,
105 cpd_num, bk.ret_prorate_date,
106 ret_pdnum, p_pds_per_year,
107 bk.fiscal_year_name, p_log_level_rec => p_log_level_rec) then
108
109 fa_srvr_msg.add_message(
110 calling_fn => 'fa_gainloss_pro_pkg.fagpsa',
111 name => 'FA_RET_GENERIC_ERROR',
112 token1 => 'MODULE',
113 value1 => 'FAGPDI',
114 token2 => 'INFO',
115 value2 => 'Period',
116 token3 => 'ASSET',
117 value3 => ret.asset_number , p_log_level_rec => p_log_level_rec);
118
119 return(FALSE);
120
121 end if;
122
123 -- dbms_output.put_line('in fagpsa 4');
124
125 bk.pers_per_yr := pds_per_year;
126 h_retirement_id := ret.retirement_id;
127 h_ret_status := ret.status;
128
129 if not FA_GAINLOSS_MIS_PKG.faggfy(bk.prorate_date, bk.p_cal,
130 pro_mth, pro_fy,
131 bk.fiscal_year_name, p_log_level_rec => p_log_level_rec) then
132
133 fa_srvr_msg.add_message(
134 calling_fn => 'fa_gainloss_pro_pkg.fagpsa',
135 name => 'FA_RET_GENERIC_ERROR',
136 token1 => 'MODULE',
137 value1 => 'FAGGFY',
138 token2 => 'INFO',
139 value2 => 'Retirement Prorate Date',
140 token3 => 'ASSET',
141 value3 => ret.asset_number , p_log_level_rec => p_log_level_rec);
142
143 return(FALSE);
144
145 end if;
146
147 dpr.prorate_jdate := bk.prorate_jdate;
148 dpr.deprn_start_jdate := bk.deprn_start_jdate;
149 bk.prorate_mth := pro_mth;
150 bk.prorate_fy := pro_fy;
151
152 if not FA_GAINLOSS_MIS_PKG.faggfy(bk.deprn_start_date, bk.p_cal,
153 dsd_mth, dsd_fy,
154 bk.fiscal_year_name, p_log_level_rec => p_log_level_rec) then
155
156 fa_srvr_msg.add_message(
157 calling_fn => 'fa_gainloss_pro_pkg.fagpsa',
158 name => 'FA_RET_GENERIC_ERROR',
159 token1 => 'MODULE',
160 value1 => 'FAGGFY',
161 token2 => 'INFO',
162 value2 => 'Deprn Prorate Date',
163 token3 => 'ASSET',
164 value3 => ret.asset_number , p_log_level_rec => p_log_level_rec);
165
166 return(FALSE);
167
168 end if;
169
170 bk.dsd_mth := dsd_mth;
171 bk.dsd_fy := dsd_fy;
172
173 /* Partially fill in the deprn structure */
174
175 dpr.asset_id := ret.asset_id;
176 dpr.book := ret.book;
177 dpr.adj_cost := bk.adjusted_cost;
178 dpr.rec_cost := bk.recoverable_cost;
179 dpr.adj_rate := bk.adj_rate;
180 dpr.rate_adj_factor := bk.raf;
181 dpr.reval_amo_basis := bk.reval_amort_basis;
182 dpr.adj_capacity := bk.adj_capacity;
183 dpr.capacity := bk.adj_capacity;
184 dpr.ltd_prod := 0;
185
186 dpr.adj_rec_cost := bk.adj_rec_cost;
187 dpr.salvage_value := bk.salvage_value;
188 dpr.old_adj_cost := bk.old_adj_cost;
189 dpr.formula_factor := bk.formula_factor;
190 dpr.set_of_books_id := ret.set_of_books_id;
191
192 /* Copy FA_BOOKS.ANNUAL_DEPRN_ROUNDING_FLAG from bk_struct to deprn_struct */
193
194 /* BUG# 2440378: Convert internal number code for rounding to string code.
195 dpr.deprn_rounding_flag := bk.deprn_rounding_flag;
196 */
197 if (bk.deprn_rounding_flag is null
198 or bk.deprn_rounding_flag=0) then
199 dpr.deprn_rounding_flag := NULL;
200 elsif bk.deprn_rounding_flag=1 then
201 dpr.deprn_rounding_flag := 'ADD';
202 elsif bk.deprn_rounding_flag=2 then
203 dpr.deprn_rounding_flag := 'ADJ';
204 elsif bk.deprn_rounding_flag=3 then
205 dpr.deprn_rounding_flag := 'RET';
206 elsif bk.deprn_rounding_flag=4 then
207 dpr.deprn_rounding_flag := 'REV';
208 elsif bk.deprn_rounding_flag=5 then
209 dpr.deprn_rounding_flag := 'TFR';
210 elsif bk.deprn_rounding_flag=6 then
211 dpr.deprn_rounding_flag := 'RES';
212 elsif bk.deprn_rounding_flag=7 then
213 dpr.deprn_rounding_flag := 'OVE';
214 else
215 dpr.deprn_rounding_flag := NULL;
216 end if;
217
218
219 dpr.asset_num := ret.asset_number;
220 dpr.calendar_type := bk.d_cal;
221 dpr.ceil_name := bk.ceiling_name;
222 dpr.bonus_rule := bk.bonus_rule;
223 dpr.method_code := bk.method_code;
224 dpr.jdate_in_service := bk.jdis;
225 dpr.life := bk.lifemonths;
226 dpr.y_begin := bk.cpd_fiscal_year;
227 dpr.y_end := bk.cpd_fiscal_year;
228
229 /* Adding the following for short tax years */
230 dpr.short_fiscal_year_flag := bk.short_fiscal_year_flag;
231 dpr.conversion_date := bk.conversion_date;
232 dpr.prorate_date := bk.prorate_date;
233 dpr.orig_deprn_start_date := bk.orig_deprn_start_date;
234
235 if ret.status = 'PENDING' then
236
237 if not FA_GAINLOSS_RET_PKG.fagret(ret, bk, dpr, today, cpd_ctr,
238 cpd_num,
239 ret_pdnum, user_id, p_log_level_rec => p_log_level_rec) then
240
241 fa_srvr_msg.add_message(
242 calling_fn => 'fa_gainloss_pro_pkg.fagpsa',
243 name => 'FA_RET_PROCESS_ERROR',
244 token1 => 'MODULE',
245 value1 => 'FAGRET',
246 token2 => 'PROCESS',
247 value2 => 'retire',
248 token3 => 'ASSET',
249 value3 => ret.asset_number , p_log_level_rec => p_log_level_rec);
250
251 return(FALSE);
252
253 end if;
254
255 else
256
257 if not FA_GAINLOSS_UND_PKG.fagrin(ret, bk, dpr, today, cpd_ctr,
258 cpd_num,
259 user_id, p_log_level_rec => p_log_level_rec) then
260
261 fa_srvr_msg.add_message(
262 calling_fn => 'fa_gainloss_pro_pkg.fagpsa',
263 name => 'FA_RET_PROCESS_ERROR',
264 token1 => 'MODULE',
265 value1 => 'FAGRIN',
266 token2 => 'PROCESS',
267 value2 => 'reinstate',
268 token3 => 'ASSET',
269 value3 => ret.asset_number , p_log_level_rec => p_log_level_rec);
270
271 return(FALSE);
272
273 end if;
274
275 end if;
276
277 return(TRUE);
278
279 END FAGPSA;
280
281
282 END FA_GAINLOSS_PRO_PKG; -- End of Package EFA_RPRO