1 PACKAGE BODY EAM_RES_DEFAULT_PVT AS
2 /* $Header: EAMVRSDB.pls 120.3 2005/10/07 04:16:08 kmurthy noship $ */
3 /***************************************************************************
4 --
5 -- Copyright (c) 2002 Oracle Corporation, Redwood Shores, CA, USA
6 -- All rights reserved.
7 --
8 -- FILENAME
9 --
10 -- EAMVRSDB.pls
11 --
12 -- DESCRIPTION
13 --
14 -- Spec of package EAM_RES_DEFAULT_PVT
15 --
16 -- NOTES
17 --
18 -- HISTORY
19 --
20 -- 30-JUN-2002 Kenichi Nagumo Initial Creation
21 ***************************************************************************/
22 G_PKG_NAME CONSTANT VARCHAR2(30) := 'EAM_RES_DEFAULT_PVT';
23
24
25 /********************************************************************
26 * Procedure : get_flex_eam_rs
27 **********************************************************************/
28
29
30 PROCEDURE get_flex_eam_rs
31 ( p_eam_res_rec IN EAM_PROCESS_WO_PUB.eam_res_rec_type
32 , x_eam_res_rec OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_rec_type
33 )
34 IS
35 BEGIN
36
37 -- In the future call Flex APIs for defaults
38 x_eam_res_rec := p_eam_res_rec;
39
40 IF p_eam_res_rec.attribute_category =FND_API.G_MISS_CHAR THEN
41 x_eam_res_rec.attribute_category := NULL;
42 END IF;
43
44 IF p_eam_res_rec.attribute1 = FND_API.G_MISS_CHAR THEN
45 x_eam_res_rec.attribute1 := NULL;
46 END IF;
47
48 IF p_eam_res_rec.attribute2 = FND_API.G_MISS_CHAR THEN
49 x_eam_res_rec.attribute2 := NULL;
50 END IF;
51
52 IF p_eam_res_rec.attribute3 = FND_API.G_MISS_CHAR THEN
53 x_eam_res_rec.attribute3 := NULL;
54 END IF;
55
56 IF p_eam_res_rec.attribute4 = FND_API.G_MISS_CHAR THEN
57 x_eam_res_rec.attribute4 := NULL;
58 END IF;
59
60 IF p_eam_res_rec.attribute5 = FND_API.G_MISS_CHAR THEN
61 x_eam_res_rec.attribute5 := NULL;
62 END IF;
63
64 IF p_eam_res_rec.attribute6 = FND_API.G_MISS_CHAR THEN
65 x_eam_res_rec.attribute6 := NULL;
66 END IF;
67
68 IF p_eam_res_rec.attribute7 = FND_API.G_MISS_CHAR THEN
69 x_eam_res_rec.attribute7 := NULL;
70 END IF;
71
72 IF p_eam_res_rec.attribute8 = FND_API.G_MISS_CHAR THEN
73 x_eam_res_rec.attribute8 := NULL;
74 END IF;
75
76 IF p_eam_res_rec.attribute9 = FND_API.G_MISS_CHAR THEN
77 x_eam_res_rec.attribute9 := NULL;
78 END IF;
79
80 IF p_eam_res_rec.attribute10 = FND_API.G_MISS_CHAR THEN
81 x_eam_res_rec.attribute10 := NULL;
82 END IF;
83
84 IF p_eam_res_rec.attribute11 = FND_API.G_MISS_CHAR THEN
85 x_eam_res_rec.attribute11 := NULL;
86 END IF;
87
88 IF p_eam_res_rec.attribute12 = FND_API.G_MISS_CHAR THEN
89 x_eam_res_rec.attribute12 := NULL;
90 END IF;
91
92 IF p_eam_res_rec.attribute13 = FND_API.G_MISS_CHAR THEN
93 x_eam_res_rec.attribute13 := NULL;
94 END IF;
95
96 IF p_eam_res_rec.attribute14 = FND_API.G_MISS_CHAR THEN
97 x_eam_res_rec.attribute14 := NULL;
98 END IF;
99
100 IF p_eam_res_rec.attribute15 = FND_API.G_MISS_CHAR THEN
101 x_eam_res_rec.attribute15 := NULL;
102 END IF;
103
104 END get_flex_eam_rs;
105
106
107 /*********************************************************************
108 * Procedure : Attribute_Defaulting
109 * Parameters IN : Resource exposed record
110 * Parameters OUT NOCOPY: Resource record after defaulting
111 * Mesg_Token_Table
112 * Return_Status
113 * Purpose : Attribute Defaulting will default the necessary null
114 * attribute with appropriate values.
115 **********************************************************************/
116
117 PROCEDURE Attribute_Defaulting
118 ( p_eam_res_rec IN EAM_PROCESS_WO_PUB.eam_res_rec_type
119 , x_eam_res_rec OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_rec_type
120 , x_mesg_token_tbl OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
121 , x_return_status OUT NOCOPY VARCHAR2
122 )
123 IS
124 l_eam_res_rec EAM_PROCESS_WO_PUB.eam_res_rec_type;
125 BEGIN
126
127 x_eam_res_rec := p_eam_res_rec;
128 x_return_status := FND_API.G_RET_STS_SUCCESS;
129
130 x_eam_res_rec.basis_type := 1; -- Item
131
132 -- Defaulting assigned_units
133 IF p_eam_res_rec.assigned_units IS NULL OR
134 p_eam_res_rec.assigned_units = FND_API.G_MISS_NUM
135 THEN
136 x_eam_res_rec.assigned_units := 1;
137 END IF;
138
139 -- Defaulting autocharge_type
140 IF p_eam_res_rec.autocharge_type IS NULL OR
141 p_eam_res_rec.autocharge_type = FND_API.G_MISS_NUM
142 THEN
143 x_eam_res_rec.autocharge_type := 2; -- Manual
144 END IF;
145
146 -- Defaulting uom_code
147 IF (p_eam_res_rec.uom_code IS NULL OR
148 p_eam_res_rec.uom_code = FND_API.G_MISS_CHAR) AND
149 p_eam_res_rec.resource_id is not null AND
150 p_eam_res_rec.organization_id is not null
151 THEN
152 select unit_of_measure into x_eam_res_rec.uom_code
153 from bom_resources
154 where organization_id = p_eam_res_rec.organization_id
155 and resource_id = p_eam_res_rec.resource_id;
156 END IF;
157
158 -- Defaulting applied_resource_units
159 IF p_eam_res_rec.applied_resource_units IS NULL OR
160 p_eam_res_rec.applied_resource_units = FND_API.G_MISS_NUM
161 THEN
162 x_eam_res_rec.applied_resource_units := 0;
163 END IF;
164
165 -- Defaulting applied_resource_value
166 IF p_eam_res_rec.applied_resource_value IS NULL OR
167 p_eam_res_rec.applied_resource_value = FND_API.G_MISS_NUM
168 THEN
169 x_eam_res_rec.applied_resource_value := 0;
170 END IF;
171
172 -- Defaulting standard_rate_flag
173 IF p_eam_res_rec.standard_rate_flag IS NULL OR
174 p_eam_res_rec.standard_rate_flag = FND_API.G_MISS_NUM
175 THEN
176 x_eam_res_rec.standard_rate_flag := 1;
177 END IF;
178
179 -- Defaulting scheduled_flag
180 IF p_eam_res_rec.scheduled_flag IS NULL OR
181 p_eam_res_rec.scheduled_flag = FND_API.G_MISS_NUM
182 THEN
183 x_eam_res_rec.scheduled_flag := 2;
184 END IF;
185
186 -- Defaulting department_id
187 IF (p_eam_res_rec.department_id IS NULL OR
188 p_eam_res_rec.department_id = FND_API.G_MISS_NUM) AND
189 p_eam_res_rec.operation_seq_num is not null AND
190 p_eam_res_rec.organization_id is not null AND
191 p_eam_res_rec.wip_entity_id is not null
192 THEN
193 select department_id into x_eam_res_rec.department_id
194 from wip_operations
195 where wip_entity_id = p_eam_res_rec.wip_entity_id
196 and organization_id = p_eam_res_rec.organization_id
197 and operation_seq_num = p_eam_res_rec.operation_seq_num;
198 END IF;
199
200 l_eam_res_rec := x_eam_res_rec;
201 get_flex_eam_rs
202 ( p_eam_res_rec => x_eam_res_rec
203 , x_eam_res_rec => l_eam_res_rec
204 );
205 x_eam_res_rec := l_eam_res_rec;
206
207 EXCEPTION
208 WHEN OTHERS THEN
209 EAM_ERROR_MESSAGE_PVT.Add_Error_Token
210 ( p_message_name => NULL
211 , p_message_text => G_PKG_NAME || SQLERRM
212 , x_mesg_token_Tbl => x_mesg_token_tbl
213 );
214
215 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
216
217
218 END Attribute_Defaulting;
219
220
221 /******************************************************************
222 * Procedure : Populate_Null_Columns
223 * Parameters IN : Resource column record
224 * Old Resource Column Record
225 * Parameters OUT NOCOPY: Resource column record after populating
226 * Purpose : This procedure will look at the columns that the user
227 * has not filled in and will assign those columns a
228 * value from the old record.
229 * This procedure is not called for CREATE
230 ********************************************************************/
231 PROCEDURE Populate_Null_Columns
232 ( p_eam_res_rec IN EAM_PROCESS_WO_PUB.eam_res_rec_type
233 , p_old_eam_res_rec IN EAM_PROCESS_WO_PUB.eam_res_rec_type
234 , x_eam_res_rec OUT NOCOPY EAM_PROCESS_WO_PUB.eam_res_rec_type
235 )
236 IS
237 BEGIN
238 x_eam_res_rec := p_eam_res_rec;
239 x_eam_res_rec := p_eam_res_rec;
240
241 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Processing null columns prior update'); END IF;
242
243 IF p_eam_res_rec.resource_id IS NULL OR
244 p_eam_res_rec.resource_id = FND_API.G_MISS_NUM
245 THEN
246 x_eam_res_rec.resource_id := p_old_eam_res_rec.resource_id;
247 END IF;
248
249 IF p_eam_res_rec.uom_code IS NULL OR
250 p_eam_res_rec.uom_code = FND_API.G_MISS_CHAR
251 THEN
252 x_eam_res_rec.uom_code := p_old_eam_res_rec.uom_code;
253 END IF;
254
255 IF p_eam_res_rec.basis_type IS NULL OR
256 p_eam_res_rec.basis_type = FND_API.G_MISS_NUM
257 THEN
258 x_eam_res_rec.basis_type := p_old_eam_res_rec.basis_type;
259 END IF;
260
261 IF p_eam_res_rec.usage_rate_or_amount IS NULL OR
262 p_eam_res_rec.usage_rate_or_amount = FND_API.G_MISS_NUM
263 THEN
264 x_eam_res_rec.usage_rate_or_amount := p_old_eam_res_rec.usage_rate_or_amount;
265 END IF;
266
267 IF p_eam_res_rec.activity_id IS NULL OR
268 p_eam_res_rec.activity_id = FND_API.G_MISS_NUM
269 THEN
270 x_eam_res_rec.activity_id := p_old_eam_res_rec.activity_id;
271 END IF;
272
273 IF p_eam_res_rec.scheduled_flag IS NULL OR
274 p_eam_res_rec.scheduled_flag = FND_API.G_MISS_NUM
275 THEN
276 x_eam_res_rec.scheduled_flag := p_old_eam_res_rec.scheduled_flag;
277 END IF;
278
279 IF p_eam_res_rec.firm_flag IS NULL OR
280 p_eam_res_rec.firm_flag = FND_API.G_MISS_NUM
281 THEN
282 x_eam_res_rec.firm_flag := p_old_eam_res_rec.firm_flag;
283 END IF;
284
285 IF p_eam_res_rec.assigned_units IS NULL OR
286 p_eam_res_rec.assigned_units = FND_API.G_MISS_NUM
287 THEN
288 x_eam_res_rec.assigned_units := p_old_eam_res_rec.assigned_units;
289 END IF;
290
291 IF p_eam_res_rec.maximum_assigned_units IS NULL OR
292 p_eam_res_rec.maximum_assigned_units = FND_API.G_MISS_NUM
293 THEN
294 x_eam_res_rec.maximum_assigned_units := p_old_eam_res_rec.maximum_assigned_units;
295 END IF;
296
297 IF p_eam_res_rec.autocharge_type IS NULL OR
298 p_eam_res_rec.autocharge_type = FND_API.G_MISS_NUM
299 THEN
300 x_eam_res_rec.autocharge_type := p_old_eam_res_rec.autocharge_type;
301 END IF;
302
303 IF p_eam_res_rec.standard_rate_flag IS NULL OR
304 p_eam_res_rec.standard_rate_flag = FND_API.G_MISS_NUM
305 THEN
306 x_eam_res_rec.standard_rate_flag := p_old_eam_res_rec.standard_rate_flag;
307 END IF;
308
309 IF p_eam_res_rec.applied_resource_units IS NULL OR
310 p_eam_res_rec.applied_resource_units = FND_API.G_MISS_NUM
311 THEN
312 x_eam_res_rec.applied_resource_units := p_old_eam_res_rec.applied_resource_units;
313 END IF;
314
315 IF p_eam_res_rec.applied_resource_value IS NULL OR
316 p_eam_res_rec.applied_resource_value = FND_API.G_MISS_NUM
317 THEN
318 x_eam_res_rec.applied_resource_value := p_old_eam_res_rec.applied_resource_value;
319 END IF;
320
321 IF p_eam_res_rec.start_date IS NULL OR
322 p_eam_res_rec.start_date = FND_API.G_MISS_DATE
323 THEN
324 x_eam_res_rec.start_date := p_old_eam_res_rec.start_date;
325 END IF;
326
327 IF p_eam_res_rec.completion_date IS NULL OR
328 p_eam_res_rec.completion_date = FND_API.G_MISS_DATE
329 THEN
330 x_eam_res_rec.completion_date := p_old_eam_res_rec.completion_date;
331 END IF;
332
333 IF p_eam_res_rec.schedule_seq_num IS NULL OR
334 p_eam_res_rec.schedule_seq_num = FND_API.G_MISS_NUM
335 THEN
336 x_eam_res_rec.schedule_seq_num := p_old_eam_res_rec.schedule_seq_num;
337 END IF;
338
339 IF p_eam_res_rec.substitute_group_num IS NULL OR
340 p_eam_res_rec.substitute_group_num = FND_API.G_MISS_NUM
341 THEN
342 x_eam_res_rec.substitute_group_num := p_old_eam_res_rec.substitute_group_num;
343 END IF;
344
345 IF p_eam_res_rec.replacement_group_num IS NULL OR
346 p_eam_res_rec.replacement_group_num = FND_API.G_MISS_NUM
347 THEN
348 x_eam_res_rec.replacement_group_num := p_old_eam_res_rec.replacement_group_num;
349 END IF;
350
351 --
352 -- Populate Null or missng flex field columns
353 --
354 IF p_eam_res_rec.attribute_category IS NULL OR
355 p_eam_res_rec.attribute_category = FND_API.G_MISS_CHAR
356 THEN
357 x_eam_res_rec.attribute_category := p_old_eam_res_rec.attribute_category;
358
359 END IF;
360
361 IF p_eam_res_rec.attribute1 = FND_API.G_MISS_CHAR OR
362 p_eam_res_rec.attribute1 IS NULL
363 THEN
364 x_eam_res_rec.attribute1 := p_old_eam_res_rec.attribute1;
365 END IF;
366
367 IF p_eam_res_rec.attribute2 = FND_API.G_MISS_CHAR OR
368 p_eam_res_rec.attribute2 IS NULL
369 THEN
370 x_eam_res_rec.attribute2 := p_old_eam_res_rec.attribute2;
371 END IF;
372
373 IF p_eam_res_rec.attribute3 = FND_API.G_MISS_CHAR OR
374 p_eam_res_rec.attribute3 IS NULL
375 THEN
376 x_eam_res_rec.attribute3 := p_old_eam_res_rec.attribute3;
377 END IF;
378
379 IF p_eam_res_rec.attribute4 = FND_API.G_MISS_CHAR OR
380 p_eam_res_rec.attribute4 IS NULL
381 THEN
382 x_eam_res_rec.attribute4 := p_old_eam_res_rec.attribute4;
383 END IF;
384
385 IF p_eam_res_rec.attribute5 = FND_API.G_MISS_CHAR OR
386 p_eam_res_rec.attribute5 IS NULL
387 THEN
388 x_eam_res_rec.attribute5 := p_old_eam_res_rec.attribute5;
389 END IF;
390
391 IF p_eam_res_rec.attribute6 = FND_API.G_MISS_CHAR OR
392 p_eam_res_rec.attribute6 IS NULL
393 THEN
394 x_eam_res_rec.attribute6 := p_old_eam_res_rec.attribute6;
395 END IF;
396
397 IF p_eam_res_rec.attribute7 = FND_API.G_MISS_CHAR OR
398 p_eam_res_rec.attribute7 IS NULL
399 THEN
400 x_eam_res_rec.attribute7 := p_old_eam_res_rec.attribute7;
401 END IF;
402
403 IF p_eam_res_rec.attribute8 = FND_API.G_MISS_CHAR OR
404 p_eam_res_rec.attribute8 IS NULL
405 THEN
406 x_eam_res_rec.attribute8 := p_old_eam_res_rec.attribute8;
407 END IF;
408
409 IF p_eam_res_rec.attribute9 = FND_API.G_MISS_CHAR OR
410 p_eam_res_rec.attribute9 IS NULL
411 THEN
412 x_eam_res_rec.attribute9 := p_old_eam_res_rec.attribute9;
413 END IF;
414
415 IF p_eam_res_rec.attribute10 = FND_API.G_MISS_CHAR OR
416 p_eam_res_rec.attribute10 IS NULL
417 THEN
418 x_eam_res_rec.attribute10 := p_old_eam_res_rec.attribute10;
419 END IF;
420
421 IF p_eam_res_rec.attribute11 = FND_API.G_MISS_CHAR OR
422 p_eam_res_rec.attribute11 IS NULL
423 THEN
424 x_eam_res_rec.attribute11 := p_old_eam_res_rec.attribute11;
425 END IF;
426
427 IF p_eam_res_rec.attribute12 = FND_API.G_MISS_CHAR OR
428 p_eam_res_rec.attribute12 IS NULL
429 THEN
430 x_eam_res_rec.attribute12 := p_old_eam_res_rec.attribute12;
431 END IF;
432
433 IF p_eam_res_rec.attribute13 = FND_API.G_MISS_CHAR OR
434 p_eam_res_rec.attribute13 IS NULL
435 THEN
436 x_eam_res_rec.attribute13 := p_old_eam_res_rec.attribute13;
437 END IF;
438
439 IF p_eam_res_rec.attribute14 = FND_API.G_MISS_CHAR OR
440 p_eam_res_rec.attribute14 IS NULL
441 THEN
442 x_eam_res_rec.attribute14 := p_old_eam_res_rec.attribute14;
443 END IF;
444
445 IF p_eam_res_rec.attribute15 = FND_API.G_MISS_CHAR OR
446 p_eam_res_rec.attribute15 IS NULL
447 THEN
448 x_eam_res_rec.attribute15 := p_old_eam_res_rec.attribute15;
449 END IF;
450
451 IF p_eam_res_rec.department_id = FND_API.G_MISS_NUM OR
452 p_eam_res_rec.department_id IS NULL
453 THEN
454 x_eam_res_rec.department_id := p_old_eam_res_rec.department_id;
455 END IF;
456
457
458 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Done processing null columns prior update'); END IF;
459
460 END Populate_Null_Columns;
461
462 END EAM_RES_DEFAULT_PVT;