38: AND released_status = 'S';
39:
40: l_debug NUMBER := NVL(fnd_profile.VALUE('INV_DEBUG_TRACE'), 0);
41: BEGIN
42: x_return_status := fnd_api.g_ret_sts_success;
43: l_qty_to_backorder := NVL(p_mo_line_rec.quantity, 0) - NVL(p_mo_line_rec.quantity_delivered, 0);
44: DEBUG('l_qty_to_backorder' || l_qty_to_backorder, 'BACKORDER_SOURCE');
45:
46: /*Bug#5505709. Added the below If statement to set 'l_qty_to_backorder' to 0
48: IF (l_qty_to_backorder < 0 ) THEN
49: l_qty_to_backorder := 0;
50: END IF;
51: -- INVCONV BEGIN
52: IF p_mo_line_rec.secondary_uom is not null and p_mo_line_rec.secondary_uom <> FND_API.G_MISS_CHAR THEN
53: l_second_qty_to_backorder :=
54: NVL(p_mo_line_rec.secondary_quantity, 0) - NVL(p_mo_line_rec.secondary_quantity_delivered, 0);
55: DEBUG('l_second_qty_to_backorder' || l_second_qty_to_backorder, 'BACKORDER_SOURCE');
56: END IF;
62: FETCH c_wsh_info INTO l_delivery_detail_id, l_source_header_id, l_source_line_id, l_released_status;
63: IF c_wsh_info%NOTFOUND THEN
64: CLOSE c_wsh_info;
65: DEBUG('NOTFOUND c_wsh_info' , 'BACKORDER_SOURCE');
66: RAISE fnd_api.g_exc_error;
67: END IF;
68: CLOSE c_wsh_info;
69:
70: DEBUG('finished fetching' , 'BACKORDER_SOURCE');
103: IF (l_debug = 1) THEN
104: DEBUG('Updated Shipping Attributes - Return Status = ' || x_return_status, 'BACKORDER_SOURCE');
105: END IF;
106:
107: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
108: RAISE fnd_api.g_exc_error;
109: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
110: RAISE fnd_api.g_exc_unexpected_error;
111: END IF;
104: DEBUG('Updated Shipping Attributes - Return Status = ' || x_return_status, 'BACKORDER_SOURCE');
105: END IF;
106:
107: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
108: RAISE fnd_api.g_exc_error;
109: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
110: RAISE fnd_api.g_exc_unexpected_error;
111: END IF;
112:
105: END IF;
106:
107: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
108: RAISE fnd_api.g_exc_error;
109: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
110: RAISE fnd_api.g_exc_unexpected_error;
111: END IF;
112:
113: ELSIF p_move_order_type = inv_globals.g_move_order_mfg_pick THEN
106:
107: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
108: RAISE fnd_api.g_exc_error;
109: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
110: RAISE fnd_api.g_exc_unexpected_error;
111: END IF;
112:
113: ELSIF p_move_order_type = inv_globals.g_move_order_mfg_pick THEN
114: IF l_debug = 1 THEN
131: IF (l_debug = 1) THEN
132: DEBUG('Unallocated WIP Material - Return Status = ' || x_return_status, 'BACKORDER_SOURCE');
133: END IF;
134:
135: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
136: RAISE fnd_api.g_exc_error;
137: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
138: RAISE fnd_api.g_exc_unexpected_error;
139: END IF;
132: DEBUG('Unallocated WIP Material - Return Status = ' || x_return_status, 'BACKORDER_SOURCE');
133: END IF;
134:
135: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
136: RAISE fnd_api.g_exc_error;
137: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
138: RAISE fnd_api.g_exc_unexpected_error;
139: END IF;
140: END IF;
133: END IF;
134:
135: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
136: RAISE fnd_api.g_exc_error;
137: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
138: RAISE fnd_api.g_exc_unexpected_error;
139: END IF;
140: END IF;
141: EXCEPTION
134:
135: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
136: RAISE fnd_api.g_exc_error;
137: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
138: RAISE fnd_api.g_exc_unexpected_error;
139: END IF;
140: END IF;
141: EXCEPTION
142: WHEN fnd_api.g_exc_error THEN
138: RAISE fnd_api.g_exc_unexpected_error;
139: END IF;
140: END IF;
141: EXCEPTION
142: WHEN fnd_api.g_exc_error THEN
143: x_return_status := fnd_api.g_ret_sts_error;
144: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
145: WHEN fnd_api.g_exc_unexpected_error THEN
146: x_return_status := fnd_api.g_ret_sts_unexp_error;
139: END IF;
140: END IF;
141: EXCEPTION
142: WHEN fnd_api.g_exc_error THEN
143: x_return_status := fnd_api.g_ret_sts_error;
144: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
145: WHEN fnd_api.g_exc_unexpected_error THEN
146: x_return_status := fnd_api.g_ret_sts_unexp_error;
147: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
141: EXCEPTION
142: WHEN fnd_api.g_exc_error THEN
143: x_return_status := fnd_api.g_ret_sts_error;
144: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
145: WHEN fnd_api.g_exc_unexpected_error THEN
146: x_return_status := fnd_api.g_ret_sts_unexp_error;
147: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
148: WHEN OTHERS THEN
149: x_return_status := fnd_api.g_ret_sts_unexp_error;
142: WHEN fnd_api.g_exc_error THEN
143: x_return_status := fnd_api.g_ret_sts_error;
144: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
145: WHEN fnd_api.g_exc_unexpected_error THEN
146: x_return_status := fnd_api.g_ret_sts_unexp_error;
147: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
148: WHEN OTHERS THEN
149: x_return_status := fnd_api.g_ret_sts_unexp_error;
150: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
145: WHEN fnd_api.g_exc_unexpected_error THEN
146: x_return_status := fnd_api.g_ret_sts_unexp_error;
147: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
148: WHEN OTHERS THEN
149: x_return_status := fnd_api.g_ret_sts_unexp_error;
150: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
151: fnd_msg_pub.add_exc_msg(g_pkg_name, 'BACKORDER_SOURCE');
152: END IF;
153: END backorder_source;
191: FOR UPDATE NOWAIT;
192:
193: l_debug NUMBER := NVL(fnd_profile.VALUE('INV_DEBUG_TRACE'), 0);
194: BEGIN
195: x_return_status := fnd_api.g_ret_sts_success;
196:
197: -- Set savepoint
198: SAVEPOINT inv_start_proc;
199: IF (l_debug = 1) THEN
242: , p_secondary_trx_qty => l_mmtt_info.secondary_transaction_quantity
243: );
244:
245: dEBUG('x_return_status : ' || x_return_status, 'BACKORDER');
246: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
247: RAISE fnd_api.g_exc_unexpected_error;
248: ELSIF x_return_status = fnd_api.g_ret_sts_error THEN
249: RAISE fnd_api.g_exc_error;
250: END IF;
243: );
244:
245: dEBUG('x_return_status : ' || x_return_status, 'BACKORDER');
246: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
247: RAISE fnd_api.g_exc_unexpected_error;
248: ELSIF x_return_status = fnd_api.g_ret_sts_error THEN
249: RAISE fnd_api.g_exc_error;
250: END IF;
251: END LOOP;
244:
245: dEBUG('x_return_status : ' || x_return_status, 'BACKORDER');
246: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
247: RAISE fnd_api.g_exc_unexpected_error;
248: ELSIF x_return_status = fnd_api.g_ret_sts_error THEN
249: RAISE fnd_api.g_exc_error;
250: END IF;
251: END LOOP;
252: END IF;
245: dEBUG('x_return_status : ' || x_return_status, 'BACKORDER');
246: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
247: RAISE fnd_api.g_exc_unexpected_error;
248: ELSIF x_return_status = fnd_api.g_ret_sts_error THEN
249: RAISE fnd_api.g_exc_error;
250: END IF;
251: END LOOP;
252: END IF;
253: dEBUG('Before calling backorder_source ', 'BACKORDER');
260: , p_move_order_type => l_mo_type
261: , p_mo_line_rec => l_mo_line_rec
262: );
263: dEBUG('x_return_status ' || x_return_status, 'BACKORDER');
264: IF x_return_status = fnd_api.g_ret_sts_error THEN
265: RAISE fnd_api.g_exc_error;
266: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
267: RAISE fnd_api.g_exc_unexpected_error;
268: END IF;
261: , p_mo_line_rec => l_mo_line_rec
262: );
263: dEBUG('x_return_status ' || x_return_status, 'BACKORDER');
264: IF x_return_status = fnd_api.g_ret_sts_error THEN
265: RAISE fnd_api.g_exc_error;
266: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
267: RAISE fnd_api.g_exc_unexpected_error;
268: END IF;
269:
262: );
263: dEBUG('x_return_status ' || x_return_status, 'BACKORDER');
264: IF x_return_status = fnd_api.g_ret_sts_error THEN
265: RAISE fnd_api.g_exc_error;
266: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
267: RAISE fnd_api.g_exc_unexpected_error;
268: END IF;
269:
270: IF l_debug = 1 THEN
263: dEBUG('x_return_status ' || x_return_status, 'BACKORDER');
264: IF x_return_status = fnd_api.g_ret_sts_error THEN
265: RAISE fnd_api.g_exc_error;
266: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
267: RAISE fnd_api.g_exc_unexpected_error;
268: END IF;
269:
270: IF l_debug = 1 THEN
271: debug('Updating Move Order Line to set Status = 5 and Qty Detailed = ' || l_mo_line_rec.quantity_delivered, 'BACKORDER');
303: , x_msg_count => x_msg_count
304: , x_msg_data => x_msg_data
305: );
306: dEBUG('x_return_status ' || x_return_status, 'BACKORDER');
307: IF x_return_status = fnd_api.g_ret_sts_error THEN
308: IF (l_debug = 1) THEN
309: DEBUG('Clean Reservations - Expected Error occurred', 'BACKORDER');
310: END IF;
311: RAISE fnd_api.g_exc_error;
307: IF x_return_status = fnd_api.g_ret_sts_error THEN
308: IF (l_debug = 1) THEN
309: DEBUG('Clean Reservations - Expected Error occurred', 'BACKORDER');
310: END IF;
311: RAISE fnd_api.g_exc_error;
312: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
313: IF (l_debug = 1) THEN
314: DEBUG('Clean Reservations - Unexpected Error occurred', 'BACKORDER');
315: END IF;
308: IF (l_debug = 1) THEN
309: DEBUG('Clean Reservations - Expected Error occurred', 'BACKORDER');
310: END IF;
311: RAISE fnd_api.g_exc_error;
312: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
313: IF (l_debug = 1) THEN
314: DEBUG('Clean Reservations - Unexpected Error occurred', 'BACKORDER');
315: END IF;
316: RAISE fnd_api.g_exc_unexpected_error;
312: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
313: IF (l_debug = 1) THEN
314: DEBUG('Clean Reservations - Unexpected Error occurred', 'BACKORDER');
315: END IF;
316: RAISE fnd_api.g_exc_unexpected_error;
317: END IF;
318: END IF;
319:
320: IF l_allow_backordering = 'N' THEN
320: IF l_allow_backordering = 'N' THEN
321: fnd_message.set_name('WMS', 'WMS_ACTIVE_LOADED_TASKS_EXIST');
322: fnd_message.set_token('LINE_ID', p_line_id);
323: fnd_msg_pub.ADD;
324: RAISE fnd_api.g_exc_error;
325: END IF;
326:
327: COMMIT;
328: EXCEPTION
325: END IF;
326:
327: COMMIT;
328: EXCEPTION
329: WHEN fnd_api.g_exc_error THEN
330: x_return_status := fnd_api.g_ret_sts_error;
331: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data, p_encoded=> 'F');
332:
333: IF l_allow_backordering = 'Y' THEN
326:
327: COMMIT;
328: EXCEPTION
329: WHEN fnd_api.g_exc_error THEN
330: x_return_status := fnd_api.g_ret_sts_error;
331: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data, p_encoded=> 'F');
332:
333: IF l_allow_backordering = 'Y' THEN
334: ROLLBACK TO inv_start_proc;
332:
333: IF l_allow_backordering = 'Y' THEN
334: ROLLBACK TO inv_start_proc;
335: END IF;
336: WHEN fnd_api.g_exc_unexpected_error THEN
337: x_return_status := fnd_api.g_ret_sts_unexp_error;
338: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data, p_encoded=> 'F');
339: ROLLBACK TO inv_start_proc;
340: WHEN OTHERS THEN
333: IF l_allow_backordering = 'Y' THEN
334: ROLLBACK TO inv_start_proc;
335: END IF;
336: WHEN fnd_api.g_exc_unexpected_error THEN
337: x_return_status := fnd_api.g_ret_sts_unexp_error;
338: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data, p_encoded=> 'F');
339: ROLLBACK TO inv_start_proc;
340: WHEN OTHERS THEN
341: x_return_status := fnd_api.g_ret_sts_unexp_error;
337: x_return_status := fnd_api.g_ret_sts_unexp_error;
338: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data, p_encoded=> 'F');
339: ROLLBACK TO inv_start_proc;
340: WHEN OTHERS THEN
341: x_return_status := fnd_api.g_ret_sts_unexp_error;
342:
343: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
344: fnd_msg_pub.add_exc_msg(g_pkg_name, 'BACKORDER');
345: END IF;
378: l_rsv_pri_reservation_qty NUMBER;
379: l_rsv_sec_reservation_qty NUMBER; -- INVCONV
380:
381: BEGIN
382: x_return_status := fnd_api.g_ret_sts_success;
383: IF (l_debug = 1) THEN
384: DEBUG('Transaction Temp ID = ' || p_transaction_temp_id, 'DELETE_DETAILS');
385: DEBUG('Move Order Line ID = ' || p_move_order_line_id, 'DELETE_DETAILS');
386: DEBUG('Transaction Qty = ' || p_transaction_quantity, 'DELETE_DETAILS');
403:
404: DEBUG('x_return_status = ' || x_return_status, 'DELETE_DETAILS');
405: DEBUG('l_error_code = ' || l_error_code, 'DELETE_DETAILS');
406: DEBUG('l_mtl_reservation_tbl_count = ' || l_mtl_reservation_tbl_count, 'DELETE_DETAILS');
407: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
408: RAISE fnd_api.g_exc_error;
409: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
410: RAISE fnd_api.g_exc_unexpected_error;
411: END IF;
404: DEBUG('x_return_status = ' || x_return_status, 'DELETE_DETAILS');
405: DEBUG('l_error_code = ' || l_error_code, 'DELETE_DETAILS');
406: DEBUG('l_mtl_reservation_tbl_count = ' || l_mtl_reservation_tbl_count, 'DELETE_DETAILS');
407: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
408: RAISE fnd_api.g_exc_error;
409: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
410: RAISE fnd_api.g_exc_unexpected_error;
411: END IF;
412:
405: DEBUG('l_error_code = ' || l_error_code, 'DELETE_DETAILS');
406: DEBUG('l_mtl_reservation_tbl_count = ' || l_mtl_reservation_tbl_count, 'DELETE_DETAILS');
407: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
408: RAISE fnd_api.g_exc_error;
409: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
410: RAISE fnd_api.g_exc_unexpected_error;
411: END IF;
412:
413: IF l_mtl_reservation_tbl_count > 0 THEN
406: DEBUG('l_mtl_reservation_tbl_count = ' || l_mtl_reservation_tbl_count, 'DELETE_DETAILS');
407: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
408: RAISE fnd_api.g_exc_error;
409: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
410: RAISE fnd_api.g_exc_unexpected_error;
411: END IF;
412:
413: IF l_mtl_reservation_tbl_count > 0 THEN
414: -- Bug#2621481: If reservations exist, check if the item is an ATO Item
471: l_mtl_reservation_tbl(1).detailed_quantity :=
472: l_rsv_detailed_qty - ABS(l_umconvert_trans_quantity);
473: -- INVCONV BEGIN
474: -- For dual control items, compute the secondary detailed
475: IF l_mmtt_rec.secondary_uom_code is NOT NULL and l_mmtt_rec.secondary_uom_code <> FND_API.G_MISS_CHAR THEN
476: l_mtl_reservation_tbl(1).secondary_detailed_quantity :=
477: l_rsv_secondary_detailed_qty - ABS(p_secondary_trx_qty);
478: END IF;
479: -- INVCONV END
500: , p_to_serial_number => l_to_serial_number
501: );
502:
503: DEBUG('x_return_status' || x_return_status, 'DELETE_DETAILS');
504: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
505: RAISE fnd_api.g_exc_error;
506: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
507: RAISE fnd_api.g_exc_unexpected_error;
508: END IF;
501: );
502:
503: DEBUG('x_return_status' || x_return_status, 'DELETE_DETAILS');
504: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
505: RAISE fnd_api.g_exc_error;
506: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
507: RAISE fnd_api.g_exc_unexpected_error;
508: END IF;
509: ELSE
502:
503: DEBUG('x_return_status' || x_return_status, 'DELETE_DETAILS');
504: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
505: RAISE fnd_api.g_exc_error;
506: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
507: RAISE fnd_api.g_exc_unexpected_error;
508: END IF;
509: ELSE
510: l_mtl_reservation_rec := l_mtl_reservation_tbl(1);
503: DEBUG('x_return_status' || x_return_status, 'DELETE_DETAILS');
504: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
505: RAISE fnd_api.g_exc_error;
506: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
507: RAISE fnd_api.g_exc_unexpected_error;
508: END IF;
509: ELSE
510: l_mtl_reservation_rec := l_mtl_reservation_tbl(1);
511: l_mmtt_rec := inv_mo_line_detail_util.query_row(p_transaction_temp_id);
523: , from_name => NULL
524: , to_name => NULL
525: );
526:
527: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
528: RAISE fnd_api.g_exc_error;
529: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
530: RAISE fnd_api.g_exc_unexpected_error;
531: END IF;
524: , to_name => NULL
525: );
526:
527: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
528: RAISE fnd_api.g_exc_error;
529: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
530: RAISE fnd_api.g_exc_unexpected_error;
531: END IF;
532: ELSE
525: );
526:
527: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
528: RAISE fnd_api.g_exc_error;
529: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
530: RAISE fnd_api.g_exc_unexpected_error;
531: END IF;
532: ELSE
533: l_umconvert_trans_quantity := ABS(p_transaction_quantity);
526:
527: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
528: RAISE fnd_api.g_exc_error;
529: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
530: RAISE fnd_api.g_exc_unexpected_error;
531: END IF;
532: ELSE
533: l_umconvert_trans_quantity := ABS(p_transaction_quantity);
534: END IF;
540: l_mtl_reservation_tbl(1).detailed_quantity :=
541: l_rsv_detailed_qty - ABS(p_transaction_quantity);
542: -- INVCONV BEGIN
543: -- For dual control items, compute the secondary detailed
544: IF l_mmtt_rec.secondary_uom_code is NOT NULL and l_mmtt_rec.secondary_uom_code <> FND_API.G_MISS_CHAR THEN
545: l_mtl_reservation_tbl(1).secondary_detailed_quantity :=
546: l_rsv_secondary_detailed_qty - ABS(p_secondary_trx_qty);
547: END IF;
548: -- INVCONV END
549: ELSE
550: l_mtl_reservation_tbl(1).detailed_quantity := 0;
551: -- INVCONV BEGIN
552: -- For dual control items, zero the secondary detailed
553: IF l_mmtt_rec.secondary_uom_code is NOT NULL and l_mmtt_rec.secondary_uom_code <> FND_API.G_MISS_CHAR THEN
554: l_mtl_reservation_tbl(1).secondary_detailed_quantity := 0;
555: END IF;
556: -- INVCONV END
557: END IF;
560: l_mtl_reservation_tbl(1).reservation_quantity :=
561: l_rsv_reservation_qty - ABS(l_umconvert_trans_quantity);
562: -- INVCONV BEGIN
563: -- For dual control items, compute the secondary reservation qty
564: IF l_mmtt_rec.secondary_uom_code is NOT NULL and l_mmtt_rec.secondary_uom_code <> FND_API.G_MISS_CHAR THEN
565: l_mtl_reservation_tbl(1).secondary_reservation_quantity :=
566: l_rsv_sec_reservation_qty - ABS(p_secondary_trx_qty);
567: END IF;
568: -- INVCONV END
569: ELSE
570: l_mtl_reservation_tbl(1).reservation_quantity := 0;
571: -- INVCONV BEGIN
572: -- For dual control items, zero the secondary reservation qty
573: IF l_mmtt_rec.secondary_uom_code is NOT NULL and l_mmtt_rec.secondary_uom_code <> FND_API.G_MISS_CHAR THEN
574: l_mtl_reservation_tbl(1).secondary_reservation_quantity := 0;
575: END IF;
576: -- INVCONV END
577: END IF;
595: , p_to_serial_number => l_to_serial_number
596: );
597:
598: DEBUG('x_return_status from inv_reservation_pub.update_reservation ' || x_return_status , 'DELETE_DETAILS');
599: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
600: RAISE fnd_api.g_exc_error;
601: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
602: RAISE fnd_api.g_exc_unexpected_error;
603: END IF;
596: );
597:
598: DEBUG('x_return_status from inv_reservation_pub.update_reservation ' || x_return_status , 'DELETE_DETAILS');
599: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
600: RAISE fnd_api.g_exc_error;
601: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
602: RAISE fnd_api.g_exc_unexpected_error;
603: END IF;
604: END IF; -- reservation count > 0
597:
598: DEBUG('x_return_status from inv_reservation_pub.update_reservation ' || x_return_status , 'DELETE_DETAILS');
599: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
600: RAISE fnd_api.g_exc_error;
601: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
602: RAISE fnd_api.g_exc_unexpected_error;
603: END IF;
604: END IF; -- reservation count > 0
605: END IF; -- ato item check
598: DEBUG('x_return_status from inv_reservation_pub.update_reservation ' || x_return_status , 'DELETE_DETAILS');
599: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
600: RAISE fnd_api.g_exc_error;
601: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
602: RAISE fnd_api.g_exc_unexpected_error;
603: END IF;
604: END IF; -- reservation count > 0
605: END IF; -- ato item check
606: END IF;
626: , p_primary_uom_flag => 'Y'
627: , p_transaction_uom_code => NULL
628: , p_quantity => p_transaction_quantity
629: );
630: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
631: RAISE fnd_api.g_exc_error;
632: ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
633: RAISE fnd_api.g_exc_unexpected_error;
634: END IF;
627: , p_transaction_uom_code => NULL
628: , p_quantity => p_transaction_quantity
629: );
630: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
631: RAISE fnd_api.g_exc_error;
632: ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
633: RAISE fnd_api.g_exc_unexpected_error;
634: END IF;
635: END IF;
628: , p_quantity => p_transaction_quantity
629: );
630: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
631: RAISE fnd_api.g_exc_error;
632: ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
633: RAISE fnd_api.g_exc_unexpected_error;
634: END IF;
635: END IF;
636:
629: );
630: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
631: RAISE fnd_api.g_exc_error;
632: ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
633: RAISE fnd_api.g_exc_unexpected_error;
634: END IF;
635: END IF;
636:
637: -- End Bug 5361517
646: , p_transaction_temp_id => p_transaction_temp_id
647: );
648:
649: DEBUG('x_return_status ' || x_return_status , 'DELETE_DETAILS');
650: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
651: RAISE fnd_api.g_exc_error;
652: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
653: RAISE fnd_api.g_exc_unexpected_error;
654: END IF;
647: );
648:
649: DEBUG('x_return_status ' || x_return_status , 'DELETE_DETAILS');
650: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
651: RAISE fnd_api.g_exc_error;
652: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
653: RAISE fnd_api.g_exc_unexpected_error;
654: END IF;
655: EXCEPTION
648:
649: DEBUG('x_return_status ' || x_return_status , 'DELETE_DETAILS');
650: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
651: RAISE fnd_api.g_exc_error;
652: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
653: RAISE fnd_api.g_exc_unexpected_error;
654: END IF;
655: EXCEPTION
656: WHEN fnd_api.g_exc_error THEN
649: DEBUG('x_return_status ' || x_return_status , 'DELETE_DETAILS');
650: IF (x_return_status = fnd_api.g_ret_sts_error) THEN
651: RAISE fnd_api.g_exc_error;
652: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
653: RAISE fnd_api.g_exc_unexpected_error;
654: END IF;
655: EXCEPTION
656: WHEN fnd_api.g_exc_error THEN
657: x_return_status := fnd_api.g_ret_sts_error;
652: ELSIF(x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
653: RAISE fnd_api.g_exc_unexpected_error;
654: END IF;
655: EXCEPTION
656: WHEN fnd_api.g_exc_error THEN
657: x_return_status := fnd_api.g_ret_sts_error;
658: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
659: WHEN fnd_api.g_exc_unexpected_error THEN
660: x_return_status := fnd_api.g_ret_sts_unexp_error;
653: RAISE fnd_api.g_exc_unexpected_error;
654: END IF;
655: EXCEPTION
656: WHEN fnd_api.g_exc_error THEN
657: x_return_status := fnd_api.g_ret_sts_error;
658: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
659: WHEN fnd_api.g_exc_unexpected_error THEN
660: x_return_status := fnd_api.g_ret_sts_unexp_error;
661: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
655: EXCEPTION
656: WHEN fnd_api.g_exc_error THEN
657: x_return_status := fnd_api.g_ret_sts_error;
658: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
659: WHEN fnd_api.g_exc_unexpected_error THEN
660: x_return_status := fnd_api.g_ret_sts_unexp_error;
661: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
662: WHEN OTHERS THEN
663: x_return_status := fnd_api.g_ret_sts_unexp_error;
656: WHEN fnd_api.g_exc_error THEN
657: x_return_status := fnd_api.g_ret_sts_error;
658: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
659: WHEN fnd_api.g_exc_unexpected_error THEN
660: x_return_status := fnd_api.g_ret_sts_unexp_error;
661: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
662: WHEN OTHERS THEN
663: x_return_status := fnd_api.g_ret_sts_unexp_error;
664:
659: WHEN fnd_api.g_exc_unexpected_error THEN
660: x_return_status := fnd_api.g_ret_sts_unexp_error;
661: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
662: WHEN OTHERS THEN
663: x_return_status := fnd_api.g_ret_sts_unexp_error;
664:
665: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
666: fnd_msg_pub.add_exc_msg(g_pkg_name, 'DELETE_DETAILS');
667: END IF;