36: END IF;
37:
38: IF NOT INV_CACHE.set_item_rec(p_mo_line_rec.organization_id, p_mo_line_rec.inventory_item_id) THEN
39: print_debug('Inventory Cache Set Item Rec Failed', 'INV_Express_Pick_Pub.Check_Detailed_Rsv');
40: RAISE fnd_api.g_exc_unexpected_error;
41: END IF;
42:
43: If (inv_cache.item_rec.lot_control_code = 2) AND l_detailed THEN
44: if p_reservation_rec.lot_number IS NULL THEN
67: p_reservation_rec.subinventory_code <> nvl(g_subinventory_code,'-9999') THEN
68:
69: IF NOT INV_CACHE.set_tosub_rec(p_mo_line_rec.organization_id, p_reservation_rec.subinventory_code) THEN
70: print_debug('Inventory Cache Set ToSub Rec Failed', 'INV_Express_Pick_Pub.Check_Detailed_Rsv');
71: RAISE fnd_api.g_exc_unexpected_error;
72: END IF;
73:
74: IF NOT INV_CACHE.set_org_rec(p_mo_line_rec.organization_id) THEN
75: print_debug('Inventory Cache Set ORG Rec Failed', 'INV_Express_Pick_Pub.Check_Detailed_Rsv');
72: END IF;
73:
74: IF NOT INV_CACHE.set_org_rec(p_mo_line_rec.organization_id) THEN
75: print_debug('Inventory Cache Set ORG Rec Failed', 'INV_Express_Pick_Pub.Check_Detailed_Rsv');
76: RAISE fnd_api.g_exc_unexpected_error;
77: END IF;
78:
79: g_organization_id := p_mo_line_rec.organization_id;
80: g_subinventory_code := p_reservation_rec.subinventory_code;
214:
215: SAVEPOINT EXPRESS_PICK_RELEASE;
216:
217: -- Standard Call to check for call compatibility
218: IF NOT fnd_api.Compatible_API_Call(l_api_version , p_api_version ,
219: l_api_name , G_PKG_NAME) THEN
220: If is_debug then
221: print_debug('Fnd_APi not compatible','INV_Express_Pick_Pub.Pick_Release');
222: End If;
217: -- Standard Call to check for call compatibility
218: IF NOT fnd_api.Compatible_API_Call(l_api_version , p_api_version ,
219: l_api_name , G_PKG_NAME) THEN
220: If is_debug then
221: print_debug('Fnd_APi not compatible','INV_Express_Pick_Pub.Pick_Release');
222: End If;
223: RAISE fnd_api.g_exc_unexpected_error;
224: END IF;
225:
219: l_api_name , G_PKG_NAME) THEN
220: If is_debug then
221: print_debug('Fnd_APi not compatible','INV_Express_Pick_Pub.Pick_Release');
222: End If;
223: RAISE fnd_api.g_exc_unexpected_error;
224: END IF;
225:
226:
227: -- Initialize message list if p_init_msg_list is set to true
224: END IF;
225:
226:
227: -- Initialize message list if p_init_msg_list is set to true
228: IF fnd_api.to_Boolean(p_init_msg_list) THEN
229: fnd_msg_pub.initialize;
230: END IF;
231:
232: -- Initialize API return status to success
229: fnd_msg_pub.initialize;
230: END IF;
231:
232: -- Initialize API return status to success
233: x_return_status := fnd_api.g_ret_sts_success;
234:
235: -- Validate parameters
236:
237: -- First determine whether the table of move order lines in p_mo_line_tbl has
244:
245: ROLLBACK TO EXPRESS_PICK_RELEASE;
246: FND_MESSAGE.SET_NAME('INV','INV_NO_LINES_TO_PICK');
247: FND_MSG_PUB.Add;
248: RAISE fnd_api.g_exc_unexpected_error;
249: END IF;
250:
251: -- Validate parameter for allowing partial pick release
252: IF p_allow_partial_pick <> fnd_api.g_true AND
248: RAISE fnd_api.g_exc_unexpected_error;
249: END IF;
250:
251: -- Validate parameter for allowing partial pick release
252: IF p_allow_partial_pick <> fnd_api.g_true AND
253: p_allow_partial_pick <> fnd_api.g_false THEN
254:
255: If is_debug then
256: print_debug('Error: invalid partial pick parameter',
249: END IF;
250:
251: -- Validate parameter for allowing partial pick release
252: IF p_allow_partial_pick <> fnd_api.g_true AND
253: p_allow_partial_pick <> fnd_api.g_false THEN
254:
255: If is_debug then
256: print_debug('Error: invalid partial pick parameter',
257: 'INV_Express_Pick_Pub.Pick_Release');
258: End If;
259: ROLLBACK TO Express_Pick_Release;
260: FND_MESSAGE.SET_NAME('INV','INV_INVALID_PARTIAL_PICK_PARAM');
261: FND_MSG_PUB.Add;
262: RAISE fnd_api.g_exc_unexpected_error;
263: END IF;
264:
265:
266: /*Start with first delivery detail in the list */
308: p_pick_release_status_tbl(g_pr_status_cntr).delivery_detail_id := l_delivery_detail_id;
309:
310: IF NOT INV_CACHE.set_mtt_rec(p_mo_line_tbl(l_line_index).transaction_type_id) THEN
311: print_debug('Inventory Cache Set Transaction Type Rec Failed', 'INV_Express_Pick_Pub.Pick_Release');
312: RAISE fnd_api.g_exc_unexpected_error;
313: END IF;
314:
315: l_source_type_id := inv_cache.mtt_rec.transaction_source_type_id;
316: l_source_line_id := p_mo_line_tbl(l_line_index).TXN_source_line_id;
347: print_debug('l_return_status from query_reservation is '
348: || x_return_status, 'Inv_Express_Pick_Pub.Pick_Release');
349: End If;
350:
351: IF x_return_status = fnd_api.g_ret_sts_error THEN
352: IF is_debug then
353: print_debug('Error from INV_QUANTITY_TREE_PVT.Lock_Tree',
354: 'Inv_Express_Pick_Pub.Pick_release');
355: END IF;
352: IF is_debug then
353: print_debug('Error from INV_QUANTITY_TREE_PVT.Lock_Tree',
354: 'Inv_Express_Pick_Pub.Pick_release');
355: END IF;
356: RAISE fnd_api.g_exc_error ;
357: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
358: If is_debug then
359: print_debug('Unexpected error from INV_QUANTITY_TREE_PVT.Lock_Tree',
360: 'Inv_Express_Pick_Pub.Pick_release');
353: print_debug('Error from INV_QUANTITY_TREE_PVT.Lock_Tree',
354: 'Inv_Express_Pick_Pub.Pick_release');
355: END IF;
356: RAISE fnd_api.g_exc_error ;
357: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
358: If is_debug then
359: print_debug('Unexpected error from INV_QUANTITY_TREE_PVT.Lock_Tree',
360: 'Inv_Express_Pick_Pub.Pick_release');
361: End If;
358: If is_debug then
359: print_debug('Unexpected error from INV_QUANTITY_TREE_PVT.Lock_Tree',
360: 'Inv_Express_Pick_Pub.Pick_release');
361: End If;
362: RAISE fnd_api.g_exc_unexpected_error;
363: END IF;
364: /*Bug3237610 ends*/
365:
366: If is_debug then
387: print_debug('l_return_status from query_staged_flag is '
388: || x_return_status, 'Inv_Express_Pick_Pub.Pick_Release');
389: End If;
390:
391: IF x_return_status = fnd_api.g_ret_sts_error THEN
392: IF is_debug then
393: print_debug('Error from INV_QUANTITY_TREE_PVT.Lock_Tree',
394: 'Inv_Express_Pick_Pub.Pick_release');
395: END IF;
392: IF is_debug then
393: print_debug('Error from INV_QUANTITY_TREE_PVT.Lock_Tree',
394: 'Inv_Express_Pick_Pub.Pick_release');
395: END IF;
396: RAISE fnd_api.g_exc_error ;
397: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
398: If is_debug then
399: print_debug('Unexpected error from INV_QUANTITY_TREE_PVT.Lock_Tree',
400: 'Inv_Express_Pick_Pub.Pick_release');
393: print_debug('Error from INV_QUANTITY_TREE_PVT.Lock_Tree',
394: 'Inv_Express_Pick_Pub.Pick_release');
395: END IF;
396: RAISE fnd_api.g_exc_error ;
397: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
398: If is_debug then
399: print_debug('Unexpected error from INV_QUANTITY_TREE_PVT.Lock_Tree',
400: 'Inv_Express_Pick_Pub.Pick_release');
401: End If;
398: If is_debug then
399: print_debug('Unexpected error from INV_QUANTITY_TREE_PVT.Lock_Tree',
400: 'Inv_Express_Pick_Pub.Pick_release');
401: End If;
402: RAISE fnd_api.g_exc_unexpected_error;
403: END IF;
404: --End bug3237610
405:
406: IF nvl(l_staged_flag,'N') <> 'Y' then
430: THEN
431: --Lock item/org comobo so that no Pick release process could not release them concurrently.
432:
433: INV_QUANTITY_TREE_PVT.Lock_Tree(p_api_version_number => l_api_version
434: , p_init_msg_lst => fnd_api.g_false
435: , x_return_status => x_return_status
436: , x_msg_count => x_msg_count
437: , x_msg_data => x_msg_data
438: , p_organization_id => p_mo_line_tbl(l_line_index).organization_id
442: print_debug('l_return_status from lock_tree is '
443: || x_return_status, 'Inv_Express_Pick_Pub.Pick_Release');
444: End If;
445:
446: IF x_return_status = fnd_api.g_ret_sts_error THEN
447: IF is_debug then
448: print_debug('Error from INV_QUANTITY_TREE_PVT.Lock_Tree',
449: 'Inv_Express_Pick_Pub.Pick_release');
450: END IF;
447: IF is_debug then
448: print_debug('Error from INV_QUANTITY_TREE_PVT.Lock_Tree',
449: 'Inv_Express_Pick_Pub.Pick_release');
450: END IF;
451: RAISE fnd_api.g_exc_error ;
452: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
453: If is_debug then
454: print_debug('Unexpected error from INV_QUANTITY_TREE_PVT.Lock_Tree',
455: 'Inv_Express_Pick_Pub.Pick_release');
448: print_debug('Error from INV_QUANTITY_TREE_PVT.Lock_Tree',
449: 'Inv_Express_Pick_Pub.Pick_release');
450: END IF;
451: RAISE fnd_api.g_exc_error ;
452: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
453: If is_debug then
454: print_debug('Unexpected error from INV_QUANTITY_TREE_PVT.Lock_Tree',
455: 'Inv_Express_Pick_Pub.Pick_release');
456: End If;
453: If is_debug then
454: print_debug('Unexpected error from INV_QUANTITY_TREE_PVT.Lock_Tree',
455: 'Inv_Express_Pick_Pub.Pick_release');
456: End If;
457: RAISE fnd_api.g_exc_unexpected_error;
458: END IF;
459:
460: stage_dd_rsv(p_mo_line_rec => P_MO_LINE_TBL(l_line_index)
461: , p_reservation_tbl => L_RSV_REC_TBL
463: , x_return_status => x_return_status
464: , x_msg_count => x_msg_count
465: , x_msg_data => x_msg_data);
466:
467: IF x_return_status = fnd_api.g_ret_sts_error THEN
468: IF is_debug then
469: print_debug('Error from Stage_DD_RSV',
470: 'Inv_Express_Pick_Pub.Pick_release');
471: END IF;
468: IF is_debug then
469: print_debug('Error from Stage_DD_RSV',
470: 'Inv_Express_Pick_Pub.Pick_release');
471: END IF;
472: RAISE fnd_api.g_exc_error ;
473: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
474: If is_debug then
475: print_debug('Unexpected error from Stage DD RSV',
476: 'Inv_Express_Pick_Pub.Pick_release');
469: print_debug('Error from Stage_DD_RSV',
470: 'Inv_Express_Pick_Pub.Pick_release');
471: END IF;
472: RAISE fnd_api.g_exc_error ;
473: ELSIF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
474: If is_debug then
475: print_debug('Unexpected error from Stage DD RSV',
476: 'Inv_Express_Pick_Pub.Pick_release');
477: End If;
474: If is_debug then
475: print_debug('Unexpected error from Stage DD RSV',
476: 'Inv_Express_Pick_Pub.Pick_release');
477: End If;
478: RAISE fnd_api.g_exc_unexpected_error;
479: END IF;
480:
481:
482: ELSE -- l_rsv_qty =0 OR partial not allowed
528:
529: EXIT WHEN l_line_index = p_mo_line_tbl.last;
530: END LOOP; ---Main Loop
531: EXCEPTION
532: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
533: ROLLBACK TO EXPRESS_PICK_RELEASE;
534: --dbms_output.put_line('SQLERRM'||SQLERRM);
535: print_debug('SQLERRM'||SQLERRM, 'Inv_Express_Pick_Pub.Pick_Release');
536: --
533: ROLLBACK TO EXPRESS_PICK_RELEASE;
534: --dbms_output.put_line('SQLERRM'||SQLERRM);
535: print_debug('SQLERRM'||SQLERRM, 'Inv_Express_Pick_Pub.Pick_Release');
536: --
537: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
538: --
539: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
540: , p_data => x_msg_data);
541: --
541: --
542: WHEN OTHERS THEN
543: ROLLBACK TO EXPRESS_PICK_RELEASE;
544: --
545: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
546: --
547: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
548: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
549: END IF;
588: l_staged_rsv_id_tbl inv_staged_rsv_id_tbl;
589: l_shipping_attr wsh_interface.changedattributetabtype;
590: l_original_serial_number inv_reservation_global.serial_number_tbl_type;
591:
592: l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
593: l_rsv_index NUMBER :=0; --Split rsv counter
594: l_remain_dd_qty NUMBER :=0;
595: l_new_dd_id NUMBER;
596: l_qty2 NUMBER;
640: --END INVCONV kkillams
641:
642:
643: BEGIN
644: x_return_status :=fnd_api.g_ret_sts_success;
645: IF NOT INV_CACHE.set_item_rec(p_mo_line_rec.organization_id, p_mo_line_rec.inventory_item_id) THEN
646: print_debug('Inventory Cache Set Item Rec Failed', 'INV_Express_Pick_Pub.Pick_Release');
647: RAISE fnd_api.g_exc_unexpected_error;
648: END IF;
643: BEGIN
644: x_return_status :=fnd_api.g_ret_sts_success;
645: IF NOT INV_CACHE.set_item_rec(p_mo_line_rec.organization_id, p_mo_line_rec.inventory_item_id) THEN
646: print_debug('Inventory Cache Set Item Rec Failed', 'INV_Express_Pick_Pub.Pick_Release');
647: RAISE fnd_api.g_exc_unexpected_error;
648: END IF;
649: IF inv_cache.item_rec.serial_number_control_code NOT IN (1,6) then
650: print_debug('Item is Serialized ','INV_Express_Pick_Pub.Pick_Release');
651: is_serial_controlled :=true;
724: print_debug('return status '||l_return_status,'INV_Express_Pick_Pub.Pick_Release');
725: print_debug('g_transaction_temp_id'||g_transaction_temp_id,'INV_Express_Pick_Pub.Pick_Release');
726: print_debug('Available Serial qty'||x_available_sl_qty,'INV_Express_Pick_Pub.Pick_Release');
727: print_debug('x_serial_index'||x_serial_index,'INV_Express_Pick_Pub.Pick_Release');
728: IF l_return_status = fnd_api.g_ret_sts_error THEN
729: RAISE fnd_api.g_exc_error;
730: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
731: RAISE fnd_api.g_exc_unexpected_error;
732: END IF;
725: print_debug('g_transaction_temp_id'||g_transaction_temp_id,'INV_Express_Pick_Pub.Pick_Release');
726: print_debug('Available Serial qty'||x_available_sl_qty,'INV_Express_Pick_Pub.Pick_Release');
727: print_debug('x_serial_index'||x_serial_index,'INV_Express_Pick_Pub.Pick_Release');
728: IF l_return_status = fnd_api.g_ret_sts_error THEN
729: RAISE fnd_api.g_exc_error;
730: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
731: RAISE fnd_api.g_exc_unexpected_error;
732: END IF;
733: IF x_available_sl_qty < l_new_rsv_rec.primary_reservation_quantity THEN
726: print_debug('Available Serial qty'||x_available_sl_qty,'INV_Express_Pick_Pub.Pick_Release');
727: print_debug('x_serial_index'||x_serial_index,'INV_Express_Pick_Pub.Pick_Release');
728: IF l_return_status = fnd_api.g_ret_sts_error THEN
729: RAISE fnd_api.g_exc_error;
730: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
731: RAISE fnd_api.g_exc_unexpected_error;
732: END IF;
733: IF x_available_sl_qty < l_new_rsv_rec.primary_reservation_quantity THEN
734: l_remain_dd_qty := l_remain_dd_qty + (l_new_rsv_rec.primary_reservation_quantity- x_available_sl_qty);
727: print_debug('x_serial_index'||x_serial_index,'INV_Express_Pick_Pub.Pick_Release');
728: IF l_return_status = fnd_api.g_ret_sts_error THEN
729: RAISE fnd_api.g_exc_error;
730: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
731: RAISE fnd_api.g_exc_unexpected_error;
732: END IF;
733: IF x_available_sl_qty < l_new_rsv_rec.primary_reservation_quantity THEN
734: l_remain_dd_qty := l_remain_dd_qty + (l_new_rsv_rec.primary_reservation_quantity- x_available_sl_qty);
735: l_new_rsv_rec.primary_reservation_quantity := x_available_sl_qty;
769: l_new_rsv_rec.requirement_date :=SYSDATE;
770: --dbms_output.put_line('about to call transfer_reservation');
771: inv_reservation_pub.transfer_reservation(
772: p_api_version_number => 1.0
773: , p_init_msg_lst => fnd_api.g_false
774: , x_return_status => l_return_status
775: , x_msg_count => l_msg_count
776: , x_msg_data => l_msg_data
777: , p_original_rsv_rec => l_original_rsv_rec
777: , p_original_rsv_rec => l_original_rsv_rec
778: , p_to_rsv_rec => l_new_rsv_rec
779: , p_original_serial_number => l_to_serial_number
780: , p_to_serial_number => l_to_serial_number
781: , p_validation_flag => fnd_api.g_false
782: , x_to_reservation_id => l_reservation_id
783: );
784: IF l_return_status = fnd_api.g_ret_sts_error THEN
785: RAISE fnd_api.g_exc_error;
780: , p_to_serial_number => l_to_serial_number
781: , p_validation_flag => fnd_api.g_false
782: , x_to_reservation_id => l_reservation_id
783: );
784: IF l_return_status = fnd_api.g_ret_sts_error THEN
785: RAISE fnd_api.g_exc_error;
786: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
787: RAISE fnd_api.g_exc_unexpected_error;
788: END IF;
781: , p_validation_flag => fnd_api.g_false
782: , x_to_reservation_id => l_reservation_id
783: );
784: IF l_return_status = fnd_api.g_ret_sts_error THEN
785: RAISE fnd_api.g_exc_error;
786: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
787: RAISE fnd_api.g_exc_unexpected_error;
788: END IF;
789:
782: , x_to_reservation_id => l_reservation_id
783: );
784: IF l_return_status = fnd_api.g_ret_sts_error THEN
785: RAISE fnd_api.g_exc_error;
786: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
787: RAISE fnd_api.g_exc_unexpected_error;
788: END IF;
789:
790:
783: );
784: IF l_return_status = fnd_api.g_ret_sts_error THEN
785: RAISE fnd_api.g_exc_error;
786: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
787: RAISE fnd_api.g_exc_unexpected_error;
788: END IF;
789:
790:
791: --dbms_output.put_line('l_return_status '||l_return_status);
794: x_msg_count => x_msg_count,
795: x_msg_data => x_msg_data,
796: p_reservation_id => l_reservation_id,
797: p_staged_flag => 'Y');
798: IF l_return_status = fnd_api.g_ret_sts_error THEN
799: RAISE fnd_api.g_exc_error;
800: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
801: RAISE fnd_api.g_exc_unexpected_error;
802: END IF;
795: x_msg_data => x_msg_data,
796: p_reservation_id => l_reservation_id,
797: p_staged_flag => 'Y');
798: IF l_return_status = fnd_api.g_ret_sts_error THEN
799: RAISE fnd_api.g_exc_error;
800: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
801: RAISE fnd_api.g_exc_unexpected_error;
802: END IF;
803: if l_remain_dd_qty >0 then
796: p_reservation_id => l_reservation_id,
797: p_staged_flag => 'Y');
798: IF l_return_status = fnd_api.g_ret_sts_error THEN
799: RAISE fnd_api.g_exc_error;
800: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
801: RAISE fnd_api.g_exc_unexpected_error;
802: END IF;
803: if l_remain_dd_qty >0 then
804: print_debug('Calling Split line','INV_Express_pick.Pick_release ');
797: p_staged_flag => 'Y');
798: IF l_return_status = fnd_api.g_ret_sts_error THEN
799: RAISE fnd_api.g_exc_error;
800: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
801: RAISE fnd_api.g_exc_unexpected_error;
802: END IF;
803: if l_remain_dd_qty >0 then
804: print_debug('Calling Split line','INV_Express_pick.Pick_release ');
805:
813: ,x_split_quantity => l_new_rsv_rec.primary_reservation_quantity
814: ,x_split_quantity2 => l_new_rsv_rec.secondary_reservation_quantity);
815: print_debug('Return status '||l_return_status,'INV_Express_pick.Pick_release ');
816: print_debug('l_new_dd_id '||l_new_dd_id,'INV_Express_pick.Pick_release ');
817: IF l_return_status = fnd_api.g_ret_sts_error THEN
818: RAISE fnd_api.g_exc_error;
819: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
820: RAISE fnd_api.g_exc_unexpected_error;
821: END IF;
814: ,x_split_quantity2 => l_new_rsv_rec.secondary_reservation_quantity);
815: print_debug('Return status '||l_return_status,'INV_Express_pick.Pick_release ');
816: print_debug('l_new_dd_id '||l_new_dd_id,'INV_Express_pick.Pick_release ');
817: IF l_return_status = fnd_api.g_ret_sts_error THEN
818: RAISE fnd_api.g_exc_error;
819: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
820: RAISE fnd_api.g_exc_unexpected_error;
821: END IF;
822: end if; --l_remain_dd_qty >0
815: print_debug('Return status '||l_return_status,'INV_Express_pick.Pick_release ');
816: print_debug('l_new_dd_id '||l_new_dd_id,'INV_Express_pick.Pick_release ');
817: IF l_return_status = fnd_api.g_ret_sts_error THEN
818: RAISE fnd_api.g_exc_error;
819: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
820: RAISE fnd_api.g_exc_unexpected_error;
821: END IF;
822: end if; --l_remain_dd_qty >0
823: l_temp_index :=l_temp_index+1;
816: print_debug('l_new_dd_id '||l_new_dd_id,'INV_Express_pick.Pick_release ');
817: IF l_return_status = fnd_api.g_ret_sts_error THEN
818: RAISE fnd_api.g_exc_error;
819: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
820: RAISE fnd_api.g_exc_unexpected_error;
821: END IF;
822: end if; --l_remain_dd_qty >0
823: l_temp_index :=l_temp_index+1;
824: l_staged_rsv_id_tbl(l_temp_index).reservation_id :=l_reservation_id;
847: print_debug('Current reservation_id '||l_rsv_temp_rec.reservation_id,
848: 'INV_Express_pick.Pick_release ');
849: inv_reservation_pub.query_reservation(
850: p_api_version_number => 1.0
851: , p_init_msg_lst => fnd_api.g_true
852: , x_return_status => l_return_status
853: , x_msg_count => l_msg_count
854: , x_msg_data => l_msg_data
855: , p_query_input => l_rsv_temp_rec
856: , x_mtl_reservation_tbl => l_mtl_reservation
857: , x_mtl_reservation_tbl_count => l_mtl_reservation_count
858: , x_error_code => l_error_code
859: );
860: IF l_return_status = fnd_api.g_ret_sts_error THEN
861: RAISE fnd_api.g_exc_error;
862: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
863: RAISE fnd_api.g_exc_unexpected_error;
864: END IF;
857: , x_mtl_reservation_tbl_count => l_mtl_reservation_count
858: , x_error_code => l_error_code
859: );
860: IF l_return_status = fnd_api.g_ret_sts_error THEN
861: RAISE fnd_api.g_exc_error;
862: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
863: RAISE fnd_api.g_exc_unexpected_error;
864: END IF;
865:
858: , x_error_code => l_error_code
859: );
860: IF l_return_status = fnd_api.g_ret_sts_error THEN
861: RAISE fnd_api.g_exc_error;
862: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
863: RAISE fnd_api.g_exc_unexpected_error;
864: END IF;
865:
866: print_debug('Split WDD'||l_staged_rsv_id_tbl(l_res_index).split_delivery_detail_id
859: );
860: IF l_return_status = fnd_api.g_ret_sts_error THEN
861: RAISE fnd_api.g_exc_error;
862: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
863: RAISE fnd_api.g_exc_unexpected_error;
864: END IF;
865:
866: print_debug('Split WDD'||l_staged_rsv_id_tbl(l_res_index).split_delivery_detail_id
867: ,'INV_Express_pick.Pick_release ');
886: EXCEPTION
887: WHEN OTHERS THEN
888: fnd_message.set_name('INV', 'INV_DELIV_INFO_MISSING');
889: fnd_msg_pub.ADD;
890: RAISE fnd_api.g_exc_error;
891: END;
892: l_shipping_attr(1).preferred_grade := l_preferred_grade; --INVCONV kkillams
893: l_shipping_attr(1).source_header_id := l_source_header_id;
894: l_shipping_attr(1).source_line_id := l_source_line_id;
930: x_msg_count => l_msg_count,
931: x_msg_data => l_msg_data );
932: print_debug('after Set_Inv_PC_Attributes Ret status'||l_return_status, 'Inv_Express_Pick.Pick_release');
933:
934: IF (l_return_status = fnd_api.g_ret_sts_error) THEN
935: print_debug('return error E from Set_Inv_PC_Attributes', 'Inv_Express_Pick.Pick_release');
936: RAISE fnd_api.g_exc_error;
937: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
938: print_debug('return error U from Set_Inv_PC_Attributes', 'Inv_Express_Pick.Pick_release');
932: print_debug('after Set_Inv_PC_Attributes Ret status'||l_return_status, 'Inv_Express_Pick.Pick_release');
933:
934: IF (l_return_status = fnd_api.g_ret_sts_error) THEN
935: print_debug('return error E from Set_Inv_PC_Attributes', 'Inv_Express_Pick.Pick_release');
936: RAISE fnd_api.g_exc_error;
937: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
938: print_debug('return error U from Set_Inv_PC_Attributes', 'Inv_Express_Pick.Pick_release');
939: RAISE fnd_api.g_exc_unexpected_error;
940: END IF;
933:
934: IF (l_return_status = fnd_api.g_ret_sts_error) THEN
935: print_debug('return error E from Set_Inv_PC_Attributes', 'Inv_Express_Pick.Pick_release');
936: RAISE fnd_api.g_exc_error;
937: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
938: print_debug('return error U from Set_Inv_PC_Attributes', 'Inv_Express_Pick.Pick_release');
939: RAISE fnd_api.g_exc_unexpected_error;
940: END IF;
941:
935: print_debug('return error E from Set_Inv_PC_Attributes', 'Inv_Express_Pick.Pick_release');
936: RAISE fnd_api.g_exc_error;
937: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
938: print_debug('return error U from Set_Inv_PC_Attributes', 'Inv_Express_Pick.Pick_release');
939: RAISE fnd_api.g_exc_unexpected_error;
940: END IF;
941:
942: l_shipping_attr(1).action_flag:='U';
943: wsh_interface.update_shipping_attributes(p_source_code => 'INV',
942: l_shipping_attr(1).action_flag:='U';
943: wsh_interface.update_shipping_attributes(p_source_code => 'INV',
944: p_changed_attributes => l_shipping_attr,
945: x_return_status => l_return_status);
946: IF (l_return_status = fnd_api.g_ret_sts_error) THEN
947: RAISE fnd_api.g_exc_error;
948: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
949: RAISE fnd_api.g_exc_unexpected_error;
950: END IF;
943: wsh_interface.update_shipping_attributes(p_source_code => 'INV',
944: p_changed_attributes => l_shipping_attr,
945: x_return_status => l_return_status);
946: IF (l_return_status = fnd_api.g_ret_sts_error) THEN
947: RAISE fnd_api.g_exc_error;
948: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
949: RAISE fnd_api.g_exc_unexpected_error;
950: END IF;
951: p_pick_release_status_tbl(g_pr_status_cntr).delivery_detail_id := l_staged_rsv_id_tbl(l_res_index).delivery_detail_id;
944: p_changed_attributes => l_shipping_attr,
945: x_return_status => l_return_status);
946: IF (l_return_status = fnd_api.g_ret_sts_error) THEN
947: RAISE fnd_api.g_exc_error;
948: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
949: RAISE fnd_api.g_exc_unexpected_error;
950: END IF;
951: p_pick_release_status_tbl(g_pr_status_cntr).delivery_detail_id := l_staged_rsv_id_tbl(l_res_index).delivery_detail_id;
952: p_pick_release_status_tbl(g_pr_status_cntr).Pick_status :='S';
945: x_return_status => l_return_status);
946: IF (l_return_status = fnd_api.g_ret_sts_error) THEN
947: RAISE fnd_api.g_exc_error;
948: ELSIF l_return_status = fnd_api.g_ret_sts_unexp_error THEN
949: RAISE fnd_api.g_exc_unexpected_error;
950: END IF;
951: p_pick_release_status_tbl(g_pr_status_cntr).delivery_detail_id := l_staged_rsv_id_tbl(l_res_index).delivery_detail_id;
952: p_pick_release_status_tbl(g_pr_status_cntr).Pick_status :='S';
953: if l_staged_rsv_id_tbl(l_res_index).split_delivery_detail_id is not null then
964: x_return_status :=l_return_status ;
965: print_debug(' Exit status from Stage_dd_rsv'||x_return_status,'Inv_Express_pick.Pick_release' );
966:
967: EXCEPTION
968: WHEN FND_API.G_EXC_ERROR THEN
969: --dbms_output.put_line('SQLERRM'||SQLERRM);
970: --
971: x_return_status := FND_API.G_RET_STS_ERROR;
972: --
967: EXCEPTION
968: WHEN FND_API.G_EXC_ERROR THEN
969: --dbms_output.put_line('SQLERRM'||SQLERRM);
970: --
971: x_return_status := FND_API.G_RET_STS_ERROR;
972: --
973: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
974: , p_data => x_msg_data);
975: --
972: --
973: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
974: , p_data => x_msg_data);
975: --
976: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
977: --dbms_output.put_line('SQLERRM'||SQLERRM);
978: --
979: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
980: --
975: --
976: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
977: --dbms_output.put_line('SQLERRM'||SQLERRM);
978: --
979: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
980: --
981: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
982: , p_data => x_msg_data);
983: --
983: --
984: WHEN OTHERS THEN
985: --ROLLBACK TO EXPRESS_PICK_PUB;
986: --
987: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
988: --
989: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
990: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
991: END IF;
1041: G_REQUEST_ID NUMBER;
1042: --g_transaction_temp_id NUMBER;
1043: l_serial_number VARCHAR2(100);
1044: BEGIN
1045: x_return_status :=fnd_api.g_ret_sts_success;
1046:
1047: print_debug('Required Serialqty '||p_required_sl_qty,
1048: 'INV_Express_pick.Pick_release');
1049: if G_USER_ID IS NULL OR G_REQUEST_ID IS NULL then
1235:
1236:
1237:
1238: EXCEPTION
1239: when fnd_api.g_exc_error then
1240: x_return_status := fnd_api.g_ret_sts_error ;
1241: x_available_sl_qty := 0;
1242: x_serial_index := 0;
1243:
1236:
1237:
1238: EXCEPTION
1239: when fnd_api.g_exc_error then
1240: x_return_status := fnd_api.g_ret_sts_error ;
1241: x_available_sl_qty := 0;
1242: x_serial_index := 0;
1243:
1244: when fnd_api.g_exc_unexpected_error then
1240: x_return_status := fnd_api.g_ret_sts_error ;
1241: x_available_sl_qty := 0;
1242: x_serial_index := 0;
1243:
1244: when fnd_api.g_exc_unexpected_error then
1245: x_return_status := fnd_api.g_ret_sts_unexp_error ;
1246: x_available_sl_qty := 0;
1247: x_serial_index := 0;
1248:
1241: x_available_sl_qty := 0;
1242: x_serial_index := 0;
1243:
1244: when fnd_api.g_exc_unexpected_error then
1245: x_return_status := fnd_api.g_ret_sts_unexp_error ;
1246: x_available_sl_qty := 0;
1247: x_serial_index := 0;
1248:
1249: when others then
1246: x_available_sl_qty := 0;
1247: x_serial_index := 0;
1248:
1249: when others then
1250: x_return_status := fnd_api.g_ret_sts_unexp_error ;
1251: x_available_sl_qty := 0;
1252: x_serial_index := 0;
1253:
1254: if (fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error)) then