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