DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_DEFAULT_FORMULA

Source


1 PACKAGE BODY QP_Default_Formula AS
2 /* $Header: QPXDPRFB.pls 120.2 2005/07/06 01:59:17 appldev ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Default_Formula';
7 
8 --  Package global used within the package.
9 
10 g_FORMULA_rec                 QP_Price_Formula_PUB.Formula_Rec_Type;
11 
12 --  Get functions.
13 
14 FUNCTION Get_Description
15 RETURN VARCHAR2
16 IS
17 BEGIN
18 
19     RETURN NULL;
20 
21 END Get_Description;
22 
23 FUNCTION Get_End_Date_Active
24 RETURN DATE
25 IS
26 BEGIN
27 
28     RETURN NULL;
29 
30 END Get_End_Date_Active;
31 
32 FUNCTION Get_Formula
33 RETURN VARCHAR2
34 IS
35 BEGIN
36 
37     RETURN NULL;
38 
39 END Get_Formula;
40 
41 FUNCTION Get_Name
42 RETURN VARCHAR2
43 IS
44 BEGIN
45 
46     RETURN NULL;
47 
48 END Get_Name;
49 
50 FUNCTION Get_Price_Formula
51 RETURN NUMBER
52 IS
53 l_price_formula_id   NUMBER := NULL;
54 BEGIN
55 
56 oe_debug_pub.add('Entering proc Get_Price_Formula in Formula Defaults Pkg');
57     SELECT QP_PRICE_FORMULAS_B_S.nextval
58     INTO   l_price_formula_id
59     FROM   dual;
60 
61 oe_debug_pub.add('Leaving proc Get_Price_Formula in Formula Defaults Pkg');
62     RETURN l_price_formula_id;
63 
64 END Get_Price_Formula;
65 
66 FUNCTION Get_Start_Date_Active
67 RETURN DATE
68 IS
69 BEGIN
70 
71     RETURN NULL;
72 
73 END Get_Start_Date_Active;
74 
75 PROCEDURE Get_Flex_Formula
76 IS
77 BEGIN
78 
79     --  In the future call Flex APIs for defaults
80 
81     IF g_FORMULA_rec.attribute1 = FND_API.G_MISS_CHAR THEN
82         g_FORMULA_rec.attribute1       := NULL;
83     END IF;
84 
85     IF g_FORMULA_rec.attribute10 = FND_API.G_MISS_CHAR THEN
86         g_FORMULA_rec.attribute10      := NULL;
87     END IF;
88 
89     IF g_FORMULA_rec.attribute11 = FND_API.G_MISS_CHAR THEN
90         g_FORMULA_rec.attribute11      := NULL;
91     END IF;
92 
93     IF g_FORMULA_rec.attribute12 = FND_API.G_MISS_CHAR THEN
94         g_FORMULA_rec.attribute12      := NULL;
95     END IF;
96 
97     IF g_FORMULA_rec.attribute13 = FND_API.G_MISS_CHAR THEN
98         g_FORMULA_rec.attribute13      := NULL;
99     END IF;
100 
101     IF g_FORMULA_rec.attribute14 = FND_API.G_MISS_CHAR THEN
102         g_FORMULA_rec.attribute14      := NULL;
103     END IF;
104 
105     IF g_FORMULA_rec.attribute15 = FND_API.G_MISS_CHAR THEN
106         g_FORMULA_rec.attribute15      := NULL;
107     END IF;
108 
109     IF g_FORMULA_rec.attribute2 = FND_API.G_MISS_CHAR THEN
110         g_FORMULA_rec.attribute2       := NULL;
111     END IF;
112 
113     IF g_FORMULA_rec.attribute3 = FND_API.G_MISS_CHAR THEN
114         g_FORMULA_rec.attribute3       := NULL;
115     END IF;
116 
117     IF g_FORMULA_rec.attribute4 = FND_API.G_MISS_CHAR THEN
118         g_FORMULA_rec.attribute4       := NULL;
119     END IF;
120 
121     IF g_FORMULA_rec.attribute5 = FND_API.G_MISS_CHAR THEN
122         g_FORMULA_rec.attribute5       := NULL;
123     END IF;
124 
125     IF g_FORMULA_rec.attribute6 = FND_API.G_MISS_CHAR THEN
126         g_FORMULA_rec.attribute6       := NULL;
127     END IF;
128 
129     IF g_FORMULA_rec.attribute7 = FND_API.G_MISS_CHAR THEN
130         g_FORMULA_rec.attribute7       := NULL;
131     END IF;
132 
133     IF g_FORMULA_rec.attribute8 = FND_API.G_MISS_CHAR THEN
134         g_FORMULA_rec.attribute8       := NULL;
135     END IF;
136 
137     IF g_FORMULA_rec.attribute9 = FND_API.G_MISS_CHAR THEN
138         g_FORMULA_rec.attribute9       := NULL;
139     END IF;
140 
141     IF g_FORMULA_rec.context = FND_API.G_MISS_CHAR THEN
142         g_FORMULA_rec.context          := NULL;
143     END IF;
144 
145 END Get_Flex_Formula;
146 
147 --  Procedure Attributes
148 
149 PROCEDURE Attributes
150 (   p_FORMULA_rec                   IN  QP_Price_Formula_PUB.Formula_Rec_Type :=
151                                         QP_Price_Formula_PUB.G_MISS_FORMULA_REC
152 ,   p_iteration                     IN  NUMBER := 1
153 ,   x_FORMULA_rec                   OUT NOCOPY /* file.sql.39 change */ QP_Price_Formula_PUB.Formula_Rec_Type
154 )
155 IS
156 l_FORMULA_rec		QP_Price_Formula_PUB.Formula_Rec_Type; --[prarasto]
157 BEGIN
158 
159     --  Check number of iterations.
160 
161     IF p_iteration > QP_GLOBALS.G_MAX_DEF_ITERATIONS THEN
162 
163         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
164         THEN
165 
166             FND_MESSAGE.SET_NAME('QP','OE_DEF_MAX_ITERATION');
167             OE_MSG_PUB.Add;
168 
169         END IF;
170 
171         RAISE FND_API.G_EXC_ERROR;
172 
173     END IF;
174 
175     --  Initialize g_FORMULA_rec
176 
177     g_FORMULA_rec := p_FORMULA_rec;
178 
179     --  Default missing attributes.
180 
181     IF g_FORMULA_rec.description = FND_API.G_MISS_CHAR THEN
182 
183         g_FORMULA_rec.description := Get_Description;
184 
185         IF g_FORMULA_rec.description IS NOT NULL THEN
186 
187             IF QP_Validate.Description(g_FORMULA_rec.description)
188             THEN
189 
190 	        l_FORMULA_rec := g_FORMULA_rec;
191 
192                 QP_Formula_Util.Clear_Dependent_Attr
193                 (   p_attr_id                     => QP_Formula_Util.G_DESCRIPTION
194                 ,   p_FORMULA_rec                 => l_FORMULA_rec
195                 ,   x_FORMULA_rec                 => g_FORMULA_rec
196                 );
197             ELSE
198                 g_FORMULA_rec.description := NULL;
199             END IF;
200 
201         END IF;
202 
203     END IF;
204 
205     IF g_FORMULA_rec.end_date_active = FND_API.G_MISS_DATE THEN
206 
207         g_FORMULA_rec.end_date_active := Get_End_Date_Active;
208 
209         IF g_FORMULA_rec.end_date_active IS NOT NULL THEN
210 
211             IF QP_Validate.End_Date_Active(g_FORMULA_rec.end_date_active)
212             THEN
213 
214 	        l_FORMULA_rec := g_FORMULA_rec;
215 
216                 QP_Formula_Util.Clear_Dependent_Attr
217                 (   p_attr_id                     => QP_Formula_Util.G_END_DATE_ACTIVE
218                 ,   p_FORMULA_rec                 => l_FORMULA_rec
219                 ,   x_FORMULA_rec                 => g_FORMULA_rec
220                 );
221             ELSE
222                 g_FORMULA_rec.end_date_active := NULL;
223             END IF;
224 
225         END IF;
226 
227     END IF;
228 
229     IF g_FORMULA_rec.formula = FND_API.G_MISS_CHAR THEN
230 
231         g_FORMULA_rec.formula := Get_Formula;
232 
233         IF g_FORMULA_rec.formula IS NOT NULL THEN
234 
235             IF QP_Validate.Formula(g_FORMULA_rec.formula)
236             THEN
237 
238 	        l_FORMULA_rec := g_FORMULA_rec;
239 
240                 QP_Formula_Util.Clear_Dependent_Attr
241                 (   p_attr_id                     => QP_Formula_Util.G_FORMULA
242                 ,   p_FORMULA_rec                 => l_FORMULA_rec
243                 ,   x_FORMULA_rec                 => g_FORMULA_rec
244                 );
245             ELSE
246                 g_FORMULA_rec.formula := NULL;
247             END IF;
248 
249         END IF;
250 
251     END IF;
252 
253     IF g_FORMULA_rec.name = FND_API.G_MISS_CHAR THEN
254 
255         g_FORMULA_rec.name := Get_Name;
256 
257         IF g_FORMULA_rec.name IS NOT NULL THEN
258 
259             IF QP_Validate.Name(g_FORMULA_rec.name)
260             THEN
261 
262 	        l_FORMULA_rec := g_FORMULA_rec;
263 
264                 QP_Formula_Util.Clear_Dependent_Attr
265                 (   p_attr_id                     => QP_Formula_Util.G_NAME
266                 ,   p_FORMULA_rec                 => l_FORMULA_rec
267                 ,   x_FORMULA_rec                 => g_FORMULA_rec
268                 );
269             ELSE
270                 g_FORMULA_rec.name := NULL;
271             END IF;
272 
273         END IF;
274 
275     END IF;
276 
277     IF g_FORMULA_rec.price_formula_id = FND_API.G_MISS_NUM THEN
278 
279         g_FORMULA_rec.price_formula_id := Get_Price_Formula;
280 
281         IF g_FORMULA_rec.price_formula_id IS NOT NULL THEN
282 
283             IF QP_Validate.Price_Formula(g_FORMULA_rec.price_formula_id)
284             THEN
285 
286 	        l_FORMULA_rec := g_FORMULA_rec;
287 
288                 QP_Formula_Util.Clear_Dependent_Attr
289                 (   p_attr_id                     => QP_Formula_Util.G_PRICE_FORMULA
290                 ,   p_FORMULA_rec                 => l_FORMULA_rec
291                 ,   x_FORMULA_rec                 => g_FORMULA_rec
292                 );
293             ELSE
294                 g_FORMULA_rec.price_formula_id := NULL;
295             END IF;
296 
297         END IF;
298 
299     END IF;
300 
301     IF g_FORMULA_rec.start_date_active = FND_API.G_MISS_DATE THEN
302 
303         g_FORMULA_rec.start_date_active := Get_Start_Date_Active;
304 
305         IF g_FORMULA_rec.start_date_active IS NOT NULL THEN
306 
307             IF QP_Validate.Start_Date_Active(g_FORMULA_rec.start_date_active)
308             THEN
309 
310 	        l_FORMULA_rec := g_FORMULA_rec;
311 
312                 QP_Formula_Util.Clear_Dependent_Attr
313                 (   p_attr_id                     => QP_Formula_Util.G_START_DATE_ACTIVE
314                 ,   p_FORMULA_rec                 => l_FORMULA_rec
315                 ,   x_FORMULA_rec                 => g_FORMULA_rec
316                 );
317             ELSE
318                 g_FORMULA_rec.start_date_active := NULL;
319             END IF;
320 
321         END IF;
322 
323     END IF;
324 
325     IF g_FORMULA_rec.attribute1 = FND_API.G_MISS_CHAR
326     OR  g_FORMULA_rec.attribute10 = FND_API.G_MISS_CHAR
327     OR  g_FORMULA_rec.attribute11 = FND_API.G_MISS_CHAR
328     OR  g_FORMULA_rec.attribute12 = FND_API.G_MISS_CHAR
329     OR  g_FORMULA_rec.attribute13 = FND_API.G_MISS_CHAR
330     OR  g_FORMULA_rec.attribute14 = FND_API.G_MISS_CHAR
331     OR  g_FORMULA_rec.attribute15 = FND_API.G_MISS_CHAR
332     OR  g_FORMULA_rec.attribute2 = FND_API.G_MISS_CHAR
333     OR  g_FORMULA_rec.attribute3 = FND_API.G_MISS_CHAR
334     OR  g_FORMULA_rec.attribute4 = FND_API.G_MISS_CHAR
335     OR  g_FORMULA_rec.attribute5 = FND_API.G_MISS_CHAR
336     OR  g_FORMULA_rec.attribute6 = FND_API.G_MISS_CHAR
337     OR  g_FORMULA_rec.attribute7 = FND_API.G_MISS_CHAR
338     OR  g_FORMULA_rec.attribute8 = FND_API.G_MISS_CHAR
339     OR  g_FORMULA_rec.attribute9 = FND_API.G_MISS_CHAR
340     OR  g_FORMULA_rec.context = FND_API.G_MISS_CHAR
341     THEN
342 
343         Get_Flex_Formula;
344 
345     END IF;
346 
347     IF g_FORMULA_rec.created_by = FND_API.G_MISS_NUM THEN
348 
349         g_FORMULA_rec.created_by := NULL;
350 
351     END IF;
352 
353     IF g_FORMULA_rec.creation_date = FND_API.G_MISS_DATE THEN
354 
355         g_FORMULA_rec.creation_date := NULL;
356 
357     END IF;
358 
359     IF g_FORMULA_rec.last_updated_by = FND_API.G_MISS_NUM THEN
360 
361         g_FORMULA_rec.last_updated_by := NULL;
362 
363     END IF;
364 
365     IF g_FORMULA_rec.last_update_date = FND_API.G_MISS_DATE THEN
366 
367         g_FORMULA_rec.last_update_date := NULL;
368 
369     END IF;
370 
371     IF g_FORMULA_rec.last_update_login = FND_API.G_MISS_NUM THEN
372 
373         g_FORMULA_rec.last_update_login := NULL;
374 
375     END IF;
376 
377     --  Redefault if there are any missing attributes.
378 
379     IF  g_FORMULA_rec.attribute1 = FND_API.G_MISS_CHAR
380     OR  g_FORMULA_rec.attribute10 = FND_API.G_MISS_CHAR
381     OR  g_FORMULA_rec.attribute11 = FND_API.G_MISS_CHAR
382     OR  g_FORMULA_rec.attribute12 = FND_API.G_MISS_CHAR
383     OR  g_FORMULA_rec.attribute13 = FND_API.G_MISS_CHAR
384     OR  g_FORMULA_rec.attribute14 = FND_API.G_MISS_CHAR
385     OR  g_FORMULA_rec.attribute15 = FND_API.G_MISS_CHAR
386     OR  g_FORMULA_rec.attribute2 = FND_API.G_MISS_CHAR
387     OR  g_FORMULA_rec.attribute3 = FND_API.G_MISS_CHAR
388     OR  g_FORMULA_rec.attribute4 = FND_API.G_MISS_CHAR
389     OR  g_FORMULA_rec.attribute5 = FND_API.G_MISS_CHAR
390     OR  g_FORMULA_rec.attribute6 = FND_API.G_MISS_CHAR
391     OR  g_FORMULA_rec.attribute7 = FND_API.G_MISS_CHAR
392     OR  g_FORMULA_rec.attribute8 = FND_API.G_MISS_CHAR
393     OR  g_FORMULA_rec.attribute9 = FND_API.G_MISS_CHAR
394     OR  g_FORMULA_rec.context = FND_API.G_MISS_CHAR
395     OR  g_FORMULA_rec.created_by = FND_API.G_MISS_NUM
396     OR  g_FORMULA_rec.creation_date = FND_API.G_MISS_DATE
397     OR  g_FORMULA_rec.description = FND_API.G_MISS_CHAR
398     OR  g_FORMULA_rec.end_date_active = FND_API.G_MISS_DATE
399     OR  g_FORMULA_rec.formula = FND_API.G_MISS_CHAR
400     OR  g_FORMULA_rec.last_updated_by = FND_API.G_MISS_NUM
401     OR  g_FORMULA_rec.last_update_date = FND_API.G_MISS_DATE
402     OR  g_FORMULA_rec.last_update_login = FND_API.G_MISS_NUM
403     OR  g_FORMULA_rec.name = FND_API.G_MISS_CHAR
404     OR  g_FORMULA_rec.price_formula_id = FND_API.G_MISS_NUM
405     OR  g_FORMULA_rec.start_date_active = FND_API.G_MISS_DATE
406     THEN
407 
408         QP_Default_Formula.Attributes
409         (   p_FORMULA_rec                 => g_FORMULA_rec
410         ,   p_iteration                   => p_iteration + 1
411         ,   x_FORMULA_rec                 => x_FORMULA_rec
412         );
413     ELSE
414 
415         --  Done defaulting attributes
416 
417         x_FORMULA_rec := g_FORMULA_rec;
418 
419     END IF;
420 
421 END Attributes;
422 
423 END QP_Default_Formula;