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