DBA Data[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;