DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_DEFAULT_CONTRACT

Source


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