DBA Data[Home] [Help]

PACKAGE BODY: APPS.FA_RESERVE_TRANSFER_PVT

Source


1 PACKAGE BODY FA_RESERVE_TRANSFER_PVT AS
2 /* $Header: FAVRSVXB.pls 120.7 2005/07/25 10:04:05 yyoon noship $ */
3 
4 FUNCTION do_adjustment
5    (px_trans_rec               IN OUT NOCOPY FA_API_TYPES.trans_rec_type,
6     px_asset_hdr_rec           IN OUT NOCOPY FA_API_TYPES.asset_hdr_rec_type,
7     p_asset_desc_rec           IN     FA_API_TYPES.asset_desc_rec_type,
8     p_asset_type_rec           IN     FA_API_TYPES.asset_type_rec_type,
9     p_asset_cat_rec            IN     FA_API_TYPES.asset_cat_rec_type,
10     p_asset_fin_rec_old        IN     FA_API_TYPES.asset_fin_rec_type,
11     x_asset_fin_rec_new           OUT NOCOPY FA_API_TYPES.asset_fin_rec_type,
12     p_asset_deprn_rec_old      IN     FA_API_TYPES.asset_deprn_rec_type,
13     x_asset_deprn_rec_new         OUT NOCOPY FA_API_TYPES.asset_deprn_rec_type,
14     p_period_rec               IN     FA_API_TYPES.period_rec_type,
15     p_mrc_sob_type_code        IN     VARCHAR2,
16     p_source_dest              IN     VARCHAR2,
17     p_amount                   IN     NUMBER,
18     p_log_level_rec        IN     FA_API_TYPES.log_level_rec_type default null) RETURN BOOLEAN IS
19 
20    -- used for new group code
21    l_adj                 fa_adjust_type_pkg.fa_adj_row_struct;
22    l_bks_rowid           varchar2(30);
23    l_status              BOOLEAN;
24 
25    --
26    -- For calling faxama.
27    --
28    l_deprn_exp           NUMBER := 0;
29    l_bonus_deprn_exp     NUMBER := 0;
30    l_deprn_rsv           NUMBER := 0;
31    l_asset_deprn_rec_adj FA_API_TYPES.ASSET_DEPRN_REC_TYPE;
32 
33    l_calling_fn          VARCHAR2(35) := 'fa_group_reserve_pvt.do_transfer';
34    adj_err               EXCEPTION;
35 
36 BEGIN
37 
38    -- set the new structs to the old ones
39    -- (values which changes such as adjusted_cost will be set below)
40 
41    x_asset_fin_rec_new   := p_asset_fin_rec_old;
42    x_asset_deprn_rec_new := p_asset_deprn_rec_old;
43 
44 
45    -- call the category books cache for the accounts
46    if not fa_cache_pkg.fazccb(X_book   => px_asset_hdr_rec.book_type_code,
47                               X_cat_id => p_asset_cat_rec.category_id
48                               ,p_log_level_rec => p_log_level_rec) then
49       raise adj_err;
50    end if;
51 
52 
53    -- call faxinaj to insert the amounts (flush them too)
54    l_adj.transaction_header_id    := px_trans_rec.transaction_header_id;
55    l_adj.asset_id                 := px_asset_hdr_rec.asset_id;
56    l_adj.book_type_code           := px_asset_hdr_rec.book_type_code;
57    l_adj.period_counter_created   := fa_cache_pkg.fazcbc_record.last_period_counter + 1;
58    l_adj.period_counter_adjusted  := fa_cache_pkg.fazcbc_record.last_period_counter + 1;
59    l_adj.current_units            := p_asset_desc_rec.current_units;
60    l_adj.selection_mode           := FA_ADJUST_TYPE_PKG.FA_AJ_ACTIVE;
61    l_adj.selection_thid           := 0;
62    l_adj.selection_retid          := 0;
63    l_adj.leveling_flag            := TRUE;
64    l_adj.last_update_date         := px_trans_rec.transaction_date_entered;
65 
66    l_adj.flush_adj_flag           := TRUE;
67    l_adj.gen_ccid_flag            := TRUE;
68    l_adj.annualized_adjustment    := 0;
69    l_adj.asset_invoice_id         := 0;
70    l_adj.code_combination_id      := 0;
71    l_adj.distribution_id          := 0;
72 
73    l_adj.deprn_override_flag:= '';
74 
75    l_adj.source_type_code         := 'ADJUSTMENT'; -- ???
76    l_adj.adjustment_type          := 'RESERVE';
77    l_adj.adjustment_amount        := p_amount;
78    l_adj.account                  := fa_cache_pkg.fazccb_record.deprn_reserve_acct;
79    l_adj.account_type             := 'DEPRN_RESERVE_ACCT';
80    l_adj.mrc_sob_type_code        := p_mrc_sob_type_code;
81 
82 
83 
84    if (p_source_dest = 'S') then
85       l_adj.debit_credit_flag        := 'DR';
86       l_adj.source_dest_code         := 'SOURCE';
87    else
88       l_adj.debit_credit_flag        := 'CR';
89       l_adj.source_dest_code         := 'DEST';
90    end if;
91 
92    if not FA_INS_ADJUST_PKG.faxinaj
93                 (l_adj,
94                  px_trans_rec.who_info.last_update_date,
95                  px_trans_rec.who_info.last_updated_by,
96                  px_trans_rec.who_info.last_update_login
97                  ,p_log_level_rec => p_log_level_rec) then
98       raise adj_err;
99    end if;
100 
101    -- for life based methods, this where we would need to recalculate raf, etc
102    -- should be able to use the
103    --
104    -- insure the amort start date is null and then add the amount to the old reserve
105 
106    px_trans_rec.amortization_start_date := null;
107    if (p_source_dest = 'S') then
108       x_asset_deprn_rec_new.deprn_reserve := x_asset_deprn_rec_new.deprn_reserve - p_amount;
109       l_asset_deprn_rec_adj.deprn_reserve := -1 * p_amount;
110    else
111       x_asset_deprn_rec_new.deprn_reserve := x_asset_deprn_rec_new.deprn_reserve + p_amount;
112       l_asset_deprn_rec_adj.deprn_reserve := p_amount;
113    end if;
114 
115    if (not FA_AMORT_PVT.faxama(
116               px_trans_rec            => px_trans_rec,
117               p_asset_hdr_rec         => px_asset_hdr_rec,
118               p_asset_desc_rec        => p_asset_desc_rec,
119               p_asset_cat_rec         => p_asset_cat_rec,
120               p_asset_type_rec        => p_asset_type_rec,
121               p_asset_fin_rec_old     => p_asset_fin_rec_old,
122               px_asset_fin_rec_new    => x_asset_fin_rec_new,
123               p_asset_deprn_rec       => p_asset_deprn_rec_old,
124               p_asset_deprn_rec_adj   => l_asset_deprn_rec_adj,
125               p_period_rec            => p_period_rec,
126               p_mrc_sob_type_code     => p_mrc_sob_type_code,
127               p_running_mode          => fa_std_types.FA_DPR_NORMAL,
128               p_used_by_revaluation   => null,
129               p_reclassed_asset_id    => null,
130               p_reclass_src_dest      => null,
131               p_reclassed_asset_dpis  => null,
132               p_update_books_summary  => TRUE,
133               p_proceeds_of_sale      => 0,
134               p_cost_of_removal       => 0,
135               x_deprn_exp             => l_deprn_exp,
136               x_bonus_deprn_exp       => l_bonus_deprn_exp,
137               x_deprn_rsv             => l_deprn_rsv
138               ,p_log_level_rec => p_log_level_rec)) then
139 
140       raise adj_err;
141 
142    end if; -- (not FA_AMORT_PVT.faxama
143 
144 
145    -- terminate/insert fa_books rows
146    -- terminate the active row
147    fa_books_pkg.deactivate_row
148         (X_asset_id                  => px_asset_hdr_rec.asset_id,
149          X_book_type_code            => px_asset_hdr_rec.book_type_code,
150          X_transaction_header_id_out => px_trans_rec.transaction_header_id,
151          X_date_ineffective          => px_trans_rec.who_info.last_update_date,
152          X_mrc_sob_type_code         => p_mrc_sob_type_code,
153          X_Calling_Fn                => l_calling_fn
154          ,p_log_level_rec => p_log_level_rec);
155 
156    -- fa books
157    fa_books_pkg.insert_row
158          (X_Rowid                        => l_bks_rowid,
159           X_Book_Type_Code               => px_asset_hdr_rec.book_type_code,
160           X_Asset_Id                     => px_asset_hdr_rec.asset_id,
161           X_Date_Placed_In_Service       => x_asset_fin_rec_new.date_placed_in_service,
162           X_Date_Effective               => px_trans_rec.who_info.last_update_date,
163           X_Deprn_Start_Date             => x_asset_fin_rec_new.deprn_start_date,
164           X_Deprn_Method_Code            => x_asset_fin_rec_new.deprn_method_code,
165           X_Life_In_Months               => x_asset_fin_rec_new.life_in_months,
166           X_Rate_Adjustment_Factor       => x_asset_fin_rec_new.rate_adjustment_factor,
167           X_Adjusted_Cost                => x_asset_fin_rec_new.adjusted_cost,
168           X_Cost                         => x_asset_fin_rec_new.cost,
169           X_Original_Cost                => x_asset_fin_rec_new.original_cost,
170           X_Salvage_Value                => x_asset_fin_rec_new.salvage_value,
171           X_Prorate_Convention_Code      => x_asset_fin_rec_new.prorate_convention_code,
172           X_Prorate_Date                 => x_asset_fin_rec_new.prorate_date,
173           X_Cost_Change_Flag             => x_asset_fin_rec_new.cost_change_flag,
174           X_Adjustment_Required_Status   => x_asset_fin_rec_new.adjustment_required_status,
175           X_Capitalize_Flag              => x_asset_fin_rec_new.capitalize_flag,
176           X_Retirement_Pending_Flag      => x_asset_fin_rec_new.retirement_pending_flag,
177           X_Depreciate_Flag              => x_asset_fin_rec_new.depreciate_flag,
178           X_Disabled_Flag                => x_asset_fin_rec_new.disabled_flag,--HH
179           X_Last_Update_Date             => px_trans_rec.who_info.last_update_date,
180           X_Last_Updated_By              => px_trans_rec.who_info.last_updated_by,
181           X_Date_Ineffective             => NULL,
182           X_Transaction_Header_Id_In     => px_trans_rec.transaction_header_id,
183           X_Transaction_Header_Id_Out    => NULL,
184           X_Itc_Amount_Id                => x_asset_fin_rec_new.itc_amount_id,
185           X_Itc_Amount                   => x_asset_fin_rec_new.itc_amount,
186           X_Retirement_Id                => x_asset_fin_rec_new.retirement_id,
187           X_Tax_Request_Id               => x_asset_fin_rec_new.tax_request_id,
188           X_Itc_Basis                    => x_asset_fin_rec_new.itc_basis,
189           X_Basic_Rate                   => x_asset_fin_rec_new.basic_rate,
190           X_Adjusted_Rate                => x_asset_fin_rec_new.adjusted_rate,
191           X_Bonus_Rule                   => x_asset_fin_rec_new.bonus_rule,
192           X_Ceiling_Name                 => x_asset_fin_rec_new.ceiling_name,
193           X_Recoverable_Cost             => x_asset_fin_rec_new.recoverable_cost,
194           X_Last_Update_Login            => px_trans_rec.who_info.last_update_login,
195           X_Adjusted_Capacity            => x_asset_fin_rec_new.adjusted_capacity,
196           X_Fully_Rsvd_Revals_Counter    => x_asset_fin_rec_new.fully_rsvd_revals_counter,
197           X_Idled_Flag                   => x_asset_fin_rec_new.idled_flag,
198           X_Period_Counter_Capitalized   => x_asset_fin_rec_new.period_counter_capitalized,
199           X_PC_Fully_Reserved            => x_asset_fin_rec_new.period_counter_fully_reserved,
200           X_Period_Counter_Fully_Retired => x_asset_fin_rec_new.period_counter_fully_retired,
201           X_Production_Capacity          => x_asset_fin_rec_new.production_capacity,
202           X_Reval_Amortization_Basis     => x_asset_fin_rec_new.reval_amortization_basis,
203           X_Reval_Ceiling                => x_asset_fin_rec_new.reval_ceiling,
204           X_Unit_Of_Measure              => x_asset_fin_rec_new.unit_of_measure,
205           X_Unrevalued_Cost              => x_asset_fin_rec_new.unrevalued_cost,
206           X_Annual_Deprn_Rounding_Flag   => x_asset_fin_rec_new.annual_deprn_rounding_flag,
207           X_Percent_Salvage_Value        => x_asset_fin_rec_new.percent_salvage_value,
208           X_Allowed_Deprn_Limit          => x_asset_fin_rec_new.allowed_deprn_limit,
209           X_Allowed_Deprn_Limit_Amount   => x_asset_fin_rec_new.allowed_deprn_limit_amount,
210           X_Period_Counter_Life_Complete => x_asset_fin_rec_new.period_counter_life_complete,
211           X_Adjusted_Recoverable_Cost    => x_asset_fin_rec_new.adjusted_recoverable_cost,
212           X_Short_Fiscal_Year_Flag       => x_asset_fin_rec_new.short_fiscal_year_flag,
213           X_Conversion_Date              => x_asset_fin_rec_new.conversion_date,
214           X_Orig_Deprn_Start_Date        => x_asset_fin_rec_new.orig_deprn_start_date,
215           X_Remaining_Life1              => x_asset_fin_rec_new.remaining_life1,
216           X_Remaining_Life2              => x_asset_fin_rec_new.remaining_life2,
217           X_Old_Adj_Cost                 => x_asset_fin_rec_new.old_adjusted_cost,
218           X_Formula_Factor               => x_asset_fin_rec_new.formula_factor,
219           X_gf_Attribute1                => x_asset_fin_rec_new.global_attribute1,
220           X_gf_Attribute2                => x_asset_fin_rec_new.global_attribute2,
221           X_gf_Attribute3                => x_asset_fin_rec_new.global_attribute3,
222           X_gf_Attribute4                => x_asset_fin_rec_new.global_attribute4,
223           X_gf_Attribute5                => x_asset_fin_rec_new.global_attribute5,
224           X_gf_Attribute6                => x_asset_fin_rec_new.global_attribute6,
225           X_gf_Attribute7                => x_asset_fin_rec_new.global_attribute7,
226           X_gf_Attribute8                => x_asset_fin_rec_new.global_attribute8,
227           X_gf_Attribute9                => x_asset_fin_rec_new.global_attribute9,
228           X_gf_Attribute10               => x_asset_fin_rec_new.global_attribute10,
229           X_gf_Attribute11               => x_asset_fin_rec_new.global_attribute11,
230           X_gf_Attribute12               => x_asset_fin_rec_new.global_attribute12,
231           X_gf_Attribute13               => x_asset_fin_rec_new.global_attribute13,
232           X_gf_Attribute14               => x_asset_fin_rec_new.global_attribute14,
233           X_gf_Attribute15               => x_asset_fin_rec_new.global_attribute15,
234           X_gf_Attribute16               => x_asset_fin_rec_new.global_attribute16,
235           X_gf_Attribute17               => x_asset_fin_rec_new.global_attribute17,
236           X_gf_Attribute18               => x_asset_fin_rec_new.global_attribute18,
237           X_gf_Attribute19               => x_asset_fin_rec_new.global_attribute19,
238           X_gf_Attribute20               => x_asset_fin_rec_new.global_attribute20,
239           X_global_attribute_category    => x_asset_fin_rec_new.global_attribute_category,
240           X_group_asset_id               => x_asset_fin_rec_new.group_asset_id,
241           X_salvage_type                 => x_asset_fin_rec_new.salvage_type,
242           X_deprn_limit_type             => x_asset_fin_rec_new.deprn_limit_type,
243           X_over_depreciate_option       => x_asset_fin_rec_new.over_depreciate_option,
244           X_super_group_id               => x_asset_fin_rec_new.super_group_id,
245           X_reduction_rate               => x_asset_fin_rec_new.reduction_rate,
246           X_reduce_addition_flag         => x_asset_fin_rec_new.reduce_addition_flag,
247           X_reduce_adjustment_flag       => x_asset_fin_rec_new.reduce_adjustment_flag,
248           X_reduce_retirement_flag       => x_asset_fin_rec_new.reduce_retirement_flag,
249           X_recognize_gain_loss          => x_asset_fin_rec_new.recognize_gain_loss,
250           X_recapture_reserve_flag       => x_asset_fin_rec_new.recapture_reserve_flag,
251           X_limit_proceeds_flag          => x_asset_fin_rec_new.limit_proceeds_flag,
252           X_terminal_gain_loss           => x_asset_fin_rec_new.terminal_gain_loss,
253           X_exclude_proceeds_from_basis  => x_asset_fin_rec_new.exclude_proceeds_from_basis,
254           X_retirement_deprn_option      => x_asset_fin_rec_new.retirement_deprn_option,
255           X_tracking_method              => x_asset_fin_rec_new.tracking_method,
256           X_allocate_to_fully_rsv_flag   => x_asset_fin_rec_new.allocate_to_fully_rsv_flag,
257           X_allocate_to_fully_ret_flag   => x_asset_fin_rec_new.allocate_to_fully_ret_flag,
258           X_exclude_fully_rsv_flag       => x_asset_fin_rec_new.exclude_fully_rsv_flag,
259           X_excess_allocation_option     => x_asset_fin_rec_new.excess_allocation_option,
260           X_depreciation_option          => x_asset_fin_rec_new.depreciation_option,
261           X_member_rollup_flag           => x_asset_fin_rec_new.member_rollup_flag,
262           X_ytd_proceeds                 => x_asset_fin_rec_new.ytd_proceeds,
263           X_ltd_proceeds                 => x_asset_fin_rec_new.ltd_proceeds,
264           X_eofy_reserve                 => x_asset_fin_rec_new.eofy_reserve,
265           X_terminal_gain_loss_amount    => x_asset_fin_rec_new.terminal_gain_loss_amount,
266           X_ltd_cost_of_removal          => x_asset_fin_rec_new.ltd_cost_of_removal,
267           X_mrc_sob_type_code            => p_mrc_sob_type_code,
268           X_Return_Status                => l_status,
269           X_Calling_Fn                   => l_calling_fn
270           ,p_log_level_rec => p_log_level_rec);
271 
272    if not l_status then
273       raise adj_err;
274    end if;
275 
276    return true;
277 
278 EXCEPTION
279    when adj_err then
280         fa_srvr_msg.add_message(calling_fn => l_calling_fn
281                 ,p_log_level_rec => p_log_level_rec);
282         return false;
283    when others then
284         fa_srvr_msg.add_sql_error(calling_fn => l_calling_fn
285                 ,p_log_level_rec => p_log_level_rec);
286         return false;
287 
288 END do_adjustment;
289 
290 END FA_RESERVE_TRANSFER_PVT;