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