[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;