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