DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_VALIDATE_PRICE_BREAK

Source


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;