[Home] [Help]
PACKAGE BODY: APPS.BOM_DEFAULT_OP_RES
Source
1 PACKAGE BODY BOM_Default_Op_Res AS
2 /* $Header: BOMDRESB.pls 120.3.12010000.2 2008/11/14 16:14:11 snandana ship $ */
3
4 /****************************************************************************
5 --
6 -- Copyright (c) 2000 Oracle Corporation, Redwood Shores, CA, USA
7 -- All rights reserved.
8 --
9 -- FILENAME
10 --
11 -- BOMDRESS.pls
12 --
13 -- DESCRIPTION
14 --
15 -- Body of package BOM_Default_Op_Res
16 --
17 -- NOTES
18 --
19 -- HISTORY
20 --
21 -- 18-AUG-00 Masanori Kimizuka Initial Creation
22 --
23 ****************************************************************************/
24
25 G_Pkg_Name VARCHAR2(30) := 'BOM_Default_Op_Res';
26 l_ACD_ADD CONSTANT NUMBER := 1 ;
27
28 /*******************************************************************
29 * Following are all get functions which will be used by the attribute
30 * defaulting procedure. Each column needing to be defaulted has one GET
31 * function.
32 ********************************************************************/
33
34 -- Assigned_Units
35 FUNCTION Get_Assigned_Units
36 RETURN NUMBER
37 IS
38 BEGIN
39
40 RETURN 1 ; -- Return 1 unit
41
42 END Get_Assigned_Units ;
43
44
45 -- Schedule_Flag
46 FUNCTION Get_Schedule_Flag
47 RETURN NUMBER
48 IS
49 BEGIN
50
51 RETURN 2 ; -- Return No: 2
52
53 END Get_Schedule_Flag ;
54
55
56 -- Principle_Flag
57 FUNCTION Get_Principle_Flag
58 RETURN NUMBER
59 IS
60 BEGIN
61
65
62 RETURN 2 ; -- Return No: 2
63
64 END Get_Principle_Flag ;
66
67 -- Get Flex Operation Resource
68 PROCEDURE Get_Flex_Op_Res
69 ( p_rev_op_resource_rec IN Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type
70 , x_rev_op_resource_rec IN OUT NOCOPY Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type
71 )
72 IS
73 l_rev_op_resource_rec Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type ;
74 l_rev_op_res_unexp_rec Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type ;
75
76 BEGIN
77 -- Initialize operation exp and unexp record
78 l_rev_op_resource_rec := p_rev_op_resource_rec ;
79
80 -- In the future call Flex APIs for defaults
81
82 IF l_rev_op_resource_rec.attribute_category = FND_API.G_MISS_CHAR THEN
83 l_rev_op_resource_rec.attribute_category := NULL;
84 END IF;
85
86 IF l_rev_op_resource_rec.attribute1 = FND_API.G_MISS_CHAR THEN
87 l_rev_op_resource_rec.attribute1 := NULL;
88 END IF;
89
90 IF l_rev_op_resource_rec.attribute2 = FND_API.G_MISS_CHAR THEN
91 l_rev_op_resource_rec.attribute2 := NULL;
92 END IF;
93
94 IF l_rev_op_resource_rec.attribute3 = FND_API.G_MISS_CHAR THEN
95 l_rev_op_resource_rec.attribute3 := NULL;
96 END IF;
97
98 IF l_rev_op_resource_rec.attribute4 = FND_API.G_MISS_CHAR THEN
99 l_rev_op_resource_rec.attribute4 := NULL;
100 END IF;
101
102 IF l_rev_op_resource_rec.attribute5 = FND_API.G_MISS_CHAR THEN
103 l_rev_op_resource_rec.attribute5 := NULL;
104 END IF;
105
106 IF l_rev_op_resource_rec.attribute6 = FND_API.G_MISS_CHAR THEN
107 l_rev_op_resource_rec.attribute6 := NULL;
108 END IF;
109
110 IF l_rev_op_resource_rec.attribute7 = FND_API.G_MISS_CHAR THEN
111 l_rev_op_resource_rec.attribute7 := NULL;
112 END IF;
113
114 IF l_rev_op_resource_rec.attribute8 = FND_API.G_MISS_CHAR THEN
115 l_rev_op_resource_rec.attribute8 := NULL;
116 END IF;
117
118 IF l_rev_op_resource_rec.attribute9 = FND_API.G_MISS_CHAR THEN
119 l_rev_op_resource_rec.attribute9 := NULL;
120 END IF;
121
122 IF l_rev_op_resource_rec.attribute10 = FND_API.G_MISS_CHAR THEN
123 l_rev_op_resource_rec.attribute10 := NULL;
124 END IF;
125
126 IF l_rev_op_resource_rec.attribute11 = FND_API.G_MISS_CHAR THEN
127 l_rev_op_resource_rec.attribute11 := NULL;
128 END IF;
129
130 IF l_rev_op_resource_rec.attribute12 = FND_API.G_MISS_CHAR THEN
131 l_rev_op_resource_rec.attribute12 := NULL;
132 END IF;
133
134 IF l_rev_op_resource_rec.attribute13 = FND_API.G_MISS_CHAR THEN
135 l_rev_op_resource_rec.attribute13 := NULL;
136 END IF;
137
138 IF l_rev_op_resource_rec.attribute14 = FND_API.G_MISS_CHAR THEN
139 l_rev_op_resource_rec.attribute14 := NULL;
140 END IF;
141
142 IF l_rev_op_resource_rec.attribute15 = FND_API.G_MISS_CHAR THEN
143 l_rev_op_resource_rec.attribute15 := NULL;
144 END IF;
145
146 x_rev_op_resource_rec := l_rev_op_resource_rec ;
147
148 END Get_Flex_Op_Res ;
149
150
151
152 -- Get Usage Rate or Amount
153 PROCEDURE Get_Usage_Rate_Or_Amount
154 ( p_usage_rate_or_amount IN NUMBER
155 , p_usage_rate_or_amount_inverse IN NUMBER
156 , x_usage_rate_or_amount IN OUT NOCOPY NUMBER
157 , x_usage_rate_or_amount_inverse IN OUT NOCOPY NUMBER
158 )
159 IS
160 x_usage NUMBER := NULL ;
161 x_usage_inverse NUMBER := NULL ;
162
163 BEGIN
164
165 IF ( ( NVL(p_usage_rate_or_amount, FND_API.G_MISS_NUM)
166 = FND_API.G_MISS_NUM )
167 AND ( NVL(p_usage_rate_or_amount_inverse, FND_API.G_MISS_NUM)
168 = FND_API.G_MISS_NUM)
169 )
170 THEN
171 x_usage_rate_or_amount := 1 ;
172 x_usage_rate_or_amount_inverse := 1 ;
173
174 ELSIF
175 ( p_usage_rate_or_amount_inverse IS NULL )
176 OR ((p_usage_rate_or_amount_inverse = FND_API.G_MISS_NUM)
177 AND(p_usage_rate_or_amount <> FND_API.G_MISS_NUM)
178 )
179 THEN
180 IF p_usage_rate_or_amount = 0 THEN
181 x_usage_rate_or_amount := p_usage_rate_or_amount ;
182 x_usage_rate_or_amount_inverse := 0 ;
183 ELSE
184 -- BUG 5896587
185 -- In ROUND function the decimal places have increased from 6 to 10 for Usage and Inverse Usage
186 /* Bug 7322996 */
187 -- In ROUND function the decimal places rounding off value changed with G_round_off_val(profile value)
188 x_usage := ROUND(p_usage_rate_or_amount, G_round_off_val) ;
189
190 IF x_usage = 0 THEN
191 x_usage_rate_or_amount_inverse := 0 ;
192 ELSE
193 --
194 -- Usate Rate or Amound and Inverse 's length is 42 in FORM
195 --
196 x_usage_rate_or_amount := to_number(SUBSTR(to_char(x_usage), 1, 42)) ;
197 x_usage_rate_or_amount_inverse := to_number(SUBSTR(to_char(ROUND( 1/x_usage ,G_round_off_val)) , 1, 42)) ;/* Bug 7322996 */
198 END IF ;
199
200 END IF ;
201
202 ELSIF
203 ( p_usage_rate_or_amount IS NULL )
204 OR ((p_usage_rate_or_amount = FND_API.G_MISS_NUM)
208 IF p_usage_rate_or_amount_inverse = 0 THEN
205 AND(p_usage_rate_or_amount_inverse <> FND_API.G_MISS_NUM )
206 )
207 THEN
209 x_usage_rate_or_amount := 0 ;
210 x_usage_rate_or_amount_inverse := p_usage_rate_or_amount_inverse ;
211 ELSE
212 x_usage_inverse := ROUND(p_usage_rate_or_amount_inverse ,G_round_off_val) ;/* Bug 7322996 */
213
214 IF x_usage_inverse = 0 THEN
215 x_usage_rate_or_amount := 0 ;
216 ELSE
217 --
218 -- Usate Rate or Amound and Inverse 's length is 42 in FORM
219 --
220 x_usage_rate_or_amount_inverse := to_number(SUBSTR(to_char(x_usage_inverse), 1, 42)) ;
221 x_usage_rate_or_amount := to_number( SUBSTR(to_char(ROUND( 1/ x_usage_inverse ,G_round_off_val )), 1, 42 )) ; /* Bug 7322996 */
222 END IF ;
223 END IF ;
224 ELSE
225 x_usage_rate_or_amount := p_usage_rate_or_amount ;
226 x_usage_rate_or_amount_inverse := p_usage_rate_or_amount_inverse ;
227 END IF ;
228
229 END Get_Usage_Rate_Or_Amount ;
230
231
232 -- Get Resource Attributes
233 PROCEDURE Get_Res_Attributes
234 ( p_operation_sequence_id IN NUMBER
235 , p_resource_id IN NUMBER
236 , p_activity_id IN NUMBER
237 , p_autocharge_type IN NUMBER
238 , p_basis_type IN NUMBER
239 , p_standard_rate_flag IN NUMBER
240 , p_org_id IN NUMBER
241 , x_activity_id IN OUT NOCOPY NUMBER
242 , x_autocharge_type IN OUT NOCOPY NUMBER
243 , x_basis_type IN OUT NOCOPY NUMBER
244 , x_standard_rate_flag IN OUT NOCOPY NUMBER
245 )
246 IS
247
248 CURSOR l_res_attr_csr( p_op_seq_id NUMBER
249 , p_res_id NUMBER )
250 IS
251 SELECT br.default_basis_type
252 , ca.activity_id
253 , DECODE ( bd.location_id,
254 NULL, DECODE(br.AUTOCHARGE_TYPE,
255 NULL, 2,
256 3, 2,
257 br.AUTOCHARGE_TYPE),
258 NVL(br.AUTOCHARGE_TYPE, 2)
259 ) default_autocharge
260 , NVL(br.standard_rate_flag, 1) standard_rate_flag
261 FROM BOM_RESOURCES br
262 , BOM_DEPARTMENTS bd
263 , BOM_OPERATION_SEQUENCES bos
264 , CST_ACTIVITIES_VAL_V ca
265 WHERE bd.department_id = bos.department_id
266 AND ca.activity_id (+) = br.default_activity_id
267 AND NVL(ca.organization_id, p_org_id) = p_org_id
268 AND br.resource_id = p_resource_id
269 AND bos.operation_sequence_id = p_operation_sequence_id ;
270
271
272
273 BEGIN
274 FOR l_res_attr_rec IN l_res_attr_csr ( p_op_seq_id => p_operation_sequence_id
275 , p_res_id => p_resource_id )
276 LOOP
277 IF ( p_activity_id IS NULL OR p_activity_id = FND_API.G_MISS_NUM )
278 THEN
279 x_activity_id := l_res_attr_rec.activity_id ;
280 ELSE
281 x_activity_id := p_activity_id ;
282 END IF ;
283
284 IF p_autocharge_type IS NULL OR p_autocharge_type = FND_API.G_MISS_NUM
285 THEN
286 x_autocharge_type := l_res_attr_rec.default_autocharge ;
287 ELSE
288 x_autocharge_type := p_autocharge_type ;
289 END IF ;
290
291 IF p_basis_type IS NULL OR p_basis_type = FND_API.G_MISS_NUM
292 THEN
293 x_basis_type := NVL(l_res_attr_rec.default_basis_type,1) ;
294 ELSE
295 x_basis_type := p_basis_type ;
296 END IF ;
297
298 IF p_standard_rate_flag IS NULL OR p_standard_rate_flag = FND_API.G_MISS_NUM
299 THEN
300
301 x_standard_rate_flag := NVL(l_res_attr_rec.standard_rate_flag,1) ;
302
303 ELSE
304 x_standard_rate_flag := p_standard_rate_flag ;
305
306 END IF ;
307 END LOOP ;
308
309 END Get_Res_Attributes ;
310
311 /*** Added for bug 2683529 ***/
312 FUNCTION Get_Res_Batchable ( p_resource_id IN NUMBER
313 ) RETURN NUMBER
314 IS
315 CURSOR l_res_csr( p_resource_id NUMBER)
316 IS
317 SELECT nvl(br.batchable,2) batchable
318 FROM BOM_RESOURCES br
319 WHERE br.resource_id = p_resource_id;
320
321 BEGIN
322 FOR l_res_rec IN l_res_csr (p_resource_id)
323 LOOP
324 RETURN l_res_rec.batchable;
325 END LOOP ;
326
327 RETURN NULL ;
328
329 END Get_Res_Batchable ;
330
331 /*** This is not being used anymore ***/
332 FUNCTION Get_Available_24hs_flag ( p_resource_id IN NUMBER
333 , p_op_seq_id IN NUMBER
334 ) RETURN NUMBER
335 IS
336
337
338 CURSOR l_deptres_csr( p_resource_id NUMBER
339 , p_op_seq_id NUMBER
340 )
341 IS
342 SELECT bdr.available_24_hours_flag
343 FROM BOM_OPERATION_SEQUENCES bos
347 AND bos.operation_sequence_id = p_op_seq_id ;
344 , BOM_DEPARTMENT_RESOURCES bdr
345 WHERE bdr.department_id = bos.department_id
346 AND bdr.resource_id = p_resource_id
348
349 BEGIN
350 FOR l_deptres_rec IN l_deptres_csr ( p_resource_id
351 , p_op_seq_id )
352 LOOP
353 RETURN l_deptres_rec.available_24_hours_flag ;
354 END LOOP ;
355
356 RETURN NULL ;
357
358 END Get_Available_24hs_flag ;
359
360
361 /*********************************************************************
362 * Procedure : Attribute_Defaulting by RTG BO
363 * Parameters IN : Operation Resource exposed column record
364 * Operation Resource unexposed column record
365 * Parameters OUT: Operation Resource exposed column record after defaulting
366 * Operation Resource unexposed column record after defaulting
367 * Return Status
368 * Message Token Table
369 * Purpose : Convert Routing Op Resource to ECO Op Resource and
370 * Call Attribute_Defaulting for ECO Bo
371 * This procedure will default values in all the operation
372 * resource fields that the user has left unfilled.
373 **********************************************************************/
374 PROCEDURE Attribute_Defaulting
375 ( p_op_resource_rec IN Bom_Rtg_Pub.Op_Resource_Rec_Type
376 , p_op_res_unexp_rec IN Bom_Rtg_Pub.Op_Res_Unexposed_Rec_Type
377 , x_op_resource_rec IN OUT NOCOPY Bom_Rtg_Pub.Op_Resource_Rec_Type
378 , x_op_res_unexp_rec IN OUT NOCOPY Bom_Rtg_Pub.Op_Res_Unexposed_Rec_Type
379 , x_mesg_token_tbl IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
380 , x_return_status IN OUT NOCOPY VARCHAR2
381 )
382 IS
383 l_rev_op_resource_rec Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type ;
384 l_rev_op_res_unexp_rec Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type ;
385
386 BEGIN
387
388 x_return_status := FND_API.G_RET_STS_SUCCESS;
389
390 -- Convert Routing Op Resource to ECO Op Resource
391 Bom_Rtg_Pub.Convert_RtgRes_To_EcoRes
392 ( p_rtg_op_resource_rec => p_op_resource_rec
393 , p_rtg_op_res_unexp_rec => p_op_res_unexp_rec
394 , x_rev_op_resource_rec => l_rev_op_resource_rec
395 , x_rev_op_res_unexp_rec => l_rev_op_res_unexp_rec
396 ) ;
397
398
399 -- Once the record transfer is done call the common
400 -- operation attribute defaulting
401 --
402 BOM_Default_Op_Res.Attribute_Defaulting
403 ( p_rev_op_resource_rec => l_rev_op_resource_rec
404 , p_rev_op_res_unexp_rec => l_rev_op_res_unexp_rec
405 , p_control_Rec => Bom_Rtg_Pub.G_Default_Control_Rec
406 , x_rev_op_resource_rec => l_rev_op_resource_rec
407 , x_rev_op_res_unexp_rec => l_rev_op_res_unexp_rec
408 , x_return_status => x_return_status
409 , x_mesg_token_tbl => x_mesg_token_tbl
410 ) ;
411
412
413 -- Convert the Common record to Routing Record
414 Bom_Rtg_Pub.Convert_EcoRes_To_RtgRes
415 ( p_rev_op_resource_rec => l_rev_op_resource_rec
416 , p_rev_op_res_unexp_rec => l_rev_op_res_unexp_rec
417 , x_rtg_op_resource_rec => x_op_resource_rec
418 , x_rtg_op_res_unexp_rec => x_op_res_unexp_rec
419 ) ;
420
421
422 END Attribute_Defaulting ;
423
424 /********************************************************************
425 * Procedure : Attribute_Defaulting by ECO BO
426 * Parameters IN : Revised Op Resource exposed column record
427 * Revised Op Resource unexposed column record
428 * Parameters OUT: Revised Op Resource exposed column record after defaulting
429 * Revised Op Resource unexposed column record after defaulting
430 * Return Status
431 * Message Token Table
432 * Purpose : Attribute defaulting proc. defualts columns to
433 * appropriate values. Defualting will happen for
434 * exposed as well as unexposed columns.
435 *********************************************************************/
436 PROCEDURE Attribute_Defaulting
437 ( p_rev_op_resource_rec IN Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type
438 , p_rev_op_res_unexp_rec IN Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type
439 , p_control_Rec IN Bom_Rtg_Pub.Control_Rec_Type
440 , x_rev_op_resource_rec IN OUT NOCOPY Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type
441 , x_rev_op_res_unexp_rec IN OUT NOCOPY Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type
442 , x_mesg_token_tbl IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
443 , x_return_status IN OUT NOCOPY VARCHAR2
444 )
445
446 IS
447
448 l_rev_op_resource_rec Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type ;
449 l_rev_op_res_unexp_rec Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type ;
450
451 l_return_status VARCHAR2(1);
452 l_err_text VARCHAR2(2000) ;
453 l_Mesg_Token_Tbl Error_Handler.Mesg_Token_Tbl_Type;
454
455
456 BEGIN
457
458 IF BOM_Rtg_Globals.Get_Debug = 'Y' THEN Error_Handler.Write_Debug
459 ('Within the Operation Resource Attr. Defaulting...') ;
460 END IF ;
461
462 x_return_status := FND_API.G_RET_STS_SUCCESS ;
463
464 -- Initialize operation exp and unexp record
465 l_rev_op_resource_rec := p_rev_op_resource_rec ;
466 l_rev_op_res_unexp_rec := p_rev_op_res_unexp_rec ;
467
468
472 --
469 /***********************************************************
470 --
471 -- Default Assigned_Units
473 ***********************************************************/
474 IF l_rev_op_resource_rec.assigned_units IS NULL OR
475 l_rev_op_resource_rec.assigned_units = FND_API.G_MISS_NUM
476 THEN
477 l_rev_op_resource_rec.assigned_units :=
478 Get_Assigned_Units ;
479 END IF ;
480
481
482
483 /*********************************************************
484 --
485 -- Default Schedule_Flag
486 --
487 ***********************************************************/
488
489 IF l_rev_op_resource_rec.schedule_flag IS NULL OR
490 l_rev_op_resource_rec.schedule_flag = FND_API.G_MISS_NUM
491 THEN
492 l_rev_op_resource_rec.schedule_flag :=
493 Get_Schedule_Flag ;
494 END IF;
495
496 /************************************************************
497 --
498 -- Default Principle_Flag
499 --
500 ************************************************************/
501
502 IF l_rev_op_resource_rec.principle_flag IS NULL OR
503 l_rev_op_resource_rec.principle_flag = FND_API.G_MISS_NUM
504 THEN
505 l_rev_op_resource_rec.principle_flag :=
506 Get_Principle_Flag ;
507 END IF;
508
509
510
511 /************************************************************
512 --
513 -- Default Operation Sequence's FlexFields
514 --
515 ************************************************************/
516
517 IF l_rev_op_resource_rec.attribute_category = FND_API.G_MISS_CHAR
518 OR l_rev_op_resource_rec.attribute1 = FND_API.G_MISS_CHAR
519 OR l_rev_op_resource_rec.attribute2 = FND_API.G_MISS_CHAR
520 OR l_rev_op_resource_rec.attribute3 = FND_API.G_MISS_CHAR
521 OR l_rev_op_resource_rec.attribute4 = FND_API.G_MISS_CHAR
522 OR l_rev_op_resource_rec.attribute5 = FND_API.G_MISS_CHAR
523 OR l_rev_op_resource_rec.attribute6 = FND_API.G_MISS_CHAR
524 OR l_rev_op_resource_rec.attribute7 = FND_API.G_MISS_CHAR
525 OR l_rev_op_resource_rec.attribute8 = FND_API.G_MISS_CHAR
526 OR l_rev_op_resource_rec.attribute9 = FND_API.G_MISS_CHAR
527 OR l_rev_op_resource_rec.attribute10 = FND_API.G_MISS_CHAR
528 OR l_rev_op_resource_rec.attribute11 = FND_API.G_MISS_CHAR
529 OR l_rev_op_resource_rec.attribute12 = FND_API.G_MISS_CHAR
530 OR l_rev_op_resource_rec.attribute13 = FND_API.G_MISS_CHAR
531 OR l_rev_op_resource_rec.attribute14 = FND_API.G_MISS_CHAR
532 OR l_rev_op_resource_rec.attribute15 = FND_API.G_MISS_CHAR
533 THEN
534
535 Get_Flex_Op_Res( p_rev_op_resource_rec => l_rev_op_resource_rec
536 , x_rev_op_resource_rec => l_rev_op_resource_rec ) ;
537
538 END IF;
539
540 x_rev_op_resource_rec := l_rev_op_resource_rec ;
541 x_rev_op_res_unexp_rec := l_rev_op_res_unexp_rec ;
542
543 IF BOM_Rtg_Globals.Get_Debug = 'Y' THEN
544 Error_Handler.Write_Debug('Getting out of Operation Resource Attribute Defualting...');
545 END IF ;
546
547
548 EXCEPTION
549 WHEN OTHERS THEN
550 IF BOM_Rtg_Globals.Get_Debug = 'Y' THEN Error_Handler.Write_Debug
551 ('Some unknown error in Attribute Defaulting . . .' || SQLERRM );
552 END IF ;
553
554
555 l_err_text := G_PKG_NAME || ' Default (Attr. Defaulting) '
556 || substrb(SQLERRM,1,200);
557 -- dbms_output.put_line('Unexpected Error: '||l_err_text);
558
559 Error_Handler.Add_Error_Token
560 ( p_message_name => NULL
561 , p_message_text => l_err_text
562 , p_mesg_token_tbl => l_mesg_token_tbl
563 , x_mesg_token_tbl => l_mesg_token_tbl
564 ) ;
565
566 -- Return the status and message table.
567 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
568 x_mesg_token_tbl := l_mesg_token_tbl ;
569
570
571 END Attribute_Defaulting ;
572
573
574
575 /******************************************************************
576 * Procedure : Populate_Null_Columns used by Rtg BO(Update or Delete)
577 * Parameters IN : Operation Resource exposed column record
578 * Operation Resource unexposed column record
579 * Old Operation Resource exposed column record
580 * Old Operation Resource unexposed column record
581 * Parameters OUT: Op Resource exposed column record after
582 * populating null columns
583 * Op Resource unexposed column record after
584 * populating null columns
585 * Purpose : Convert Routing Op Resource to ECO Op Resource and
586 * Call Populate_Null_Columns for ECO BO.
587 * The procedure will populate the NULL columns from the
588 * record that is queried from the database.
589 ********************************************************************/
590 PROCEDURE Populate_Null_Columns
591 ( p_op_resource_rec IN Bom_Rtg_Pub.Op_Resource_Rec_Type
592 , p_op_res_unexp_rec IN Bom_Rtg_Pub.Op_Res_Unexposed_Rec_Type
593 , p_old_op_resource_rec IN Bom_Rtg_Pub.Op_Resource_Rec_Type
597 )
594 , p_old_op_res_unexp_rec IN Bom_Rtg_Pub.Op_Res_Unexposed_Rec_Type
595 , x_op_resource_rec IN OUT NOCOPY Bom_Rtg_Pub.Op_Resource_Rec_Type
596 , x_op_res_unexp_rec IN OUT NOCOPY Bom_Rtg_Pub.Op_Res_Unexposed_Rec_Type
598
599 IS
600 l_rev_op_resource_rec Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type ;
601 l_rev_op_res_unexp_rec Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type ;
602 l_old_rev_op_resource_rec Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type ;
603 l_old_rev_op_res_unexp_rec Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type ;
604
605
606 BEGIN
607
608 -- Convert Routing Op Resource to Revised Op Resource
609 Bom_Rtg_Pub.Convert_RtgRes_To_EcoRes
610 ( p_rtg_op_resource_rec => p_op_resource_rec
611 , p_rtg_op_res_unexp_rec => p_op_res_unexp_rec
612 , x_rev_op_resource_rec => l_rev_op_resource_rec
613 , x_rev_op_res_unexp_rec => l_rev_op_res_unexp_rec
614 ) ;
615
616 -- Also Convert Old Rtg Op Resource to Old Revised Op Resource
617 Bom_Rtg_Pub.Convert_RtgRes_To_EcoRes
618 ( p_rtg_op_resource_rec => p_old_op_resource_rec
619 , p_rtg_op_res_unexp_rec => p_old_op_res_unexp_rec
620 , x_rev_op_resource_rec => l_old_rev_op_resource_rec
621 , x_rev_op_res_unexp_rec => l_old_rev_op_res_unexp_rec
622 ) ;
623
624 --
625 -- Once the record transfer is done call the common
626 -- operation populate null columns
627 --
628 Bom_Default_Op_Res.Populate_Null_Columns
629 ( p_rev_op_resource_rec => l_rev_op_resource_rec
630 , p_rev_op_res_unexp_rec => l_rev_op_res_unexp_rec
631 , p_old_rev_op_resource_rec => l_old_rev_op_resource_rec
632 , p_old_rev_op_res_unexp_rec => l_old_rev_op_res_unexp_rec
633 , x_rev_op_resource_rec => l_rev_op_resource_rec
634 , x_rev_op_res_unexp_rec => l_rev_op_res_unexp_rec
635 ) ;
636
637 --
638 -- On return from the populate null columns, save the defaulted
639 -- record back in the RTG BO's records
640 --
641
642 -- Convert the Common record to Routing Record
643 Bom_Rtg_Pub.Convert_EcoRes_To_RtgRes
644 ( p_rev_op_resource_rec => l_rev_op_resource_rec
645 , p_rev_op_res_unexp_rec => l_rev_op_res_unexp_rec
646 , x_rtg_op_resource_rec => x_op_resource_rec
647 , x_rtg_op_res_unexp_rec => x_op_res_unexp_rec
648 ) ;
649
650 END Populate_Null_Columns;
651
652
653 /******************************************************************
654 * Procedure : Populate_Null_Columns used
655 * used by ECO BO(Update, Delete or Create with ACD_Type:2 Change)
656 * Parameters IN : Revised Op Resource exposed column record
657 * Revised Op Resource unexposed column record
658 * Old Revised Op Resource exposed column record
659 * Old Revised Op Resource unexposed column record
660 * Parameters OUT: Revised Op Resource exposed column record
661 * after populating null columns
662 * Revised Op Resource unexposed column record
663 * after populating null columns
664 * Purpose : Complete record will compare the database record with
665 * the user given record and will complete the user
666 * record with values from the database record, for all
667 * columns that the user has left NULL.
668 ********************************************************************/
669 PROCEDURE Populate_Null_Columns
670 ( p_rev_op_resource_rec IN Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type
671 , p_rev_op_res_unexp_rec IN Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type
672 , p_old_rev_op_resource_rec IN Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type
673 , p_old_rev_op_res_unexp_rec IN Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type
674 , x_rev_op_resource_rec IN OUT NOCOPY Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type
675 , x_rev_op_res_unexp_rec IN OUT NOCOPY Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type
676 )
677 IS
678
679 l_rev_op_resource_rec Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type ;
680 l_rev_op_res_unexp_rec Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type ;
681
682 BEGIN
683 IF BOM_Rtg_Globals.Get_Debug = 'Y' THEN Error_Handler.Write_Debug
684 ('Within the Operation Resource Populate null columns...') ;
685 END IF ;
686
687 -- Initialize operation exp and unexp record
688 l_rev_op_resource_rec := p_rev_op_resource_rec ;
689 l_rev_op_res_unexp_rec := p_rev_op_res_unexp_rec ;
690
691 -- Exposed Column
692 IF BOM_Rtg_Globals.Get_Debug = 'Y' THEN Error_Handler.Write_Debug
693 ('Populate null exposed columns......') ;
694 END IF ;
695
696 IF l_rev_op_resource_rec.ACD_Type IS NULL
697 THEN
698 l_rev_op_resource_rec.ACD_Type
699 := p_old_rev_op_resource_rec.ACD_Type ;
700 END IF ;
701
702 IF l_rev_op_resource_rec.Resource_Sequence_Number IS NULL
703 THEN
704 l_rev_op_resource_rec.Resource_Sequence_Number
705 := p_old_rev_op_resource_rec.Resource_Sequence_Number ;
706 END IF ;
707
708 IF l_rev_op_resource_rec.Standard_Rate_Flag IS NULL
709 THEN
710 l_rev_op_resource_rec.Standard_Rate_Flag
711 := p_old_rev_op_resource_rec.Standard_Rate_Flag ;
712 END IF ;
713
714
715 IF l_rev_op_resource_rec.Assigned_Units IS NULL
716 THEN
720
717 l_rev_op_resource_rec.Assigned_Units
718 := p_old_rev_op_resource_rec.Assigned_Units ;
719 END IF;
721 -- Usage Rate and Inverse are not same as others because
722 -- of defaulting.
723 IF l_rev_op_resource_rec.Usage_Rate_Or_Amount IS NULL AND
724 l_rev_op_resource_rec.Usage_Rate_Or_Amount_Inverse IS NULL
725 THEN
726 l_rev_op_resource_rec.Usage_Rate_Or_Amount
727 := p_old_rev_op_resource_rec.Usage_Rate_Or_Amount ;
728
729 l_rev_op_resource_rec.Usage_Rate_Or_Amount_Inverse
730 := p_old_rev_op_resource_rec.Usage_Rate_Or_Amount_Inverse ;
731
732 END IF ;
733
734
735 IF l_rev_op_resource_rec.Basis_Type IS NULL
736 THEN
737 l_rev_op_resource_rec.Basis_Type
738 := p_old_rev_op_resource_rec.Basis_Type ;
739 END IF ;
740
741 IF l_rev_op_resource_rec.Schedule_Flag IS NULL
742 THEN
743 l_rev_op_resource_rec.Schedule_Flag
744 := p_old_rev_op_resource_rec.Schedule_Flag ;
745 END IF ;
746
747 IF l_rev_op_resource_rec.Resource_Offset_Percent IS NULL
748 THEN
749 l_rev_op_resource_rec.Resource_Offset_Percent
750 := p_old_rev_op_resource_rec.Resource_Offset_Percent ;
751 END IF ;
752
753 IF l_rev_op_resource_rec.Autocharge_Type IS NULL
754 THEN
755 l_rev_op_resource_rec.Autocharge_Type
756 := p_old_rev_op_resource_rec.Autocharge_Type ;
757 END IF ;
758
759 IF l_rev_op_resource_rec.Schedule_Sequence_Number IS NULL
760 THEN
761 l_rev_op_resource_rec.Schedule_Sequence_Number
762 := p_old_rev_op_resource_rec.Schedule_Sequence_Number ;
763 END IF ;
764
765 IF l_rev_op_resource_rec.Substitute_Group_Number IS NULL
766 THEN
767 l_rev_op_resource_rec.Substitute_Group_Number
768 := p_old_rev_op_resource_rec.Substitute_Group_Number;
769 END IF ;
770
771 IF l_rev_op_resource_rec.Principle_Flag IS NULL
772 THEN
773 l_rev_op_resource_rec.Principle_Flag
774 := p_old_rev_op_resource_rec.Principle_Flag ;
775 END IF ;
776
777 -- Populate Null Columns for FlexFields
778 IF l_rev_op_resource_rec.attribute_category IS NULL THEN
779 l_rev_op_resource_rec.attribute_category :=
780 p_old_rev_op_resource_rec.attribute_category;
781 END IF;
782
783 IF l_rev_op_resource_rec.attribute1 IS NULL THEN
784 l_rev_op_resource_rec.attribute1 :=
785 p_old_rev_op_resource_rec.attribute1;
786 END IF;
787
788 IF l_rev_op_resource_rec.attribute2 IS NULL THEN
789 l_rev_op_resource_rec.attribute2 :=
790 p_old_rev_op_resource_rec.attribute2;
791 END IF;
792
793 IF l_rev_op_resource_rec.attribute3 IS NULL THEN
794 l_rev_op_resource_rec.attribute3 :=
795 p_old_rev_op_resource_rec.attribute3;
796 END IF;
797
798 IF l_rev_op_resource_rec.attribute4 IS NULL THEN
799 l_rev_op_resource_rec.attribute4 :=
800 p_old_rev_op_resource_rec.attribute4;
801 END IF;
802
803 IF l_rev_op_resource_rec.attribute5 IS NULL THEN
804 l_rev_op_resource_rec.attribute5 :=
805 p_old_rev_op_resource_rec.attribute5;
806 END IF;
807
808 IF l_rev_op_resource_rec.attribute6 IS NULL THEN
809 l_rev_op_resource_rec.attribute6 :=
810 p_old_rev_op_resource_rec.attribute6;
811 END IF;
812
813 IF l_rev_op_resource_rec.attribute7 IS NULL THEN
814 l_rev_op_resource_rec.attribute7 :=
815 p_old_rev_op_resource_rec.attribute7;
816 END IF;
817
818 IF l_rev_op_resource_rec.attribute8 IS NULL THEN
819 l_rev_op_resource_rec.attribute8 :=
820 p_old_rev_op_resource_rec.attribute8;
821 END IF;
822
823 IF l_rev_op_resource_rec.attribute9 IS NULL THEN
824 l_rev_op_resource_rec.attribute9 :=
825 p_old_rev_op_resource_rec.attribute9;
826 END IF;
827
828 IF l_rev_op_resource_rec.attribute10 IS NULL THEN
829 l_rev_op_resource_rec.attribute10 :=
830 p_old_rev_op_resource_rec.attribute10;
831 END IF;
832
833 IF l_rev_op_resource_rec.attribute11 IS NULL THEN
834 l_rev_op_resource_rec.attribute11 :=
835 p_old_rev_op_resource_rec.attribute11;
836 END IF;
837
838 IF l_rev_op_resource_rec.attribute12 IS NULL THEN
839 l_rev_op_resource_rec.attribute12 :=
840 p_old_rev_op_resource_rec.attribute12;
841 END IF;
842
843 IF l_rev_op_resource_rec.attribute13 IS NULL THEN
844 l_rev_op_resource_rec.attribute13 :=
845 p_old_rev_op_resource_rec.attribute13;
846 END IF;
847
848 IF l_rev_op_resource_rec.attribute14 IS NULL THEN
849 l_rev_op_resource_rec.attribute14 :=
850 p_old_rev_op_resource_rec.attribute14;
851 END IF;
852
853 IF l_rev_op_resource_rec.attribute15 IS NULL THEN
857
854 l_rev_op_resource_rec.attribute15 :=
855 p_old_rev_op_resource_rec.attribute15;
856 END IF;
858
859 --
860 -- Also copy the Unexposed Columns from Database to New record
861 --
862
863
864 IF BOM_Rtg_Globals.Get_Debug = 'Y' THEN Error_Handler.Write_Debug
865 ('Populate Null Unexposed columns......') ;
866 END IF ;
867
868
869 IF l_rev_op_resource_rec.transaction_type <> BOM_Rtg_Globals.G_OPR_CREATE
870 THEN
871
872 l_rev_op_res_unexp_rec.Revised_Item_Sequence_Id
873 := p_old_rev_op_res_unexp_rec.Revised_Item_Sequence_Id ;
874
875 l_rev_op_res_unexp_rec.Operation_Sequence_Id
876 := p_old_rev_op_res_unexp_rec.Operation_Sequence_Id ;
877
878 END IF;
879
880
881 IF l_rev_op_resource_rec.Substitute_Group_Number IS NULL
882 OR l_rev_op_resource_rec.Substitute_Group_Number = FND_API.G_MISS_NUM
883 THEN
884 l_rev_op_resource_rec.Substitute_Group_Number
885 := p_old_rev_op_resource_rec.Substitute_Group_Number ;
886 END IF ;
887 l_rev_op_res_unexp_rec.Substitute_Group_Number := l_rev_op_resource_rec.Substitute_Group_Number;
888
889 IF l_rev_op_res_unexp_rec.Resource_Id IS NULL
890 OR l_rev_op_res_unexp_rec.Resource_Id = FND_API.G_MISS_NUM
891 THEN
892 l_rev_op_res_unexp_rec.Resource_Id
893 := p_old_rev_op_res_unexp_rec.Resource_Id ;
894 END IF ;
895
896 IF l_rev_op_res_unexp_rec.Activity_Id IS NULL
897 OR l_rev_op_res_unexp_rec.Activity_Id = FND_API.G_MISS_NUM
898 THEN
899 l_rev_op_res_unexp_rec.Activity_Id
900 := p_old_rev_op_res_unexp_rec.Activity_Id ;
901 END IF ;
902
903
904 IF l_rev_op_res_unexp_rec.Setup_Id IS NULL
905 OR l_rev_op_res_unexp_rec.Setup_Id = FND_API.G_MISS_NUM
906 THEN
907 l_rev_op_res_unexp_rec.Setup_Id
908 := p_old_rev_op_res_unexp_rec.Setup_Id ;
909 END IF ;
910
911
912 -- Return rev operation resource exp and unexp record
913 x_rev_op_resource_rec := l_rev_op_resource_rec ;
914 x_rev_op_res_unexp_rec := l_rev_op_res_unexp_rec ;
915
916 END Populate_Null_Columns;
917
918
919 /*********************************************************************
920 * Procedure : Entity_Defaulting by RTG BO
921 * Parameters IN : Operation Resource exposed column record
922 * Operation Resource unexposed column record
923 * Parameters OUT: Operation Resource exposed column record after defaulting
924 * Operation Resource unexposed column record after defaulting
925 * Return Status
926 * Message Token Table
927 * Purpose : Convert Routing Op Resource to Revised Op Resource and
928 * Call Entity_Defaulting for ECO Bo
929 * This procedure will entity default values in all the op resource.
930 * fields that the user has left unfilled.
931 **********************************************************************/
932 PROCEDURE Entity_Defaulting
933 ( p_op_resource_rec IN Bom_Rtg_Pub.Op_Resource_Rec_Type
934 , p_op_res_unexp_rec IN Bom_Rtg_Pub.Op_Res_Unexposed_Rec_Type
935 , x_op_resource_rec IN OUT NOCOPY Bom_Rtg_Pub.Op_Resource_Rec_Type
936 , x_op_res_unexp_rec IN OUT NOCOPY Bom_Rtg_Pub.Op_Res_Unexposed_Rec_Type
937 , x_mesg_token_tbl IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
938 , x_return_status IN OUT NOCOPY VARCHAR2
939 )
940 IS
941 l_rev_op_resource_rec Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type ;
942 l_rev_op_res_unexp_rec Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type ;
943
944 l_return_status VARCHAR2(1);
945 l_err_text VARCHAR2(2000) ;
946 l_Mesg_Token_Tbl Error_Handler.Mesg_Token_Tbl_Type;
947
948 BEGIN
949
950 x_return_status := FND_API.G_RET_STS_SUCCESS;
951
952 --
953 -- The record definition of Revised Op Resource in ECO BO is
954 -- slightly different than the Op Resource definition of RTG BO
955 -- So, we will copy the values of RTG BO Record into an ECO
956 -- BO compatible record before we make a call to the
957 -- Entity Defaulting procedure.
958 --
959
960 -- Convert Routing Op Resource to ECO Op Resource
961 Bom_Rtg_Pub.Convert_RtgRes_To_EcoRes
962 ( p_rtg_op_resource_rec => p_op_resource_rec
963 , p_rtg_op_res_unexp_rec => p_op_res_unexp_rec
964 , x_rev_op_resource_rec => l_rev_op_resource_rec
965 , x_rev_op_res_unexp_rec => l_rev_op_res_unexp_rec
966 ) ;
967
968
969 -- Once the record transfer is done call the
970 -- Revised operation resource entity defaulting
971 --
972 BOM_Default_Op_Res.Entity_Defaulting
973 ( p_rev_op_resource_rec => l_rev_op_resource_rec
974 , p_rev_op_res_unexp_rec => l_rev_op_res_unexp_rec
975 , p_control_Rec => Bom_Rtg_Pub.G_Default_Control_Rec
976 , x_rev_op_resource_rec => l_rev_op_resource_rec
977 , x_rev_op_res_unexp_rec => l_rev_op_res_unexp_rec
978 , x_return_status => x_return_status
979 , x_mesg_token_tbl => x_mesg_token_tbl
980 ) ;
981
982 -- Convert the ECO record to Routing Record
983 Bom_Rtg_Pub.Convert_EcoRes_To_RtgRes
987 , x_rtg_op_res_unexp_rec => x_op_res_unexp_rec
984 ( p_rev_op_resource_rec => l_rev_op_resource_rec
985 , p_rev_op_res_unexp_rec => l_rev_op_res_unexp_rec
986 , x_rtg_op_resource_rec => x_op_resource_rec
988 ) ;
989
990 END Entity_Defaulting ;
991
992
993 /*********************************************************************
994 * Procedure : Entity_Defaulting by ECOBO
995 * Parameters IN : Revised Op Resource exposed column record
996 * Revised Op Resource unexposed column record
997 * Parameters OUT: Revised Op Resource exposed column record after defaulting
998 * Revised Op Resource unexposed column record after defaulting
999 * Return Status
1000 * Message Token Table
1001 * Purpose : Entity defaulting proc. defualts columns to
1002 * appropriate values. Defualting will happen for
1003 * exposed as well as unexposed columns.
1004 **********************************************************************/
1005 PROCEDURE Entity_Defaulting
1006 ( p_rev_op_resource_rec IN Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type
1007 , p_rev_op_res_unexp_rec IN Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type
1008 , p_control_Rec IN Bom_Rtg_Pub.Control_Rec_Type
1009 , x_rev_op_resource_rec IN OUT NOCOPY Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type
1010 , x_rev_op_res_unexp_rec IN OUT NOCOPY Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type
1011 , x_mesg_token_tbl IN OUT NOCOPY Error_Handler.Mesg_Token_Tbl_Type
1012 , x_return_status IN OUT NOCOPY VARCHAR2
1013 )
1014
1015 IS
1016 l_rev_op_resource_rec Bom_Rtg_Pub.Rev_Op_Resource_Rec_Type ;
1017 l_rev_op_res_unexp_rec Bom_Rtg_Pub.Rev_Op_Res_Unexposed_Rec_Type ;
1018
1019 l_return_status VARCHAR2(1);
1020 l_err_text VARCHAR2(2000) ;
1021 l_Token_Tbl Error_Handler.Token_Tbl_Type ;
1022 l_Mesg_Token_Tbl Error_Handler.Mesg_Token_Tbl_Type ;
1023
1024 BEGIN
1025
1026 IF BOM_Rtg_Globals.Get_Debug = 'Y' THEN Error_Handler.Write_Debug
1027 ('Within the Operation Resource Entity Defaulting...') ;
1028 END IF ;
1029
1030 l_return_status := FND_API.G_RET_STS_SUCCESS;
1031 x_return_status := FND_API.G_RET_STS_SUCCESS;
1032
1033 -- Initialize operation exp and unexp record
1034 l_rev_op_resource_rec := p_rev_op_resource_rec ;
1035 l_rev_op_res_unexp_rec := p_rev_op_res_unexp_rec ;
1036
1037
1038 /************************************************************
1039 --
1040 -- Default Schedule_Sequence_Number and Substitute_Group_Number
1041 -- ( Copy from Schedule_Sequence_Number )
1042 ************************************************************/
1043
1044 IF l_rev_op_resource_rec.schedule_sequence_number = FND_API.G_MISS_NUM
1045 THEN
1046 l_rev_op_resource_rec.schedule_sequence_number := NULL ;
1047 END IF ;
1048 l_rev_op_res_unexp_rec.substitute_group_number := l_rev_op_resource_rec.substitute_group_number;
1049
1050 -- l_rev_op_res_unexp_rec.substitute_group_number
1051 -- := l_rev_op_resource_rec.schedule_sequence_number ;
1052
1053 /************************************************************
1054 --
1055 -- Default Usage_Rate_Or_Amount and Usage_Rate_Or_Amount_Inverse
1056 --
1057 ************************************************************/
1058 Get_Usage_Rate_Or_Amount
1059 ( p_usage_rate_or_amount
1060 => l_rev_op_resource_rec.usage_rate_or_amount
1061 , p_usage_rate_or_amount_inverse
1062 => l_rev_op_resource_rec.usage_rate_or_amount_inverse
1063 , x_usage_rate_or_amount
1064 => l_rev_op_resource_rec.usage_rate_or_amount
1065 , x_usage_rate_or_amount_inverse
1066 => l_rev_op_resource_rec.usage_rate_or_amount_inverse
1067 ) ;
1068
1069
1070 /************************************************************
1071 --
1072 -- Default Activity_Id,
1073 -- Autocharge_Type,
1074 -- Basis_Type,
1075 -- Standard_Rate_Flag
1076 --
1077 ************************************************************/
1078 IF l_rev_op_resource_rec.transaction_type = BOM_Rtg_Globals.G_OPR_CREATE
1079 AND
1080 ( l_rev_op_res_unexp_rec.activity_id IS NULL OR
1081 l_rev_op_res_unexp_rec.activity_id = FND_API.G_MISS_NUM OR
1082 l_rev_op_resource_rec.autocharge_type IS NULL OR
1083 l_rev_op_resource_rec.autocharge_type = FND_API.G_MISS_NUM OR
1084 l_rev_op_resource_rec.basis_type IS NULL OR
1085 l_rev_op_resource_rec.basis_type = FND_API.G_MISS_NUM OR
1086 l_rev_op_resource_rec.standard_rate_flag IS NULL OR
1087 l_rev_op_resource_rec.standard_rate_flag = FND_API.G_MISS_NUM
1088 )
1089 THEN
1090 Get_Res_Attributes
1091 ( p_operation_sequence_id => l_rev_op_res_unexp_rec.operation_sequence_id
1092 , p_resource_id => l_rev_op_res_unexp_rec.resource_id
1093 , p_activity_id => l_rev_op_res_unexp_rec.activity_id
1094 , p_autocharge_type => l_rev_op_resource_rec.autocharge_type
1095 , p_basis_type => l_rev_op_resource_rec.basis_type
1096 , p_standard_rate_flag => l_rev_op_resource_rec.standard_rate_flag
1097 , p_org_id => l_rev_op_res_unexp_rec.organization_id
1101 , x_standard_rate_flag => l_rev_op_resource_rec.standard_rate_flag ) ;
1098 , x_activity_id => l_rev_op_res_unexp_rec.activity_id
1099 , x_autocharge_type => l_rev_op_resource_rec.autocharge_type
1100 , x_basis_type => l_rev_op_resource_rec.basis_type
1102
1103 END IF ;
1104
1105
1106 /************************************************************
1107 --
1108 -- Default Assigned Units
1109 -- Check if resource is availabel 24hours.
1110 -- If so, Assigned Units must be 1.
1111 --
1112 --
1113 ************************************************************/
1114 /**** Commenting the following validation as per bug 2661684
1115 IF BOM_Rtg_Globals.Get_Debug = 'Y' THEN Error_Handler.Write_Debug
1116 ('Default Assigned Units. . . . ' || l_return_status) ;
1117 END IF ;
1118
1119 IF NVL(l_rev_op_resource_rec.acd_type,l_ACD_ADD) = l_ACD_ADD
1120 AND l_rev_op_resource_rec.assigned_units <> 1
1121 THEN
1122
1123
1124 IF Get_Available_24hs_flag
1125 ( p_resource_id => l_rev_op_res_unexp_rec.resource_id
1126 , p_op_seq_id => l_rev_op_res_unexp_rec.operation_sequence_id
1127 ) = 1 -- Yes
1128 THEN
1129
1130 -- Set Assigned Units to 1
1131 l_rev_op_resource_rec.assigned_units := 1 ;
1132
1133
1134 l_Token_Tbl(1).token_name := 'RES_SEQ_NUMBER';
1135 l_Token_Tbl(1).token_value :=
1136 p_rev_op_resource_rec.resource_sequence_number ;
1137 -- Set Warning Message
1138 Error_Handler.Add_Error_Token
1139 ( p_message_name => 'BOM_RES_DEF_ASSGN_UNIT'
1140 , p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
1141 , x_Mesg_Token_Tbl => l_Mesg_Token_Tbl
1142 , p_Token_Tbl => l_Token_Tbl
1143 , p_Message_Type => 'W'
1144 ) ;
1145
1146 END IF ;
1147 END IF ;
1148 End of commenting for bug 2661684 ****/
1149
1150 /************************************************************
1151 --
1152 -- Check value of basis type -- bug 2683529
1153 -- If resource is batchable, basis type should always be LOT
1154 --
1155 ************************************************************/
1156
1157 IF BOM_Rtg_Globals.Get_Debug = 'Y' THEN Error_Handler.Write_Debug
1158 ('Default Basis type. . . . ' || l_return_status) ;
1159 END IF ;
1160
1161 IF NVL(l_rev_op_resource_rec.acd_type,l_ACD_ADD) = l_ACD_ADD
1162 AND l_rev_op_resource_rec.basis_type <> 2 -- If basis_type is not LOT
1163 THEN
1164
1165 IF Get_Res_Batchable
1166 ( p_resource_id => l_rev_op_res_unexp_rec.resource_id
1167 ) = 1 -- Batchable
1168 THEN
1169
1170 -- Set basis type to 2
1171 l_rev_op_resource_rec.basis_type := 2; -- default to LOT basis type
1172
1173 l_Token_Tbl(1).token_name := 'RES_SEQ_NUMBER';
1174 l_Token_Tbl(1).token_value :=
1175 p_rev_op_resource_rec.resource_sequence_number ;
1176 -- Set Warning Message
1177 Error_Handler.Add_Error_Token
1178 ( p_message_name => 'BOM_RES_DEF_BASIS_TYPE' -- new message
1179 , p_Mesg_Token_Tbl => l_Mesg_Token_Tbl
1180 , x_Mesg_Token_Tbl => l_Mesg_Token_Tbl
1181 , p_Token_Tbl => l_Token_Tbl
1182 , p_Message_Type => 'W'
1183 ) ;
1184
1185 END IF ;
1186 END IF ;
1187
1188
1189 /************************************************************
1190 --
1191 -- Set missing column values to Null
1192 --
1193 ************************************************************/
1194 IF l_rev_op_resource_rec.activity = FND_API.G_MISS_CHAR
1195 OR l_rev_op_res_unexp_rec.activity_id = FND_API.G_MISS_NUM
1196 THEN
1197 l_rev_op_resource_rec.activity := NULL ;
1198 l_rev_op_res_unexp_rec.activity_id := NULL ;
1199 END IF ;
1200
1201
1202 IF l_rev_op_resource_rec.setup_type = FND_API.G_MISS_CHAR
1203 OR l_rev_op_res_unexp_rec.setup_id = FND_API.G_MISS_NUM
1204 THEN
1205 l_rev_op_resource_rec.setup_type := NULL ;
1206 l_rev_op_res_unexp_rec.setup_id := NULL ;
1207 END IF ;
1208
1209
1210 IF l_rev_op_resource_rec.resource_offset_percent = FND_API.G_MISS_NUM
1211 THEN
1212 l_rev_op_resource_rec.resource_offset_percent := NULL ;
1213 END IF ;
1214
1215 IF l_rev_op_resource_rec.principle_flag = FND_API.G_MISS_NUM
1216 THEN
1217 l_rev_op_resource_rec.principle_flag := NULL ;
1218 END IF ;
1219
1220
1221 -- FlexFields
1222 IF l_rev_op_resource_rec.attribute_category = FND_API.G_MISS_CHAR THEN
1223 l_rev_op_resource_rec.attribute_category := NULL ;
1224 END IF;
1225
1229
1226 IF l_rev_op_resource_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1227 l_rev_op_resource_rec.attribute1 := NULL ;
1228 END IF;
1230 IF l_rev_op_resource_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1231 l_rev_op_resource_rec.attribute2 := NULL ;
1232 END IF;
1233
1234 IF l_rev_op_resource_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1235 l_rev_op_resource_rec.attribute3 := NULL ;
1236 END IF;
1237
1238 IF l_rev_op_resource_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1239 l_rev_op_resource_rec.attribute4 := NULL ;
1240 END IF;
1241
1242 IF l_rev_op_resource_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1243 l_rev_op_resource_rec.attribute5 := NULL ;
1244 END IF;
1245
1246 IF l_rev_op_resource_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1247 l_rev_op_resource_rec.attribute6 := NULL ;
1248 END IF;
1249
1250 IF l_rev_op_resource_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1251 l_rev_op_resource_rec.attribute7 := NULL ;
1252 END IF;
1253
1254 IF l_rev_op_resource_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1255 l_rev_op_resource_rec.attribute8 := NULL ;
1256 END IF;
1257
1258 IF l_rev_op_resource_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1259 l_rev_op_resource_rec.attribute9 := NULL ;
1260 END IF;
1261
1262 IF l_rev_op_resource_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1263 l_rev_op_resource_rec.attribute10 := NULL ;
1264 END IF;
1265
1266 IF l_rev_op_resource_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1267 l_rev_op_resource_rec.attribute11 := NULL ;
1268 END IF;
1269
1270 IF l_rev_op_resource_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1271 l_rev_op_resource_rec.attribute12 := NULL ;
1272 END IF;
1273
1274 IF l_rev_op_resource_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1275 l_rev_op_resource_rec.attribute13 := NULL ;
1276 END IF;
1277
1278 IF l_rev_op_resource_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1279 l_rev_op_resource_rec.attribute14 := NULL ;
1280 END IF;
1281
1282 IF l_rev_op_resource_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1283 l_rev_op_resource_rec.attribute15 := NULL ;
1284 END IF;
1285
1286 -- Return the status and message table.
1287 x_return_status := l_return_status ;
1288 x_mesg_token_tbl := l_mesg_token_tbl ;
1289
1290 -- Return the common operation records after entity defaulting.
1291 x_rev_op_resource_rec := l_rev_op_resource_rec ;
1292 x_rev_op_res_unexp_rec := l_rev_op_res_unexp_rec ;
1293
1294 EXCEPTION
1295 WHEN OTHERS THEN
1296 IF BOM_Rtg_Globals.Get_Debug = 'Y' THEN Error_Handler.Write_Debug
1297 ('Some unknown error in Entity Defaulting . . .' || SQLERRM );
1298 END IF ;
1299
1300
1301 l_err_text := G_PKG_NAME || ' Defaulting (Entity Defaulting) '
1302 || substrb(SQLERRM,1,200);
1303 -- dbms_output.put_line('Unexpected Error: '||l_err_text);
1304
1305 Error_Handler.Add_Error_Token
1306 ( p_message_name => NULL
1307 , p_message_text => l_err_text
1308 , p_mesg_token_tbl => l_mesg_token_tbl
1309 , x_mesg_token_tbl => l_mesg_token_tbl
1310 ) ;
1311
1312 -- Return the status and message table.
1313 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1314 x_mesg_token_tbl := l_mesg_token_tbl ;
1315
1316 END Entity_Defaulting ;
1317
1318
1319 END BOM_Default_Op_Res;