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