67: BEGIN
68: x_return_status := 'S';
69:
70: IF P_disp_start_date < P_routing_start_date THEN
71: FND_MESSAGE.SET_NAME('GMD','GMD_VALIDITY_DATE_IN_ROUT_DATE');
72: FND_MSG_PUB.ADD;
73: x_return_status := 'E';
74: END IF;
75:
98: x_return_status := 'S';
99: IF (P_end_date IS NOT NULL) AND
100: (P_routing_end_date IS NOT NULL) AND
101: (P_end_date > P_routing_end_date) THEN
102: FND_MESSAGE.SET_NAME('GMD','GMD_VALIDITY_DATE_IN_ROUT_DATE');
103: FND_MSG_PUB.ADD;
104: x_return_status := 'E';
105: END IF;
106:
106:
107: -- Routing end date is finite but Vr end date is infinite
108: IF (P_routing_end_date IS NOT NULL) AND
109: (P_end_date IS NULL) THEN
110: FND_MESSAGE.SET_NAME('GMD','GMD_VALIDITY_DATE_IN_ROUT_DATE');
111: FND_MSG_PUB.ADD;
112: x_return_status := 'E';
113: END IF;
114:
136: x_return_status := 'S';
137:
138: IF (P_end_date IS NOT NULL AND P_start_date IS NOT NULL) THEN
139: IF (P_end_date < P_start_date) THEN
140: FND_MESSAGE.SET_NAME('GMD', 'QC_MIN_MAX_DATE');
141: FND_MSG_PUB.ADD;
142: x_return_status := 'E';
143: END IF;
144: END IF;
170: IF (P_std_qty < P_min_qty
171: OR P_std_qty > P_max_qty)
172: OR P_std_qty <= 0 THEN
173: IF P_std_qty <= 0 THEN
174: FND_MESSAGE.SET_NAME('GMD','FM_INV_STD_QTY');
175: FND_MSG_PUB.ADD;
176: x_return_status := 'E';
177: ELSE
178: FND_MESSAGE.SET_NAME('GMD','FM_INV_STD_RANGE');
174: FND_MESSAGE.SET_NAME('GMD','FM_INV_STD_QTY');
175: FND_MSG_PUB.ADD;
176: x_return_status := 'E';
177: ELSE
178: FND_MESSAGE.SET_NAME('GMD','FM_INV_STD_RANGE');
179: FND_MSG_PUB.ADD;
180: x_return_status := 'E';
181: END IF; -- end if std qty is the problem, or the range
182: END IF; -- end if std qty not within range
206: IF P_max_qty IS NOT NULL THEN
207: IF (P_max_qty < P_min_qty
208: OR P_min_qty < 0) THEN
209: IF P_min_qty < 0 THEN
210: FND_MESSAGE.SET_NAME('GMD','FM_INV_MIN_QTY');
211: FND_MSG_PUB.ADD;
212: x_return_status := 'E';
213: ELSE
214: FND_MESSAGE.SET_NAME('GMD','FM_INV_MIN_MAX');
210: FND_MESSAGE.SET_NAME('GMD','FM_INV_MIN_QTY');
211: FND_MSG_PUB.ADD;
212: x_return_status := 'E';
213: ELSE
214: FND_MESSAGE.SET_NAME('GMD','FM_INV_MIN_MAX');
215: FND_MSG_PUB.ADD;
216: x_return_status := 'E';
217: END IF; -- end if qty is the problem, or the range
218: END IF; -- IF (P_max_qty < P_min_qty
425: gmd_debug.put_line(m_pkg_name||'.'||l_api_name
426: ||': Duplicate VR id = '||VR_dup_rec.recipe_validity_rule_id);
427:
428: END IF;
429: FND_MESSAGE.SET_NAME('GMD','GMD_DUP_VR_EXIST');
430: FND_MSG_PUB.ADD;
431: x_return_status := 'E';
432: END LOOP;
433: EXCEPTION
556: /* Get the old routing rec value */
557: OPEN get_old_vr_rec(p_validity_rule_id);
558: FETCH get_old_vr_rec INTO l_old_vr_rec;
559: IF get_old_vr_rec%NOTFOUND THEN
560: FND_MESSAGE.SET_NAME('GMD', 'GMD_VR_INVALID');
561: FND_MSG_PUB.ADD;
562: CLOSE get_old_vr_rec;
563: RAISE vr_update_failure;
564: END IF;
709: ELSIF (UPPER(p_update_table(i).p_col_to_update) = 'VALIDITY_RULE_STATUS') THEN
710: -- Users should be prompted to use change status API
711: -- Since Change Status API commits work it cannot be
712: -- called from here directly
713: FND_MESSAGE.set_name('GMD','GMD_NOT_USE_API_UPD_STATUS');
714: FND_MSG_PUB.ADD;
715: RAISE vr_update_failure;
716: END IF;
717:
723: /* Chcek if update is allowed */
724: IF NOT GMD_COMMON_VAL.update_allowed('VALIDITY'
725: ,p_Validity_rule_id
726: ,UPPER(p_update_table(i).p_col_to_update) ) THEN
727: FND_MESSAGE.SET_NAME('GMD', 'GMD_VR_CANNOT_UPD');
728: FND_MSG_PUB.ADD;
729: RAISE vr_update_failure;
730: END IF;
731:
759:
760: -- Check if the item being modified is either a product or a by-product
761: IF (UPPER(p_update_table(i).p_col_to_update) = 'ITEM_ID') THEN
762: IF NOT Determine_Product(l_old_vr_rec.RECIPE_ID, l_old_vr_rec.INVENTORY_ITEM_ID) THEN -- NPD Conv.
763: FND_MESSAGE.SET_NAME('GMD', 'GMD_ITEM_IS_PRODUCT');
764: FND_MSG_PUB.ADD;
765: x_return_status := 'E';
766: RAISE vr_update_failure;
767: END IF;
852: FETCH check_fmhdr_fixed_scale INTO l_fixed_scale;
853: CLOSE check_fmhdr_fixed_scale;
854:
855: IF (l_fixed_scale = 1) THEN
856: FND_MESSAGE.SET_NAME('GMD', 'GMD_FXD_HDR_FOR_VR');
857: FND_MSG_PUB.ADD;
858: RAISE vr_update_failure;
859: END IF;
860:
869: FETCH check_fmdtl_fixed_scale INTO l_fixed_scale;
870: CLOSE check_fmdtl_fixed_scale;
871:
872: IF (l_fixed_scale = 1) THEN
873: FND_MESSAGE.SET_NAME('GMD', 'GMD_FXD_HDR_FOR_VR');
874: FND_MSG_PUB.ADD;
875: RAISE vr_update_failure;
876: END IF;
877: END IF;
1112: , fixed_process_loss_uom = l_old_vr_rec.fixed_process_loss_uom /* RLNAGARA Bug6997624 */
1113: where recipe_validity_rule_id = p_validity_rule_id;
1114:
1115: IF (sql%notfound) THEN
1116: FND_MESSAGE.SET_NAME('GMD', 'GMD_VR_UPD_NO_ACCESS');
1117: FND_MSG_PUB.ADD;
1118: RAISE vr_update_failure;
1119: END IF;
1120:
1149: ,p_encoded => FND_API.g_false
1150: ,p_data => x_message_list);
1151: WHEN last_update_date_failure THEN
1152: x_return_status := FND_API.G_RET_STS_ERROR;
1153: FND_MESSAGE.SET_NAME('FND', 'FND_RECORD_CHANGED_ERROR');
1154: FND_MSG_PUB.ADD;
1155: fnd_msg_pub.count_and_get (
1156: p_count => x_message_count
1157: ,p_encoded => FND_API.g_false