1 PACKAGE BODY OE_Validate_Price_List AS
2 /* $Header: OEXLPRHB.pls 120.2 2005/06/28 02:32:06 appldev ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_Validate_Price_List';
7
8 -- Procedure Entity
9
10 PROCEDURE Entity
11 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
12 , p_PRICE_LIST_rec IN OE_Price_List_PUB.Price_List_Rec_Type
13 , p_old_PRICE_LIST_rec IN OE_Price_List_PUB.Price_List_Rec_Type :=
14 OE_Price_List_PUB.G_MISS_PRICE_LIST_REC
15 )
16 IS
17 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18 BEGIN
19
20 -- Check required attributes.
21
22 IF p_PRICE_LIST_rec.name IS NULL
23 OR p_PRICE_LIST_rec.price_list_id IS NULL
24 THEN
25
26 l_return_status := FND_API.G_RET_STS_ERROR;
27
28 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
29 THEN
30
31 FND_MESSAGE.SET_NAME('OE','OE_ATTRIBUTE_REQUIRED');
32 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','attribute1');
33 OE_MSG_PUB.Add;
34
35 END IF;
36
37 END IF;
38
39 --
40 -- Check rest of required attributes here.
41 --
42
43
44 -- Return Error if a required attribute is missing.
45
46 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
47
48 RAISE FND_API.G_EXC_ERROR;
49
50 END IF;
51
52 --
53 -- Check conditionally required attributes here.
54 --
55
56
57 --
58 -- Validate attribute dependencies here.
59 --
60
61
62 -- Done validating entity
63
64 x_return_status := l_return_status;
65
66 EXCEPTION
67
68 WHEN FND_API.G_EXC_ERROR THEN
69
70 x_return_status := FND_API.G_RET_STS_ERROR;
71
72 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
73
74 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
75
76 WHEN OTHERS THEN
77
78 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
79
80 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
81 THEN
82 OE_MSG_PUB.Add_Exc_Msg
83 ( G_PKG_NAME
84 , 'Entity'
85 );
86 END IF;
87
88 END Entity;
89
90 -- Procedure Attributes
91
92 PROCEDURE Attributes
93 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
94 , p_PRICE_LIST_rec IN OE_Price_List_PUB.Price_List_Rec_Type
95 , p_old_PRICE_LIST_rec IN OE_Price_List_PUB.Price_List_Rec_Type :=
96 OE_Price_List_PUB.G_MISS_PRICE_LIST_REC
97 )
98 IS
99 BEGIN
100
101 x_return_status := FND_API.G_RET_STS_SUCCESS;
102
103 -- Validate PRICE_LIST attributes
104
105 IF p_PRICE_LIST_rec.comments IS NOT NULL AND
106 ( p_PRICE_LIST_rec.comments <>
107 p_old_PRICE_LIST_rec.comments OR
108 p_old_PRICE_LIST_rec.comments IS NULL )
109 THEN
110 IF NOT OE_Validate_Attr.Comments(p_PRICE_LIST_rec.comments) THEN
111 x_return_status := FND_API.G_RET_STS_ERROR;
112 END IF;
113 END IF;
114
115 IF p_PRICE_LIST_rec.created_by IS NOT NULL AND
116 ( p_PRICE_LIST_rec.created_by <>
117 p_old_PRICE_LIST_rec.created_by OR
118 p_old_PRICE_LIST_rec.created_by IS NULL )
119 THEN
120 IF NOT OE_Validate_Attr.Created_By(p_PRICE_LIST_rec.created_by) THEN
121 x_return_status := FND_API.G_RET_STS_ERROR;
122 END IF;
123 END IF;
124
125 IF p_PRICE_LIST_rec.creation_date IS NOT NULL AND
126 ( p_PRICE_LIST_rec.creation_date <>
127 p_old_PRICE_LIST_rec.creation_date OR
128 p_old_PRICE_LIST_rec.creation_date IS NULL )
129 THEN
130 IF NOT OE_Validate_Attr.Creation_Date(p_PRICE_LIST_rec.creation_date) THEN
131 x_return_status := FND_API.G_RET_STS_ERROR;
132 END IF;
133 END IF;
134
135 IF p_PRICE_LIST_rec.currency_code IS NOT NULL AND
136 ( p_PRICE_LIST_rec.currency_code <>
137 p_old_PRICE_LIST_rec.currency_code OR
138 p_old_PRICE_LIST_rec.currency_code IS NULL )
139 THEN
140 IF NOT OE_Validate_Attr.Currency(p_PRICE_LIST_rec.currency_code) THEN
141 x_return_status := FND_API.G_RET_STS_ERROR;
142 END IF;
143 END IF;
144
145 IF p_PRICE_LIST_rec.description IS NOT NULL AND
146 ( p_PRICE_LIST_rec.description <>
147 p_old_PRICE_LIST_rec.description OR
148 p_old_PRICE_LIST_rec.description IS NULL )
149 THEN
150 IF NOT OE_Validate_Attr.Description(p_PRICE_LIST_rec.description) THEN
151 x_return_status := FND_API.G_RET_STS_ERROR;
152 END IF;
153 END IF;
154
155 IF p_PRICE_LIST_rec.end_date_active IS NOT NULL AND
156 ( p_PRICE_LIST_rec.end_date_active <>
157 p_old_PRICE_LIST_rec.end_date_active OR
158 p_old_PRICE_LIST_rec.end_date_active IS NULL )
159 THEN
160 IF NOT OE_Validate_Attr.End_Date_Active(p_PRICE_LIST_rec.end_date_active) THEN
161 x_return_status := FND_API.G_RET_STS_ERROR;
162 END IF;
163 END IF;
164
165 IF p_PRICE_LIST_rec.freight_terms_code IS NOT NULL AND
166 ( p_PRICE_LIST_rec.freight_terms_code <>
167 p_old_PRICE_LIST_rec.freight_terms_code OR
168 p_old_PRICE_LIST_rec.freight_terms_code IS NULL )
169 THEN
170 IF NOT OE_Validate_Attr.Freight_Terms(p_PRICE_LIST_rec.freight_terms_code) THEN
171 x_return_status := FND_API.G_RET_STS_ERROR;
172 END IF;
173 END IF;
174
175 IF p_PRICE_LIST_rec.last_updated_by IS NOT NULL AND
176 ( p_PRICE_LIST_rec.last_updated_by <>
177 p_old_PRICE_LIST_rec.last_updated_by OR
178 p_old_PRICE_LIST_rec.last_updated_by IS NULL )
179 THEN
180 IF NOT OE_Validate_Attr.Last_Updated_By(p_PRICE_LIST_rec.last_updated_by) THEN
181 x_return_status := FND_API.G_RET_STS_ERROR;
182 END IF;
183 END IF;
184
185 IF p_PRICE_LIST_rec.last_update_date IS NOT NULL AND
186 ( p_PRICE_LIST_rec.last_update_date <>
187 p_old_PRICE_LIST_rec.last_update_date OR
188 p_old_PRICE_LIST_rec.last_update_date IS NULL )
189 THEN
190 IF NOT OE_Validate_Attr.Last_Update_Date(p_PRICE_LIST_rec.last_update_date) THEN
191 x_return_status := FND_API.G_RET_STS_ERROR;
192 END IF;
193 END IF;
194
195 IF p_PRICE_LIST_rec.last_update_login IS NOT NULL AND
196 ( p_PRICE_LIST_rec.last_update_login <>
197 p_old_PRICE_LIST_rec.last_update_login OR
198 p_old_PRICE_LIST_rec.last_update_login IS NULL )
199 THEN
200 IF NOT OE_Validate_Attr.Last_Update_Login(p_PRICE_LIST_rec.last_update_login) THEN
201 x_return_status := FND_API.G_RET_STS_ERROR;
202 END IF;
203 END IF;
204
205 IF p_PRICE_LIST_rec.name IS NOT NULL AND
206 ( p_PRICE_LIST_rec.name <>
207 p_old_PRICE_LIST_rec.name OR
208 p_old_PRICE_LIST_rec.name IS NULL )
209 THEN
210 IF NOT OE_Validate_Attr.Name(p_PRICE_LIST_rec.name) THEN
211 x_return_status := FND_API.G_RET_STS_ERROR;
212 END IF;
213 END IF;
214
215 IF p_PRICE_LIST_rec.price_list_id IS NOT NULL AND
216 ( p_PRICE_LIST_rec.price_list_id <>
217 p_old_PRICE_LIST_rec.price_list_id OR
218 p_old_PRICE_LIST_rec.price_list_id IS NULL )
219 THEN
220 IF NOT OE_Validate_Attr.Price_List(p_PRICE_LIST_rec.price_list_id) THEN
221 x_return_status := FND_API.G_RET_STS_ERROR;
222 END IF;
223 END IF;
224
225 IF p_PRICE_LIST_rec.program_application_id IS NOT NULL AND
226 ( p_PRICE_LIST_rec.program_application_id <>
227 p_old_PRICE_LIST_rec.program_application_id OR
228 p_old_PRICE_LIST_rec.program_application_id IS NULL )
229 THEN
230 IF NOT OE_Validate_Attr.Program_Application(p_PRICE_LIST_rec.program_application_id) THEN
231 x_return_status := FND_API.G_RET_STS_ERROR;
232 END IF;
233 END IF;
234
235 IF p_PRICE_LIST_rec.program_id IS NOT NULL AND
236 ( p_PRICE_LIST_rec.program_id <>
237 p_old_PRICE_LIST_rec.program_id OR
238 p_old_PRICE_LIST_rec.program_id IS NULL )
239 THEN
240 IF NOT OE_Validate_Attr.Program(p_PRICE_LIST_rec.program_id) THEN
241 x_return_status := FND_API.G_RET_STS_ERROR;
242 END IF;
243 END IF;
244
245 IF p_PRICE_LIST_rec.program_update_date IS NOT NULL AND
246 ( p_PRICE_LIST_rec.program_update_date <>
247 p_old_PRICE_LIST_rec.program_update_date OR
248 p_old_PRICE_LIST_rec.program_update_date IS NULL )
249 THEN
250 IF NOT OE_Validate_Attr.Program_Update_Date(p_PRICE_LIST_rec.program_update_date) THEN
251 x_return_status := FND_API.G_RET_STS_ERROR;
252 END IF;
253 END IF;
254
255 IF p_PRICE_LIST_rec.request_id IS NOT NULL AND
256 ( p_PRICE_LIST_rec.request_id <>
257 p_old_PRICE_LIST_rec.request_id OR
258 p_old_PRICE_LIST_rec.request_id IS NULL )
259 THEN
260 IF NOT OE_Validate_Attr.Request(p_PRICE_LIST_rec.request_id) THEN
261 x_return_status := FND_API.G_RET_STS_ERROR;
262 END IF;
263 END IF;
264
265 IF p_PRICE_LIST_rec.rounding_factor IS NOT NULL AND
266 ( p_PRICE_LIST_rec.rounding_factor <>
267 p_old_PRICE_LIST_rec.rounding_factor OR
268 p_old_PRICE_LIST_rec.rounding_factor IS NULL )
269 THEN
270 IF NOT OE_Validate_Attr.Rounding_Factor(p_PRICE_LIST_rec.rounding_factor) THEN
271 x_return_status := FND_API.G_RET_STS_ERROR;
272 END IF;
273 END IF;
274
275 IF p_PRICE_LIST_rec.secondary_price_list_id IS NOT NULL AND
276 ( p_PRICE_LIST_rec.secondary_price_list_id <>
277 p_old_PRICE_LIST_rec.secondary_price_list_id OR
278 p_old_PRICE_LIST_rec.secondary_price_list_id IS NULL )
279 THEN
280 IF NOT OE_Validate_Attr.Secondary_Price_List(p_PRICE_LIST_rec.secondary_price_list_id) THEN
281 x_return_status := FND_API.G_RET_STS_ERROR;
282 END IF;
283 END IF;
284
285 IF p_PRICE_LIST_rec.ship_method_code IS NOT NULL AND
286 ( p_PRICE_LIST_rec.ship_method_code <>
287 p_old_PRICE_LIST_rec.ship_method_code OR
288 p_old_PRICE_LIST_rec.ship_method_code IS NULL )
289 THEN
290 IF NOT OE_Validate_Attr.Ship_Method(p_PRICE_LIST_rec.ship_method_code) THEN
291 x_return_status := FND_API.G_RET_STS_ERROR;
292 END IF;
293 END IF;
294
295 IF p_PRICE_LIST_rec.start_date_active IS NOT NULL AND
296 ( p_PRICE_LIST_rec.start_date_active <>
297 p_old_PRICE_LIST_rec.start_date_active OR
298 p_old_PRICE_LIST_rec.start_date_active IS NULL )
299 THEN
300 IF NOT OE_Validate_Attr.Start_Date_Active(p_PRICE_LIST_rec.start_date_active) THEN
301 x_return_status := FND_API.G_RET_STS_ERROR;
302 END IF;
303 END IF;
304
305 IF p_PRICE_LIST_rec.terms_id IS NOT NULL AND
306 ( p_PRICE_LIST_rec.terms_id <>
307 p_old_PRICE_LIST_rec.terms_id OR
308 p_old_PRICE_LIST_rec.terms_id IS NULL )
309 THEN
310 IF NOT OE_Validate_Attr.Terms(p_PRICE_LIST_rec.terms_id) THEN
311 x_return_status := FND_API.G_RET_STS_ERROR;
312 END IF;
313 END IF;
314
315 IF (p_PRICE_LIST_rec.attribute1 IS NOT NULL AND
316 ( p_PRICE_LIST_rec.attribute1 <>
317 p_old_PRICE_LIST_rec.attribute1 OR
318 p_old_PRICE_LIST_rec.attribute1 IS NULL ))
319 OR (p_PRICE_LIST_rec.attribute10 IS NOT NULL AND
320 ( p_PRICE_LIST_rec.attribute10 <>
321 p_old_PRICE_LIST_rec.attribute10 OR
322 p_old_PRICE_LIST_rec.attribute10 IS NULL ))
323 OR (p_PRICE_LIST_rec.attribute11 IS NOT NULL AND
324 ( p_PRICE_LIST_rec.attribute11 <>
325 p_old_PRICE_LIST_rec.attribute11 OR
326 p_old_PRICE_LIST_rec.attribute11 IS NULL ))
327 OR (p_PRICE_LIST_rec.attribute12 IS NOT NULL AND
328 ( p_PRICE_LIST_rec.attribute12 <>
329 p_old_PRICE_LIST_rec.attribute12 OR
330 p_old_PRICE_LIST_rec.attribute12 IS NULL ))
331 OR (p_PRICE_LIST_rec.attribute13 IS NOT NULL AND
332 ( p_PRICE_LIST_rec.attribute13 <>
333 p_old_PRICE_LIST_rec.attribute13 OR
334 p_old_PRICE_LIST_rec.attribute13 IS NULL ))
335 OR (p_PRICE_LIST_rec.attribute14 IS NOT NULL AND
336 ( p_PRICE_LIST_rec.attribute14 <>
337 p_old_PRICE_LIST_rec.attribute14 OR
338 p_old_PRICE_LIST_rec.attribute14 IS NULL ))
339 OR (p_PRICE_LIST_rec.attribute15 IS NOT NULL AND
340 ( p_PRICE_LIST_rec.attribute15 <>
341 p_old_PRICE_LIST_rec.attribute15 OR
342 p_old_PRICE_LIST_rec.attribute15 IS NULL ))
343 OR (p_PRICE_LIST_rec.attribute2 IS NOT NULL AND
344 ( p_PRICE_LIST_rec.attribute2 <>
345 p_old_PRICE_LIST_rec.attribute2 OR
346 p_old_PRICE_LIST_rec.attribute2 IS NULL ))
347 OR (p_PRICE_LIST_rec.attribute3 IS NOT NULL AND
348 ( p_PRICE_LIST_rec.attribute3 <>
349 p_old_PRICE_LIST_rec.attribute3 OR
350 p_old_PRICE_LIST_rec.attribute3 IS NULL ))
351 OR (p_PRICE_LIST_rec.attribute4 IS NOT NULL AND
352 ( p_PRICE_LIST_rec.attribute4 <>
353 p_old_PRICE_LIST_rec.attribute4 OR
354 p_old_PRICE_LIST_rec.attribute4 IS NULL ))
355 OR (p_PRICE_LIST_rec.attribute5 IS NOT NULL AND
356 ( p_PRICE_LIST_rec.attribute5 <>
357 p_old_PRICE_LIST_rec.attribute5 OR
358 p_old_PRICE_LIST_rec.attribute5 IS NULL ))
359 OR (p_PRICE_LIST_rec.attribute6 IS NOT NULL AND
360 ( p_PRICE_LIST_rec.attribute6 <>
361 p_old_PRICE_LIST_rec.attribute6 OR
362 p_old_PRICE_LIST_rec.attribute6 IS NULL ))
363 OR (p_PRICE_LIST_rec.attribute7 IS NOT NULL AND
364 ( p_PRICE_LIST_rec.attribute7 <>
365 p_old_PRICE_LIST_rec.attribute7 OR
366 p_old_PRICE_LIST_rec.attribute7 IS NULL ))
367 OR (p_PRICE_LIST_rec.attribute8 IS NOT NULL AND
368 ( p_PRICE_LIST_rec.attribute8 <>
369 p_old_PRICE_LIST_rec.attribute8 OR
370 p_old_PRICE_LIST_rec.attribute8 IS NULL ))
371 OR (p_PRICE_LIST_rec.attribute9 IS NOT NULL AND
372 ( p_PRICE_LIST_rec.attribute9 <>
373 p_old_PRICE_LIST_rec.attribute9 OR
374 p_old_PRICE_LIST_rec.attribute9 IS NULL ))
375 OR (p_PRICE_LIST_rec.context IS NOT NULL AND
376 ( p_PRICE_LIST_rec.context <>
377 p_old_PRICE_LIST_rec.context OR
378 p_old_PRICE_LIST_rec.context IS NULL ))
379 THEN
380
381 -- These calls are temporarily commented out
382
383 /*
384 FND_FLEX_DESC_VAL.Set_Column_Value
385 ( column_name => 'ATTRIBUTE1'
386 , column_value => p_PRICE_LIST_rec.attribute1
387 );
388 FND_FLEX_DESC_VAL.Set_Column_Value
389 ( column_name => 'ATTRIBUTE10'
390 , column_value => p_PRICE_LIST_rec.attribute10
391 );
392 FND_FLEX_DESC_VAL.Set_Column_Value
393 ( column_name => 'ATTRIBUTE11'
394 , column_value => p_PRICE_LIST_rec.attribute11
395 );
396 FND_FLEX_DESC_VAL.Set_Column_Value
397 ( column_name => 'ATTRIBUTE12'
398 , column_value => p_PRICE_LIST_rec.attribute12
399 );
400 FND_FLEX_DESC_VAL.Set_Column_Value
401 ( column_name => 'ATTRIBUTE13'
402 , column_value => p_PRICE_LIST_rec.attribute13
403 );
404 FND_FLEX_DESC_VAL.Set_Column_Value
405 ( column_name => 'ATTRIBUTE14'
406 , column_value => p_PRICE_LIST_rec.attribute14
407 );
408 FND_FLEX_DESC_VAL.Set_Column_Value
409 ( column_name => 'ATTRIBUTE15'
410 , column_value => p_PRICE_LIST_rec.attribute15
411 );
412 FND_FLEX_DESC_VAL.Set_Column_Value
413 ( column_name => 'ATTRIBUTE2'
414 , column_value => p_PRICE_LIST_rec.attribute2
415 );
416 FND_FLEX_DESC_VAL.Set_Column_Value
417 ( column_name => 'ATTRIBUTE3'
418 , column_value => p_PRICE_LIST_rec.attribute3
419 );
420 FND_FLEX_DESC_VAL.Set_Column_Value
421 ( column_name => 'ATTRIBUTE4'
422 , column_value => p_PRICE_LIST_rec.attribute4
423 );
424 FND_FLEX_DESC_VAL.Set_Column_Value
425 ( column_name => 'ATTRIBUTE5'
426 , column_value => p_PRICE_LIST_rec.attribute5
427 );
428 FND_FLEX_DESC_VAL.Set_Column_Value
429 ( column_name => 'ATTRIBUTE6'
430 , column_value => p_PRICE_LIST_rec.attribute6
431 );
432 FND_FLEX_DESC_VAL.Set_Column_Value
433 ( column_name => 'ATTRIBUTE7'
434 , column_value => p_PRICE_LIST_rec.attribute7
435 );
436 FND_FLEX_DESC_VAL.Set_Column_Value
437 ( column_name => 'ATTRIBUTE8'
438 , column_value => p_PRICE_LIST_rec.attribute8
439 );
440 FND_FLEX_DESC_VAL.Set_Column_Value
441 ( column_name => 'ATTRIBUTE9'
442 , column_value => p_PRICE_LIST_rec.attribute9
443 );
444 FND_FLEX_DESC_VAL.Set_Column_Value
445 ( column_name => 'CONTEXT'
446 , column_value => p_PRICE_LIST_rec.context
447 );
448 */
449
450 -- Validate descriptive flexfield.
451
452 IF NOT OE_Validate_Attr.Desc_Flex( 'SO_PRICE_LISTS' ) THEN
453 x_return_status := FND_API.G_RET_STS_ERROR;
454 END IF;
455
456 END IF;
457
458 -- Done validating attributes
459
460 EXCEPTION
461
462 WHEN FND_API.G_EXC_ERROR THEN
463
464 x_return_status := FND_API.G_RET_STS_ERROR;
465
466 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
467
468 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
469
470 WHEN OTHERS THEN
471
472 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
473
474 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
475 THEN
476 OE_MSG_PUB.Add_Exc_Msg
477 ( G_PKG_NAME
478 , 'Attributes'
479 );
480 END IF;
481
482 END Attributes;
483
484 -- Procedure Entity_Delete
485
486 PROCEDURE Entity_Delete
487 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
488 , p_PRICE_LIST_rec IN OE_Price_List_PUB.Price_List_Rec_Type
489 )
490 IS
491 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
492 BEGIN
493
494 -- Validate entity delete.
495
496 NULL;
497
498 -- Done.
499
500 x_return_status := l_return_status;
501
502 EXCEPTION
503
504 WHEN FND_API.G_EXC_ERROR THEN
505
506 x_return_status := FND_API.G_RET_STS_ERROR;
507
508 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
509
510 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
511
512 WHEN OTHERS THEN
513
514 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
515
516 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
517 THEN
518 OE_MSG_PUB.Add_Exc_Msg
519 ( G_PKG_NAME
520 , 'Entity_Delete'
521 );
522 END IF;
523
524 END Entity_Delete;
525
526 END OE_Validate_Price_List;