1 PACKAGE BODY WIP_Validate_Shopfloormove AS
2 /* $Header: WIPLSFMB.pls 115.10 2002/11/28 11:48:15 rmahidha ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'WIP_Validate_Shopfloormove';
7
8 -- Procedure Entity
9
10 PROCEDURE Entity
11 ( x_return_status OUT NOCOPY VARCHAR2
12 , p_validation_level IN NUMBER DEFAULT NULL
13 , p_ShopFloorMove_rec IN WIP_Transaction_PUB.Shopfloormove_Rec_Type
14 , p_old_ShopFloorMove_rec IN WIP_Transaction_PUB.Shopfloormove_Rec_Type
15 )
16 IS
17 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18 BEGIN
19
20 IF nvl(p_validation_level,WIP_Transaction_PVT.COMPLETE) = WIP_Transaction_PVT.NONE then
21 x_return_status := FND_API.G_RET_STS_SUCCESS;
22 return;
23 END IF;
24
25 -- Check required attributes.
26
27 IF p_ShopFloorMove_rec.acct_period_id IS NULL
28 THEN
29
30 l_return_status := FND_API.G_RET_STS_ERROR;
31
32 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
33 THEN
34
35 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
36 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','acct_period_id');
37 FND_MSG_PUB.Add;
38
39 END IF;
40
41 END IF;
42
43 IF p_ShopFloorMove_rec.created_by_name IS NULL
44 THEN
45
46 l_return_status := FND_API.G_RET_STS_ERROR;
47
48 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
49 THEN
50
51 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
52 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','created_by_name');
53 FND_MSG_PUB.Add;
54
55 END IF;
56
57 END IF;
58
59 IF p_ShopFloorMove_rec.entity_type IS NULL
60 THEN
61
62 l_return_status := FND_API.G_RET_STS_ERROR;
63
64 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
65 THEN
66
67 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
68 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','entity_type');
69 FND_MSG_PUB.Add;
70
71 END IF;
72
73 END IF;
74
75 IF p_ShopFloorMove_rec.fm_department_code IS NULL
76 THEN
77
78 l_return_status := FND_API.G_RET_STS_ERROR;
79
80 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
81 THEN
82
83 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
84 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','fm_department_code');
85 FND_MSG_PUB.Add;
86
87 END IF;
88
89 END IF;
90
91 IF p_ShopFloorMove_rec.fm_department_id IS NULL
92 THEN
93
94 l_return_status := FND_API.G_RET_STS_ERROR;
95
96 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
97 THEN
98
99 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
100 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','fm_department_id');
101 FND_MSG_PUB.Add;
102
103 END IF;
104
105 END IF;
106
107 IF p_ShopFloorMove_rec.fm_intraop_step_type IS NULL
108 THEN
109
110 l_return_status := FND_API.G_RET_STS_ERROR;
111
112 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
113 THEN
114
115 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
116 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','fm_intraop_step_type');
117 FND_MSG_PUB.Add;
118
119 END IF;
120
121 END IF;
122
123 IF p_ShopFloorMove_rec.fm_operation_seq_num IS NULL
124 THEN
125
126 l_return_status := FND_API.G_RET_STS_ERROR;
127
128 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
129 THEN
130
131 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
132 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','fm_operation_seq_num');
133 FND_MSG_PUB.Add;
134
135 END IF;
136
137 END IF;
138
139 IF p_ShopFloorMove_rec.organization_code IS NULL
140 THEN
141
142 l_return_status := FND_API.G_RET_STS_ERROR;
143
144 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
145 THEN
146
147 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
148 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','organization_code');
149 FND_MSG_PUB.Add;
150
151 END IF;
152
153 END IF;
154
155 IF p_ShopFloorMove_rec.last_updated_by_name IS NULL
156 THEN
157
158 l_return_status := FND_API.G_RET_STS_ERROR;
159
160 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
161 THEN
162
163 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
164 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','last_updated_by_name');
165 FND_MSG_PUB.Add;
166
167 END IF;
168
169 END IF;
170 IF p_ShopFloorMove_rec.organization_id IS NULL
171 THEN
172
173 l_return_status := FND_API.G_RET_STS_ERROR;
174
175 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
176 THEN
177
178 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
179 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','organization_id');
180 FND_MSG_PUB.Add;
181
182 END IF;
183
184 END IF;
185
186 IF p_ShopFloorMove_rec.primary_item_id IS NULL
187 THEN
188
189 l_return_status := FND_API.G_RET_STS_ERROR;
190
191 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
192 THEN
193
194 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
195 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','primary_item_id');
196 FND_MSG_PUB.Add;
197
198 END IF;
199
200 END IF;
201
202 IF p_ShopFloorMove_rec.primary_quantity IS NULL
203 THEN
204
205 l_return_status := FND_API.G_RET_STS_ERROR;
206
207 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
208 THEN
209
210 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
211 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','primary_quantity');
212 FND_MSG_PUB.Add;
213
214 END IF;
215
216 END IF;
217
218 IF p_ShopFloorMove_rec.primary_uom IS NULL
219 THEN
220
221 l_return_status := FND_API.G_RET_STS_ERROR;
222
223 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
224 THEN
225
226 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
227 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','primary_uom');
228 FND_MSG_PUB.Add;
229
230 END IF;
231
232 END IF;
233
234 IF p_ShopFloorMove_rec.process_phase IS NULL
235 THEN
236
237 l_return_status := FND_API.G_RET_STS_ERROR;
238
239 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
240 THEN
241
242 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
243 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','process_phase');
244 FND_MSG_PUB.Add;
245
246 END IF;
247
248 END IF;
249
250 IF p_ShopFloorMove_rec.process_status IS NULL
251 THEN
252
253 l_return_status := FND_API.G_RET_STS_ERROR;
254
255 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
256 THEN
257
258 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
259 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','process_status');
260 FND_MSG_PUB.Add;
261
262 END IF;
263
264 END IF;
265
266 IF p_ShopFloorMove_rec.to_department_code IS NULL
267 THEN
268
269 l_return_status := FND_API.G_RET_STS_ERROR;
270
271 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
272 THEN
273
274 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
275 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','to_department_code');
276 FND_MSG_PUB.Add;
277
278 END IF;
279
280 END IF;
281
282 IF p_ShopFloorMove_rec.to_department_id IS NULL
283 THEN
284
285 l_return_status := FND_API.G_RET_STS_ERROR;
286
287 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
288 THEN
289
290 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
291 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','to_department_id');
292 FND_MSG_PUB.Add;
293
294 END IF;
295
296 END IF;
297
298 IF p_ShopFloorMove_rec.to_intraop_step_type IS NULL
299 THEN
300
301 l_return_status := FND_API.G_RET_STS_ERROR;
302
303 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
304 THEN
305
306 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
307 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','to_intraop_step_type');
308 FND_MSG_PUB.Add;
309
310 END IF;
311
312 END IF;
313
314 IF p_ShopFloorMove_rec.to_operation_seq_num IS NULL
315 THEN
316
317 l_return_status := FND_API.G_RET_STS_ERROR;
318
319 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
320 THEN
321
322 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
323 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','to_operation_seq_num');
324 FND_MSG_PUB.Add;
325
326 END IF;
327
328 END IF;
329
330 IF p_ShopFloorMove_rec.transaction_date IS NULL
331 THEN
332
333 l_return_status := FND_API.G_RET_STS_ERROR;
334
335 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
336 THEN
337
338 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
339 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','transaction_date');
340 FND_MSG_PUB.Add;
341
342 END IF;
343
344 END IF;
345
346 IF p_ShopFloorMove_rec.transaction_quantity IS NULL
347 THEN
348
349 l_return_status := FND_API.G_RET_STS_ERROR;
350
351 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
352 THEN
353
354 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
355 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','transaction_quantity');
356 FND_MSG_PUB.Add;
357
358 END IF;
359
360 END IF;
361
362 IF p_ShopFloorMove_rec.transaction_type IS NULL
363 THEN
364
365 l_return_status := FND_API.G_RET_STS_ERROR;
366
367 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
368 THEN
369
370 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
371 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','transaction_type');
372 FND_MSG_PUB.Add;
373
374 END IF;
375
376 END IF;
377
378 IF p_ShopFloorMove_rec.transaction_uom IS NULL
379 THEN
380
381 l_return_status := FND_API.G_RET_STS_ERROR;
382
383 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
384 THEN
385
386 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
387 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','transaction_uom');
388 FND_MSG_PUB.Add;
389
390 END IF;
391
392 END IF;
393
394 IF p_ShopFloorMove_rec.wip_entity_id IS NULL
395 THEN
396
397 l_return_status := FND_API.G_RET_STS_ERROR;
398
399 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
400 THEN
401
402 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
403 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','wip_entity_id');
404 FND_MSG_PUB.Add;
405
406 END IF;
407
408 END IF;
409
410 IF p_ShopFloorMove_rec.wip_entity_name IS NULL
411 THEN
412
413 l_return_status := FND_API.G_RET_STS_ERROR;
414
415 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
416 THEN
417
418 FND_MESSAGE.SET_NAME('WIP','WIP_ATTRIBUTE_REQUIRED');
419 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','wip_entity_name');
420 FND_MSG_PUB.Add;
421
422 END IF;
423
424 END IF;
425
426 -- Return Error if a required attribute is missing.
427
428
429 IF nvl(p_validation_level,WIP_Transaction_PVT.COMPLETE) <= WIP_Transaction_PVT.REQUIRED THEN
430 x_return_status := l_return_status;
431 return;
432 END IF;
433
434 --
435 -- Check conditionally required attributes here.
436 --
437 IF p_ShopFloorMove_rec.repetitive_schedule_id IS NOT NULL
438 AND p_ShopFloorMove_rec.line_id IS NULL
439 THEN
440 l_return_status := FND_API.G_RET_STS_ERROR;
441
442 WIP_Globals.Add_Error_Message(
443 p_message_name => 'WIP_ATTRIBUTE_REQUIRED',
444 p_token1_name => 'ATTRIBUTE',
445 p_token1_value => 'line_id');
446 END IF;
447
448
449 IF p_ShopFloorMove_rec.repetitive_schedule_id IS NOT NULL
450 AND p_ShopFloorMove_rec.line_code IS NULL
451 THEN
452 l_return_status := FND_API.G_RET_STS_ERROR;
453
454 WIP_Globals.Add_Error_Message(
455 p_message_name => 'WIP_ATTRIBUTE_REQUIRED',
456 p_token1_name => 'ATTRIBUTE',
457 p_token1_value => 'line_code');
458 END IF;
459
460 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
461
462 RAISE FND_API.G_EXC_ERROR;
463
464 END IF;
465
466
467
468 --
469 -- Validate attribute dependencies here.
470 --
471
472
473 -- Done validating entity
474
475 x_return_status := l_return_status;
476
477 EXCEPTION
478
479 WHEN FND_API.G_EXC_ERROR THEN
480
481 x_return_status := FND_API.G_RET_STS_ERROR;
482
483 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
484
485 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
486
487 WHEN OTHERS THEN
488
489 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
490
491 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
492 THEN
493 FND_MSG_PUB.Add_Exc_Msg
494 ( G_PKG_NAME
495 , 'Entity'
496 );
497 END IF;
498
499 END Entity;
500
501 -- Procedure Attributes
502
503 PROCEDURE Attributes
504 ( x_return_status OUT NOCOPY VARCHAR2
505 , p_validation_level IN NUMBER DEFAULT NULL
506 , p_ShopFloorMove_rec IN WIP_Transaction_PUB.Shopfloormove_Rec_Type
507 , p_old_ShopFloorMove_rec IN WIP_Transaction_PUB.Shopfloormove_Rec_Type
508 )
509 IS
510 BEGIN
511
512 x_return_status := FND_API.G_RET_STS_SUCCESS;
513
514 IF nvl(p_validation_level,WIP_Transaction_PVT.COMPLETE) = WIP_Transaction_PVT.NONE then
515 return;
516 END IF;
517
518 -- Validate ShopFloorMove attributes
519
520 IF p_ShopFloorMove_rec.acct_period_id IS NOT NULL AND
521 ( p_ShopFloorMove_rec.acct_period_id <>
522 p_old_ShopFloorMove_rec.acct_period_id OR
523 p_old_ShopFloorMove_rec.acct_period_id IS NULL )
524 THEN
525 IF NOT WIP_Validate.Acct_Period(p_ShopFloorMove_rec.acct_period_id,
526 p_ShopFloorMove_rec.organization_id) THEN
527 x_return_status := FND_API.G_RET_STS_ERROR;
528 END IF;
529 END IF;
530
531 IF p_ShopFloorMove_rec.created_by_name IS NOT NULL AND
532 ( p_ShopFloorMove_rec.created_by_name <>
533 p_old_ShopFloorMove_rec.created_by_name OR
534 p_old_ShopFloorMove_rec.created_by_name IS NULL )
535 THEN
536 IF NOT WIP_Validate.Created_By_Name(p_ShopFloorMove_rec.created_by_name) THEN
537 x_return_status := FND_API.G_RET_STS_ERROR;
538 END IF;
539 END IF;
540
541 IF p_ShopFloorMove_rec.entity_type IS NOT NULL AND
542 ( p_ShopFloorMove_rec.entity_type <>
543 p_old_ShopFloorMove_rec.entity_type OR
544 p_old_ShopFloorMove_rec.entity_type IS NULL )
545 THEN
546 IF NOT WIP_Validate.Entity_Type(p_ShopFloorMove_rec.entity_type) THEN
547 x_return_status := FND_API.G_RET_STS_ERROR;
548 END IF;
549 END IF;
550
551 IF p_ShopFloorMove_rec.fm_department_code IS NOT NULL AND
552 ( p_ShopFloorMove_rec.fm_department_code <>
553 p_old_ShopFloorMove_rec.fm_department_code OR
554 p_old_ShopFloorMove_rec.fm_department_code IS NULL )
555 THEN
556 IF NOT WIP_Validate.Department_Code(p_ShopFloorMove_rec.fm_department_code,
557 p_ShopFloorMove_rec.organization_id,
558 'fm_department_code') THEN
559 x_return_status := FND_API.G_RET_STS_ERROR;
560 END IF;
561 END IF;
562
563 IF p_ShopFloorMove_rec.fm_department_id IS NOT NULL AND
564 ( p_ShopFloorMove_rec.fm_department_id <>
565 p_old_ShopFloorMove_rec.fm_department_id OR
566 p_old_ShopFloorMove_rec.fm_department_id IS NULL )
567 THEN
568 IF NOT WIP_Validate.Department_Id(p_ShopFloorMove_rec.fm_department_id,
569 'fm_department_id') THEN
570 x_return_status := FND_API.G_RET_STS_ERROR;
571 END IF;
572 END IF;
573
574 IF p_ShopFloorMove_rec.fm_intraop_step_type IS NOT NULL AND
575 ( p_ShopFloorMove_rec.fm_intraop_step_type <>
576 p_old_ShopFloorMove_rec.fm_intraop_step_type OR
577 p_old_ShopFloorMove_rec.fm_intraop_step_type IS NULL )
578 THEN
579 IF NOT WIP_Validate.Intraop_Step_Type(p_ShopFloorMove_rec.fm_intraop_step_type,
580 'fm_intraop_step_type') THEN
581 x_return_status := FND_API.G_RET_STS_ERROR;
582 END IF;
583 END IF;
584
585 IF p_ShopFloorMove_rec.fm_operation_code IS NOT NULL AND
586 ( p_ShopFloorMove_rec.fm_operation_code <>
587 p_old_ShopFloorMove_rec.fm_operation_code OR
588 p_old_ShopFloorMove_rec.fm_operation_code IS NULL )
589 THEN
590 IF NOT WIP_Validate.Operation_Code(p_ShopFloorMove_rec.fm_operation_code,
591 'fm_operation_code') THEN
592 x_return_status := FND_API.G_RET_STS_ERROR;
593 END IF;
594 END IF;
595
596 IF p_ShopFloorMove_rec.fm_operation_seq_num IS NOT NULL AND
597 ( p_ShopFloorMove_rec.fm_operation_seq_num <>
598 p_old_ShopFloorMove_rec.fm_operation_seq_num OR
599 p_old_ShopFloorMove_rec.fm_operation_seq_num IS NULL )
600 THEN
601 IF NOT WIP_Validate.Operation_Seq_Num(p_ShopFloorMove_rec.fm_operation_seq_num,
602 'fm_operation_seq_num') THEN
603 x_return_status := FND_API.G_RET_STS_ERROR;
604 END IF;
605 END IF;
606
607 IF p_ShopFloorMove_rec.kanban_card_id IS NOT NULL AND
608 ( p_ShopFloorMove_rec.kanban_card_id <>
609 p_old_ShopFloorMove_rec.kanban_card_id OR
610 p_old_ShopFloorMove_rec.kanban_card_id IS NULL )
611 THEN
612 IF NOT WIP_Validate.Kanban_Card(p_ShopFloorMove_rec.kanban_card_id,
613 p_ShopFloorMove_rec.organization_id) THEN
614 x_return_status := FND_API.G_RET_STS_ERROR;
615 END IF;
616 END IF;
617
618 IF p_ShopFloorMove_rec.last_updated_by_name IS NOT NULL AND
619 ( p_ShopFloorMove_rec.last_updated_by_name <>
620 p_old_ShopFloorMove_rec.last_updated_by_name OR
621 p_old_ShopFloorMove_rec.last_updated_by_name IS NULL )
622 THEN
623 IF NOT WIP_Validate.Last_Updated_By_Name(p_ShopFloorMove_rec.last_updated_by_name) THEN
624 x_return_status := FND_API.G_RET_STS_ERROR;
625 END IF;
626 END IF;
627
628 IF p_ShopFloorMove_rec.line_code IS NOT NULL AND
629 ( p_ShopFloorMove_rec.line_code <>
630 p_old_ShopFloorMove_rec.line_code OR
631 p_old_ShopFloorMove_rec.line_code IS NULL )
632 THEN
633 IF NOT WIP_Validate.Line(p_ShopFloorMove_rec.line_code) THEN
634 x_return_status := FND_API.G_RET_STS_ERROR;
635 END IF;
636 END IF;
637
638 IF p_ShopFloorMove_rec.line_id IS NOT NULL AND
639 ( p_ShopFloorMove_rec.line_id <>
640 p_old_ShopFloorMove_rec.line_id OR
641 p_old_ShopFloorMove_rec.line_id IS NULL )
642 THEN
643 IF NOT WIP_Validate.Line(p_ShopFloorMove_rec.line_id) THEN
644 x_return_status := FND_API.G_RET_STS_ERROR;
645 END IF;
646 END IF;
647
648 IF p_ShopFloorMove_rec.organization_code IS NOT NULL AND
649 ( p_ShopFloorMove_rec.organization_code <>
650 p_old_ShopFloorMove_rec.organization_code OR
651 p_old_ShopFloorMove_rec.organization_code IS NULL )
652 THEN
653 IF NOT WIP_Validate.Organization(p_ShopFloorMove_rec.organization_id) THEN
654 x_return_status := FND_API.G_RET_STS_ERROR;
655 END IF;
656 END IF;
657
658 IF p_ShopFloorMove_rec.organization_id IS NOT NULL AND
659 ( p_ShopFloorMove_rec.organization_id <>
660 p_old_ShopFloorMove_rec.organization_id OR
661 p_old_ShopFloorMove_rec.organization_id IS NULL )
662 THEN
663 IF NOT WIP_Validate.Organization(p_ShopFloorMove_rec.organization_id) THEN
664 x_return_status := FND_API.G_RET_STS_ERROR;
665 END IF;
666 END IF;
667
668 IF p_ShopFloorMove_rec.primary_item_id IS NOT NULL AND
669 ( p_ShopFloorMove_rec.primary_item_id <>
670 p_old_ShopFloorMove_rec.primary_item_id OR
671 p_old_ShopFloorMove_rec.primary_item_id IS NULL )
672 THEN
673 IF NOT WIP_Validate.Primary_Item(p_ShopFloorMove_rec.primary_item_id,
674 p_ShopFloorMove_rec.organization_id) THEN
675 x_return_status := FND_API.G_RET_STS_ERROR;
676 END IF;
677 END IF;
678
679 IF p_ShopFloorMove_rec.primary_uom IS NOT NULL AND
680 ( p_ShopFloorMove_rec.primary_uom <>
681 p_old_ShopFloorMove_rec.primary_uom OR
682 p_old_ShopFloorMove_rec.primary_uom IS NULL )
683 THEN
684 IF NOT WIP_Validate.Primary_Uom(p_ShopFloorMove_rec.primary_uom) THEN
685 x_return_status := FND_API.G_RET_STS_ERROR;
686 END IF;
687 END IF;
688
689 IF p_ShopFloorMove_rec.process_phase IS NOT NULL AND
690 ( p_ShopFloorMove_rec.process_phase <>
691 p_old_ShopFloorMove_rec.process_phase OR
692 p_old_ShopFloorMove_rec.process_phase IS NULL )
693 THEN
694 IF NOT WIP_Validate.Process_Phase(p_ShopFloorMove_rec.process_phase,
695 'WIP_MOVE_PROCESS_PHASE') THEN
696 x_return_status := FND_API.G_RET_STS_ERROR;
697 END IF;
698 END IF;
699
700 IF p_ShopFloorMove_rec.process_status IS NOT NULL AND
701 ( p_ShopFloorMove_rec.process_status <>
702 p_old_ShopFloorMove_rec.process_status OR
703 p_old_ShopFloorMove_rec.process_status IS NULL )
704 THEN
705 IF NOT WIP_Validate.Process_Status(p_ShopFloorMove_rec.process_status) THEN
706 x_return_status := FND_API.G_RET_STS_ERROR;
707 END IF;
708 END IF;
709
710 IF p_ShopFloorMove_rec.reason_id IS NOT NULL AND
711 ( p_ShopFloorMove_rec.reason_id <>
712 p_old_ShopFloorMove_rec.reason_id OR
713 p_old_ShopFloorMove_rec.reason_id IS NULL )
714 THEN
715 IF NOT WIP_Validate.Reason(p_ShopFloorMove_rec.reason_id) THEN
716 x_return_status := FND_API.G_RET_STS_ERROR;
717 END IF;
718 END IF;
719
720 IF p_ShopFloorMove_rec.reason_name IS NOT NULL AND
721 ( p_ShopFloorMove_rec.reason_name <>
722 p_old_ShopFloorMove_rec.reason_name OR
723 p_old_ShopFloorMove_rec.reason_name IS NULL )
724 THEN
725 IF NOT WIP_Validate.Reason_Name(p_ShopFloorMove_rec.reason_name) THEN
726 x_return_status := FND_API.G_RET_STS_ERROR;
727 END IF;
728 END IF;
729
730 IF p_ShopFloorMove_rec.repetitive_schedule_id IS NOT NULL AND
731 ( p_ShopFloorMove_rec.repetitive_schedule_id <>
732 p_old_ShopFloorMove_rec.repetitive_schedule_id OR
733 p_old_ShopFloorMove_rec.repetitive_schedule_id IS NULL )
734 THEN
735 IF NOT WIP_Validate.Repetitive_Schedule(p_ShopFloorMove_rec.repetitive_schedule_id) THEN
736 x_return_status := FND_API.G_RET_STS_ERROR;
737 END IF;
738 END IF;
739
740 IF p_ShopFloorMove_rec.scrap_account_id IS NOT NULL AND
741 ( p_ShopFloorMove_rec.scrap_account_id <>
742 p_old_ShopFloorMove_rec.scrap_account_id OR
743 p_old_ShopFloorMove_rec.scrap_account_id IS NULL )
744 THEN
745 IF NOT WIP_Validate.Scrap_Account(p_ShopFloorMove_rec.scrap_account_id) THEN
746 x_return_status := FND_API.G_RET_STS_ERROR;
747 END IF;
748 END IF;
749
750 IF p_ShopFloorMove_rec.to_department_code IS NOT NULL AND
751 ( p_ShopFloorMove_rec.to_department_code <>
752 p_old_ShopFloorMove_rec.to_department_code OR
753 p_old_ShopFloorMove_rec.to_department_code IS NULL )
754 THEN
755 IF NOT WIP_Validate.Department_Code(p_ShopFloorMove_rec.to_department_code,
756 p_ShopFloorMove_rec.organization_id,
757 'to_department_code') THEN
758 x_return_status := FND_API.G_RET_STS_ERROR;
759 END IF;
760 END IF;
761
762 IF p_ShopFloorMove_rec.to_department_id IS NOT NULL AND
763 ( p_ShopFloorMove_rec.to_department_id <>
764 p_old_ShopFloorMove_rec.to_department_id OR
765 p_old_ShopFloorMove_rec.to_department_id IS NULL )
766 THEN
767 IF NOT WIP_Validate.Department_Id(p_ShopFloorMove_rec.to_department_id,
768 'to_department_id') THEN
769 x_return_status := FND_API.G_RET_STS_ERROR;
770 END IF;
771 END IF;
772
773 IF p_ShopFloorMove_rec.to_intraop_step_type IS NOT NULL AND
774 ( p_ShopFloorMove_rec.to_intraop_step_type <>
775 p_old_ShopFloorMove_rec.to_intraop_step_type OR
776 p_old_ShopFloorMove_rec.to_intraop_step_type IS NULL )
777 THEN
778 IF NOT WIP_Validate.Intraop_Step_Type(p_ShopFloorMove_rec.to_intraop_step_type,
779 'to_intraop_step_type') THEN
780 x_return_status := FND_API.G_RET_STS_ERROR;
781 END IF;
782 END IF;
783
784 IF p_ShopFloorMove_rec.to_operation_code IS NOT NULL AND
785 ( p_ShopFloorMove_rec.to_operation_code <>
786 p_old_ShopFloorMove_rec.to_operation_code OR
787 p_old_ShopFloorMove_rec.to_operation_code IS NULL )
788 THEN
789 IF NOT WIP_Validate.Operation_Code(p_ShopFloorMove_rec.to_operation_code,
790 'to_operation_code') THEN
791 x_return_status := FND_API.G_RET_STS_ERROR;
792 END IF;
793 END IF;
794
795 IF p_ShopFloorMove_rec.to_operation_seq_num IS NOT NULL AND
796 ( p_ShopFloorMove_rec.to_operation_seq_num <>
797 p_old_ShopFloorMove_rec.to_operation_seq_num OR
798 p_old_ShopFloorMove_rec.to_operation_seq_num IS NULL )
799 THEN
800 IF NOT WIP_Validate.Operation_Seq_Num(p_ShopFloorMove_rec.to_operation_seq_num,
801 'to_operation_seq_num') THEN
802 x_return_status := FND_API.G_RET_STS_ERROR;
803 END IF;
804 END IF;
805
806 IF p_ShopFloorMove_rec.transaction_type IS NOT NULL AND
807 ( p_ShopFloorMove_rec.transaction_type <>
808 p_old_ShopFloorMove_rec.transaction_type OR
809 p_old_ShopFloorMove_rec.transaction_type IS NULL )
810 THEN
811 IF NOT WIP_Validate.Transaction_Type(p_ShopFloorMove_rec.transaction_type, 'WIP_MOVE_TRANSACTION_TYPE') THEN
812 x_return_status := FND_API.G_RET_STS_ERROR;
813 END IF;
814 END IF;
815
816 IF p_ShopFloorMove_rec.transaction_uom IS NOT NULL AND
817 ( p_ShopFloorMove_rec.transaction_uom <>
818 p_old_ShopFloorMove_rec.transaction_uom OR
819 p_old_ShopFloorMove_rec.transaction_uom IS NULL )
820 THEN
821 IF NOT WIP_Validate.Transaction_Uom(p_ShopFloorMove_rec.transaction_uom) THEN
822 x_return_status := FND_API.G_RET_STS_ERROR;
823 END IF;
824 END IF;
825
826 IF p_ShopFloorMove_rec.wip_entity_id IS NOT NULL AND
827 ( p_ShopFloorMove_rec.wip_entity_id <>
828 p_old_ShopFloorMove_rec.wip_entity_id OR
829 p_old_ShopFloorMove_rec.wip_entity_id IS NULL )
830 THEN
831 IF NOT WIP_Validate.Wip_Entity(p_ShopFloorMove_rec.wip_entity_id) THEN
832 x_return_status := FND_API.G_RET_STS_ERROR;
833 END IF;
834 END IF;
835
836 IF p_ShopFloorMove_rec.wip_entity_name IS NOT NULL AND
837 ( p_ShopFloorMove_rec.wip_entity_name <>
838 p_old_ShopFloorMove_rec.wip_entity_name OR
839 p_old_ShopFloorMove_rec.wip_entity_name IS NULL )
840 THEN
841 IF NOT WIP_Validate.Wip_Entity_Name(p_ShopFloorMove_rec.wip_entity_name,
842 p_ShopFloorMove_rec.organization_id) THEN
843 x_return_status := FND_API.G_RET_STS_ERROR;
844 END IF;
845 END IF;
846
847
848 -- Done validating attributes
849
850 EXCEPTION
851
852 WHEN FND_API.G_EXC_ERROR THEN
853
854 x_return_status := FND_API.G_RET_STS_ERROR;
855
856 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
857
858 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
859
860 WHEN OTHERS THEN
861
862 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
863
864 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
865 THEN
866 FND_MSG_PUB.Add_Exc_Msg
867 ( G_PKG_NAME
868 , 'Attributes'
869 );
870 END IF;
871
872 END Attributes;
873
874
875 END WIP_Validate_Shopfloormove;