72: l_index NUMBER;
73: l_ordered_date DATE;
74: -- Process Order arguments
75:
76: -- l_control_rec OE_GLOBALS.control_rec_type;
77: l_line_tbl OE_ORDER_PUB.line_tbl_type;
78: l_old_line_tbl OE_ORDER_PUB.line_tbl_type;
79: /*
80: l_header_rec OE_Order_PUB.Header_Rec_Type;
113: IF l_debug_level > 0 THEN
114: oe_debug_pub.add( 'INV IFACE: ENTERING INVENTORY INTERFACE' , 1 ) ;
115: END IF;
116: x_return_status := FND_API.G_RET_STS_SUCCESS;
117: x_result_out := OE_GLOBALS.G_WFR_COMPLETE;
118:
119: profile_values.oe_source_code := FND_PROFILE.VALUE('ONT_SOURCE_CODE');
120: profile_values.user_id := FND_GLOBAL.USER_ID;
121: profile_values.login_id := FND_GLOBAL.LOGIN_ID;
130:
131: /* check for holds */
132: OE_HOLDS_PUB.CHECK_HOLDS(p_api_version => 1.0,
133: p_line_id => p_line_id,
134: p_wf_item => OE_GLOBALS.G_WFI_LIN,
135: p_wf_activity => 'INVENTORY_INTERFACE',
136: x_result_out => l_hold_result_out,
137: x_return_status => l_hold_return_status,
138: x_msg_count => l_hold_msg_count,
145:
146: FND_MESSAGE.SET_NAME('ONT','OE_INVOICING_HOLD');
147: OE_MSG_PUB.ADD;
148: x_return_status := FND_API.G_RET_STS_ERROR;
149: x_result_out := OE_GLOBALS.G_WFR_ON_HOLD;
150: IF l_debug_level > 0 THEN
151: oe_debug_pub.add( 'INV IFACE: ACTIVITY ON HOLD , EXITING' , 5 ) ;
152: END IF;
153: RETURN;
169: IF l_debug_level > 0 THEN
170: oe_debug_pub.add( 'INV IFACE: LOCK_ROW FAILED' , 5 ) ;
171: END IF;
172: x_return_status := FND_API.G_RET_STS_ERROR;
173: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
174: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
175: IF l_debug_level > 0 THEN
176: oe_debug_pub.add( 'INV IFACE: LOCK_ROW FAILED' , 5 ) ;
177: END IF;
175: IF l_debug_level > 0 THEN
176: oe_debug_pub.add( 'INV IFACE: LOCK_ROW FAILED' , 5 ) ;
177: END IF;
178: x_return_status := FND_API.G_RET_STS_ERROR;
179: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
180: END IF;
181:
182: OE_MSG_PUB.update_msg_context(
183: p_header_id => l_line_rec.header_id
201: WHERE inventory_item_id = l_line_rec.inventory_item_id
202: AND organization_id = l_line_rec.ship_from_org_id;
203:
204: IF l_line_rec.shippable_flag = 'Y' THEN
205: IF nvl(l_line_rec.source_type_code, OE_GLOBALS.G_SOURCE_EXTERNAL)
206: = OE_GLOBALS.G_SOURCE_EXTERNAL OR
207: l_transactable_flag <> 'Y' THEN
208: x_return_status := FND_API.G_RET_STS_SUCCESS;
209: x_result_out := OE_GLOBALS.G_WFR_NOT_ELIGIBLE;
202: AND organization_id = l_line_rec.ship_from_org_id;
203:
204: IF l_line_rec.shippable_flag = 'Y' THEN
205: IF nvl(l_line_rec.source_type_code, OE_GLOBALS.G_SOURCE_EXTERNAL)
206: = OE_GLOBALS.G_SOURCE_EXTERNAL OR
207: l_transactable_flag <> 'Y' THEN
208: x_return_status := FND_API.G_RET_STS_SUCCESS;
209: x_result_out := OE_GLOBALS.G_WFR_NOT_ELIGIBLE;
210: IF l_debug_level > 0 THEN
205: IF nvl(l_line_rec.source_type_code, OE_GLOBALS.G_SOURCE_EXTERNAL)
206: = OE_GLOBALS.G_SOURCE_EXTERNAL OR
207: l_transactable_flag <> 'Y' THEN
208: x_return_status := FND_API.G_RET_STS_SUCCESS;
209: x_result_out := OE_GLOBALS.G_WFR_NOT_ELIGIBLE;
210: IF l_debug_level > 0 THEN
211: oe_debug_pub.add( 'INV IFACE: INV IFACE NOT ELIGIBLE - EXTERNAL OR NON TRANSACTABLE' , 5 ) ;
212: END IF;
213: RETURN;
219: END IF;
220: FND_MESSAGE.SET_NAME('ONT', 'OE_INV_NO_WAREHOUSE');
221: OE_MSG_PUB.ADD;
222: x_return_status := FND_API.G_RET_STS_ERROR;
223: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
224: RETURN;
225: END IF;
226:
227: /* get order info */
280: IF l_debug_level > 0 THEN
281: oe_debug_pub.add( 'INV IFACE: COGS FAIL' , 5 ) ;
282: END IF;
283: x_return_status := FND_API.G_RET_STS_ERROR;
284: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
285: RETURN;
286: END IF;
287:
288: -- End Deferred Revenue Project
300: IF l_debug_level > 0 THEN
301: oe_debug_pub.add( 'INV IFACE: REVISION/LOT SELECT FAILURE' , 5 ) ;
302: END IF;
303: x_return_status := FND_API.G_RET_STS_ERROR;
304: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
305: RETURN;
306: END;
307:
308: -- we dont support serial numbers
313: -- give a message here
314: FND_MESSAGE.SET_NAME('ONT', 'OE_INV_IFACE_SERIAL');
315: OE_MSG_PUB.ADD;
316: x_return_status := FND_API.G_RET_STS_ERROR;
317: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
318: RETURN;
319: END IF;
320:
321: IF l_revision_code = 2 THEN
416: IF l_debug_level > 0 THEN
417: oe_debug_pub.add( 'INV IFACE FAILED: ORDERED_QTY IS < RESERVED_QTY FOR OPM' , 5 ) ;
418: END IF;
419: x_return_status := FND_API.G_RET_STS_ERROR;
420: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
421: ROLLBACK TO INVENTORY_INTERFACE;
422: RETURN;
423: END IF;
424: -- HW OPM BUG#:2536589 end of changes */
477: -- give a message
478: FND_MESSAGE.SET_NAME('ONT', 'OE_INV_IFACE_REVISION');
479: OE_MSG_PUB.ADD;
480: x_return_status := FND_API.G_RET_STS_ERROR;
481: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
482: ROLLBACK TO INVENTORY_INTERFACE;
483: RETURN;
484: END IF;
485: END IF;
493: -- give a message
494: FND_MESSAGE.SET_NAME('ONT', 'OE_INV_IFACE_LOT');
495: OE_MSG_PUB.ADD;
496: x_return_status := FND_API.G_RET_STS_ERROR;
497: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
498: ROLLBACK TO INVENTORY_INTERFACE;
499: RETURN;
500: END IF; -- INVCONV
501: END IF; -- of l_lot == 'Y'
516: IF l_debug_level > 0 THEN
517: oe_debug_pub.add( 'INV IFACE: FAILED TO FETCH LOT_ID INFORMATION FOR OPM TRXN FOR TRANS_ID' || TO_CHAR ( L_RSV_TBL ( I ) .RESERVATION_ID ) , 5 ) ;
518: END IF;
519: x_return_status := FND_API.G_RET_STS_ERROR;
520: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
521: ROLLBACK TO INVENTORY_INTERFACE;
522: RETURN;
523: END IF; -- of error checking
524: END IF; -- of branching */ --INVCONV
543: IF l_debug_level > 0 THEN
544: oe_debug_pub.add( 'INV IFACE: FAILED TO UPDATE OPM TRXNS' , 5 ) ;
545: END IF;
546: x_return_status := FND_API.G_RET_STS_ERROR;
547: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
548: ROLLBACK TO INVENTORY_INTERFACE;
549: RETURN;
550: END IF;
551:
560: -- give a message
561: FND_MESSAGE.SET_NAME('ONT', 'OE_INV_IFACE_RSV_SUB');
562: OE_MSG_PUB.ADD;
563: x_return_status := FND_API.G_RET_STS_ERROR;
564: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
565: ROLLBACK TO INVENTORY_INTERFACE;
566: RETURN;
567: ELSE
568: BEGIN
577: IF l_debug_level > 0 THEN
578: oe_debug_pub.add( 'INV IFACE: LOCATOR CONTROL CODE FAILURE' , 5 ) ;
579: END IF;
580: x_return_status := FND_API.G_RET_STS_ERROR;
581: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
582: ROLLBACK TO INVENTORY_INTERFACE;
583: RETURN;
584: END;
585:
595: IF l_debug_level > 0 THEN
596: oe_debug_pub.add( 'INV IFACE: LOCATOR TYPE FAILURE' , 5 ) ;
597: END IF;
598: x_return_status := FND_API.G_RET_STS_ERROR;
599: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
600: ROLLBACK TO INVENTORY_INTERFACE;
601: RETURN;
602: END;
603:
612: IF l_debug_level > 0 THEN
613: oe_debug_pub.add( 'INV IFACE: LOCATION CONTROL CODE FAILURE' , 5 ) ;
614: END IF;
615: x_return_status := FND_API.G_RET_STS_ERROR;
616: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
617: ROLLBACK TO INVENTORY_INTERFACE;
618: RETURN;
619: END;
620:
638: END IF;
639: FND_MESSAGE.SET_NAME('ONT', 'OE_INV_IFACE_LOCATOR');
640: OE_MSG_PUB.ADD;
641: x_return_status := FND_API.G_RET_STS_ERROR;
642: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
643: ROLLBACK TO INVENTORY_INTERFACE;
644: RETURN;
645: END IF;
646: END IF;
1020: -- message should say if item is under revision/lot/locator control, use the
1021: -- reservation form to reserve first
1022: OE_MSG_PUB.ADD;
1023: x_return_status := FND_API.G_RET_STS_ERROR;
1024: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
1025: ROLLBACK TO INVENTORY_INTERFACE;
1026: RETURN;
1027: END IF;
1028:
1038: IF l_debug_level > 0 THEN
1039: oe_debug_pub.add( 'INV IFACE: LOCATOR CONTROL CODE SELECT FAILURE' , 5 ) ;
1040: END IF;
1041: x_return_status := FND_API.G_RET_STS_ERROR;
1042: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
1043: ROLLBACK TO INVENTORY_INTERFACE;
1044: RETURN;
1045: END;
1046:
1056: IF l_debug_level > 0 THEN
1057: oe_debug_pub.add( 'INV IFACE: LOCATOR TYPE SELECT FAILURE' , 5 ) ;
1058: END IF;
1059: x_return_status := FND_API.G_RET_STS_ERROR;
1060: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
1061: ROLLBACK TO INVENTORY_INTERFACE;
1062: RETURN;
1063: END;
1064:
1075: IF l_debug_level > 0 THEN
1076: oe_debug_pub.add( 'INV IFACE: LOCATION CONTROL CODE FAILURE' , 5 ) ;
1077: END IF;
1078: x_return_status := FND_API.G_RET_STS_ERROR;
1079: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
1080: ROLLBACK TO INVENTORY_INTERFACE;
1081: RETURN;
1082: END;
1083:
1113: FND_MESSAGE.SET_NAME('ONT', 'OE_INV_IFACE_NO_RSV');
1114: OE_MSG_PUB.ADD;
1115: END IF;
1116: x_return_status := FND_API.G_RET_STS_ERROR;
1117: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
1118: ROLLBACK TO INVENTORY_INTERFACE;
1119: RETURN;
1120:
1121: END IF;
1125: IF l_debug_level > 0 THEN
1126: oe_debug_pub.add( 'INV IFACE: NO DEFAULT TRXN EXISTS FOR NON-LOT , NON-INV OPM ITEM' , 5 ) ;
1127: END IF;
1128: x_return_status := FND_API.G_RET_STS_ERROR;
1129: x_result_out := OE_GLOBALS.G_WFR_INCOMPLETE;
1130: ROLLBACK TO INVENTORY_INTERFACE;
1131: RETURN;
1132: END IF; */
1133:
1454: l_line_rec.ato_line_id IS NULL) THEN
1455: IF l_debug_level > 0 THEN
1456: oe_debug_pub.add( 'INV IFACE: IT IS A PTO LINE WITHOUT EXPLOSION DATE' , 3 ) ;
1457: END IF;
1458: IF l_line_rec.item_type_code = OE_GLOBALS.G_ITEM_MODEL OR
1459: l_line_rec.item_type_code = OE_GLOBALS.G_ITEM_CLASS OR
1460: l_line_rec.item_type_code = OE_GLOBALS.G_ITEM_KIT THEN
1461: IF l_debug_level > 0 THEN
1462: oe_debug_pub.add( 'INV IFACE: IT IS ITEM TYPE : '|| L_LINE_REC.ITEM_TYPE_CODE , 3 ) ;
1455: IF l_debug_level > 0 THEN
1456: oe_debug_pub.add( 'INV IFACE: IT IS A PTO LINE WITHOUT EXPLOSION DATE' , 3 ) ;
1457: END IF;
1458: IF l_line_rec.item_type_code = OE_GLOBALS.G_ITEM_MODEL OR
1459: l_line_rec.item_type_code = OE_GLOBALS.G_ITEM_CLASS OR
1460: l_line_rec.item_type_code = OE_GLOBALS.G_ITEM_KIT THEN
1461: IF l_debug_level > 0 THEN
1462: oe_debug_pub.add( 'INV IFACE: IT IS ITEM TYPE : '|| L_LINE_REC.ITEM_TYPE_CODE , 3 ) ;
1463: END IF;
1456: oe_debug_pub.add( 'INV IFACE: IT IS A PTO LINE WITHOUT EXPLOSION DATE' , 3 ) ;
1457: END IF;
1458: IF l_line_rec.item_type_code = OE_GLOBALS.G_ITEM_MODEL OR
1459: l_line_rec.item_type_code = OE_GLOBALS.G_ITEM_CLASS OR
1460: l_line_rec.item_type_code = OE_GLOBALS.G_ITEM_KIT THEN
1461: IF l_debug_level > 0 THEN
1462: oe_debug_pub.add( 'INV IFACE: IT IS ITEM TYPE : '|| L_LINE_REC.ITEM_TYPE_CODE , 3 ) ;
1463: END IF;
1464: -- Do the explosion