[Home] [Help]
PACKAGE BODY: APPS.QP_LOCK_PRICELIST_GRP
Source
1 PACKAGE BODY QP_LOCK_PRICELIST_GRP AS
2 /* $Header: QPXGLKPB.pls 120.2 2005/10/13 16:02:26 rchellam noship $ */
3
4 PROCEDURE Lock_Price (p_source_list_line_id IN NUMBER,
5 p_list_source_code IN VARCHAR2,
6 p_orig_system_header_ref IN VARCHAR2,
7 --added for MOAC
8 p_org_id IN NUMBER DEFAULT NULL,
9 p_commit IN VARCHAR2 DEFAULT 'F',
10 --added for OKS bug 4504825
11 x_locked_price_list_id OUT NOCOPY NUMBER,
12 x_locked_list_line_id OUT NOCOPY NUMBER,
13 x_return_status OUT NOCOPY VARCHAR2,
14 x_msg_count OUT NOCOPY NUMBER,
15 x_msg_data OUT NOCOPY VARCHAR2)
16 IS
17
18 l_source_price_list_id NUMBER;
19
20 BEGIN
21
22 --Check if required parameters have been passed.
23 IF p_source_list_line_id IS NULL THEN
24 x_return_status := FND_API.G_RET_STS_ERROR;
25
26 FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
27 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','p_source_list_line_id');
28 fnd_msg_pub.Add;
29 END IF;
30
31 IF p_list_source_code IS NULL THEN
32 x_return_status := FND_API.G_RET_STS_ERROR;
33
34 FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
35 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','p_list_source_code');
36 fnd_msg_pub.Add;
37 END IF;
38
39 IF p_orig_system_header_ref IS NULL THEN
40 x_return_status := FND_API.G_RET_STS_ERROR;
41
42 FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
43 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','p_orig_system_header_ref');
44 fnd_msg_pub.Add;
45 END IF;
46
47 --Fetch source price list id for given p_source_list_line_id
48 BEGIN
49 SELECT list_header_id
50 INTO l_source_price_list_id
51 FROM qp_list_lines
52 WHERE list_line_id = p_source_list_line_id;
53 EXCEPTION
54 WHEN NO_DATA_FOUND THEN
55 x_return_status := FND_API.G_RET_STS_ERROR;
56 FND_MESSAGE.SET_NAME('QP','QP_INVALID_LIST_HEADER_ID');
57 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','p_source_list_line_id');
58 FND_MSG_PUB.Add;
59 END;
60
61 --Raise Error if error status is set.
62 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
63 RAISE FND_API.G_EXC_ERROR;
64 END IF;
65
66 --Call Private Lock_Price API
67 QP_LOCK_PRICELIST_PVT.Lock_Price (
68 p_source_price_list_id => l_source_price_list_id,
69 p_source_list_line_id => p_source_list_line_id,
70 p_startup_mode => p_list_source_code,
71 p_orig_system_header_ref => p_orig_system_header_ref,
72 --added for MOAC
73 p_org_id => p_org_id,
74 p_commit => p_commit,
75 --added for OKS bug 4504825
76 x_locked_price_list_id => x_locked_price_list_id,
77 x_locked_list_line_id => x_locked_list_line_id,
78 x_return_status => x_return_status,
79 x_msg_count => x_msg_count,
80 x_msg_data => x_msg_data);
81
82 EXCEPTION
83
84 WHEN FND_API.G_EXC_ERROR THEN
85
86 x_return_status := FND_API.G_RET_STS_ERROR;
87
88 -- Get message count and data
89 fnd_msg_pub.Count_And_Get
90 ( p_count => x_msg_count
91 , p_data => x_msg_data
92 );
93
94 WHEN OTHERS THEN
95
96 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
97
98 fnd_msg_pub.Add_Exc_Msg
99 ( G_PKG_NAME
100 , 'Process_Price_List'
101 , substr(sqlerrm, 1, 240)
102 );
103
104 -- Get message count and data
105 fnd_msg_pub.Count_And_Get
106 ( p_count => x_msg_count
107 , p_data => x_msg_data
108 );
109
110 END Lock_Price;
111
112 END QP_LOCK_PRICELIST_GRP;