DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_RES_DEFAULT_PVT

Source


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;