[Home] [Help]
PACKAGE BODY: APPS.GR_ITEM_GENERAL_PKG
Source
1 PACKAGE BODY GR_ITEM_GENERAL_PKG AS
2 /*$Header: GRHIIG1B.pls 115.7 2002/10/25 20:48:23 methomas ship $*/
3 PROCEDURE Insert_Row
4 (p_commit IN VARCHAR2,
5 p_called_by_form IN VARCHAR2,
6 p_item_group_code IN VARCHAR2,
7 p_primary_cas_number IN VARCHAR2,
8 p_ingredient_flag IN VARCHAR2,
9 p_explode_ingredient_flag IN VARCHAR2,
10 p_formula_source_indicator IN VARCHAR2,
11 p_user_id IN NUMBER,
12 p_internal_reference_number IN VARCHAR2,
13 p_label_code IN VARCHAR2,
14 p_version_code IN VARCHAR2,
15 p_last_version_code IN VARCHAR2,
16 p_product_class IN VARCHAR2,
17 p_item_code IN VARCHAR2,
18 p_actual_hazard IN NUMBER,
19 p_print_ing_phrases_flag IN VARCHAR2,
20 p_attribute_category IN VARCHAR2,
21 p_attribute1 IN VARCHAR2,
22 p_attribute2 IN VARCHAR2,
23 p_attribute3 IN VARCHAR2,
24 p_attribute4 IN VARCHAR2,
25 p_attribute5 IN VARCHAR2,
26 p_attribute6 IN VARCHAR2,
27 p_attribute7 IN VARCHAR2,
28 p_attribute8 IN VARCHAR2,
29 p_attribute9 IN VARCHAR2,
30 p_attribute10 IN VARCHAR2,
31 p_attribute11 IN VARCHAR2,
32 p_attribute12 IN VARCHAR2,
33 p_attribute13 IN VARCHAR2,
34 p_attribute14 IN VARCHAR2,
35 p_attribute15 IN VARCHAR2,
36 p_attribute16 IN VARCHAR2,
37 p_attribute17 IN VARCHAR2,
38 p_attribute18 IN VARCHAR2,
39 p_attribute19 IN VARCHAR2,
40 p_attribute20 IN VARCHAR2,
41 p_attribute21 IN VARCHAR2,
42 p_attribute22 IN VARCHAR2,
43 p_attribute23 IN VARCHAR2,
44 p_attribute24 IN VARCHAR2,
45 p_attribute25 IN VARCHAR2,
46 p_attribute26 IN VARCHAR2,
47 p_attribute27 IN VARCHAR2,
48 p_attribute28 IN VARCHAR2,
49 p_attribute29 IN VARCHAR2,
50 p_attribute30 IN VARCHAR2,
51 p_created_by IN NUMBER,
52 p_creation_date IN DATE,
53 p_last_updated_by IN NUMBER,
54 p_last_update_date IN DATE,
55 p_last_update_login IN NUMBER,
56 x_rowid OUT NOCOPY VARCHAR2,
57 x_return_status OUT NOCOPY VARCHAR2,
58 x_oracle_error OUT NOCOPY NUMBER,
59 x_msg_data OUT NOCOPY VARCHAR2)
60 IS
61 /* Alpha Variables */
62
63 L_RETURN_STATUS VARCHAR2(1) := 'S';
64 L_KEY_EXISTS VARCHAR2(1);
65 L_MSG_DATA VARCHAR2(2000);
66 L_ROWID VARCHAR2(18);
67
68 /* Number Variables */
69
70 L_ORACLE_ERROR NUMBER;
71
72 /* Exceptions */
73
74 FOREIGN_KEY_ERROR EXCEPTION;
75 ITEM_EXISTS_ERROR EXCEPTION;
76 ROW_MISSING_ERROR EXCEPTION;
77
78 /* Declare cursors */
79
80
81 BEGIN
82
83 /* Initialization Routine */
84
85 SAVEPOINT Insert_Row;
86 x_return_status := 'S';
87 x_oracle_error := 0;
88 x_msg_data := NULL;
89
90 /* Now call the check foreign key procedure */
91
92 Check_Foreign_Keys
93 (p_item_group_code,
94 p_primary_cas_number,
95 p_ingredient_flag,
96 p_explode_ingredient_flag,
97 p_formula_source_indicator,
98 p_user_id,
99 p_internal_reference_number,
100 p_label_code,
101 p_version_code,
102 p_last_version_code,
103 p_product_class,
104 p_item_code,
105 p_actual_hazard,
106 p_print_ing_phrases_flag,
107 p_attribute_category,
108 p_attribute1,
109 p_attribute2,
110 p_attribute3,
111 p_attribute4,
112 p_attribute5,
113 p_attribute6,
114 p_attribute7,
115 p_attribute8,
116 p_attribute9,
117 p_attribute10,
118 p_attribute11,
119 p_attribute12,
120 p_attribute13,
121 p_attribute14,
122 p_attribute15,
123 p_attribute16,
124 p_attribute17,
125 p_attribute18,
126 p_attribute19,
127 p_attribute20,
128 p_attribute21,
129 p_attribute22,
130 p_attribute23,
131 p_attribute24,
132 p_attribute25,
133 p_attribute26,
134 p_attribute27,
135 p_attribute28,
136 p_attribute29,
137 p_attribute30,
138 l_return_status,
139 l_oracle_error,
140 l_msg_data);
141 IF l_return_status <> 'S' THEN
142 RAISE Foreign_Key_Error;
143 END IF;
144
145 /* Now check the primary key doesn't already exist */
146
147 Check_Primary_Key
148 (p_item_code,
149 'F',
150 l_rowid,
151 l_key_exists);
152
153 IF FND_API.To_Boolean(l_key_exists) THEN
154 RAISE Item_Exists_Error;
155 END IF;
156
157 INSERT INTO gr_item_general
158 (item_code,
159 item_group_code,
160 primary_cas_number,
161 ingredient_flag,
162 explode_ingredient_flag,
163 formula_source_indicator,
164 user_id,
165 internal_reference_number,
166 product_label_code,
167 version_code,
168 last_version_code,
169 product_class,
170 actual_hazard,
171 print_ingredient_phrases_flag,
172 attribute_category,
173 attribute1,
174 attribute2,
175 attribute3,
176 attribute4,
177 attribute5,
178 attribute6,
179 attribute7,
180 attribute8,
181 attribute9,
182 attribute10,
183 attribute11,
184 attribute12,
185 attribute13,
186 attribute14,
187 attribute15,
188 attribute16,
189 attribute17,
190 attribute18,
191 attribute19,
192 attribute20,
193 attribute21,
194 attribute22,
195 attribute23,
196 attribute24,
197 attribute25,
198 attribute26,
199 attribute27,
200 attribute28,
201 attribute29,
202 attribute30,
203 created_by,
204 creation_date,
205 last_updated_by,
206 last_update_date,
207 last_update_login)
208 VALUES
209 (p_item_code,
210 p_item_group_code,
211 p_primary_cas_number,
212 p_ingredient_flag,
213 p_explode_ingredient_flag,
214 p_formula_source_indicator,
215 p_user_id,
216 p_internal_reference_number,
217 p_label_code,
218 p_version_code,
219 p_last_version_code,
220 p_product_class,
221 p_actual_hazard,
222 p_print_ing_phrases_flag,
223 p_attribute_category,
224 p_attribute1,
225 p_attribute2,
226 p_attribute3,
227 p_attribute4,
228 p_attribute5,
229 p_attribute6,
230 p_attribute7,
231 p_attribute8,
232 p_attribute9,
233 p_attribute10,
234 p_attribute11,
235 p_attribute12,
236 p_attribute13,
237 p_attribute14,
238 p_attribute15,
239 p_attribute16,
240 p_attribute17,
241 p_attribute18,
242 p_attribute19,
243 p_attribute20,
244 p_attribute21,
245 p_attribute22,
246 p_attribute23,
247 p_attribute24,
248 p_attribute25,
249 p_attribute26,
250 p_attribute27,
251 p_attribute28,
252 p_attribute29,
253 p_attribute30,
254 p_created_by,
255 p_creation_date,
256 p_last_updated_by,
257 p_last_update_date,
258 p_last_update_login);
259
260 /* Now get the row id of the inserted record */
261
262 Check_Primary_Key
263 (p_item_code,
264 'F',
265 l_rowid,
266 l_key_exists);
267
268 IF FND_API.To_Boolean(l_key_exists) THEN
269 x_rowid := l_rowid;
270 ELSE
271 RAISE Row_Missing_Error;
272 END IF;
273
274 /* Check the commit flag and if set, then commit the work. */
275
276 IF FND_API.To_Boolean(p_commit) THEN
277 COMMIT WORK;
278 END IF;
279
280 EXCEPTION
281
282 WHEN Foreign_Key_Error THEN
283 ROLLBACK TO SAVEPOINT Insert_Row;
284 x_return_status := l_return_status;
285 x_oracle_error := l_oracle_error;
286 FND_MESSAGE.SET_NAME('GR',
287 'GR_FOREIGN_KEY_ERROR');
288 FND_MESSAGE.SET_TOKEN('TEXT',
289 l_msg_data,
290 FALSE);
291 IF FND_API.To_Boolean(p_called_by_form) THEN
292 APP_EXCEPTION.Raise_Exception;
293 ELSE
294 x_msg_data := FND_MESSAGE.Get;
295 END IF;
296
297 WHEN Item_Exists_Error THEN
298 ROLLBACK TO SAVEPOINT Insert_Row;
299 x_return_status := 'E';
300 x_oracle_error := APP_EXCEPTION.Get_Code;
301 FND_MESSAGE.SET_NAME('GR',
302 'GR_RECORD_EXISTS');
303 FND_MESSAGE.SET_TOKEN('CODE',
304 p_item_code,
305 FALSE);
306 IF FND_API.To_Boolean(p_called_by_form) THEN
307 APP_EXCEPTION.Raise_Exception;
308 ELSE
309 x_msg_data := FND_MESSAGE.Get;
310 END IF;
311
312 WHEN Row_Missing_Error THEN
313 ROLLBACK TO SAVEPOINT Insert_Row;
314 x_return_status := 'E';
315 x_oracle_error := APP_EXCEPTION.Get_Code;
316 FND_MESSAGE.SET_NAME('GR',
317 'GR_NO_RECORD_INSERTED');
318 FND_MESSAGE.SET_TOKEN('CODE',
319 p_item_code,
320 FALSE);
321 IF FND_API.To_Boolean(p_called_by_form) THEN
322 APP_EXCEPTION.Raise_Exception;
323 ELSE
324 x_msg_data := FND_MESSAGE.Get;
325 END IF;
326
327 WHEN OTHERS THEN
328 ROLLBACK TO SAVEPOINT Insert_Row;
329 x_return_status := 'U';
330 x_oracle_error := APP_EXCEPTION.Get_Code;
331 l_msg_data := APP_EXCEPTION.Get_Text;
332 FND_MESSAGE.SET_NAME('GR',
333 'GR_UNEXPECTED_ERROR');
334 FND_MESSAGE.SET_TOKEN('TEXT',
335 l_msg_data,
336 FALSE);
337 IF FND_API.To_Boolean(p_called_by_form) THEN
338 APP_EXCEPTION.Raise_Exception;
339 ELSE
340 x_msg_data := FND_MESSAGE.Get;
341 END IF;
342
343 END Insert_Row;
344
345 PROCEDURE Update_Row
346 (p_commit IN VARCHAR2,
347 p_called_by_form IN VARCHAR2,
348 p_rowid IN VARCHAR2,
349 p_item_group_code IN VARCHAR2,
350 p_primary_cas_number IN VARCHAR2,
351 p_ingredient_flag IN VARCHAR2,
352 p_explode_ingredient_flag IN VARCHAR2,
353 p_formula_source_indicator IN VARCHAR2,
354 p_user_id IN NUMBER,
355 p_internal_reference_number IN VARCHAR2,
356 p_label_code IN VARCHAR2,
357 p_version_code IN VARCHAR2,
358 p_last_version_code IN VARCHAR2,
359 p_product_class IN VARCHAR2,
360 p_item_code IN VARCHAR2,
361 p_actual_hazard IN NUMBER,
362 p_print_ing_phrases_flag IN VARCHAR2,
363 p_attribute_category IN VARCHAR2,
364 p_attribute1 IN VARCHAR2,
365 p_attribute2 IN VARCHAR2,
366 p_attribute3 IN VARCHAR2,
367 p_attribute4 IN VARCHAR2,
368 p_attribute5 IN VARCHAR2,
369 p_attribute6 IN VARCHAR2,
370 p_attribute7 IN VARCHAR2,
371 p_attribute8 IN VARCHAR2,
372 p_attribute9 IN VARCHAR2,
373 p_attribute10 IN VARCHAR2,
374 p_attribute11 IN VARCHAR2,
375 p_attribute12 IN VARCHAR2,
376 p_attribute13 IN VARCHAR2,
377 p_attribute14 IN VARCHAR2,
378 p_attribute15 IN VARCHAR2,
379 p_attribute16 IN VARCHAR2,
380 p_attribute17 IN VARCHAR2,
381 p_attribute18 IN VARCHAR2,
382 p_attribute19 IN VARCHAR2,
383 p_attribute20 IN VARCHAR2,
384 p_attribute21 IN VARCHAR2,
385 p_attribute22 IN VARCHAR2,
386 p_attribute23 IN VARCHAR2,
387 p_attribute24 IN VARCHAR2,
388 p_attribute25 IN VARCHAR2,
389 p_attribute26 IN VARCHAR2,
390 p_attribute27 IN VARCHAR2,
391 p_attribute28 IN VARCHAR2,
392 p_attribute29 IN VARCHAR2,
393 p_attribute30 IN VARCHAR2,
394 p_created_by IN NUMBER,
395 p_creation_date IN DATE,
396 p_last_updated_by IN NUMBER,
397 p_last_update_date IN DATE,
398 p_last_update_login IN NUMBER,
399 x_return_status OUT NOCOPY VARCHAR2,
400 x_oracle_error OUT NOCOPY NUMBER,
401 x_msg_data OUT NOCOPY VARCHAR2)
402 IS
403
404 /* Alpha Variables */
405
406 L_RETURN_STATUS VARCHAR2(1) := 'S';
407 L_MSG_DATA VARCHAR2(2000);
408
409 /* Number Variables */
410
411 L_ORACLE_ERROR NUMBER;
412
413 /* Exceptions */
414
415 FOREIGN_KEY_ERROR EXCEPTION;
416 ROW_MISSING_ERROR EXCEPTION;
417 BEGIN
418
419 /* Initialization Routine */
420
421 SAVEPOINT Update_Row;
422 x_return_status := 'S';
423 x_oracle_error := 0;
424 x_msg_data := NULL;
425
426 /* Now call the check foreign key procedure */
427
428 Check_Foreign_Keys
429 (p_item_group_code,
430 p_primary_cas_number,
431 p_ingredient_flag,
432 p_explode_ingredient_flag,
433 p_formula_source_indicator,
434 p_user_id,
435 p_internal_reference_number,
436 p_label_code,
437 p_version_code,
438 p_last_version_code,
439 p_product_class,
440 p_item_code,
441 p_actual_hazard,
442 p_print_ing_phrases_flag,
443 p_attribute_category,
444 p_attribute1,
445 p_attribute2,
446 p_attribute3,
447 p_attribute4,
448 p_attribute5,
449 p_attribute6,
450 p_attribute7,
451 p_attribute8,
452 p_attribute9,
453 p_attribute10,
454 p_attribute11,
455 p_attribute12,
456 p_attribute13,
457 p_attribute14,
458 p_attribute15,
459 p_attribute16,
460 p_attribute17,
461 p_attribute18,
462 p_attribute19,
463 p_attribute20,
464 p_attribute21,
465 p_attribute22,
466 p_attribute23,
467 p_attribute24,
468 p_attribute25,
469 p_attribute26,
470 p_attribute27,
471 p_attribute28,
472 p_attribute29,
473 p_attribute30,
474 l_return_status,
475 l_oracle_error,
476 l_msg_data);
477
478 IF l_return_status <> 'S' THEN
479 RAISE Foreign_Key_Error;
480 ELSE
481 UPDATE gr_item_general
482 SET item_code = p_item_code,
483 item_group_code = p_item_group_code,
484 primary_cas_number = p_primary_cas_number,
485 ingredient_flag = p_ingredient_flag,
486 explode_ingredient_flag = p_explode_ingredient_flag,
490 product_label_code = p_label_code,
487 formula_source_indicator = p_formula_source_indicator,
488 user_id = p_user_id,
489 internal_reference_number = p_internal_reference_number,
491 version_code = p_version_code,
492 last_version_code = p_last_version_code,
493 product_class = p_product_class,
494 actual_hazard = p_actual_hazard,
495 print_ingredient_phrases_flag = p_print_ing_phrases_flag,
496 attribute_category = p_attribute_category,
497 attribute1 = p_attribute1,
498 attribute2 = p_attribute2,
499 attribute3 = p_attribute3,
500 attribute4 = p_attribute4,
501 attribute5 = p_attribute5,
502 attribute6 = p_attribute6,
503 attribute7 = p_attribute7,
504 attribute8 = p_attribute8,
505 attribute9 = p_attribute9,
506 attribute10 = p_attribute10,
507 attribute11 = p_attribute11,
508 attribute12 = p_attribute12,
509 attribute13 = p_attribute13,
510 attribute14 = p_attribute14,
511 attribute15 = p_attribute15,
512 attribute16 = p_attribute16,
513 attribute17 = p_attribute17,
514 attribute18 = p_attribute18,
515 attribute19 = p_attribute19,
516 attribute20 = p_attribute20,
517 attribute21 = p_attribute11,
518 attribute22 = p_attribute22,
519 attribute23 = p_attribute23,
520 attribute24 = p_attribute24,
521 attribute25 = p_attribute25,
522 attribute26 = p_attribute26,
523 attribute27 = p_attribute27,
524 attribute28 = p_attribute28,
525 attribute29 = p_attribute29,
526 attribute30 = p_attribute30,
527 created_by = p_created_by,
528 creation_date = p_creation_date,
529 last_updated_by = p_last_updated_by,
530 last_update_date = p_last_update_date,
531 last_update_login = p_last_update_login
532 WHERE rowid = p_rowid;
533 IF SQL%NOTFOUND THEN
534 RAISE Row_Missing_Error;
535 END IF;
536 END IF;
537
538 /* Check the commit flag and if set, then commit the work. */
539
540 IF FND_API.To_Boolean(p_commit) THEN
541 COMMIT WORK;
542 END IF;
543
544 EXCEPTION
545
546 WHEN Foreign_Key_Error THEN
547 ROLLBACK TO SAVEPOINT Update_Row;
548 x_return_status := l_return_status;
549 x_oracle_error := l_oracle_error;
550 FND_MESSAGE.SET_NAME('GR',
551 'GR_FOREIGN_KEY_ERROR');
552 FND_MESSAGE.SET_TOKEN('TEXT',
553 l_msg_data,
554 FALSE);
555 IF FND_API.To_Boolean(p_called_by_form) THEN
556 APP_EXCEPTION.Raise_Exception;
557 ELSE
558 x_msg_data := FND_MESSAGE.Get;
559 END IF;
560
561 WHEN Row_Missing_Error THEN
562 ROLLBACK TO SAVEPOINT Update_Row;
563 x_return_status := 'E';
564 x_oracle_error := APP_EXCEPTION.Get_Code;
565 FND_MESSAGE.SET_NAME('GR',
566 'GR_NO_RECORD_INSERTED');
567 FND_MESSAGE.SET_TOKEN('CODE',
568 p_item_code,
569 FALSE);
570 IF FND_API.To_Boolean(p_called_by_form) THEN
571 APP_EXCEPTION.Raise_Exception;
572 ELSE
573 x_msg_data := FND_MESSAGE.Get;
574 END IF;
575
576 WHEN OTHERS THEN
577 ROLLBACK TO SAVEPOINT Update_Row;
578 x_return_status := 'U';
579 x_oracle_error := APP_EXCEPTION.Get_Code;
580 l_msg_data := APP_EXCEPTION.Get_Text;
581 FND_MESSAGE.SET_NAME('GR',
582 'GR_UNEXPECTED_ERROR');
583 FND_MESSAGE.SET_TOKEN('TEXT',
584 l_msg_data,
585 FALSE);
586 IF FND_API.To_Boolean(p_called_by_form) THEN
587 APP_EXCEPTION.Raise_Exception;
588 ELSE
589 x_msg_data := FND_MESSAGE.Get;
590 END IF;
591
592 END Update_Row;
593
594 PROCEDURE Lock_Row
595 (p_commit IN VARCHAR2,
596 p_called_by_form IN VARCHAR2,
597 p_rowid IN VARCHAR2,
598 p_item_group_code IN VARCHAR2,
599 p_primary_cas_number IN VARCHAR2,
600 p_ingredient_flag IN VARCHAR2,
601 p_explode_ingredient_flag IN VARCHAR2,
602 p_formula_source_indicator IN VARCHAR2,
603 p_user_id IN NUMBER,
604 p_internal_reference_number IN VARCHAR2,
605 p_label_code IN VARCHAR2,
606 p_version_code IN VARCHAR2,
607 p_last_version_code IN VARCHAR2,
608 p_product_class IN VARCHAR2,
609 p_item_code IN VARCHAR2,
610 p_actual_hazard IN NUMBER,
611 p_print_ing_phrases_flag IN VARCHAR2,
612 p_attribute_category IN VARCHAR2,
613 p_attribute1 IN VARCHAR2,
614 p_attribute2 IN VARCHAR2,
615 p_attribute3 IN VARCHAR2,
616 p_attribute4 IN VARCHAR2,
617 p_attribute5 IN VARCHAR2,
618 p_attribute6 IN VARCHAR2,
619 p_attribute7 IN VARCHAR2,
620 p_attribute8 IN VARCHAR2,
621 p_attribute9 IN VARCHAR2,
622 p_attribute10 IN VARCHAR2,
626 p_attribute14 IN VARCHAR2,
623 p_attribute11 IN VARCHAR2,
624 p_attribute12 IN VARCHAR2,
625 p_attribute13 IN VARCHAR2,
627 p_attribute15 IN VARCHAR2,
628 p_attribute16 IN VARCHAR2,
629 p_attribute17 IN VARCHAR2,
630 p_attribute18 IN VARCHAR2,
631 p_attribute19 IN VARCHAR2,
632 p_attribute20 IN VARCHAR2,
633 p_attribute21 IN VARCHAR2,
634 p_attribute22 IN VARCHAR2,
635 p_attribute23 IN VARCHAR2,
636 p_attribute24 IN VARCHAR2,
637 p_attribute25 IN VARCHAR2,
638 p_attribute26 IN VARCHAR2,
639 p_attribute27 IN VARCHAR2,
640 p_attribute28 IN VARCHAR2,
641 p_attribute29 IN VARCHAR2,
642 p_attribute30 IN VARCHAR2,
643 p_created_by IN NUMBER,
644 p_creation_date IN DATE,
645 p_last_updated_by IN NUMBER,
646 p_last_update_date IN DATE,
647 p_last_update_login IN NUMBER,
648 x_return_status OUT NOCOPY VARCHAR2,
649 x_oracle_error OUT NOCOPY NUMBER,
650 x_msg_data OUT NOCOPY VARCHAR2)
651 IS
652
653 /* Alpha Variables */
654
655 L_RETURN_STATUS VARCHAR2(1) := 'S';
656 L_MSG_DATA VARCHAR2(2000);
657
658 /* Number Variables */
659
660 L_ORACLE_ERROR NUMBER;
661
662 /* Exceptions */
663
664 NO_DATA_FOUND_ERROR EXCEPTION;
665 ROW_ALREADY_LOCKED_ERROR EXCEPTION;
666 PRAGMA EXCEPTION_INIT(ROW_ALREADY_LOCKED_ERROR,-54);
667
668 /* Define the cursors */
669
670 CURSOR c_lock_item
671 IS
672 SELECT *
673 FROM gr_item_general
674 WHERE rowid = p_rowid
675 FOR UPDATE NOWAIT;
676 LockItemRcd c_lock_item%ROWTYPE;
677 BEGIN
678
679 /* Initialization Routine */
680
681 SAVEPOINT Lock_Row;
682 x_return_status := 'S';
683 x_oracle_error := 0;
684 x_msg_data := NULL;
685
686 /* Now lock the record */
687
688 OPEN c_lock_item;
689 FETCH c_lock_item INTO LockItemRcd;
690 IF c_lock_item%NOTFOUND THEN
691 CLOSE c_lock_item;
692 RAISE No_Data_Found_Error;
693 END IF;
694 CLOSE c_lock_item;
695
696 IF FND_API.To_Boolean(p_commit) THEN
697 COMMIT WORK;
698 END IF;
699
700 EXCEPTION
701
702 WHEN No_Data_Found_Error THEN
703 ROLLBACK TO SAVEPOINT Lock_Row;
704 x_return_status := 'E';
705 FND_MESSAGE.SET_NAME('GR',
706 'GR_RECORD_NOT_FOUND');
707 FND_MESSAGE.SET_TOKEN('CODE',
708 p_item_code,
709 FALSE);
710 IF FND_API.To_Boolean(p_called_by_form) THEN
711 APP_EXCEPTION.Raise_Exception;
712 ELSE
713 x_msg_data := FND_MESSAGE.Get;
714 END IF;
715
716 WHEN Row_Already_Locked_Error THEN
717 ROLLBACK TO SAVEPOINT Lock_Row;
718 x_return_status := 'E';
719 x_oracle_error := APP_EXCEPTION.Get_Code;
720 FND_MESSAGE.SET_NAME('GR',
721 'GR_ROW_IS_LOCKED');
722 IF FND_API.To_Boolean(p_called_by_form) THEN
723 APP_EXCEPTION.Raise_Exception;
724 ELSE
725 x_msg_data := FND_MESSAGE.Get;
726 END IF;
727
728 WHEN OTHERS THEN
729 ROLLBACK TO SAVEPOINT Lock_Row;
730 x_return_status := 'U';
731 x_oracle_error := APP_EXCEPTION.Get_Code;
732 l_msg_data := APP_EXCEPTION.Get_Text;
733 FND_MESSAGE.SET_NAME('GR',
734 'GR_UNEXPECTED_ERROR');
735 FND_MESSAGE.SET_TOKEN('TEXT',
736 l_msg_data,
737 FALSE);
738 IF FND_API.To_Boolean(p_called_by_form) THEN
739 APP_EXCEPTION.Raise_Exception;
740 ELSE
741 x_msg_data := FND_MESSAGE.Get;
742 END IF;
743
744 END Lock_Row;
745
746 PROCEDURE Delete_Row
747 (p_commit IN VARCHAR2,
748 p_called_by_form IN VARCHAR2,
749 p_rowid IN VARCHAR2,
750 p_item_group_code IN VARCHAR2,
751 p_primary_cas_number IN VARCHAR2,
752 p_ingredient_flag IN VARCHAR2,
753 p_explode_ingredient_flag IN VARCHAR2,
754 p_formula_source_indicator IN VARCHAR2,
755 p_user_id IN NUMBER,
756 p_internal_reference_number IN VARCHAR2,
757 p_label_code IN VARCHAR2,
758 p_version_code IN VARCHAR2,
759 p_last_version_code IN VARCHAR2,
760 p_product_class IN VARCHAR2,
761 p_item_code IN VARCHAR2,
762 p_actual_hazard IN NUMBER,
763 p_print_ing_phrases_flag IN VARCHAR2,
764 p_attribute_category IN VARCHAR2,
765 p_attribute1 IN VARCHAR2,
766 p_attribute2 IN VARCHAR2,
767 p_attribute3 IN VARCHAR2,
768 p_attribute4 IN VARCHAR2,
769 p_attribute5 IN VARCHAR2,
770 p_attribute6 IN VARCHAR2,
771 p_attribute7 IN VARCHAR2,
772 p_attribute8 IN VARCHAR2,
773 p_attribute9 IN VARCHAR2,
774 p_attribute10 IN VARCHAR2,
775 p_attribute11 IN VARCHAR2,
776 p_attribute12 IN VARCHAR2,
777 p_attribute13 IN VARCHAR2,
781 p_attribute17 IN VARCHAR2,
778 p_attribute14 IN VARCHAR2,
779 p_attribute15 IN VARCHAR2,
780 p_attribute16 IN VARCHAR2,
782 p_attribute18 IN VARCHAR2,
783 p_attribute19 IN VARCHAR2,
784 p_attribute20 IN VARCHAR2,
785 p_attribute21 IN VARCHAR2,
786 p_attribute22 IN VARCHAR2,
787 p_attribute23 IN VARCHAR2,
788 p_attribute24 IN VARCHAR2,
789 p_attribute25 IN VARCHAR2,
790 p_attribute26 IN VARCHAR2,
791 p_attribute27 IN VARCHAR2,
792 p_attribute28 IN VARCHAR2,
793 p_attribute29 IN VARCHAR2,
794 p_attribute30 IN VARCHAR2,
795 p_created_by IN NUMBER,
796 p_creation_date IN DATE,
797 p_last_updated_by IN NUMBER,
798 p_last_update_date IN DATE,
799 p_last_update_login IN NUMBER,
800 x_return_status OUT NOCOPY VARCHAR2,
801 x_oracle_error OUT NOCOPY NUMBER,
802 x_msg_data OUT NOCOPY VARCHAR2)
803 IS
804
805 /* Alpha Variables */
806
807 L_RETURN_STATUS VARCHAR2(1) := 'S';
808 L_MSG_DATA VARCHAR2(2000);
809 L_CALLED_BY_FORM VARCHAR2(1);
810
811 /* Number Variables */
812
813 L_ORACLE_ERROR NUMBER;
814
815 /* Exceptions */
816
817 CHECK_INTEGRITY_ERROR EXCEPTION;
818 ROW_MISSING_ERROR EXCEPTION;
819 PRAGMA EXCEPTION_INIT(Row_Missing_Error,100);
820
821 BEGIN
822
823 /* Initialization Routine */
824
825 SAVEPOINT Delete_Row;
826 x_return_status := 'S';
827 l_called_by_form := 'F';
828 x_oracle_error := 0;
829 x_msg_data := NULL;
830
831 /* Now call the check integrity procedure */
832
833 Check_Integrity
834 (l_called_by_form,
835 p_item_group_code,
836 p_primary_cas_number,
837 p_ingredient_flag,
838 p_explode_ingredient_flag,
839 p_formula_source_indicator,
840 p_user_id,
841 p_internal_reference_number,
842 p_label_code,
843 p_version_code,
844 p_last_version_code,
845 p_product_class,
846 p_item_code,
847 p_actual_hazard,
848 p_print_ing_phrases_flag,
849 p_attribute_category,
850 p_attribute1,
851 p_attribute2,
852 p_attribute3,
853 p_attribute4,
854 p_attribute5,
855 p_attribute6,
856 p_attribute7,
857 p_attribute8,
858 p_attribute9,
859 p_attribute10,
860 p_attribute11,
861 p_attribute12,
862 p_attribute13,
863 p_attribute14,
864 p_attribute15,
865 p_attribute16,
866 p_attribute17,
867 p_attribute18,
868 p_attribute19,
869 p_attribute20,
870 p_attribute21,
871 p_attribute22,
872 p_attribute23,
873 p_attribute24,
874 p_attribute25,
875 p_attribute26,
876 p_attribute27,
877 p_attribute28,
878 p_attribute29,
879 p_attribute30,
880 l_return_status,
881 l_oracle_error,
882 l_msg_data);
883
884 IF l_return_status <> 'S' THEN
885 RAISE Check_Integrity_Error;
886 END IF;
887
888 DELETE FROM gr_item_general
889 WHERE rowid = p_rowid;
890
891 /* Check the commit flag and if set, then commit the work. */
892
893 IF FND_API.TO_Boolean(p_commit) THEN
894 COMMIT WORK;
895 END IF;
896
897 EXCEPTION
898
899 WHEN Check_Integrity_Error THEN
900 ROLLBACK TO SAVEPOINT Delete_Row;
901 x_return_status := l_return_status;
902 x_oracle_error := l_oracle_error;
903 IF FND_API.To_Boolean(p_called_by_form) THEN
904 APP_EXCEPTION.Raise_Exception;
905 ELSE
906 x_msg_data := FND_MESSAGE.Get;
907 END IF;
908
909 WHEN Row_Missing_Error THEN
910 ROLLBACK TO SAVEPOINT Delete_Row;
911 x_return_status := 'E';
912 x_oracle_error := APP_EXCEPTION.Get_Code;
913 FND_MESSAGE.SET_NAME('GR',
914 'GR_RECORD_NOT_FOUND');
915 FND_MESSAGE.SET_TOKEN('CODE',
916 p_item_code,
917 FALSE);
918 IF FND_API.To_Boolean(p_called_by_form) THEN
919 APP_EXCEPTION.Raise_Exception;
920 ELSE
921 x_msg_data := FND_MESSAGE.Get;
922 END IF;
923
924 WHEN OTHERS THEN
925 ROLLBACK TO SAVEPOINT Delete_Row;
926 x_return_status := 'U';
927 x_oracle_error := APP_EXCEPTION.Get_Code;
928 l_msg_data := APP_EXCEPTION.Get_Text;
929 l_msg_data := APP_EXCEPTION.Get_Text;
930 FND_MESSAGE.SET_NAME('GR',
931 'GR_UNEXPECTED_ERROR');
932 FND_MESSAGE.SET_TOKEN('TEXT',
933 l_msg_data,
934 FALSE);
935 IF FND_API.To_Boolean(p_called_by_form) THEN
936 APP_EXCEPTION.Raise_Exception;
937 ELSE
938 x_msg_data := FND_MESSAGE.Get;
939 END IF;
940
941 END Delete_Row;
942
946 p_ingredient_flag IN VARCHAR2,
943 PROCEDURE Check_Foreign_Keys
944 (p_item_group_code IN VARCHAR2,
945 p_primary_cas_number IN VARCHAR2,
947 p_explode_ingredient_flag IN VARCHAR2,
948 p_formula_source_indicator IN VARCHAR2,
949 p_user_id IN NUMBER,
950 p_internal_reference_number IN VARCHAR2,
951 p_label_code IN VARCHAR2,
952 p_version_code IN VARCHAR2,
953 p_last_version_code IN VARCHAR2,
954 p_product_class IN VARCHAR2,
955 p_item_code IN VARCHAR2,
956 p_actual_hazard IN NUMBER,
957 p_print_ing_phrases_flag IN VARCHAR2,
958 p_attribute_category IN VARCHAR2,
959 p_attribute1 IN VARCHAR2,
960 p_attribute2 IN VARCHAR2,
961 p_attribute3 IN VARCHAR2,
962 p_attribute4 IN VARCHAR2,
963 p_attribute5 IN VARCHAR2,
964 p_attribute6 IN VARCHAR2,
965 p_attribute7 IN VARCHAR2,
966 p_attribute8 IN VARCHAR2,
967 p_attribute9 IN VARCHAR2,
968 p_attribute10 IN VARCHAR2,
969 p_attribute11 IN VARCHAR2,
970 p_attribute12 IN VARCHAR2,
971 p_attribute13 IN VARCHAR2,
972 p_attribute14 IN VARCHAR2,
973 p_attribute15 IN VARCHAR2,
974 p_attribute16 IN VARCHAR2,
975 p_attribute17 IN VARCHAR2,
976 p_attribute18 IN VARCHAR2,
977 p_attribute19 IN VARCHAR2,
978 p_attribute20 IN VARCHAR2,
979 p_attribute21 IN VARCHAR2,
980 p_attribute22 IN VARCHAR2,
981 p_attribute23 IN VARCHAR2,
982 p_attribute24 IN VARCHAR2,
983 p_attribute25 IN VARCHAR2,
984 p_attribute26 IN VARCHAR2,
985 p_attribute27 IN VARCHAR2,
986 p_attribute28 IN VARCHAR2,
987 p_attribute29 IN VARCHAR2,
988 p_attribute30 IN VARCHAR2,
989 x_return_status OUT NOCOPY VARCHAR2,
990 x_oracle_error OUT NOCOPY NUMBER,
991 x_msg_data OUT NOCOPY VARCHAR2)
992 IS
993
994 /* Alpha Variables */
995
996 L_RETURN_STATUS VARCHAR2(1) := 'S';
997 L_MSG_DATA VARCHAR2(2000);
998
999 /* Number Variables */
1000
1001 L_ORACLE_ERROR NUMBER;
1002
1003 /* Define the cursors */
1004 /* Item Group Code */
1005
1006 CURSOR c_get_item_group
1007 IS
1008 SELECT ig.item_group_code
1009 FROM gr_item_groups_b ig
1010 WHERE ig.item_group_code = p_item_group_code;
1011 ItemGrpRecord c_get_item_group%ROWTYPE;
1012
1013 /* Product Class */
1014
1015 CURSOR c_get_prod_class
1016 IS
1017 SELECT pc.product_class
1018 FROM gr_product_classes pc
1019 WHERE pc.product_class = p_product_class;
1020 ProdClsRecord c_get_prod_class%ROWTYPE;
1021
1022 /* User ID */
1023
1024 CURSOR c_get_user_id
1025 IS
1026 SELECT fnu.user_id
1027 FROM fnd_user fnu
1028 WHERE fnu.user_id = p_user_id;
1029 UserRcd c_get_user_id%ROWTYPE;
1030
1031 BEGIN
1032
1033 /* Initialization Routine */
1034
1035 SAVEPOINT Check_Foreign_Keys;
1036 x_return_status := 'S';
1037 x_oracle_error := 0;
1038 x_msg_data := NULL;
1039
1040 /* Check the item group code if there is a value */
1041
1042 IF p_item_group_code IS NOT NULL THEN
1043 OPEN c_get_item_group;
1044 FETCH c_get_item_group INTO ItemGrpRecord;
1045 IF c_get_item_group%NOTFOUND THEN
1046 CLOSE c_get_item_group;
1047 x_return_status := 'E';
1048 FND_MESSAGE.SET_NAME('GR',
1049 'GR_RECORD_NOT_FOUND');
1050 FND_MESSAGE.SET_TOKEN('CODE',
1051 p_item_group_code,
1052 FALSE);
1053 l_msg_data := l_msg_data || FND_MESSAGE.Get || ' ';
1054 END IF;
1055 CLOSE c_get_item_group;
1056 END IF;
1057
1058 /* Check the product class code */
1059
1060 IF p_product_class IS NOT NULL THEN
1061 OPEN c_get_prod_class;
1062 FETCH c_get_prod_class INTO ProdClsRecord;
1063 IF c_get_prod_class%NOTFOUND THEN
1064 CLOSE c_get_prod_class;
1065 x_return_status := 'E';
1066 FND_MESSAGE.SET_NAME('GR',
1067 'GR_RECORD_NOT_FOUND');
1068 FND_MESSAGE.SET_TOKEN('CODE',
1069 p_product_class,
1070 FALSE);
1071 l_msg_data := l_msg_data || FND_MESSAGE.Get || ' ';
1072 END IF;
1073 CLOSE c_get_prod_class;
1074 END IF;
1075
1076 /* Check the user id */
1077
1078 OPEN c_get_user_id;
1079 FETCH c_get_user_id INTO UserRcd;
1080 IF c_get_user_id%NOTFOUND THEN
1081 CLOSE c_get_user_id;
1082 x_return_status := 'E';
1083 FND_MESSAGE.SET_NAME('GR',
1084 'GR_RECORD_NOT_FOUND');
1085 FND_MESSAGE.SET_TOKEN('CODE',
1086 p_user_id,
1087 FALSE);
1088 l_msg_data := l_msg_data || FND_MESSAGE.Get || ' ';
1089 END IF;
1090 CLOSE c_get_user_id;
1091
1092 /* Check the not null columns */
1093
1094 IF p_print_ing_phrases_flag IS NULL THEN
1095 x_return_status := 'E';
1096 FND_MESSAGE.SET_NAME('GR',
1097 'GR_NULL_VALUE');
1098 FND_MESSAGE.SET_TOKEN('CODE',
1099 p_print_ing_phrases_flag,
1100 FALSE);
1104 IF x_return_status <> 'S' THEN
1101 l_msg_data := l_msg_data || FND_MESSAGE.Get || ' ';
1102 END IF;
1103
1105 x_msg_data := l_msg_data;
1106 END IF;
1107
1108 EXCEPTION
1109
1110 WHEN OTHERS THEN
1111 ROLLBACK TO SAVEPOINT Check_Foreign_Keys;
1112 x_return_status := 'U';
1113 x_oracle_error := APP_EXCEPTION.Get_Code;
1114 l_msg_data := APP_EXCEPTION.Get_Text;
1115 FND_MESSAGE.SET_NAME('GR',
1116 'GR_UNEXPECTED_ERROR');
1117 FND_MESSAGE.SET_TOKEN('TEXT',
1118 l_msg_data,
1119 FALSE);
1120 x_msg_data := FND_MESSAGE.Get;
1121
1122 END Check_Foreign_Keys;
1123
1124 PROCEDURE Check_Integrity
1125 (p_called_by_form IN VARCHAR2,
1126 p_item_group_code IN VARCHAR2,
1127 p_primary_cas_number IN VARCHAR2,
1128 p_ingredient_flag IN VARCHAR2,
1129 p_explode_ingredient_flag IN VARCHAR2,
1130 p_formula_source_indicator IN VARCHAR2,
1131 p_user_id IN NUMBER,
1132 p_internal_reference_number IN VARCHAR2,
1133 p_label_code IN VARCHAR2,
1134 p_version_code IN VARCHAR2,
1135 p_last_version_code IN VARCHAR2,
1136 p_product_class IN VARCHAR2,
1137 p_item_code IN VARCHAR2,
1138 p_actual_hazard IN NUMBER,
1139 p_print_ing_phrases_flag IN VARCHAR2,
1140 p_attribute_category IN VARCHAR2,
1141 p_attribute1 IN VARCHAR2,
1142 p_attribute2 IN VARCHAR2,
1143 p_attribute3 IN VARCHAR2,
1144 p_attribute4 IN VARCHAR2,
1145 p_attribute5 IN VARCHAR2,
1146 p_attribute6 IN VARCHAR2,
1147 p_attribute7 IN VARCHAR2,
1148 p_attribute8 IN VARCHAR2,
1149 p_attribute9 IN VARCHAR2,
1150 p_attribute10 IN VARCHAR2,
1151 p_attribute11 IN VARCHAR2,
1152 p_attribute12 IN VARCHAR2,
1153 p_attribute13 IN VARCHAR2,
1154 p_attribute14 IN VARCHAR2,
1155 p_attribute15 IN VARCHAR2,
1156 p_attribute16 IN VARCHAR2,
1157 p_attribute17 IN VARCHAR2,
1158 p_attribute18 IN VARCHAR2,
1159 p_attribute19 IN VARCHAR2,
1160 p_attribute20 IN VARCHAR2,
1161 p_attribute21 IN VARCHAR2,
1162 p_attribute22 IN VARCHAR2,
1163 p_attribute23 IN VARCHAR2,
1164 p_attribute24 IN VARCHAR2,
1165 p_attribute25 IN VARCHAR2,
1166 p_attribute26 IN VARCHAR2,
1167 p_attribute27 IN VARCHAR2,
1168 p_attribute28 IN VARCHAR2,
1169 p_attribute29 IN VARCHAR2,
1170 p_attribute30 IN VARCHAR2,
1171 x_return_status OUT NOCOPY VARCHAR2,
1172 x_oracle_error OUT NOCOPY NUMBER,
1173 x_msg_data OUT NOCOPY VARCHAR2)
1174 IS
1175
1176 /* Alpha Variables */
1177
1178 L_RETURN_STATUS VARCHAR2(1) := 'S';
1179 L_MSG_DATA VARCHAR2(2000);
1180 L_CODE_BLOCK VARCHAR2(2000);
1181
1182 /* Number Variables */
1183
1184 L_ORACLE_ERROR NUMBER;
1185 L_RECORD_COUNT NUMBER;
1186
1187 /* Exceptions */
1188 INTEGRITY_ERROR EXCEPTION;
1189
1190 /* Define the Cursors */
1191 /* Calculations table */
1192
1193 CURSOR c_get_calculated
1194 IS
1195 SELECT COUNT(*)
1196 FROM gr_calculated ca
1197 WHERE ca.item_code = p_item_code;
1198
1199 /* Dispatch History */
1200
1201 CURSOR c_get_disp_history
1202 IS
1203 SELECT COUNT(*)
1204 FROM gr_dispatch_histories dh
1205 WHERE dh.item_code = p_item_code;
1206
1207 /* Document Print */
1208
1209 CURSOR c_get_doc_print
1210 IS
1211 SELECT COUNT(*)
1212 FROM gr_document_print dp
1213 WHERE dp.item_code = p_item_code;
1214
1215 /* European Information */
1216
1217 CURSOR c_get_emea
1218 IS
1219 SELECT COUNT(*)
1220 FROM gr_emea em
1221 WHERE em.item_code = p_item_code;
1222
1223 /* Generic Items */
1224
1225 CURSOR c_get_generics
1226 IS
1227 SELECT COUNT(*)
1228 FROM gr_generic_items_b gen
1229 WHERE gen.item_code = p_item_code;
1230
1231 /* Generic Names */
1232
1233 CURSOR c_get_generic_names
1234 IS
1235 SELECT COUNT(*)
1236 FROM gr_generic_ml_name_tl gmn
1237 WHERE gmn.item_code = p_item_code;
1238
1239 /* Item classifications */
1240
1241 CURSOR c_get_item_classn
1242 IS
1243 SELECT COUNT(*)
1244 FROM gr_item_classns ic
1245 WHERE ic.item_code = p_item_code;
1246
1247 /* Item Disclosures */
1248
1249 CURSOR c_get_item_disclosure
1250 IS
1251 SELECT COUNT(*)
1252 FROM gr_item_disclosures id
1253 WHERE id.item_code = p_item_code;
1254
1255 /* Item Document Details */
1256
1257 CURSOR c_get_item_doc_dtls
1258 IS
1259 SELECT COUNT(*)
1260 FROM gr_item_document_dtls idd
1261 WHERE idd.item_code = p_item_code;
1262
1263 /* Item Document Status */
1264
1265 CURSOR c_get_item_doc_status
1266 IS
1267 SELECT COUNT(*)
1268 FROM gr_item_doc_statuses ids
1269 WHERE ids.item_code = p_item_code;
1270
1271 /* Item Exposure */
1272
1273 CURSOR c_get_item_exposure
1274 IS
1275 SELECT COUNT(*)
1276 FROM gr_item_exposure ie
1277 WHERE ie.item_code = p_item_code;
1278
1282 IS
1279 /* Item Properties */
1280
1281 CURSOR c_get_item_properties
1283 SELECT COUNT(*)
1284 FROM gr_item_properties ip
1285 WHERE ip.item_code = p_item_code;
1286
1287 /* Item Right to Know */
1288
1289 CURSOR c_get_item_rtk
1290 IS
1291 SELECT COUNT(*)
1292 FROM gr_item_right_to_know irtk
1293 WHERE irtk.item_code = p_item_code;
1294
1295 /* Item Risk Phrases */
1296
1297 CURSOR c_get_item_risks
1298 IS
1299 SELECT COUNT(*)
1300 FROM gr_item_risk_phrases irp
1301 WHERE irp.item_code = p_item_code;
1302
1303 /* Item Safety Phrases */
1304
1305 CURSOR c_get_item_safety
1306 IS
1307 SELECT COUNT(*)
1308 FROM gr_item_safety_phrases isp
1309 WHERE isp.item_code = p_item_code;
1310
1311 /* Item Toxic */
1312
1313 CURSOR c_get_item_toxic
1314 IS
1315 SELECT COUNT(*)
1316 FROM gr_item_toxic it
1317 WHERE it.item_code = p_item_code;
1318
1319 /* Item Names */
1320
1321 CURSOR c_get_item_names
1322 IS
1323 SELECT COUNT(*)
1324 FROM gr_multilingual_name_tl mln
1325 WHERE mln.item_code = p_item_code;
1326
1327 /* Other names (synonyms) */
1328
1329 CURSOR c_get_other_names
1330 IS
1331 SELECT COUNT(*)
1332 FROM gr_other_names_tl onm
1333 WHERE onm.item_code = p_item_code;
1334
1335 BEGIN
1336
1337 /* Initialization Routine */
1338
1339 SAVEPOINT Check_Integrity;
1340 x_return_status := 'S';
1341 x_oracle_error := 0;
1342 x_msg_data := NULL;
1343
1344 /* Now read the cursors to make sure the item code isn't used. */
1345 /* Calculations Table */
1346
1347 l_record_count := 0;
1348 l_code_block := 'c_get_calculated';
1349 OPEN c_get_calculated;
1350 FETCH c_get_calculated INTO l_record_count;
1351 IF l_record_count <> 0 THEN
1352 l_return_status := 'E';
1353 l_msg_data := l_msg_data || 'gr_calculated, ';
1354 END IF;
1355 CLOSE c_get_calculated;
1356
1357 /* Dispatch History */
1358
1359 l_record_count := 0;
1360 l_code_block := 'c_get_disp_history';
1361 OPEN c_get_disp_history;
1362 FETCH c_get_disp_history INTO l_record_count;
1363 IF l_record_count <> 0 THEN
1364 l_return_status := 'E';
1365 l_msg_data := l_msg_data || 'gr_dispatch_histories, ';
1366 END IF;
1367 CLOSE c_get_disp_history;
1368
1369 /* Document Printing */
1370
1371 l_record_count := 0;
1372 l_code_block := 'c_get_doc_print';
1373 OPEN c_get_doc_print;
1374 FETCH c_get_doc_print INTO l_record_count;
1375 IF l_record_count <> 0 THEN
1376 l_return_status := 'E';
1377 l_msg_data := l_msg_data || 'gr_document_print, ';
1378 END IF;
1379 CLOSE c_get_doc_print;
1380
1381 /* European Information */
1382
1383 l_record_count := 0;
1384 l_code_block := 'c_get_emea';
1385 OPEN c_get_emea;
1386 FETCH c_get_emea INTO l_record_count;
1387 IF l_record_count <> 0 THEN
1388 l_return_status := 'E';
1389 l_msg_data := l_msg_data || 'gr_emea, ';
1390 END IF;
1391 CLOSE c_get_emea;
1392
1393 /* Generic Items */
1394
1395 l_record_count := 0;
1396 l_code_block := 'g_get_generics';
1397 OPEN c_get_generics;
1398 FETCH c_get_generics INTO l_record_count;
1399 IF l_record_count <> 0 THEN
1400 l_return_status := 'E';
1401 l_msg_data := l_msg_data || 'gr_generic_items_b, ';
1402 END IF;
1403 CLOSE c_get_generics;
1404
1405 /* Generic Item Names */
1406
1407 l_record_count := 0;
1408 l_code_block := 'c_get_generic_names ';
1409 OPEN c_get_generic_names;
1410 FETCH c_get_generic_names INTO l_record_count;
1411 IF l_record_count <> 0 THEN
1412 l_return_status := 'E';
1413 l_msg_data := l_msg_data || 'gr_generic_ml_name_tl, ';
1414 END IF;
1415 CLOSE c_get_generic_names;
1416
1417 /* Item Classifications */
1418
1419 l_record_count := 0;
1420 l_code_block := 'c_get_item_classn';
1421 OPEN c_get_item_classn;
1422 FETCH c_get_item_classn INTO l_record_count;
1423 IF l_record_count <> 0 THEN
1424 l_return_status := 'E';
1425 l_msg_data := l_msg_data || 'gr_item_classns, ';
1426 END IF;
1427 CLOSE c_get_item_classn;
1428
1429 /* Item Disclosures */
1430
1431 l_record_count := 0;
1432 l_code_block := 'c_get_item_disclosure';
1433 OPEN c_get_item_disclosure;
1434 FETCH c_get_item_disclosure INTO l_record_count;
1435 IF l_record_count <> 0 THEN
1436 l_return_status := 'E';
1437 l_msg_data := l_msg_data || 'gr_item_disclosures, ';
1438 END IF;
1439 CLOSE c_get_item_disclosure;
1440
1441 /* Item Document Details */
1442
1443 l_record_count := 0;
1444 l_code_block := 'c_get_item_doc_dtls';
1445 OPEN c_get_item_doc_dtls;
1446 FETCH c_get_item_doc_dtls INTO l_record_count;
1447 IF l_record_count <> 0 THEN
1448 l_return_status := 'E';
1449 l_msg_data := l_msg_data || 'gr_item_document_dtls, ';
1450 END IF;
1451 CLOSE c_get_item_doc_dtls;
1452
1453 /* Item Document Statuses */
1454
1455 l_record_count := 0;
1456 l_code_block := 'c_get_item_doc_status';
1457 OPEN c_get_item_doc_status;
1461 l_msg_data := l_msg_data || 'gr_item_doc_statuses, ';
1458 FETCH c_get_item_doc_status INTO l_record_count;
1459 IF l_record_count <> 0 THEN
1460 l_return_status := 'E';
1462 END IF;
1463 CLOSE c_get_item_doc_status;
1464
1465 /* Item Exposure */
1466
1467 l_record_count := 0;
1468 l_code_block := 'c_get_item_exposure';
1469 OPEN c_get_item_exposure;
1470 FETCH c_get_item_exposure INTO l_record_count;
1471 IF l_record_count <> 0 THEN
1472 l_return_status := 'E';
1473 l_msg_data := l_msg_data || 'gr_item_exposure, ';
1474 END IF;
1475 CLOSE c_get_item_exposure;
1476
1477 /* Item Properties */
1478
1479 l_record_count := 0;
1480 l_code_block := 'c_get_item_properties';
1481 OPEN c_get_item_properties;
1482 FETCH c_get_item_properties INTO l_record_count;
1483 IF l_record_count <> 0 THEN
1484 l_return_status := 'E';
1485 l_msg_data := l_msg_data || 'gr_item_properties, ';
1486 END IF;
1487 CLOSE c_get_item_properties;
1488
1489 /* Item Right to Know */
1490
1491 l_record_count := 0;
1492 l_code_block := 'c_get_item_rtk';
1493 OPEN c_get_item_rtk;
1494 FETCH c_get_item_rtk INTO l_record_count;
1495 IF l_record_count <> 0 THEN
1496 l_return_status := 'E';
1497 l_msg_data := l_msg_data || 'gr_item_right_to_know, ';
1498 END IF;
1499 CLOSE c_get_item_rtk;
1500
1501 /* Item Risk Phrases */
1502
1503 l_record_count := 0;
1504 l_code_block := 'c_get_item_risks';
1505 OPEN c_get_item_risks;
1506 FETCH c_get_item_risks INTO l_record_count;
1507 IF l_record_count <> 0 THEN
1508 l_return_status := 'E';
1509 l_msg_data := l_msg_data || 'gr_item_risk_phrases, ';
1510 END IF;
1511 CLOSE c_get_item_risks;
1512
1513 /* Item Safety Phrases */
1514
1515 l_record_count := 0;
1516 l_code_block := 'c_get_item_safety';
1517 OPEN c_get_item_safety;
1518 FETCH c_get_item_safety INTO l_record_count;
1519 IF l_record_count <> 0 THEN
1520 l_return_status := 'E';
1521 l_msg_data := l_msg_data || 'gr_item_safety_phrases, ';
1522 END IF;
1523 CLOSE c_get_item_safety;
1524
1525 /* Item Toxic */
1526
1527 l_record_count := 0;
1528 l_code_block := 'c_get_item_toxic';
1529 OPEN c_get_item_toxic;
1530 FETCH c_get_item_toxic INTO l_record_count;
1531 IF l_record_count <> 0 THEN
1532 l_return_status := 'E';
1533 l_msg_data := l_msg_data || 'gr_item_toxic, ';
1534 END IF;
1535 CLOSE c_get_item_toxic;
1536
1537 /* Multi Lingual Names */
1538
1539 l_record_count := 0;
1540 l_code_block := 'c_get_item_names';
1541 OPEN c_get_item_names;
1542 FETCH c_get_item_names INTO l_record_count;
1543 IF l_record_count <> 0 THEN
1544 l_return_status := 'E';
1545 l_msg_data := l_msg_data || 'gr_multilingual_name_tl, ';
1546 END IF;
1547 CLOSE c_get_item_names;
1548
1549 /* Other Names (Synonyms) */
1550
1551 l_record_count := 0;
1552 l_code_block := 'c_get_other_names';
1553 OPEN c_get_other_names;
1554 FETCH c_get_other_names INTO l_record_count;
1555 IF l_record_count <> 0 THEN
1556 l_return_status := 'E';
1557 l_msg_data := l_msg_data || 'gr_other_names, ';
1558 END IF;
1559 CLOSE c_get_other_names;
1560 /* Now sort out the error messaging */
1561
1562 IF l_return_status <> 'S' THEN
1563 RAISE INTEGRITY_ERROR;
1564 END IF;
1565
1566 EXCEPTION
1567
1568 WHEN INTEGRITY_ERROR THEN
1569 x_return_status := 'E';
1570 FND_MESSAGE.SET_NAME('GR',
1571 'GR_INTEGRITY_HEADER');
1572 FND_MESSAGE.SET_TOKEN('CODE',
1573 p_item_code,
1574 FALSE);
1575 FND_MESSAGE.SET_TOKEN('TABLES',
1576 SUBSTR(l_msg_data,1,LENGTH(l_msg_data)-1),
1577 FALSE);
1578 IF FND_API.To_Boolean(p_called_by_form) THEN
1579 APP_EXCEPTION.Raise_Exception;
1580 ELSE
1581 x_msg_data := FND_MESSAGE.Get;
1582 END IF;
1583 WHEN OTHERS THEN
1584 ROLLBACK TO SAVEPOINT Check_Integrity;
1585 x_return_status := 'U';
1586 x_oracle_error := APP_EXCEPTION.Get_Code;
1587 l_msg_data := APP_EXCEPTION.Get_Text;
1588 FND_MESSAGE.SET_NAME('GR',
1589 'GR_UNEXPECTED_ERROR');
1590 FND_MESSAGE.SET_TOKEN('TEXT',
1591 l_msg_data,
1592 FALSE);
1593 IF FND_API.To_Boolean(p_called_by_form) THEN
1594 APP_EXCEPTION.Raise_Exception;
1595 ELSE
1596 x_msg_data := FND_MESSAGE.Get;
1597 END IF;
1598
1599 END Check_Integrity;
1600
1601 PROCEDURE Check_Primary_Key
1602 /* p_item_code is the item code to check.
1603 ** p_called_by_form is 'T' if called by a form or 'F' if not.
1604 ** x_rowid is the row id of the record if found.
1605 ** x_key_exists is 'T' is the record is found, 'F' if not.
1606 */
1607 (p_item_code IN VARCHAR2,
1608 p_called_by_form IN VARCHAR2,
1609 x_rowid OUT NOCOPY VARCHAR2,
1610 x_key_exists OUT NOCOPY VARCHAR2)
1611 IS
1612 /* Alphanumeric variables */
1613
1614 L_MSG_DATA VARCHAR2(80);
1615
1616 /* Declare any variables and the cursor */
1617
1618
1619 CURSOR c_get_item_rowid
1620 IS
1621 SELECT ig.rowid
1622 FROM gr_item_general ig
1623 WHERE ig.item_code = p_item_code;
1624 ItemRecord c_get_item_rowid%ROWTYPE;
1625
1626 BEGIN
1627
1628 l_msg_data := p_item_code;
1629 x_key_exists := 'F';
1630
1631 OPEN c_get_item_rowid;
1632 FETCH c_get_item_rowid INTO ItemRecord;
1633 IF c_get_item_rowid%FOUND THEN
1634 x_key_exists := 'T';
1635 x_rowid := ItemRecord.rowid;
1636 ELSE
1637 x_key_exists := 'F';
1638 END IF;
1639 CLOSE c_get_item_rowid;
1640
1641 EXCEPTION
1642
1643 WHEN Others THEN
1644 l_msg_data := APP_EXCEPTION.Get_Text;
1645 FND_MESSAGE.SET_NAME('GR',
1646 'GR_UNEXPECTED_ERROR');
1647 FND_MESSAGE.SET_TOKEN('TEXT',
1648 l_msg_data,
1649 FALSE);
1650 IF FND_API.To_Boolean(p_called_by_form) THEN
1651 APP_EXCEPTION.Raise_Exception;
1652 END IF;
1653
1654 END Check_Primary_Key;
1655
1656 END GR_ITEM_GENERAL_PKG;