40:
41:
42: BEGIN
43:
44: IF fnd_api.to_boolean(P_Init_Msg_List) THEN
45: FND_MSG_PUB.initialize;
46: END IF;
47:
48: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
44: IF fnd_api.to_boolean(P_Init_Msg_List) THEN
45: FND_MSG_PUB.initialize;
46: END IF;
47:
48: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
49: l_api_name, g_pkg_name)
50: THEN
51: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
52: END IF;
47:
48: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
49: l_api_name, g_pkg_name)
50: THEN
51: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
52: END IF;
53:
54: IF (g_fnd_debug = 'Y') THEN
55: IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
61: END IF;
62:
63: l_status_code := PO_ACKNOWLEDGE_PO_PVT.Get_Po_Status_Code (
64: p_api_version => 1.0,
65: p_init_msg_list => FND_API.G_FALSE,
66: p_po_header_id => p_po_header_id,
67: p_po_release_id => p_po_release_id );
68:
69: IF (g_fnd_debug = 'Y') THEN
122:
123:
124: BEGIN
125:
126: IF fnd_api.to_boolean(P_Init_Msg_List) THEN
127: FND_MSG_PUB.initialize;
128: END IF;
129:
130: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
126: IF fnd_api.to_boolean(P_Init_Msg_List) THEN
127: FND_MSG_PUB.initialize;
128: END IF;
129:
130: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
131: l_api_name, g_pkg_name) THEN
132: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
133: END IF;
134:
128: END IF;
129:
130: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
131: l_api_name, g_pkg_name) THEN
132: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
133: END IF;
134:
135: IF (g_fnd_debug = 'Y') THEN
136: IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
141: END IF;
142:
143: l_shipment_status := PO_ACKNOWLEDGE_PO_PVT.Get_Shipment_Ack_Change_Status(
144: p_api_version => 1.0,
145: p_init_msg_list => FND_API.G_FALSE,
146: P_line_location_id => P_line_location_id,
147: p_po_header_id => P_po_header_id,
148: p_po_release_id => p_po_release_id,
149: p_revision_num => p_revision_num );
185: * table. It also checks if all shipments are acknowledged after
186: * inserting the record, if yes then post the header level acknowledge
187: * result.
188: * Returns:
189: * x_return_status - FND_API.G_RET_STS_SUCCESS if all messages are appended
190: * FND_API.G_RET_STS_ERROR if an error occurs
191: * FND_API.G_RET_STS_UNEXP_ERROR if unexpected error occurs
192: */
193:
186: * inserting the record, if yes then post the header level acknowledge
187: * result.
188: * Returns:
189: * x_return_status - FND_API.G_RET_STS_SUCCESS if all messages are appended
190: * FND_API.G_RET_STS_ERROR if an error occurs
191: * FND_API.G_RET_STS_UNEXP_ERROR if unexpected error occurs
192: */
193:
194: PROCEDURE Acknowledge_Shipment (
187: * result.
188: * Returns:
189: * x_return_status - FND_API.G_RET_STS_SUCCESS if all messages are appended
190: * FND_API.G_RET_STS_ERROR if an error occurs
191: * FND_API.G_RET_STS_UNEXP_ERROR if unexpected error occurs
192: */
193:
194: PROCEDURE Acknowledge_Shipment (
195: p_api_version IN NUMBER,
209: l_api_version CONSTANT NUMBER := 1.0;
210:
211: BEGIN
212:
213: IF fnd_api.to_boolean(P_Init_Msg_List) THEN
214: FND_MSG_PUB.initialize;
215: END IF;
216:
217: IF NOT FND_API.Compatible_API_Call ( l_api_version,
213: IF fnd_api.to_boolean(P_Init_Msg_List) THEN
214: FND_MSG_PUB.initialize;
215: END IF;
216:
217: IF NOT FND_API.Compatible_API_Call ( l_api_version,
218: p_api_version,
219: l_api_name,
220: g_pkg_name)
221: THEN
218: p_api_version,
219: l_api_name,
220: g_pkg_name)
221: THEN
222: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
223: END IF;
224:
225: x_return_status := FND_API.G_RET_STS_SUCCESS;
226:
221: THEN
222: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
223: END IF;
224:
225: x_return_status := FND_API.G_RET_STS_SUCCESS;
226:
227: IF (g_fnd_debug = 'Y') THEN
228: IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
229: FND_LOG.string(FND_LOG.LEVEL_PROCEDURE, g_module_prefix ||
233: END IF;
234:
235: PO_ACKNOWLEDGE_PO_PVT.Acknowledge_shipment(
236: p_api_version => 1.0,
237: p_Init_Msg_List => FND_API.G_FALSE,
238: x_return_status => x_return_status,
239: p_line_location_id => p_line_location_id,
240: p_po_header_id => p_po_header_id,
241: p_po_release_id => p_po_release_id,
247:
248:
249:
250: EXCEPTION
251: WHEN FND_API.g_exc_error THEN
252: x_return_status := FND_API.g_ret_sts_error;
253: WHEN FND_API.g_exc_unexpected_error THEN
254: x_return_status := FND_API.g_ret_sts_unexp_error;
255: WHEN OTHERS THEN
248:
249:
250: EXCEPTION
251: WHEN FND_API.g_exc_error THEN
252: x_return_status := FND_API.g_ret_sts_error;
253: WHEN FND_API.g_exc_unexpected_error THEN
254: x_return_status := FND_API.g_ret_sts_unexp_error;
255: WHEN OTHERS THEN
256: x_return_status := FND_API.g_ret_sts_unexp_error;
249:
250: EXCEPTION
251: WHEN FND_API.g_exc_error THEN
252: x_return_status := FND_API.g_ret_sts_error;
253: WHEN FND_API.g_exc_unexpected_error THEN
254: x_return_status := FND_API.g_ret_sts_unexp_error;
255: WHEN OTHERS THEN
256: x_return_status := FND_API.g_ret_sts_unexp_error;
257: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
250: EXCEPTION
251: WHEN FND_API.g_exc_error THEN
252: x_return_status := FND_API.g_ret_sts_error;
253: WHEN FND_API.g_exc_unexpected_error THEN
254: x_return_status := FND_API.g_ret_sts_unexp_error;
255: WHEN OTHERS THEN
256: x_return_status := FND_API.g_ret_sts_unexp_error;
257: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
258: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
252: x_return_status := FND_API.g_ret_sts_error;
253: WHEN FND_API.g_exc_unexpected_error THEN
254: x_return_status := FND_API.g_ret_sts_unexp_error;
255: WHEN OTHERS THEN
256: x_return_status := FND_API.g_ret_sts_unexp_error;
257: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
258: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
259: IF (g_fnd_debug = 'Y') THEN
260: IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_UNEXPECTED) THEN
275: * Effects: Carry over the shipment_level acknowledgement results from the
276: * previous revision, it is called before launching PO approval
277: * workflow after supplier's change has been accepted by buyer.
278: * Returns:
279: * x_return_status - FND_API.G_RET_STS_SUCCESS if all messages are appended
280: * FND_API.G_RET_STS_ERROR if an error occurs
281: * FND_API.G_RET_STS_UNEXP_ERROR if unexpected error occurs
282: */
283: PROCEDURE Carry_Over_Acknowledgement (
276: * previous revision, it is called before launching PO approval
277: * workflow after supplier's change has been accepted by buyer.
278: * Returns:
279: * x_return_status - FND_API.G_RET_STS_SUCCESS if all messages are appended
280: * FND_API.G_RET_STS_ERROR if an error occurs
281: * FND_API.G_RET_STS_UNEXP_ERROR if unexpected error occurs
282: */
283: PROCEDURE Carry_Over_Acknowledgement (
284: p_api_version IN NUMBER,
277: * workflow after supplier's change has been accepted by buyer.
278: * Returns:
279: * x_return_status - FND_API.G_RET_STS_SUCCESS if all messages are appended
280: * FND_API.G_RET_STS_ERROR if an error occurs
281: * FND_API.G_RET_STS_UNEXP_ERROR if unexpected error occurs
282: */
283: PROCEDURE Carry_Over_Acknowledgement (
284: p_api_version IN NUMBER,
285: p_Init_Msg_List IN VARCHAR2,
294:
295:
296: BEGIN
297:
298: IF fnd_api.to_boolean(P_Init_Msg_List) THEN
299: FND_MSG_PUB.initialize;
300: END IF;
301:
302: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
298: IF fnd_api.to_boolean(P_Init_Msg_List) THEN
299: FND_MSG_PUB.initialize;
300: END IF;
301:
302: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
303: l_api_name, g_pkg_name)
304: THEN
305: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
306: END IF;
301:
302: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
303: l_api_name, g_pkg_name)
304: THEN
305: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
306: END IF;
307:
308: x_return_status := FND_API.G_RET_STS_SUCCESS;
309:
304: THEN
305: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
306: END IF;
307:
308: x_return_status := FND_API.G_RET_STS_SUCCESS;
309:
310: IF (g_fnd_debug = 'Y') THEN
311: IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
312: FND_LOG.string(FND_LOG.LEVEL_PROCEDURE, g_module_prefix ||
317: END IF;
318:
319: PO_ACKNOWLEDGE_PO_PVT.Carry_Over_Acknowledgement(
320: p_api_version => 1.0,
321: p_Init_Msg_List => FND_API.G_FALSE,
322: x_return_status => x_return_status,
323: p_po_header_id => p_po_header_id,
324: p_po_release_id => p_po_release_id,
325: p_revision_num => p_revision_num );
325: p_revision_num => p_revision_num );
326:
327:
328: EXCEPTION
329: WHEN FND_API.g_exc_error THEN
330: x_return_status := FND_API.g_ret_sts_error;
331: WHEN FND_API.g_exc_unexpected_error THEN
332: x_return_status := FND_API.g_ret_sts_unexp_error;
333: WHEN OTHERS THEN
326:
327:
328: EXCEPTION
329: WHEN FND_API.g_exc_error THEN
330: x_return_status := FND_API.g_ret_sts_error;
331: WHEN FND_API.g_exc_unexpected_error THEN
332: x_return_status := FND_API.g_ret_sts_unexp_error;
333: WHEN OTHERS THEN
334: x_return_status := FND_API.g_ret_sts_unexp_error;
327:
328: EXCEPTION
329: WHEN FND_API.g_exc_error THEN
330: x_return_status := FND_API.g_ret_sts_error;
331: WHEN FND_API.g_exc_unexpected_error THEN
332: x_return_status := FND_API.g_ret_sts_unexp_error;
333: WHEN OTHERS THEN
334: x_return_status := FND_API.g_ret_sts_unexp_error;
335: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
328: EXCEPTION
329: WHEN FND_API.g_exc_error THEN
330: x_return_status := FND_API.g_ret_sts_error;
331: WHEN FND_API.g_exc_unexpected_error THEN
332: x_return_status := FND_API.g_ret_sts_unexp_error;
333: WHEN OTHERS THEN
334: x_return_status := FND_API.g_ret_sts_unexp_error;
335: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
336: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
330: x_return_status := FND_API.g_ret_sts_error;
331: WHEN FND_API.g_exc_unexpected_error THEN
332: x_return_status := FND_API.g_ret_sts_unexp_error;
333: WHEN OTHERS THEN
334: x_return_status := FND_API.g_ret_sts_unexp_error;
335: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
336: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
337: IF (g_fnd_debug = 'Y') THEN
338: IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_UNEXPECTED) THEN
351: * Requires: PO_HEADER_ID,PO_RELEASE_ID,REVISION_NUM
352: * Modifies:
353: * Effects: Returns if all the shipments have been either changed
354: * or acknowledged.
355: * Returns: FND_API.G_FALSE or FND_API.G_TRUE
356: */
357:
358: FUNCTION All_Shipments_Responded (
359: p_api_version IN NUMBER,
368: l_result VARCHAR2(1) := NULL;
369:
370: BEGIN
371:
372: IF fnd_api.to_boolean(P_Init_Msg_List) THEN
373: FND_MSG_PUB.initialize;
374: END IF;
375:
376: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
372: IF fnd_api.to_boolean(P_Init_Msg_List) THEN
373: FND_MSG_PUB.initialize;
374: END IF;
375:
376: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
377: l_api_name, g_pkg_name)
378: THEN
379: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
380: END IF;
375:
376: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
377: l_api_name, g_pkg_name)
378: THEN
379: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
380: END IF;
381:
382: IF (g_fnd_debug = 'Y') THEN
383: IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
390: END IF;
391:
392: l_result := PO_ACKNOWLEDGE_PO_PVT.All_Shipments_Responded (
393: p_api_version => 1.0,
394: p_Init_Msg_List => FND_API.G_FALSE,
395: p_po_header_id => p_po_header_id,
396: p_po_release_id => p_po_release_id,
397: p_revision_num => p_revision_num );
398:
432: * satisfied, post the header level acknowledgement record.
433: * This API should be called after supplier submits the change requests and
434: * after buyer responds to all supplier changes without revision increase.
435: * Returns:
436: * x_return_status - FND_API.G_RET_STS_SUCCESS if all messages are appended
437: * FND_API.G_RET_STS_ERROR if an error occurs
438: * FND_API.G_RET_STS_UNEXP_ERROR if unexpected error occurs
439: */
440: PROCEDURE Set_Header_Acknowledgement (
433: * This API should be called after supplier submits the change requests and
434: * after buyer responds to all supplier changes without revision increase.
435: * Returns:
436: * x_return_status - FND_API.G_RET_STS_SUCCESS if all messages are appended
437: * FND_API.G_RET_STS_ERROR if an error occurs
438: * FND_API.G_RET_STS_UNEXP_ERROR if unexpected error occurs
439: */
440: PROCEDURE Set_Header_Acknowledgement (
441: p_api_version IN NUMBER,
434: * after buyer responds to all supplier changes without revision increase.
435: * Returns:
436: * x_return_status - FND_API.G_RET_STS_SUCCESS if all messages are appended
437: * FND_API.G_RET_STS_ERROR if an error occurs
438: * FND_API.G_RET_STS_UNEXP_ERROR if unexpected error occurs
439: */
440: PROCEDURE Set_Header_Acknowledgement (
441: p_api_version IN NUMBER,
442: p_Init_Msg_List IN VARCHAR2,
450:
451:
452: BEGIN
453:
454: IF fnd_api.to_boolean(P_Init_Msg_List) THEN
455: FND_MSG_PUB.initialize;
456: END IF;
457:
458: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
454: IF fnd_api.to_boolean(P_Init_Msg_List) THEN
455: FND_MSG_PUB.initialize;
456: END IF;
457:
458: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
459: l_api_name, g_pkg_name)
460: THEN
461: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
462: END IF;
457:
458: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version,
459: l_api_name, g_pkg_name)
460: THEN
461: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
462: END IF;
463:
464: x_return_status := FND_API.G_RET_STS_SUCCESS;
465:
460: THEN
461: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
462: END IF;
463:
464: x_return_status := FND_API.G_RET_STS_SUCCESS;
465:
466: IF (g_fnd_debug = 'Y') THEN
467: IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_PROCEDURE) THEN
468: FND_LOG.string(FND_LOG.LEVEL_PROCEDURE, g_module_prefix ||
473: END IF;
474:
475: PO_ACKNOWLEDGE_PO_PVT.Set_Header_Acknowledgement (
476: p_api_version => 1.0,
477: p_Init_Msg_List => FND_API.G_FALSE,
478: x_return_status => x_return_status,
479: p_po_header_id => p_po_header_id,
480: p_po_release_id => p_po_release_id );
481:
480: p_po_release_id => p_po_release_id );
481:
482:
483: EXCEPTION
484: WHEN FND_API.g_exc_error THEN
485: x_return_status := FND_API.g_ret_sts_error;
486: WHEN FND_API.g_exc_unexpected_error THEN
487: x_return_status := FND_API.g_ret_sts_unexp_error;
488: WHEN OTHERS THEN
481:
482:
483: EXCEPTION
484: WHEN FND_API.g_exc_error THEN
485: x_return_status := FND_API.g_ret_sts_error;
486: WHEN FND_API.g_exc_unexpected_error THEN
487: x_return_status := FND_API.g_ret_sts_unexp_error;
488: WHEN OTHERS THEN
489: x_return_status := FND_API.g_ret_sts_unexp_error;
482:
483: EXCEPTION
484: WHEN FND_API.g_exc_error THEN
485: x_return_status := FND_API.g_ret_sts_error;
486: WHEN FND_API.g_exc_unexpected_error THEN
487: x_return_status := FND_API.g_ret_sts_unexp_error;
488: WHEN OTHERS THEN
489: x_return_status := FND_API.g_ret_sts_unexp_error;
490: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
483: EXCEPTION
484: WHEN FND_API.g_exc_error THEN
485: x_return_status := FND_API.g_ret_sts_error;
486: WHEN FND_API.g_exc_unexpected_error THEN
487: x_return_status := FND_API.g_ret_sts_unexp_error;
488: WHEN OTHERS THEN
489: x_return_status := FND_API.g_ret_sts_unexp_error;
490: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
491: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
485: x_return_status := FND_API.g_ret_sts_error;
486: WHEN FND_API.g_exc_unexpected_error THEN
487: x_return_status := FND_API.g_ret_sts_unexp_error;
488: WHEN OTHERS THEN
489: x_return_status := FND_API.g_ret_sts_unexp_error;
490: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
491: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
492: IF (g_fnd_debug = 'Y') THEN
493: IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_UNEXPECTED) THEN