[Home] [Help]
PACKAGE BODY: APPS.FA_MASS_RET_PUB
Source
1 PACKAGE BODY FA_MASS_RET_PUB as
2 /* $Header: FAPMRLDB.pls 120.7 2005/07/28 00:19:21 tkawamur noship $ */
3
4 g_log_level_rec fa_api_types.log_level_rec_type;
5
6 PROCEDURE CREATE_CRITERIA
7 (p_api_version in NUMBER
8 ,p_init_msg_list in VARCHAR2 := FND_API.G_FALSE
9 ,p_commit in VARCHAR2 := FND_API.G_FALSE
10 ,p_validation_level in NUMBER := FND_API.G_VALID_LEVEL_FULL
11 ,p_calling_fn in VARCHAR2
12 ,x_return_status out NOCOPY VARCHAR2
13 ,x_msg_count out NOCOPY NUMBER
14 ,x_msg_data out NOCOPY VARCHAR2
15 ,px_mass_ret_rec in out
16 NOCOPY FA_CUSTOM_RET_VAL_PKG.mass_ret_rec_tbl_type) IS
17
18
19
20 l_mass_ret_rec fa_custom_ret_val_pkg.mass_ret_rec_tbl_type;
21 mr_count NUMBER;
22 validation_error Exception;
23 error_code varchar2(30);
24
25 -- validation cursors
26
27 l_found varchar2(30);
28
29 l_fiscal_year_name fa_book_controls.fiscal_year_name%TYPE;
30 l_fiscal_year fa_deprn_periods.fiscal_year%TYPE;
31 l_book_class fa_book_controls.book_class%TYPE;
32 l_per_close_date fa_deprn_periods.calendar_period_close_date%TYPE;
33 l_book fa_book_controls.book_type_code%TYPE;
34
35 l_category_id fa_categories.category_id%TYPE;
36 l_retirement_type_code fa_mass_retirements.retirement_type_code%TYPE;
37 l_retirement_date date;
38 l_status fa_lookups_b.lookup_code%TYPE;
39 l_location_id fa_locations.location_id%TYPE;
40 l_employee_id number;
41 l_asset_key_id fa_mass_retirements.asset_key_id%TYPE;
42 l_from_asset_no fa_additions_b.asset_number%TYPE;
43 l_to_asset_no fa_additions_b.asset_number%TYPE;
44
45 l_msg_data varchar2(200);
46 l_loop_no number;
47 l_yesno varchar2(10);
48
49 cursor c_bc is
50 select bc.fiscal_year_name,
51 bc.current_fiscal_year,
52 bc.book_class,
53 dp.calendar_period_close_date
54 from fa_book_controls bc,
55 fa_deprn_periods dp
56 where bc.book_type_code = l_book
57 and bc.last_period_counter = dp.period_counter
58 and dp.book_type_code = bc.book_type_code
59 and bc.book_class <> 'BUDGET'
60 and nvl(bc.date_ineffective, sysdate + 1) > sysdate;
61
62 cursor c_cb is
63 Select 'Validated'
64 From fa_category_books cb
65 Where book_type_code = l_book
66 And category_id = l_category_id;
67
68 cursor c_lu is
69 Select 'Validated'
70 From fa_lookups
71 Where lookup_type = 'RETIREMENT'
72 And lookup_code = l_retirement_type_code;
73
74 cursor c_rd is
75 Select 'Validated'
76 FROM fa_deprn_periods fadp
77 WHERE fadp.book_type_code = l_book
78 AND fadp.period_close_date IS NULL
79 AND l_retirement_date
80 <= fadp.calendar_period_close_date;
81
82 cursor c_rd2 is
83 SELECT 'Validated'
84 FROM fa_fiscal_year
85 WHERE fiscal_year = l_fiscal_year
86 AND fiscal_year_name = l_fiscal_year_name
87 AND l_retirement_date
88 BETWEEN start_date AND end_date;
89
90 cursor c_status is
91 SELECT 'Validated'
92 FROM FA_LOOKUPS
93 WHERE LOOKUP_TYPE = 'MASS_TRX_STATUS'
94 AND LOOKUP_CODE = l_status
95 AND LOOKUP_CODE in ('NEW','PENDING','ON_HOLD'
96 );
97
98
99 cursor c_loc is
100 SELECT 'Validated'
101 FROM FA_LOCATIONS
102 WHERE location_id = l_location_id
103 AND sysdate between nvl(start_date_active,sysdate -1)
104 and nvl(end_date_active, sysdate +1)
105 AND enabled_flag = 'Y';
106
107 cursor c_emp is
108 SELECT 'Validated'
109 FROM FA_EMPLOYEES
110 WHERE employee_id = l_employee_id;
111
112 cursor c_key is
113 SELECT 'Validated'
114 FROM FA_ASSET_KEYWORDS
115 WHERE code_combination_id = l_asset_key_id;
116
117 cursor c_fromasset is
118 Select 'Validated'
119 From fa_books bk,
120 fa_additions ad
121 Where ad.asset_number = l_from_asset_no
122 And ad.asset_id = bk.asset_id
123 And bk.book_type_code = l_book
124 And bk.date_ineffective is null;
125
126 cursor c_toasset is
127 Select 'Validated'
128 From fa_books bk,
129 fa_additions ad
130 Where ad.asset_number = l_to_asset_no
131 And ad.asset_id = bk.asset_id
132 And bk.book_type_code = l_book
133 And bk.date_ineffective is null;
134
135 -- end validation cursors
136
137 Begin
138
139 if (not g_log_level_rec.initialized) then
140 if (NOT fa_util_pub.get_log_level_rec (
141 x_log_level_rec => g_log_level_rec
142 )) then
143 raise validation_error;
144 end if;
145 end if;
146
147 l_mass_ret_rec := px_mass_ret_rec;
148
149
150 FOR mr_count in 1..l_mass_ret_rec.count LOOP
151
152 l_loop_no := mr_count;
153 /* Use same validation as in Create Mass Retirements form */
154
155 l_book := l_mass_ret_rec(mr_count).book_type_code;
156 l_category_id := l_mass_ret_rec(mr_count).category_id;
157 l_retirement_type_code := l_mass_ret_rec(mr_count).retirement_type_code;
158 l_retirement_date := l_mass_ret_rec(mr_count).retirement_date;
159 l_status := l_mass_ret_rec(mr_count).status;
160 l_location_id := l_mass_ret_rec(mr_count).location_id;
161 l_employee_id := l_mass_ret_rec(mr_count).employee_id;
162 l_asset_key_id := l_mass_ret_rec(mr_count).asset_key_id;
163 l_from_asset_no := l_mass_ret_rec(mr_count).from_asset_number;
164 l_to_asset_no := l_mass_ret_rec(mr_count).to_asset_number;
165
166 open c_bc;
167 fetch c_bc into l_fiscal_year_name,
168 l_fiscal_year,
169 l_book_class,
170 l_per_close_date;
171
172 if c_bc%NOTFOUND then
173 error_code := 'BOOK_TYPE_CODE';
174 raise validation_error;
175 end if;
176 close c_bc;
177
178 IF l_mass_ret_rec(mr_count).category_id is not null then
179
180 open c_cb;
181 fetch c_cb into l_found;
182 if c_cb%NOTFOUND then
183 error_code := 'CATEGORY';
184 raise validation_error;
185 end if;
186 close c_cb;
187 End if;
188
189 If l_mass_ret_rec(mr_count).retirement_type_code is not null then
190 open c_lu;
191 fetch c_lu into l_found;
192 if c_lu%NOTFOUND then
193 error_code := 'RETIREMENT_TYPE_CODE';
194 raise validation_error;
195 end if;
196 close c_lu;
197 End if;
198
199 If l_mass_ret_rec(mr_count).retirement_date is not null then
200
201 open c_rd;
202 fetch c_rd into l_found;
203 if c_rd%NOTFOUND then
204 error_code := 'RETIREMENT_DATE';
205 raise validation_error;
206 end if;
207 close c_rd;
208
209 open c_rd2;
210 fetch c_rd2 into l_found;
211 if c_rd2%NOTFOUND then
212 error_code := 'RETIREMENT_DATE2';
213 raise validation_error;
214 end if;
215 close c_rd2;
216 End if;
217
218 If l_mass_ret_rec(mr_count).status is not null then
219 open c_status;
220 fetch c_status into l_found;
221 if c_status%NOTFOUND then
222 error_code := 'STATUS';
223 raise validation_error;
224 end if;
225 close c_status;
226 End if;
227
228 If (nvl(l_mass_ret_rec(mr_count).units_to_retire,0) > 0)
229 and l_book_class = 'TAX' then
230 error_code := 'TAX';
231 raise validation_error;
232 end if;
233
234 If nvl(l_mass_ret_rec(mr_count).units_to_retire,0) < 0 then
235 error_code := 'UNITS';
236 raise validation_error;
237 end if;
238
239 if nvl(l_mass_ret_rec(mr_count).retire_subcomponents_flag,'NO')
240 not in ('NO','YES') then
241 l_yesno := l_mass_ret_rec(mr_count).retire_subcomponents_flag;
242 error_code := 'SUBCOMPONENTS';
243 raise validation_error;
244 end if;
245
246 -- PROJECT AND TASK VALIDATION
247
248 -- End project and task
249
250 if nvl(l_mass_ret_rec(mr_count).asset_type,'CIP') not in ('EXPENSED',
251 'CAPITALIZED','CIP') then
252 error_code := 'ASSET TYPE';
253 raise validation_error;
254 end if;
255
256 if nvl(l_mass_ret_rec(mr_count).INCLUDE_FULLY_RSVD_FLAG,'NO')
257 not in ('YES','NO') then
258 error_code := 'FULLY_RSVD';
259 raise validation_error;
260 end if;
261
262 if l_mass_ret_rec(mr_count).location_id is not null then
263
264 open c_loc;
265 fetch c_loc into l_found;
266 if c_loc%NOTFOUND then
267 error_code := 'LOCATION';
268 raise validation_error;
269 end if;
270 close c_loc;
271
272 end if;
273
274 if l_mass_ret_rec(mr_count).employee_id is not null then
275
276 open c_emp;
277 fetch c_emp into l_found;
278 if c_emp%NOTFOUND then
279 error_code := 'EMPLOYEE';
280 raise validation_error;
281 end if;
282 close c_emp;
283
284 end if;
285
286 if l_mass_ret_rec(mr_count).asset_key_id is not null then
287
288 open c_key;
289 fetch c_key into l_found;
290 if c_key%NOTFOUND then
291 error_code := 'KEY';
292 raise validation_error;
293 end if;
294 close c_key;
295
296 end if;
297
298 if l_mass_ret_rec(mr_count).from_cost is not null then
299
300 if l_mass_ret_rec(mr_count).from_cost >
301 nvl(l_mass_ret_rec(mr_count).to_cost,0) then
302 error_code := 'COST';
303 raise validation_error;
304
305 end if;
306
307 end if;
308
309 if l_mass_ret_rec(mr_count).from_asset_number is not null then
310 if l_mass_ret_rec(mr_count).from_asset_number <=
311 l_mass_ret_rec(mr_count).to_asset_number then
312
313 open c_fromasset;
314 fetch c_fromasset into l_found;
315 if c_fromasset%NOTFOUND then
316 error_code := 'FROM ASSET';
317 raise validation_error;
318 end if;
319 close c_fromasset;
320
321 open c_toasset;
322 fetch c_toasset into l_found;
323 if c_toasset%NOTFOUND then
324 error_code := 'TO ASSET';
325 raise validation_error;
326 end if;
327 close c_toasset;
328
329 else
330 error_code := 'FROM ASSET';
331 raise validation_error;
332
333 end if;
334
335
336 end if;
337
338 if l_mass_ret_rec(mr_count).from_date_placed_in_service is not null then
339
340
341 if (l_mass_ret_rec(mr_count).from_date_placed_in_service > l_per_close_date)
342 or
343 (l_mass_ret_rec(mr_count).to_date_placed_in_service > l_per_close_date)
344 then
345 error_code := 'DPIS';
346 raise validation_error;
347 end if;
348 end if;
349
350
351 Insert into fa_mass_retirements (
352 MASS_RETIREMENT_ID,
353 BOOK_TYPE_CODE,
354 RETIRE_SUBCOMPONENTS_FLAG,
355 STATUS,
356 RETIRE_REQUEST_ID,
357 REINSTATE_REQUEST_ID,
358 RETIREMENT_DATE,
359 PROCEEDS_OF_SALE,
360 COST_OF_REMOVAL,
361 DESCRIPTION,
362 RETIREMENT_TYPE_CODE,
363 ASSET_TYPE,
364 LOCATION_ID,
365 EMPLOYEE_ID,
366 CATEGORY_ID,
367 ASSET_KEY_ID,
368 FROM_ASSET_NUMBER,
369 TO_ASSET_NUMBER,
370 FROM_DATE_PLACED_IN_SERVICE,
371 TO_DATE_PLACED_IN_SERVICE,
372 FROM_COST,
373 MODEL_NUMBER,
374 TAG_NUMBER,
375 MANUFACTURER_NAME,
376 SERIAL_NUMBER,
377 CREATE_REQUEST_ID,
378 UNITS_TO_RETIRE,
379 INCLUDE_FULLY_RSVD_FLAG,
380 TO_COST,
381 GROUP_ASSET_ID,
382 FROM_THRESHOLD_AMOUNT,
383 TO_THRESHOLD_AMOUNT,
384 PROJECT_ID,
385 TASK_ID,
386 ATTRIBUTE1,
387 ATTRIBUTE2,
388 ATTRIBUTE3,
389 ATTRIBUTE4,
390 ATTRIBUTE5,
391 ATTRIBUTE6,
392 ATTRIBUTE7,
393 ATTRIBUTE8,
394 ATTRIBUTE9,
395 ATTRIBUTE10,
396 ATTRIBUTE11,
397 ATTRIBUTE12,
398 ATTRIBUTE13,
399 ATTRIBUTE14,
400 ATTRIBUTE15,
401 ATTRIBUTE_CATEGORY_CODE,
402 SEGMENT1_LOW,
403 SEGMENT2_LOW,
404 SEGMENT3_LOW,
405 SEGMENT4_LOW,
406 SEGMENT5_LOW,
407 SEGMENT6_LOW,
408 SEGMENT7_LOW,
409 SEGMENT8_LOW,
410 SEGMENT9_LOW,
411 SEGMENT10_LOW,
412 SEGMENT11_LOW,
413 SEGMENT12_LOW,
414 SEGMENT13_LOW,
415 SEGMENT14_LOW,
416 SEGMENT15_LOW,
417 SEGMENT16_LOW,
418 SEGMENT17_LOW,
419 SEGMENT18_LOW,
420 SEGMENT19_LOW,
421 SEGMENT20_LOW,
422 SEGMENT21_LOW,
423 SEGMENT22_LOW,
424 SEGMENT23_LOW,
425 SEGMENT24_LOW,
426 SEGMENT25_LOW,
427 SEGMENT26_LOW,
428 SEGMENT27_LOW,
429 SEGMENT28_LOW,
430 SEGMENT29_LOW,
431 SEGMENT30_LOW,
432 SEGMENT1_HIGH,
433 SEGMENT2_HIGH,
434 SEGMENT3_HIGH,
435 SEGMENT4_HIGH,
436 SEGMENT5_HIGH,
437 SEGMENT6_HIGH,
438 SEGMENT7_HIGH,
439 SEGMENT8_HIGH,
440 SEGMENT9_HIGH,
441 SEGMENT10_HIGH,
442 SEGMENT11_HIGH,
443 SEGMENT12_HIGH,
444 SEGMENT13_HIGH,
445 SEGMENT14_HIGH,
446 SEGMENT15_HIGH,
447 SEGMENT16_HIGH,
448 SEGMENT17_HIGH,
449 SEGMENT18_HIGH,
450 SEGMENT19_HIGH,
451 SEGMENT20_HIGH,
452 SEGMENT21_HIGH,
453 SEGMENT22_HIGH,
454 SEGMENT23_HIGH,
455 SEGMENT24_HIGH,
456 SEGMENT25_HIGH,
457 SEGMENT26_HIGH,
458 SEGMENT27_HIGH,
459 SEGMENT28_HIGH,
460 SEGMENT29_HIGH,
461 SEGMENT30_HIGH,
462 LAST_UPDATE_DATE,
463 LAST_UPDATED_BY,
464 CREATION_DATE,
465 CREATED_BY,
466 LAST_UPDATE_LOGIN)
467 VALUES
468 (
469 FA_MASS_TRANSACTIONS_S.NEXTVAL,
470 L_MASS_RET_REC(mr_count).BOOK_TYPE_CODE,
471 L_MASS_RET_REC(mr_count).RETIRE_SUBCOMPONENTS_FLAG,
472 L_MASS_RET_REC(mr_count).STATUS,
473 L_MASS_RET_REC(mr_count).RETIRE_REQUEST_ID,
474 L_MASS_RET_REC(mr_count).REINSTATE_REQUEST_ID,
475 L_MASS_RET_REC(mr_count).RETIREMENT_DATE,
476 L_MASS_RET_REC(mr_count).PROCEEDS_OF_SALE,
477 L_MASS_RET_REC(mr_count).COST_OF_REMOVAL,
478 L_MASS_RET_REC(mr_count).DESCRIPTION,
479 L_MASS_RET_REC(mr_count).RETIREMENT_TYPE_CODE,
480 L_MASS_RET_REC(mr_count).ASSET_TYPE,
481 L_MASS_RET_REC(mr_count).LOCATION_ID,
482 L_MASS_RET_REC(mr_count).EMPLOYEE_ID,
483 L_MASS_RET_REC(mr_count).CATEGORY_ID,
484 L_MASS_RET_REC(mr_count).ASSET_KEY_ID,
485 L_MASS_RET_REC(mr_count).FROM_ASSET_NUMBER,
486 L_MASS_RET_REC(mr_count).TO_ASSET_NUMBER,
487 L_MASS_RET_REC(mr_count).FROM_DATE_PLACED_IN_SERVICE,
488 L_MASS_RET_REC(mr_count).TO_DATE_PLACED_IN_SERVICE,
489 L_MASS_RET_REC(mr_count).FROM_COST,
490 L_MASS_RET_REC(mr_count).MODEL_NUMBER,
491 L_MASS_RET_REC(mr_count).TAG_NUMBER,
492 L_MASS_RET_REC(mr_count).MANUFACTURER_NAME,
493 L_MASS_RET_REC(mr_count).SERIAL_NUMBER,
494 L_MASS_RET_REC(mr_count).CREATE_REQUEST_ID,
495 L_MASS_RET_REC(mr_count).UNITS_TO_RETIRE,
496 L_MASS_RET_REC(mr_count).INCLUDE_FULLY_RSVD_FLAG,
497 L_MASS_RET_REC(mr_count).TO_COST,
498 L_MASS_RET_REC(mr_count).GROUP_ASSET_ID,
499 L_MASS_RET_REC(mr_count).FROM_THRESHOLD_AMOUNT,
500 L_MASS_RET_REC(mr_count).TO_THRESHOLD_AMOUNT,
501 L_MASS_RET_REC(mr_count).PROJECT_ID,
502 L_MASS_RET_REC(mr_count).TASK_ID,
503 L_MASS_RET_REC(mr_count).ATTRIBUTE1,
504 L_MASS_RET_REC(mr_count).ATTRIBUTE2,
505 L_MASS_RET_REC(mr_count).ATTRIBUTE3,
506 L_MASS_RET_REC(mr_count).ATTRIBUTE4,
507 L_MASS_RET_REC(mr_count).ATTRIBUTE5,
508 L_MASS_RET_REC(mr_count).ATTRIBUTE6,
509 L_MASS_RET_REC(mr_count).ATTRIBUTE7,
510 L_MASS_RET_REC(mr_count).ATTRIBUTE8,
511 L_MASS_RET_REC(mr_count).ATTRIBUTE9,
512 L_MASS_RET_REC(mr_count).ATTRIBUTE10,
513 L_MASS_RET_REC(mr_count).ATTRIBUTE11,
514 L_MASS_RET_REC(mr_count).ATTRIBUTE12,
515 L_MASS_RET_REC(mr_count).ATTRIBUTE13,
516 L_MASS_RET_REC(mr_count).ATTRIBUTE14,
517 L_MASS_RET_REC(mr_count).ATTRIBUTE15,
518 L_MASS_RET_REC(mr_count).ATTRIBUTE_CATEGORY_CODE,
519 L_MASS_RET_REC(mr_count).SEGMENT1_LOW,
520 L_MASS_RET_REC(mr_count).SEGMENT2_LOW,
521 L_MASS_RET_REC(mr_count).SEGMENT3_LOW,
522 L_MASS_RET_REC(mr_count).SEGMENT4_LOW,
523 L_MASS_RET_REC(mr_count).SEGMENT5_LOW,
524 L_MASS_RET_REC(mr_count).SEGMENT6_LOW,
525 L_MASS_RET_REC(mr_count).SEGMENT7_LOW,
526 L_MASS_RET_REC(mr_count).SEGMENT8_LOW,
527 L_MASS_RET_REC(mr_count).SEGMENT9_LOW,
528 L_MASS_RET_REC(mr_count).SEGMENT10_LOW,
529 L_MASS_RET_REC(mr_count).SEGMENT11_LOW,
530 L_MASS_RET_REC(mr_count).SEGMENT12_LOW,
531 L_MASS_RET_REC(mr_count).SEGMENT13_LOW,
532 L_MASS_RET_REC(mr_count).SEGMENT14_LOW,
533 L_MASS_RET_REC(mr_count).SEGMENT15_LOW,
534 L_MASS_RET_REC(mr_count).SEGMENT16_LOW,
535 L_MASS_RET_REC(mr_count).SEGMENT17_LOW,
536 L_MASS_RET_REC(mr_count).SEGMENT18_LOW,
537 L_MASS_RET_REC(mr_count).SEGMENT19_LOW,
538 L_MASS_RET_REC(mr_count).SEGMENT20_LOW,
539 L_MASS_RET_REC(mr_count).SEGMENT21_LOW,
540 L_MASS_RET_REC(mr_count).SEGMENT22_LOW,
541 L_MASS_RET_REC(mr_count).SEGMENT23_LOW,
542 L_MASS_RET_REC(mr_count).SEGMENT24_LOW,
543 L_MASS_RET_REC(mr_count).SEGMENT25_LOW,
544 L_MASS_RET_REC(mr_count).SEGMENT26_LOW,
545 L_MASS_RET_REC(mr_count).SEGMENT27_LOW,
546 L_MASS_RET_REC(mr_count).SEGMENT28_LOW,
547 L_MASS_RET_REC(mr_count).SEGMENT29_LOW,
548 L_MASS_RET_REC(mr_count).SEGMENT30_LOW,
549 L_MASS_RET_REC(mr_count).SEGMENT1_HIGH,
550 L_MASS_RET_REC(mr_count).SEGMENT2_HIGH,
551 L_MASS_RET_REC(mr_count).SEGMENT3_HIGH,
552 L_MASS_RET_REC(mr_count).SEGMENT4_HIGH,
553 L_MASS_RET_REC(mr_count).SEGMENT5_HIGH,
554 L_MASS_RET_REC(mr_count).SEGMENT6_HIGH,
555 L_MASS_RET_REC(mr_count).SEGMENT7_HIGH,
556 L_MASS_RET_REC(mr_count).SEGMENT8_HIGH,
557 L_MASS_RET_REC(mr_count).SEGMENT9_HIGH,
558 L_MASS_RET_REC(mr_count).SEGMENT10_HIGH,
559 L_MASS_RET_REC(mr_count).SEGMENT11_HIGH,
560 L_MASS_RET_REC(mr_count).SEGMENT12_HIGH,
561 L_MASS_RET_REC(mr_count).SEGMENT13_HIGH,
562 L_MASS_RET_REC(mr_count).SEGMENT14_HIGH,
563 L_MASS_RET_REC(mr_count).SEGMENT15_HIGH,
564 L_MASS_RET_REC(mr_count).SEGMENT16_HIGH,
565 L_MASS_RET_REC(mr_count).SEGMENT17_HIGH,
566 L_MASS_RET_REC(mr_count).SEGMENT18_HIGH,
567 L_MASS_RET_REC(mr_count).SEGMENT19_HIGH,
568 L_MASS_RET_REC(mr_count).SEGMENT20_HIGH,
569 L_MASS_RET_REC(mr_count).SEGMENT21_HIGH,
570 L_MASS_RET_REC(mr_count).SEGMENT22_HIGH,
571 L_MASS_RET_REC(mr_count).SEGMENT23_HIGH,
572 L_MASS_RET_REC(mr_count).SEGMENT24_HIGH,
573 L_MASS_RET_REC(mr_count).SEGMENT25_HIGH,
574 L_MASS_RET_REC(mr_count).SEGMENT26_HIGH,
575 L_MASS_RET_REC(mr_count).SEGMENT27_HIGH,
576 L_MASS_RET_REC(mr_count).SEGMENT28_HIGH,
577 L_MASS_RET_REC(mr_count).SEGMENT29_HIGH,
578 L_MASS_RET_REC(mr_count).SEGMENT30_HIGH,
579 L_MASS_RET_REC(mr_count).LAST_UPDATE_DATE,
580 L_MASS_RET_REC(mr_count).LAST_UPDATED_BY,
581 L_MASS_RET_REC(mr_count).CREATION_DATE,
582 L_MASS_RET_REC(mr_count).CREATED_BY,
583 L_MASS_RET_REC(mr_count).LAST_UPDATE_LOGIN
584 );
585
586 END LOOP;
587
588
589 IF FND_API.To_Boolean(p_commit) THEN
590 COMMIT WORK;
591 END IF;
592
593 x_return_status := 0;
594
595 Exception
596 When validation_error then
597
598 if error_code = 'BOOK_TYPE_CODE' then
599 FND_MESSAGE.SET_NAME('OFA', 'FA_BOOK_INEFFECTIVE_BOOK');
600 x_msg_data := fnd_message.get;
601
602 elsif error_code = 'CATEGORY' then
603 FND_MESSAGE.SET_NAME('OFA', 'FA_BOOK_CATBOOK_NOT_DEFINED');
604 x_msg_data := fnd_message.get;
605
606 elsif error_code = 'RETIREMENT_TYPE_CODE' then
607 x_msg_data := 'Retirement Type is incorrect';
608 --
609 elsif error_code = 'RETIREMENT_DATE' then
610 FND_MESSAGE.SET_NAME('OFA', 'FA_SHARED_CANNOT_FUTURE');
611 x_msg_data := fnd_message.get;
612
613 elsif error_code = 'RETIREMENT_DATE2' then
614 FND_MESSAGE.SET_NAME('OFA', 'FA_RET_DATE_MUSTBE_IN_CUR_FY');
615 x_msg_data := fnd_message.get;
616
617 elsif error_code = 'STATUS' then
618 FND_MESSAGE.SET_NAME('OFA', 'FA_SHARED_UNKNOWN_STATUS');
619 FND_MESSAGE.SET_TOKEN('STATUS',l_status, false);
620 x_msg_data := fnd_message.get;
621
622 elsif error_code = 'TAX' then
623 FND_MESSAGE.SET_NAME('OFA', 'FA_RET_COST_ONLY');
624 x_msg_data := fnd_message.get;
625
626 elsif error_code = 'UNITS' then
627 FND_MESSAGE.SET_NAME('OFA', 'FA_UNT_ADJ_VAL_CUR_UNTS');
628 x_msg_data := fnd_message.get;
629
630 elsif error_code = 'SUBCOMPONENTS' then
631 FND_MESSAGE.SET_NAME('OFA', 'FA_API_SHARED_INVALID_YESNO');
632 FND_MESSAGE.SET_TOKEN('VALUE', l_yesno, false);
633 FND_MESSAGE.SET_TOKEN('XMLTAG', 'SUBCOMPONENTS', false);
634 x_msg_data := fnd_message.get;
635
636 elsif error_code = 'ASSET TYPE' then
637 FND_MESSAGE.SET_NAME('OFA', 'FA_DPR_BAD_ASSET_TYPE');
638 x_msg_data := fnd_message.get;
639
640 elsif error_code = 'FULLY_RSVD' then
641 FND_MESSAGE.SET_NAME('OFA', 'FA_API_SHARED_INVALID_YESNO');
642 x_msg_data := fnd_message.get;
643
644 elsif error_code = 'LOCATION' then
645 FND_MESSAGE.SET_NAME('OFA', 'FA_INCORRECT_LOCATION');
646 x_msg_data := fnd_message.get;
647
648 elsif error_code = 'EMPLOYEE' then
649 FND_MESSAGE.SET_NAME('OFA', 'FA_INCORRECT_ASSIGNED_TO');
650 x_msg_data := fnd_message.get;
651
652 elsif error_code = 'KEY' then
653 FND_MESSAGE.SET_NAME('OFA', 'FA_INCORRECT_ASSET_KEY');
654 FND_MESSAGE.SET_TOKEN('ASSET_KEY_CCID', l_asset_key_id, false);
655 x_msg_data := fnd_message.get;
656
657 elsif error_code = 'COST' then
658 FND_MESSAGE.SET_NAME('OFA', 'FA_FE_CANT_CALC_COST_RET');
659 x_msg_data := fnd_message.get;
660
661 elsif error_code = 'FROM ASSET' then
662 FND_MESSAGE.SET_NAME('OFA', 'FA_REV_FAILED');
663 FND_MESSAGE.SET_TOKEN('ASSET_NUMBER',
664 l_from_asset_no , false);
665 x_msg_data := fnd_message.get;
666
667 elsif error_code = 'TO ASSET' then
668 FND_MESSAGE.SET_NAME('OFA', 'FA_REV_FAILED');
669 FND_MESSAGE.SET_TOKEN('ASSET_NUMBER',
670 l_to_asset_no, false);
671 x_msg_data := fnd_message.get;
672
673 elsif error_code = 'DPIS' then
674 FND_MESSAGE.SET_NAME('OFA', 'FA_SHARED_CANNOT_FUTURE');
675 x_msg_data := fnd_message.get;
676 end if;
677
678 x_return_status := 2;
679 Rollback;
680 When others then
681 x_msg_data := sqlerrm;
682 x_return_status := 2;
683 Rollback;
684
685 END CREATE_CRITERIA;
686 END FA_MASS_RET_PUB;