59:
60: EXCEPTION
61:
62: WHEN NO_DATA_FOUND THEN
63: FND_MESSAGE.SET_NAME('INV','INV_LOTC_UPDATETYPE_INVALID');
64: FND_MSG_PUB.Add;
65: RETURN G_FALSE;
66:
67: WHEN OTHERS THEN
65: RETURN G_FALSE;
66:
67: WHEN OTHERS THEN
68: IF (SQLCODE IS NOT NULL) THEN
69: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
70: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
71: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
72: FND_MSG_PUB.Add;
73: END IF;
66:
67: WHEN OTHERS THEN
68: IF (SQLCODE IS NOT NULL) THEN
69: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
70: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
71: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
72: FND_MSG_PUB.Add;
73: END IF;
74: RETURN G_FALSE;
67: WHEN OTHERS THEN
68: IF (SQLCODE IS NOT NULL) THEN
69: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
70: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
71: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
72: FND_MSG_PUB.Add;
73: END IF;
74: RETURN G_FALSE;
75:
151: Compare From/To UOM. Cannot be the same.
152: ============================================*/
153:
154: IF (p_from_uom_code = p_to_uom_code) THEN
155: FND_MESSAGE.SET_NAME('INV','INV_LOTC_CROSS_UOM_ERROR');
156: FND_MSG_PUB.ADD;
157: RETURN G_FALSE;
158: END IF;
159:
165: OPEN get_uom_class (p_from_uom_code);
166: FETCH get_uom_class INTO l_from_class;
167: IF (get_uom_class%NOTFOUND) THEN
168: CLOSE get_uom_class;
169: FND_MESSAGE.SET_NAME('INV','INV_FROM_CLASS_ERR');
170: FND_MSG_PUB.ADD;
171: RETURN G_FALSE;
172: END IF;
173: CLOSE get_uom_class;
175: OPEN get_uom_class (p_to_uom_code);
176: FETCH get_uom_class INTO l_to_class;
177: IF (get_uom_class%NOTFOUND) THEN
178: CLOSE get_uom_class;
179: FND_MESSAGE.SET_NAME('INV','INV_TO_CLASS_ERR');
180: FND_MSG_PUB.ADD;
181: RETURN G_FALSE;
182: END IF;
183: CLOSE get_uom_class;
183: CLOSE get_uom_class;
184:
185:
186: IF (l_from_class = l_to_class) THEN
187: FND_MESSAGE.SET_NAME('INV','INV_CLASS_EQUAL_ERR');
188: FND_MSG_PUB.ADD;
189: RETURN G_FALSE;
190: END IF;
191:
193: Check if Item is serially controlled.
194: ========================================*/
195:
196: IF (INV_CACHE.item_rec.serial_number_control_code <> 1) THEN
197: FND_MESSAGE.SET_NAME('INV','INV_LOT_SERIAL_SUPPORT');
198: FND_MSG_PUB.ADD;
199: RETURN G_FALSE;
200: END IF;
201:
204: (1 no control 2 full)
205: ========================================*/
206:
207: IF (INV_CACHE.item_rec.lot_control_code <> 2) THEN
208: FND_MESSAGE.SET_NAME('INV','INV_NOTLOTCTL');
209: FND_MSG_PUB.ADD;
210: RETURN G_FALSE;
211: END IF;
212:
235: EXCEPTION
236:
237: WHEN OTHERS THEN
238: IF (SQLCODE IS NOT NULL) THEN
239: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
240: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
241: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
242: ELSE
243: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
236:
237: WHEN OTHERS THEN
238: IF (SQLCODE IS NOT NULL) THEN
239: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
240: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
241: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
242: ELSE
243: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
244: END IF;
237: WHEN OTHERS THEN
238: IF (SQLCODE IS NOT NULL) THEN
239: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
240: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
241: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
242: ELSE
243: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
244: END IF;
245: FND_MSG_PUB.ADD;
239: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
240: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
241: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
242: ELSE
243: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
244: END IF;
245: FND_MSG_PUB.ADD;
246: RETURN G_FALSE;
247:
1167: x_return_status := FND_API.G_RET_STS_ERROR;
1168:
1169: WHEN CONV_GET_ERR THEN
1170: ROLLBACK;
1171: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1172: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1173: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1174: FND_MSG_PUB.Add;
1175: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1168:
1169: WHEN CONV_GET_ERR THEN
1170: ROLLBACK;
1171: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1172: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1173: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1174: FND_MSG_PUB.Add;
1175: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1176:
1169: WHEN CONV_GET_ERR THEN
1170: ROLLBACK;
1171: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1172: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1173: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1174: FND_MSG_PUB.Add;
1175: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1176:
1177:
1176:
1177:
1178: WHEN INSERT_ERROR THEN
1179: ROLLBACK;
1180: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1181: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1182: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1183: FND_MSG_PUB.Add;
1184: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1177:
1178: WHEN INSERT_ERROR THEN
1179: ROLLBACK;
1180: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1181: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1182: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1183: FND_MSG_PUB.Add;
1184: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1185:
1178: WHEN INSERT_ERROR THEN
1179: ROLLBACK;
1180: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1181: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1182: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1183: FND_MSG_PUB.Add;
1184: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1185:
1186:
1185:
1186:
1187: WHEN OPEN_PERIOD_ERROR THEN
1188: ROLLBACK;
1189: FND_MESSAGE.SET_NAME('INV','INV_NO_OPEN_PERIOD');
1190: FND_MSG_PUB.Add;
1191: x_return_status := FND_API.G_RET_STS_ERROR;
1192:
1193: -- Bug 5533886
1192:
1193: -- Bug 5533886
1194: -- Added next 3 exceptions.
1195: WHEN UM_CONVERT_ERROR THEN
1196: FND_MESSAGE.SET_NAME('INV','INV_NO_CONVERSION_ERR');
1197: fnd_msg_pub.ADD;
1198: x_return_status := FND_API.G_RET_STS_ERROR;
1199:
1200: WHEN BATCH_UPDATE_ERROR THEN
1205:
1206: WHEN OTHERS THEN
1207:
1208: IF (SQLCODE IS NOT NULL) THEN
1209: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1210: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1211: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1212: ELSE
1213: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1206: WHEN OTHERS THEN
1207:
1208: IF (SQLCODE IS NOT NULL) THEN
1209: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1210: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1211: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1212: ELSE
1213: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1214: END IF;
1207:
1208: IF (SQLCODE IS NOT NULL) THEN
1209: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1210: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1211: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1212: ELSE
1213: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1214: END IF;
1215: FND_MSG_PUB.Add;
1209: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1210: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1211: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1212: ELSE
1213: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1214: END IF;
1215: FND_MSG_PUB.Add;
1216: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1217:
1216: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1217:
1218: ROLLBACK;
1219: IF (SQLCODE IS NOT NULL) THEN
1220: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1221: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1222: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1223: ELSE
1224: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1217:
1218: ROLLBACK;
1219: IF (SQLCODE IS NOT NULL) THEN
1220: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1221: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1222: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1223: ELSE
1224: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1225: END IF;
1218: ROLLBACK;
1219: IF (SQLCODE IS NOT NULL) THEN
1220: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1221: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1222: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1223: ELSE
1224: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1225: END IF;
1226: FND_MSG_PUB.Add;
1220: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1221: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1222: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1223: ELSE
1224: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1225: END IF;
1226: FND_MSG_PUB.Add;
1227: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1228:
1414:
1415: EXCEPTION
1416:
1417: WHEN NO_CONVERSIONS_FOUND THEN
1418: FND_MESSAGE.SET_NAME('INV','INV_LOTC_NO_CONV_FOUND');
1419: FND_MSG_PUB.Add;
1420: x_return_status := FND_API.G_RET_STS_ERROR;
1421:
1422: WHEN CONVERSION_INSERT_ERROR THEN
1420: x_return_status := FND_API.G_RET_STS_ERROR;
1421:
1422: WHEN CONVERSION_INSERT_ERROR THEN
1423: ROLLBACK TO COPY_CONVERSION;
1424: FND_MESSAGE.SET_NAME('INV','INV_LOTC_CONV_INSERT_ERROR');
1425: FND_MSG_PUB.Add;
1426: IF (SQLCODE IS NOT NULL) THEN
1427: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1428: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1423: ROLLBACK TO COPY_CONVERSION;
1424: FND_MESSAGE.SET_NAME('INV','INV_LOTC_CONV_INSERT_ERROR');
1425: FND_MSG_PUB.Add;
1426: IF (SQLCODE IS NOT NULL) THEN
1427: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1428: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1429: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1430: FND_MSG_PUB.Add;
1431: END IF;
1424: FND_MESSAGE.SET_NAME('INV','INV_LOTC_CONV_INSERT_ERROR');
1425: FND_MSG_PUB.Add;
1426: IF (SQLCODE IS NOT NULL) THEN
1427: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1428: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1429: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1430: FND_MSG_PUB.Add;
1431: END IF;
1432: x_return_status := FND_API.G_RET_STS_ERROR;
1425: FND_MSG_PUB.Add;
1426: IF (SQLCODE IS NOT NULL) THEN
1427: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1428: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1429: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1430: FND_MSG_PUB.Add;
1431: END IF;
1432: x_return_status := FND_API.G_RET_STS_ERROR;
1433:
1433:
1434: WHEN OTHERS THEN
1435: ROLLBACK TO COPY_CONVERSION;
1436: IF (SQLCODE IS NOT NULL) THEN
1437: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1438: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1439: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1440: ELSE
1441: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1434: WHEN OTHERS THEN
1435: ROLLBACK TO COPY_CONVERSION;
1436: IF (SQLCODE IS NOT NULL) THEN
1437: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1438: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1439: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1440: ELSE
1441: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1442: END IF;
1435: ROLLBACK TO COPY_CONVERSION;
1436: IF (SQLCODE IS NOT NULL) THEN
1437: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1438: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1439: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1440: ELSE
1441: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1442: END IF;
1443: FND_MSG_PUB.Add;
1437: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1438: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1439: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1440: ELSE
1441: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1442: END IF;
1443: FND_MSG_PUB.Add;
1444: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1445:
1578:
1579: EXCEPTION
1580:
1581: WHEN EXISTING_RESERVATIONS THEN
1582: FND_MESSAGE.SET_NAME('INV','INV_LOT_RESERVATIONS_EXIST');
1583: FND_MSG_PUB.Add;
1584: RETURN G_FALSE;
1585:
1586: