[Home] [Help]
PACKAGE BODY: APPS.OE_OE_FORM_CONTRACT
Source
1 PACKAGE BODY OE_OE_Form_Contract AS
2 /* $Header: OEXFPCTB.pls 115.0 99/07/15 19:22:32 porting shi $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_OE_Form_Contract';
7
8 -- Global variables holding cached record.
9
10 g_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
11 g_db_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
12
13 -- Revision Control S
14 g_Revision_Change VARCHAR2(1) := FND_API.G_FALSE;
15 g_Agreement_Id NUMBER := FND_API.G_MISS_NUM;
16 -- Revision Control E
17
18 -- Forward declaration of procedures maintaining entity record cache.
19
20 PROCEDURE Write_Contract
21 ( p_Contract_rec IN OE_Pricing_Cont_PUB.Contract_Rec_Type
22 , p_db_record IN BOOLEAN := FALSE
23 );
24
25 FUNCTION Get_Contract
26 ( p_db_record IN BOOLEAN := FALSE
27 , p_pricing_contract_id IN NUMBER
28 )
29 RETURN OE_Pricing_Cont_PUB.Contract_Rec_Type;
30
31 PROCEDURE Clear_Contract;
32
33 -- Global variable holding performed operations.
34
35 g_opr__tbl OE_Pricing_Cont_PUB.Contract_Tbl_Type;
36
37 PROCEDURE Get_Startup_Values
38 (Item_Id_Flex_Code IN VARCHAR2,
39 Item_Id_Flex_Num OUT NUMBER) IS
40
41 CURSOR C_Item_Flex(X_Id_Flex_Code VARCHAR2) is
42 SELECT id_flex_num
43 FROM fnd_id_flex_structures
44 WHERE id_flex_code = X_Id_Flex_Code;
45 BEGIN
46
47 oe_debug_pub.add('Entering OE_OE_FORM_CONTRACT.GET_FORM_STARTUP_VALUES');
48
49 OPEN C_Item_Flex(Item_Id_Flex_Code);
50 FETCH C_Item_Flex INTO Item_Id_Flex_Num;
51 CLOSE C_Item_Flex;
52
53 oe_debug_pub.add('Exiting OE_OE_FORM_CONTRACT.GET_FORM_STARTUP_VALUES');
54
55 EXCEPTION
56 WHEN OTHERS THEN
57 OE_MSG.Internal_Exception('OE_OE_Form_Contract.Get_Form_Startup_Values',
58 'Get Form Startup Values', 'AGREEMENT');
59
60 END Get_Startup_Values;
61
62
63
64 -- Procedure : Default_Attributes
65 --
66
67 PROCEDURE Default_Attributes
68 ( x_return_status OUT VARCHAR2
69 , x_msg_count OUT NUMBER
70 , x_msg_data OUT VARCHAR2
71 , x_agreement_id OUT NUMBER
72 , x_attribute1 OUT VARCHAR2
73 , x_attribute10 OUT VARCHAR2
74 , x_attribute11 OUT VARCHAR2
75 , x_attribute12 OUT VARCHAR2
76 , x_attribute13 OUT VARCHAR2
77 , x_attribute14 OUT VARCHAR2
78 , x_attribute15 OUT VARCHAR2
79 , x_attribute2 OUT VARCHAR2
80 , x_attribute3 OUT VARCHAR2
81 , x_attribute4 OUT VARCHAR2
82 , x_attribute5 OUT VARCHAR2
83 , x_attribute6 OUT VARCHAR2
84 , x_attribute7 OUT VARCHAR2
85 , x_attribute8 OUT VARCHAR2
86 , x_attribute9 OUT VARCHAR2
87 , x_context OUT VARCHAR2
88 , x_discount_id OUT NUMBER
89 , x_last_updated_by OUT NUMBER
90 , x_price_list_id OUT NUMBER
91 , x_pricing_contract_id OUT NUMBER
92 , x_agreement OUT VARCHAR2
93 , x_discount OUT VARCHAR2
94 , x_price_list OUT VARCHAR2
95 )
96 IS
97 l_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
98 l_Contract_val_rec OE_Pricing_Cont_PUB.Contract_Val_Rec_Type;
99 l_control_rec OE_GLOBALS.Control_Rec_Type;
100 l_return_status VARCHAR2(1);
101 l_x_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
102 l_x_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
103 l_x_Price_LHeader_rec OE_Price_List_PUB.Price_List_Rec_Type;
104 l_x_Discount_Header_rec OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
105 l_x_Price_LLine_rec OE_Price_List_PUB.Price_List_Line_Rec_Type;
106 l_x_Price_LLine_tbl OE_Price_List_PUB.Price_List_Line_Tbl_Type;
107 l_x_Discount_Cust_rec OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
108 l_x_Discount_Cust_tbl OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
109 l_x_Discount_Line_rec OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
110 l_x_Discount_Line_tbl OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
111 l_x_Price_Break_rec OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
112 l_x_Price_Break_tbl OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
113 BEGIN
114
115 oe_debug_pub.add('Entering OE_OE_Form_Contract.Default_Attributes');
116
117 -- Set control flags.
118
119 l_control_rec.controlled_operation := TRUE;
120 l_control_rec.default_attributes := TRUE;
121
122 l_control_rec.change_attributes := FALSE;
123 l_control_rec.validate_entity := FALSE;
124 l_control_rec.write_to_DB := FALSE;
125 l_control_rec.process := FALSE;
126
127 -- Instruct API to retain its caches
128
129 l_control_rec.clear_api_cache := FALSE;
130 l_control_rec.clear_api_requests := FALSE;
131
132 -- Load IN parameters if any exist
133
134
135 -- Defaulting of flex values is currently done by the form.
136 -- Set flex attributes to NULL in order to avoid defaulting them.
137
138 l_Contract_rec.attribute1 := 'NULL';
139 l_Contract_rec.attribute10 := 'NULL';
140 l_Contract_rec.attribute11 := 'NULL';
141 l_Contract_rec.attribute12 := 'NULL';
142 l_Contract_rec.attribute13 := 'NULL';
143 l_Contract_rec.attribute14 := 'NULL';
144 l_Contract_rec.attribute15 := 'NULL';
145 l_Contract_rec.attribute2 := 'NULL';
146 l_Contract_rec.attribute3 := 'NULL';
147 l_Contract_rec.attribute4 := 'NULL';
148 l_Contract_rec.attribute5 := 'NULL';
149 l_Contract_rec.attribute6 := 'NULL';
150 l_Contract_rec.attribute7 := 'NULL';
151 l_Contract_rec.attribute8 := 'NULL';
152 l_Contract_rec.attribute9 := 'NULL';
153 l_Contract_rec.context := 'NULL';
154
155 -- Set Operation to Create
156
157 l_Contract_rec.operation := OE_GLOBALS.G_OPR_CREATE;
158
159 -- Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
160
161 OE_Pricing_Cont_PVT.Process_Pricing_Cont
162 ( p_api_version_number => 1.0
163 , p_init_msg_list => FND_API.G_TRUE
164 , x_return_status => l_return_status
165 , x_msg_count => x_msg_count
166 , x_msg_data => x_msg_data
167 , p_control_rec => l_control_rec
168 , p_Contract_rec => l_Contract_rec
169 , x_Contract_rec => l_x_Contract_rec
170 , x_Agreement_rec => l_x_Agreement_rec
171 , x_Price_LHeader_rec => l_x_Price_LHeader_rec
172 , x_Discount_Header_rec => l_x_Discount_Header_rec
173 , x_Price_LLine_tbl => l_x_Price_LLine_tbl
174 , x_Discount_Cust_tbl => l_x_Discount_Cust_tbl
175 , x_Discount_Line_tbl => l_x_Discount_Line_tbl
176 , x_Price_Break_tbl => l_x_Price_Break_tbl
177 );
178
179 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
180 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
181 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
182 RAISE FND_API.G_EXC_ERROR;
183 END IF;
184
185
186 -- Load OUT parameters.
187
188 x_agreement_id := l_x_Contract_rec.agreement_id;
189 x_attribute1 := l_x_Contract_rec.attribute1;
190 x_attribute10 := l_x_Contract_rec.attribute10;
191 x_attribute11 := l_x_Contract_rec.attribute11;
192 x_attribute12 := l_x_Contract_rec.attribute12;
193 x_attribute13 := l_x_Contract_rec.attribute13;
194 x_attribute14 := l_x_Contract_rec.attribute14;
195 x_attribute15 := l_x_Contract_rec.attribute15;
196 x_attribute2 := l_x_Contract_rec.attribute2;
197 x_attribute3 := l_x_Contract_rec.attribute3;
198 x_attribute4 := l_x_Contract_rec.attribute4;
199 x_attribute5 := l_x_Contract_rec.attribute5;
200 x_attribute6 := l_x_Contract_rec.attribute6;
201 x_attribute7 := l_x_Contract_rec.attribute7;
202 x_attribute8 := l_x_Contract_rec.attribute8;
203 x_attribute9 := l_x_Contract_rec.attribute9;
204 x_context := l_x_Contract_rec.context;
205 x_discount_id := l_x_Contract_rec.discount_id;
206 x_last_updated_by := l_x_Contract_rec.last_updated_by;
207 x_price_list_id := l_x_Contract_rec.price_list_id;
208 x_pricing_contract_id := l_x_Contract_rec.pricing_contract_id;
209
210 -- Load display out parameters if any
211
212 l_Contract_val_rec := OE_Contract_Util.Get_Values
213 ( p_Contract_rec => l_x_Contract_rec
214 );
215 x_agreement := l_Contract_val_rec.agreement;
216 x_discount := l_Contract_val_rec.discount;
217 x_price_list := l_Contract_val_rec.price_list;
218
219 -- Write to cache.
220 -- Set db_flag to False before writing to cache
221
222 l_x_Contract_rec.db_flag := FND_API.G_FALSE;
223
224 Write_Contract
225 ( p_Contract_rec => l_x_Contract_rec
226 );
227
228 -- Set return status.
229
230 x_return_status := FND_API.G_RET_STS_SUCCESS;
231
232 -- Get message count and data
233
234 OE_MSG_PUB.Count_And_Get
235 ( p_count => x_msg_count
236 , p_data => x_msg_data
237 );
238
239 oe_debug_pub.add('Exiting OE_OE_Form_Contract.Default_Attributes');
240
241 EXCEPTION
242
243 WHEN FND_API.G_EXC_ERROR THEN
244
245 x_return_status := FND_API.G_RET_STS_ERROR;
246
247 -- Get message count and data
248
249 OE_MSG_PUB.Count_And_Get
250 ( p_count => x_msg_count
251 , p_data => x_msg_data
252 );
253
254 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
255
256 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
257
258 -- Get message count and data
259
260 OE_MSG_PUB.Count_And_Get
261 ( p_count => x_msg_count
262 , p_data => x_msg_data
263 );
264
265 WHEN OTHERS THEN
266
267 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
268
269 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
270 THEN
271 OE_MSG_PUB.Add_Exc_Msg
272 ( G_PKG_NAME
273 , 'Default_Attributes'
274 );
275 END IF;
276
277 -- Get message count and data
278
279 OE_MSG_PUB.Count_And_Get
280 ( p_count => x_msg_count
281 , p_data => x_msg_data
282 );
283
284 END Default_Attributes;
285
286 -- Procedure : Change_Attribute
287 --
288
289 PROCEDURE Change_Attribute
290 ( x_return_status OUT VARCHAR2
291 , x_msg_count OUT NUMBER
292 , x_msg_data OUT VARCHAR2
293 , p_pricing_contract_id IN NUMBER
294 , p_attr_id IN NUMBER
295 , p_attr_value IN VARCHAR2
296 , p_attribute1 IN VARCHAR2
297 , p_attribute10 IN VARCHAR2
298 , p_attribute11 IN VARCHAR2
299 , p_attribute12 IN VARCHAR2
300 , p_attribute13 IN VARCHAR2
301 , p_attribute14 IN VARCHAR2
302 , p_attribute15 IN VARCHAR2
303 , p_attribute2 IN VARCHAR2
304 , p_attribute3 IN VARCHAR2
305 , p_attribute4 IN VARCHAR2
306 , p_attribute5 IN VARCHAR2
307 , p_attribute6 IN VARCHAR2
308 , p_attribute7 IN VARCHAR2
309 , p_attribute8 IN VARCHAR2
310 , p_attribute9 IN VARCHAR2
311 , p_context IN VARCHAR2
312 , x_agreement_id OUT NUMBER
313 , x_attribute1 OUT VARCHAR2
314 , x_attribute10 OUT VARCHAR2
315 , x_attribute11 OUT VARCHAR2
316 , x_attribute12 OUT VARCHAR2
317 , x_attribute13 OUT VARCHAR2
318 , x_attribute14 OUT VARCHAR2
319 , x_attribute15 OUT VARCHAR2
320 , x_attribute2 OUT VARCHAR2
321 , x_attribute3 OUT VARCHAR2
322 , x_attribute4 OUT VARCHAR2
323 , x_attribute5 OUT VARCHAR2
324 , x_attribute6 OUT VARCHAR2
325 , x_attribute7 OUT VARCHAR2
326 , x_attribute8 OUT VARCHAR2
327 , x_attribute9 OUT VARCHAR2
328 , x_context OUT VARCHAR2
329 , x_discount_id OUT NUMBER
330 , x_last_updated_by OUT NUMBER
331 , x_price_list_id OUT NUMBER
332 , x_pricing_contract_id OUT NUMBER
333 , x_agreement OUT VARCHAR2
334 , x_discount OUT VARCHAR2
335 , x_price_list OUT VARCHAR2
336 )
337 IS
338 l_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
339 l_old_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
340 l_Contract_val_rec OE_Pricing_Cont_PUB.Contract_Val_Rec_Type;
341 l_control_rec OE_GLOBALS.Control_Rec_Type;
342 l_return_status VARCHAR2(1);
343 l_x_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
344 l_x_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
345 l_x_Price_LHeader_rec OE_Price_List_PUB.Price_List_Rec_Type;
346 l_x_Discount_Header_rec OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
347 l_x_Price_LLine_rec OE_Price_List_PUB.Price_List_Line_Rec_Type;
348 l_x_Price_LLine_tbl OE_Price_List_PUB.Price_List_Line_Tbl_Type;
349 l_x_Discount_Cust_rec OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
350 l_x_Discount_Cust_tbl OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
351 l_x_Discount_Line_rec OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
352 l_x_Discount_Line_tbl OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
353 l_x_Price_Break_rec OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
354 l_x_Price_Break_tbl OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
355 BEGIN
356
357 oe_debug_pub.add('Entering OE_OE_Form_Contract.Change_Attribute');
358
359 -- Set control flags.
360
361 l_control_rec.controlled_operation := TRUE;
362 l_control_rec.change_attributes := TRUE;
363
364 l_control_rec.default_attributes := FALSE;
365 l_control_rec.validate_entity := FALSE;
366 l_control_rec.write_to_DB := FALSE;
367 l_control_rec.process := FALSE;
368
369 -- Instruct API to retain its caches
370
371 l_control_rec.clear_api_cache := FALSE;
372 l_control_rec.clear_api_requests := FALSE;
373
374 -- Read Contract from cache
375
376 l_Contract_rec := Get_Contract
377 ( p_db_record => FALSE
378 , p_pricing_contract_id => p_pricing_contract_id
379 );
380
381 l_old_Contract_rec := l_Contract_rec;
382
383 IF p_attr_id = OE_Contract_Util.G_AGREEMENT THEN
384 l_Contract_rec.agreement_id := TO_NUMBER(p_attr_value);
385 ELSIF p_attr_id = OE_Contract_Util.G_DISCOUNT THEN
386 l_Contract_rec.discount_id := TO_NUMBER(p_attr_value);
387 ELSIF p_attr_id = OE_Contract_Util.G_LAST_UPDATED_BY THEN
388 l_Contract_rec.last_updated_by := TO_NUMBER(p_attr_value);
389 ELSIF p_attr_id = OE_Contract_Util.G_PRICE_LIST THEN
390 l_Contract_rec.price_list_id := TO_NUMBER(p_attr_value);
391 ELSIF p_attr_id = OE_Contract_Util.G_PRICING_CONTRACT THEN
392 l_Contract_rec.pricing_contract_id := TO_NUMBER(p_attr_value);
393 ELSIF p_attr_id = OE_Contract_Util.G_ATTRIBUTE1
394 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE10
395 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE11
396 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE12
397 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE13
398 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE14
399 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE15
400 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE2
401 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE3
402 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE4
403 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE5
404 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE6
405 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE7
406 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE8
407 OR p_attr_id = OE_Contract_Util.G_ATTRIBUTE9
408 OR p_attr_id = OE_Contract_Util.G_CONTEXT
409 THEN
410
411 l_Contract_rec.attribute1 := p_attribute1;
412 l_Contract_rec.attribute10 := p_attribute10;
413 l_Contract_rec.attribute11 := p_attribute11;
414 l_Contract_rec.attribute12 := p_attribute12;
415 l_Contract_rec.attribute13 := p_attribute13;
416 l_Contract_rec.attribute14 := p_attribute14;
417 l_Contract_rec.attribute15 := p_attribute15;
418 l_Contract_rec.attribute2 := p_attribute2;
419 l_Contract_rec.attribute3 := p_attribute3;
420 l_Contract_rec.attribute4 := p_attribute4;
421 l_Contract_rec.attribute5 := p_attribute5;
422 l_Contract_rec.attribute6 := p_attribute6;
423 l_Contract_rec.attribute7 := p_attribute7;
424 l_Contract_rec.attribute8 := p_attribute8;
425 l_Contract_rec.attribute9 := p_attribute9;
426 l_Contract_rec.context := p_context;
427
428 ELSE
429
430 -- Unexpected error, unrecognized attribute
431
432 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
433 THEN
434 OE_MSG_PUB.Add_Exc_Msg
435 ( G_PKG_NAME
436 , 'Change_Attribute'
437 , 'Unrecognized attribute'
438 );
439 END IF;
440
441 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
442
443 END IF;
444
445 -- Set Operation.
446
447 IF FND_API.To_Boolean(l_Contract_rec.db_flag) THEN
448 l_Contract_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
449 ELSE
450 l_Contract_rec.operation := OE_GLOBALS.G_OPR_CREATE;
451 END IF;
452
453 -- Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
454
455 OE_Pricing_Cont_PVT.Process_Pricing_Cont
456 ( p_api_version_number => 1.0
457 , p_init_msg_list => FND_API.G_TRUE
458 , p_validation_level => FND_API.G_VALID_LEVEL_NONE
459 , x_return_status => l_return_status
460 , x_msg_count => x_msg_count
461 , x_msg_data => x_msg_data
462 , p_control_rec => l_control_rec
463 , p_Contract_rec => l_Contract_rec
464 , p_old_Contract_rec => l_old_Contract_rec
465 , x_Contract_rec => l_x_Contract_rec
466 , x_Agreement_rec => l_x_Agreement_rec
467 , x_Price_LHeader_rec => l_x_Price_LHeader_rec
468 , x_Discount_Header_rec => l_x_Discount_Header_rec
469 , x_Price_LLine_tbl => l_x_Price_LLine_tbl
470 , x_Discount_Cust_tbl => l_x_Discount_Cust_tbl
471 , x_Discount_Line_tbl => l_x_Discount_Line_tbl
472 , x_Price_Break_tbl => l_x_Price_Break_tbl
473 );
474
475 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
476 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
477 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
478 RAISE FND_API.G_EXC_ERROR;
479 END IF;
480
481
482 -- Init OUT parameters to missing.
483
484 x_agreement_id := FND_API.G_MISS_NUM;
485 x_attribute1 := FND_API.G_MISS_CHAR;
486 x_attribute10 := FND_API.G_MISS_CHAR;
487 x_attribute11 := FND_API.G_MISS_CHAR;
488 x_attribute12 := FND_API.G_MISS_CHAR;
489 x_attribute13 := FND_API.G_MISS_CHAR;
490 x_attribute14 := FND_API.G_MISS_CHAR;
491 x_attribute15 := FND_API.G_MISS_CHAR;
492 x_attribute2 := FND_API.G_MISS_CHAR;
493 x_attribute3 := FND_API.G_MISS_CHAR;
494 x_attribute4 := FND_API.G_MISS_CHAR;
495 x_attribute5 := FND_API.G_MISS_CHAR;
496 x_attribute6 := FND_API.G_MISS_CHAR;
497 x_attribute7 := FND_API.G_MISS_CHAR;
498 x_attribute8 := FND_API.G_MISS_CHAR;
499 x_attribute9 := FND_API.G_MISS_CHAR;
500 x_context := FND_API.G_MISS_CHAR;
501 x_discount_id := FND_API.G_MISS_NUM;
502 x_last_updated_by := FND_API.G_MISS_NUM;
503 x_price_list_id := FND_API.G_MISS_NUM;
504 x_pricing_contract_id := FND_API.G_MISS_NUM;
505 x_agreement := FND_API.G_MISS_CHAR;
506 x_discount := FND_API.G_MISS_CHAR;
507 x_price_list := FND_API.G_MISS_CHAR;
508
509 -- Load display out parameters if any
510
511 l_Contract_val_rec := OE_Contract_Util.Get_Values
512 ( p_Contract_rec => l_x_Contract_rec
513 , p_old_Contract_rec => l_Contract_rec
514 );
515
516 -- Return changed attributes.
517
518 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.agreement_id,
519 l_Contract_rec.agreement_id)
520 THEN
521 x_agreement_id := l_x_Contract_rec.agreement_id;
522 x_agreement := l_Contract_val_rec.agreement;
523 END IF;
524
525 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute1,
526 l_Contract_rec.attribute1)
527 THEN
528 x_attribute1 := l_x_Contract_rec.attribute1;
529 END IF;
530
531 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute10,
532 l_Contract_rec.attribute10)
533 THEN
534 x_attribute10 := l_x_Contract_rec.attribute10;
535 END IF;
536
537 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute11,
538 l_Contract_rec.attribute11)
539 THEN
540 x_attribute11 := l_x_Contract_rec.attribute11;
541 END IF;
542
543 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute12,
544 l_Contract_rec.attribute12)
545 THEN
546 x_attribute12 := l_x_Contract_rec.attribute12;
547 END IF;
548
549 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute13,
550 l_Contract_rec.attribute13)
551 THEN
552 x_attribute13 := l_x_Contract_rec.attribute13;
553 END IF;
554
555 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute14,
556 l_Contract_rec.attribute14)
557 THEN
558 x_attribute14 := l_x_Contract_rec.attribute14;
559 END IF;
560
561 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute15,
562 l_Contract_rec.attribute15)
563 THEN
564 x_attribute15 := l_x_Contract_rec.attribute15;
565 END IF;
566
567 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute2,
568 l_Contract_rec.attribute2)
569 THEN
570 x_attribute2 := l_x_Contract_rec.attribute2;
571 END IF;
572
573 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute3,
574 l_Contract_rec.attribute3)
575 THEN
576 x_attribute3 := l_x_Contract_rec.attribute3;
577 END IF;
578
579 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute4,
580 l_Contract_rec.attribute4)
581 THEN
582 x_attribute4 := l_x_Contract_rec.attribute4;
583 END IF;
584
585 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute5,
586 l_Contract_rec.attribute5)
587 THEN
588 x_attribute5 := l_x_Contract_rec.attribute5;
589 END IF;
590
591 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute6,
592 l_Contract_rec.attribute6)
593 THEN
594 x_attribute6 := l_x_Contract_rec.attribute6;
595 END IF;
596
597 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute7,
598 l_Contract_rec.attribute7)
599 THEN
600 x_attribute7 := l_x_Contract_rec.attribute7;
601 END IF;
602
603 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute8,
604 l_Contract_rec.attribute8)
605 THEN
606 x_attribute8 := l_x_Contract_rec.attribute8;
607 END IF;
608
609 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.attribute9,
610 l_Contract_rec.attribute9)
611 THEN
612 x_attribute9 := l_x_Contract_rec.attribute9;
613 END IF;
614
615 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.context,
616 l_Contract_rec.context)
617 THEN
618 x_context := l_x_Contract_rec.context;
619 END IF;
620
621 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.discount_id,
622 l_Contract_rec.discount_id)
623 THEN
624 x_discount_id := l_x_Contract_rec.discount_id;
625 x_discount := l_Contract_val_rec.discount;
626 END IF;
627
628 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.last_updated_by,
629 l_Contract_rec.last_updated_by)
630 THEN
631 x_last_updated_by := l_x_Contract_rec.last_updated_by;
632 END IF;
633
634 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.price_list_id,
635 l_Contract_rec.price_list_id)
636 THEN
637 x_price_list_id := l_x_Contract_rec.price_list_id;
638 x_price_list := l_Contract_val_rec.price_list;
639 END IF;
640
641 IF NOT OE_GLOBALS.Equal(l_x_Contract_rec.pricing_contract_id,
642 l_Contract_rec.pricing_contract_id)
643 THEN
644 x_pricing_contract_id := l_x_Contract_rec.pricing_contract_id;
645 END IF;
646
647
648 -- Write to cache.
649
650 Write_Contract
651 ( p_Contract_rec => l_x_Contract_rec
652 );
653
654 -- Set return status.
655
656 x_return_status := FND_API.G_RET_STS_SUCCESS;
657
658 -- Get message count and data
659
660 OE_MSG_PUB.Count_And_Get
661 ( p_count => x_msg_count
662 , p_data => x_msg_data
663 );
664
665 oe_debug_pub.add('Exiting OE_OE_Form_Contract.Change_Attribute');
666
667 EXCEPTION
668
669 WHEN FND_API.G_EXC_ERROR THEN
670
671 x_return_status := FND_API.G_RET_STS_ERROR;
672
673 -- Get message count and data
674
675 OE_MSG_PUB.Count_And_Get
676 ( p_count => x_msg_count
677 , p_data => x_msg_data
678 );
679
680 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
681
682 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
683
684 -- Get message count and data
685
686 OE_MSG_PUB.Count_And_Get
687 ( p_count => x_msg_count
688 , p_data => x_msg_data
689 );
690
691 WHEN OTHERS THEN
692
693 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
694
695 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
696 THEN
697 OE_MSG_PUB.Add_Exc_Msg
698 ( G_PKG_NAME
699 , 'Change_Attribute'
700 );
701 END IF;
702
703 -- Get message count and data
704
705 OE_MSG_PUB.Count_And_Get
706 ( p_count => x_msg_count
707 , p_data => x_msg_data
708 );
709
710 END Change_Attribute;
711
712 -- Procedure Validate_And_Write
713 --
714
715 PROCEDURE Validate_And_Write
716 ( x_return_status OUT VARCHAR2
717 , x_msg_count OUT NUMBER
718 , x_msg_data OUT VARCHAR2
719 , p_pricing_contract_id IN NUMBER
720 , x_creation_date OUT DATE
721 , x_created_by OUT NUMBER
722 , x_last_update_date OUT DATE
723 , x_last_updated_by OUT NUMBER
724 , x_last_update_login OUT NUMBER
725 )
726 IS
727 l_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
728 l_old_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
729 l_control_rec OE_GLOBALS.Control_Rec_Type;
730 l_return_status VARCHAR2(1);
731 l_x_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
732 l_x_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
733 l_x_Price_LHeader_rec OE_Price_List_PUB.Price_List_Rec_Type;
734 l_x_Discount_Header_rec OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
735 l_x_Price_LLine_rec OE_Price_List_PUB.Price_List_Line_Rec_Type;
736 l_x_Price_LLine_tbl OE_Price_List_PUB.Price_List_Line_Tbl_Type;
737 l_x_Discount_Cust_rec OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
738 l_x_Discount_Cust_tbl OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
739 l_x_Discount_Line_rec OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
740 l_x_Discount_Line_tbl OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
741 l_x_Price_Break_rec OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
742 l_x_Price_Break_tbl OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
743 BEGIN
744
745 oe_debug_pub.add('Entering OE_OE_Form_Contract.Validate_And_Write');
746
747 -- Set control flags.
748
749 l_control_rec.controlled_operation := TRUE;
750 l_control_rec.validate_entity := TRUE;
751 l_control_rec.write_to_DB := TRUE;
752
753 l_control_rec.default_attributes := FALSE;
754 l_control_rec.change_attributes := FALSE;
755 l_control_rec.process := FALSE;
756
757 -- Instruct API to retain its caches
758
759 l_control_rec.clear_api_cache := FALSE;
760 l_control_rec.clear_api_requests := FALSE;
761
762 -- Read Contract from cache
763
764 l_old_Contract_rec := Get_Contract
765 ( p_db_record => TRUE
766 , p_pricing_contract_id => p_pricing_contract_id
767 );
768
769 l_Contract_rec := Get_Contract
770 ( p_db_record => FALSE
771 , p_pricing_contract_id => p_pricing_contract_id
772 );
773
774 -- Set Operation.
775
776 IF FND_API.To_Boolean(l_Contract_rec.db_flag) THEN
777 l_Contract_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
778 ELSE
779 l_Contract_rec.operation := OE_GLOBALS.G_OPR_CREATE;
780 END IF;
781
782 --Revision Control S
783 IF FND_API.To_Boolean(g_Revision_Change) THEN
784 select oe_pricing_contracts_s.nextval into l_Contract_rec.pricing_contract_id from dual;
785 l_contract_rec.agreement_id := g_Agreement_Id;
786 l_Contract_rec.operation := OE_GLOBALS.G_OPR_CREATE;
787 l_Contract_rec.db_flag := FND_API.G_FALSE;
788 g_Revision_Change := FND_API.G_FALSE;
789 END IF;
790 --Revision Control E
791
792 -- Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
793
794 OE_Pricing_Cont_PVT.Process_Pricing_Cont
795 ( p_api_version_number => 1.0
796 , p_init_msg_list => FND_API.G_TRUE
797 , x_return_status => l_return_status
798 , x_msg_count => x_msg_count
799 , x_msg_data => x_msg_data
800 , p_control_rec => l_control_rec
801 , p_Contract_rec => l_Contract_rec
802 , p_old_Contract_rec => l_old_Contract_rec
803 , x_Contract_rec => l_x_Contract_rec
804 , x_Agreement_rec => l_x_Agreement_rec
805 , x_Price_LHeader_rec => l_x_Price_LHeader_rec
806 , x_Discount_Header_rec => l_x_Discount_Header_rec
807 , x_Price_LLine_tbl => l_x_Price_LLine_tbl
808 , x_Discount_Cust_tbl => l_x_Discount_Cust_tbl
809 , x_Discount_Line_tbl => l_x_Discount_Line_tbl
810 , x_Price_Break_tbl => l_x_Price_Break_tbl
811 );
812
813 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
814 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
815 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
816 RAISE FND_API.G_EXC_ERROR;
817 END IF;
818
819
820 -- Load OUT parameters.
821
822
823 x_creation_date := l_x_Contract_rec.creation_date;
824 x_created_by := l_x_Contract_rec.created_by;
825 x_last_update_date := l_x_Contract_rec.last_update_date;
826 x_last_updated_by := l_x_Contract_rec.last_updated_by;
827 x_last_update_login := l_x_Contract_rec.last_update_login;
828
829 -- Clear Contract record cache
830
831 Clear_Contract;
832
833 -- Keep track of performed operations.
834
835 l_old_Contract_rec.operation := l_Contract_rec.operation;
836
837
838 -- Set return status.
839
840 x_return_status := FND_API.G_RET_STS_SUCCESS;
841
842 -- Get message count and data
843
844 OE_MSG_PUB.Count_And_Get
845 ( p_count => x_msg_count
846 , p_data => x_msg_data
847 );
848
849 oe_debug_pub.add('Exiting OE_OE_Form_Contract.Validate_And_Write');
850
851 EXCEPTION
852
853 WHEN FND_API.G_EXC_ERROR THEN
854
855 x_return_status := FND_API.G_RET_STS_ERROR;
856
857 -- Get message count and data
858
859 OE_MSG_PUB.Count_And_Get
860 ( p_count => x_msg_count
861 , p_data => x_msg_data
862 );
863
864 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
865
866 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
867
868 -- Get message count and data
869
870 OE_MSG_PUB.Count_And_Get
871 ( p_count => x_msg_count
872 , p_data => x_msg_data
873 );
874
875 WHEN OTHERS THEN
876
877 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
878
879 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
880 THEN
881 OE_MSG_PUB.Add_Exc_Msg
882 ( G_PKG_NAME
883 , 'Validate_And_Write'
884 );
885 END IF;
886
887 -- Get message count and data
888
889 OE_MSG_PUB.Count_And_Get
890 ( p_count => x_msg_count
891 , p_data => x_msg_data
892 );
893
894 END Validate_And_Write;
895
896 -- Procedure Delete_Row
897 --
898
899 PROCEDURE Delete_Row
900 ( x_return_status OUT VARCHAR2
901 , x_msg_count OUT NUMBER
902 , x_msg_data OUT VARCHAR2
903 , p_pricing_contract_id IN NUMBER
904 )
905 IS
906 l_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
907 l_control_rec OE_GLOBALS.Control_Rec_Type;
908 l_return_status VARCHAR2(1);
909 l_x_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
910 l_x_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
911 l_x_Price_LHeader_rec OE_Price_List_PUB.Price_List_Rec_Type;
912 l_x_Discount_Header_rec OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
913 l_x_Price_LLine_rec OE_Price_List_PUB.Price_List_Line_Rec_Type;
914 l_x_Price_LLine_tbl OE_Price_List_PUB.Price_List_Line_Tbl_Type;
915 l_x_Discount_Cust_rec OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
916 l_x_Discount_Cust_tbl OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
917 l_x_Discount_Line_rec OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
918 l_x_Discount_Line_tbl OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
919 l_x_Price_Break_rec OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
920 l_x_Price_Break_tbl OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
921 BEGIN
922
923 -- Set control flags.
924
925 l_control_rec.controlled_operation := TRUE;
926 l_control_rec.validate_entity := TRUE;
927 l_control_rec.write_to_DB := TRUE;
928
929 l_control_rec.default_attributes := FALSE;
930 l_control_rec.change_attributes := FALSE;
931 l_control_rec.process := FALSE;
932
933 -- Instruct API to retain its caches
934
935 l_control_rec.clear_api_cache := FALSE;
936 l_control_rec.clear_api_requests := FALSE;
937
938 -- Read DB record from cache
939
940 l_Contract_rec := Get_Contract
941 ( p_db_record => TRUE
942 , p_pricing_contract_id => p_pricing_contract_id
943 );
944
945 -- Set Operation.
946
947 l_Contract_rec.operation := OE_GLOBALS.G_OPR_DELETE;
948
949 -- Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
950
951 OE_Pricing_Cont_PVT.Process_Pricing_Cont
952 ( p_api_version_number => 1.0
953 , p_init_msg_list => FND_API.G_TRUE
954 , x_return_status => l_return_status
955 , x_msg_count => x_msg_count
956 , x_msg_data => x_msg_data
957 , p_control_rec => l_control_rec
958 , p_Contract_rec => l_Contract_rec
959 , x_Contract_rec => l_x_Contract_rec
960 , x_Agreement_rec => l_x_Agreement_rec
961 , x_Price_LHeader_rec => l_x_Price_LHeader_rec
962 , x_Discount_Header_rec => l_x_Discount_Header_rec
963 , x_Price_LLine_tbl => l_x_Price_LLine_tbl
964 , x_Discount_Cust_tbl => l_x_Discount_Cust_tbl
965 , x_Discount_Line_tbl => l_x_Discount_Line_tbl
966 , x_Price_Break_tbl => l_x_Price_Break_tbl
967 );
968
969 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
970 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
971 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
972 RAISE FND_API.G_EXC_ERROR;
973 END IF;
974
975
976 -- Clear Contract record cache
977
978 Clear_Contract;
979
980 -- Set return status.
981
982 x_return_status := FND_API.G_RET_STS_SUCCESS;
983
984 -- Get message count and data
985
986 OE_MSG_PUB.Count_And_Get
987 ( p_count => x_msg_count
988 , p_data => x_msg_data
989 );
990
991
992 EXCEPTION
993
994 WHEN FND_API.G_EXC_ERROR THEN
995
996 x_return_status := FND_API.G_RET_STS_ERROR;
997
998 -- Get message count and data
999
1000 OE_MSG_PUB.Count_And_Get
1001 ( p_count => x_msg_count
1002 , p_data => x_msg_data
1003 );
1004
1005 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1006
1007 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1008
1009 -- Get message count and data
1010
1011 OE_MSG_PUB.Count_And_Get
1012 ( p_count => x_msg_count
1013 , p_data => x_msg_data
1014 );
1015
1016 WHEN OTHERS THEN
1017
1018 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1019
1020 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1021 THEN
1022 OE_MSG_PUB.Add_Exc_Msg
1023 ( G_PKG_NAME
1024 , 'Delete_Row'
1025 );
1026 END IF;
1027
1028 -- Get message count and data
1029
1030 OE_MSG_PUB.Count_And_Get
1031 ( p_count => x_msg_count
1032 , p_data => x_msg_data
1033 );
1034
1035 END Delete_Row;
1036
1037 -- Procedure Process_Entity
1038 --
1039
1040 PROCEDURE Process_Entity
1041 ( x_return_status OUT VARCHAR2
1042 , x_msg_count OUT NUMBER
1043 , x_msg_data OUT VARCHAR2
1044 )
1045 IS
1046 l_control_rec OE_GLOBALS.Control_Rec_Type;
1047 l_return_status VARCHAR2(1);
1048 l_x_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
1049 l_x_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1050 l_x_Price_LHeader_rec OE_Price_List_PUB.Price_List_Rec_Type;
1051 l_x_Discount_Header_rec OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
1052 l_x_Price_LLine_rec OE_Price_List_PUB.Price_List_Line_Rec_Type;
1053 l_x_Price_LLine_tbl OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1054 l_x_Discount_Cust_rec OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
1055 l_x_Discount_Cust_tbl OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
1056 l_x_Discount_Line_rec OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
1057 l_x_Discount_Line_tbl OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
1058 l_x_Price_Break_rec OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
1059 l_x_Price_Break_tbl OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
1060 BEGIN
1061
1062 -- Set control flags.
1063
1064 l_control_rec.controlled_operation := TRUE;
1065 l_control_rec.process := TRUE;
1066 l_control_rec.process_entity := OE_GLOBALS.G_ENTITY_CONTRACT;
1067
1068 l_control_rec.default_attributes := FALSE;
1069 l_control_rec.change_attributes := FALSE;
1070 l_control_rec.validate_entity := FALSE;
1071 l_control_rec.write_to_DB := FALSE;
1072
1073 -- Instruct API to clear its request table
1074
1075 l_control_rec.clear_api_cache := FALSE;
1076 l_control_rec.clear_api_requests := FALSE;
1077
1078 -- Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
1079
1080 OE_Pricing_Cont_PVT.Process_Pricing_Cont
1081 ( p_api_version_number => 1.0
1082 , p_init_msg_list => FND_API.G_TRUE
1083 , x_return_status => l_return_status
1084 , x_msg_count => x_msg_count
1085 , x_msg_data => x_msg_data
1086 , p_control_rec => l_control_rec
1087 , x_Contract_rec => l_x_Contract_rec
1088 , x_Agreement_rec => l_x_Agreement_rec
1089 , x_Price_LHeader_rec => l_x_Price_LHeader_rec
1090 , x_Discount_Header_rec => l_x_Discount_Header_rec
1091 , x_Price_LLine_tbl => l_x_Price_LLine_tbl
1092 , x_Discount_Cust_tbl => l_x_Discount_Cust_tbl
1093 , x_Discount_Line_tbl => l_x_Discount_Line_tbl
1094 , x_Price_Break_tbl => l_x_Price_Break_tbl
1095 );
1096
1097 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1098 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1099 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1100 RAISE FND_API.G_EXC_ERROR;
1101 END IF;
1102
1103
1104 -- Set return status.
1105
1106 x_return_status := FND_API.G_RET_STS_SUCCESS;
1107
1108 -- Get message count and data
1109
1110 OE_MSG_PUB.Count_And_Get
1111 ( p_count => x_msg_count
1112 , p_data => x_msg_data
1113 );
1114
1115
1116 EXCEPTION
1117
1118 WHEN FND_API.G_EXC_ERROR THEN
1119
1120 x_return_status := FND_API.G_RET_STS_ERROR;
1121
1122 -- Get message count and data
1123
1124 OE_MSG_PUB.Count_And_Get
1125 ( p_count => x_msg_count
1126 , p_data => x_msg_data
1127 );
1128
1129 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1130
1131 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1132
1133 -- Get message count and data
1134
1135 OE_MSG_PUB.Count_And_Get
1136 ( p_count => x_msg_count
1137 , p_data => x_msg_data
1138 );
1139
1140 WHEN OTHERS THEN
1141
1142 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1143
1144 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1145 THEN
1146 OE_MSG_PUB.Add_Exc_Msg
1147 ( G_PKG_NAME
1148 , 'Process_Entity'
1149 );
1150 END IF;
1151
1152 -- Get message count and data
1153
1154 OE_MSG_PUB.Count_And_Get
1155 ( p_count => x_msg_count
1156 , p_data => x_msg_data
1157 );
1158
1159 END Process_Entity;
1160
1161 -- Procedure Process_Object
1162 --
1163
1164 PROCEDURE Process_Object
1165 ( x_return_status OUT VARCHAR2
1166 , x_msg_count OUT NUMBER
1167 , x_msg_data OUT VARCHAR2
1168 )
1169 IS
1170 l_control_rec OE_GLOBALS.Control_Rec_Type;
1171 l_return_status VARCHAR2(1);
1172 l_x_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
1173 l_x_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1174 l_x_Price_LHeader_rec OE_Price_List_PUB.Price_List_Rec_Type;
1175 l_x_Discount_Header_rec OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
1176 l_x_Price_LLine_rec OE_Price_List_PUB.Price_List_Line_Rec_Type;
1177 l_x_Price_LLine_tbl OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1178 l_x_Discount_Cust_rec OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
1179 l_x_Discount_Cust_tbl OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
1180 l_x_Discount_Line_rec OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
1181 l_x_Discount_Line_tbl OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
1182 l_x_Price_Break_rec OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
1183 l_x_Price_Break_tbl OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
1184 BEGIN
1185
1186 -- Set control flags.
1187
1188 l_control_rec.controlled_operation := TRUE;
1189 l_control_rec.process := TRUE;
1190 l_control_rec.process_entity := OE_GLOBALS.G_ENTITY_ALL;
1191
1192 l_control_rec.default_attributes := FALSE;
1193 l_control_rec.change_attributes := FALSE;
1194 l_control_rec.validate_entity := FALSE;
1195 l_control_rec.write_to_DB := FALSE;
1196
1197 -- Instruct API to clear its request table
1198
1199 l_control_rec.clear_api_cache := FALSE;
1200 l_control_rec.clear_api_requests := TRUE;
1201
1202 -- Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
1203
1204 OE_Pricing_Cont_PVT.Process_Pricing_Cont
1205 ( p_api_version_number => 1.0
1206 , p_init_msg_list => FND_API.G_TRUE
1207 , x_return_status => l_return_status
1208 , x_msg_count => x_msg_count
1209 , x_msg_data => x_msg_data
1210 , p_control_rec => l_control_rec
1211 , x_Contract_rec => l_x_Contract_rec
1212 , x_Agreement_rec => l_x_Agreement_rec
1213 , x_Price_LHeader_rec => l_x_Price_LHeader_rec
1214 , x_Discount_Header_rec => l_x_Discount_Header_rec
1215 , x_Price_LLine_tbl => l_x_Price_LLine_tbl
1216 , x_Discount_Cust_tbl => l_x_Discount_Cust_tbl
1217 , x_Discount_Line_tbl => l_x_Discount_Line_tbl
1218 , x_Price_Break_tbl => l_x_Price_Break_tbl
1219 );
1220
1221 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1222 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1223 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1224 RAISE FND_API.G_EXC_ERROR;
1225 END IF;
1226
1227
1228 -- Set return status.
1229
1230 x_return_status := FND_API.G_RET_STS_SUCCESS;
1231
1232 -- Get message count and data
1233
1234 OE_MSG_PUB.Count_And_Get
1235 ( p_count => x_msg_count
1236 , p_data => x_msg_data
1237 );
1238
1239
1240 EXCEPTION
1241
1242 WHEN FND_API.G_EXC_ERROR THEN
1243
1244 x_return_status := FND_API.G_RET_STS_ERROR;
1245
1246 -- Get message count and data
1247
1248 OE_MSG_PUB.Count_And_Get
1249 ( p_count => x_msg_count
1250 , p_data => x_msg_data
1251 );
1252
1253 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1254
1255 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1256
1257 -- Get message count and data
1258
1259 OE_MSG_PUB.Count_And_Get
1260 ( p_count => x_msg_count
1261 , p_data => x_msg_data
1262 );
1263
1264 WHEN OTHERS THEN
1265
1266 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1267
1268 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1269 THEN
1270 OE_MSG_PUB.Add_Exc_Msg
1271 ( G_PKG_NAME
1272 , 'Process_Object'
1273 );
1274 END IF;
1275
1276 -- Get message count and data
1277
1278 OE_MSG_PUB.Count_And_Get
1279 ( p_count => x_msg_count
1280 , p_data => x_msg_data
1281 );
1282
1283 END Process_Object;
1284
1285 -- Procedure lock_Row
1286 --
1287
1288 PROCEDURE Lock_Row
1289 ( x_return_status OUT VARCHAR2
1290 , x_msg_count OUT NUMBER
1291 , x_msg_data OUT VARCHAR2
1292 , p_agreement_id IN NUMBER
1293 , p_attribute1 IN VARCHAR2
1294 , p_attribute10 IN VARCHAR2
1295 , p_attribute11 IN VARCHAR2
1296 , p_attribute12 IN VARCHAR2
1297 , p_attribute13 IN VARCHAR2
1298 , p_attribute14 IN VARCHAR2
1299 , p_attribute15 IN VARCHAR2
1300 , p_attribute2 IN VARCHAR2
1301 , p_attribute3 IN VARCHAR2
1302 , p_attribute4 IN VARCHAR2
1303 , p_attribute5 IN VARCHAR2
1304 , p_attribute6 IN VARCHAR2
1305 , p_attribute7 IN VARCHAR2
1306 , p_attribute8 IN VARCHAR2
1307 , p_attribute9 IN VARCHAR2
1308 , p_context IN VARCHAR2
1309 , p_created_by IN NUMBER
1310 , p_creation_date IN DATE
1311 , p_discount_id IN NUMBER
1312 , p_last_updated_by IN NUMBER
1313 , p_last_update_date IN DATE
1314 , p_last_update_login IN NUMBER
1315 , p_price_list_id IN NUMBER
1316 , p_pricing_contract_id IN NUMBER
1317 )
1318 IS
1319 l_return_status VARCHAR2(1);
1320 l_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
1321 l_x_Contract_rec OE_Pricing_Cont_PUB.Contract_Rec_Type;
1322 l_x_Agreement_rec OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1323 l_x_Price_LHeader_rec OE_Price_List_PUB.Price_List_Rec_Type;
1324 l_x_Discount_Header_rec OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
1325 l_x_Price_LLine_rec OE_Price_List_PUB.Price_List_Line_Rec_Type;
1326 l_x_Price_LLine_tbl OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1327 l_x_Discount_Cust_rec OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
1328 l_x_Discount_Cust_tbl OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
1329 l_x_Discount_Line_rec OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
1330 l_x_Discount_Line_tbl OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
1331 l_x_Price_Break_rec OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
1332 l_x_Price_Break_tbl OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
1333 BEGIN
1334
1335 -- Load Contract record
1336
1337 l_Contract_rec.agreement_id := p_agreement_id;
1338 l_Contract_rec.attribute1 := p_attribute1;
1339 l_Contract_rec.attribute10 := p_attribute10;
1340 l_Contract_rec.attribute11 := p_attribute11;
1341 l_Contract_rec.attribute12 := p_attribute12;
1342 l_Contract_rec.attribute13 := p_attribute13;
1343 l_Contract_rec.attribute14 := p_attribute14;
1344 l_Contract_rec.attribute15 := p_attribute15;
1345 l_Contract_rec.attribute2 := p_attribute2;
1346 l_Contract_rec.attribute3 := p_attribute3;
1347 l_Contract_rec.attribute4 := p_attribute4;
1348 l_Contract_rec.attribute5 := p_attribute5;
1349 l_Contract_rec.attribute6 := p_attribute6;
1350 l_Contract_rec.attribute7 := p_attribute7;
1351 l_Contract_rec.attribute8 := p_attribute8;
1352 l_Contract_rec.attribute9 := p_attribute9;
1353 l_Contract_rec.context := p_context;
1354 l_Contract_rec.created_by := p_created_by;
1355 l_Contract_rec.creation_date := p_creation_date;
1356 l_Contract_rec.discount_id := p_discount_id;
1357 l_Contract_rec.last_updated_by := p_last_updated_by;
1358 l_Contract_rec.last_update_date := p_last_update_date;
1359 l_Contract_rec.last_update_login := p_last_update_login;
1360 l_Contract_rec.price_list_id := p_price_list_id;
1361 l_Contract_rec.pricing_contract_id := p_pricing_contract_id;
1362
1363 -- Call OE_Pricing_Cont_PVT.Lock_Pricing_Cont
1364
1365 OE_Pricing_Cont_PVT.Lock_Pricing_Cont
1366 ( p_api_version_number => 1.0
1367 , p_init_msg_list => FND_API.G_TRUE
1368 , x_return_status => l_return_status
1369 , x_msg_count => x_msg_count
1370 , x_msg_data => x_msg_data
1371 , p_Contract_rec => l_Contract_rec
1372 , x_Contract_rec => l_x_Contract_rec
1373 , x_Agreement_rec => l_x_Agreement_rec
1374 , x_Price_LHeader_rec => l_x_Price_LHeader_rec
1375 , x_Discount_Header_rec => l_x_Discount_Header_rec
1376 , x_Price_LLine_tbl => l_x_Price_LLine_tbl
1377 , x_Discount_Cust_tbl => l_x_Discount_Cust_tbl
1378 , x_Discount_Line_tbl => l_x_Discount_Line_tbl
1379 , x_Price_Break_tbl => l_x_Price_Break_tbl
1380 );
1381
1382 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1383
1384 -- Set DB flag and write record to cache.
1385
1386 l_x_Contract_rec.db_flag := FND_API.G_TRUE;
1387
1388 Write_Contract
1389 ( p_Contract_rec => l_x_Contract_rec
1390 , p_db_record => TRUE
1391 );
1392
1393 END IF;
1394
1395 -- Set return status.
1396
1397 x_return_status := l_return_status;
1398
1399 -- Get message count and data
1400
1401 OE_MSG_PUB.Count_And_Get
1402 ( p_count => x_msg_count
1403 , p_data => x_msg_data
1404 );
1405
1406
1407 EXCEPTION
1408
1409 WHEN OTHERS THEN
1410
1411 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1412 THEN
1413 OE_MSG_PUB.Add_Exc_Msg
1414 ( G_PKG_NAME
1415 , 'Lock_Row'
1416 );
1417 END IF;
1418
1419 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1420
1421 -- Get message count and data
1422
1423 OE_MSG_PUB.Count_And_Get
1424 ( p_count => x_msg_count
1425 , p_data => x_msg_data
1426 );
1427
1428
1429
1430 END Lock_Row;
1431
1432 -- Procedures maintaining Contract record cache.
1433
1434 PROCEDURE Write_Contract
1435 ( p_Contract_rec IN OE_Pricing_Cont_PUB.Contract_Rec_Type
1436 , p_db_record IN BOOLEAN := FALSE
1437 )
1438 IS
1439 BEGIN
1440
1441 g_Contract_rec := p_Contract_rec;
1442
1443 IF p_db_record THEN
1444
1445 g_db_Contract_rec := p_Contract_rec;
1446
1447 END IF;
1448
1449 END Write_Contract;
1450
1451 FUNCTION Get_Contract
1452 ( p_db_record IN BOOLEAN := FALSE
1453 , p_pricing_contract_id IN NUMBER
1454 )
1455 RETURN OE_Pricing_Cont_PUB.Contract_Rec_Type
1456 IS
1457 BEGIN
1458
1459 IF p_pricing_contract_id <> g_Contract_rec.pricing_contract_id
1460 THEN
1461
1462 -- Query row from DB
1463
1464 g_Contract_rec := OE_Contract_Util.Query_Row
1465 ( p_pricing_contract_id => p_pricing_contract_id
1466 );
1467
1468 g_Contract_rec.db_flag := FND_API.G_TRUE;
1469
1470 -- Load DB record
1471
1472 g_db_Contract_rec := g_Contract_rec;
1473
1474 END IF;
1475
1476 IF p_db_record THEN
1477
1478 RETURN g_db_Contract_rec;
1479
1480 ELSE
1481
1482 RETURN g_Contract_rec;
1483
1484 END IF;
1485
1486 END Get_Contract;
1487
1488 PROCEDURE Clear_Contract
1489 IS
1490 BEGIN
1491
1492 g_Contract_rec := OE_Pricing_Cont_PUB.G_MISS_CONTRACT_REC;
1493 g_db_Contract_rec := OE_Pricing_Cont_PUB.G_MISS_CONTRACT_REC;
1494
1495 END Clear_Contract;
1496
1497 -- Revision Control S
1498 PROCEDURE Create_Revision (l_Agreement_Id IN NUMBER)
1499 IS
1500 BEGIN
1501 g_Revision_Change := FND_API.G_TRUE;
1502 g_Agreement_Id := l_Agreement_Id;
1503 --Validate_And_Write;
1504 --g_Revision_Change := FND_API.G_FALSE;
1505 END;
1506 -- Revision Control E
1507
1508 END OE_OE_Form_Contract;