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:
1149: x_return_status := FND_API.G_RET_STS_ERROR;
1150:
1151: WHEN CONV_GET_ERR THEN
1152: ROLLBACK;
1153: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1154: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1155: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1156: FND_MSG_PUB.Add;
1157: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1150:
1151: WHEN CONV_GET_ERR THEN
1152: ROLLBACK;
1153: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1154: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1155: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1156: FND_MSG_PUB.Add;
1157: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1158:
1151: WHEN CONV_GET_ERR THEN
1152: ROLLBACK;
1153: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1154: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1155: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1156: FND_MSG_PUB.Add;
1157: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1158:
1159:
1158:
1159:
1160: WHEN INSERT_ERROR THEN
1161: ROLLBACK;
1162: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1163: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1164: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1165: FND_MSG_PUB.Add;
1166: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1159:
1160: WHEN INSERT_ERROR THEN
1161: ROLLBACK;
1162: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1163: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1164: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1165: FND_MSG_PUB.Add;
1166: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1167:
1160: WHEN INSERT_ERROR THEN
1161: ROLLBACK;
1162: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1163: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1164: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1165: FND_MSG_PUB.Add;
1166: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1167:
1168:
1167:
1168:
1169: WHEN OPEN_PERIOD_ERROR THEN
1170: ROLLBACK;
1171: FND_MESSAGE.SET_NAME('INV','INV_NO_OPEN_PERIOD');
1172: FND_MSG_PUB.Add;
1173: x_return_status := FND_API.G_RET_STS_ERROR;
1174:
1175: -- Bug 5533886
1174:
1175: -- Bug 5533886
1176: -- Added next 3 exceptions.
1177: WHEN UM_CONVERT_ERROR THEN
1178: FND_MESSAGE.SET_NAME('INV','INV_NO_CONVERSION_ERR');
1179: fnd_msg_pub.ADD;
1180: x_return_status := FND_API.G_RET_STS_ERROR;
1181:
1182: WHEN BATCH_UPDATE_ERROR THEN
1187:
1188: WHEN OTHERS THEN
1189:
1190: IF (SQLCODE IS NOT NULL) THEN
1191: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1192: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1193: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1194: ELSE
1195: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1188: WHEN OTHERS THEN
1189:
1190: IF (SQLCODE IS NOT NULL) THEN
1191: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1192: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1193: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1194: ELSE
1195: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1196: END IF;
1189:
1190: IF (SQLCODE IS NOT NULL) THEN
1191: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1192: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1193: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1194: ELSE
1195: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1196: END IF;
1197: FND_MSG_PUB.Add;
1191: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1192: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1193: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1194: ELSE
1195: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1196: END IF;
1197: FND_MSG_PUB.Add;
1198: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1199:
1198: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1199:
1200: ROLLBACK;
1201: IF (SQLCODE IS NOT NULL) THEN
1202: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1203: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1204: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1205: ELSE
1206: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1199:
1200: ROLLBACK;
1201: IF (SQLCODE IS NOT NULL) THEN
1202: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1203: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1204: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1205: ELSE
1206: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1207: END IF;
1200: ROLLBACK;
1201: IF (SQLCODE IS NOT NULL) THEN
1202: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1203: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1204: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1205: ELSE
1206: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1207: END IF;
1208: FND_MSG_PUB.Add;
1202: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1203: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1204: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1205: ELSE
1206: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1207: END IF;
1208: FND_MSG_PUB.Add;
1209: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1210:
1396:
1397: EXCEPTION
1398:
1399: WHEN NO_CONVERSIONS_FOUND THEN
1400: FND_MESSAGE.SET_NAME('INV','INV_LOTC_NO_CONV_FOUND');
1401: FND_MSG_PUB.Add;
1402: x_return_status := FND_API.G_RET_STS_ERROR;
1403:
1404: WHEN CONVERSION_INSERT_ERROR THEN
1402: x_return_status := FND_API.G_RET_STS_ERROR;
1403:
1404: WHEN CONVERSION_INSERT_ERROR THEN
1405: ROLLBACK TO COPY_CONVERSION;
1406: FND_MESSAGE.SET_NAME('INV','INV_LOTC_CONV_INSERT_ERROR');
1407: FND_MSG_PUB.Add;
1408: IF (SQLCODE IS NOT NULL) THEN
1409: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1410: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1405: ROLLBACK TO COPY_CONVERSION;
1406: FND_MESSAGE.SET_NAME('INV','INV_LOTC_CONV_INSERT_ERROR');
1407: FND_MSG_PUB.Add;
1408: IF (SQLCODE IS NOT NULL) THEN
1409: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1410: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1411: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1412: FND_MSG_PUB.Add;
1413: END IF;
1406: FND_MESSAGE.SET_NAME('INV','INV_LOTC_CONV_INSERT_ERROR');
1407: FND_MSG_PUB.Add;
1408: IF (SQLCODE IS NOT NULL) THEN
1409: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1410: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1411: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1412: FND_MSG_PUB.Add;
1413: END IF;
1414: x_return_status := FND_API.G_RET_STS_ERROR;
1407: FND_MSG_PUB.Add;
1408: IF (SQLCODE IS NOT NULL) THEN
1409: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1410: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1411: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1412: FND_MSG_PUB.Add;
1413: END IF;
1414: x_return_status := FND_API.G_RET_STS_ERROR;
1415:
1415:
1416: WHEN OTHERS THEN
1417: ROLLBACK TO COPY_CONVERSION;
1418: IF (SQLCODE IS NOT NULL) THEN
1419: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1420: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1421: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1422: ELSE
1423: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1416: WHEN OTHERS THEN
1417: ROLLBACK TO COPY_CONVERSION;
1418: IF (SQLCODE IS NOT NULL) THEN
1419: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1420: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1421: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1422: ELSE
1423: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1424: END IF;
1417: ROLLBACK TO COPY_CONVERSION;
1418: IF (SQLCODE IS NOT NULL) THEN
1419: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1420: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1421: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1422: ELSE
1423: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1424: END IF;
1425: FND_MSG_PUB.Add;
1419: FND_MESSAGE.SET_NAME('INV','INV_LOTC_SQL_ERROR');
1420: FND_MESSAGE.SET_TOKEN('ERRCODE',SQLCODE);
1421: FND_MESSAGE.SET_TOKEN('ERRM',SQLERRM(SQLCODE));
1422: ELSE
1423: FND_MESSAGE.SET_NAME('INV','INV_BUSRULES_GENERIC_ERR');
1424: END IF;
1425: FND_MSG_PUB.Add;
1426: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1427:
1560:
1561: EXCEPTION
1562:
1563: WHEN EXISTING_RESERVATIONS THEN
1564: FND_MESSAGE.SET_NAME('INV','INV_LOT_RESERVATIONS_EXIST');
1565: FND_MSG_PUB.Add;
1566: RETURN G_FALSE;
1567:
1568: