[Home] [Help]
PACKAGE BODY: APPS.ASO_LINE_ATTRIBS_PVT
Source
1 PACKAGE BODY ASO_LINE_ATTRIBS_PVT as
2 /* $Header: asovlatb.pls 120.1 2005/06/29 12:41:58 appldev ship $ */
3 -- Start of Comments
4 -- Package name : ASO_LINE_ATTRIBS_PVT
5 -- Purpose :
6 -- History :
7 -- NOTE :
8 -- End of Comments
9
10
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'ASO_LINE_ATTRIBS_PVT';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'asovlatb.pls';
13
14
15 -- Hint: Primary key needs to be returned.
16 PROCEDURE Create_line_attribs(
17 P_Api_Version_Number IN NUMBER,
18 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
19 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
20 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
21 P_LINE_ATTRIBS_Rec IN ASO_quote_PUB.LINE_ATTRIBS_EXT_rec_type := ASO_quote_PUB.G_MISS_LINE_ATTRIBS_EXT_REC,
22 --Hint: Add detail tables as parameter lists if it's master-detail relationship.
23 X_LINE_ATTRIB_ID OUT NOCOPY /* file.sql.39 change */ NUMBER,
24 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
25 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
26 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
27 )
28
29 IS
30 l_api_name CONSTANT VARCHAR2(30) := 'Create_line_attribs';
31 l_api_version_number CONSTANT NUMBER := 1.0;
32 l_return_status_full VARCHAR2(1);
33 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
34 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
35 --l_identity_sales_member_rec AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
36 BEGIN
37 -- Standard Start of API savepoint
38 SAVEPOINT CREATE_LINE_ATTRIBS_PVT;
39
40 -- Standard call to check for call compatibility.
41 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
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
57 -- Debug Message
58 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
59
60
61 -- Initialize API return status to SUCCESS
62 x_return_status := FND_API.G_RET_STS_SUCCESS;
63
64 --
65 -- API body
66 --
67
68 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
69 /*
70 -- if profile AS_PRE_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
71 IF(FND_PROFILE.VALUE('AS_PRE_CUSTOM_ENABLED')='Y')
72 THEN
73 AS_CALLOUT_PKG.Create_line_attribs_BC(
74 p_api_version_number => 2.0,
75 p_init_msg_list => FND_API.G_FALSE,
76 p_commit => FND_API.G_FALSE,
77 p_validation_level => p_validation_level,
78 P_LINE_ATTRIBS_Rec => P_LINE_ATTRIBS_Rec,
79 -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
80 x_return_status => x_return_status,
81 x_msg_count => x_msg_count,
82 x_msg_data => x_msg_data);
83 END IF;
84 */
85 -- ******************************************************************
86 -- Validate Environment
87 -- ******************************************************************
88 IF FND_GLOBAL.User_Id IS NULL
89 THEN
90 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
91 THEN
92 FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
93 FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
94 FND_MSG_PUB.ADD;
95 END IF;
96 RAISE FND_API.G_EXC_ERROR;
97 END IF;
98
99 /*
100 AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
101 p_api_version_number => 2.0
102 ,p_salesforce_id => NULL
103 ,x_return_status => x_return_status
104 ,x_msg_count => x_msg_count
105 ,x_msg_data => x_msg_data
106 ,x_sales_member_rec => l_identity_sales_member_rec);
107
108 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
109 RAISE FND_API.G_EXC_ERROR;
110 END IF;
111 */
112
113 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
114 THEN
115 -- Debug message
116 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: Validate_line_attribs');
117
118 -- Invoke validation procedures
119 Validate_line_attribs(
120 p_init_msg_list => FND_API.G_FALSE,
121 p_validation_level => p_validation_level,
122 p_validation_mode => ASO_UTILITY_PVT.G_CREATE,
123 P_LINE_ATTRIBS_Rec => P_LINE_ATTRIBS_Rec,
124 x_return_status => x_return_status,
125 x_msg_count => x_msg_count,
126 x_msg_data => x_msg_data);
127 END IF;
128
129 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
130 RAISE FND_API.G_EXC_ERROR;
131 END IF;
132
133 -- Hint: Add corresponding Master-Detail business logic here if necessary.
134
135 -- Debug Message
136 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling create table handler');
137
138 -- Invoke table handler(ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Insert_Row)
139 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Insert_Row(
140 px_LINE_ATTRIBUTE_ID => x_LINE_ATTRIB_ID,
141 p_CREATION_DATE => SYSDATE,
142 p_CREATED_BY => G_USER_ID,
143 p_LAST_UPDATE_DATE => SYSDATE,
144 p_LAST_UPDATED_BY => G_USER_ID,
145 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
146 p_REQUEST_ID => p_LINE_ATTRIBS_rec.REQUEST_ID,
147 p_PROGRAM_APPLICATION_ID => p_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
148 p_PROGRAM_ID => p_LINE_ATTRIBS_rec.PROGRAM_ID,
149 p_application_id => p_line_attribs_rec.application_id,
150 p_status => p_line_attribs_rec.status,
151 p_PROGRAM_UPDATE_DATE => p_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
152 p_QUOTE_HEADER_ID => p_LINE_ATTRIBS_rec.QUOTE_HEADER_ID,
153 p_QUOTE_LINE_ID => p_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
154 p_QUOTE_SHIPMENT_ID => p_LINE_ATTRIBS_rec.QUOTE_SHIPMENT_ID,
155 p_ATTRIBUTE_TYPE_CODE => p_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
156 p_NAME => p_LINE_ATTRIBS_rec.NAME,
157 p_VALUE => p_LINE_ATTRIBS_rec.VALUE,
158 p_VALUE_TYPE => p_LINE_ATTRIBS_REC.value_type,
159 p_START_DATE_ACTIVE => p_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
160 p_END_DATE_ACTIVE => p_LINE_ATTRIBS_rec.END_DATE_ACTIVE,
161 p_OBJECT_VERSION_NUMBER => p_LINE_ATTRIBS_rec.OBJECT_VERSION_NUMBER
162 );
163 -- Hint: Primary key should be returned.
164 -- x_LINE_ATTRIBUTE_ID := px_LINE_ATTRIBUTE_ID;
165
166 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
167 RAISE FND_API.G_EXC_ERROR;
168 END IF;
169
170 --
171 -- End of API body
172 --
173
174 -- Standard check for p_commit
175 IF FND_API.to_Boolean( p_commit )
176 THEN
177 COMMIT WORK;
178 END IF;
179
180
181 -- Debug Message
182 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
183
184
185 -- Standard call to get message count and if count is 1, get message info.
186 FND_MSG_PUB.Count_And_Get
187 ( p_count => x_msg_count,
188 p_data => x_msg_data
189 );
190
191 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
192 /*
193 -- if profile AS_POST_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
194 IF(FND_PROFILE.VALUE('AS_POST_CUSTOM_ENABLED')='Y')
195 THEN
196 AS_CALLOUT_PKG.Create_line_attribs_AC(
197 p_api_version_number => 2.0,
198 p_init_msg_list => FND_API.G_FALSE,
199 p_commit => FND_API.G_FALSE,
200 p_validation_level => p_validation_level,
201 P_LINE_ATTRIBS_Rec => P_LINE_ATTRIBS_Rec,
202 -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
203 x_return_status => x_return_status,
204 x_msg_count => x_msg_count,
205 x_msg_data => x_msg_data);
206 END IF;
207 */
208 EXCEPTION
209 WHEN FND_API.G_EXC_ERROR THEN
210 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
211 P_API_NAME => L_API_NAME
212 ,P_PKG_NAME => G_PKG_NAME
213 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
214 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
215 ,X_MSG_COUNT => X_MSG_COUNT
216 ,X_MSG_DATA => X_MSG_DATA
217 ,X_RETURN_STATUS => X_RETURN_STATUS);
218
219 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
220 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
221 P_API_NAME => L_API_NAME
222 ,P_PKG_NAME => G_PKG_NAME
223 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
224 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
225 ,X_MSG_COUNT => X_MSG_COUNT
226 ,X_MSG_DATA => X_MSG_DATA
227 ,X_RETURN_STATUS => X_RETURN_STATUS);
228
229 WHEN OTHERS THEN
230 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
231 P_API_NAME => L_API_NAME
232 ,P_PKG_NAME => G_PKG_NAME
233 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
234 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
235 ,X_MSG_COUNT => X_MSG_COUNT
236 ,X_MSG_DATA => X_MSG_DATA
237 ,X_RETURN_STATUS => X_RETURN_STATUS);
238 End Create_line_attribs;
239
240
241 -- Hint: Add corresponding update detail table procedures if it's master-detail relationship.
242 PROCEDURE Update_line_attribs(
243 P_Api_Version_Number IN NUMBER,
244 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
245 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
246 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
247 -- P_Identity_Salesforce_Id IN NUMBER := NULL,
248 P_LINE_ATTRIBS_Rec IN ASO_quote_PUB.LINE_ATTRIBS_EXT_rec_type,
249 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
250 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
251 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
252 )
253
254 IS
255
256 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
257 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
258 Cursor C_Get_line_attribs(P_LINE_ATTRIBUTE_ID Number)
259 IS Select --rowid,
260 LINE_ATTRIBUTE_ID,
261 CREATION_DATE,
262 CREATED_BY,
263 LAST_UPDATE_DATE,
264 LAST_UPDATED_BY,
265 LAST_UPDATE_LOGIN,
266 REQUEST_ID,
267 PROGRAM_APPLICATION_ID,
268 PROGRAM_ID,
269 PROGRAM_UPDATE_DATE,
270 APPLICATION_ID,
271 status,
272 QUOTE_LINE_ID,
273 ATTRIBUTE_TYPE_CODE,
274 NAME,
275 VALUE,
276 VALUE_TYPE,
277 START_DATE_ACTIVE,
278 END_DATE_ACTIVE
279 From ASO_QUOTE_LINE_ATTRIBS_EXT
280 where LINE_ATTRIBUTE_ID = P_LINE_ATTRIBUTE_ID;
281 -- Hint: Developer need to provide Where clause
282 --For Update NOWIAT;
283
284 l_api_name CONSTANT VARCHAR2(30) := 'Update_line_attribs';
285 l_api_version_number CONSTANT NUMBER := 1.0;
286 -- Local Variables
287 --l_identity_sales_member_rec AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
288 l_ref_LINE_ATTRIBS_rec ASO_quote_PUB.LINE_ATTRIBS_EXT_rec_type;
289 l_tar_LINE_ATTRIBS_rec ASO_quote_PUB.LINE_ATTRIBS_EXT_rec_type := P_LINE_ATTRIBS_Rec;
290 l_rowid ROWID;
291 BEGIN
292 -- Standard Start of API savepoint
293 SAVEPOINT UPDATE_LINE_ATTRIBS_PVT;
294
295 -- Standard call to check for call compatibility.
296 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
297 p_api_version_number,
298 l_api_name,
299 G_PKG_NAME)
300 THEN
301 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
302 END IF;
303
304
305 -- Initialize message list if p_init_msg_list is set to TRUE.
306 IF FND_API.to_Boolean( p_init_msg_list )
307 THEN
308 FND_MSG_PUB.initialize;
309 END IF;
310
311
312 -- Debug Message
313 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
314
315
316 -- Initialize API return status to SUCCESS
317 x_return_status := FND_API.G_RET_STS_SUCCESS;
318
319 --
320 -- Api body
321 --
322 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
323 /*
324 -- if profile AS_PRE_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
325 IF(FND_PROFILE.VALUE('AS_PRE_CUSTOM_ENABLED')='Y')
326 THEN
327 AS_CALLOUT_PKG.Update_line_attribs_BU(
328 p_api_version_number => 2.0,
329 p_init_msg_list => FND_API.G_FALSE,
330 p_commit => FND_API.G_FALSE,
331 p_validation_level => p_validation_level,
332 p_identity_salesforce_id => p_identity_salesforce_id,
333 P_LINE_ATTRIBS_Rec => P_LINE_ATTRIBS_Rec,
334 -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
335 x_return_status => x_return_status,
336 x_msg_count => x_msg_count,
337 x_msg_data => x_msg_data);
338 END IF;
339
340
341 AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
342 p_api_version_number => 2.0
343 ,p_salesforce_id => p_identity_salesforce_id
344 ,x_return_status => x_return_status
345 ,x_msg_count => x_msg_count
346 ,x_msg_data => x_msg_data
347 ,x_sales_member_rec => l_identity_sales_member_rec);
348
349 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
350 RAISE FND_API.G_EXC_ERROR;
351 END IF;
352
353 -- Debug Message
354 ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: - Open Cursor to Select');
355
356 */
357 Open C_Get_line_attribs( l_tar_LINE_ATTRIBS_rec.LINE_ATTRIBUTE_ID);
358
359 Fetch C_Get_line_attribs into
360 -- l_rowid,
361 l_ref_LINE_ATTRIBS_rec.LINE_ATTRIBUTE_ID,
362 l_ref_LINE_ATTRIBS_rec.CREATION_DATE,
363 l_ref_LINE_ATTRIBS_rec.CREATED_BY,
364 l_ref_LINE_ATTRIBS_rec.LAST_UPDATE_DATE,
365 l_ref_LINE_ATTRIBS_rec.LAST_UPDATED_BY,
366 l_ref_LINE_ATTRIBS_rec.LAST_UPDATE_LOGIN,
367 l_ref_LINE_ATTRIBS_rec.REQUEST_ID,
368 l_ref_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
369 l_ref_LINE_ATTRIBS_rec.PROGRAM_ID,
370 l_ref_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
374 l_ref_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
371 l_ref_LINE_ATTRIBS_rec.APPLICATION_ID,
372 l_ref_LINE_ATTRIBS_rec.STATUS,
373 l_ref_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
375 l_ref_LINE_ATTRIBS_rec.NAME,
376 l_ref_LINE_ATTRIBS_rec.VALUE,
377 l_ref_LINE_ATTRIBS_rec.VALUE_TYPE,
378 l_ref_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
379 l_ref_LINE_ATTRIBS_rec.END_DATE_ACTIVE;
380
381 If ( C_Get_line_attribs%NOTFOUND) Then
382 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
383 THEN
384 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_UPDATE_TARGET');
385 FND_MESSAGE.Set_Token ('INFO', 'line_attribs', FALSE);
386 FND_MSG_PUB.Add;
387 END IF;
388 raise FND_API.G_EXC_ERROR;
389 END IF;
390 -- Debug Message
391 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: - Close Cursor');
392 Close C_Get_line_attribs;
393
394
395
396 If (l_tar_LINE_ATTRIBS_rec.last_update_date is NULL or
397 l_tar_LINE_ATTRIBS_rec.last_update_date = FND_API.G_MISS_Date ) Then
398 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
399 THEN
400 FND_MESSAGE.Set_Name('ASO', 'API_MISSING_ID');
401 FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
402 FND_MSG_PUB.ADD;
403 END IF;
404 raise FND_API.G_EXC_ERROR;
405 End if;
406 -- Check Whether record has been changed by someone else
407 If (l_tar_LINE_ATTRIBS_rec.last_update_date <> l_ref_LINE_ATTRIBS_rec.last_update_date) Then
408 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
409 THEN
410 FND_MESSAGE.Set_Name('ASO', 'API_RECORD_CHANGED');
411 FND_MESSAGE.Set_Token('INFO', 'line_attribs', FALSE);
412 FND_MSG_PUB.ADD;
413 END IF;
414 raise FND_API.G_EXC_ERROR;
415 End if;
416
417 IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
418 THEN
419 -- Debug message
420 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,'Private API: Validate_line_attribs');
421
422 -- Invoke validation procedures
423 Validate_line_attribs(
424 p_init_msg_list => FND_API.G_FALSE,
425 p_validation_level => p_validation_level,
426 p_validation_mode => ASO_UTILITY_PVT.G_UPDATE,
427 P_LINE_ATTRIBS_Rec => P_LINE_ATTRIBS_Rec,
428 x_return_status => x_return_status,
429 x_msg_count => x_msg_count,
430 x_msg_data => x_msg_data);
431 END IF;
432
433 IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
434 RAISE FND_API.G_EXC_ERROR;
435 END IF;
436
437 -- Hint: Add corresponding Master-Detail business logic here if necessary.
438
439 -- Debug Message
440 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling update table handler');
441
442 -- Invoke table handler(ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Update_Row)
443 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Update_Row(
444 p_LINE_ATTRIBUTE_ID => p_LINE_ATTRIBS_rec.LINE_ATTRIBUTE_ID,
445 p_CREATION_DATE => SYSDATE,
446 p_CREATED_BY => G_USER_ID,
447 p_LAST_UPDATE_DATE => SYSDATE,
448 p_LAST_UPDATED_BY => G_USER_ID,
449 p_LAST_UPDATE_LOGIN => G_LOGIN_ID,
450 p_REQUEST_ID => p_LINE_ATTRIBS_rec.REQUEST_ID,
451 p_PROGRAM_APPLICATION_ID => p_LINE_ATTRIBS_rec.PROGRAM_APPLICATION_ID,
452 p_PROGRAM_ID => p_LINE_ATTRIBS_rec.PROGRAM_ID,
453 p_PROGRAM_UPDATE_DATE => p_LINE_ATTRIBS_rec.PROGRAM_UPDATE_DATE,
454 p_APPLICATION_ID=> p_LINE_ATTRIBS_rec.application_id,
455 p_STATUS => p_LINE_ATTRIBS_rec.status,
456 p_QUOTE_HEADER_ID => p_LINE_ATTRIBS_rec.QUOTE_HEADER_ID,
457 p_QUOTE_LINE_ID => p_LINE_ATTRIBS_rec.QUOTE_LINE_ID,
458 p_QUOTE_SHIPMENT_ID => p_LINE_ATTRIBS_rec.QUOTE_SHIPMENT_ID,
459 p_ATTRIBUTE_TYPE_CODE => p_LINE_ATTRIBS_rec.ATTRIBUTE_TYPE_CODE,
460 p_NAME => p_LINE_ATTRIBS_rec.NAME,
461 p_VALUE => p_LINE_ATTRIBS_rec.VALUE,
462 p_VALUE_TYPE => P_LINE_ATTRIBS_rec.VALUE_TYPE,
463 p_START_DATE_ACTIVE => p_LINE_ATTRIBS_rec.START_DATE_ACTIVE,
464 p_END_DATE_ACTIVE => p_LINE_ATTRIBS_rec.END_DATE_ACTIVE,
465 p_OBJECT_VERSION_NUMBER => p_LINE_ATTRIBS_rec.OBJECT_VERSION_NUMBER
466 );
467 --
468 -- End of API body.
469 --
470
471 -- Standard check for p_commit
472 IF FND_API.to_Boolean( p_commit )
473 THEN
474 COMMIT WORK;
475 END IF;
476
477
478 -- Debug Message
479 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
480
481
482 -- Standard call to get message count and if count is 1, get message info.
483 FND_MSG_PUB.Count_And_Get
484 ( p_count => x_msg_count,
485 p_data => x_msg_data
486 );
487
488 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
489 /*
493 AS_CALLOUT_PKG.Update_line_attribs_AU(
490 -- if profile AS_POST_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
491 IF(FND_PROFILE.VALUE('AS_POST_CUSTOM_ENABLED')='Y')
492 THEN
494 p_api_version_number => 2.0,
495 p_init_msg_list => FND_API.G_FALSE,
496 p_commit => FND_API.G_FALSE,
497 p_validation_level => p_validation_level,
498 p_identity_salesforce_id => p_identity_salesforce_id,
499 P_LINE_ATTRIBS_Rec => P_LINE_ATTRIBS_Rec,
500 -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
501 x_return_status => x_return_status,
502 x_msg_count => x_msg_count,
503 x_msg_data => x_msg_data);
504 END IF;
505 */
506 EXCEPTION
507 WHEN FND_API.G_EXC_ERROR THEN
508 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
509 P_API_NAME => L_API_NAME
510 ,P_PKG_NAME => G_PKG_NAME
511 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
512 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
513 ,X_MSG_COUNT => X_MSG_COUNT
514 ,X_MSG_DATA => X_MSG_DATA
515 ,X_RETURN_STATUS => X_RETURN_STATUS);
516
517 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
518 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
519 P_API_NAME => L_API_NAME
520 ,P_PKG_NAME => G_PKG_NAME
521 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
522 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
523 ,X_MSG_COUNT => X_MSG_COUNT
524 ,X_MSG_DATA => X_MSG_DATA
525 ,X_RETURN_STATUS => X_RETURN_STATUS);
526
527 WHEN OTHERS THEN
528 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
529 P_API_NAME => L_API_NAME
530 ,P_PKG_NAME => G_PKG_NAME
531 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
532 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
533 ,X_MSG_COUNT => X_MSG_COUNT
534 ,X_MSG_DATA => X_MSG_DATA
535 ,X_RETURN_STATUS => X_RETURN_STATUS);
536 End Update_line_attribs;
537
538
539 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
540 -- The Master delete procedure may not be needed depends on different business requirements.
541 PROCEDURE Delete_line_attribs(
542 P_Api_Version_Number IN NUMBER,
543 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
544 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
545 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
546 -- P_identity_salesforce_id IN NUMBER := NULL,
547 P_LINE_ATTRIBS_Rec IN ASO_quote_PUB.LINE_ATTRIBS_EXT_rec_type,
548 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
549 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
550 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
551 )
552
553 IS
554 l_api_name CONSTANT VARCHAR2(30) := 'Delete_line_attribs';
555 l_api_version_number CONSTANT NUMBER := 1.0;
556 --l_identity_sales_member_rec AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
557 BEGIN
558 -- Standard Start of API savepoint
559 SAVEPOINT DELETE_LINE_ATTRIBS_PVT;
560
561 -- Standard call to check for call compatibility.
562 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
563 p_api_version_number,
564 l_api_name,
565 G_PKG_NAME)
566 THEN
567 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
568 END IF;
569
570
571 -- Initialize message list if p_init_msg_list is set to TRUE.
572 IF FND_API.to_Boolean( p_init_msg_list )
573 THEN
574 FND_MSG_PUB.initialize;
575 END IF;
576
577
578 -- Debug Message
579 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'start');
580
581
582 -- Initialize API return status to SUCCESS
583 x_return_status := FND_API.G_RET_STS_SUCCESS;
584
585 --
586 -- Api body
587 --
588 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
589 /*
590 -- if profile AS_PRE_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
591 IF(FND_PROFILE.VALUE('AS_PRE_CUSTOM_ENABLED')='Y')
592 THEN
593 AS_CALLOUT_PKG.Delete_line_attribs_BD(
594 p_api_version_number => 2.0,
595 p_init_msg_list => FND_API.G_FALSE,
596 p_commit => FND_API.G_FALSE,
597 p_validation_level => p_validation_level,
598 p_identity_salesforce_id => p_identity_salesforce_id,
599 P_LINE_ATTRIBS_Rec => P_LINE_ATTRIBS_Rec,
600 -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
604 END IF;
601 x_return_status => x_return_status,
602 x_msg_count => x_msg_count,
603 x_msg_data => x_msg_data);
605
606
607 AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
608 p_api_version_number => 2.0
609 ,p_salesforce_id => p_identity_salesforce_id
610 ,x_return_status => x_return_status
611 ,x_msg_count => x_msg_count
612 ,x_msg_data => x_msg_data
613 ,x_sales_member_rec => l_identity_sales_member_rec);
614
615 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
616 RAISE FND_API.G_EXC_ERROR;
617 END IF;
618
619 -- Debug Message
620 ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: Calling delete table handler');
621 */
622 -- Invoke table handler(ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Delete_Row)
623 ASO_QUOTE_LINE_ATTRIBS_EXT_PKG.Delete_Row(
624 p_LINE_ATTRIB_ID => p_LINE_ATTRIBS_rec.LINE_ATTRIBUTE_ID);
625 --
626 -- End of API body
627 --
628
629 -- Standard check for p_commit
630 IF FND_API.to_Boolean( p_commit )
631 THEN
632 COMMIT WORK;
633 END IF;
634
635
636 -- Debug Message
637 -- ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'Private API: ' || l_api_name || 'end');
638
639
640 -- Standard call to get message count and if count is 1, get message info.
641 FND_MSG_PUB.Count_And_Get
642 ( p_count => x_msg_count,
643 p_data => x_msg_data
644 );
645
646 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
647 /*
648 -- if profile AS_POST_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
649 IF(FND_PROFILE.VALUE('AS_POST_CUSTOM_ENABLED')='Y')
650 THEN
651 AS_CALLOUT_PKG.Delete_line_attribs_AD(
652 p_api_version_number => 2.0,
653 p_init_msg_list => FND_API.G_FALSE,
654 p_commit => FND_API.G_FALSE,
655 p_validation_level => p_validation_level,
656 p_identity_salesforce_id => p_identity_salesforce_id,
657 P_LINE_ATTRIBS_Rec => P_LINE_ATTRIBS_Rec,
658 -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
659 x_return_status => x_return_status,
660 x_msg_count => x_msg_count,
661 x_msg_data => x_msg_data);
662 END IF;
663 */
664 EXCEPTION
665 WHEN FND_API.G_EXC_ERROR THEN
666 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
667 P_API_NAME => L_API_NAME
668 ,P_PKG_NAME => G_PKG_NAME
669 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
670 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
671 ,X_MSG_COUNT => X_MSG_COUNT
672 ,X_MSG_DATA => X_MSG_DATA
673 ,X_RETURN_STATUS => X_RETURN_STATUS);
674
675 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
676 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
677 P_API_NAME => L_API_NAME
678 ,P_PKG_NAME => G_PKG_NAME
679 ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
680 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
681 ,X_MSG_COUNT => X_MSG_COUNT
682 ,X_MSG_DATA => X_MSG_DATA
683 ,X_RETURN_STATUS => X_RETURN_STATUS);
684
685 WHEN OTHERS THEN
686 ASO_UTILITY_PVT.HANDLE_EXCEPTIONS(
687 P_API_NAME => L_API_NAME
688 ,P_PKG_NAME => G_PKG_NAME
689 ,P_EXCEPTION_LEVEL => ASO_UTILITY_PVT.G_EXC_OTHERS
690 ,P_PACKAGE_TYPE => ASO_UTILITY_PVT.G_PVT
691 ,X_MSG_COUNT => X_MSG_COUNT
692 ,X_MSG_DATA => X_MSG_DATA
693 ,X_RETURN_STATUS => X_RETURN_STATUS);
694 End Delete_line_attribs;
695
696
697
698
699
700 -- Item-level validation procedures
701 PROCEDURE Validate_LINE_ATTRIBUTE_ID (
702 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
703 P_Validation_mode IN VARCHAR2,
704 P_LINE_ATTRIBUTE_ID IN NUMBER,
705 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
706 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
707 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
708 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
709 )
710 IS
711 BEGIN
712
713 -- Initialize message list if p_init_msg_list is set to TRUE.
714 IF FND_API.to_Boolean( p_init_msg_list )
715 THEN
716 FND_MSG_PUB.initialize;
717 END IF;
718
719
720 -- Initialize API return status to SUCCESS
721 x_return_status := FND_API.G_RET_STS_SUCCESS;
722
723 -- validate NOT NULL column
724 IF(p_LINE_ATTRIBUTE_ID is NULL)
728 END IF;
725 THEN
726 --ASO_UTILITY_PVT.Print('ERROR', 'Private line_attribs API: -Violate NOT NULL constraint(LINE_ATTRIBUTE_ID)');
727 x_return_status := FND_API.G_RET_STS_ERROR;
729
730 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
731 THEN
732 -- Hint: Validate data
733 -- IF p_LINE_ATTRIBUTE_ID is not NULL and p_LINE_ATTRIBUTE_ID <> G_MISS_CHAR
734 -- verify if data is valid
735 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
736 NULL;
737 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
738 THEN
739 -- Hint: Validate data
740 -- IF p_LINE_ATTRIBUTE_ID <> G_MISS_CHAR
741 -- verify if data is valid
742 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
743 NULL;
744 END IF;
745
746 -- Standard call to get message count and if count is 1, get message info.
747 FND_MSG_PUB.Count_And_Get
748 ( p_count => x_msg_count,
749 p_data => x_msg_data
750 );
751
752 END Validate_LINE_ATTRIBUTE_ID;
753
754
755 PROCEDURE Validate_REQUEST_ID (
756 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
757 P_Validation_mode IN VARCHAR2,
758 P_REQUEST_ID IN NUMBER,
759 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
760 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
761 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
762 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
763 )
764 IS
765 BEGIN
766
767 -- Initialize message list if p_init_msg_list is set to TRUE.
768 IF FND_API.to_Boolean( p_init_msg_list )
769 THEN
770 FND_MSG_PUB.initialize;
771 END IF;
772
773
774 -- Initialize API return status to SUCCESS
775 x_return_status := FND_API.G_RET_STS_SUCCESS;
776
777 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
778 THEN
779 -- Hint: Validate data
780 -- IF p_REQUEST_ID is not NULL and p_REQUEST_ID <> G_MISS_CHAR
781 -- verify if data is valid
782 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
783 NULL;
784 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
785 THEN
786 -- Hint: Validate data
787 -- IF p_REQUEST_ID <> G_MISS_CHAR
788 -- verify if data is valid
789 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
790 NULL;
791 END IF;
792
793 -- Standard call to get message count and if count is 1, get message info.
794 FND_MSG_PUB.Count_And_Get
795 ( p_count => x_msg_count,
796 p_data => x_msg_data
797 );
798
799 END Validate_REQUEST_ID;
800
801
802 PROCEDURE Validate_PROG_APPL_ID (
803 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
804 P_Validation_mode IN VARCHAR2,
805 P_PROGRAM_APPLICATION_ID IN NUMBER,
806 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
807 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
808 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
809 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
810 )
811 IS
812 BEGIN
813
814 -- Initialize message list if p_init_msg_list is set to TRUE.
815 IF FND_API.to_Boolean( p_init_msg_list )
816 THEN
817 FND_MSG_PUB.initialize;
818 END IF;
819
820
821 -- Initialize API return status to SUCCESS
822 x_return_status := FND_API.G_RET_STS_SUCCESS;
823
824 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
825 THEN
826 -- Hint: Validate data
827 -- IF p_PROGRAM_APPLICATION_ID is not NULL and p_PROGRAM_APPLICATION_ID <> G_MISS_CHAR
828 -- verify if data is valid
829 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
830 NULL;
831 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
832 THEN
833 -- Hint: Validate data
834 -- IF p_PROGRAM_APPLICATION_ID <> G_MISS_CHAR
835 -- verify if data is valid
836 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
837 NULL;
838 END IF;
839
840 -- Standard call to get message count and if count is 1, get message info.
841 FND_MSG_PUB.Count_And_Get
842 ( p_count => x_msg_count,
843 p_data => x_msg_data
844 );
845
846 END Validate_PROG_APPL_ID;
847
848
849 PROCEDURE Validate_PROGRAM_ID (
850 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
851 P_Validation_mode IN VARCHAR2,
852 P_PROGRAM_ID IN NUMBER,
856 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
853 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
854 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
855 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
857 )
858 IS
859 BEGIN
860
861 -- Initialize message list if p_init_msg_list is set to TRUE.
862 IF FND_API.to_Boolean( p_init_msg_list )
863 THEN
864 FND_MSG_PUB.initialize;
865 END IF;
866
867
868 -- Initialize API return status to SUCCESS
869 x_return_status := FND_API.G_RET_STS_SUCCESS;
870
871 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
872 THEN
873 -- Hint: Validate data
874 -- IF p_PROGRAM_ID is not NULL and p_PROGRAM_ID <> G_MISS_CHAR
875 -- verify if data is valid
876 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
877 NULL;
878 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
879 THEN
880 -- Hint: Validate data
881 -- IF p_PROGRAM_ID <> G_MISS_CHAR
882 -- verify if data is valid
883 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
884 NULL;
885 END IF;
886
887 -- Standard call to get message count and if count is 1, get message info.
888 FND_MSG_PUB.Count_And_Get
889 ( p_count => x_msg_count,
890 p_data => x_msg_data
891 );
892
893 END Validate_PROGRAM_ID;
894
895
896 PROCEDURE Validate_PROGRAM_UPDATE_DATE (
897 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
898 P_Validation_mode IN VARCHAR2,
899 P_PROGRAM_UPDATE_DATE IN DATE,
900 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
901 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
902 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
903 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
904 )
905 IS
906 BEGIN
907
908 -- Initialize message list if p_init_msg_list is set to TRUE.
909 IF FND_API.to_Boolean( p_init_msg_list )
910 THEN
911 FND_MSG_PUB.initialize;
912 END IF;
913
914
915 -- Initialize API return status to SUCCESS
916 x_return_status := FND_API.G_RET_STS_SUCCESS;
917
918 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
919 THEN
920 -- Hint: Validate data
921 -- IF p_PROGRAM_UPDATE_DATE is not NULL and p_PROGRAM_UPDATE_DATE <> G_MISS_CHAR
922 -- verify if data is valid
923 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
924 NULL;
925 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
926 THEN
927 -- Hint: Validate data
928 -- IF p_PROGRAM_UPDATE_DATE <> G_MISS_CHAR
929 -- verify if data is valid
930 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
931 NULL;
932 END IF;
933
934 -- Standard call to get message count and if count is 1, get message info.
935 FND_MSG_PUB.Count_And_Get
936 ( p_count => x_msg_count,
937 p_data => x_msg_data
938 );
939
940 END Validate_PROGRAM_UPDATE_DATE;
941
942
943 PROCEDURE Validate_QUOTE_LINE_ID (
944 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
945 P_Validation_mode IN VARCHAR2,
946 P_QUOTE_LINE_ID IN NUMBER,
947 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
948 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
949 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
950 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
951 )
952 IS
953 l_count NUMBER;
954 BEGIN
955
956 -- Initialize message list if p_init_msg_list is set to TRUE.
957 IF FND_API.to_Boolean( p_init_msg_list )
958 THEN
959 FND_MSG_PUB.initialize;
960 END IF;
961
962
963 -- Initialize API return status to SUCCESS
964 x_return_status := FND_API.G_RET_STS_SUCCESS;
965
966 -- validate NOT NULL column
967 IF(p_QUOTE_LINE_ID is NULL)
968 THEN
969 --ASO_UTILITY_PVT.Print('ERROR', 'Private line_attribs API: -Violate NOT NULL constraint(QUOTE_LINE_ID)');
970 x_return_status := FND_API.G_RET_STS_ERROR;
971 END IF;
972
973 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
974 THEN
975 -- Hint: Validate data
976 -- IF p_QUOTE_LINE_ID is not NULL and p_QUOTE_LINE_ID <> G_MISS_CHAR
977 -- verify if data is valid
978 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
979 NULL;
980
981 select count(*) into l_count
985 if l_count <> 1 then
982 from aso_quote_lines_all
983 where quote_line_id = p_quote_line_id;
984
986 x_return_status := FND_API.G_RET_STS_ERROR;
987 end if;
988
989 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
990 THEN
991 -- Hint: Validate data
992 -- IF p_QUOTE_LINE_ID <> G_MISS_CHAR
993 -- verify if data is valid
994 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
995 NULL;
996
997
998 if (p_QUOTE_LINE_ID <> FND_API.G_MISS_CHAR) then
999 select count(*) into l_count
1000 from aso_quote_lines_all
1001 where quote_line_id = p_quote_line_id;
1002
1003 if l_count <> 1 then
1004 x_return_status := FND_API.G_RET_STS_ERROR;
1005 end if;
1006 end if;
1007 END IF;
1008
1009 -- Standard call to get message count and if count is 1, get message info.
1010 FND_MSG_PUB.Count_And_Get
1011 ( p_count => x_msg_count,
1012 p_data => x_msg_data
1013 );
1014
1015 END Validate_QUOTE_LINE_ID;
1016
1017
1018 PROCEDURE Validate_NAME (
1019 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1020 P_Validation_mode IN VARCHAR2,
1021 P_NAME IN VARCHAR2,
1022 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1023 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1024 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1025 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1026 )
1027 IS
1028 BEGIN
1029
1030 -- Initialize message list if p_init_msg_list is set to TRUE.
1031 IF FND_API.to_Boolean( p_init_msg_list )
1032 THEN
1033 FND_MSG_PUB.initialize;
1034 END IF;
1035
1036
1037 -- Initialize API return status to SUCCESS
1038 x_return_status := FND_API.G_RET_STS_SUCCESS;
1039
1040 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
1041 THEN
1042 -- Hint: Validate data
1043 -- IF p_NAME is not NULL and p_NAME <> G_MISS_CHAR
1044 -- verify if data is valid
1045 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1046 NULL;
1047 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
1048 THEN
1049 -- Hint: Validate data
1050 -- IF p_NAME <> G_MISS_CHAR
1051 -- verify if data is valid
1052 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1053 NULL;
1054 END IF;
1055
1056 -- Standard call to get message count and if count is 1, get message info.
1057 FND_MSG_PUB.Count_And_Get
1058 ( p_count => x_msg_count,
1059 p_data => x_msg_data
1060 );
1061
1062 END Validate_NAME;
1063
1064 PROCEDURE Validate_ATTRIBUTE_TYPE_CODE(
1065 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1066 P_Validation_mode IN VARCHAR2,
1067 P_ATTRIBUTE_TYPE_CODE IN VARCHAR2,
1068 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1069 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1070 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1071 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1072
1073 IS
1074 l_count NUMBER;
1075 BEGIN
1076
1077 -- Initialize message list if p_init_msg_list is set to TRUE.
1078 IF FND_API.to_Boolean( p_init_msg_list )
1079 THEN
1080 FND_MSG_PUB.initialize;
1081 END IF;
1082
1083
1084 -- Initialize API return status to SUCCESS
1085 x_return_status := FND_API.G_RET_STS_SUCCESS;
1086
1087 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
1088 THEN
1089 -- Hint: Validate data
1090 -- IF p_NAME is not NULL and p_NAME <> G_MISS_CHAR
1091 -- verify if data is valid
1092 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1093 NULL;
1094 select count(*) into l_count
1095 from aso_lookups
1096 where lookup_type = 'ASO_LINE_ATTRIBUTE_TYPE'
1097 and lookup_code = p_ATTRIBUTE_TYPE_CODE;
1098
1099 IF l_count < 1 then
1100 x_return_status := FND_API.G_RET_STS_ERROR;
1101 END IF;
1102
1103
1104 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
1105 THEN
1106 -- Hint: Validate data
1107 -- IF p_NAME <> G_MISS_CHAR
1108 -- verify if data is valid
1109 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1110 NULL;
1111
1112 IF p_ATTRIBUTE_TYPE_CODE <> FND_API.G_MISS_CHAR THEN
1113 select count(*) into l_count
1114 from aso_lookups
1115 where lookup_type = 'ASO_LINE_ATTRIBUTE_TYPE'
1119 x_return_status := FND_API.G_RET_STS_ERROR;
1116 and lookup_code = p_ATTRIBUTE_TYPE_CODE;
1117
1118 IF l_count < 1 then
1120 END IF;
1121
1122 END IF;
1123 END IF;
1124
1125 -- Standard call to get message count and if count is 1, get message info.
1126 FND_MSG_PUB.Count_And_Get
1127 ( p_count => x_msg_count,
1128 p_data => x_msg_data
1129 );
1130 End Validate_ATTRIBUTE_TYPE_CODE;
1131
1132 PROCEDURE Validate_STATUS(
1133 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1134 P_Validation_mode IN VARCHAR2,
1135 P_STATUS IN VARCHAR2,
1136 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1137 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1138 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1139 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
1140 IS
1141 l_count NUMBER;
1142 BEGIN
1143
1144 -- Initialize message list if p_init_msg_list is set to TRUE.
1145 IF FND_API.to_Boolean( p_init_msg_list )
1146 THEN
1147 FND_MSG_PUB.initialize;
1148 END IF;
1149
1150
1151 -- Initialize API return status to SUCCESS
1152 x_return_status := FND_API.G_RET_STS_SUCCESS;
1153
1154 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
1155 THEN
1156 -- Hint: Validate data
1157 -- IF p_NAME is not NULL and p_NAME <> G_MISS_CHAR
1158 -- verify if data is valid
1159 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1160 NULL;
1161
1162 select count(*) into l_count
1163 from aso_lookups
1164 where lookup_type = 'ASO_LINE_ATTRIBUTE_STATUS'
1165 and lookup_code = p_status;
1166
1167 if l_count < 1 then
1168 x_return_status := FND_API.G_RET_STS_ERROR;
1169 end if;
1170
1171 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
1172 THEN
1173 -- Hint: Validate data
1174 -- IF p_NAME <> G_MISS_CHAR
1175 -- verify if data is valid
1176 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1177 NULL;
1178 IF p_STATUS <> FND_API.G_MISS_CHAR THEN
1179 select count(*) into l_count
1180 from aso_lookups
1181 where lookup_type = 'ATTRIBUTE_STATUS'
1182 and lookup_code = p_status;
1183
1184 if l_count < 1 then
1185 x_return_status := FND_API.G_RET_STS_ERROR;
1186 end if;
1187 END IF;
1188 END IF;
1189
1190 -- Standard call to get message count and if count is 1, get message info.
1191 FND_MSG_PUB.Count_And_Get
1192 ( p_count => x_msg_count,
1193 p_data => x_msg_data
1194 );
1195 END VALIDATE_STATUS;
1196
1197
1198
1199 PROCEDURE Validate_VALUE (
1200 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1201 P_Validation_mode IN VARCHAR2,
1202 P_VALUE IN VARCHAR2,
1203 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1204 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1205 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1206 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1207 )
1208 IS
1209 BEGIN
1210
1211 -- Initialize message list if p_init_msg_list is set to TRUE.
1212 IF FND_API.to_Boolean( p_init_msg_list )
1213 THEN
1214 FND_MSG_PUB.initialize;
1215 END IF;
1216
1217
1218 -- Initialize API return status to SUCCESS
1219 x_return_status := FND_API.G_RET_STS_SUCCESS;
1220
1221 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
1222 THEN
1223 -- Hint: Validate data
1224 -- IF p_VALUE is not NULL and p_VALUE <> G_MISS_CHAR
1225 -- verify if data is valid
1226 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1227 NULL;
1228 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
1229 THEN
1230 -- Hint: Validate data
1231 -- IF p_VALUE <> G_MISS_CHAR
1232 -- verify if data is valid
1233 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1234 NULL;
1235 END IF;
1236
1237 -- Standard call to get message count and if count is 1, get message info.
1238 FND_MSG_PUB.Count_And_Get
1239 ( p_count => x_msg_count,
1240 p_data => x_msg_data
1241 );
1242
1243 END Validate_VALUE;
1244
1245
1246 PROCEDURE Validate_START_DATE_ACTIVE (
1247 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1248 P_Validation_mode IN VARCHAR2,
1249 P_START_DATE_ACTIVE IN DATE,
1253 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1250 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1251 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1252 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1254 )
1255 IS
1256 BEGIN
1257
1258 -- Initialize message list if p_init_msg_list is set to TRUE.
1259 IF FND_API.to_Boolean( p_init_msg_list )
1260 THEN
1261 FND_MSG_PUB.initialize;
1262 END IF;
1263
1264
1265 -- Initialize API return status to SUCCESS
1266 x_return_status := FND_API.G_RET_STS_SUCCESS;
1267
1268 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
1269 THEN
1270 -- Hint: Validate data
1271 -- IF p_START_DATE_ACTIVE is not NULL and p_START_DATE_ACTIVE <> G_MISS_CHAR
1272 -- verify if data is valid
1273 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1274 NULL;
1275 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
1276 THEN
1277 -- Hint: Validate data
1278 -- IF p_START_DATE_ACTIVE <> G_MISS_CHAR
1279 -- verify if data is valid
1280 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1281 NULL;
1282 END IF;
1283
1284 -- Standard call to get message count and if count is 1, get message info.
1285 FND_MSG_PUB.Count_And_Get
1286 ( p_count => x_msg_count,
1287 p_data => x_msg_data
1288 );
1289
1290 END Validate_START_DATE_ACTIVE;
1291
1292
1293 PROCEDURE Validate_END_DATE_ACTIVE (
1294 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1295 P_Validation_mode IN VARCHAR2,
1296 P_END_DATE_ACTIVE IN DATE,
1297 -- Hint: You may add 'X_Item_Property_Rec OUT NOCOPY /* file.sql.39 change */ ASO_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1298 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1299 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1300 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1301 )
1302 IS
1303 BEGIN
1304
1305 -- Initialize message list if p_init_msg_list is set to TRUE.
1306 IF FND_API.to_Boolean( p_init_msg_list )
1307 THEN
1308 FND_MSG_PUB.initialize;
1309 END IF;
1310
1311
1312 -- Initialize API return status to SUCCESS
1313 x_return_status := FND_API.G_RET_STS_SUCCESS;
1314
1315 IF(p_validation_mode = ASO_UTILITY_PVT.G_CREATE)
1316 THEN
1317 -- Hint: Validate data
1318 -- IF p_END_DATE_ACTIVE is not NULL and p_END_DATE_ACTIVE <> G_MISS_CHAR
1319 -- verify if data is valid
1320 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1321 NULL;
1322 ELSIF(p_validation_mode = ASO_UTILITY_PVT.G_UPDATE)
1323 THEN
1324 -- Hint: Validate data
1325 -- IF p_END_DATE_ACTIVE <> G_MISS_CHAR
1326 -- verify if data is valid
1327 -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1328 NULL;
1329 END IF;
1330
1331 -- Standard call to get message count and if count is 1, get message info.
1332 FND_MSG_PUB.Count_And_Get
1333 ( p_count => x_msg_count,
1334 p_data => x_msg_data
1335 );
1336
1337 END Validate_END_DATE_ACTIVE;
1338
1339
1340 -- Hint: inter-field level validation can be added here.
1341 -- Hint: If p_validation_mode = ASO_UTILITY_PVT.G_VALIDATE_UPDATE, we should use cursor
1342 -- to get old values for all fields used in inter-field validation and set all G_MISS_XXX fields to original value
1343 -- stored in database table.
1344 PROCEDURE Validate_LINE_ATTRIBS_rec(
1345 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1346 P_Validation_mode IN VARCHAR2,
1347 P_LINE_ATTRIBS_Rec IN ASO_quote_PUB.LINE_ATTRIBS_EXT_rec_type,
1348 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1349 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1350 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1351 )
1352 IS
1353 BEGIN
1354
1355 -- Initialize message list if p_init_msg_list is set to TRUE.
1356 IF FND_API.to_Boolean( p_init_msg_list )
1357 THEN
1358 FND_MSG_PUB.initialize;
1359 END IF;
1360
1361
1362 -- Initialize API return status to SUCCESS
1363 x_return_status := FND_API.G_RET_STS_SUCCESS;
1364
1365 -- Hint: Validate data
1366 -- If data not valid
1367 -- THEN
1368 -- x_return_status := FND_API.G_RET_STS_ERROR;
1369
1370 -- Debug Message
1371 --ASO_UTILITY_PVT.Print(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'API_INVALID_RECORD');
1372
1373 -- Standard call to get message count and if count is 1, get message info.
1374 FND_MSG_PUB.Count_And_Get
1375 ( p_count => x_msg_count,
1376 p_data => x_msg_data
1377 );
1378
1379 END Validate_LINE_ATTRIBS_Rec;
1380
1384 P_Validation_mode IN VARCHAR2,
1381 PROCEDURE Validate_line_attribs(
1382 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
1383 P_Validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1385 P_LINE_ATTRIBS_Rec IN ASO_quote_PUB.LINE_ATTRIBS_EXT_rec_type,
1386 X_Return_Status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
1387 X_Msg_Count OUT NOCOPY /* file.sql.39 change */ NUMBER,
1388 X_Msg_Data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1389 )
1390 IS
1391 l_api_name CONSTANT VARCHAR2(30) := 'Validate_line_attribs';
1392 BEGIN
1393
1394
1395
1396 -- Initialize API return status to SUCCESS
1397 x_return_status := FND_API.G_RET_STS_SUCCESS;
1398
1399 IF (p_validation_level >= ASO_UTILITY_PVT.G_VALID_LEVEL_ITEM) THEN
1400 -- Hint: We provide validation procedure for every column. Developer should delete
1401 -- unnecessary validation procedures.
1402 Validate_QUOTE_LINE_ID(
1403 p_init_msg_list => FND_API.G_FALSE,
1404 p_validation_mode => p_validation_mode,
1405 p_QUOTE_LINE_ID => P_LINE_ATTRIBS_Rec.QUOTE_LINE_ID,
1406 x_return_status => x_return_status,
1407 x_msg_count => x_msg_count,
1408 x_msg_data => x_msg_data);
1409 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1410 raise FND_API.G_EXC_ERROR;
1411 END IF;
1412
1413 Validate_ATTRIBUTE_TYPE_CODE(
1414 p_init_msg_list => FND_API.G_FALSE,
1415 p_validation_mode => p_validation_mode,
1416 p_ATTRIBUTE_TYPE_CODE => P_LINE_ATTRIBS_Rec.ATTRIBUTE_TYPE_CODE,
1417 x_return_status => x_return_status,
1418 x_msg_count => x_msg_count,
1419 x_msg_data => x_msg_data);
1420 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1421 raise FND_API.G_EXC_ERROR;
1422 END IF;
1423
1424 Validate_STATUS(
1425 p_init_msg_list => FND_API.G_FALSE,
1426 p_validation_mode => p_validation_mode,
1427 p_STATUS => P_LINE_ATTRIBS_Rec.STATUS,
1428 x_return_status => x_return_status,
1429 x_msg_count => x_msg_count,
1430 x_msg_data => x_msg_data);
1431 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1432 raise FND_API.G_EXC_ERROR;
1433 END IF;
1434 END IF;
1435
1436 END Validate_line_attribs;
1437
1438 End ASO_LINE_ATTRIBS_PVT;