[Home] [Help]
Skip to content
PACKAGE BODY: APPS.IGI_IAC_REVAL_ENGINE
Source
1 PACKAGE BODY IGI_IAC_REVAL_ENGINE AS
2 -- $Header: igiiareb.pls 120.11.12020000.1 2012/06/27 10:39:01 appldev ship $
3
4 --===========================FND_LOG.START=====================================
5
6 g_state_level NUMBER := FND_LOG.LEVEL_STATEMENT;
7 g_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
8 g_event_level NUMBER := FND_LOG.LEVEL_EVENT;
9 g_excep_level NUMBER := FND_LOG.LEVEL_EXCEPTION;
10 g_error_level NUMBER := FND_LOG.LEVEL_ERROR;
11 g_unexp_level NUMBER := FND_LOG.LEVEL_UNEXPECTED;
12 g_path VARCHAR2(100) := 'IGI.PLSQL.igiiareb.IGI_IAC_REVAL_ENGINE.';
13
14 --===========================FND_LOG.END=======================================
15
16 l_rec igi_iac_revaluation_rates%rowtype; -- create this for quicker access via sql navigator
17
18 procedure do_round ( p_amount in out NOCOPY number, p_book_type_code in varchar2) is
19 l_path varchar2(150) := g_path||'do_round(p_amount,p_book_type_code)';
20 l_amount number := p_amount;
21 l_amount_old number := p_amount;
22 --l_path varchar2(150) := g_path||'do_round';
23 begin
24 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'--- Inside Round() ---');
25 IF IGI_IAC_COMMON_UTILS.Iac_Round(X_Amount => l_amount, X_Book => p_book_type_code)
26 THEN
27 p_amount := l_amount;
28 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'IGI_IAC_COMMON_UTILS.Iac_Round is TRUE');
29 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'p_amount = '||p_amount);
30 ELSE
31 p_amount := round( l_amount, 2);
32 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'IGI_IAC_COMMON_UTILS.Iac_Round is FALSE');
33 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'p_amount = '||p_amount);
34 END IF;
35 exception when others then
36 p_amount := l_amount_old;
37 igi_iac_debug_pkg.debug_unexpected_msg(l_path);
38 Raise;
39 end;
40
41 procedure do_round ( p_info in out NOCOPY IGI_IAC_TYPES.iac_reval_output_asset ) is
42 p_info_old IGI_IAC_TYPES.iac_reval_output_asset;
43 l_path varchar2(150) := g_path||'do_round';
44 begin
45 p_info_old := p_info;
46
47 do_round( p_info.adjusted_cost , p_info.book_type_code ) ;
48 do_round( p_info.operating_acct , p_info.book_type_code ) ;
49 do_round( p_info.deprn_amount , p_info.book_type_code ) ;
50 do_round( p_info.backlog_deprn_reserve , p_info.book_type_code ) ;
51 do_round( p_info.deprn_reserve , p_info.book_type_code ) ;
52 do_round( p_info.general_fund , p_info.book_type_code ) ;
53 do_round( p_info.reval_reserve , p_info.book_type_code ) ;
54 do_round( p_info.net_book_value , p_info.book_type_code ) ;
55
56 exception when others then
57 p_info := p_info_old;
58 igi_iac_debug_pkg.debug_unexpected_msg(l_path);
59 Raise;
60 end;
61
62 procedure display ( p_info in IGI_IAC_TYPES.iac_reval_output_asset ) IS
63 l_path varchar2(150) := g_path||'display';
64 begin
65 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'++++++++++++++++++++++++++++++++++++++++++++++++');
66 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,' Adjusted cost '||p_info.adjusted_cost);
67 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,' Operating Acc '||p_info.operating_acct);
68 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,' Deprn amount '||p_info.deprn_amount );
69 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,' Backlog '||p_info.backlog_deprn_reserve);
70 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,' Deprn Reserve '||p_info.deprn_reserve);
71 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,' General Fund '||p_info.general_fund);
72 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,' Reval Reserve '||p_info.reval_reserve );
73 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,' NBV '||p_info.net_book_value );
74 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,' current rate '||p_info.current_reval_factor);
75 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,' cumulve rate '||p_info.cumulative_reval_factor);
76 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'++++++++++++++++++++++++++++++++++++++++++++++++');
77 end;
78
79 Function Calculations ( p_iac_reval_params in out NOCOPY IGI_IAC_TYPES.iac_reval_params
80 , p_second_set in boolean
81 )
82 RETURN BOOLEAN IS
83 p_iac_reval_params_old IGI_IAC_TYPES.iac_reval_params;
84 l_reval_prev IGI_IAC_TYPES.iac_reval_output_asset;
85 l_reval_curr IGI_IAC_TYPES.iac_reval_output_asset;
86 l_reval_mvmt IGI_IAC_TYPES.iac_reval_output_asset;
87 l_curr_rate number := 0;
88 l_prev_rate number := 0;
89 l_tran_rate number := 0;
90 l_py_factor number := 0;
91 l_salvage_value_correction number :=0;
92 l_salvage_value_correction_ytd number :=0;
93 l_path varchar2(150) := g_path||'Calculations';
94 BEGIN
95 p_iac_reval_params_old := p_iac_reval_params;
96
97 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'begin calculations');
98 if not p_second_set then
99 l_curr_rate := p_iac_reval_params.reval_curr_rate_info_first.cumulative_reval_factor;
100 l_prev_rate := p_iac_reval_params.reval_prev_rate_info.cumulative_reval_factor;
101
102 else
103 l_curr_rate := p_iac_reval_params.reval_curr_rate_info_next.cumulative_reval_factor;
104 l_prev_rate := p_iac_reval_params.reval_prev_rate_info.cumulative_reval_factor;
105 end if;
106 l_tran_rate := l_curr_rate/ l_prev_rate;
107
108 l_py_factor := p_iac_reval_params.fa_asset_info.deprn_periods_prior_year /
109 p_iac_reval_params.fa_asset_info.deprn_periods_elapsed
110 ;
111 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+calculations : l_curr_rate '|| l_curr_rate);
112 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+calculations : l_prev_rate '|| l_prev_rate);
113 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+calculations : l_tran_rate '|| l_tran_rate);
114
115 /* Apply the prev cumm rate to the fa info */
116 l_reval_prev := p_iac_reval_params.reval_input_asset;
117 l_reval_curr := p_iac_reval_params.reval_input_asset;
118
119 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,' + calculations : deprn Resreve '|| p_iac_reval_params.fa_asset_info.deprn_reserve);
120 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+ calculations : YTD '|| p_iac_reval_params.fa_asset_info.Ytd_deprn);
121
122 if (p_iac_reval_params.reval_control.first_time_flag) then
123 l_reval_prev.adjusted_cost := ( l_prev_rate * p_iac_reval_params.fa_asset_info.cost )
124 - p_iac_reval_params.fa_asset_info.cost ;
125 do_round(l_reval_prev.adjusted_cost,p_iac_reval_params.reval_asset_params.book_type_code);
126 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'l_reval_prev.adjusted_cost :'|| l_reval_prev.adjusted_cost);
127
128 if l_curr_rate >= 1 and l_prev_rate >= 1 then
129 l_reval_prev.operating_acct := 0;
130 else
131 l_reval_prev.operating_acct := l_reval_prev.adjusted_cost ;
132 end if;
133
134 p_iac_reval_params.reval_asset_params.prev_ytd_deprn := ( l_prev_rate * p_iac_reval_params.fa_asset_info.ytd_deprn)
135 - p_iac_reval_params.fa_asset_info.ytd_deprn;
136 do_round(p_iac_reval_params.reval_asset_params.prev_ytd_deprn,p_iac_reval_params.reval_asset_params.book_type_code);
137 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'p_iac_reval_params.reval_asset_params.prev_ytd_deprn :'|| p_iac_reval_params.reval_asset_params.prev_ytd_deprn);
138
139 l_reval_prev.backlog_deprn_reserve := (l_prev_rate - 1) *
140 ( p_iac_reval_params.fa_asset_info.deprn_reserve -
141 p_iac_reval_params.fa_asset_info.ytd_deprn)
142
143 /*) -
144 ( p_iac_reval_params.fa_asset_info.deprn_reserve -
145 p_iac_reval_params.fa_asset_info.ytd_deprn)*/ ;
146 do_round(l_reval_prev.backlog_deprn_reserve,p_iac_reval_params.reval_asset_params.book_type_code);
147 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'l_reval_prev.backlog_deprn_reserve :'
148 || l_reval_prev.backlog_deprn_reserve);
149
150 if l_reval_prev.adjusted_cost >= 0 then
151 l_reval_prev.general_fund := p_iac_reval_params.reval_asset_params.prev_ytd_deprn ;
152 l_reval_prev.reval_reserve := l_reval_prev.adjusted_cost - l_reval_prev.backlog_deprn_reserve
153 - l_reval_prev.general_fund ;
154 else
155 l_reval_prev.reval_reserve := 0 ;
156 l_reval_prev.general_fund := 0 ;
157 end if;
158
159 l_reval_prev.deprn_reserve := ( l_prev_rate * p_iac_reval_params.fa_asset_info.deprn_reserve)
160 - p_iac_reval_params.fa_asset_info.deprn_reserve
161 - l_reval_prev.backlog_deprn_reserve;
162 do_round(l_reval_prev.deprn_reserve,p_iac_reval_params.reval_asset_params.book_type_code);
163 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'l_reval_prev.deprn_reserve :'
164 || l_reval_prev.deprn_reserve);
165
166
167 l_reval_prev.net_book_value := l_reval_prev.adjusted_cost - l_reval_prev.deprn_reserve
168 - l_reval_prev.backlog_deprn_reserve;
169 else
170 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+calculations : not the first time');
171 p_iac_reval_params.reval_asset_params.prev_ytd_deprn := ( l_prev_rate * p_iac_reval_params.fa_asset_info.ytd_deprn)
172 - p_iac_reval_params.fa_asset_info.ytd_deprn;
173 do_round(p_iac_reval_params.reval_asset_params.prev_ytd_deprn,p_iac_reval_params.reval_asset_params.book_type_code);
174 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'p_iac_reval_params.reval_asset_params.prev_ytd_deprn :'
175 || p_iac_reval_params.reval_asset_params.prev_ytd_deprn);
176 end if;
177
178 /* Display prev record */
179 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'++++++++++++++++++++++++++++++++++++++++++++++++');
180 if p_second_set then
181 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+++++++++++ SECOND SET : START +++++++++++');
182 else
183 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'++++++++++++ FIRST SET : START +++++++++++');
184 end if;
185 Do_round( l_reval_prev );
186 Display( l_reval_prev );
187 /* Apply the curr cumm rate to the fa info */
188 l_reval_curr.adjusted_cost := ( l_curr_rate * p_iac_reval_params.fa_asset_info.cost )
189 - p_iac_reval_params.fa_asset_info.cost;
190 do_round(l_reval_curr.adjusted_cost,p_iac_reval_params.reval_asset_params.book_type_code);
191
192 IF p_iac_reval_params.fa_asset_info.period_counter_fully_reserved IS NOT NULL
193 AND p_iac_reval_params.reval_asset_params.period_counter > p_iac_reval_params.fa_asset_info.last_period_counter THEN
194 l_reval_curr.deprn_amount := 0;
195 l_reval_prev.deprn_amount := 0;
196 ELSE
197 l_reval_curr.deprn_amount := ( l_curr_rate * p_iac_reval_params.fa_asset_info.deprn_amount)
198 - p_iac_reval_params.fa_asset_info.deprn_amount;
199 do_round(l_reval_curr.deprn_amount ,p_iac_reval_params.reval_asset_params.book_type_code);
200 END IF;
201
202 if p_second_set then
203 p_iac_reval_params.reval_asset_params.curr_ytd_deprn_next
204 := ( l_curr_rate * p_iac_reval_params.fa_asset_info.ytd_deprn)
205 - p_iac_reval_params.fa_asset_info.ytd_deprn;
206 do_round(p_iac_reval_params.reval_asset_params.curr_ytd_deprn_next
207 ,p_iac_reval_params.reval_asset_params.book_type_code);
208
209 p_iac_reval_params.reval_asset_params.ytd_deprn_mvmt :=
210 p_iac_reval_params.reval_asset_params.curr_ytd_deprn_next -
211 p_iac_reval_params.reval_asset_params.prev_ytd_deprn ;
212 else
213 p_iac_reval_params.reval_asset_params.curr_ytd_deprn_first
214 := ( l_curr_rate * p_iac_reval_params.fa_asset_info.ytd_deprn)
215 - p_iac_reval_params.fa_asset_info.ytd_deprn;
216 do_round(p_iac_reval_params.reval_asset_params.curr_ytd_deprn_first
217 ,p_iac_reval_params.reval_asset_params.book_type_code);
218
219 p_iac_reval_params.reval_asset_params.ytd_deprn_mvmt :=
220 p_iac_reval_params.reval_asset_params.curr_ytd_deprn_first -
221 p_iac_reval_params.reval_asset_params.prev_ytd_deprn ;
222 end if;
223 /* Backlog = movement in current revaluation * gross pyrs acc deprn
224 */
225 if l_py_factor <> 0 then
226 declare
227 l_blog number;
228 begin
229
230 l_blog := ( p_iac_reval_params.fa_asset_info.deprn_reserve -
231 p_iac_reval_params.fa_asset_info.ytd_deprn) *
232 ( l_curr_rate - l_prev_rate );
233 do_round(l_blog ,p_iac_reval_params.reval_asset_params.book_type_code);
234 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+current period backlog is '|| l_blog);
235 l_reval_curr.backlog_deprn_reserve := l_blog + l_reval_prev.backlog_deprn_reserve;
236 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+cumulative backlog is '|| l_reval_curr.backlog_deprn_reserve);
237 end;
238 else
239 l_reval_curr.backlog_deprn_reserve := 0;
240 end if;
241
242 if l_curr_rate >= 1 and l_prev_rate >= 1 then
243 l_reval_curr.general_fund := l_reval_prev.general_fund +
244 p_iac_reval_params.reval_asset_params.ytd_deprn_mvmt ;
245
246 l_reval_curr.reval_reserve := l_reval_curr.adjusted_cost - l_reval_curr.backlog_deprn_reserve
247 - l_reval_curr.general_fund - l_reval_curr.operating_acct;
248 else
249 l_reval_curr.reval_reserve := 0;
250 l_reval_curr.operating_acct := l_reval_curr.adjusted_cost - l_reval_curr.backlog_deprn_reserve
251 - l_reval_curr.general_fund ;
252 end if;
253
254 l_reval_curr.deprn_reserve := ( l_curr_rate * p_iac_reval_params.fa_asset_info.deprn_reserve)
255 - p_iac_reval_params.fa_asset_info.deprn_reserve
256 - l_reval_curr.backlog_deprn_reserve;
257 do_round(l_reval_curr.deprn_reserve ,p_iac_reval_params.reval_asset_params.book_type_code);
258 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'l_reval_curr.deprn_reserve :'
259 || l_reval_curr.deprn_reserve);
260
261 l_reval_curr.net_book_value := l_reval_curr.adjusted_cost - l_reval_curr.deprn_reserve
262 - l_reval_curr.backlog_deprn_reserve;
263 Do_round( p_info => l_reval_curr );
264 /* put the differences in the asset mvmt table */
265 -- note accounting entries are created from this mvmt table --
266 if p_iac_reval_params.reval_control.first_time_flag then
267 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+first time flag is set.');
268 l_reval_mvmt := l_reval_curr;
269 else
270 l_reval_mvmt.adjusted_cost := l_reval_curr.adjusted_cost - l_reval_prev.adjusted_cost;
271 l_reval_mvmt.operating_acct := l_reval_curr.operating_acct - l_reval_prev.operating_acct;
272 l_reval_mvmt.deprn_amount := l_reval_curr.deprn_amount - l_reval_prev.deprn_amount;
273 l_reval_mvmt.backlog_deprn_reserve := l_reval_curr.backlog_deprn_reserve
274 - l_reval_prev.backlog_deprn_reserve;
275 l_reval_mvmt.deprn_reserve := l_reval_curr.deprn_reserve - l_reval_prev.deprn_reserve;
276 l_reval_mvmt.general_fund := l_reval_curr.general_fund - l_reval_prev.general_fund;
277 l_reval_mvmt.reval_reserve := l_reval_curr.reval_reserve - l_reval_prev.reval_reserve;
278 l_reval_mvmt.net_book_value := 0;
279 end if;
280 /* display results to the log file */
281 Do_round ( p_info => l_reval_mvmt );
282 if p_second_set then
283 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+++++++++++ SECOND SET : REVAL MVMT ++++++++');
284 else
285 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+++++++++++ FIRST SET : REVAL MVMT ++++++++');
286 end if;
287
288 Display ( p_info => l_reval_mvmt );
289 if p_second_set then
290 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+++++++++++ SECOND SET : REVAL END ++++++++');
291 else
292 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+++++++++++ FIRST SET : REVAL END ++++++++');
293 end if;
294 Display ( p_info => l_reval_curr );
295 if p_iac_reval_params.reval_control.first_time_flag then
296 p_iac_reval_params.reval_input_asset := l_reval_prev ;
297 end if;
298 p_iac_reval_params.reval_output_asset := l_reval_curr ;
299 p_iac_reval_params.reval_output_asset.cumulative_reval_factor := l_curr_rate;
300 p_iac_reval_params.reval_output_asset.current_reval_factor := l_tran_rate;
301 p_iac_reval_params.reval_output_asset_mvmt := l_reval_mvmt ;
302 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'end calculations');
303 return TRUE;
304
305 exception when others then
306 p_iac_reval_params := p_iac_reval_params_old;
307 igi_iac_debug_pkg.debug_unexpected_msg(l_path);
308 return FALSE;
309 END;
310
311 Function First_set_calculations ( p_iac_reval_params in out NOCOPY IGI_IAC_TYPES.iac_reval_params )
312 RETURN BOOLEAN IS
313 p_iac_reval_params_old IGI_IAC_TYPES.iac_reval_params;
314 l_path varchar2(150) := g_path||'First_set_calculations';
315 BEGIN
316
317 p_iac_reval_params_old := p_iac_reval_params;
318
319 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'begin first set calculations');
320 IF NOT Calculations ( p_iac_reval_params => p_iac_reval_params, p_second_set => false )
321 THEN
322 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'error first set calculations');
323 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'end first set calculations');
324 return false;
325 END IF;
326 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'end first set calculations');
327 return TRUE;
328 exception when others then
329 p_iac_reval_params := p_iac_reval_params_old;
330 igi_iac_debug_pkg.debug_unexpected_msg(l_path);
331 return FALSE;
332 END;
333
334 Function Next_set_calculations ( p_iac_reval_params in out NOCOPY IGI_IAC_TYPES.iac_reval_params )
335 RETURN BOOLEAN IS
336 p_iac_reval_params_old IGI_IAC_TYPES.iac_reval_params;
337 l_path varchar2(150) := g_path||'Next_set_calculations';
338 BEGIN
339
340 p_iac_reval_params_old := p_iac_reval_params;
341
342 IF NOT Calculations ( p_iac_reval_params => p_iac_reval_params, p_second_set => true )
343 THEN
344 igi_iac_debug_pkg.debug_other_string(g_error_level,l_path,'error next set calculations');
345 igi_iac_debug_pkg.debug_other_string(g_error_level,l_path,'end next set calculations');
346 return false;
347 END IF;
348 return TRUE;
349 exception when others then
350 p_iac_reval_params := p_iac_reval_params_old;
351 igi_iac_debug_pkg.debug_unexpected_msg(l_path);
352 return FALSE;
353 END;
354 /*
355 -- Get the rate information and then call Set_Calculations : FIRST and NEXT
356 */
357
358 Function Prepare_calculations ( p_iac_reval_params in out NOCOPY IGI_IAC_TYPES.iac_reval_params )
359 RETURN BOOLEAN IS
360 p_iac_reval_params_old IGI_IAC_TYPES.iac_reval_params;
361 l_path varchar2(150) := g_path||'Prepare_calculations';
362 BEGIN
363
364 p_iac_reval_params_old := p_iac_reval_params;
365
366 -- first split ratios (if revaluation is mixed!)
367 IF NOT IGI_IAC_REVAL_UTILITIES.split_rates
368 ( fp_asset_id => p_iac_reval_params.reval_asset_params.asset_id
369 , fp_book_type_code => p_iac_reval_params.reval_asset_params.book_type_code
370 , fp_revaluation_id => p_iac_reval_params.reval_asset_params.revaluation_id
371 , fp_period_counter => p_iac_reval_params.reval_asset_params.period_counter
372 , fp_current_factor => p_iac_reval_params.reval_asset_params.revaluation_rate
373 , fp_reval_type => p_iac_reval_params.reval_asset_rules.revaluation_type
374 , fp_first_time_flag => p_iac_reval_params.reval_control.first_time_flag
375 , fp_mixed_scenario => p_iac_reval_params.reval_control.mixed_scenario
376 , fp_reval_prev_rate_info => p_iac_reval_params.reval_prev_rate_info
377 , fp_reval_curr_rate_info_first => p_iac_reval_params.reval_curr_rate_info_first
378 , fp_reval_curr_rate_info_next => p_iac_reval_params.reval_curr_rate_info_next
379 )
380 THEN
381 igi_iac_debug_pkg.debug_other_string(g_error_level,l_path,'Unable to split rates!');
382 return FALSE;
383 END IF;
384
385 return TRUE;
386 exception when others then
387 p_iac_reval_params := p_iac_reval_params_old;
388 igi_iac_debug_pkg.debug_unexpected_msg(l_path);
389 return FALSE;
390 END;
391
392 function swap ( fp_reval_params1 IN IGI_IAC_TYPES.iac_reval_params
393 , fp_reval_params2 OUT NOCOPY IGI_IAC_TYPES.iac_reval_params
394 )
395 return boolean is
396 fp_reval_params2_old IGI_IAC_TYPES.iac_reval_params;
397 l_path varchar2(150) := g_path||'swap';
398 begin
399
400 if fp_reval_params1.reval_control.mixed_scenario then
401 igi_iac_debug_pkg.debug_other_string(g_state_level,l_path,'+intializing for the second set of calculations');
402 fp_reval_params2 := fp_reval_params1;
403 fp_reval_params2.reval_control.first_time_flag := false;
404 fp_reval_params2.reval_input_asset := fp_reval_params1.reval_output_asset;
405 fp_reval_params2.reval_output_asset := fp_reval_params1.reval_output_asset;
406 fp_reval_params2.reval_output_asset_mvmt.net_book_value := 0;
407 fp_reval_params2.reval_output_asset_mvmt.adjusted_cost := 0;
408 fp_reval_params2.reval_output_asset_mvmt.operating_acct := 0;
409 fp_reval_params2.reval_output_asset_mvmt.reval_reserve := 0;
410 fp_reval_params2.reval_output_asset_mvmt.deprn_amount := 0;
411 fp_reval_params2.reval_output_asset_mvmt.deprn_reserve := 0;
412 fp_reval_params2.reval_output_asset_mvmt.backlog_deprn_reserve := 0;
413 fp_reval_params2.reval_output_asset_mvmt.general_fund := 0;
414 fp_reval_params2.reval_output_asset_mvmt.current_reval_factor := 1;
415 fp_reval_params2.reval_output_asset_mvmt.cumulative_reval_factor := 1;
416 fp_reval_params2.reval_prev_rate_info := fp_reval_params1.reval_curr_rate_info_first;
417 fp_reval_params2.reval_asset_params.prev_ytd_deprn := fp_reval_params1.reval_asset_params.prev_ytd_deprn ;
418 fp_reval_params2.reval_asset_params.prev_ytd_opacc := fp_reval_params1.reval_asset_params.prev_ytd_opacc;
419 end if;
420 return true;
421 exception when others then
422 fp_reval_params2 := fp_reval_params2_old;
423 igi_iac_debug_pkg.debug_unexpected_msg(l_path);
424 return FALSE;
425 end;
426
427 END;
428
429