134: p_shipped_quantity2 IN NUMBER,
135: x_return_status OUT NOCOPY VARCHAR2,
136: x_msg_data OUT NOCOPY VARCHAR2,
137: x_msg_count OUT NOCOPY NUMBER,
138: p_commit_flag IN VARCHAR2 DEFAULT FND_API.g_false,
139: p_relieve_rsv IN VARCHAR2 DEFAULT 'Y')
140: IS
141: cursor delivery_line(p_delivery_detail_id NUMBER) is
142: select dd.delivery_detail_id,
191: l_msg_count NUMBER;
192: l_msg_data VARCHAR2(2000);
193:
194: BEGIN
195: x_return_status := fnd_api.g_ret_sts_success;
196:
197: --this cursor only returns 1 record because delivery_line_id is an
198: --unique key
199: OPEN delivery_line(p_delivery_line_id);
274: ELSE --corresponding if: p_shipped_quantity = 0
275:
276: WSH_DELIVERY_DETAILS_PUB.split_line
277: (p_api_version => 1.0,
278: p_init_msg_list => fnd_api.g_false,
279: p_commit => p_commit_flag,
280: x_return_status => l_return_status,
281: x_msg_count => l_msg_count,
282: x_msg_data => l_msg_data,
284: x_new_detail_id => l_bo_delivery_detail_id,
285: x_split_quantity => l_backorder_quantities_table(1),
286: x_split_quantity2 => l_backorder_quantities2_table(1));
287:
288: IF l_return_status <> fnd_api.g_ret_sts_success THEN
289: RAISE fnd_api.g_exc_unexpected_error;
290: END IF;
291:
292: l_detail_attributes(1).delivery_detail_id :=
285: x_split_quantity => l_backorder_quantities_table(1),
286: x_split_quantity2 => l_backorder_quantities2_table(1));
287:
288: IF l_return_status <> fnd_api.g_ret_sts_success THEN
289: RAISE fnd_api.g_exc_unexpected_error;
290: END IF;
291:
292: l_detail_attributes(1).delivery_detail_id :=
293: l_delivery_details_id_table(1);
295: l_detail_attributes(1).shipped_quantity2 := p_shipped_quantity2;
296:
297: wsh_delivery_details_pub.update_shipping_attributes
298: (p_api_version_number => 1.0,
299: p_init_msg_list => fnd_api.g_false,
300: p_commit => p_commit_flag,
301: x_return_status => l_return_status,
302: x_msg_count => l_msg_count,
303: x_msg_data => l_msg_data,
303: x_msg_data => l_msg_data,
304: p_changed_attributes => l_detail_attributes,
305: p_source_code => 'OE');
306:
307: IF l_return_status <> fnd_api.g_ret_sts_success THEN
308: RAISE fnd_api.g_exc_unexpected_error;
309: END IF;
310:
311: l_delivery_details_id_table(1) := l_bo_delivery_detail_id;
304: p_changed_attributes => l_detail_attributes,
305: p_source_code => 'OE');
306:
307: IF l_return_status <> fnd_api.g_ret_sts_success THEN
308: RAISE fnd_api.g_exc_unexpected_error;
309: END IF;
310:
311: l_delivery_details_id_table(1) := l_bo_delivery_detail_id;
312: END IF;
324: x_out_rows => l_out_rows,
325: x_return_status => l_return_status);
326:
327:
328: IF l_return_status <> fnd_api.g_ret_sts_success THEN
329: RAISE fnd_api.g_exc_unexpected_error;
330: END IF;
331:
332: IF p_commit_flag = fnd_api.g_true THEN
325: x_return_status => l_return_status);
326:
327:
328: IF l_return_status <> fnd_api.g_ret_sts_success THEN
329: RAISE fnd_api.g_exc_unexpected_error;
330: END IF;
331:
332: IF p_commit_flag = fnd_api.g_true THEN
333: commit;
328: IF l_return_status <> fnd_api.g_ret_sts_success THEN
329: RAISE fnd_api.g_exc_unexpected_error;
330: END IF;
331:
332: IF p_commit_flag = fnd_api.g_true THEN
333: commit;
334: END IF;
335: EXCEPTION
336: WHEN FND_API.G_EXC_ERROR THEN
332: IF p_commit_flag = fnd_api.g_true THEN
333: commit;
334: END IF;
335: EXCEPTION
336: WHEN FND_API.G_EXC_ERROR THEN
337: x_return_status := FND_API.G_RET_STS_ERROR;
338: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
339: , p_data => x_msg_data);
340: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
333: commit;
334: END IF;
335: EXCEPTION
336: WHEN FND_API.G_EXC_ERROR THEN
337: x_return_status := FND_API.G_RET_STS_ERROR;
338: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
339: , p_data => x_msg_data);
340: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
341: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
336: WHEN FND_API.G_EXC_ERROR THEN
337: x_return_status := FND_API.G_RET_STS_ERROR;
338: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
339: , p_data => x_msg_data);
340: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
341: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
342: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
343: , p_data => x_msg_data);
344: WHEN OTHERS THEN
337: x_return_status := FND_API.G_RET_STS_ERROR;
338: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
339: , p_data => x_msg_data);
340: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
341: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
342: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
343: , p_data => x_msg_data);
344: WHEN OTHERS THEN
345: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
341: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
342: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
343: , p_data => x_msg_data);
344: WHEN OTHERS THEN
345: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
346: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
347: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, 'INV_LINE_RETURN_TO_STOCK');
348: END IF;
349: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count
366: l_detail_attributes(1).delivery_detail_id := p_delivery_line_id;
367:
368: wsh_delivery_details_pub.update_shipping_attributes
369: (p_api_version_number => 1.0,
370: p_init_msg_list => FND_API.G_TRUE,
371: p_commit => FND_API.G_FALSE,
372: x_return_status => x_return_status,
373: x_msg_count => x_msg_count,
374: x_msg_data => x_msg_data,
367:
368: wsh_delivery_details_pub.update_shipping_attributes
369: (p_api_version_number => 1.0,
370: p_init_msg_list => FND_API.G_TRUE,
371: p_commit => FND_API.G_FALSE,
372: x_return_status => x_return_status,
373: x_msg_count => x_msg_count,
374: x_msg_data => x_msg_data,
375: p_changed_attributes => l_detail_attributes,
374: x_msg_data => x_msg_data,
375: p_changed_attributes => l_detail_attributes,
376: p_source_code => 'OE');
377:
378: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
379: RAISE fnd_api.g_exc_unexpected_error;
380: END IF;
381:
382: EXCEPTION
375: p_changed_attributes => l_detail_attributes,
376: p_source_code => 'OE');
377:
378: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
379: RAISE fnd_api.g_exc_unexpected_error;
380: END IF;
381:
382: EXCEPTION
383: WHEN fnd_api.g_exc_unexpected_error THEN
379: RAISE fnd_api.g_exc_unexpected_error;
380: END IF;
381:
382: EXCEPTION
383: WHEN fnd_api.g_exc_unexpected_error THEN
384: wsh_util_core.get_messages
385: (p_init_msg_list => 'Y',
386: x_summary => x_msg_data,
387: x_details => l_details,
461: l_detail_attributes(1).delivery_detail_id := p_delivery_line_id;
462:
463: wsh_delivery_details_pub.update_shipping_attributes
464: (p_api_version_number => 1.0,
465: p_init_msg_list => FND_API.G_TRUE,
466: p_commit => FND_API.G_FALSE,
467: x_return_status => x_return_status,
468: x_msg_count => x_msg_count,
469: x_msg_data => x_msg_data,
462:
463: wsh_delivery_details_pub.update_shipping_attributes
464: (p_api_version_number => 1.0,
465: p_init_msg_list => FND_API.G_TRUE,
466: p_commit => FND_API.G_FALSE,
467: x_return_status => x_return_status,
468: x_msg_count => x_msg_count,
469: x_msg_data => x_msg_data,
470: p_changed_attributes => l_detail_attributes,
469: x_msg_data => x_msg_data,
470: p_changed_attributes => l_detail_attributes,
471: p_source_code => 'OE');
472:
473: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
474: RAISE fnd_api.g_exc_unexpected_error;
475: END IF;
476:
477: EXCEPTION
470: p_changed_attributes => l_detail_attributes,
471: p_source_code => 'OE');
472:
473: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
474: RAISE fnd_api.g_exc_unexpected_error;
475: END IF;
476:
477: EXCEPTION
478: WHEN fnd_api.g_exc_unexpected_error THEN
474: RAISE fnd_api.g_exc_unexpected_error;
475: END IF;
476:
477: EXCEPTION
478: WHEN fnd_api.g_exc_unexpected_error THEN
479: wsh_util_core.get_messages
480: (p_init_msg_list => 'Y',
481: x_summary => x_msg_data,
482: x_details => l_details,
544: unspec_ship_set_exists EXCEPTION;
545: incomplete_delivery EXCEPTION;
546:
547: BEGIN
548: x_return_status := FND_API.G_RET_STS_SUCCESS;
549: x_ret_code := 0;
550: fnd_msg_pub.initialize;
551:
552: IF p_ship_delivery = 'YES' THEN
560: FND_MESSAGE.SET_TOKEN('SHIP_SET_NAME', l_ship_set);
561: FND_MSG_PUB.ADD;
562: RAISE unspec_ship_set_exists;
563: ELSIF x_return_status = 'U' THEN
564: RAISE fnd_api.g_exc_unexpected_error;
565: END IF;
566:
567: CHECK_COMPLETE_DELVIERY(
568: p_delivery_id => p_delivery_id,
572: FND_MESSAGE.SET_NAME('INV', 'WMS_INCOMPLETE_DELI');
573: FND_MSG_PUB.ADD;
574: RAISE incomplete_delivery;
575: ELSIF x_return_status = 'U' THEN
576: RAISE fnd_api.g_exc_unexpected_error;
577: END IF;
578:
579: WMS_SHIPPING_TRANSACTION_PUB.SHIP_CONFIRM_ALL(
580: p_delivery_id => p_delivery_id,
608: x_msg_count => x_msg_count);
609: END IF;
610:
611: IF x_return_status not in ('S','W') THEN
612: RAISE fnd_api.g_exc_unexpected_error;
613: END IF;
614:
615: EXCEPTION
616: WHEN unspec_ship_set_exists THEN
613: END IF;
614:
615: EXCEPTION
616: WHEN unspec_ship_set_exists THEN
617: x_return_status := fnd_api.g_ret_sts_error;
618: x_ret_code := 1;
619:
620: -- Get message count and data
621: fnd_msg_pub.count_and_get
623: , p_data => x_msg_data
624: );
625:
626: WHEN incomplete_delivery THEN
627: x_return_status := fnd_api.g_ret_sts_error;
628: x_ret_code := 2;
629:
630: -- Get message count and data
631: fnd_msg_pub.count_and_get
633: , p_data => x_msg_data
634: );
635:
636: WHEN OTHERS THEN
637: x_return_status := fnd_api.g_ret_sts_unexp_error;
638:
639: END CONFIRM_DELIVERY;
640:
641:
661: INV_SHIPPING_TRANSACTION_PUB.UNASSIGN_DELIVERY_LINES(
662: p_delivery_id => p_delivery_id,
663: x_return_Status => x_return_status,
664: x_error_msg => l_error_msg);
665: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
666: RAISE unassign_lines_exc;
667: END IF;
668:
669: WMS_SHIPPING_TRANSACTION_PUB.SHIP_CONFIRM_ALL(
680: x_return_status => x_return_status,
681: x_msg_data => x_msg_data,
682: x_msg_count => x_msg_count);
683:
684: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
685: RAISE fnd_api.g_exc_unexpected_error;
686: END IF;
687:
688: EXCEPTION
681: x_msg_data => x_msg_data,
682: x_msg_count => x_msg_count);
683:
684: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
685: RAISE fnd_api.g_exc_unexpected_error;
686: END IF;
687:
688: EXCEPTION
689: WHEN unassign_lines_exc THEN
686: END IF;
687:
688: EXCEPTION
689: WHEN unassign_lines_exc THEN
690: x_return_status := fnd_api.g_ret_sts_error;
691:
692: WHEN OTHERS THEN
693: x_return_status := fnd_api.g_ret_sts_unexp_error;
694:
689: WHEN unassign_lines_exc THEN
690: x_return_status := fnd_api.g_ret_sts_error;
691:
692: WHEN OTHERS THEN
693: x_return_status := fnd_api.g_ret_sts_unexp_error;
694:
695: -- Get message count and data
696: fnd_msg_pub.count_and_get
697: ( p_count => x_msg_count