DBA Data[Home] [Help]

PACKAGE BODY: APPS.EAM_WO_UTILITY_PVT

Source


1 PACKAGE BODY EAM_WO_UTILITY_PVT AS
2 /* $Header: EAMVWOUB.pls 120.11 2006/06/08 18:08:33 baroy noship $ */
3 /***************************************************************************
4 --
5 --  Copyright (c) 2002 Oracle Corporation, Redwood Shores, CA, USA
6 --  All rights reserved.
7 --
8 --  FILENAME
9 --
10 --      EAMVWOUB.pls
11 --
12 --  DESCRIPTION
13 --
14 --      Body of package EAM_WO_UTILITY_PVT
15 --
16 --  NOTES
17 --
18 --  HISTORY
19 --
20 --  30-JUN-2002    Kenichi Nagumo     Initial Creation
21 ***************************************************************************/
22 
23 G_PKG_NAME      CONSTANT VARCHAR2(30) := 'EAM_WO_UTILITY_PVT';
24 
25         /*********************************************************************
26         * Procedure     : Query_Row
27         * Parameters IN : wip entity id
28         *                 organization Id
29         * Parameters OUT NOCOPY: EAM WO column record
30         *                 Mesg token Table
31         *                 Return Status
32         * Purpose       : Procedure will query the database record
33         *                 and return with those records.
34         ***********************************************************************/
35         PROCEDURE Query_Row
36         (  p_wip_entity_id       IN  NUMBER
37          , p_organization_id     IN  NUMBER
38          , x_eam_wo_rec          OUT NOCOPY EAM_PROCESS_WO_PUB.eam_wo_rec_type
39          , x_Return_status       OUT NOCOPY VARCHAR2
40         )
41         IS
42                 l_eam_wo_rec            EAM_PROCESS_WO_PUB.eam_wo_rec_type;
43                 l_return_status         VARCHAR2(1):= FND_API.G_RET_STS_SUCCESS;
44                 l_dummy                 varchar2(10);
45         BEGIN
46 
47                 SELECT   we.wip_entity_name
48                        , wdj.wip_entity_id
49                        , wdj.organization_id
50                        , wdj.description
51                        , wdj.asset_number
52                        , wdj.asset_group_id
53                        , wdj.rebuild_item_id
54                        , wdj.rebuild_serial_number
55                        , we.gen_object_id
56                        , wdj.maintenance_object_id
57                        , wdj.maintenance_object_type
58                        , wdj.maintenance_object_source
59                        , wdj.eam_linear_location_id
60                        , wdj.class_code
61                        , wdj.primary_item_id
62                        , wdj.activity_type
63                        , wdj.activity_cause
64                        , wdj.activity_source
65                        , wdj.work_order_type
66                        , wdj.status_type
67                        , wdj.start_quantity
68                        , wdj.date_released
69                        , wdj.owning_department
70                        , wdj.priority
71                        , wdj.requested_start_date
72                        , wdj.due_date
73                        , wdj.shutdown_type
74                        , wdj.firm_planned_flag
75                        , wdj.notification_required
76                        , wdj.tagout_required
77                        , wdj.plan_maintenance
78                        , wdj.project_id
79                        , wdj.task_id
80                        --, wdj.project_costed
81                        , wdj.end_item_unit_number
82                        , wdj.schedule_group_id
83                        , wdj.bom_revision_date
84                        , wdj.routing_revision_date
85                        , wdj.alternate_routing_designator
86                        , wdj.alternate_bom_designator
87                        , wdj.routing_revision
88                        , wdj.bom_revision
89                        , wdj.parent_wip_entity_id
90                        , wdj.manual_rebuild_flag
91                        , wdj.pm_schedule_id
92                        , wdj.material_account
93                        , wdj.material_overhead_account
94                        , wdj.resource_account
95                        , wdj.outside_processing_account
96                        , wdj.material_variance_account
97                        , wdj.resource_variance_account
98                        , wdj.outside_proc_variance_account
99                        , wdj.std_cost_adjustment_account
100                        , wdj.overhead_account
101                        , wdj.overhead_variance_account
102                        , wdj.scheduled_start_date
103                        , wdj.scheduled_completion_date
104                        , wdj.common_bom_sequence_id
105                        , wdj.common_routing_sequence_id
106                        , wdj.po_creation_time
107                        , wdj.attribute_category
108                        , wdj.attribute1
109                        , wdj.attribute2
110                        , wdj.attribute3
111                        , wdj.attribute4
112                        , wdj.attribute5
113                        , wdj.attribute6
114                        , wdj.attribute7
115                        , wdj.attribute8
116                        , wdj.attribute9
117                        , wdj.attribute10
118                        , wdj.attribute11
119                        , wdj.attribute12
120                        , wdj.attribute13
121                        , wdj.attribute14
122                        , wdj.attribute15
123                        , wdj.material_issue_by_mo
124                        , wdj.source_line_id
125                        , wdj.source_code
126                        , wdj.issue_zero_cost_flag
127 		       , ewod.user_defined_status_id
128 		       , ewod.pending_flag
129 		       , ewod.material_shortage_check_date
130 		       , ewod.material_shortage_flag
131 		       , ewod.workflow_type
132 		       , ewod.warranty_claim_status
133 		       , ewod.cycle_id
134 		       , ewod.seq_id
135 		       , ewod.ds_scheduled_flag
136 		       , ewod.assignment_complete
137 		       , ewod.warranty_active
138                        , ewod.pm_suggested_start_date
139                        , ewod.pm_suggested_end_date
140                        , ewod.pm_base_meter_reading
141                        , ewod.pm_base_meter
142     	               , ewod.failure_code_required
143                 INTO
144                          l_eam_wo_rec.wip_entity_name
145                        , l_eam_wo_rec.wip_entity_id
146                        , l_eam_wo_rec.organization_id
147                        , l_eam_wo_rec.description
148                        , l_eam_wo_rec.asset_number
149                        , l_eam_wo_rec.asset_group_id
150                        , l_eam_wo_rec.rebuild_item_id
151                        , l_eam_wo_rec.rebuild_serial_number
152                        , l_eam_wo_rec.gen_object_id
153                        , l_eam_wo_rec.maintenance_object_id
154                        , l_eam_wo_rec.maintenance_object_type
155                        , l_eam_wo_rec.maintenance_object_source
156                        , l_eam_wo_rec.eam_linear_location_id
157                        , l_eam_wo_rec.class_code
158                        , l_eam_wo_rec.asset_activity_id
159                        , l_eam_wo_rec.activity_type
160                        , l_eam_wo_rec.activity_cause
161                        , l_eam_wo_rec.activity_source
162                        , l_eam_wo_rec.work_order_type
163                        , l_eam_wo_rec.status_type
164                        , l_eam_wo_rec.job_quantity
165                        , l_eam_wo_rec.date_released
166                        , l_eam_wo_rec.owning_department
167                        , l_eam_wo_rec.priority
168                        , l_eam_wo_rec.requested_start_date
169                        , l_eam_wo_rec.due_date
170                        , l_eam_wo_rec.shutdown_type
171                        , l_eam_wo_rec.firm_planned_flag
172                        , l_eam_wo_rec.notification_required
173                        , l_eam_wo_rec.tagout_required
174                        , l_eam_wo_rec.plan_maintenance
175                        , l_eam_wo_rec.project_id
176                        , l_eam_wo_rec.task_id
177                        --, l_eam_wo_rec.project_costed
178                        , l_eam_wo_rec.end_item_unit_number
179                        , l_eam_wo_rec.schedule_group_id
180                        , l_eam_wo_rec.bom_revision_date
181                        , l_eam_wo_rec.routing_revision_date
182                        , l_eam_wo_rec.alternate_routing_designator
183                        , l_eam_wo_rec.alternate_bom_designator
184                        , l_eam_wo_rec.routing_revision
185                        , l_eam_wo_rec.bom_revision
186                        , l_eam_wo_rec.parent_wip_entity_id
187                        , l_eam_wo_rec.manual_rebuild_flag
188                        , l_eam_wo_rec.pm_schedule_id
189                        , l_eam_wo_rec.material_account
190                        , l_eam_wo_rec.material_overhead_account
191                        , l_eam_wo_rec.resource_account
192                        , l_eam_wo_rec.outside_processing_account
193                        , l_eam_wo_rec.material_variance_account
194                        , l_eam_wo_rec.resource_variance_account
195                        , l_eam_wo_rec.outside_proc_variance_account
196                        , l_eam_wo_rec.std_cost_adjustment_account
197                        , l_eam_wo_rec.overhead_account
198                        , l_eam_wo_rec.overhead_variance_account
199                        , l_eam_wo_rec.scheduled_start_date
200                        , l_eam_wo_rec.scheduled_completion_date
201                        , l_eam_wo_rec.common_bom_sequence_id
202                        , l_eam_wo_rec.common_routing_sequence_id
203                        , l_eam_wo_rec.po_creation_time
204                        , l_eam_wo_rec.attribute_category
205                        , l_eam_wo_rec.attribute1
206                        , l_eam_wo_rec.attribute2
207                        , l_eam_wo_rec.attribute3
208                        , l_eam_wo_rec.attribute4
209                        , l_eam_wo_rec.attribute5
210                        , l_eam_wo_rec.attribute6
211                        , l_eam_wo_rec.attribute7
212                        , l_eam_wo_rec.attribute8
213                        , l_eam_wo_rec.attribute9
214                        , l_eam_wo_rec.attribute10
215                        , l_eam_wo_rec.attribute11
216                        , l_eam_wo_rec.attribute12
217                        , l_eam_wo_rec.attribute13
218                        , l_eam_wo_rec.attribute14
219                        , l_eam_wo_rec.attribute15
220                        , l_eam_wo_rec.material_issue_by_mo
221                        , l_eam_wo_rec.source_line_id
222                        , l_eam_wo_rec.source_code
223                        , l_eam_wo_rec.issue_zero_cost_flag
224 		       , l_eam_wo_rec.user_defined_status_id
225 		       , l_eam_wo_rec.pending_flag
226 		       , l_eam_wo_rec.material_shortage_check_date
227 		       , l_eam_wo_rec.material_shortage_flag
228 		       , l_eam_wo_rec.workflow_type
229 		       , l_eam_wo_rec.warranty_claim_status
230 		       , l_eam_wo_rec.cycle_id
231 		       , l_eam_wo_rec.seq_id
232 		       , l_eam_wo_rec.ds_scheduled_flag
233 		       , l_eam_wo_rec.assignment_complete
234 		       , l_eam_wo_rec.warranty_active
235                        , l_eam_wo_rec.pm_suggested_start_date
236                        , l_eam_wo_rec.pm_suggested_end_date
237                        , l_eam_wo_rec.pm_base_meter_reading
238                        , l_eam_wo_rec.pm_base_meter
239 	               , l_eam_wo_rec.failure_code_required
240                 FROM  wip_discrete_jobs wdj, wip_entities we,eam_work_order_details ewod
241                 WHERE wdj.wip_entity_id = we.wip_entity_id
242                 AND   wdj.organization_id = we.organization_id
243                 AND   wdj.wip_entity_id = p_wip_entity_id
244                 AND   wdj.organization_id = p_organization_id
245 		AND   wdj.wip_entity_id = ewod.wip_entity_id(+)
246 		AND   wdj.organization_id = ewod.organization_id(+);
247 
248 
249                 x_return_status  := EAM_PROCESS_WO_PVT.G_RECORD_FOUND;
250                 x_eam_wo_rec     := l_eam_wo_rec;
251 
252         EXCEPTION
253                 WHEN NO_DATA_FOUND THEN
254                         x_return_status := EAM_PROCESS_WO_PVT.G_RECORD_NOT_FOUND;
255                         x_eam_wo_rec    := l_eam_wo_rec;
256 
257                 WHEN OTHERS THEN
258                         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
259                         x_eam_wo_rec    := l_eam_wo_rec;
260 
261         END Query_Row;
262 
263 
264         /********************************************************************
265         * Procedure     : Insert_Row
266         * Parameters IN : Work Order column record
267         * Parameters OUT NOCOPY: Message Token Table
268         *                 Return Status
269         * Purpose       : Procedure will perfrom an insert into the
270         *                 win_discrete_jobs and wip_entities table.
271         *********************************************************************/
272 
273         PROCEDURE Insert_Row
274         (  p_eam_wo_rec         IN  EAM_PROCESS_WO_PUB.eam_wo_rec_type
275          , x_mesg_token_Tbl     OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
276          , x_return_Status      OUT NOCOPY VARCHAR2
277          )
278         IS
279 
280 	l_asset_ops_msg_count	  NUMBER;
281 	l_asset_ops_msg_data	  VARCHAR2(2000);
282 	l_asset_ops_return_status VARCHAR2(1);
283 
284         BEGIN
285 
286 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Writing EAM WO rec for ' || p_eam_wo_rec.wip_entity_name); END IF;
287 
288 -- bug no 3444091
289 	if p_eam_wo_rec.scheduled_start_date > p_eam_wo_rec.scheduled_completion_date then
290 		x_return_status := fnd_api.g_ret_sts_error;
291 		fnd_message.set_name('EAM','EAM_WO_WORKORDER_DT_ERR');
292                 return;
293 	end if;
294 
295                 INSERT INTO WIP_DISCRETE_JOBS
296                        ( wip_entity_id
297                        , organization_id
298                        , description
299                        , asset_number
300                        , asset_group_id
301                        , rebuild_item_id
302                        , rebuild_serial_number
303                        , maintenance_object_id
304                        , maintenance_object_type
305                        , maintenance_object_source
306                        , eam_linear_location_id
307                        , class_code
308                        , primary_item_id
309                        , activity_type
310                        , activity_cause
311                        , activity_source
312                        , work_order_type
313                        , status_type
314                        , date_released
315                        , owning_department
316                        , priority
317                        , requested_start_date
318                        , due_date
319                        , shutdown_type
320                        , firm_planned_flag
321                        , notification_required
322                        , tagout_required
323                        , plan_maintenance
324                        , project_id
325                        , task_id
326                        --, project_costed
327                        , end_item_unit_number
328                        , schedule_group_id
329                        , bom_revision_date
330                        , routing_revision_date
331                        , alternate_routing_designator
332                        , alternate_bom_designator
333                        , routing_revision
334                        , bom_revision
335                        , parent_wip_entity_id
336                        , manual_rebuild_flag
337                        , pm_schedule_id
338                        , job_type
339                        , wip_supply_type
340                        , material_account
341                        , material_overhead_account
342                        , resource_account
343                        , outside_processing_account
344                        , material_variance_account
345                        , resource_variance_account
346                        , outside_proc_variance_account
347                        , std_cost_adjustment_account
348                        , overhead_account
349                        , overhead_variance_account
350                        , scheduled_start_date
351                        , scheduled_completion_date
352                        , start_quantity
353                        , quantity_completed
354                        , quantity_scrapped
355                        , net_quantity
356                        , common_bom_sequence_id
357                        , common_routing_sequence_id
358                        , po_creation_time
359                        , attribute_category
360                        , attribute1
361                        , attribute2
362                        , attribute3
363                        , attribute4
364                        , attribute5
365                        , attribute6
366                        , attribute7
367                        , attribute8
368                        , attribute9
369                        , attribute10
370                        , attribute11
371                        , attribute12
372                        , attribute13
373                        , attribute14
374                        , attribute15
375                        , material_issue_by_mo
376                        , issue_zero_cost_flag
377                        , last_update_date
378                        , last_updated_by
379                        , creation_date
380                        , created_by
381                        , last_update_login
382                        , request_id
383                        , program_application_id
384                        , program_id
385                        , program_update_date
386                        , source_line_id
387                        , source_code
388                        )
389                 VALUES
390                        ( p_eam_wo_rec.wip_entity_id
391                        , p_eam_wo_rec.organization_id
392                        , p_eam_wo_rec.description
393                        , p_eam_wo_rec.asset_number
394                        , p_eam_wo_rec.asset_group_id
395                        , p_eam_wo_rec.rebuild_item_id
396                        , p_eam_wo_rec.rebuild_serial_number
397                        , p_eam_wo_rec.maintenance_object_id
398                        , p_eam_wo_rec.maintenance_object_type
399                        , p_eam_wo_rec.maintenance_object_source
400                        , p_eam_wo_rec.eam_linear_location_id
401                        , p_eam_wo_rec.class_code
402                        , p_eam_wo_rec.asset_activity_id
403                        , p_eam_wo_rec.activity_type
404                        , p_eam_wo_rec.activity_cause
405                        , p_eam_wo_rec.activity_source
406                        , p_eam_wo_rec.work_order_type
407                        , 17 -- Always create WO in default status, then update to other statuses accordingly
408                        , decode(p_eam_wo_rec.status_type,
409 						    WIP_CONSTANTS.RELEASED, decode(p_eam_wo_rec.date_released, NULL, SYSDATE, decode(sign(p_eam_wo_rec.date_released - sysdate),1,sysdate, p_eam_wo_rec.date_released)),
410 							WIP_CONSTANTS.HOLD, NULL,
411 							WIP_CONSTANTS.UNRELEASED, NULL,
412 							NULL)
413                        , p_eam_wo_rec.owning_department
414                        , p_eam_wo_rec.priority
415                        , p_eam_wo_rec.requested_start_date
416                        , p_eam_wo_rec.due_date
417                        , p_eam_wo_rec.shutdown_type
418                        , p_eam_wo_rec.firm_planned_flag
419                        , p_eam_wo_rec.notification_required
420                        , p_eam_wo_rec.tagout_required
421                        , p_eam_wo_rec.plan_maintenance
422                        , p_eam_wo_rec.project_id
423                        , p_eam_wo_rec.task_id
424                        --, p_eam_wo_rec.project_costed
425                        , p_eam_wo_rec.end_item_unit_number
426                        , p_eam_wo_rec.schedule_group_id
427                        , round(p_eam_wo_rec.bom_revision_date,'MI')
428                        , round(p_eam_wo_rec.routing_revision_date,'MI')
429                        , p_eam_wo_rec.alternate_routing_designator
430                        , p_eam_wo_rec.alternate_bom_designator
431                        , p_eam_wo_rec.routing_revision
432                        , p_eam_wo_rec.bom_revision
433                        , p_eam_wo_rec.parent_wip_entity_id
434                        , p_eam_wo_rec.manual_rebuild_flag
435                        , p_eam_wo_rec.pm_schedule_id
436                        , 3
437                        , 7
438                        , p_eam_wo_rec.material_account
439                        , p_eam_wo_rec.material_overhead_account
440                        , p_eam_wo_rec.resource_account
441                        , p_eam_wo_rec.outside_processing_account
442                        , p_eam_wo_rec.material_variance_account
443                        , p_eam_wo_rec.resource_variance_account
444                        , p_eam_wo_rec.outside_proc_variance_account
445                        , p_eam_wo_rec.std_cost_adjustment_account
446                        , p_eam_wo_rec.overhead_account
447                        , p_eam_wo_rec.overhead_variance_account
448                        , p_eam_wo_rec.scheduled_start_date
449                        , p_eam_wo_rec.scheduled_completion_date
450                        , p_eam_wo_rec.job_quantity
451                        , 0
452                        , 0
453                        , 1
454                        , p_eam_wo_rec.common_bom_sequence_id
455                        , p_eam_wo_rec.common_routing_sequence_id
456                        , p_eam_wo_rec.po_creation_time
457                        , p_eam_wo_rec.attribute_category
458                        , p_eam_wo_rec.attribute1
459                        , p_eam_wo_rec.attribute2
460                        , p_eam_wo_rec.attribute3
461                        , p_eam_wo_rec.attribute4
462                        , p_eam_wo_rec.attribute5
463                        , p_eam_wo_rec.attribute6
464                        , p_eam_wo_rec.attribute7
465                        , p_eam_wo_rec.attribute8
466                        , p_eam_wo_rec.attribute9
467                        , p_eam_wo_rec.attribute10
468                        , p_eam_wo_rec.attribute11
469                        , p_eam_wo_rec.attribute12
470                        , p_eam_wo_rec.attribute13
471                        , p_eam_wo_rec.attribute14
472                        , p_eam_wo_rec.attribute15
473                        , p_eam_wo_rec.material_issue_by_mo
474                        , p_eam_wo_rec.issue_zero_cost_flag
475                        , SYSDATE
476                        , FND_GLOBAL.user_id
477                        , SYSDATE
478                        , FND_GLOBAL.user_id
479                        , FND_GLOBAL.login_id
480                        , p_eam_wo_rec.request_id
481                        , p_eam_wo_rec.program_application_id
482                        , p_eam_wo_rec.program_id
483                        , SYSDATE
484                        , p_eam_wo_rec.source_line_id
485                        , p_eam_wo_rec.source_code
486                        );
487 
488                 INSERT INTO WIP_ENTITIES
489                        ( wip_entity_id
490                        , organization_id
491                        , last_update_date
492                        , last_updated_by
493                        , creation_date
494                        , created_by
495                        , last_update_login
496                        , request_id
497                        , program_application_id
498                        , program_id
499                        , program_update_date
500                        , wip_entity_name
501                        , entity_type
502                        , description
503                        , primary_item_id
504                        , gen_object_id)
505                 VALUES
506                        ( p_eam_wo_rec.wip_entity_id
507                        , p_eam_wo_rec.organization_id
508                        , SYSDATE
509                        , FND_GLOBAL.user_id
510                        , SYSDATE
511                        , FND_GLOBAL.user_id
512                        , FND_GLOBAL.login_id
513                        , p_eam_wo_rec.request_id
514                        , p_eam_wo_rec.program_application_id
515                        , p_eam_wo_rec.program_id
516                        , SYSDATE
517                        , p_eam_wo_rec.wip_entity_name
518                        , 6
519                        , p_eam_wo_rec.description
520                        , p_eam_wo_rec.asset_activity_id
521                        , MTL_GEN_OBJECT_ID_S.nextval);
522 
523 		INSERT INTO EAM_WORK_ORDER_DETAILS
524 		(
525 			 wip_entity_id
526 		       , organization_id
527 		       , user_defined_status_id
528 		       , pending_flag
529 		       , material_shortage_check_date
530 		       , material_shortage_flag
531 		       , workflow_type
532 		       , warranty_claim_status
533 		       , cycle_id
534 		       , seq_id
535 		       , ds_scheduled_flag
536 		       , assignment_complete
537 		       , warranty_active
538                        , pm_suggested_start_date
539                        , pm_suggested_end_date
540                        , pm_base_meter_reading
541                        , pm_base_meter
542 		       , failure_code_required
543 		       , request_id
544 		       , program_id
545 		       , program_application_id
546 		       , program_update_date
547 		       , last_update_date
548 		       , last_updated_by
549 		       , creation_date
550 		       , created_by
551 		       , last_update_login
552 		)
553 		VALUES
554 		(
555 			p_eam_wo_rec.wip_entity_id
556 		      ,	p_eam_wo_rec.organization_id
557 		      ,	p_eam_wo_rec.user_defined_status_id
558 		      ,	p_eam_wo_rec.pending_flag
559 		      ,	p_eam_wo_rec.material_shortage_check_date
560 		      ,	p_eam_wo_rec.material_shortage_flag
561 		      , p_eam_wo_rec.workflow_type
562 		      ,	p_eam_wo_rec.warranty_claim_status
563      		      ,	p_eam_wo_rec.cycle_id
564 		      ,	p_eam_wo_rec.seq_id
565 	              ,	p_eam_wo_rec.ds_scheduled_flag
566       	              ,	p_eam_wo_rec.assignment_complete
567 		      , p_eam_wo_rec.warranty_active
568                       , p_eam_wo_rec.pm_suggested_start_date
569                       , p_eam_wo_rec.pm_suggested_end_date
570                       , p_eam_wo_rec.pm_base_meter_reading
571                       , p_eam_wo_rec.pm_base_meter
572                       , nvl(p_eam_wo_rec.failure_code_required,'N')
573                       , p_eam_wo_rec.request_id
574 		      ,	p_eam_wo_rec.program_id
575 		      ,	p_eam_wo_rec.program_application_id
576 		      ,	SYSDATE
577 		      ,	SYSDATE
578 		      ,	FND_GLOBAL.user_id
579 		      ,	SYSDATE
580                       , FND_GLOBAL.user_id
581                       , FND_GLOBAL.login_id
582 		);
583 
584 		 EAM_ASSET_LOG_PVT.INSERT_ROW
585 			 (
586 				p_api_version		=> 1.0,
587 				p_event_date		=> sysdate,
588 				p_event_type		=> 'EAM_SYSTEM_EVENTS',
589 				p_event_id		=> 5,
590 				p_organization_id	=> p_eam_wo_rec.organization_id,
591 				p_instance_id		=> p_eam_wo_rec.maintenance_object_id,
592 				p_comments		=> null,
593 				p_reference		=> p_eam_wo_rec.wip_entity_name,
594 				p_ref_id		=> p_eam_wo_rec.wip_entity_id,
595 				p_operable_flag		=> null,
596 				p_reason_code		=> null,
597 				x_return_status		=> l_asset_ops_return_status,
598 				x_msg_count		=> l_asset_ops_msg_count,
599 				x_msg_data		=> l_asset_ops_msg_data
600 			 );
601 
602 
603 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug ('Creating new Work Order') ; END IF;
604                 x_return_status := FND_API.G_RET_STS_SUCCESS;
605 
606 
607         EXCEPTION
608             WHEN OTHERS THEN
609                         EAM_ERROR_MESSAGE_PVT.Add_Error_Token
610                         (  p_message_name       => NULL
611                          , p_message_text       => G_PKG_NAME ||' :Inserting Record ' || SQLERRM
612                          , x_mesg_token_Tbl     => x_mesg_token_tbl
613                         );
614 
615                         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
616 
617         END Insert_Row;
618 
619         /********************************************************************
620         * Procedure     : Update_Row
621         * Parameters IN : Work Order column record
622         * Parameters OUT NOCOPY: Message Token Table
623         *                 Return Status
624         * Purpose       : Procedure will perfrom an Update into the
625         *                 wip_discrete_jobs table.
626         *********************************************************************/
627 
628         PROCEDURE Update_Row
629         (  p_eam_wo_rec         IN  EAM_PROCESS_WO_PUB.eam_wo_rec_type
630          , x_mesg_token_Tbl     OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
631          , x_return_Status      OUT NOCOPY VARCHAR2
632          )
633         IS
634         BEGIN
635 
636 
637 IF EAM_PROCESS_WO_PVT.Get_Debug = 'Y' THEN EAM_ERROR_MESSAGE_PVT.Write_Debug('Updating EAM WO '|| p_eam_wo_rec.wip_entity_name); END IF;
638 
639 -- bug no 3444091
640 	if p_eam_wo_rec.scheduled_start_date > p_eam_wo_rec.scheduled_completion_date then
641 		x_return_status := fnd_api.g_ret_sts_error;
642 		fnd_message.set_name('EAM','EAM_WO_WORKORDER_DT_ERR');
643                 return;
644 	end if;
645 
646 
647                 UPDATE WIP_DISCRETE_JOBS
648                    SET   description                  = p_eam_wo_rec.description
649 		         ,rebuild_serial_number      = p_eam_wo_rec.rebuild_serial_number      -- agaurav - Added the rebuild_serial_number column so that updation of serial number can happen
650 			 ,rebuild_item_id                  = p_eam_wo_rec.rebuild_item_id
651 			 ,asset_number                   =  p_eam_wo_rec.asset_number
652 			 , asset_group_id                = p_eam_wo_rec.asset_group_id
653                        , class_code                   = p_eam_wo_rec.class_code
654                        , primary_item_id              = p_eam_wo_rec.asset_activity_id
655                        , activity_type                = p_eam_wo_rec.activity_type
656                        , activity_cause               = p_eam_wo_rec.activity_cause
657                        , activity_source              = p_eam_wo_rec.activity_source
658 --                       , status_type                  = p_eam_wo_rec.status_type  Status will be updated through status change api
659                        , work_order_type              = p_eam_wo_rec.work_order_type
660                        , start_quantity               = p_eam_wo_rec.job_quantity
661                        , date_released                = p_eam_wo_rec.date_released
662                        , owning_department            = p_eam_wo_rec.owning_department
663                        , priority                     = p_eam_wo_rec.priority
664                        , requested_start_date         = p_eam_wo_rec.requested_start_date
665                        , due_date                     = p_eam_wo_rec.due_date
666                        , shutdown_type                = p_eam_wo_rec.shutdown_type
667                        , firm_planned_flag            = p_eam_wo_rec.firm_planned_flag
668                        , notification_required        = p_eam_wo_rec.notification_required
669                        , tagout_required              = p_eam_wo_rec.tagout_required
670                        , plan_maintenance             = p_eam_wo_rec.plan_maintenance
671                        , project_id                   = p_eam_wo_rec.project_id
672                        , task_id                      = p_eam_wo_rec.task_id
673 		       , maintenance_object_id        = p_eam_wo_rec.maintenance_object_id   --added these 3 fields so that maintenance object id is updateable
674        		       , maintenance_object_type      = p_eam_wo_rec.maintenance_object_type
675        		       , maintenance_object_source    = p_eam_wo_rec.maintenance_object_source
676 		       , parent_wip_entity_id      = p_eam_wo_rec.parent_wip_entity_id           /* Added the column so that parent_wip_entity_id is updateable */
677                        --, project_costed               = p_eam_wo_rec.project_costed
678                        , end_item_unit_number         = p_eam_wo_rec.end_item_unit_number
679                        , schedule_group_id            = p_eam_wo_rec.schedule_group_id
680                        , bom_revision_date            = p_eam_wo_rec.bom_revision_date
681                        , routing_revision_date        = p_eam_wo_rec.routing_revision_date
682                        , alternate_routing_designator = p_eam_wo_rec.alternate_routing_designator
683                        , alternate_bom_designator     = p_eam_wo_rec.alternate_bom_designator
684                        , routing_revision             = p_eam_wo_rec.routing_revision
685                        , bom_revision                 = p_eam_wo_rec.bom_revision
686                        , manual_rebuild_flag          = p_eam_wo_rec.manual_rebuild_flag
687                        , material_account             = p_eam_wo_rec.material_account
688                        , material_overhead_account    = p_eam_wo_rec.material_overhead_account
689                        , resource_account             = p_eam_wo_rec.resource_account
690                        , outside_processing_account   = p_eam_wo_rec.outside_processing_account
691                        , material_variance_account    = p_eam_wo_rec.material_variance_account
692                        , resource_variance_account    = p_eam_wo_rec.resource_variance_account
693                        , outside_proc_variance_account= p_eam_wo_rec.outside_proc_variance_account
694                        , std_cost_adjustment_account  = p_eam_wo_rec.std_cost_adjustment_account
695                        , overhead_account             = p_eam_wo_rec.overhead_account
696                        , overhead_variance_account    = p_eam_wo_rec.overhead_variance_account
697                        , scheduled_start_date         = p_eam_wo_rec.scheduled_start_date
698                        , scheduled_completion_date    = p_eam_wo_rec.scheduled_completion_date
699                        , common_bom_sequence_id       = p_eam_wo_rec.common_bom_sequence_id
700                        , common_routing_sequence_id   = p_eam_wo_rec.common_routing_sequence_id
701                        , attribute_category           = p_eam_wo_rec.attribute_category
702                        , attribute1                   = p_eam_wo_rec.attribute1
703                        , attribute2                   = p_eam_wo_rec.attribute2
704                        , attribute3                   = p_eam_wo_rec.attribute3
705                        , attribute4                   = p_eam_wo_rec.attribute4
706                        , attribute5                   = p_eam_wo_rec.attribute5
707                        , attribute6                   = p_eam_wo_rec.attribute6
708                        , attribute7                   = p_eam_wo_rec.attribute7
709                        , attribute8                   = p_eam_wo_rec.attribute8
710                        , attribute9                   = p_eam_wo_rec.attribute9
711                        , attribute10                  = p_eam_wo_rec.attribute10
712                        , attribute11                  = p_eam_wo_rec.attribute11
713                        , attribute12                  = p_eam_wo_rec.attribute12
714                        , attribute13                  = p_eam_wo_rec.attribute13
715                        , attribute14                  = p_eam_wo_rec.attribute14
716                        , attribute15                  = p_eam_wo_rec.attribute15
717                        , material_issue_by_mo         = p_eam_wo_rec.material_issue_by_mo
718                        , issue_zero_cost_flag         = p_eam_wo_rec.issue_zero_cost_flag
719                        , source_line_id               = p_eam_wo_rec.source_line_id
720                        , source_code                  = p_eam_wo_rec.source_code
721                        , last_update_date             = SYSDATE
722                        , last_updated_by              = FND_GLOBAL.user_id
723                        , last_update_login            = FND_GLOBAL.login_id
724                        , request_id                   = p_eam_wo_rec.request_id
725                        , program_application_id       = p_eam_wo_rec.program_application_id
726                        , program_id                   = p_eam_wo_rec.program_id
727                        , program_update_date          = SYSDATE
728                 WHERE  wip_entity_id      = p_eam_wo_rec.wip_entity_id
729                   AND  organization_id    = p_eam_wo_rec.organization_id;
730 
731 
732                 UPDATE WIP_ENTITIES
733                    SET wip_entity_name                =   p_eam_wo_rec.wip_entity_name
734                      , description                    = p_eam_wo_rec.description
735                      , primary_item_id                = p_eam_wo_rec.asset_activity_id
736                      , last_update_date               = SYSDATE
737                      , last_updated_by                = FND_GLOBAL.user_id
738                      , last_update_login              = FND_GLOBAL.login_id
739                      , request_id                     = p_eam_wo_rec.request_id
740                      , program_application_id         = p_eam_wo_rec.program_application_id
741                      , program_id                     = p_eam_wo_rec.program_id
742                      , program_update_date            = SYSDATE
743                 WHERE  wip_entity_id      = p_eam_wo_rec.wip_entity_id
744                   AND  organization_id    = p_eam_wo_rec.organization_id;
745 
746 
747 		  UPDATE EAM_WORK_ORDER_DETAILS
748 		     SET wip_entity_id			=  p_eam_wo_rec.wip_entity_id
749 		       , organization_id		=  p_eam_wo_rec.organization_id
750 		       , user_defined_status_id		=  p_eam_wo_rec.user_defined_status_id
751 		       , pending_flag			=  p_eam_wo_rec.pending_flag
752 		       , material_shortage_check_date	=  p_eam_wo_rec.material_shortage_check_date
753 	               , material_shortage_flag		=  p_eam_wo_rec.material_shortage_flag
754 		       , workflow_type			=  p_eam_wo_rec.workflow_type
755 	               , warranty_claim_status		=  p_eam_wo_rec.warranty_claim_status
756 	               , cycle_id			=  p_eam_wo_rec.cycle_id
757 		       , seq_id				=  p_eam_wo_rec.seq_id
758 		       , ds_scheduled_flag		=  p_eam_wo_rec.ds_scheduled_flag
759 		       , assignment_complete		=  p_eam_wo_rec.assignment_complete
760 		       , warranty_active		=  p_eam_wo_rec.warranty_active
761                        , pm_suggested_start_date        =  p_eam_wo_rec.pm_suggested_start_date
762                        , pm_suggested_end_date          =  p_eam_wo_rec.pm_suggested_end_date
763                        , pm_base_meter_reading          =  p_eam_wo_rec.pm_base_meter_reading
764                        , pm_base_meter                  =  p_eam_wo_rec.pm_base_meter
765 		       , failure_code_required		=  nvl(p_eam_wo_rec.failure_code_required,'N')
766 		       , request_id			=  p_eam_wo_rec.request_id
767 		       , program_id			=  p_eam_wo_rec.program_id
768 		       , program_application_id		=  p_eam_wo_rec.program_application_id
769 		       , program_update_date		=  SYSDATE
770 		       , last_update_date		=  SYSDATE
771 		       , last_updated_by		=  FND_GLOBAL.user_id
772 		       , last_update_login		=  FND_GLOBAL.login_id
773 		WHERE  wip_entity_id      = p_eam_wo_rec.wip_entity_id
774                   AND  organization_id    = p_eam_wo_rec.organization_id;
775 
776                 x_return_status := FND_API.G_RET_STS_SUCCESS;
777 
778         END Update_Row;
779 
780         /*********************************************************************
781         * Procedure     : Perform_Writes
782         * Parameters IN : Work Order Column Record
783         * Parameters OUT NOCOPY: Messgae Token Table
784         *                 Return Status
785         * Purpose       : This is the only procedure that the user will have
786         *                 access to when he/she needs to perform any kind of
787         *                 writes to the wip_discrete_jobs and wip_entities.
788         *********************************************************************/
789 
790         PROCEDURE Perform_Writes
791         (  p_eam_wo_rec         IN  EAM_PROCESS_WO_PUB.eam_wo_rec_type
792          , x_mesg_token_tbl     OUT NOCOPY EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type
793          , x_return_status      OUT NOCOPY VARCHAR2
794         )
795         IS
796                 l_Mesg_Token_tbl        EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
797                 l_return_status         VARCHAR2(1):= FND_API.G_RET_STS_SUCCESS;
798         BEGIN
799 
800                 IF p_eam_wo_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_CREATE
801                 THEN
802                         Insert_Row
803                         (  p_eam_wo_rec         => p_eam_wo_rec
804                          , x_mesg_token_Tbl     => l_mesg_token_tbl
805                          , x_return_Status      => l_return_status
806                          );
807                 ELSIF p_eam_wo_rec.transaction_type = EAM_PROCESS_WO_PVT.G_OPR_UPDATE
808                 THEN
809                         Update_Row
810                         (  p_eam_wo_rec         => p_eam_wo_rec
811                          , x_mesg_token_Tbl     => l_mesg_token_tbl
812                          , x_return_Status      => l_return_status
813                          );
814 
815                 END IF;
816 
817                 x_return_status := l_return_status;
818                 x_mesg_token_tbl := l_mesg_token_tbl;
819 
820         END Perform_Writes;
821 
822 END EAM_WO_UTILITY_PVT;