DBA Data[Home] [Help]

PACKAGE BODY: APPS.ASO_COPY_QUOTE_PUB

Source


1 PACKAGE BODY ASO_COPY_QUOTE_PUB as
2 /* $Header: asopcpyb.pls 120.1 2005/06/29 12:36:39 appldev ship $ */
3 -- Start of Comments
4 -- Package name     : ASO_COPY_QUOTE_PUB
5 -- Purpose          :
6 -- History          :
7 -- NOTE             :
8 -- End of Comments
9 
10 
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'ASO_Copy_Quote_PUB';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asopcpyb.pls';
13 
14 
15 PROCEDURE Copy_Quote(
16      P_Api_Version_Number          IN   NUMBER,
17      P_Init_Msg_List               IN   VARCHAR2     := FND_API.G_FALSE,
18      P_Commit                      IN   VARCHAR2     := FND_API.G_FALSE,
19      P_Copy_Quote_Header_Rec       IN   ASO_COPY_QUOTE_PUB.Copy_Quote_Header_Rec_Type
20 									:= ASO_COPY_QUOTE_PUB.G_MISS_Copy_Quote_Header_Rec,
21      P_Copy_Quote_Control_Rec      IN   ASO_COPY_QUOTE_PUB.Copy_Quote_Control_Rec_Type
22 									:= ASO_COPY_QUOTE_PUB.G_MISS_Copy_Quote_Control_Rec,
23      X_Qte_Header_Id               OUT NOCOPY /* file.sql.39 change */   NUMBER,
24 	X_Qte_Number			 OUT NOCOPY /* file.sql.39 change */   NUMBER,
25      X_Return_Status               OUT NOCOPY /* file.sql.39 change */   VARCHAR2,
26      X_Msg_Count                   OUT NOCOPY /* file.sql.39 change */   VARCHAR2,
27      X_Msg_Data                    OUT NOCOPY /* file.sql.39 change */   VARCHAR2 )
28 IS
29 
30   l_api_version             NUMBER        := 1.0;
31   l_api_name                VARCHAR2(50)  := 'Copy_Quote';
32 
33 BEGIN
34 
35   -- Standard Start of API savepoint
36   SAVEPOINT Copy_Quote_PUB;
37 
38   aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
39 
40   -- Standard call to check for call compatibility.
41   IF NOT FND_API.Compatible_API_Call ( l_api_version,
42                      	              p_api_version_number,
43                                        l_api_name,
44                                        G_PKG_NAME)
45   THEN
46     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
47   END IF;
48 
49 
50   -- Initialize message list if p_init_msg_list is set to TRUE.
51   IF FND_API.to_Boolean( p_init_msg_list )
52   THEN
53     FND_MSG_PUB.initialize;
54   END IF;
55 
56   -- Initialize API return status to SUCCESS
57   x_return_status := FND_API.G_RET_STS_SUCCESS;
58 
59   --
60   -- API body
61   --
62 
63 ASO_COPY_QUOTE_PVT.Copy_Quote(
64 	P_Api_Version_Number		=>	P_Api_Version_Number,
65 	P_Init_Msg_List			=>	P_Init_Msg_List,
66 	P_Commit					=>	P_Commit,
67 	P_Copy_Quote_Header_Rec		=>	P_Copy_Quote_Header_Rec,
68 	P_Copy_Quote_Control_Rec		=>	P_Copy_Quote_Control_Rec,
69 	X_Qte_Header_Id			=>	X_Qte_Header_Id,
70 	X_Qte_Number				=>	X_Qte_Number,
71 	X_Return_Status			=>	X_Return_Status,
72 	X_Msg_Count				=>	X_Msg_Count,
73 	X_Msg_Data				=>	X_Msg_Data );
74 
75   IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
76     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
77   ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
78     RAISE FND_API.G_EXC_ERROR;
79   END IF;
80 
81   --
82   -- End of API body.
83   --
84 
85   -- Standard check for p_commit
86   IF FND_API.to_Boolean( p_commit )
87   THEN
88     COMMIT WORK;
89   END IF;
90 
91 
92   -- Debug Message
93   ASO_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Public API: ' || l_api_name || 'end');
94 
95 
96   -- Standard call to get message count and if count is 1, get message info.
97   FND_MSG_PUB.Count_And_Get
98   (  p_count          =>   x_msg_count,
99      p_data           =>   x_msg_data
100   );
101 
102   EXCEPTION
103       WHEN FND_API.G_EXC_ERROR THEN
104           ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
105                P_API_NAME => L_API_NAME
106               ,P_PKG_NAME => G_PKG_NAME
107               ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
108               ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
109               ,X_MSG_COUNT => X_MSG_COUNT
110               ,X_MSG_DATA => X_MSG_DATA
111               ,X_RETURN_STATUS => X_RETURN_STATUS);
112 
113       WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
114           ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
115                P_API_NAME => L_API_NAME
116               ,P_PKG_NAME => G_PKG_NAME
117               ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
118               ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
119               ,X_MSG_COUNT => X_MSG_COUNT
120               ,X_MSG_DATA => X_MSG_DATA
121               ,X_RETURN_STATUS => X_RETURN_STATUS);
122 
123       WHEN OTHERS THEN
124           ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
125                P_API_NAME => L_API_NAME
126               ,P_PKG_NAME => G_PKG_NAME
127               ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
128               ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
129               ,X_MSG_COUNT => X_MSG_COUNT
130               ,X_MSG_DATA => X_MSG_DATA
131               ,X_RETURN_STATUS => X_RETURN_STATUS);
132 
133 END Copy_Quote;
134 
135 
136 PROCEDURE Copy_Line(
137      P_Api_Version_Number     IN  NUMBER,
138      P_Init_Msg_List          IN  VARCHAR2     := FND_API.G_FALSE,
139      P_Commit                 IN  VARCHAR2     := FND_API.G_FALSE,
140      P_Qte_Header_Id          IN  NUMBER,
141      P_Qte_Line_Id            IN  NUMBER   := NULL,
142      P_Copy_Quote_Control_Rec IN  ASO_COPY_QUOTE_PUB.Copy_Quote_Control_Rec_Type,
143      P_Qte_Header_Rec         IN   ASO_QUOTE_PUB.Qte_Header_Rec_Type,
144      P_Control_Rec            IN   ASO_QUOTE_PUB.Control_Rec_Type,
145 	X_Qte_Line_Id            OUT NOCOPY /* file.sql.39 change */   NUMBER,
146 	X_Return_Status          OUT NOCOPY /* file.sql.39 change */   VARCHAR2,
147      X_Msg_Count              OUT NOCOPY /* file.sql.39 change */   NUMBER,
148      X_Msg_Data               OUT NOCOPY /* file.sql.39 change */   VARCHAR2 )
149 
150 IS
151 
152 
153   l_api_version             NUMBER        := 1.0;
154   l_api_name                VARCHAR2(50)  := 'Copy_Line';
155   l_qte_header_rec          ASO_QUOTE_PUB.Qte_Header_Rec_Type;
156   l_Copy_Quote_Control_Rec  ASO_COPY_QUOTE_PUB.Copy_Quote_Control_Rec_Type;
157 
158 BEGIN
159 
160   -- Standard Start of API savepoint
161   SAVEPOINT Copy_Line_PUB;
162 
163   aso_debug_pub.g_debug_flag := nvl(fnd_profile.value('ASO_ENABLE_DEBUG'),'N');
164 
165   -- Standard call to check for call compatibility.
166   IF NOT FND_API.Compatible_API_Call ( l_api_version,
167                                        p_api_version_number,
168                                        l_api_name,
169                                        G_PKG_NAME)
170   THEN
171     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
172   END IF;
173 
174 
175   -- Initialize message list if p_init_msg_list is set to TRUE.
176   IF FND_API.to_Boolean( p_init_msg_list )
177   THEN
178     FND_MSG_PUB.initialize;
179   END IF;
180 
181   -- Initialize API return status to SUCCESS
182   x_return_status := FND_API.G_RET_STS_SUCCESS;
183 
184   --
185   -- API body
186   --
187 
188      IF ( P_Qte_Line_Id IS NULL OR P_Qte_Line_Id = FND_API.G_MISS_NUM ) THEN
189        IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
190            FND_MESSAGE.Set_Name('ASO', 'ASO_API_MISSING_COLUMN');
191            FND_MESSAGE.Set_Token('COLUMN', 'P_Qte_Line_Id', FALSE);
192            FND_MSG_PUB.ADD;
193        END IF;
194        raise FND_API.G_EXC_ERROR;
195       End if;
196 
197     IF aso_debug_pub.g_debug_flag = 'Y' THEN
198     aso_debug_pub.ADD ( ' Calling Copy_Line_Rows API ' , 1 , 'N' );
199     END IF;
200 
201     l_qte_header_rec := P_Qte_Header_Rec;
202 
203     l_qte_header_rec.batch_price_flag := FND_API.G_TRUE;
204 
205     l_Copy_Quote_Control_Rec := P_Copy_Quote_Control_Rec;
206 
207      -- change for sales supp enhancement  as per bug 2940126
208     l_Copy_Quote_Control_Rec.New_Version := FND_API.G_TRUE;
209 
210 
211   ASO_COPY_QUOTE_PVT.Copy_Line_Rows (
212      P_Api_Version_Number     => P_Api_Version_Number,
213      P_Init_Msg_List          => P_Init_Msg_List,
214      P_Commit                 => P_Commit,
215      P_Qte_Header_Id          => P_Qte_Header_Id,
216      P_New_Qte_Header_Id      => P_Qte_Header_Id,
217      P_Qte_Line_Id            => P_Qte_Line_Id,
218      P_Price_Index_Link_Tbl   => ASO_QUOTE_HEADERS_PVT.G_MISS_LINK_TBL,
219      P_Copy_Quote_Control_Rec => l_Copy_Quote_Control_Rec,
220      P_Qte_Header_Rec         => l_qte_header_rec,
221      P_Control_Rec            => P_Control_Rec,
222      X_Qte_Line_Id            => X_Qte_Line_Id,
223      X_Return_Status          => X_Return_Status,
224      X_Msg_Count              => X_Msg_Count,
225      X_Msg_Data               => X_Msg_Data);
226 
227     IF aso_debug_pub.g_debug_flag = 'Y' THEN
228     aso_debug_pub.ADD ( ' After calling Copy_Line_rows API ' , 1 , 'N' );
229     END IF;
230 
231 
232   IF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
233     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
234   ELSIF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
235     RAISE FND_API.G_EXC_ERROR;
236   END IF;
237 
238   --
239   -- End of API body.
240   --
241 
242   -- Standard check for p_commit
243   IF FND_API.to_Boolean( p_commit )
244   THEN
245     COMMIT WORK;
246   END IF;
247 
248 
249   -- Debug Message
250   ASO_UTILITY_PVT.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Public API: ' || l_api_name || 'end');
251 
252 
253   -- Standard call to get message count and if count is 1, get message info.
254   FND_MSG_PUB.Count_And_Get
255   (  p_count          =>   x_msg_count,
256      p_data           =>   x_msg_data
257   );
258 
259   EXCEPTION
260       WHEN FND_API.G_EXC_ERROR THEN
261           ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
262                P_API_NAME => L_API_NAME
263               ,P_PKG_NAME => G_PKG_NAME
264               ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
265               ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
266               ,X_MSG_COUNT => X_MSG_COUNT
267               ,X_MSG_DATA => X_MSG_DATA
268               ,X_RETURN_STATUS => X_RETURN_STATUS);
269 
270       WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
271           ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
272                P_API_NAME => L_API_NAME
273               ,P_PKG_NAME => G_PKG_NAME
274               ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
275               ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
276               ,X_MSG_COUNT => X_MSG_COUNT
277               ,X_MSG_DATA => X_MSG_DATA
278               ,X_RETURN_STATUS => X_RETURN_STATUS);
279 
280       WHEN OTHERS THEN
281           ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
282                P_API_NAME => L_API_NAME
283               ,P_PKG_NAME => G_PKG_NAME
284               ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
285               ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PUB
286               ,X_MSG_COUNT => X_MSG_COUNT
287               ,X_MSG_DATA => X_MSG_DATA
288               ,X_RETURN_STATUS => X_RETURN_STATUS);
289 
290 END Copy_Line;
291 
292 PROCEDURE Copy_Line(
293      P_Api_Version_Number     IN  NUMBER,
294      P_Init_Msg_List          IN  VARCHAR2     := FND_API.G_FALSE,
295      P_Commit                 IN  VARCHAR2     := FND_API.G_FALSE,
296      P_Qte_Header_Id          IN  NUMBER,
297      P_Qte_Line_Id            IN  NUMBER   := NULL,
298      P_Copy_Quote_Control_Rec IN  ASO_COPY_QUOTE_PUB.Copy_Quote_Control_Rec_Type,
299      P_Qte_Header_Rec         IN   ASO_QUOTE_PUB.Qte_Header_Rec_Type,
300      P_Control_Rec            IN   ASO_QUOTE_PUB.Control_Rec_Type,
301      X_Qte_Line_Id            OUT NOCOPY /* file.sql.39 change */   NUMBER,
302      X_Qte_Header_Rec         OUT NOCOPY /* file.sql.39 change */  ASO_QUOTE_PUB.Qte_Header_Rec_Type,
303      X_Return_Status          OUT NOCOPY /* file.sql.39 change */   VARCHAR2,
304      X_Msg_Count              OUT NOCOPY /* file.sql.39 change */   NUMBER,
305      X_Msg_Data               OUT NOCOPY /* file.sql.39 change */   VARCHAR2 )
306 
307 IS
308 
309   l_header_id               NUMBER;
310   Cursor c_get_header_id (l_line_id NUMBER) IS
311   Select quote_header_id
312   from aso_quote_lines_all
313   where quote_line_id = l_line_id;
314 BEGIN
315 
316      ASO_COPY_QUOTE_PUB.Copy_Line(
317      P_Api_Version_Number     => P_Api_Version_Number,
318      P_Init_Msg_List          => P_Init_Msg_List,
319      P_Commit                 => P_Commit,
320      P_Qte_Header_Id          => P_Qte_Header_Id,
321      P_Qte_Line_Id            => P_Qte_Line_Id,
322      P_Copy_Quote_Control_Rec => P_Copy_Quote_Control_Rec,
323      P_Qte_Header_Rec         => P_Qte_Header_Rec,
324      P_Control_Rec            => P_Control_Rec,
325      X_Qte_Line_Id            => X_Qte_Line_Id,
326      X_Return_Status          => X_Return_Status,
327      X_Msg_Count              => X_Msg_Count,
328      X_Msg_Data               => X_Msg_Data  );
329 
330   IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
331     OPEN c_get_header_id(X_Qte_Line_Id);
332     Fetch c_get_header_id INTO l_header_id;
333     Close c_get_header_id;
334 
335     X_Qte_Header_Rec := ASO_UTILITY_PVT.Query_Header_Row(l_header_id);
336 
337   END IF;
338 
339 END Copy_Line;
340 
341 End ASO_COPY_QUOTE_PUB;