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