22:
23:
24: PROCEDURE Create_Logistics_Line(
25: p_api_version IN NUMBER,
26: p_commit IN VARCHAR2 := fnd_api.g_false,
27: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
28: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
29: x_return_status OUT NOCOPY VARCHAR2,
30: x_msg_count OUT NOCOPY NUMBER,
23:
24: PROCEDURE Create_Logistics_Line(
25: p_api_version IN NUMBER,
26: p_commit IN VARCHAR2 := fnd_api.g_false,
27: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
28: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
29: x_return_status OUT NOCOPY VARCHAR2,
30: x_msg_count OUT NOCOPY NUMBER,
31: x_msg_data OUT NOCOPY VARCHAR2,
24: PROCEDURE Create_Logistics_Line(
25: p_api_version IN NUMBER,
26: p_commit IN VARCHAR2 := fnd_api.g_false,
27: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
28: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
29: x_return_status OUT NOCOPY VARCHAR2,
30: x_msg_count OUT NOCOPY NUMBER,
31: x_msg_data OUT NOCOPY VARCHAR2,
32: p_product_txn_rec IN OUT NOCOPY csd_process_pvt.product_txn_rec,
48: p_product_txn_rec => p_product_txn_rec,
49: p_add_to_order_flag => p_add_to_order_flag
50: );
51:
52: IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
53: RAISE FND_API.G_EXC_ERROR;
54: END IF;
55:
56:
49: p_add_to_order_flag => p_add_to_order_flag
50: );
51:
52: IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
53: RAISE FND_API.G_EXC_ERROR;
54: END IF;
55:
56:
57: End Create_Logistics_Line;
58:
59:
60: PROCEDURE Create_Default_Logistics
61: ( p_api_version IN NUMBER,
62: p_commit IN VARCHAR2 := fnd_api.g_false,
63: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
64: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
65: p_repair_line_id IN NUMBER,
66: x_return_status OUT NOCOPY VARCHAR2,
59:
60: PROCEDURE Create_Default_Logistics
61: ( p_api_version IN NUMBER,
62: p_commit IN VARCHAR2 := fnd_api.g_false,
63: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
64: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
65: p_repair_line_id IN NUMBER,
66: x_return_status OUT NOCOPY VARCHAR2,
67: x_msg_count OUT NOCOPY NUMBER,
60: PROCEDURE Create_Default_Logistics
61: ( p_api_version IN NUMBER,
62: p_commit IN VARCHAR2 := fnd_api.g_false,
63: p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
64: p_validation_level IN NUMBER := fnd_api.g_valid_level_full,
65: p_repair_line_id IN NUMBER,
66: x_return_status OUT NOCOPY VARCHAR2,
67: x_msg_count OUT NOCOPY NUMBER,
68: x_msg_data OUT NOCOPY VARCHAR2
82: x_return_status => x_return_status,
83: x_msg_count => x_msg_count,
84: x_msg_data => x_msg_data);
85:
86: IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
87: RAISE FND_API.G_EXC_ERROR;
88: END IF;
89:
90:
83: x_msg_count => x_msg_count,
84: x_msg_data => x_msg_data);
85:
86: IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
87: RAISE FND_API.G_EXC_ERROR;
88: END IF;
89:
90:
91: End Create_Default_Logistics;
223: -- Create a Save Point before calling Update program
224: SAVEPOINT Update_Logistics_Line_Pvt;
225:
226: -- Initialize API return status to success
227: x_return_status := FND_API.G_RET_STS_SUCCESS;
228:
229: -- Standard call to check for API Version compatibility.
230: IF Not (FND_API.Compatible_API_Call(c_api_version,
231: p_api_version,
226: -- Initialize API return status to success
227: x_return_status := FND_API.G_RET_STS_SUCCESS;
228:
229: -- Standard call to check for API Version compatibility.
230: IF Not (FND_API.Compatible_API_Call(c_api_version,
231: p_api_version,
232: c_api_name,
233: G_PKG_NAME))
234: THEN
231: p_api_version,
232: c_api_name,
233: G_PKG_NAME))
234: THEN
235: RAISE FND_API.G_Exc_UnExpected_Error;
236: END IF;
237:
238: -- Initialize message list if p_init_msg_list is set to TRUE.
239: IF FND_API.to_Boolean(p_init_msg_list)
235: RAISE FND_API.G_Exc_UnExpected_Error;
236: END IF;
237:
238: -- Initialize message list if p_init_msg_list is set to TRUE.
239: IF FND_API.to_Boolean(p_init_msg_list)
240: THEN
241: FND_MSG_PUB.initialize;
242: END IF;
243:
302: -- Validate the Product_Transaction_Id exists in csd_product_transactions
303: IF NOT
304: (CSD_PROCESS_UTIL.Validate_prod_txn_id(p_prod_txn_id => p_Upd_ProdTxn_Rec.Product_Transaction_id))
305: THEN
306: RAISE FND_API.G_EXC_ERROR;
307: END IF;
308:
309: debug('ro status check...');
310: -- Check Repair Order Status if it Hold or Closed then raise exception
319: FND_MESSAGE.SET_NAME('CSD', 'CSD_RO_NOT_OPEN_NO_PRODTXN_UPD');
320: FND_MESSAGE.SET_TOKEN('RO_NUMBER', l_RO_NUMBER);
321: FND_MESSAGE.SET_TOKEN('RO_STATUS', l_RO_Status_Meaning);
322: FND_MSG_PUB.ADD;
323: RAISE FND_API.G_EXC_ERROR;
324:
325: END IF;
326:
327: debug('object version number check, db['||l_Product_Txn_Rec.Object_Version_NUMBER||']');
332: THEN
333:
334: FND_MESSAGE.SET_NAME('CSD', 'CSD_OBJECT_VERSION_NUMBER');
335: FND_MSG_PUB.ADD;
336: RAISE FND_API.G_EXC_ERROR;
337:
338: END IF;
339:
340: -- Set flag attributes values for record UpdateProdTrxn_Rec
354: x_Return_Status => x_Return_Status,
355: x_Msg_Data => x_Msg_Data,
356: x_Msg_Count => x_Msg_Count);
357:
358: IF x_Return_Status <> FND_API.G_RET_STS_SUCCESS
359: THEN
360: RAISE FND_API.G_EXC_ERROR;
361: END IF;
362:
356: x_Msg_Count => x_Msg_Count);
357:
358: IF x_Return_Status <> FND_API.G_RET_STS_SUCCESS
359: THEN
360: RAISE FND_API.G_EXC_ERROR;
361: END IF;
362:
363: END IF;
364:
375: x_Return_Status => x_Return_Status,
376: x_Msg_Data => x_Msg_Data,
377: x_Msg_Count => x_Msg_Count);
378:
379: IF x_Return_Status <> FND_API.G_RET_STS_SUCCESS
380: THEN
381: --dbms_output.put_line('Validation failed');
382: RAISE FND_API.G_EXC_ERROR;
383: END IF;
378:
379: IF x_Return_Status <> FND_API.G_RET_STS_SUCCESS
380: THEN
381: --dbms_output.put_line('Validation failed');
382: RAISE FND_API.G_EXC_ERROR;
383: END IF;
384: */
385: --Get Currency Code for a given Price List Id
386: Open PL_CurrencyCOde_Cur_Type(l_Product_Txn_Rec.Price_List_ID);
391: -- Call Private API to Update Product Transaction Record
392: -- CSD_LOGISTICS_PVT.Update_product_txn
393: --dbms_output.put_line('Calling update');
394: CSD_LOGISTICS_PVT.Update_product_txn(p_api_version => 1.0,
395: p_commit => fnd_api.g_false,
396: p_init_msg_list => fnd_api.g_false,
397: p_validation_level => fnd_api.g_valid_level_full,
398: x_product_txn_rec => l_Product_Txn_Rec,
399: x_return_status => x_Return_Status,
392: -- CSD_LOGISTICS_PVT.Update_product_txn
393: --dbms_output.put_line('Calling update');
394: CSD_LOGISTICS_PVT.Update_product_txn(p_api_version => 1.0,
395: p_commit => fnd_api.g_false,
396: p_init_msg_list => fnd_api.g_false,
397: p_validation_level => fnd_api.g_valid_level_full,
398: x_product_txn_rec => l_Product_Txn_Rec,
399: x_return_status => x_Return_Status,
400: x_msg_count => x_Msg_Count,
393: --dbms_output.put_line('Calling update');
394: CSD_LOGISTICS_PVT.Update_product_txn(p_api_version => 1.0,
395: p_commit => fnd_api.g_false,
396: p_init_msg_list => fnd_api.g_false,
397: p_validation_level => fnd_api.g_valid_level_full,
398: x_product_txn_rec => l_Product_Txn_Rec,
399: x_return_status => x_Return_Status,
400: x_msg_count => x_Msg_Count,
401: x_msg_data => x_Msg_Data);
399: x_return_status => x_Return_Status,
400: x_msg_count => x_Msg_Count,
401: x_msg_data => x_Msg_Data);
402:
403: IF x_Return_Status = FND_API.G_RET_STS_ERROR
404: THEN
405: RAISE FND_API.G_EXC_ERROR;
406: ELSIF x_Return_Status = FND_API.G_RET_STS_UNEXP_ERROR
407: THEN
401: x_msg_data => x_Msg_Data);
402:
403: IF x_Return_Status = FND_API.G_RET_STS_ERROR
404: THEN
405: RAISE FND_API.G_EXC_ERROR;
406: ELSIF x_Return_Status = FND_API.G_RET_STS_UNEXP_ERROR
407: THEN
408: RAISE Fnd_Api.G_Exc_UnExpected_Error;
409: END IF;
402:
403: IF x_Return_Status = FND_API.G_RET_STS_ERROR
404: THEN
405: RAISE FND_API.G_EXC_ERROR;
406: ELSIF x_Return_Status = FND_API.G_RET_STS_UNEXP_ERROR
407: THEN
408: RAISE Fnd_Api.G_Exc_UnExpected_Error;
409: END IF;
410:
404: THEN
405: RAISE FND_API.G_EXC_ERROR;
406: ELSIF x_Return_Status = FND_API.G_RET_STS_UNEXP_ERROR
407: THEN
408: RAISE Fnd_Api.G_Exc_UnExpected_Error;
409: END IF;
410:
411: x_object_version_number := l_Product_Txn_Rec.object_version_number;
412: x_order_header_id := l_Product_Txn_Rec.order_header_id;
414:
415:
416: EXCEPTION
417:
418: WHEN Fnd_Api.G_Exc_Error THEN
419:
420: x_return_status := Fnd_Api.G_Ret_Sts_Error;
421:
422: ROLLBACK TO Update_Logistics_Line_pvt;
416: EXCEPTION
417:
418: WHEN Fnd_Api.G_Exc_Error THEN
419:
420: x_return_status := Fnd_Api.G_Ret_Sts_Error;
421:
422: ROLLBACK TO Update_Logistics_Line_pvt;
423:
424: Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
423:
424: Fnd_Msg_Pub.Count_And_Get(p_count => x_msg_count,
425: p_data => x_msg_data);
426:
427: WHEN Fnd_Api.G_Exc_UnExpected_Error THEN
428:
429: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
430:
431: ROLLBACK TO Update_Logistics_Line_pvt;
425: p_data => x_msg_data);
426:
427: WHEN Fnd_Api.G_Exc_UnExpected_Error THEN
428:
429: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
430:
431: ROLLBACK TO Update_Logistics_Line_pvt;
432:
433: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
434: p_data => x_msg_data);
435:
436: WHEN OTHERS THEN
437:
438: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
439:
440: ROLLBACK TO Update_Logistics_Line_pvt;
441:
442: IF Fnd_Msg_Pub.Check_Msg_Level(Fnd_Msg_Pub.G_Msg_Lvl_Unexp_Error)
543: CSD_LOGISTICS_UTIL.interface_prodtxn( x_return_status => l_return_status,
544: p_product_txn_rec => x_product_txn_rec,
545: p_prodtxn_db_attr => l_prodtxn_db_attr,
546: px_order_rec => l_order_rec);
547: if NOT (l_Return_status = FND_API.G_RET_STS_SUCCESS) THEN
548: raise create_order;
549: END IF;
550:
551: IF l_prodtxn_db_attr.curr_book_order_flag <>
555: CSD_LOGISTICS_UTIL.book_prodtxn( x_return_status => l_return_status,
556: p_product_txn_rec => x_product_txn_rec,
557: p_prodtxn_db_attr => l_prodtxn_db_attr,
558: px_order_rec => l_order_rec);
559: if NOT (l_Return_status = FND_API.G_RET_STS_SUCCESS) THEN
560: raise book_order;
561: END IF;
562:
563:
570: CSD_LOGISTICS_UTIL.pickrelease_prodtxn( x_return_status => l_return_status,
571: p_product_txn_rec => x_product_txn_rec,
572: p_prodtxn_db_attr => l_prodtxn_db_attr,
573: px_order_rec => l_order_rec);
574: if(l_Return_status = FND_API.G_RET_STS_SUCCESS) THEN
575: raise release_order;
576: END IF;
577: END IF; --end of pick-release sales order
578:
584: p_product_txn_rec => x_product_txn_rec,
585: p_prodtxn_db_attr => l_prodtxn_db_attr,
586: px_order_rec => l_order_rec);
587:
588: if(l_Return_status = FND_API.G_RET_STS_SUCCESS) THEN
589: raise ship_order;
590: END IF;
591: END IF; -- end of ship sales order
592:
594:
595: -- Api body ends here
596:
597: -- Standard check of p_commit.
598: IF FND_API.To_Boolean(p_commit)
599: THEN
600: COMMIT WORK;
601: END IF;
602:
605: p_data => x_msg_data);
606: EXCEPTION
607: WHEN CREATE_ORDER THEN
608: rollback to UPDATE_PRODUCT_TXN_PVT;
609: x_return_status := FND_API.G_RET_STS_ERROR;
610: WHEN BOOK_ORDER THEN
611: rollback to UPDATE_PRODUCT_TXN_PVT;
612: x_return_status := FND_API.G_RET_STS_ERROR;
613: WHEN RELEASE_ORDER THEN
608: rollback to UPDATE_PRODUCT_TXN_PVT;
609: x_return_status := FND_API.G_RET_STS_ERROR;
610: WHEN BOOK_ORDER THEN
611: rollback to UPDATE_PRODUCT_TXN_PVT;
612: x_return_status := FND_API.G_RET_STS_ERROR;
613: WHEN RELEASE_ORDER THEN
614: rollback to UPDATE_PRODUCT_TXN_PVT;
615: x_return_status := FND_API.G_RET_STS_ERROR;
616: WHEN SHIP_ORDER THEN
611: rollback to UPDATE_PRODUCT_TXN_PVT;
612: x_return_status := FND_API.G_RET_STS_ERROR;
613: WHEN RELEASE_ORDER THEN
614: rollback to UPDATE_PRODUCT_TXN_PVT;
615: x_return_status := FND_API.G_RET_STS_ERROR;
616: WHEN SHIP_ORDER THEN
617: rollback to UPDATE_PRODUCT_TXN_PVT;
618: x_return_status := FND_API.G_RET_STS_ERROR;
619: WHEN FND_API.G_EXC_ERROR THEN
614: rollback to UPDATE_PRODUCT_TXN_PVT;
615: x_return_status := FND_API.G_RET_STS_ERROR;
616: WHEN SHIP_ORDER THEN
617: rollback to UPDATE_PRODUCT_TXN_PVT;
618: x_return_status := FND_API.G_RET_STS_ERROR;
619: WHEN FND_API.G_EXC_ERROR THEN
620: rollback to UPDATE_PRODUCT_TXN_PVT;
621: x_return_status := FND_API.G_RET_STS_ERROR;
622: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
615: x_return_status := FND_API.G_RET_STS_ERROR;
616: WHEN SHIP_ORDER THEN
617: rollback to UPDATE_PRODUCT_TXN_PVT;
618: x_return_status := FND_API.G_RET_STS_ERROR;
619: WHEN FND_API.G_EXC_ERROR THEN
620: rollback to UPDATE_PRODUCT_TXN_PVT;
621: x_return_status := FND_API.G_RET_STS_ERROR;
622: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
623: p_data => x_msg_data);
617: rollback to UPDATE_PRODUCT_TXN_PVT;
618: x_return_status := FND_API.G_RET_STS_ERROR;
619: WHEN FND_API.G_EXC_ERROR THEN
620: rollback to UPDATE_PRODUCT_TXN_PVT;
621: x_return_status := FND_API.G_RET_STS_ERROR;
622: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
623: p_data => x_msg_data);
624: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
625: rollback to UPDATE_PRODUCT_TXN_PVT;
620: rollback to UPDATE_PRODUCT_TXN_PVT;
621: x_return_status := FND_API.G_RET_STS_ERROR;
622: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
623: p_data => x_msg_data);
624: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
625: rollback to UPDATE_PRODUCT_TXN_PVT;
626: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
627: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
628: p_data => x_msg_data);
622: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
623: p_data => x_msg_data);
624: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
625: rollback to UPDATE_PRODUCT_TXN_PVT;
626: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
627: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
628: p_data => x_msg_data);
629: WHEN OTHERS THEN
630: rollback to UPDATE_PRODUCT_TXN_PVT;
627: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
628: p_data => x_msg_data);
629: WHEN OTHERS THEN
630: rollback to UPDATE_PRODUCT_TXN_PVT;
631: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
632: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
633: THEN
634: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
635: END IF;