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