49: -- For organization code
50: OPEN mtl_parameters_csr(p_inventory_org_id);
51: FETCH mtl_parameters_csr INTO l_organization_code,l_master_org_id;
52: IF (mtl_parameters_csr%NOTFOUND) THEN
53: FND_MESSAGE.Set_Name('AHL','AHL_MC_ORG_INVALID');
54: FND_MESSAGE.Set_Token('ORG',p_inventory_org_id);
55: FND_MSG_PUB.ADD;
56: ELSE
57: p_master_org_id := l_master_org_id;
50: OPEN mtl_parameters_csr(p_inventory_org_id);
51: FETCH mtl_parameters_csr INTO l_organization_code,l_master_org_id;
52: IF (mtl_parameters_csr%NOTFOUND) THEN
53: FND_MESSAGE.Set_Name('AHL','AHL_MC_ORG_INVALID');
54: FND_MESSAGE.Set_Token('ORG',p_inventory_org_id);
55: FND_MSG_PUB.ADD;
56: ELSE
57: p_master_org_id := l_master_org_id;
58: /*IF l_master_org_id <> p_master_org_id THEN
55: FND_MSG_PUB.ADD;
56: ELSE
57: p_master_org_id := l_master_org_id;
58: /*IF l_master_org_id <> p_master_org_id THEN
59: FND_MESSAGE.Set_Name('AHL','AHL_MC_MASTER_ORG_INVALID');
60: FND_MESSAGE.Set_Token('ORG',p_master_org_id);
61: FND_MSG_PUB.ADD;
62: */
63: END IF;
56: ELSE
57: p_master_org_id := l_master_org_id;
58: /*IF l_master_org_id <> p_master_org_id THEN
59: FND_MESSAGE.Set_Name('AHL','AHL_MC_MASTER_ORG_INVALID');
60: FND_MESSAGE.Set_Token('ORG',p_master_org_id);
61: FND_MSG_PUB.ADD;
62: */
63: END IF;
64: CLOSE mtl_parameters_csr;
69: l_revision_qty_control_code;
70: l_segment1 := l_segment1 || ',' || l_organization_code;
71:
72: IF (mtl_system_items_non_ou_csr%NOTFOUND) THEN
73: FND_MESSAGE.Set_Name('AHL','AHL_MC_INV_INVALID');
74: FND_MESSAGE.Set_Token('INV_ITEM',p_inventory_item_id);
75: FND_MSG_PUB.ADD;
76: --dbms_output.put_line('Inventory item does not exist');
77:
70: l_segment1 := l_segment1 || ',' || l_organization_code;
71:
72: IF (mtl_system_items_non_ou_csr%NOTFOUND) THEN
73: FND_MESSAGE.Set_Name('AHL','AHL_MC_INV_INVALID');
74: FND_MESSAGE.Set_Token('INV_ITEM',p_inventory_item_id);
75: FND_MSG_PUB.ADD;
76: --dbms_output.put_line('Inventory item does not exist');
77:
78: l_segment1 := null;
82: ELSE
83:
84: IF ( UPPER(p_record_type) = 'HEADER' AND UPPER(l_instance_track) <> 'Y')
85: THEN
86: FND_MESSAGE.Set_Name('AHL','AHL_MC_INV_TRACK');
87: FND_MESSAGE.Set_Token('INV_ITEM',l_segment1);
88: FND_MSG_PUB.ADD;
89: --dbms_output.put_line('Rec Type '||p_record_type || ' and '||l_instance_track);
90: ELSIF ( UPPER(p_record_type) = 'DETAIL' AND UPPER(l_instance_track) = 'Y')
83:
84: IF ( UPPER(p_record_type) = 'HEADER' AND UPPER(l_instance_track) <> 'Y')
85: THEN
86: FND_MESSAGE.Set_Name('AHL','AHL_MC_INV_TRACK');
87: FND_MESSAGE.Set_Token('INV_ITEM',l_segment1);
88: FND_MSG_PUB.ADD;
89: --dbms_output.put_line('Rec Type '||p_record_type || ' and '||l_instance_track);
90: ELSIF ( UPPER(p_record_type) = 'DETAIL' AND UPPER(l_instance_track) = 'Y')
91: THEN
88: FND_MSG_PUB.ADD;
89: --dbms_output.put_line('Rec Type '||p_record_type || ' and '||l_instance_track);
90: ELSIF ( UPPER(p_record_type) = 'DETAIL' AND UPPER(l_instance_track) = 'Y')
91: THEN
92: FND_MESSAGE.Set_Name('AHL','AHL_MC_INV_NON_TRACK');
93: FND_MESSAGE.Set_Token('INV_ITEM',l_segment1);
94: FND_MSG_PUB.ADD;
95: --dbms_output.put_line('Inventory item are trackable');
96: END IF;
89: --dbms_output.put_line('Rec Type '||p_record_type || ' and '||l_instance_track);
90: ELSIF ( UPPER(p_record_type) = 'DETAIL' AND UPPER(l_instance_track) = 'Y')
91: THEN
92: FND_MESSAGE.Set_Name('AHL','AHL_MC_INV_NON_TRACK');
93: FND_MESSAGE.Set_Token('INV_ITEM',l_segment1);
94: FND_MSG_PUB.ADD;
95: --dbms_output.put_line('Inventory item are trackable');
96: END IF;
97:
127: -- Check if UOM entered and valid.
128: IF (p_uom_code IS NULL OR p_uom_code = FND_API.G_MISS_CHAR) THEN
129: -- uom_code is null but quantity is not null.
130: IF (p_inv_segment IS NULL OR p_inv_segment = FND_API.G_MISS_CHAR) THEN
131: FND_MESSAGE.Set_Name('AHL','AHL_MC_IG_UOM_NULL');
132: FND_MESSAGE.Set_Token('IG',p_item_group_name);
133: FND_MSG_PUB.ADD;
134: ELSE
135: FND_MESSAGE.Set_Name('AHL','AHL_MC_INVUOM_NULL');
128: IF (p_uom_code IS NULL OR p_uom_code = FND_API.G_MISS_CHAR) THEN
129: -- uom_code is null but quantity is not null.
130: IF (p_inv_segment IS NULL OR p_inv_segment = FND_API.G_MISS_CHAR) THEN
131: FND_MESSAGE.Set_Name('AHL','AHL_MC_IG_UOM_NULL');
132: FND_MESSAGE.Set_Token('IG',p_item_group_name);
133: FND_MSG_PUB.ADD;
134: ELSE
135: FND_MESSAGE.Set_Name('AHL','AHL_MC_INVUOM_NULL');
136: FND_MESSAGE.Set_Token('INV_ITEM',p_inv_segment);
131: FND_MESSAGE.Set_Name('AHL','AHL_MC_IG_UOM_NULL');
132: FND_MESSAGE.Set_Token('IG',p_item_group_name);
133: FND_MSG_PUB.ADD;
134: ELSE
135: FND_MESSAGE.Set_Name('AHL','AHL_MC_INVUOM_NULL');
136: FND_MESSAGE.Set_Token('INV_ITEM',p_inv_segment);
137: FND_MSG_PUB.ADD;
138: END IF;
139: --dbms_output.put_line('Uom is null');
132: FND_MESSAGE.Set_Token('IG',p_item_group_name);
133: FND_MSG_PUB.ADD;
134: ELSE
135: FND_MESSAGE.Set_Name('AHL','AHL_MC_INVUOM_NULL');
136: FND_MESSAGE.Set_Token('INV_ITEM',p_inv_segment);
137: FND_MSG_PUB.ADD;
138: END IF;
139: --dbms_output.put_line('Uom is null');
140: ELSIF p_inventory_item_id IS NOT NULL AND p_inventory_org_id IS NOT NULL THEN
141: IF NOT(inv_convert.Validate_Item_Uom(p_item_id => p_inventory_item_id,
142: p_organization_id => p_inventory_org_id,
143: p_uom_code => p_uom_code))
144: THEN
145: FND_MESSAGE.Set_Name('AHL','AHL_MC_INVUOM_INVALID');
146: FND_MESSAGE.Set_Token('UOM_CODE',p_uom_code);
147: FND_MESSAGE.Set_Token('INV_ITEM',p_inv_segment);
148: FND_MSG_PUB.ADD;
149: --dbms_output.put_line('Invalid UOM code for the item');
142: p_organization_id => p_inventory_org_id,
143: p_uom_code => p_uom_code))
144: THEN
145: FND_MESSAGE.Set_Name('AHL','AHL_MC_INVUOM_INVALID');
146: FND_MESSAGE.Set_Token('UOM_CODE',p_uom_code);
147: FND_MESSAGE.Set_Token('INV_ITEM',p_inv_segment);
148: FND_MSG_PUB.ADD;
149: --dbms_output.put_line('Invalid UOM code for the item');
150: END IF;
143: p_uom_code => p_uom_code))
144: THEN
145: FND_MESSAGE.Set_Name('AHL','AHL_MC_INVUOM_INVALID');
146: FND_MESSAGE.Set_Token('UOM_CODE',p_uom_code);
147: FND_MESSAGE.Set_Token('INV_ITEM',p_inv_segment);
148: FND_MSG_PUB.ADD;
149: --dbms_output.put_line('Invalid UOM code for the item');
150: END IF;
151: ELSIF p_item_group_name IS NOT NULL THEN
151: ELSIF p_item_group_name IS NOT NULL THEN
152: OPEN validate_uom(p_uom_code);
153: FETCH validate_uom INTO l_uom_code;
154: IF validate_uom%NOTFOUND THEN
155: FND_MESSAGE.Set_Name('AHL','AHL_MC_IG_UOM_INVALID');
156: FND_MESSAGE.Set_Token('UOM_CODE',p_uom_code);
157: FND_MESSAGE.Set_Token('IG',p_item_group_name);
158: FND_MSG_PUB.ADD;
159: END IF;
152: OPEN validate_uom(p_uom_code);
153: FETCH validate_uom INTO l_uom_code;
154: IF validate_uom%NOTFOUND THEN
155: FND_MESSAGE.Set_Name('AHL','AHL_MC_IG_UOM_INVALID');
156: FND_MESSAGE.Set_Token('UOM_CODE',p_uom_code);
157: FND_MESSAGE.Set_Token('IG',p_item_group_name);
158: FND_MSG_PUB.ADD;
159: END IF;
160: END IF ;
153: FETCH validate_uom INTO l_uom_code;
154: IF validate_uom%NOTFOUND THEN
155: FND_MESSAGE.Set_Name('AHL','AHL_MC_IG_UOM_INVALID');
156: FND_MESSAGE.Set_Token('UOM_CODE',p_uom_code);
157: FND_MESSAGE.Set_Token('IG',p_item_group_name);
158: FND_MSG_PUB.ADD;
159: END IF;
160: END IF ;
161:
161:
162: -- Validate quantity.
163: IF (p_quantity IS NULL OR p_quantity = FND_API.G_MISS_NUM) THEN
164: IF (p_inv_segment IS NULL OR p_inv_segment = FND_API.G_MISS_CHAR) THEN
165: FND_MESSAGE.Set_Name('AHL','AHL_MC_IG_QTY_NULL');
166: FND_MESSAGE.Set_Token('IG',p_item_group_name);
167: FND_MSG_PUB.ADD;
168: ELSE
169: FND_MESSAGE.Set_Name('AHL','AHL_MC_QTY_NULL');
162: -- Validate quantity.
163: IF (p_quantity IS NULL OR p_quantity = FND_API.G_MISS_NUM) THEN
164: IF (p_inv_segment IS NULL OR p_inv_segment = FND_API.G_MISS_CHAR) THEN
165: FND_MESSAGE.Set_Name('AHL','AHL_MC_IG_QTY_NULL');
166: FND_MESSAGE.Set_Token('IG',p_item_group_name);
167: FND_MSG_PUB.ADD;
168: ELSE
169: FND_MESSAGE.Set_Name('AHL','AHL_MC_QTY_NULL');
170: FND_MESSAGE.Set_Token('INV_ITEM',p_inv_segment);
165: FND_MESSAGE.Set_Name('AHL','AHL_MC_IG_QTY_NULL');
166: FND_MESSAGE.Set_Token('IG',p_item_group_name);
167: FND_MSG_PUB.ADD;
168: ELSE
169: FND_MESSAGE.Set_Name('AHL','AHL_MC_QTY_NULL');
170: FND_MESSAGE.Set_Token('INV_ITEM',p_inv_segment);
171: FND_MSG_PUB.ADD;
172: END IF;
173: --dbms_output.put_line('Quantity is null');
166: FND_MESSAGE.Set_Token('IG',p_item_group_name);
167: FND_MSG_PUB.ADD;
168: ELSE
169: FND_MESSAGE.Set_Name('AHL','AHL_MC_QTY_NULL');
170: FND_MESSAGE.Set_Token('INV_ITEM',p_inv_segment);
171: FND_MSG_PUB.ADD;
172: END IF;
173: --dbms_output.put_line('Quantity is null');
174: ELSIF (p_quantity < 0) THEN
172: END IF;
173: --dbms_output.put_line('Quantity is null');
174: ELSIF (p_quantity < 0) THEN
175: IF (p_inv_segment IS NULL OR p_inv_segment = FND_API.G_MISS_CHAR) THEN
176: FND_MESSAGE.Set_Name('AHL','AHL_MC_IG_QTY_INVALID');
177: FND_MESSAGE.Set_Token('IG',p_item_group_name);
178: FND_MESSAGE.Set_Token('QUANTITY',p_quantity);
179: FND_MSG_PUB.ADD;
180: ELSE
173: --dbms_output.put_line('Quantity is null');
174: ELSIF (p_quantity < 0) THEN
175: IF (p_inv_segment IS NULL OR p_inv_segment = FND_API.G_MISS_CHAR) THEN
176: FND_MESSAGE.Set_Name('AHL','AHL_MC_IG_QTY_INVALID');
177: FND_MESSAGE.Set_Token('IG',p_item_group_name);
178: FND_MESSAGE.Set_Token('QUANTITY',p_quantity);
179: FND_MSG_PUB.ADD;
180: ELSE
181: FND_MESSAGE.Set_Name('AHL','AHL_MC_INVQTY_INVALID');
174: ELSIF (p_quantity < 0) THEN
175: IF (p_inv_segment IS NULL OR p_inv_segment = FND_API.G_MISS_CHAR) THEN
176: FND_MESSAGE.Set_Name('AHL','AHL_MC_IG_QTY_INVALID');
177: FND_MESSAGE.Set_Token('IG',p_item_group_name);
178: FND_MESSAGE.Set_Token('QUANTITY',p_quantity);
179: FND_MSG_PUB.ADD;
180: ELSE
181: FND_MESSAGE.Set_Name('AHL','AHL_MC_INVQTY_INVALID');
182: FND_MESSAGE.Set_Token('INV_ITEM',p_inv_segment);
177: FND_MESSAGE.Set_Token('IG',p_item_group_name);
178: FND_MESSAGE.Set_Token('QUANTITY',p_quantity);
179: FND_MSG_PUB.ADD;
180: ELSE
181: FND_MESSAGE.Set_Name('AHL','AHL_MC_INVQTY_INVALID');
182: FND_MESSAGE.Set_Token('INV_ITEM',p_inv_segment);
183: FND_MESSAGE.Set_Token('QUANTITY',p_quantity);
184: FND_MSG_PUB.ADD;
185: END IF;
178: FND_MESSAGE.Set_Token('QUANTITY',p_quantity);
179: FND_MSG_PUB.ADD;
180: ELSE
181: FND_MESSAGE.Set_Name('AHL','AHL_MC_INVQTY_INVALID');
182: FND_MESSAGE.Set_Token('INV_ITEM',p_inv_segment);
183: FND_MESSAGE.Set_Token('QUANTITY',p_quantity);
184: FND_MSG_PUB.ADD;
185: END IF;
186: --dbms_output.put_line('Invalid quantity');
179: FND_MSG_PUB.ADD;
180: ELSE
181: FND_MESSAGE.Set_Name('AHL','AHL_MC_INVQTY_INVALID');
182: FND_MESSAGE.Set_Token('INV_ITEM',p_inv_segment);
183: FND_MESSAGE.Set_Token('QUANTITY',p_quantity);
184: FND_MSG_PUB.ADD;
185: END IF;
186: --dbms_output.put_line('Invalid quantity');
187: END IF;
247: IF l_Detail_Rec_Type.operation_flag ='M' THEN
248:
249: --dbms_output.put_line(l_Detail_Rec_Type.item_composition_id ||'--'|| p_item_composition_id);
250: IF NVL(l_Detail_Rec_Type.item_composition_id,0) <> NVL(p_item_composition_id,0) THEN
251: FND_MESSAGE.Set_Name('AHL','AHL_MC_COMP_INVALID_HEADER');
252: FND_MSG_PUB.ADD;
253: END IF;
254:
255: OPEN get_item_comp_det(p_item_composition_id,l_Detail_Rec_Type.item_comp_detail_id);
254:
255: OPEN get_item_comp_det(p_item_composition_id,l_Detail_Rec_Type.item_comp_detail_id);
256: FETCH get_item_comp_det INTO l_dummy;
257: IF get_item_comp_det%NOTFOUND THEN
258: FND_MESSAGE.Set_Name('AHL','AHL_MC_COMP_DETAIL_NO_EXIST');
259: FND_MSG_PUB.ADD;
260: END IF;
261: CLOSE get_item_comp_det;
262:
269: OPEN validate_item_group(l_Detail_Rec_Type.item_group_name,
270: l_Detail_Rec_Type.item_group_id);
271: FETCH validate_item_group INTO l_dummy;
272: IF validate_item_group%NOTFOUND THEN
273: FND_MESSAGE.Set_Name('AHL','AHL_MC_COMP_IG_INVALID');
274: FND_MESSAGE.set_token('ITEM_GRP',l_Detail_Rec_Type.item_group_name);
275: FND_MSG_PUB.ADD;
276: END IF;
277: CLOSE validate_item_group;
270: l_Detail_Rec_Type.item_group_id);
271: FETCH validate_item_group INTO l_dummy;
272: IF validate_item_group%NOTFOUND THEN
273: FND_MESSAGE.Set_Name('AHL','AHL_MC_COMP_IG_INVALID');
274: FND_MESSAGE.set_token('ITEM_GRP',l_Detail_Rec_Type.item_group_name);
275: FND_MSG_PUB.ADD;
276: END IF;
277: CLOSE validate_item_group;
278:
280: OPEN item_group_exists(l_Detail_Rec_Type.item_group_id,
281: p_item_composition_id);
282: FETCH item_group_exists INTO l_dummy;
283: IF item_group_exists%FOUND THEN
284: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_IG_EXISTS');
285: FND_MESSAGE.set_token('ITEM_GRP',l_Detail_Rec_Type.item_group_name);
286: FND_MESSAGE.set_token('INV_ITEM',p_inv_item_name);
287:
288: FND_MSG_PUB.ADD;
281: p_item_composition_id);
282: FETCH item_group_exists INTO l_dummy;
283: IF item_group_exists%FOUND THEN
284: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_IG_EXISTS');
285: FND_MESSAGE.set_token('ITEM_GRP',l_Detail_Rec_Type.item_group_name);
286: FND_MESSAGE.set_token('INV_ITEM',p_inv_item_name);
287:
288: FND_MSG_PUB.ADD;
289: END IF;
282: FETCH item_group_exists INTO l_dummy;
283: IF item_group_exists%FOUND THEN
284: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_IG_EXISTS');
285: FND_MESSAGE.set_token('ITEM_GRP',l_Detail_Rec_Type.item_group_name);
286: FND_MESSAGE.set_token('INV_ITEM',p_inv_item_name);
287:
288: FND_MSG_PUB.ADD;
289: END IF;
290: CLOSE item_group_exists;
304: p_item_composition_id);
305: FETCH inv_item_exists INTO l_dummy;
306: IF inv_item_exists%FOUND THEN
307: IF l_Detail_Rec_Type.operation_flag ='C' THEN
308: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_INV_EXISTS');
309: FND_MESSAGE.set_token('INV_ITM',l_Detail_Rec_Type.inventory_item_name);
310: FND_MESSAGE.set_token('INV_ITEM',p_inv_item_name);
311: FND_MSG_PUB.ADD;
312: END IF;
305: FETCH inv_item_exists INTO l_dummy;
306: IF inv_item_exists%FOUND THEN
307: IF l_Detail_Rec_Type.operation_flag ='C' THEN
308: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_INV_EXISTS');
309: FND_MESSAGE.set_token('INV_ITM',l_Detail_Rec_Type.inventory_item_name);
310: FND_MESSAGE.set_token('INV_ITEM',p_inv_item_name);
311: FND_MSG_PUB.ADD;
312: END IF;
313: ELSE
306: IF inv_item_exists%FOUND THEN
307: IF l_Detail_Rec_Type.operation_flag ='C' THEN
308: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_INV_EXISTS');
309: FND_MESSAGE.set_token('INV_ITM',l_Detail_Rec_Type.inventory_item_name);
310: FND_MESSAGE.set_token('INV_ITEM',p_inv_item_name);
311: FND_MSG_PUB.ADD;
312: END IF;
313: ELSE
314: IF l_Detail_Rec_Type.operation_flag ='M' THEN
311: FND_MSG_PUB.ADD;
312: END IF;
313: ELSE
314: IF l_Detail_Rec_Type.operation_flag ='M' THEN
315: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_INV_NOEXISTS');
316: FND_MSG_PUB.ADD;
317: END IF;
318: END IF;
319: CLOSE inv_item_exists;
335: l_Detail_Rec_Type.operation_flag <>'D') OR
336: (l_Detail_Rec_Type.inventory_item_id IS NOT NULL AND
337: l_Detail_Rec_Type.item_group_name IS NOT NULL )
338: THEN
339: FND_MESSAGE.Set_Name('AHL','AHL_MC_COMP_ASSOS_NULL');
340: FND_MSG_PUB.ADD;
341: END IF;
342:
343: IF l_Detail_Rec_Type.item_composition_id <> p_item_composition_id THEN
340: FND_MSG_PUB.ADD;
341: END IF;
342:
343: IF l_Detail_Rec_Type.item_composition_id <> p_item_composition_id THEN
344: FND_MESSAGE.Set_Name('AHL','AHL_MC_COMP_HEADER_MISMATCH');
345: FND_MSG_PUB.ADD;
346: END IF;
347:
348: p_x_Detail_Rec_Type := l_Detail_Rec_Type;
442: OPEN item_composition_dup(p_x_ic_header_rec.INVENTORY_ITEM_ID,
443: p_x_ic_header_rec.INVENTORY_MASTER_ORG_ID);
444: FETCH item_composition_dup INTO l_dummy;
445: IF item_composition_dup%FOUND THEN
446: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_EXISTS');
447: FND_MESSAGE.Set_Token('INV_ITEM',p_x_ic_header_rec.inventory_item_name);
448: FND_MSG_PUB.ADD;
449: RAISE FND_API.G_EXC_ERROR;
450: END IF;
443: p_x_ic_header_rec.INVENTORY_MASTER_ORG_ID);
444: FETCH item_composition_dup INTO l_dummy;
445: IF item_composition_dup%FOUND THEN
446: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_EXISTS');
447: FND_MESSAGE.Set_Token('INV_ITEM',p_x_ic_header_rec.inventory_item_name);
448: FND_MSG_PUB.ADD;
449: RAISE FND_API.G_EXC_ERROR;
450: END IF;
451:
728: OPEN item_composition_det(p_x_ic_header_rec.item_composition_id
729: );
730: FETCH item_composition_det INTO l_item_composition_rec;
731: IF item_composition_det%NOTFOUND THEN
732: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_NOT_EXISTS');
733: FND_MSG_PUB.ADD;
734: RAISE FND_API.G_EXC_ERROR;
735: END IF;
736:
737: CLOSE item_composition_det;
738:
739:
740: IF l_item_composition_rec.object_version_number <> p_x_ic_header_rec.object_version_number THEN
741: FND_MESSAGE.Set_Name('AHL','AHL_COM_RECORD_CHANGED');
742: FND_MSG_PUB.ADD;
743: RAISE FND_API.G_EXC_ERROR;
744: END IF;
745:
744: END IF;
745:
746:
747: IF l_item_composition_rec.approval_status_code NOT IN ('DRAFT','APPROVAL_REJECTED') THEN
748: FND_MESSAGE.Set_Name('AHL','AHL_MC_COMP_STATUS_NO_EDIT');
749: FND_MSG_PUB.ADD;
750: RAISE FND_API.G_EXC_ERROR;
751: END IF;
752:
1013: OPEN item_composition_det(p_item_composition_id
1014: );
1015: FETCH item_composition_det INTO l_item_composition_rec;
1016: IF item_composition_det%NOTFOUND THEN
1017: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_NOT_EXISTS');
1018: FND_MSG_PUB.ADD;
1019: RAISE FND_API.G_EXC_ERROR;
1020: END IF;
1021:
1022: CLOSE item_composition_det;
1023:
1024:
1025: IF l_item_composition_rec.object_version_number <> p_object_version_number THEN
1026: FND_MESSAGE.Set_Name('AHL','AHL_COM_RECORD_CHANGED');
1027: FND_MSG_PUB.ADD;
1028: RAISE FND_API.G_EXC_ERROR;
1029: END IF;
1030:
1029: END IF;
1030:
1031:
1032: IF l_item_composition_rec.approval_status_code = 'APPROVAL_PENDING' THEN
1033: FND_MESSAGE.Set_Name('AHL','AHL_MC_COMP_STATUS_NO_DELETE');
1034: FND_MSG_PUB.ADD;
1035: RAISE FND_API.G_EXC_ERROR;
1036: END IF;
1037:
1048: OPEN disposition_exist(p_item_composition_id
1049: );
1050: FETCH disposition_exist INTO l_dummy;
1051: IF disposition_exist%FOUND THEN
1052: FND_MESSAGE.Set_Name('AHL','AHL_MC_COMP_DISP_EXISTS');
1053: FND_MSG_PUB.ADD;
1054: RAISE FND_API.G_EXC_ERROR;
1055: END IF;
1056:
1058:
1059: OPEN item_rev_exists(p_item_composition_id);
1060: FETCH item_rev_exists INTO l_rev_item_composition_id;
1061: IF item_rev_exists%FOUND THEN
1062: FND_MESSAGE.Set_Name('AHL','AHL_MC_COMP_REV_EXISTS');
1063: FND_MSG_PUB.ADD;
1064: RAISE FND_API.G_EXC_ERROR;
1065: END IF;
1066: CLOSE item_rev_exists;
1067:
1068:
1069: IF l_item_composition_rec.effective_end_date IS NOT NULL AND
1070: TRUNC(l_item_composition_rec.effective_end_date) <= TRUNC(SYSDATE) THEN
1071: FND_MESSAGE.Set_Name('AHL','AHL_MC_COMP_STATUS_NO_DELETE');
1072: FND_MSG_PUB.ADD;
1073: RAISE FND_API.G_EXC_ERROR;
1074: END IF;
1075:
1271:
1272: OPEN item_composition_det(p_item_composition_ID);
1273: FETCH item_composition_det INTO l_item_composition_rec;
1274: IF item_composition_det%NOTFOUND THEN
1275: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_NOT_EXISTS');
1276: FND_MSG_PUB.ADD;
1277: RAISE FND_API.G_EXC_ERROR;
1278: END IF;
1279:
1280: CLOSE item_composition_det;
1281:
1282:
1283: IF l_item_composition_rec.object_version_number <> p_object_version_number THEN
1284: FND_MESSAGE.Set_Name('AHL','AHL_COM_RECORD_CHANGED');
1285: FND_MSG_PUB.ADD;
1286: RAISE FND_API.G_EXC_ERROR;
1287: END IF;
1288:
1290: OPEN item_composition_exists(l_item_composition_rec.inventory_item_id,
1291: l_item_composition_rec.inventory_master_org_id);
1292: FETCH item_composition_exists INTO l_dummy;
1293: IF item_composition_exists%FOUND THEN
1294: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_EXISTS');
1295: FND_MESSAGE.Set_Token('INV_ITEM',p_x_ic_header_rec.inventory_item_id);
1296: FND_MSG_PUB.ADD;
1297: RAISE FND_API.G_EXC_ERROR;
1298: END IF;
1291: l_item_composition_rec.inventory_master_org_id);
1292: FETCH item_composition_exists INTO l_dummy;
1293: IF item_composition_exists%FOUND THEN
1294: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_EXISTS');
1295: FND_MESSAGE.Set_Token('INV_ITEM',p_x_ic_header_rec.inventory_item_id);
1296: FND_MSG_PUB.ADD;
1297: RAISE FND_API.G_EXC_ERROR;
1298: END IF;
1299:
1301: */
1302:
1303:
1304: IF NVL(l_item_composition_rec.effective_end_date,TRUNC(SYSDATE)) >= TRUNC(SYSDATE) THEN
1305: FND_MESSAGE.Set_Name('AHL','AHL_MC_ITEM_COMP_OPEN');
1306: FND_MSG_PUB.ADD;
1307: RAISE FND_API.G_EXC_ERROR;
1308: END IF;
1309:
1673:
1674:
1675: IF p_object_Version_number is null or p_object_Version_number=FND_API.G_MISS_NUM
1676: THEN
1677: FND_MESSAGE.SET_NAME('AHL','AHL_MC_OBJ_VERSION_NULL');
1678: FND_MSG_PUB.ADD;
1679: END IF;
1680:
1681: IF p_Item_Composition_id is null or p_Item_Composition_id = FND_API.G_MISS_NUM
1679: END IF;
1680:
1681: IF p_Item_Composition_id is null or p_Item_Composition_id = FND_API.G_MISS_NUM
1682: THEN
1683: FND_MESSAGE.SET_NAME('AHL','AHL_MC_OBJECT_ID_NULL');
1684: FND_MSG_PUB.ADD;
1685: ELSE
1686:
1687: OPEN get_Item_comp_Det(p_Item_Composition_id);
1694: from ahl_item_comp_details
1695: where item_composition_id = p_Item_Composition_id;
1696:
1697: IF l_count < 1 THEN
1698: FND_MESSAGE.SET_NAME('AHL','AHL_MC_IC_EMPTY');
1699: FND_MESSAGE.Set_Token('ITEM_COMP',l_item_comp_rec.concatenated_segments);
1700: FND_MSG_PUB.ADD;
1701: RAISE FND_API.G_EXC_ERROR;
1702: END IF;
1695: where item_composition_id = p_Item_Composition_id;
1696:
1697: IF l_count < 1 THEN
1698: FND_MESSAGE.SET_NAME('AHL','AHL_MC_IC_EMPTY');
1699: FND_MESSAGE.Set_Token('ITEM_COMP',l_item_comp_rec.concatenated_segments);
1700: FND_MSG_PUB.ADD;
1701: RAISE FND_API.G_EXC_ERROR;
1702: END IF;
1703:
1708: l_item_comp_rec.approval_status_code='APPROVAL_REJECTED'
1709: THEN
1710: l_upd_status := 'APPROVAL_PENDING';
1711: ELSE
1712: FND_MESSAGE.SET_NAME('AHL','AHL_MC_IC_STAT_NOT_DRFT');
1713: FND_MSG_PUB.ADD;
1714: END IF;
1715: ELSE
1716: FND_MESSAGE.SET_NAME('AHL','AHL_APPR_TYPE_CODE_MISSING');
1712: FND_MESSAGE.SET_NAME('AHL','AHL_MC_IC_STAT_NOT_DRFT');
1713: FND_MSG_PUB.ADD;
1714: END IF;
1715: ELSE
1716: FND_MESSAGE.SET_NAME('AHL','AHL_APPR_TYPE_CODE_MISSING');
1717: FND_MSG_PUB.ADD;
1718: END IF;
1719:
1720: END IF;
1742: and OBJECT_VERSION_NUMBER=p_object_Version_number;
1743:
1744: IF sql%rowcount=0
1745: THEN
1746: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
1747: FND_MSG_PUB.ADD;
1748: RAISE FND_API.G_EXC_ERROR;
1749: END IF;
1750:
1967:
1968: OPEN get_item_comp_det(p_Item_comp_id);
1969: Fetch get_item_comp_det into l_item_comp_det;
1970: IF get_item_comp_det%NOTFOUND THEN
1971: FND_MESSAGE.SET_NAME('AHL','AHL_MC_OBJECT_ID_NULL');
1972: FND_MSG_PUB.ADD;
1973: END IF;
1974: close get_item_comp_det;
1975:
1976:
1977: IF l_item_comp_det.approval_status_code <> 'COMPLETE'
1978: OR l_item_comp_det.effective_end_date IS NOT NULL
1979: THEN
1980: FND_MESSAGE.SET_NAME('AHL','AHL_MC_IC_STAT_NOT_COMP');
1981: FND_MSG_PUB.ADD;
1982: END IF;
1983:
1984:
1983:
1984:
1985: IF l_item_comp_det.object_version_number <> p_object_version_number
1986: THEN
1987: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
1988: FND_MSG_PUB.ADD;
1989: END IF;
1990:
1991:
1991:
1992: OPEN get_revision_info(p_Item_comp_id);
1993: FETCH get_revision_info INTO l_dummy;
1994: IF get_revision_info%FOUND THEN
1995: FND_MESSAGE.SET_NAME('AHL','AHL_MC_IC_REVISION_EXIST');
1996: FND_MSG_PUB.ADD;
1997: END IF;
1998: CLOSE get_revision_info;
1999:
2353: OPEN get_item_comp_det(p_Item_comp_id);
2354: FETCH get_item_comp_det INTO l_item_comp_det;
2355: IF get_item_comp_det%NOTFOUND
2356: THEN
2357: FND_MESSAGE.SET_NAME('AHL','AHL_MC_OBJECT_ID_NULL');
2358: FND_MSG_PUB.ADD;
2359: END IF;
2360: CLOSE get_item_comp_det;
2361:
2360: CLOSE get_item_comp_det;
2361:
2362: IF l_item_comp_det.object_version_number <> p_object_version_number
2363: THEN
2364: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
2365: FND_MSG_PUB.ADD;
2366: END IF;
2367:
2368: