[Home] [Help]
PACKAGE BODY: APPS.FA_DEPRN_SUMMARY_PKG
Source
1 PACKAGE BODY FA_DEPRN_SUMMARY_PKG as
2 /* $Header: faxidsb.pls 120.4 2005/07/25 10:01:27 yyoon ship $ */
3
4 PROCEDURE Insert_Row(X_Rowid IN OUT NOCOPY VARCHAR2,
5 X_Book_Type_Code VARCHAR2,
6 X_Asset_Id NUMBER,
7 X_Deprn_Run_Date DATE,
8 X_Deprn_Amount NUMBER,
9 X_Ytd_Deprn NUMBER,
10 X_Deprn_Reserve NUMBER,
11 X_Deprn_Source_Code VARCHAR2,
12 X_Adjusted_Cost NUMBER,
13 X_Bonus_Rate NUMBER DEFAULT NULL,
14 X_Ltd_Production NUMBER DEFAULT NULL,
15 X_Period_Counter NUMBER,
16 X_Production NUMBER DEFAULT NULL,
17 X_Reval_Amortization NUMBER DEFAULT NULL,
18 X_Reval_Amortization_Basis NUMBER DEFAULT NULL,
19 X_Reval_Deprn_Expense NUMBER DEFAULT NULL,
20 X_Reval_Reserve NUMBER DEFAULT NULL,
21 X_Ytd_Production NUMBER DEFAULT NULL,
22 X_Ytd_Reval_Deprn_Expense NUMBER DEFAULT NULL,
23 X_Bonus_Deprn_Amount NUMBER,
24 X_Bonus_Ytd_Deprn NUMBER,
25 X_Bonus_Deprn_Reserve NUMBER,
26 X_mrc_sob_type_code VARCHAR2 DEFAULT 'P',
27 X_Calling_Fn VARCHAR2,
28 p_log_level_rec in fa_api_types.log_level_rec_type default null) IS
29
30 CURSOR C_ds IS SELECT rowid FROM fa_deprn_summary
31 WHERE asset_id = X_Asset_Id
32 AND book_type_code = X_Book_Type_Code
33 AND period_counter = X_Period_Counter;
34
35 CURSOR C_ds_mc IS SELECT rowid FROM fa_deprn_summary_mrc_v
36 WHERE asset_id = X_Asset_Id
37 AND book_type_code = X_Book_Type_Code
38 AND period_counter = X_Period_Counter;
39
40
41 BEGIN
42
43 if (X_mrc_sob_type_code = 'R') then
44
45 INSERT INTO fa_deprn_summary_mrc_v(
46 book_type_code,
47 asset_id,
48 deprn_run_date,
49 deprn_amount,
50 ytd_deprn,
51 deprn_reserve,
52 deprn_source_code,
53 adjusted_cost,
54 bonus_rate,
55 ltd_production,
56 period_counter,
57 production,
58 reval_amortization,
59 reval_amortization_basis,
60 reval_deprn_expense,
61 reval_reserve,
62 ytd_production,
63 ytd_reval_deprn_expense,
64 bonus_deprn_amount,
65 bonus_ytd_deprn,
66 bonus_deprn_reserve
67 ) VALUES (
68 X_Book_Type_Code,
69 X_Asset_Id,
70 X_Deprn_Run_Date,
71 X_Deprn_Amount,
72 X_Ytd_Deprn,
73 X_Deprn_Reserve,
74 X_Deprn_Source_Code,
75 X_Adjusted_Cost,
76 X_Bonus_Rate,
77 X_Ltd_Production,
78 X_Period_Counter,
79 X_Production,
80 X_Reval_Amortization,
81 X_Reval_Amortization_Basis,
82 X_Reval_Deprn_Expense,
83 X_Reval_Reserve,
84 X_Ytd_Production,
85 X_Ytd_Reval_Deprn_Expense,
86 X_Bonus_Deprn_Amount,
87 X_Bonus_Ytd_Deprn,
88 X_Bonus_Deprn_Reserve
89 );
90
91 OPEN C_ds_mc;
92 FETCH C_ds_mc INTO X_Rowid;
93 if (C_ds_mc%NOTFOUND) then
94 CLOSE C_ds_mc;
95 Raise NO_DATA_FOUND;
96 end if;
97 CLOSE C_ds_mc;
98
99 else
100 INSERT INTO fa_deprn_summary(
101 book_type_code,
102 asset_id,
103 deprn_run_date,
104 deprn_amount,
105 ytd_deprn,
106 deprn_reserve,
107 deprn_source_code,
108 adjusted_cost,
109 bonus_rate,
110 ltd_production,
111 period_counter,
112 production,
113 reval_amortization,
114 reval_amortization_basis,
115 reval_deprn_expense,
116 reval_reserve,
117 ytd_production,
118 ytd_reval_deprn_expense,
119 bonus_deprn_amount,
120 bonus_ytd_deprn,
121 bonus_deprn_reserve
122 ) VALUES (
123 X_Book_Type_Code,
124 X_Asset_Id,
125 X_Deprn_Run_Date,
126 X_Deprn_Amount,
127 X_Ytd_Deprn,
128 X_Deprn_Reserve,
129 X_Deprn_Source_Code,
130 X_Adjusted_Cost,
131 X_Bonus_Rate,
132 X_Ltd_Production,
133 X_Period_Counter,
134 X_Production,
135 X_Reval_Amortization,
136 X_Reval_Amortization_Basis,
137 X_Reval_Deprn_Expense,
138 X_Reval_Reserve,
139 X_Ytd_Production,
140 X_Ytd_Reval_Deprn_Expense,
141 X_Bonus_Deprn_Amount,
142 X_Bonus_Ytd_Deprn,
143 X_Bonus_Deprn_Reserve
144 );
145
146 OPEN C_ds;
147 FETCH C_ds INTO X_Rowid;
148 if (C_ds%NOTFOUND) then
149 CLOSE C_ds;
150 Raise NO_DATA_FOUND;
151 end if;
152 CLOSE C_ds;
153
154 end if;
155
156
157 exception
158 when others then
159 FA_STANDARD_PKG.RAISE_ERROR(
160 CALLED_FN => 'fa_deprn_summary_pkg.insert_row',
161 CALLING_FN => X_Calling_Fn
162 ,p_log_level_rec => p_log_level_rec);
163
164 END Insert_Row;
165
166
167 PROCEDURE Lock_Row(X_Rowid VARCHAR2,
168 X_Book_Type_Code VARCHAR2,
169 X_Asset_Id NUMBER,
170 X_Deprn_Run_Date DATE,
171 X_Deprn_Amount NUMBER,
172 X_Ytd_Deprn NUMBER,
173 X_Deprn_Reserve NUMBER,
174 X_Deprn_Source_Code VARCHAR2,
175 X_Adjusted_Cost NUMBER,
176 X_Bonus_Rate NUMBER DEFAULT NULL,
177 X_Ltd_Production NUMBER DEFAULT NULL,
178 X_Period_Counter NUMBER,
179 X_Production NUMBER DEFAULT NULL,
180 X_Reval_Amortization NUMBER DEFAULT NULL,
181 X_Reval_Amortization_Basis NUMBER DEFAULT NULL,
182 X_Reval_Deprn_Expense NUMBER DEFAULT NULL,
183 X_Reval_Reserve NUMBER DEFAULT NULL,
184 X_Ytd_Production NUMBER DEFAULT NULL,
185 X_Ytd_Reval_Deprn_Expense NUMBER DEFAULT NULL,
186 X_Calling_Fn VARCHAR2,
187 p_log_level_rec in fa_api_types.log_level_rec_type default null) IS
188 CURSOR C IS
189 SELECT book_type_code,
190 asset_id,
191 deprn_run_date,
192 deprn_amount,
193 ytd_deprn,
194 deprn_reserve,
195 deprn_source_code,
196 adjusted_cost,
197 bonus_rate,
198 ltd_production,
199 period_counter,
200 production,
201 reval_amortization,
202 reval_amortization_basis,
203 reval_deprn_expense,
204 reval_reserve,
205 ytd_production,
206 ytd_reval_deprn_expense,
207 prior_fy_expense
208 FROM fa_deprn_summary
209 WHERE rowid = X_Rowid
210 FOR UPDATE of Asset_Id NOWAIT;
211 Recinfo C%ROWTYPE;
212
213
214 BEGIN
215 OPEN C;
216 FETCH C INTO Recinfo;
217 if (C%NOTFOUND) then
218 CLOSE C;
219 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
220 APP_EXCEPTION.Raise_Exception;
221 end if;
222 CLOSE C;
223 if (
224
225 (Recinfo.book_type_code = X_Book_Type_Code)
226 AND (Recinfo.asset_id = X_Asset_Id)
227 AND (Recinfo.deprn_run_date = X_Deprn_Run_Date)
228 AND (Recinfo.deprn_amount = X_Deprn_Amount)
229 AND (Recinfo.ytd_deprn = X_Ytd_Deprn)
230 AND (Recinfo.deprn_reserve = X_Deprn_Reserve)
231 AND (Recinfo.deprn_source_code = X_Deprn_Source_Code)
232 AND (Recinfo.adjusted_cost = X_Adjusted_Cost)
233 AND ( (Recinfo.bonus_rate = X_Bonus_Rate)
234 OR ( (Recinfo.bonus_rate IS NULL)
235 AND (X_Bonus_Rate IS NULL)))
236 AND ( (Recinfo.ltd_production = X_Ltd_Production)
237 OR ( (Recinfo.ltd_production IS NULL)
238 AND (X_Ltd_Production IS NULL)))
239 AND (Recinfo.period_counter = X_Period_Counter)
240 AND ( (Recinfo.production = X_Production)
241 OR ( (Recinfo.production IS NULL)
242 AND (X_Production IS NULL)))
243 AND ( (Recinfo.reval_amortization = X_Reval_Amortization)
244 OR ( (Recinfo.reval_amortization IS NULL)
245 AND (X_Reval_Amortization IS NULL)))
246 AND ( (Recinfo.reval_amortization_basis =
247 X_Reval_Amortization_Basis)
248 OR ( (Recinfo.reval_amortization_basis IS NULL)
249 AND (X_Reval_Amortization_Basis IS NULL)))
250 AND ( (Recinfo.reval_deprn_expense = X_Reval_Deprn_Expense)
251 OR ( (Recinfo.reval_deprn_expense IS NULL)
252 AND (X_Reval_Deprn_Expense IS NULL)))
253 AND ( (Recinfo.reval_reserve = X_Reval_Reserve)
254 OR ( (Recinfo.reval_reserve IS NULL)
255 AND (X_Reval_Reserve IS NULL)))
256 AND ( (Recinfo.ytd_production = X_Ytd_Production)
257 OR ( (Recinfo.ytd_production IS NULL)
258 AND (X_Ytd_Production IS NULL)))
259 AND ( (Recinfo.ytd_reval_deprn_expense =
260 X_Ytd_Reval_Deprn_Expense)
261 OR ( (Recinfo.ytd_reval_deprn_expense IS NULL)
262 AND (X_Ytd_Reval_Deprn_Expense IS NULL)))) then
263 return;
264 else
265 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
266 APP_EXCEPTION.Raise_Exception;
267 end if;
268 END Lock_Row;
269
270
271
272 PROCEDURE Update_Row(X_Rowid VARCHAR2 DEFAULT NULL,
273 X_Book_Type_Code VARCHAR2 DEFAULT NULL,
274 X_Asset_Id NUMBER DEFAULT NULL,
275 X_Deprn_Run_Date DATE DEFAULT NULL,
276 X_Deprn_Amount NUMBER DEFAULT NULL,
277 X_Ytd_Deprn NUMBER DEFAULT NULL,
278 X_Deprn_Reserve NUMBER DEFAULT NULL,
279 X_Deprn_Source_Code VARCHAR2 DEFAULT NULL,
280 X_Adjusted_Cost NUMBER DEFAULT NULL,
281 X_Bonus_Rate NUMBER DEFAULT NULL,
282 X_Ltd_Production NUMBER DEFAULT NULL,
283 X_Period_Counter NUMBER DEFAULT NULL,
284 X_Production NUMBER DEFAULT NULL,
285 X_Reval_Amortization NUMBER DEFAULT NULL,
286 X_Reval_Amortization_Basis NUMBER DEFAULT NULL,
287 X_Reval_Deprn_Expense NUMBER DEFAULT NULL,
288 X_Reval_Reserve NUMBER DEFAULT NULL,
289 X_Ytd_Production NUMBER DEFAULT NULL,
290 X_Ytd_Reval_Deprn_Expense NUMBER DEFAULT NULL,
291 X_Bonus_Deprn_Amount NUMBER DEFAULT NULL,
292 X_Bonus_Ytd_Deprn NUMBER DEFAULT NULL,
293 X_Bonus_Deprn_Reserve NUMBER DEFAULT NULL,
294 X_mrc_sob_type_code VARCHAR2 DEFAULT 'P',
295 X_Calling_Fn VARCHAR2,
296 p_log_level_rec in fa_api_types.log_level_rec_type default null) IS
297
298 BEGIN
299
300 if (X_rowid is not null) then
301
302 if (X_mrc_sob_type_code = 'R') then
303
304 UPDATE fa_deprn_summary_mrc_v
305 SET
306 book_type_code = decode(X_Book_Type_Code,
307 NULL, book_type_code,
308 FND_API.G_MISS_CHAR, null,
309 X_Book_Type_Code),
310 asset_id = decode(X_Asset_Id,
311 NULL, asset_id,
312 FND_API.G_MISS_NUM, null,
313 X_Asset_Id),
314 deprn_run_date = decode(X_Deprn_Run_Date,
315 NULL, deprn_run_date,
316 X_Deprn_Run_Date),
317 deprn_amount = decode(X_Deprn_Amount,
318 NULL, deprn_amount,
319 FND_API.G_MISS_NUM, null,
320 X_Deprn_Amount),
321 ytd_deprn = decode(X_Ytd_Deprn,
322 NULL, ytd_deprn,
323 FND_API.G_MISS_NUM, null,
324 X_Ytd_Deprn),
325 deprn_reserve = decode(X_Deprn_Reserve,
326 NULL, deprn_reserve,
327 FND_API.G_MISS_NUM, null,
328 X_Deprn_Reserve),
329 deprn_source_code = decode(X_Deprn_Source_Code,
330 NULL, deprn_source_code,
331 FND_API.G_MISS_CHAR, null,
332 X_Deprn_Source_Code),
333 adjusted_cost = decode(X_Adjusted_Cost,
334 NULL, adjusted_cost,
335 FND_API.G_MISS_NUM, null,
336 X_Adjusted_Cost),
337 bonus_rate = decode(X_Bonus_Rate,
338 NULL, bonus_rate,
339 FND_API.G_MISS_NUM, null,
340 X_Bonus_Rate),
341 ltd_production = decode(X_Ltd_Production,
342 NULL, ltd_production,
343 FND_API.G_MISS_NUM, null,
344 X_Ltd_Production),
345 period_counter = decode(X_Period_Counter,
346 NULL, period_counter,
347 FND_API.G_MISS_NUM, null,
348 X_Period_Counter),
349 production = decode(X_Production,
350 NULL, production,
351 FND_API.G_MISS_NUM, null,
352 X_Production),
353 reval_amortization = decode(X_Reval_Amortization,
354 NULL, reval_amortization,
355 FND_API.G_MISS_NUM, null,
356 X_Reval_Amortization),
357 reval_amortization_basis = decode(X_Reval_Amortization_Basis,
358 NULL, reval_amortization_basis,
359 FND_API.G_MISS_NUM, null,
360 X_Reval_Amortization_Basis),
361 reval_deprn_expense = decode(X_Reval_Deprn_Expense,
362 NULL, reval_deprn_expense,
363 FND_API.G_MISS_NUM, null,
364 X_Reval_Deprn_Expense),
365 reval_reserve = decode(X_Reval_Reserve,
366 NULL, reval_reserve,
367 FND_API.G_MISS_NUM, null,
368 X_Reval_Reserve),
369 ytd_production = decode(X_Ytd_Production,
370 NULL, ytd_production,
371 FND_API.G_MISS_NUM, null,
372 X_Ytd_Production),
373 ytd_reval_deprn_expense = decode(X_Ytd_Reval_Deprn_Expense,
374 NULL, ytd_reval_deprn_expense,
375 FND_API.G_MISS_NUM, null,
376 X_Ytd_Reval_Deprn_Expense),
377 bonus_deprn_amount = decode(X_Bonus_Deprn_Amount,
378 NULL, bonus_deprn_amount,
379 FND_API.G_MISS_NUM, null,
380 X_Bonus_Deprn_Amount),
381 bonus_ytd_deprn = decode(X_Bonus_Ytd_Deprn,
382 NULL, bonus_ytd_deprn,
383 FND_API.G_MISS_NUM, null,
384 X_Bonus_Ytd_Deprn),
385 bonus_deprn_reserve = decode(X_Bonus_Deprn_Reserve,
386 NULL, bonus_deprn_reserve,
387 FND_API.G_MISS_NUM, null,
388 X_Bonus_Deprn_Reserve)
389 WHERE rowid = X_Rowid;
390
391 else
392
393 UPDATE fa_deprn_summary
394 SET
395 book_type_code = decode(X_Book_Type_Code,
396 NULL, book_type_code,
397 FND_API.G_MISS_CHAR, null,
398 X_Book_Type_Code),
399 asset_id = decode(X_Asset_Id,
400 NULL, asset_id,
401 FND_API.G_MISS_NUM, null,
402 X_Asset_Id),
403 deprn_run_date = decode(X_Deprn_Run_Date,
404 NULL, deprn_run_date,
405 X_Deprn_Run_Date),
406 deprn_amount = decode(X_Deprn_Amount,
407 NULL, deprn_amount,
408 FND_API.G_MISS_NUM, null,
409 X_Deprn_Amount),
410 ytd_deprn = decode(X_Ytd_Deprn,
411 NULL, ytd_deprn,
412 FND_API.G_MISS_NUM, null,
413 X_Ytd_Deprn),
414 deprn_reserve = decode(X_Deprn_Reserve,
415 NULL, deprn_reserve,
416 FND_API.G_MISS_NUM, null,
417 X_Deprn_Reserve),
418 deprn_source_code = decode(X_Deprn_Source_Code,
419 NULL, deprn_source_code,
420 FND_API.G_MISS_CHAR, null,
421 X_Deprn_Source_Code),
422 adjusted_cost = decode(X_Adjusted_Cost,
423 NULL, adjusted_cost,
424 FND_API.G_MISS_NUM, null,
425 X_Adjusted_Cost),
426 bonus_rate = decode(X_Bonus_Rate,
427 NULL, bonus_rate,
428 FND_API.G_MISS_NUM, null,
429 X_Bonus_Rate),
430 ltd_production = decode(X_Ltd_Production,
431 NULL, ltd_production,
432 FND_API.G_MISS_NUM, null,
433 X_Ltd_Production),
434 period_counter = decode(X_Period_Counter,
435 NULL, period_counter,
436 FND_API.G_MISS_NUM, null,
437 X_Period_Counter),
438 production = decode(X_Production,
439 NULL, production,
440 FND_API.G_MISS_NUM, null,
441 X_Production),
442 reval_amortization = decode(X_Reval_Amortization,
443 NULL, reval_amortization,
444 FND_API.G_MISS_NUM, null,
445 X_Reval_Amortization),
446 reval_amortization_basis = decode(X_Reval_Amortization_Basis,
447 NULL, reval_amortization_basis,
448 FND_API.G_MISS_NUM, null,
449 X_Reval_Amortization_Basis),
450 reval_deprn_expense = decode(X_Reval_Deprn_Expense,
451 NULL, reval_deprn_expense,
452 FND_API.G_MISS_NUM, null,
453 X_Reval_Deprn_Expense),
454 reval_reserve = decode(X_Reval_Reserve,
455 NULL, reval_reserve,
456 FND_API.G_MISS_NUM, null,
457 X_Reval_Reserve),
458 ytd_production = decode(X_Ytd_Production,
459 NULL, ytd_production,
460 FND_API.G_MISS_NUM, null,
461 X_Ytd_Production),
462 ytd_reval_deprn_expense = decode(X_Ytd_Reval_Deprn_Expense,
463 NULL, ytd_reval_deprn_expense,
464 FND_API.G_MISS_NUM, null,
465 X_Ytd_Reval_Deprn_Expense),
466 bonus_deprn_amount = decode(X_Bonus_Deprn_Amount,
467 NULL, bonus_deprn_amount,
468 FND_API.G_MISS_NUM, null,
469 X_Bonus_Deprn_Amount),
470 bonus_ytd_deprn = decode(X_Bonus_Ytd_Deprn,
471 NULL, bonus_ytd_deprn,
472 FND_API.G_MISS_NUM, null,
473 X_Bonus_Ytd_Deprn),
474 bonus_deprn_reserve = decode(X_Bonus_Deprn_Reserve,
475 NULL, bonus_deprn_reserve,
476 FND_API.G_MISS_NUM, null,
477 X_Bonus_Deprn_Reserve)
478
479 WHERE rowid = X_Rowid;
480
481 end if; -- mrc
482
483 else -- rowid is null (use asset,book,pc)
484
485 if (X_mrc_sob_type_code = 'R') then
486 UPDATE fa_deprn_summary_mrc_v
487 SET
488 book_type_code = decode(X_Book_Type_Code,
489 NULL, book_type_code,
490 FND_API.G_MISS_CHAR, null,
491 X_Book_Type_Code),
492 asset_id = decode(X_Asset_Id,
493 NULL, asset_id,
494 FND_API.G_MISS_NUM, null,
495 X_Asset_Id),
496 deprn_run_date = decode(X_Deprn_Run_Date,
497 NULL, deprn_run_date,
498 X_Deprn_Run_Date),
499 deprn_amount = decode(X_Deprn_Amount,
500 NULL, deprn_amount,
501 FND_API.G_MISS_NUM, null,
502 X_Deprn_Amount),
503 ytd_deprn = decode(X_Ytd_Deprn,
504 NULL, ytd_deprn,
505 FND_API.G_MISS_NUM, null,
506 X_Ytd_Deprn),
507 deprn_reserve = decode(X_Deprn_Reserve,
508 NULL, deprn_reserve,
509 FND_API.G_MISS_NUM, null,
510 X_Deprn_Reserve),
511 deprn_source_code = decode(X_Deprn_Source_Code,
512 NULL, deprn_source_code,
513 FND_API.G_MISS_CHAR, null,
514 X_Deprn_Source_Code),
515 adjusted_cost = decode(X_Adjusted_Cost,
516 NULL, adjusted_cost,
517 FND_API.G_MISS_NUM, null,
518 X_Adjusted_Cost),
519 bonus_rate = decode(X_Bonus_Rate,
520 NULL, bonus_rate,
521 FND_API.G_MISS_NUM, null,
522 X_Bonus_Rate),
523 ltd_production = decode(X_Ltd_Production,
524 NULL, ltd_production,
525 FND_API.G_MISS_NUM, null,
526 X_Ltd_Production),
527 period_counter = decode(X_Period_Counter,
528 NULL, period_counter,
529 FND_API.G_MISS_NUM, null,
530 X_Period_Counter),
531 production = decode(X_Production,
532 NULL, production,
533 FND_API.G_MISS_NUM, null,
534 X_Production),
535 reval_amortization = decode(X_Reval_Amortization,
536 NULL, reval_amortization,
537 FND_API.G_MISS_NUM, null,
538 X_Reval_Amortization),
539 reval_amortization_basis = decode(X_Reval_Amortization_Basis,
540 NULL, reval_amortization_basis,
541 FND_API.G_MISS_NUM, null,
542 X_Reval_Amortization_Basis),
543 reval_deprn_expense = decode(X_Reval_Deprn_Expense,
544 NULL, reval_deprn_expense,
545 FND_API.G_MISS_NUM, null,
546 X_Reval_Deprn_Expense),
547 reval_reserve = decode(X_Reval_Reserve,
548 NULL, reval_reserve,
549 FND_API.G_MISS_NUM, null,
550 X_Reval_Reserve),
551 ytd_production = decode(X_Ytd_Production,
552 NULL, ytd_production,
553 FND_API.G_MISS_NUM, null,
554 X_Ytd_Production),
555 ytd_reval_deprn_expense = decode(X_Ytd_Reval_Deprn_Expense,
556 NULL, ytd_reval_deprn_expense,
557 FND_API.G_MISS_NUM, null,
558 X_Ytd_Reval_Deprn_Expense),
559 bonus_deprn_amount = decode(X_Bonus_Deprn_Amount,
560 NULL, bonus_deprn_amount,
561 FND_API.G_MISS_NUM, null,
562 X_Bonus_Deprn_Amount),
563 bonus_ytd_deprn = decode(X_Bonus_Ytd_Deprn,
564 NULL, bonus_ytd_deprn,
565 FND_API.G_MISS_NUM, null,
566 X_Bonus_Ytd_Deprn),
567 bonus_deprn_reserve = decode(X_Bonus_Deprn_Reserve,
568 NULL, bonus_deprn_reserve,
569 FND_API.G_MISS_NUM, null,
570 X_Bonus_Deprn_Reserve)
571
572 WHERE book_type_code = X_Book_Type_Code
573 and asset_id = X_Asset_Id
574 and period_counter = X_Period_Counter;
575
576 else
577
578 UPDATE fa_deprn_summary
579 SET
580 book_type_code = decode(X_Book_Type_Code,
581 NULL, book_type_code,
582 FND_API.G_MISS_CHAR, null,
583 X_Book_Type_Code),
584 asset_id = decode(X_Asset_Id,
585 NULL, asset_id,
586 FND_API.G_MISS_NUM, null,
587 X_Asset_Id),
588 deprn_run_date = decode(X_Deprn_Run_Date,
589 NULL, deprn_run_date,
590 X_Deprn_Run_Date),
591 deprn_amount = decode(X_Deprn_Amount,
592 NULL, deprn_amount,
593 FND_API.G_MISS_NUM, null,
594 X_Deprn_Amount),
595 ytd_deprn = decode(X_Ytd_Deprn,
596 NULL, ytd_deprn,
597 FND_API.G_MISS_NUM, null,
598 X_Ytd_Deprn),
599 deprn_reserve = decode(X_Deprn_Reserve,
600 NULL, deprn_reserve,
601 FND_API.G_MISS_NUM, null,
602 X_Deprn_Reserve),
603 deprn_source_code = decode(X_Deprn_Source_Code,
604 NULL, deprn_source_code,
605 FND_API.G_MISS_CHAR, null,
606 X_Deprn_Source_Code),
607 adjusted_cost = decode(X_Adjusted_Cost,
608 NULL, adjusted_cost,
609 FND_API.G_MISS_NUM, null,
610 X_Adjusted_Cost),
611 bonus_rate = decode(X_Bonus_Rate,
612 NULL, bonus_rate,
613 FND_API.G_MISS_NUM, null,
614 X_Bonus_Rate),
615 ltd_production = decode(X_Ltd_Production,
616 NULL, ltd_production,
617 FND_API.G_MISS_NUM, null,
618 X_Ltd_Production),
619 period_counter = decode(X_Period_Counter,
620 NULL, period_counter,
621 FND_API.G_MISS_NUM, null,
622 X_Period_Counter),
623 production = decode(X_Production,
624 NULL, production,
625 FND_API.G_MISS_NUM, null,
626 X_Production),
627 reval_amortization = decode(X_Reval_Amortization,
628 NULL, reval_amortization,
629 FND_API.G_MISS_NUM, null,
630 X_Reval_Amortization),
631 reval_amortization_basis = decode(X_Reval_Amortization_Basis,
632 NULL, reval_amortization_basis,
633 FND_API.G_MISS_NUM, null,
634 X_Reval_Amortization_Basis),
635 reval_deprn_expense = decode(X_Reval_Deprn_Expense,
636 NULL, reval_deprn_expense,
637 FND_API.G_MISS_NUM, null,
638 X_Reval_Deprn_Expense),
639 reval_reserve = decode(X_Reval_Reserve,
640 NULL, reval_reserve,
641 FND_API.G_MISS_NUM, null,
642 X_Reval_Reserve),
643 ytd_production = decode(X_Ytd_Production,
644 NULL, ytd_production,
645 FND_API.G_MISS_NUM, null,
646 X_Ytd_Production),
647 ytd_reval_deprn_expense = decode(X_Ytd_Reval_Deprn_Expense,
648 NULL, ytd_reval_deprn_expense,
649 FND_API.G_MISS_NUM, null,
650 X_Ytd_Reval_Deprn_Expense),
651 bonus_deprn_amount = decode(X_Bonus_Deprn_Amount,
652 NULL, bonus_deprn_amount,
653 FND_API.G_MISS_NUM, null,
654 X_Bonus_Deprn_Amount),
655 bonus_ytd_deprn = decode(X_Bonus_Ytd_Deprn,
656 NULL, bonus_ytd_deprn,
657 FND_API.G_MISS_NUM, null,
658 X_Bonus_Ytd_Deprn),
659 bonus_deprn_reserve = decode(X_Bonus_Deprn_Reserve,
660 NULL, bonus_deprn_reserve,
661 FND_API.G_MISS_NUM, null,
662 X_Bonus_Deprn_Reserve)
663 WHERE book_type_code = X_Book_Type_Code
664 and asset_id = X_Asset_Id
665 and period_counter = X_Period_Counter;
666
667 end if; -- mrc
668
669 end if; -- rowid not null
670
671 if (SQL%NOTFOUND) then
672 Raise NO_DATA_FOUND;
673 end if;
674
675 exception
676 when others then
677 fa_srvr_msg.add_sql_error(
678 calling_fn => 'fa_deprn_summary_pkg.update_row'
679 ,p_log_level_rec => p_log_level_rec);
680 raise;
681
682 END Update_Row;
683
684
685
686 PROCEDURE Delete_Row(X_Rowid VARCHAR2 DEFAULT NULL,
687 X_Asset_Id NUMBER DEFAULT NULL,
688 X_mrc_sob_type_code VARCHAR2 DEFAULT 'P',
689 X_Calling_Fn VARCHAR2,
690 p_log_level_rec in fa_api_types.log_level_rec_type default null) IS
691
692 BEGIN
693
694 if (X_mrc_sob_type_code = 'R') then
695 if X_Rowid is not null then
696 DELETE FROM fa_deprn_summary_mrc_v
697 WHERE rowid = X_Rowid;
698 elsif X_Asset_Id is not null then
699 DELETE FROM fa_deprn_summary_mrc_v
700 WHERE asset_id = X_Asset_Id;
701 else
702 -- print error message
703 null;
704 end if;
705 else
706 if X_Rowid is not null then
707 DELETE FROM fa_deprn_summary
708 WHERE rowid = X_Rowid;
709 elsif X_Asset_Id is not null then
710 DELETE FROM fa_deprn_summary
711 WHERE asset_id = X_Asset_Id;
712 else
713 -- print error message
714 null;
715 end if;
716 end if;
717
718
719 if (SQL%NOTFOUND) then
720 Raise NO_DATA_FOUND;
721 end if;
722
723 exception
724 when others then
725 FA_STANDARD_PKG.RAISE_ERROR(
726 CALLED_FN => 'fa_deprn_summary_pkg.delete_row',
727 CALLING_FN => X_Calling_Fn
728 ,p_log_level_rec => p_log_level_rec);
729
730 END Delete_Row;
731
732
733 PROCEDURE Lock_B_Row(X_Book_Type_Code VARCHAR2 DEFAULT NULL,
734 X_Asset_Id NUMBER,
735 X_Calling_Fn VARCHAR2,
736 p_log_level_rec IN FA_API_TYPES.log_level_rec_type default null) IS
737 CURSOR C_Books IS
738 SELECT book_type_code,
739 asset_id,
740 date_placed_in_service,
741 date_effective,
742 deprn_start_date,
743 deprn_method_code,
744 life_in_months,
745 rate_adjustment_factor,
746 adjusted_cost,
747 cost,
748 original_cost,
749 salvage_value,
750 prorate_convention_code,
751 prorate_date,
752 cost_change_flag,
753 adjustment_required_status,
754 capitalize_flag,
755 retirement_pending_flag,
756 depreciate_flag,
757 last_update_date,
758 last_updated_by,
759 date_ineffective,
760 transaction_header_id_in,
761 transaction_header_id_out,
762 itc_amount_id,
763 itc_amount,
764 retirement_id,
765 tax_request_id,
766 itc_basis,
767 basic_rate,
768 adjusted_rate,
769 bonus_rule,
770 ceiling_name,
771 recoverable_cost,
772 last_update_login,
773 adjusted_capacity,
774 fully_rsvd_revals_counter,
775 idled_flag,
776 period_counter_capitalized,
777 period_counter_fully_reserved,
778 period_counter_fully_retired,
779 production_capacity,
780 reval_amortization_basis,
781 reval_ceiling,
782 unit_of_measure,
783 unrevalued_cost,
784 annual_deprn_rounding_flag,
785 percent_salvage_value,
786 allowed_deprn_limit,
787 allowed_deprn_limit_amount,
788 period_counter_life_complete,
789 adjusted_recoverable_cost,
790 annual_rounding_flag,
791 global_attribute1,
792 global_attribute2,
793 global_attribute3,
794 global_attribute4,
795 global_attribute5,
796 global_attribute6,
797 global_attribute7,
798 global_attribute8,
799 global_attribute9,
800 global_attribute10,
801 global_attribute11,
802 global_attribute12,
803 global_attribute13,
804 global_attribute14,
805 global_attribute15,
806 global_attribute16,
807 global_attribute17,
808 global_attribute18,
809 global_attribute19,
810 global_attribute20,
811 global_attribute_category,
812 eofy_adj_cost,
813 short_fiscal_year_flag,
814 conversion_date,
815 remaining_life1,
816 remaining_life2,
817 original_deprn_start_date,
818 old_adjusted_cost,
819 formula_factor,
820 eofy_formula_factor
821 FROM fa_books
822 WHERE Book_Type_Code = nvl(X_Book_Type_Code, Book_Type_Code)
823 AND Asset_Id = X_Asset_Id
824 AND Date_Ineffective is null
825 FOR UPDATE of Asset_Id NOWAIT;
826 Recinfo_Books C_Books%ROWTYPE;
827
828 CURSOR C_AssetHistory IS
829 SELECT asset_id,
830 category_id,
831 asset_type,
832 units,
833 date_effective,
834 date_ineffective,
835 transaction_header_id_in,
836 transaction_header_id_out,
837 last_update_date,
838 last_updated_by,
839 last_update_login
840 FROM fa_asset_history
841 WHERE Asset_Id = X_Asset_Id
842 AND Date_Ineffective is null
843 FOR UPDATE of Asset_Id NOWAIT;
844 Recinfo_AssetHistory C_AssetHistory%ROWTYPE;
845
846 CURSOR C_DistHistory IS
847 SELECT distribution_id,
848 book_type_code,
849 asset_id,
850 units_assigned,
851 date_effective,
852 code_combination_id,
853 location_id,
854 transaction_header_id_in,
855 last_update_date,
856 last_updated_by,
857 date_ineffective,
858 assigned_to,
859 transaction_header_id_out,
860 transaction_units,
861 retirement_id,
862 last_update_login
863 FROM fa_distribution_history
864 WHERE Asset_Id = X_Asset_Id
865 AND Date_Ineffective is null
866 FOR UPDATE of Asset_Id NOWAIT;
867 Recinfo_DistHistory C_DistHistory%ROWTYPE;
868
869 CURSOR C_DeprnSummary IS
870 SELECT book_type_code,
871 asset_id,
872 deprn_run_date,
873 deprn_amount,
874 ytd_deprn,
875 deprn_reserve,
876 deprn_source_code,
877 adjusted_cost,
878 bonus_rate,
879 ltd_production,
880 period_counter,
881 production,
882 reval_amortization,
883 reval_amortization_basis,
884 reval_deprn_expense,
885 reval_reserve,
886 ytd_production,
887 ytd_reval_deprn_expense,
888 prior_fy_expense
889 FROM fa_deprn_summary
890 WHERE Book_Type_Code = nvl(X_Book_Type_Code, Book_Type_Code)
891 AND Asset_Id = X_Asset_Id
892 AND Deprn_Source_Code = 'BOOKS'
893 FOR UPDATE of Asset_Id NOWAIT;
894 Recinfo_DeprnSummary C_DeprnSummary%ROWTYPE;
895
896 BEGIN
897 OPEN C_Books;
898 FETCH C_Books INTO Recinfo_Books;
899 if (C_Books%NOTFOUND) then
900 CLOSE C_Books;
901 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
902 APP_EXCEPTION.Raise_Exception;
903 end if;
904 CLOSE C_Books;
905
906 OPEN C_AssetHistory;
907 FETCH C_AssetHistory INTO Recinfo_AssetHistory;
908 if (C_AssetHistory%NOTFOUND) then
909 CLOSE C_AssetHistory;
910 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
911 APP_EXCEPTION.Raise_Exception;
912 end if;
913 CLOSE C_AssetHistory;
914
915 OPEN C_DistHistory;
916 FETCH C_DistHistory INTO Recinfo_DistHistory;
917 if (C_DistHistory%NOTFOUND) then
918 CLOSE C_DistHistory;
919 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
920 APP_EXCEPTION.Raise_Exception;
921 end if;
922 CLOSE C_DistHistory;
923
924 OPEN C_DeprnSummary;
925 FETCH C_DeprnSummary INTO Recinfo_DeprnSummary;
926 if (C_DeprnSummary%NOTFOUND) then
927 CLOSE C_DeprnSummary;
928 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
929 APP_EXCEPTION.Raise_Exception;
930 end if;
931 CLOSE C_DeprnSummary;
932 EXCEPTION
933 when app_exception.record_lock_exception then
934 FA_STANDARD_PKG.RAISE_ERROR(
935 CALLED_FN => 'fa_deprn_summary_pkg.lock_b_row',
936 CALLING_FN => X_Calling_Fn,
937 NAME => 'FA_SHARED_ASSETS_LOCKED'
938 ,p_log_level_rec => p_log_level_rec);
939 when others then
940 FA_STANDARD_PKG.RAISE_ERROR(
941 CALLED_FN => 'fa_deprn_summary_pkg.lock_b_row',
942 CALLING_FN => X_Calling_Fn
943 ,p_log_level_rec => p_log_level_rec);
944 END Lock_B_Row;
945
946
947 PROCEDURE UnLock_B_Row(X_Calling_Fn VARCHAR2,
948 p_log_level_rec in fa_api_types.log_level_rec_type default null) IS
949 BEGIN
950
951 rollback;
952
953 EXCEPTION
954 when others then
955 FA_STANDARD_PKG.RAISE_ERROR(
956 CALLED_FN => 'fa_deprn_summary_pkg.unlock_b_row',
957 CALLING_FN => X_Calling_Fn
958 ,p_log_level_rec => p_log_level_rec);
959 END UnLock_B_Row;
960
961 END FA_DEPRN_SUMMARY_PKG;