DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_OE_FORM_PRICE_LLINE

Source


1 PACKAGE BODY OE_OE_Form_Price_Lline AS
2 /* $Header: OEXFPLLB.pls 120.1 2005/06/09 00:25:16 appldev  $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_OE_Form_Price_Lline';
7 
8 --  Global variables holding cached record.
9 
10 g_Price_LLine_rec             OE_Price_List_PUB.Price_List_Line_Rec_Type;
11 g_db_Price_LLine_rec          OE_Price_List_PUB.Price_List_Line_Rec_Type;
12 
13 --  Forward declaration of procedures maintaining entity record cache.
14 
15 PROCEDURE Write_Price_LLine
16 (   p_Price_LLine_rec               IN  OE_Price_List_PUB.Price_List_Line_Rec_Type
17 ,   p_db_record                     IN  BOOLEAN := FALSE
18 );
19 
20 FUNCTION Get_Price_LLine
21 (   p_db_record                     IN  BOOLEAN := FALSE
22 ,   p_price_list_line_id            IN  NUMBER
23 )
24 RETURN OE_Price_List_PUB.Price_List_Line_Rec_Type;
25 
26 PROCEDURE Clear_Price_LLine;
27 
28 --  Global variable holding performed operations.
29 
30 g_opr__tbl                    OE_Price_List_PUB.Price_List_Line_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_customer_item_id              OUT NOCOPY /* file.sql.39 change */ NUMBER
57 ,   x_end_date_active               OUT NOCOPY /* file.sql.39 change */ DATE
58 ,   x_inventory_item_id             OUT NOCOPY /* file.sql.39 change */ NUMBER
59 ,   x_list_price                    OUT NOCOPY /* file.sql.39 change */ NUMBER
60 ,   x_method_code                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
61 ,   x_price_list_id                 OUT NOCOPY /* file.sql.39 change */ NUMBER
62 ,   x_price_list_line_id            OUT NOCOPY /* file.sql.39 change */ NUMBER
63 ,   x_pricing_attribute1            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
64 ,   x_pricing_attribute10           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
65 ,   x_pricing_attribute11           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
66 ,   x_pricing_attribute12           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
67 ,   x_pricing_attribute13           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
68 ,   x_pricing_attribute14           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
69 ,   x_pricing_attribute15           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
70 ,   x_pricing_attribute2            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
71 ,   x_pricing_attribute3            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
72 ,   x_pricing_attribute4            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
73 ,   x_pricing_attribute5            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
74 ,   x_pricing_attribute6            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
75 ,   x_pricing_attribute7            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
76 ,   x_pricing_attribute8            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
77 ,   x_pricing_attribute9            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
78 ,   x_pricing_context               OUT NOCOPY /* file.sql.39 change */ VARCHAR2
79 ,   x_pricing_rule_id               OUT NOCOPY /* file.sql.39 change */ NUMBER
80 ,   x_reprice_flag                  OUT NOCOPY /* file.sql.39 change */ VARCHAR2
81 ,   x_revision                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
82 ,   x_revision_date                 OUT NOCOPY /* file.sql.39 change */ DATE
83 ,   x_revision_reason_code          OUT NOCOPY /* file.sql.39 change */ VARCHAR2
84 ,   x_start_date_active             OUT NOCOPY /* file.sql.39 change */ DATE
85 ,   x_unit_code                     OUT NOCOPY /* file.sql.39 change */ VARCHAR2
86 ,   x_customer_item                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
87 ,   x_inventory_item                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
88 ,   x_method                        OUT NOCOPY /* file.sql.39 change */ VARCHAR2
89 ,   x_price_list                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
90 ,   x_price_list_line               OUT NOCOPY /* file.sql.39 change */ VARCHAR2
91 ,   x_pricing_rule                  OUT NOCOPY /* file.sql.39 change */ VARCHAR2
92 ,   x_reprice                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
93 ,   x_revision_reason               OUT NOCOPY /* file.sql.39 change */ VARCHAR2
94 ,   x_unit                          OUT NOCOPY /* file.sql.39 change */ VARCHAR2
95 ,   x_primary                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
96 ,   x_creation_date		    OUT NOCOPY /* file.sql.39 change */ DATE  /* Parameter added Geresh */
97 ,   x_list_line_type_code           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
98 )
99 IS
100 l_Price_LLine_rec             OE_Price_List_PUB.Price_List_Line_Rec_Type;
101 l_Price_LLine_val_rec         OE_Price_List_PUB.Price_List_Line_Val_Rec_Type;
102 l_Price_LLine_tbl             OE_Price_List_PUB.Price_List_Line_Tbl_Type;
103 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
104 l_return_status               VARCHAR2(1);
105 l_x_Contract_rec              OE_Pricing_Cont_PUB.Contract_Rec_Type;
106 l_x_Agreement_rec             OE_Pricing_Cont_PUB.Agreement_Rec_Type;
107 l_x_Price_LHeader_rec         OE_Price_List_PUB.Price_List_Rec_Type;
108 l_x_Discount_Header_rec       OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
109 l_x_Price_LLine_rec           OE_Price_List_PUB.Price_List_Line_Rec_Type;
110 l_x_Price_LLine_tbl           OE_Price_List_PUB.Price_List_Line_Tbl_Type;
111 l_x_Discount_Cust_rec         OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
112 l_x_Discount_Cust_tbl         OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
113 l_x_Discount_Line_rec         OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
114 l_x_Discount_Line_tbl         OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
115 l_x_Price_Break_rec           OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
116 l_x_Price_Break_tbl           OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
117 BEGIN
118 
119     oe_debug_pub.add('Entering OE_OE_Form_Price_Lline.Default_Attributes');
120 
121     --  Set control flags.
122 
123     l_control_rec.controlled_operation := TRUE;
124     l_control_rec.default_attributes   := TRUE;
125 
126     l_control_rec.change_attributes    := FALSE;
127     l_control_rec.validate_entity      := FALSE;
128     l_control_rec.write_to_DB          := FALSE;
129     l_control_rec.process              := FALSE;
130 
131     --  Instruct API to retain its caches
132 
133     l_control_rec.clear_api_cache      := FALSE;
134     l_control_rec.clear_api_requests   := FALSE;
135 
136     --  Load IN parameters if any exist
137 
138 
139     --  Defaulting of flex values is currently done by the form.
140     --  Set flex attributes to NULL in order to avoid defaulting them.
141 
142     l_Price_LLine_rec.attribute1                  := 'NULL';
143     l_Price_LLine_rec.attribute10                 := 'NULL';
144     l_Price_LLine_rec.attribute11                 := 'NULL';
145     l_Price_LLine_rec.attribute12                 := 'NULL';
146     l_Price_LLine_rec.attribute13                 := 'NULL';
147     l_Price_LLine_rec.attribute14                 := 'NULL';
148     l_Price_LLine_rec.attribute15                 := 'NULL';
149     l_Price_LLine_rec.attribute2                  := 'NULL';
150     l_Price_LLine_rec.attribute3                  := 'NULL';
151     l_Price_LLine_rec.attribute4                  := 'NULL';
152     l_Price_LLine_rec.attribute5                  := 'NULL';
153     l_Price_LLine_rec.attribute6                  := 'NULL';
154     l_Price_LLine_rec.attribute7                  := 'NULL';
155     l_Price_LLine_rec.attribute8                  := 'NULL';
156     l_Price_LLine_rec.attribute9                  := 'NULL';
157     l_Price_LLine_rec.context                     := 'NULL';
158 
159     --  Set Operation to Create
160 
161     l_Price_LLine_rec.operation := OE_GLOBALS.G_OPR_CREATE;
162 
163     --  Populate Price_LLine table
164 
165     l_Price_LLine_tbl(1) := l_Price_LLine_rec;
166 
167     --  Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
168 
169     oe_debug_pub.add('before process_pricing_cont in list lines ');
170 
171     OE_Pricing_Cont_PVT.Process_Pricing_Cont
172     (   p_api_version_number          => 1.0
173     ,   p_init_msg_list               => FND_API.G_TRUE
174     ,   x_return_status               => l_return_status
175     ,   x_msg_count                   => x_msg_count
176     ,   x_msg_data                    => x_msg_data
177     ,   p_control_rec                 => l_control_rec
178     ,   p_Price_LLine_tbl             => l_Price_LLine_tbl
179     ,   x_Contract_rec                => l_x_Contract_rec
180     ,   x_Agreement_rec               => l_x_Agreement_rec
181     ,   x_Price_LHeader_rec           => l_x_Price_LHeader_rec
182     ,   x_Discount_Header_rec         => l_x_Discount_Header_rec
183     ,   x_Price_LLine_tbl             => l_x_Price_LLine_tbl
184     ,   x_Discount_Cust_tbl           => l_x_Discount_Cust_tbl
185     ,   x_Discount_Line_tbl           => l_x_Discount_Line_tbl
186     ,   x_Price_Break_tbl             => l_x_Price_Break_tbl
187     );
188 
189     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
190         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
191     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
192         RAISE FND_API.G_EXC_ERROR;
193     END IF;
194 
195    oe_debug_pub.add('after calling process_pricing_cont for lines ');
196 
197 
198     --  Unload out tbl
199 
200     l_x_Price_LLine_rec := l_x_Price_LLine_tbl(1);
201 
202     --  Load OUT parameters.
203 
204     x_attribute1                   := l_x_Price_LLine_rec.attribute1;
205     x_attribute10                  := l_x_Price_LLine_rec.attribute10;
206     x_attribute11                  := l_x_Price_LLine_rec.attribute11;
207     x_attribute12                  := l_x_Price_LLine_rec.attribute12;
208     x_attribute13                  := l_x_Price_LLine_rec.attribute13;
209     x_attribute14                  := l_x_Price_LLine_rec.attribute14;
210     x_attribute15                  := l_x_Price_LLine_rec.attribute15;
211     x_attribute2                   := l_x_Price_LLine_rec.attribute2;
212     x_attribute3                   := l_x_Price_LLine_rec.attribute3;
213     x_attribute4                   := l_x_Price_LLine_rec.attribute4;
214     x_attribute5                   := l_x_Price_LLine_rec.attribute5;
215     x_attribute6                   := l_x_Price_LLine_rec.attribute6;
216     x_attribute7                   := l_x_Price_LLine_rec.attribute7;
217     x_attribute8                   := l_x_Price_LLine_rec.attribute8;
218     x_attribute9                   := l_x_Price_LLine_rec.attribute9;
219     x_comments                     := l_x_Price_LLine_rec.comments;
220     x_context                      := l_x_Price_LLine_rec.context;
221     x_customer_item_id             := l_x_Price_LLine_rec.customer_item_id;
222     x_end_date_active              := l_x_Price_LLine_rec.end_date_active;
223     x_inventory_item_id            := l_x_Price_LLine_rec.inventory_item_id;
224     x_list_price                   := l_x_Price_LLine_rec.list_price;
225     x_method_code                  := l_x_Price_LLine_rec.method_code;
226     x_price_list_id                := l_x_Price_LLine_rec.price_list_id;
227     x_price_list_line_id           := l_x_Price_LLine_rec.price_list_line_id;
228     x_pricing_attribute1           := l_x_Price_LLine_rec.pricing_attribute1;
229     x_pricing_attribute10          := l_x_Price_LLine_rec.pricing_attribute10;
230     x_pricing_attribute11          := l_x_Price_LLine_rec.pricing_attribute11;
231     x_pricing_attribute12          := l_x_Price_LLine_rec.pricing_attribute12;
232     x_pricing_attribute13          := l_x_Price_LLine_rec.pricing_attribute13;
233     x_pricing_attribute14          := l_x_Price_LLine_rec.pricing_attribute14;
234     x_pricing_attribute15          := l_x_Price_LLine_rec.pricing_attribute15;
235     x_pricing_attribute2           := l_x_Price_LLine_rec.pricing_attribute2;
236     x_pricing_attribute3           := l_x_Price_LLine_rec.pricing_attribute3;
237     x_pricing_attribute4           := l_x_Price_LLine_rec.pricing_attribute4;
238     x_pricing_attribute5           := l_x_Price_LLine_rec.pricing_attribute5;
239     x_pricing_attribute6           := l_x_Price_LLine_rec.pricing_attribute6;
240     x_pricing_attribute7           := l_x_Price_LLine_rec.pricing_attribute7;
241     x_pricing_attribute8           := l_x_Price_LLine_rec.pricing_attribute8;
242     x_pricing_attribute9           := l_x_Price_LLine_rec.pricing_attribute9;
243     x_pricing_context              := l_x_Price_LLine_rec.pricing_context;
244     x_pricing_rule_id              := l_x_Price_LLine_rec.pricing_rule_id;
245     x_reprice_flag                 := l_x_Price_LLine_rec.reprice_flag;
246     x_revision                     := l_x_Price_LLine_rec.revision;
247     x_revision_date                := l_x_Price_LLine_rec.revision_date;
248     x_revision_reason_code         := l_x_Price_LLine_rec.revision_reason_code;
249     x_start_date_active            := l_x_Price_LLine_rec.start_date_active;
250     x_unit_code                    := l_x_Price_LLine_rec.unit_code;
251     x_primary                      := l_x_Price_LLine_rec.primary;
252     x_list_line_type_code          := l_x_Price_LLine_rec.list_line_type_code;
253 
254 -- Added By Geresh
255    x_creation_date                := l_x_Price_LLine_rec.creation_date;
256 
257    oe_debug_pub.add('get display values');
258 
259     --  Load display out parameters if any
260 
261     l_Price_LLine_val_rec := OE_Price_List_Line_Util.Get_Values
262     (   p_Price_List_Line_rec             => l_x_Price_LLine_rec
263     );
264     x_customer_item                := l_Price_LLine_val_rec.customer_item;
265     x_inventory_item               := l_Price_LLine_val_rec.inventory_item;
266     x_method                       := l_Price_LLine_val_rec.method;
267     x_price_list                   := l_Price_LLine_val_rec.price_list;
268     x_price_list_line              := l_Price_LLine_val_rec.price_list_line;
269     x_pricing_rule                 := l_Price_LLine_val_rec.pricing_rule;
270     x_reprice                      := l_Price_LLine_val_rec.reprice;
271     x_revision_reason              := l_Price_LLine_val_rec.revision_reason;
272     x_unit                         := l_Price_LLine_val_rec.unit;
273 
274     --  Write to cache.
275     --  Set db_flag to False before writing to cache
276 
277     l_x_Price_LLine_rec.db_flag := FND_API.G_FALSE;
278 
279     oe_debug_pub.add('after display values');
280 
281     Write_Price_LLine
282     (   p_Price_LLine_rec             => l_x_Price_LLine_rec
283     );
284 
285     oe_debug_pub.add('after writing to cache ');
286 
287     --  Set return status.
288 
289     x_return_status := FND_API.G_RET_STS_SUCCESS;
290 
291     --  Get message count and data
292 
293     OE_MSG_PUB.Count_And_Get
294     (   p_count                       => x_msg_count
295     ,   p_data                        => x_msg_data
296     );
297 
298     oe_debug_pub.add('Exiting OE_OE_Form_Price_Lline.Default_Attributes');
299 
300 EXCEPTION
301 
302     WHEN FND_API.G_EXC_ERROR THEN
303 
304         x_return_status := FND_API.G_RET_STS_ERROR;
305 
306         --  Get message count and data
307 
308         OE_MSG_PUB.Count_And_Get
309         (   p_count                       => x_msg_count
310         ,   p_data                        => x_msg_data
311         );
312 
313     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
314 
315         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
316 
317         --  Get message count and data
318 
319         OE_MSG_PUB.Count_And_Get
320         (   p_count                       => x_msg_count
321         ,   p_data                        => x_msg_data
322         );
323 
324     WHEN OTHERS THEN
325 
326         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
327 
328         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
329         THEN
330             OE_MSG_PUB.Add_Exc_Msg
331             (   G_PKG_NAME
332             ,   'Default_Attributes'
333             );
334         END IF;
335 
336         --  Get message count and data
337 
338         OE_MSG_PUB.Count_And_Get
339         (   p_count                       => x_msg_count
340         ,   p_data                        => x_msg_data
341         );
342 
343 END Default_Attributes;
344 
345 --  Procedure   :   Change_Attribute
346 --
347 
348 PROCEDURE Change_Attribute
349 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
350 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
351 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
352 ,   p_price_list_line_id            IN  NUMBER
353 ,   p_attr_id                       IN  NUMBER
354 ,   p_attr_value                    IN  VARCHAR2
355 ,   p_attribute1                    IN  VARCHAR2
356 ,   p_attribute10                   IN  VARCHAR2
357 ,   p_attribute11                   IN  VARCHAR2
358 ,   p_attribute12                   IN  VARCHAR2
359 ,   p_attribute13                   IN  VARCHAR2
360 ,   p_attribute14                   IN  VARCHAR2
361 ,   p_attribute15                   IN  VARCHAR2
362 ,   p_attribute2                    IN  VARCHAR2
363 ,   p_attribute3                    IN  VARCHAR2
364 ,   p_attribute4                    IN  VARCHAR2
365 ,   p_attribute5                    IN  VARCHAR2
366 ,   p_attribute6                    IN  VARCHAR2
367 ,   p_attribute7                    IN  VARCHAR2
368 ,   p_attribute8                    IN  VARCHAR2
369 ,   p_attribute9                    IN  VARCHAR2
370 ,   p_context                       IN  VARCHAR2
371 ,   x_attribute1                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
372 ,   x_attribute10                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
373 ,   x_attribute11                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
374 ,   x_attribute12                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
375 ,   x_attribute13                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
376 ,   x_attribute14                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
377 ,   x_attribute15                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
378 ,   x_attribute2                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
379 ,   x_attribute3                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
380 ,   x_attribute4                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
381 ,   x_attribute5                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
382 ,   x_attribute6                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
383 ,   x_attribute7                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
384 ,   x_attribute8                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
385 ,   x_attribute9                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
386 ,   x_comments                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
387 ,   x_context                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
388 ,   x_customer_item_id              OUT NOCOPY /* file.sql.39 change */ NUMBER
389 ,   x_end_date_active               OUT NOCOPY /* file.sql.39 change */ DATE
390 ,   x_inventory_item_id             OUT NOCOPY /* file.sql.39 change */ NUMBER
391 ,   x_list_price                    OUT NOCOPY /* file.sql.39 change */ NUMBER
392 ,   x_method_code                   OUT NOCOPY /* file.sql.39 change */ VARCHAR2
393 ,   x_price_list_id                 OUT NOCOPY /* file.sql.39 change */ NUMBER
394 ,   x_price_list_line_id            OUT NOCOPY /* file.sql.39 change */ NUMBER
395 ,   x_pricing_attribute1            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
396 ,   x_pricing_attribute10           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
397 ,   x_pricing_attribute11           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
398 ,   x_pricing_attribute12           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
399 ,   x_pricing_attribute13           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
400 ,   x_pricing_attribute14           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
401 ,   x_pricing_attribute15           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
402 ,   x_pricing_attribute2            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
403 ,   x_pricing_attribute3            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
404 ,   x_pricing_attribute4            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
405 ,   x_pricing_attribute5            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
406 ,   x_pricing_attribute6            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
407 ,   x_pricing_attribute7            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
408 ,   x_pricing_attribute8            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
409 ,   x_pricing_attribute9            OUT NOCOPY /* file.sql.39 change */ VARCHAR2
410 ,   x_pricing_context               OUT NOCOPY /* file.sql.39 change */ VARCHAR2
411 ,   x_pricing_rule_id               OUT NOCOPY /* file.sql.39 change */ NUMBER
412 ,   x_reprice_flag                  OUT NOCOPY /* file.sql.39 change */ VARCHAR2
413 ,   x_revision                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
414 ,   x_revision_date                 OUT NOCOPY /* file.sql.39 change */ DATE
415 ,   x_revision_reason_code          OUT NOCOPY /* file.sql.39 change */ VARCHAR2
416 ,   x_start_date_active             OUT NOCOPY /* file.sql.39 change */ DATE
417 ,   x_unit_code                     OUT NOCOPY /* file.sql.39 change */ VARCHAR2
418 ,   x_customer_item                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
419 ,   x_inventory_item                OUT NOCOPY /* file.sql.39 change */ VARCHAR2
420 ,   x_method                        OUT NOCOPY /* file.sql.39 change */ VARCHAR2
421 ,   x_price_list                    OUT NOCOPY /* file.sql.39 change */ VARCHAR2
422 ,   x_price_list_line               OUT NOCOPY /* file.sql.39 change */ VARCHAR2
423 ,   x_pricing_rule                  OUT NOCOPY /* file.sql.39 change */ VARCHAR2
424 ,   x_reprice                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
425 ,   x_revision_reason               OUT NOCOPY /* file.sql.39 change */ VARCHAR2
426 ,   x_unit                          OUT NOCOPY /* file.sql.39 change */ VARCHAR2
427 ,   x_primary                       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
428 ,   x_creation_date                 OUT NOCOPY /* file.sql.39 change */ DATE
429 ,   x_list_line_type_code           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
430 )
431 IS
432 l_Price_LLine_rec             OE_Price_List_PUB.Price_List_Line_Rec_Type;
433 l_old_Price_LLine_rec         OE_Price_List_PUB.Price_List_Line_Rec_Type;
434 l_Price_LLine_val_rec         OE_Price_List_PUB.Price_List_Line_Val_Rec_Type;
435 l_Price_LLine_tbl             OE_Price_List_PUB.Price_List_Line_Tbl_Type;
436 l_old_Price_LLine_tbl         OE_Price_List_PUB.Price_List_Line_Tbl_Type;
437 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
438 l_return_status               VARCHAR2(1);
439 l_x_Contract_rec              OE_Pricing_Cont_PUB.Contract_Rec_Type;
440 l_x_Agreement_rec             OE_Pricing_Cont_PUB.Agreement_Rec_Type;
441 l_x_Price_LHeader_rec         OE_Price_List_PUB.Price_List_Rec_Type;
442 l_x_Discount_Header_rec       OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
443 l_x_Price_LLine_rec           OE_Price_List_PUB.Price_List_Line_Rec_Type;
444 l_x_Price_LLine_tbl           OE_Price_List_PUB.Price_List_Line_Tbl_Type;
445 l_x_Discount_Cust_rec         OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
446 l_x_Discount_Cust_tbl         OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
447 l_x_Discount_Line_rec         OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
448 l_x_Discount_Line_tbl         OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
449 l_x_Price_Break_rec           OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
450 l_x_Price_Break_tbl           OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
451 BEGIN
452 
453     oe_debug_pub.add('Entering OE_OE_Form_Price_Lline.Change_Attribute');
454 
455     --  Set control flags.
456 
457     l_control_rec.controlled_operation := TRUE;
458     l_control_rec.change_attributes    := TRUE;
459 
460     l_control_rec.default_attributes   := FALSE;
461     l_control_rec.validate_entity      := FALSE;
462     l_control_rec.write_to_DB          := FALSE;
463     l_control_rec.process              := FALSE;
464 
465     --  Instruct API to retain its caches
466 
467     l_control_rec.clear_api_cache      := FALSE;
468     l_control_rec.clear_api_requests   := FALSE;
469 
470     --  Read Price_LLine from cache
471 
472     oe_debug_pub.add('price list line id to query is : ' || to_char(p_price_list_line_id));
473 
474 
475     l_Price_LLine_rec := Get_Price_LLine
476     (   p_db_record                   => FALSE
477     ,   p_price_list_line_id          => p_price_list_line_id
478     );
479 
480        oe_debug_pub.add('price list line id after query 1 is : ' || to_char(p_price_list_line_id));
481 
482 
483 
484 
485     l_old_Price_LLine_rec          := l_Price_LLine_rec;
486 
487        oe_debug_pub.add('price list line id before **** is : ');
488     IF p_attr_id = OE_Price_List_Line_Util.G_COMMENTS THEN
489        oe_debug_pub.add('price list line id 1111 is : ');
490 	l_Price_LLine_rec.comments := p_attr_value;
491     ELSIF p_attr_id = OE_Price_List_Line_Util.G_CUSTOMER_ITEM THEN
492        oe_debug_pub.add('price list line id 2222 is : ');
493         l_Price_LLine_rec.customer_item_id := TO_NUMBER(p_attr_value);
494     ELSIF p_attr_id = OE_Price_List_Line_Util.G_END_DATE_ACTIVE THEN
495        oe_debug_pub.add('price list line id 3333 is : ');
496         l_Price_LLine_rec.end_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
497     ELSIF p_attr_id = OE_Price_List_Line_Util.G_INVENTORY_ITEM THEN
498        oe_debug_pub.add('price list line id 4444 is : ');
499         l_Price_LLine_rec.inventory_item_id := TO_NUMBER(p_attr_value);
500     ELSIF p_attr_id = OE_Price_List_Line_Util.G_LIST_PRICE THEN
501        oe_debug_pub.add('price list line id 5555 is : ');
502         l_Price_LLine_rec.list_price := TO_NUMBER(p_attr_value);
503     ELSIF p_attr_id = OE_Price_List_Line_Util.G_METHOD THEN
504        oe_debug_pub.add('price list line id 6666 is : ');
505         l_Price_LLine_rec.method_code := p_attr_value;
506     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICE_LIST THEN
507        oe_debug_pub.add('price list line id 7777 is : ');
508         l_Price_LLine_rec.price_list_id := TO_NUMBER(p_attr_value);
509     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICE_LIST_LINE THEN
510        oe_debug_pub.add('price list line id 8888 is : ');
511         l_Price_LLine_rec.price_list_line_id := TO_NUMBER(p_attr_value);
512     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE1 THEN
513        oe_debug_pub.add('price list line id 9999 is : ');
514         l_Price_LLine_rec.pricing_attribute1 := p_attr_value;
515     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE10 THEN
516        oe_debug_pub.add('price list line id 1010 is : ');
517         l_Price_LLine_rec.pricing_attribute10 := p_attr_value;
518     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE11 THEN
519        oe_debug_pub.add('price list line id 1212 is : ');
520         l_Price_LLine_rec.pricing_attribute11 := p_attr_value;
521     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE12 THEN
522        oe_debug_pub.add('price list line id 1313 is : ');
523         l_Price_LLine_rec.pricing_attribute12 := p_attr_value;
524     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE13 THEN
525        oe_debug_pub.add('price list line id 1414 is : ');
526         l_Price_LLine_rec.pricing_attribute13 := p_attr_value;
527     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE14 THEN
528        oe_debug_pub.add('price list line id 1515 is : ');
529         l_Price_LLine_rec.pricing_attribute14 := p_attr_value;
530     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE15 THEN
531        oe_debug_pub.add('price list line id 1616 is : ');
532         l_Price_LLine_rec.pricing_attribute15 := p_attr_value;
533     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE2 THEN
534        oe_debug_pub.add('price list line id 1818 is : ');
535         l_Price_LLine_rec.pricing_attribute2 := p_attr_value;
536     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE3 THEN
537        oe_debug_pub.add('price list line id 1919 is : ');
538         l_Price_LLine_rec.pricing_attribute3 := p_attr_value;
539     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE4 THEN
540        oe_debug_pub.add('price list line id 2020 is : ');
541         l_Price_LLine_rec.pricing_attribute4 := p_attr_value;
542     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE5 THEN
543        oe_debug_pub.add('price list line id 2121 is : ');
544         l_Price_LLine_rec.pricing_attribute5 := p_attr_value;
545 
546     ELSIF p_attr_id = OE_Price_List_line_Util.G_CREATION_DATE THEN
547        oe_debug_pub.add('price list line id 2323 is : ');
548         l_Price_LLine_rec.creation_date := TO_DATE(p_attr_value,'DD/MM/YYYY');
549 
550     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE6 THEN
551        oe_debug_pub.add('price list line id 2424 is : ');
552         l_Price_LLine_rec.pricing_attribute6 := p_attr_value;
553     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE7 THEN
554        oe_debug_pub.add('price list line id 2525 is : ');
555         l_Price_LLine_rec.pricing_attribute7 := p_attr_value;
556     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE8 THEN
557        oe_debug_pub.add('price list line id 2626 is : ');
558         l_Price_LLine_rec.pricing_attribute8 := p_attr_value;
559     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_ATTRIBUTE9 THEN
560        oe_debug_pub.add('price list line id 2727 is : ');
561         l_Price_LLine_rec.pricing_attribute9 := p_attr_value;
562     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_CONTEXT THEN
563        oe_debug_pub.add('price list line id 2828 is : ');
564         l_Price_LLine_rec.pricing_context := p_attr_value;
565     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRICING_RULE THEN
566        oe_debug_pub.add('price list line id 2929 is : ');
567         l_Price_LLine_rec.pricing_rule_id := TO_NUMBER(p_attr_value);
568     ELSIF p_attr_id = OE_Price_List_Line_Util.G_REPRICE THEN
569        oe_debug_pub.add('price list line id 3030 is : ');
570         l_Price_LLine_rec.reprice_flag := p_attr_value;
571     ELSIF p_attr_id = OE_Price_List_Line_Util.G_REVISION THEN
572        oe_debug_pub.add('price list line id 3131 is : ');
573         l_Price_LLine_rec.revision := p_attr_value;
574     ELSIF p_attr_id = OE_Price_List_Line_Util.G_REVISION_DATE THEN
575        oe_debug_pub.add('price list line id 3232 is : ');
576         l_Price_LLine_rec.revision_date := TO_DATE(p_attr_value,'DD/MM/YYYY');
577     ELSIF p_attr_id = OE_Price_List_Line_Util.G_REVISION_REASON THEN
578        oe_debug_pub.add('price list line id 3434 is : ');
579         l_Price_LLine_rec.revision_reason_code := p_attr_value;
580     ELSIF p_attr_id = OE_Price_List_Line_Util.G_START_DATE_ACTIVE THEN
581        oe_debug_pub.add('price list line id 3535 is : ');
582         l_Price_LLine_rec.start_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
583     ELSIF p_attr_id = OE_Price_List_Line_Util.G_UNIT THEN
584        oe_debug_pub.add('price list line id 3636 is : ');
585         l_Price_LLine_rec.unit_code := p_attr_value;
586     ELSIF p_attr_id = OE_Price_List_Line_Util.G_PRIMARY THEN
587        oe_debug_pub.add('price list line id 3737 is : ');
588         l_Price_Lline_rec.primary := p_attr_value;
589     ELSIF p_attr_id = OE_Price_List_Line_Util.G_LIST_LINE_TYPE_CODE THEN
590        oe_debug_pub.add('price list line id 3737 is : ');
591         l_Price_Lline_rec.list_line_type_code := p_attr_value;
592 
593     ELSIF p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE1
594     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE10
595     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE11
596     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE12
597     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE13
598     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE14
599     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE15
600     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE2
601     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE3
602     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE4
603     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE5
604     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE6
605     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE7
606     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE8
607     OR     p_attr_id = OE_Price_List_Line_Util.G_ATTRIBUTE9
608     OR     p_attr_id = OE_Price_List_Line_Util.G_CONTEXT
609     THEN
610 
611         l_Price_LLine_rec.attribute1   := p_attribute1;
612         l_Price_LLine_rec.attribute10  := p_attribute10;
613         l_Price_LLine_rec.attribute11  := p_attribute11;
614         l_Price_LLine_rec.attribute12  := p_attribute12;
615         l_Price_LLine_rec.attribute13  := p_attribute13;
616         l_Price_LLine_rec.attribute14  := p_attribute14;
617         l_Price_LLine_rec.attribute15  := p_attribute15;
618         l_Price_LLine_rec.attribute2   := p_attribute2;
619         l_Price_LLine_rec.attribute3   := p_attribute3;
620         l_Price_LLine_rec.attribute4   := p_attribute4;
621         l_Price_LLine_rec.attribute5   := p_attribute5;
622         l_Price_LLine_rec.attribute6   := p_attribute6;
623         l_Price_LLine_rec.attribute7   := p_attribute7;
624         l_Price_LLine_rec.attribute8   := p_attribute8;
625         l_Price_LLine_rec.attribute9   := p_attribute9;
626         l_Price_LLine_rec.context      := p_context;
627        oe_debug_pub.add('price list line id 4444 is : ');
628 
629     ELSE
630 
631         --  Unexpected error, unrecognized attribute
632 
633         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
634         THEN
635             OE_MSG_PUB.Add_Exc_Msg
636             (   G_PKG_NAME
637             ,   'Change_Attribute'
638             ,   'Unrecognized attribute'
639             );
640         END IF;
641 
642         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
643 
644     END IF;
645 
646     --  Set Operation.
647 
648 
649     IF (l_Price_LLine_rec.db_flag = FND_API.G_MISS_CHAR ) THEN
650 
651         l_Price_LLine_rec.db_flag := NULL;
652 
653     END IF;
654        oe_debug_pub.add('price list line id 5555 is : ');
655 
656     IF FND_API.To_Boolean(l_Price_LLine_rec.db_flag) THEN
657         l_Price_LLine_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
658     ELSE
659         l_Price_LLine_rec.operation := OE_GLOBALS.G_OPR_CREATE;
660     END IF;
661 
662     --  Populate Price_LLine table
663 
664        oe_debug_pub.add('price list line id 6666 is : ');
665     l_Price_LLine_tbl(1) := l_Price_LLine_rec;
666     l_old_Price_LLine_tbl(1) := l_old_Price_LLine_rec;
667 
668     --  Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
669 
670        oe_debug_pub.add('price list line id 7777 is : ');
671     OE_Pricing_Cont_PVT.Process_Pricing_Cont
672     (   p_api_version_number          => 1.0
673     ,   p_init_msg_list               => FND_API.G_TRUE
674     ,   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
675     ,   x_return_status               => l_return_status
676     ,   x_msg_count                   => x_msg_count
677     ,   x_msg_data                    => x_msg_data
678     ,   p_control_rec                 => l_control_rec
679     ,   p_Price_LLine_tbl             => l_Price_LLine_tbl
680     ,   p_old_Price_LLine_tbl         => l_old_Price_LLine_tbl
681     ,   x_Contract_rec                => l_x_Contract_rec
682     ,   x_Agreement_rec               => l_x_Agreement_rec
683     ,   x_Price_LHeader_rec           => l_x_Price_LHeader_rec
684     ,   x_Discount_Header_rec         => l_x_Discount_Header_rec
685     ,   x_Price_LLine_tbl             => l_x_Price_LLine_tbl
686     ,   x_Discount_Cust_tbl           => l_x_Discount_Cust_tbl
687     ,   x_Discount_Line_tbl           => l_x_Discount_Line_tbl
688     ,   x_Price_Break_tbl             => l_x_Price_Break_tbl
689     );
690 
691     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
692         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
693     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
694         RAISE FND_API.G_EXC_ERROR;
695     END IF;
696 
697 
698     --  Unload out tbl
699 
700     l_x_Price_LLine_rec := l_x_Price_LLine_tbl(1);
701 
702 
703     --  Init OUT parameters to missing.
704 
705     x_attribute1                   := FND_API.G_MISS_CHAR;
706     x_attribute10                  := FND_API.G_MISS_CHAR;
707     x_attribute11                  := FND_API.G_MISS_CHAR;
708     x_attribute12                  := FND_API.G_MISS_CHAR;
709     x_attribute13                  := FND_API.G_MISS_CHAR;
710     x_attribute14                  := FND_API.G_MISS_CHAR;
711     x_attribute15                  := FND_API.G_MISS_CHAR;
712     x_attribute2                   := FND_API.G_MISS_CHAR;
713     x_attribute3                   := FND_API.G_MISS_CHAR;
714     x_attribute4                   := FND_API.G_MISS_CHAR;
715     x_attribute5                   := FND_API.G_MISS_CHAR;
716     x_attribute6                   := FND_API.G_MISS_CHAR;
717     x_attribute7                   := FND_API.G_MISS_CHAR;
718     x_attribute8                   := FND_API.G_MISS_CHAR;
719     x_attribute9                   := FND_API.G_MISS_CHAR;
720     x_comments                     := FND_API.G_MISS_CHAR;
721     x_context                      := FND_API.G_MISS_CHAR;
722     x_customer_item_id             := FND_API.G_MISS_NUM;
723     x_end_date_active              := FND_API.G_MISS_DATE;
724     x_inventory_item_id            := FND_API.G_MISS_NUM;
725     x_list_price                   := FND_API.G_MISS_NUM;
726     x_method_code                  := FND_API.G_MISS_CHAR;
727     x_price_list_id                := FND_API.G_MISS_NUM;
728     x_price_list_line_id           := FND_API.G_MISS_NUM;
729     x_pricing_attribute1           := FND_API.G_MISS_CHAR;
730     x_pricing_attribute10          := FND_API.G_MISS_CHAR;
731     x_pricing_attribute11          := FND_API.G_MISS_CHAR;
732     x_pricing_attribute12          := FND_API.G_MISS_CHAR;
733     x_pricing_attribute13          := FND_API.G_MISS_CHAR;
734     x_pricing_attribute14          := FND_API.G_MISS_CHAR;
735     x_pricing_attribute15          := FND_API.G_MISS_CHAR;
736     x_pricing_attribute2           := FND_API.G_MISS_CHAR;
737     x_pricing_attribute3           := FND_API.G_MISS_CHAR;
738     x_pricing_attribute4           := FND_API.G_MISS_CHAR;
739     x_pricing_attribute5           := FND_API.G_MISS_CHAR;
740     x_pricing_attribute6           := FND_API.G_MISS_CHAR;
741     x_pricing_attribute7           := FND_API.G_MISS_CHAR;
742     x_pricing_attribute8           := FND_API.G_MISS_CHAR;
743     x_pricing_attribute9           := FND_API.G_MISS_CHAR;
744     x_pricing_context              := FND_API.G_MISS_CHAR;
745     x_pricing_rule_id              := FND_API.G_MISS_NUM;
746     x_reprice_flag                 := FND_API.G_MISS_CHAR;
747     x_revision                     := FND_API.G_MISS_CHAR;
748     x_revision_date                := FND_API.G_MISS_DATE;
749     x_revision_reason_code         := FND_API.G_MISS_CHAR;
750     x_start_date_active            := FND_API.G_MISS_DATE;
751     x_unit_code                    := FND_API.G_MISS_CHAR;
752     x_customer_item                := FND_API.G_MISS_CHAR;
753     x_inventory_item               := FND_API.G_MISS_CHAR;
754     x_method                       := FND_API.G_MISS_CHAR;
755     x_price_list                   := FND_API.G_MISS_CHAR;
756     x_price_list_line              := FND_API.G_MISS_CHAR;
757     x_pricing_rule                 := FND_API.G_MISS_CHAR;
758     x_reprice                      := FND_API.G_MISS_CHAR;
759     x_revision_reason              := FND_API.G_MISS_CHAR;
760     x_unit                         := FND_API.G_MISS_CHAR;
761     x_primary                      := FND_API.G_MISS_CHAR;
762     x_creation_date            	   := FND_API.G_MISS_DATE;
763     x_list_line_type_code          := FND_API.G_MISS_CHAR;
764 
765     --  Load display out parameters if any
766 
767     l_Price_LLine_val_rec := OE_Price_List_Line_Util.Get_Values
768     (   p_Price_List_Line_rec             => l_x_Price_LLine_rec
769     ,   p_old_Price_List_Line_rec         => l_Price_LLine_rec
770     );
771 
772     --  Return changed attributes.
773 
774     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute1,
775                             l_Price_LLine_rec.attribute1)
776     THEN
777         x_attribute1 := l_x_Price_LLine_rec.attribute1;
778     END IF;
779 
780     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute10,
781                             l_Price_LLine_rec.attribute10)
782     THEN
783         x_attribute10 := l_x_Price_LLine_rec.attribute10;
784     END IF;
785 
786     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute11,
787                             l_Price_LLine_rec.attribute11)
788     THEN
789         x_attribute11 := l_x_Price_LLine_rec.attribute11;
790     END IF;
791 
792     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute12,
793                             l_Price_LLine_rec.attribute12)
794     THEN
795         x_attribute12 := l_x_Price_LLine_rec.attribute12;
796     END IF;
797 
798     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute13,
799                             l_Price_LLine_rec.attribute13)
800     THEN
801         x_attribute13 := l_x_Price_LLine_rec.attribute13;
802     END IF;
803 
804     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute14,
805                             l_Price_LLine_rec.attribute14)
806     THEN
807         x_attribute14 := l_x_Price_LLine_rec.attribute14;
808     END IF;
809 
810     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute15,
811                             l_Price_LLine_rec.attribute15)
812     THEN
813         x_attribute15 := l_x_Price_LLine_rec.attribute15;
814     END IF;
815 
816     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute2,
817                             l_Price_LLine_rec.attribute2)
818     THEN
819         x_attribute2 := l_x_Price_LLine_rec.attribute2;
820     END IF;
821 
822     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute3,
823                             l_Price_LLine_rec.attribute3)
824     THEN
825         x_attribute3 := l_x_Price_LLine_rec.attribute3;
826     END IF;
827 
828     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute4,
829                             l_Price_LLine_rec.attribute4)
830     THEN
831         x_attribute4 := l_x_Price_LLine_rec.attribute4;
832     END IF;
833 
834     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute5,
835                             l_Price_LLine_rec.attribute5)
836     THEN
837         x_attribute5 := l_x_Price_LLine_rec.attribute5;
838     END IF;
839 
840     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute6,
841                             l_Price_LLine_rec.attribute6)
842     THEN
843         x_attribute6 := l_x_Price_LLine_rec.attribute6;
844     END IF;
845 
846     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute7,
847                             l_Price_LLine_rec.attribute7)
848     THEN
849         x_attribute7 := l_x_Price_LLine_rec.attribute7;
850     END IF;
851 
852     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute8,
853                             l_Price_LLine_rec.attribute8)
854     THEN
855         x_attribute8 := l_x_Price_LLine_rec.attribute8;
856     END IF;
857 
858     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.attribute9,
859                             l_Price_LLine_rec.attribute9)
860     THEN
861         x_attribute9 := l_x_Price_LLine_rec.attribute9;
862     END IF;
863 
864     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.comments,
865                             l_Price_LLine_rec.comments)
866     THEN
867         x_comments := l_x_Price_LLine_rec.comments;
868     END IF;
869 
870     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.context,
871                             l_Price_LLine_rec.context)
872     THEN
873         x_context := l_x_Price_LLine_rec.context;
874     END IF;
875 
876     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.customer_item_id,
877                             l_Price_LLine_rec.customer_item_id)
878     THEN
879         x_customer_item_id := l_x_Price_LLine_rec.customer_item_id;
880         x_customer_item := l_Price_LLine_val_rec.customer_item;
881     END IF;
882 
883     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.end_date_active,
884                             l_Price_LLine_rec.end_date_active)
885     THEN
886         x_end_date_active := l_x_Price_LLine_rec.end_date_active;
887     END IF;
888 
889     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.inventory_item_id,
890                             l_Price_LLine_rec.inventory_item_id)
891     THEN
892         x_inventory_item_id := l_x_Price_LLine_rec.inventory_item_id;
893         x_inventory_item := l_Price_LLine_val_rec.inventory_item;
894     END IF;
895 
896     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.list_price,
897                             l_Price_LLine_rec.list_price)
898     THEN
899         x_list_price := l_x_Price_LLine_rec.list_price;
900     END IF;
901 
902     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.method_code,
903                             l_Price_LLine_rec.method_code)
904     THEN
905         x_method_code := l_x_Price_LLine_rec.method_code;
906         x_method := l_Price_LLine_val_rec.method;
907     END IF;
908 
909     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.price_list_id,
910                             l_Price_LLine_rec.price_list_id)
911     THEN
912         x_price_list_id := l_x_Price_LLine_rec.price_list_id;
913         x_price_list := l_Price_LLine_val_rec.price_list;
914     END IF;
915 
916     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.price_list_line_id,
917                             l_Price_LLine_rec.price_list_line_id)
918     THEN
919         x_price_list_line_id := l_x_Price_LLine_rec.price_list_line_id;
920         x_price_list_line := l_Price_LLine_val_rec.price_list_line;
921     END IF;
922 
923     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute1,
924                             l_Price_LLine_rec.pricing_attribute1)
925     THEN
926         x_pricing_attribute1 := l_x_Price_LLine_rec.pricing_attribute1;
927     END IF;
928 
929     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute10,
930                             l_Price_LLine_rec.pricing_attribute10)
931     THEN
932         x_pricing_attribute10 := l_x_Price_LLine_rec.pricing_attribute10;
933     END IF;
934 
935     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute11,
936                             l_Price_LLine_rec.pricing_attribute11)
937     THEN
938         x_pricing_attribute11 := l_x_Price_LLine_rec.pricing_attribute11;
939     END IF;
940 
941     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute12,
942                             l_Price_LLine_rec.pricing_attribute12)
943     THEN
944         x_pricing_attribute12 := l_x_Price_LLine_rec.pricing_attribute12;
945     END IF;
946 
947     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute13,
948                             l_Price_LLine_rec.pricing_attribute13)
949     THEN
950         x_pricing_attribute13 := l_x_Price_LLine_rec.pricing_attribute13;
951     END IF;
952 
953     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute14,
954                             l_Price_LLine_rec.pricing_attribute14)
955     THEN
956         x_pricing_attribute14 := l_x_Price_LLine_rec.pricing_attribute14;
957     END IF;
958 
959     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute15,
960                             l_Price_LLine_rec.pricing_attribute15)
961     THEN
962         x_pricing_attribute15 := l_x_Price_LLine_rec.pricing_attribute15;
963     END IF;
964 
965     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute2,
966                             l_Price_LLine_rec.pricing_attribute2)
967     THEN
968         x_pricing_attribute2 := l_x_Price_LLine_rec.pricing_attribute2;
969     END IF;
970 
971     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute3,
972                             l_Price_LLine_rec.pricing_attribute3)
973     THEN
974         x_pricing_attribute3 := l_x_Price_LLine_rec.pricing_attribute3;
975     END IF;
976 
977     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute4,
978                             l_Price_LLine_rec.pricing_attribute4)
979     THEN
980         x_pricing_attribute4 := l_x_Price_LLine_rec.pricing_attribute4;
981     END IF;
982 
983     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute5,
984                             l_Price_LLine_rec.pricing_attribute5)
985     THEN
986         x_pricing_attribute5 := l_x_Price_LLine_rec.pricing_attribute5;
987     END IF;
988 
989     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute6,
990                             l_Price_LLine_rec.pricing_attribute6)
991     THEN
992         x_pricing_attribute6 := l_x_Price_LLine_rec.pricing_attribute6;
993     END IF;
994 
995     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute7,
996                             l_Price_LLine_rec.pricing_attribute7)
997     THEN
998         x_pricing_attribute7 := l_x_Price_LLine_rec.pricing_attribute7;
999     END IF;
1000 
1001     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute8,
1002                             l_Price_LLine_rec.pricing_attribute8)
1003     THEN
1004         x_pricing_attribute8 := l_x_Price_LLine_rec.pricing_attribute8;
1005     END IF;
1006 
1007     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_attribute9,
1008                             l_Price_LLine_rec.pricing_attribute9)
1009     THEN
1010         x_pricing_attribute9 := l_x_Price_LLine_rec.pricing_attribute9;
1011     END IF;
1012 
1013     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_context,
1014                             l_Price_LLine_rec.pricing_context)
1015     THEN
1016         x_pricing_context := l_x_Price_LLine_rec.pricing_context;
1017     END IF;
1018 
1019     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.pricing_rule_id,
1020                             l_Price_LLine_rec.pricing_rule_id)
1021     THEN
1022         x_pricing_rule_id := l_x_Price_LLine_rec.pricing_rule_id;
1023         x_pricing_rule := l_Price_LLine_val_rec.pricing_rule;
1024     END IF;
1025 
1026     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.reprice_flag,
1027                             l_Price_LLine_rec.reprice_flag)
1028     THEN
1029         x_reprice_flag := l_x_Price_LLine_rec.reprice_flag;
1030         x_reprice := l_Price_LLine_val_rec.reprice;
1031     END IF;
1032 
1033     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.revision,
1034                             l_Price_LLine_rec.revision)
1035     THEN
1036         x_revision := l_x_Price_LLine_rec.revision;
1037     END IF;
1038 
1039     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.revision_date,
1040                             l_Price_LLine_rec.revision_date)
1041     THEN
1042         x_revision_date := l_x_Price_LLine_rec.revision_date;
1043     END IF;
1044 
1045     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.revision_reason_code,
1046                             l_Price_LLine_rec.revision_reason_code)
1047     THEN
1048         x_revision_reason_code := l_x_Price_LLine_rec.revision_reason_code;
1049         x_revision_reason := l_Price_LLine_val_rec.revision_reason;
1050     END IF;
1051 
1052 -- New Add
1053 
1054     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.creation_date,
1055                             l_Price_LLine_rec.creation_date)
1056     THEN
1057         x_creation_date := l_x_Price_LLine_rec.creation_date;
1058     END IF;
1059 
1060 
1061     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.start_date_active,
1062                             l_Price_LLine_rec.start_date_active)
1063     THEN
1064         x_start_date_active := l_x_Price_LLine_rec.start_date_active;
1065     END IF;
1066 
1067     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.unit_code,
1068                             l_Price_LLine_rec.unit_code)
1069     THEN
1070         x_unit_code := l_x_Price_LLine_rec.unit_code;
1071         x_unit := l_Price_LLine_val_rec.unit;
1072     END IF;
1073 
1074     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.primary,
1075                             l_Price_LLine_rec.primary)
1076     THEN
1077         x_primary := l_x_Price_LLine_rec.primary;
1078     END IF;
1079 
1080     IF NOT OE_GLOBALS.Equal(l_x_Price_LLine_rec.list_line_type_code,
1081                             l_Price_LLine_rec.list_line_type_code)
1082     THEN
1083         x_list_line_type_code := l_x_Price_LLine_rec.list_line_type_code;
1084     END IF;
1085 
1086 
1087 
1088 
1089 
1090 
1091     --  Write to cache.
1092 
1093     Write_Price_LLine
1094     (   p_Price_LLine_rec             => l_x_Price_LLine_rec
1095     );
1096 
1097     --  Set return status.
1098 
1099     x_return_status := FND_API.G_RET_STS_SUCCESS;
1100 
1101     --  Get message count and data
1102 
1103     OE_MSG_PUB.Count_And_Get
1104     (   p_count                       => x_msg_count
1105     ,   p_data                        => x_msg_data
1106     );
1107 
1108     oe_debug_pub.add('Price_List_Id: ' || g_Price_LLine_rec.price_list_id ||
1109 		'Price_List_Line_Id: ' || g_Price_LLine_rec.price_list_line_id);
1110     oe_debug_pub.add('Exiting OE_OE_Form_Price_Lline.Change_Attribute');
1111 
1112 EXCEPTION
1113 
1114     WHEN FND_API.G_EXC_ERROR THEN
1115 
1116         x_return_status := FND_API.G_RET_STS_ERROR;
1117 
1118         --  Get message count and data
1119 
1120         OE_MSG_PUB.Count_And_Get
1121         (   p_count                       => x_msg_count
1122         ,   p_data                        => x_msg_data
1123         );
1124 
1125     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1126 
1127         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1128 
1129         --  Get message count and data
1130 
1131         OE_MSG_PUB.Count_And_Get
1132         (   p_count                       => x_msg_count
1133         ,   p_data                        => x_msg_data
1134         );
1135 
1136     WHEN OTHERS THEN
1137 
1138         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1139 
1140         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1141         THEN
1142             OE_MSG_PUB.Add_Exc_Msg
1143             (   G_PKG_NAME
1144             ,   'Change_Attribute'
1145             );
1146         END IF;
1147 
1148         --  Get message count and data
1149 
1150         OE_MSG_PUB.Count_And_Get
1151         (   p_count                       => x_msg_count
1152         ,   p_data                        => x_msg_data
1153         );
1154 
1155 END Change_Attribute;
1156 
1157 --  Procedure       Validate_And_Write
1158 --
1159 
1160 PROCEDURE Validate_And_Write
1161 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1162 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1163 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1164 ,   p_price_list_line_id            IN  NUMBER
1165 ,   x_creation_date                 OUT NOCOPY /* file.sql.39 change */ DATE
1166 ,   x_created_by                    OUT NOCOPY /* file.sql.39 change */ NUMBER
1167 ,   x_last_update_date              OUT NOCOPY /* file.sql.39 change */ DATE
1168 ,   x_last_updated_by               OUT NOCOPY /* file.sql.39 change */ NUMBER
1169 ,   x_last_update_login             OUT NOCOPY /* file.sql.39 change */ NUMBER
1170 )
1171 IS
1172 l_Price_LLine_rec             OE_Price_List_PUB.Price_List_Line_Rec_Type;
1173 l_old_Price_LLine_rec         OE_Price_List_PUB.Price_List_Line_Rec_Type;
1174 l_Price_LLine_tbl             OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1175 l_old_Price_LLine_tbl         OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1176 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
1177 l_return_status               VARCHAR2(1);
1178 l_x_Contract_rec              OE_Pricing_Cont_PUB.Contract_Rec_Type;
1179 l_x_Agreement_rec             OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1180 l_x_Price_LHeader_rec         OE_Price_List_PUB.Price_List_Rec_Type;
1181 l_x_Discount_Header_rec       OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
1182 l_x_Price_LLine_rec           OE_Price_List_PUB.Price_List_Line_Rec_Type;
1183 l_x_Price_LLine_tbl           OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1184 l_x_Discount_Cust_rec         OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
1185 l_x_Discount_Cust_tbl         OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
1186 l_x_Discount_Line_rec         OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
1187 l_x_Discount_Line_tbl         OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
1188 l_x_Price_Break_rec           OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
1189 l_x_Price_Break_tbl           OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
1190 BEGIN
1191 
1192     oe_debug_pub.add('Entering OE_OE_Form_Price_Lline.Validate_And_Write');
1193 
1194     --  Set control flags.
1195 
1196     l_control_rec.controlled_operation := TRUE;
1197     l_control_rec.validate_entity      := TRUE;
1198     l_control_rec.write_to_DB          := TRUE;
1199 
1200     l_control_rec.default_attributes   := FALSE;
1201     l_control_rec.change_attributes    := FALSE;
1202     l_control_rec.process              := FALSE;
1203 
1204     --  Instruct API to retain its caches
1205 
1206     l_control_rec.clear_api_cache      := FALSE;
1207     l_control_rec.clear_api_requests   := FALSE;
1208 
1209     --  Read Price_LLine from cache
1210 
1211     l_old_Price_LLine_rec := Get_Price_LLine
1212     (   p_db_record                   => TRUE
1213     ,   p_price_list_line_id          => p_price_list_line_id
1214     );
1215 
1216     l_Price_LLine_rec := Get_Price_LLine
1217     (   p_db_record                   => FALSE
1218     ,   p_price_list_line_id          => p_price_list_line_id
1219     );
1220 
1221     oe_debug_pub.add('Price_List_Id: ' || g_Price_LLine_rec.price_list_id ||
1222 		'Price_List_Line_Id: ' || g_Price_LLine_rec.price_list_line_id);
1223     oe_debug_pub.add('Price_List_Id: ' || l_Price_LLine_rec.price_list_id ||
1224 		'Price_List_Line_Id: ' || l_Price_LLine_rec.price_list_line_id);
1225     --  Set Operation.
1226 
1227     IF FND_API.To_Boolean(l_Price_LLine_rec.db_flag) THEN
1228         l_Price_LLine_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
1229     ELSE
1230             oe_debug_pub.add('create price list line');
1231         l_Price_LLine_rec.operation := OE_GLOBALS.G_OPR_CREATE;
1232     END IF;
1233 
1234     --Revision Control S
1235     IF ( ( l_old_Price_LLine_rec.revision <> FND_API.G_MISS_CHAR )
1236         AND (l_old_Price_LLine_rec.revision <>  l_Price_LLine_rec.revision) )
1237     THEN
1238         oe_debug_pub.add('incrementing price list line id');
1239         oe_debug_pub.add('old rev is: ' || l_old_Price_LLine_rec.revision);
1240         oe_debug_pub.add('new rev is: ' || l_Price_LLine_rec.revision);
1241 
1242       IF (l_old_Price_LLine_rec.revision is NULL) THEN
1243         oe_debug_pub.add('old revision is null');
1244       END IF;
1245 
1246       IF (l_Price_LLine_rec.revision is NULL) THEN
1247         oe_debug_pub.add('new revision is also null');
1248       END IF;
1249 
1250         select qp_list_lines_s.nextval into l_Price_LLine_rec.price_list_line_id from dual;
1251         l_Price_LLine_rec.operation := OE_GLOBALS.G_OPR_CREATE;
1252         l_Price_LLine_rec.db_flag := FND_API.G_FALSE;
1253     END IF;
1254     --Revision Control E
1255 
1256     --  Populate Price_LLine table
1257 
1258     l_Price_LLine_tbl(1) := l_Price_LLine_rec;
1259     l_old_Price_LLine_tbl(1) := l_old_Price_LLine_rec;
1260 
1261     --  Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
1262 
1263     OE_Pricing_Cont_PVT.Process_Pricing_Cont
1264     (   p_api_version_number          => 1.0
1265     ,   p_init_msg_list               => FND_API.G_TRUE
1266     ,   x_return_status               => l_return_status
1267     ,   x_msg_count                   => x_msg_count
1268     ,   x_msg_data                    => x_msg_data
1269     ,   p_control_rec                 => l_control_rec
1270     ,   p_Price_LLine_tbl             => l_Price_LLine_tbl
1271     ,   p_old_Price_LLine_tbl         => l_old_Price_LLine_tbl
1272     ,   x_Contract_rec                => l_x_Contract_rec
1273     ,   x_Agreement_rec               => l_x_Agreement_rec
1274     ,   x_Price_LHeader_rec           => l_x_Price_LHeader_rec
1275     ,   x_Discount_Header_rec         => l_x_Discount_Header_rec
1276     ,   x_Price_LLine_tbl             => l_x_Price_LLine_tbl
1277     ,   x_Discount_Cust_tbl           => l_x_Discount_Cust_tbl
1278     ,   x_Discount_Line_tbl           => l_x_Discount_Line_tbl
1279     ,   x_Price_Break_tbl             => l_x_Price_Break_tbl
1280     );
1281 
1282     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1283         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1284     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1285         RAISE FND_API.G_EXC_ERROR;
1286     END IF;
1287 
1288 
1289     --  Load OUT parameters.
1290 
1291     l_x_Price_LLine_rec := l_x_Price_LLine_tbl(1);
1292 
1293     x_creation_date                := l_x_Price_LLine_rec.creation_date;
1294     x_created_by                   := l_x_Price_LLine_rec.created_by;
1295     x_last_update_date             := l_x_Price_LLine_rec.last_update_date;
1296     x_last_updated_by              := l_x_Price_LLine_rec.last_updated_by;
1297     x_last_update_login            := l_x_Price_LLine_rec.last_update_login;
1298 
1299     --  Clear Price_LLine record cache
1300 
1301     Clear_Price_LLine;
1302 
1303     --  Keep track of performed operations.
1304 
1305     l_old_Price_LLine_rec.operation := l_Price_LLine_rec.operation;
1306 
1307 
1308     --  Set return status.
1309 
1310     x_return_status := FND_API.G_RET_STS_SUCCESS;
1311 
1312     --  Get message count and data
1313 
1314     OE_MSG_PUB.Count_And_Get
1315     (   p_count                       => x_msg_count
1316     ,   p_data                        => x_msg_data
1317     );
1318 
1319     oe_debug_pub.add('Exiting OE_OE_Form_Price_Lline.Validate_And_Write');
1320 
1321 EXCEPTION
1322 
1323     WHEN FND_API.G_EXC_ERROR THEN
1324 
1325         x_return_status := FND_API.G_RET_STS_ERROR;
1326 
1327         --  Get message count and data
1328 
1329         OE_MSG_PUB.Count_And_Get
1330         (   p_count                       => x_msg_count
1331         ,   p_data                        => x_msg_data
1332         );
1333 
1334     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1335 
1336         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1337 
1338         --  Get message count and data
1339 
1340         OE_MSG_PUB.Count_And_Get
1341         (   p_count                       => x_msg_count
1342         ,   p_data                        => x_msg_data
1343         );
1344 
1345     WHEN OTHERS THEN
1346 
1347         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1348 
1349         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1350         THEN
1351             OE_MSG_PUB.Add_Exc_Msg
1352             (   G_PKG_NAME
1353             ,   'Validate_And_Write'
1354             );
1355         END IF;
1356 
1357         --  Get message count and data
1358 
1359         OE_MSG_PUB.Count_And_Get
1360         (   p_count                       => x_msg_count
1361         ,   p_data                        => x_msg_data
1362         );
1363 
1364 END Validate_And_Write;
1365 
1366 --  Procedure       Delete_Row
1367 --
1368 
1369 PROCEDURE Delete_Row
1370 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1371 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1372 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1373 ,   p_price_list_line_id            IN  NUMBER
1374 )
1375 IS
1376 l_Price_LLine_rec             OE_Price_List_PUB.Price_List_Line_Rec_Type;
1377 l_Price_LLine_tbl             OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1378 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
1379 l_return_status               VARCHAR2(1);
1380 l_x_Contract_rec              OE_Pricing_Cont_PUB.Contract_Rec_Type;
1381 l_x_Agreement_rec             OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1382 l_x_Price_LHeader_rec         OE_Price_List_PUB.Price_List_Rec_Type;
1383 l_x_Discount_Header_rec       OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
1384 l_x_Price_LLine_rec           OE_Price_List_PUB.Price_List_Line_Rec_Type;
1385 l_x_Price_LLine_tbl           OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1386 l_x_Discount_Cust_rec         OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
1387 l_x_Discount_Cust_tbl         OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
1388 l_x_Discount_Line_rec         OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
1389 l_x_Discount_Line_tbl         OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
1390 l_x_Price_Break_rec           OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
1391 l_x_Price_Break_tbl           OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
1392 BEGIN
1393 
1394     --  Set control flags.
1395 
1396     l_control_rec.controlled_operation := TRUE;
1397     l_control_rec.validate_entity      := TRUE;
1398     l_control_rec.write_to_DB          := TRUE;
1399 
1400     l_control_rec.default_attributes   := FALSE;
1401     l_control_rec.change_attributes    := FALSE;
1402     l_control_rec.process              := FALSE;
1403 
1404     --  Instruct API to retain its caches
1405 
1406     l_control_rec.clear_api_cache      := FALSE;
1407     l_control_rec.clear_api_requests   := FALSE;
1408 
1409     --  Read DB record from cache
1410 
1411     l_Price_LLine_rec := Get_Price_LLine
1412     (   p_db_record                   => TRUE
1413     ,   p_price_list_line_id          => p_price_list_line_id
1414     );
1415 
1416     --  Set Operation.
1417 
1418     l_Price_LLine_rec.operation := OE_GLOBALS.G_OPR_DELETE;
1419 
1420     --  Populate Price_LLine table
1421 
1422     l_Price_LLine_tbl(1) := l_Price_LLine_rec;
1423 
1424     --  Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
1425 
1426     OE_Pricing_Cont_PVT.Process_Pricing_Cont
1427     (   p_api_version_number          => 1.0
1428     ,   p_init_msg_list               => FND_API.G_TRUE
1429     ,   x_return_status               => l_return_status
1430     ,   x_msg_count                   => x_msg_count
1431     ,   x_msg_data                    => x_msg_data
1432     ,   p_control_rec                 => l_control_rec
1433     ,   p_Price_LLine_tbl             => l_Price_LLine_tbl
1434     ,   x_Contract_rec                => l_x_Contract_rec
1435     ,   x_Agreement_rec               => l_x_Agreement_rec
1436     ,   x_Price_LHeader_rec           => l_x_Price_LHeader_rec
1437     ,   x_Discount_Header_rec         => l_x_Discount_Header_rec
1438     ,   x_Price_LLine_tbl             => l_x_Price_LLine_tbl
1439     ,   x_Discount_Cust_tbl           => l_x_Discount_Cust_tbl
1440     ,   x_Discount_Line_tbl           => l_x_Discount_Line_tbl
1441     ,   x_Price_Break_tbl             => l_x_Price_Break_tbl
1442     );
1443 
1444     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1445         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1446     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1447         RAISE FND_API.G_EXC_ERROR;
1448     END IF;
1449 
1450 
1451     --  Clear Price_LLine record cache
1452 
1453     Clear_Price_LLine;
1454 
1455     --  Set return status.
1456 
1457     x_return_status := FND_API.G_RET_STS_SUCCESS;
1458 
1459     --  Get message count and data
1460 
1461     OE_MSG_PUB.Count_And_Get
1462     (   p_count                       => x_msg_count
1463     ,   p_data                        => x_msg_data
1464     );
1465 
1466 
1467 EXCEPTION
1468 
1469     WHEN FND_API.G_EXC_ERROR THEN
1470 
1471         x_return_status := FND_API.G_RET_STS_ERROR;
1472 
1473         --  Get message count and data
1474 
1475         OE_MSG_PUB.Count_And_Get
1476         (   p_count                       => x_msg_count
1477         ,   p_data                        => x_msg_data
1478         );
1479 
1480     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1481 
1482         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1483 
1484         --  Get message count and data
1485 
1486         OE_MSG_PUB.Count_And_Get
1487         (   p_count                       => x_msg_count
1488         ,   p_data                        => x_msg_data
1489         );
1490 
1491     WHEN OTHERS THEN
1492 
1493         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1494 
1495         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1496         THEN
1497             OE_MSG_PUB.Add_Exc_Msg
1498             (   G_PKG_NAME
1499             ,   'Delete_Row'
1500             );
1501         END IF;
1502 
1503         --  Get message count and data
1504 
1505         OE_MSG_PUB.Count_And_Get
1506         (   p_count                       => x_msg_count
1507         ,   p_data                        => x_msg_data
1508         );
1509 
1510 END Delete_Row;
1511 
1512 --  Procedure       Process_Entity
1513 --
1514 
1515 PROCEDURE Process_Entity
1516 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1517 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1518 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1519 )
1520 IS
1521 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
1522 l_return_status               VARCHAR2(1);
1523 l_x_Contract_rec              OE_Pricing_Cont_PUB.Contract_Rec_Type;
1524 l_x_Agreement_rec             OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1525 l_x_Price_LHeader_rec         OE_Price_List_PUB.Price_List_Rec_Type;
1526 l_x_Discount_Header_rec       OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
1527 l_x_Price_LLine_rec           OE_Price_List_PUB.Price_List_Line_Rec_Type;
1528 l_x_Price_LLine_tbl           OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1529 l_x_Discount_Cust_rec         OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
1530 l_x_Discount_Cust_tbl         OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
1531 l_x_Discount_Line_rec         OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
1532 l_x_Discount_Line_tbl         OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
1533 l_x_Price_Break_rec           OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
1534 l_x_Price_Break_tbl           OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
1535 BEGIN
1536 
1537     oe_debug_pub.add('Entering OE_OE_Form_Price_Lline.Process_Entity');
1538 
1539     --  Set control flags.
1540 
1541     l_control_rec.controlled_operation := TRUE;
1542     l_control_rec.process              := TRUE;
1543     l_control_rec.process_entity       := OE_GLOBALS.G_ENTITY_PRICE_LLINE;
1544 
1545     l_control_rec.default_attributes   := FALSE;
1546     l_control_rec.change_attributes    := FALSE;
1547     l_control_rec.validate_entity      := FALSE;
1548     l_control_rec.write_to_DB          := FALSE;
1549 
1550     --  Instruct API to clear its request table
1551 
1552     l_control_rec.clear_api_cache      := FALSE;
1553     l_control_rec.clear_api_requests   := FALSE;
1554 
1555     --  Call OE_Pricing_Cont_PVT.Process_Pricing_Cont
1556 
1557     OE_Pricing_Cont_PVT.Process_Pricing_Cont
1558     (   p_api_version_number          => 1.0
1559     ,   p_init_msg_list               => FND_API.G_TRUE
1560     ,   x_return_status               => l_return_status
1561     ,   x_msg_count                   => x_msg_count
1562     ,   x_msg_data                    => x_msg_data
1563     ,   p_control_rec                 => l_control_rec
1564     ,   x_Contract_rec                => l_x_Contract_rec
1565     ,   x_Agreement_rec               => l_x_Agreement_rec
1566     ,   x_Price_LHeader_rec           => l_x_Price_LHeader_rec
1567     ,   x_Discount_Header_rec         => l_x_Discount_Header_rec
1568     ,   x_Price_LLine_tbl             => l_x_Price_LLine_tbl
1569     ,   x_Discount_Cust_tbl           => l_x_Discount_Cust_tbl
1570     ,   x_Discount_Line_tbl           => l_x_Discount_Line_tbl
1571     ,   x_Price_Break_tbl             => l_x_Price_Break_tbl
1572     );
1573 
1574     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1575         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1576     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1577         RAISE FND_API.G_EXC_ERROR;
1578     END IF;
1579 
1580 
1581     --  Set return status.
1582 
1583     x_return_status := FND_API.G_RET_STS_SUCCESS;
1584 
1585     --  Get message count and data
1586 
1587     OE_MSG_PUB.Count_And_Get
1588     (   p_count                       => x_msg_count
1589     ,   p_data                        => x_msg_data
1590     );
1591 
1592     oe_debug_pub.add('Exiting OE_OE_Form_Price_Lline.Process_Entity');
1593 
1594 EXCEPTION
1595 
1596     WHEN FND_API.G_EXC_ERROR THEN
1597 
1598         x_return_status := FND_API.G_RET_STS_ERROR;
1599 
1600         --  Get message count and data
1601 
1602         OE_MSG_PUB.Count_And_Get
1603         (   p_count                       => x_msg_count
1604         ,   p_data                        => x_msg_data
1605         );
1606 
1607     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1608 
1609         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1610 
1611         --  Get message count and data
1612 
1613         OE_MSG_PUB.Count_And_Get
1614         (   p_count                       => x_msg_count
1615         ,   p_data                        => x_msg_data
1616         );
1617 
1618     WHEN OTHERS THEN
1619 
1620         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1621 
1622         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1623         THEN
1624             OE_MSG_PUB.Add_Exc_Msg
1625             (   G_PKG_NAME
1626             ,   'Process_Entity'
1627             );
1628         END IF;
1629 
1630         --  Get message count and data
1631 
1632         OE_MSG_PUB.Count_And_Get
1633         (   p_count                       => x_msg_count
1634         ,   p_data                        => x_msg_data
1635         );
1636 
1637 END Process_Entity;
1638 
1639 --  Procedure       lock_Row
1640 --
1641 
1642 PROCEDURE Lock_Row
1643 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1644 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
1645 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1646 ,   p_attribute1                    IN  VARCHAR2
1647 ,   p_attribute10                   IN  VARCHAR2
1648 ,   p_attribute11                   IN  VARCHAR2
1649 ,   p_attribute12                   IN  VARCHAR2
1650 ,   p_attribute13                   IN  VARCHAR2
1651 ,   p_attribute14                   IN  VARCHAR2
1652 ,   p_attribute15                   IN  VARCHAR2
1653 ,   p_attribute2                    IN  VARCHAR2
1654 ,   p_attribute3                    IN  VARCHAR2
1655 ,   p_attribute4                    IN  VARCHAR2
1656 ,   p_attribute5                    IN  VARCHAR2
1657 ,   p_attribute6                    IN  VARCHAR2
1658 ,   p_attribute7                    IN  VARCHAR2
1659 ,   p_attribute8                    IN  VARCHAR2
1660 ,   p_attribute9                    IN  VARCHAR2
1661 ,   p_comments                      IN  VARCHAR2
1662 ,   p_context                       IN  VARCHAR2
1663 ,   p_created_by                    IN  NUMBER
1664 ,   p_creation_date                 IN  DATE
1665 ,   p_customer_item_id              IN  NUMBER
1666 ,   p_end_date_active               IN  DATE
1667 ,   p_inventory_item_id             IN  NUMBER
1668 ,   p_last_updated_by               IN  NUMBER
1669 ,   p_last_update_date              IN  DATE
1670 ,   p_last_update_login             IN  NUMBER
1671 ,   p_list_price                    IN  NUMBER
1672 ,   p_method_code                   IN  VARCHAR2
1673 ,   p_price_list_id                 IN  NUMBER
1674 ,   p_price_list_line_id            IN  NUMBER
1675 ,   p_pricing_attribute1            IN  VARCHAR2
1676 ,   p_pricing_attribute10           IN  VARCHAR2
1677 ,   p_pricing_attribute11           IN  VARCHAR2
1678 ,   p_pricing_attribute12           IN  VARCHAR2
1679 ,   p_pricing_attribute13           IN  VARCHAR2
1680 ,   p_pricing_attribute14           IN  VARCHAR2
1681 ,   p_pricing_attribute15           IN  VARCHAR2
1682 ,   p_pricing_attribute2            IN  VARCHAR2
1683 ,   p_pricing_attribute3            IN  VARCHAR2
1684 ,   p_pricing_attribute4            IN  VARCHAR2
1685 ,   p_pricing_attribute5            IN  VARCHAR2
1686 ,   p_pricing_attribute6            IN  VARCHAR2
1687 ,   p_pricing_attribute7            IN  VARCHAR2
1688 ,   p_pricing_attribute8            IN  VARCHAR2
1689 ,   p_pricing_attribute9            IN  VARCHAR2
1690 ,   p_pricing_context               IN  VARCHAR2
1691 ,   p_pricing_rule_id               IN  NUMBER
1692 ,   p_program_application_id        IN  NUMBER
1693 ,   p_program_id                    IN  NUMBER
1694 ,   p_program_update_date           IN  DATE
1695 ,   p_reprice_flag                  IN  VARCHAR2
1696 ,   p_request_id                    IN  NUMBER
1697 ,   p_revision                      IN  VARCHAR2
1698 ,   p_revision_date                 IN  DATE
1699 ,   p_revision_reason_code          IN  VARCHAR2
1700 ,   p_start_date_active             IN  DATE
1701 ,   p_unit_code                     IN  VARCHAR2
1702 ,   p_primary                       IN  VARCHAR2
1703 ,   p_list_line_type_code           IN  VARCHAR2
1704 )
1705 IS
1706 l_return_status               VARCHAR2(1);
1707 l_Price_LLine_rec             OE_Price_List_PUB.Price_List_Line_Rec_Type;
1708 l_Price_LLine_tbl             OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1709 l_x_Contract_rec              OE_Pricing_Cont_PUB.Contract_Rec_Type;
1710 l_x_Agreement_rec             OE_Pricing_Cont_PUB.Agreement_Rec_Type;
1711 l_x_Price_LHeader_rec         OE_Price_List_PUB.Price_List_Rec_Type;
1712 l_x_Discount_Header_rec       OE_Pricing_Cont_PUB.Discount_Header_Rec_Type;
1713 l_x_Price_LLine_rec           OE_Price_List_PUB.Price_List_Line_Rec_Type;
1714 l_x_Price_LLine_tbl           OE_Price_List_PUB.Price_List_Line_Tbl_Type;
1715 l_x_Discount_Cust_rec         OE_Pricing_Cont_PUB.Discount_Cust_Rec_Type;
1716 l_x_Discount_Cust_tbl         OE_Pricing_Cont_PUB.Discount_Cust_Tbl_Type;
1717 l_x_Discount_Line_rec         OE_Pricing_Cont_PUB.Discount_Line_Rec_Type;
1718 l_x_Discount_Line_tbl         OE_Pricing_Cont_PUB.Discount_Line_Tbl_Type;
1719 l_x_Price_Break_rec           OE_Pricing_Cont_PUB.Price_Break_Rec_Type;
1720 l_x_Price_Break_tbl           OE_Pricing_Cont_PUB.Price_Break_Tbl_Type;
1721 BEGIN
1722 
1723     --  Load Price_LLine record
1724 
1725      oe_debug_pub.add('price list id 1 is : ' || to_char(p_price_list_id));
1726 
1727 
1728     l_Price_LLine_rec.attribute1   := p_attribute1;
1729     l_Price_LLine_rec.attribute10  := p_attribute10;
1730     l_Price_LLine_rec.attribute11  := p_attribute11;
1731     l_Price_LLine_rec.attribute12  := p_attribute12;
1732     l_Price_LLine_rec.attribute13  := p_attribute13;
1733     l_Price_LLine_rec.attribute14  := p_attribute14;
1734     l_Price_LLine_rec.attribute15  := p_attribute15;
1735     l_Price_LLine_rec.attribute2   := p_attribute2;
1736     l_Price_LLine_rec.attribute3   := p_attribute3;
1737     l_Price_LLine_rec.attribute4   := p_attribute4;
1738     l_Price_LLine_rec.attribute5   := p_attribute5;
1739     l_Price_LLine_rec.attribute6   := p_attribute6;
1740     l_Price_LLine_rec.attribute7   := p_attribute7;
1741     l_Price_LLine_rec.attribute8   := p_attribute8;
1742     l_Price_LLine_rec.attribute9   := p_attribute9;
1743     l_Price_LLine_rec.comments     := p_comments;
1744     l_Price_LLine_rec.context      := p_context;
1745     l_Price_LLine_rec.created_by   := p_created_by;
1746     l_Price_LLine_rec.creation_date := p_creation_date;
1747     l_Price_LLine_rec.customer_item_id := p_customer_item_id;
1748     l_Price_LLine_rec.end_date_active := p_end_date_active;
1749     l_Price_LLine_rec.inventory_item_id := p_inventory_item_id;
1750     l_Price_LLine_rec.last_updated_by := p_last_updated_by;
1751     l_Price_LLine_rec.last_update_date := p_last_update_date;
1752     l_Price_LLine_rec.last_update_login := p_last_update_login;
1753     l_Price_LLine_rec.list_price   := p_list_price;
1754     l_Price_LLine_rec.method_code  := p_method_code;
1755     l_Price_LLine_rec.price_list_id := p_price_list_id;
1756     l_Price_LLine_rec.price_list_line_id := p_price_list_line_id;
1757     l_Price_LLine_rec.pricing_attribute1 := p_pricing_attribute1;
1758     l_Price_LLine_rec.pricing_attribute10 := p_pricing_attribute10;
1759     l_Price_LLine_rec.pricing_attribute11 := p_pricing_attribute11;
1760     l_Price_LLine_rec.pricing_attribute12 := p_pricing_attribute12;
1761     l_Price_LLine_rec.pricing_attribute13 := p_pricing_attribute13;
1762     l_Price_LLine_rec.pricing_attribute14 := p_pricing_attribute14;
1763     l_Price_LLine_rec.pricing_attribute15 := p_pricing_attribute15;
1764     l_Price_LLine_rec.pricing_attribute2 := p_pricing_attribute2;
1765     l_Price_LLine_rec.pricing_attribute3 := p_pricing_attribute3;
1766     l_Price_LLine_rec.pricing_attribute4 := p_pricing_attribute4;
1767     l_Price_LLine_rec.pricing_attribute5 := p_pricing_attribute5;
1768     l_Price_LLine_rec.pricing_attribute6 := p_pricing_attribute6;
1769     l_Price_LLine_rec.pricing_attribute7 := p_pricing_attribute7;
1770     l_Price_LLine_rec.pricing_attribute8 := p_pricing_attribute8;
1771     l_Price_LLine_rec.pricing_attribute9 := p_pricing_attribute9;
1772     l_Price_LLine_rec.pricing_context := p_pricing_context;
1773     l_Price_LLine_rec.pricing_rule_id := p_pricing_rule_id;
1774     l_Price_LLine_rec.program_application_id := p_program_application_id;
1775     l_Price_LLine_rec.program_id   := p_program_id;
1776     l_Price_LLine_rec.program_update_date := p_program_update_date;
1777     l_Price_LLine_rec.reprice_flag := p_reprice_flag;
1778     l_Price_LLine_rec.request_id   := p_request_id;
1779     l_Price_LLine_rec.revision     := p_revision;
1780     l_Price_LLine_rec.revision_date := p_revision_date;
1781     l_Price_LLine_rec.revision_reason_code := p_revision_reason_code;
1782     l_Price_LLine_rec.start_date_active := p_start_date_active;
1783     l_Price_LLine_rec.unit_code    := p_unit_code;
1784     l_Price_LLine_rec.primary      := p_primary;
1785     l_Price_LLine_rec.list_line_type_code      := p_list_line_type_code;
1786 
1787 
1788     --  Populate Price_LLine table
1789 
1790     l_Price_LLine_tbl(1) := l_Price_LLine_rec;
1791 
1792      oe_debug_pub.add('price list id 2 is : ' || to_char(l_Price_LLine_tbl(1).price_list_id));
1793 
1794     --  Call OE_Pricing_Cont_PVT.Lock_Pricing_Cont
1795 
1796     OE_Pricing_Cont_PVT.Lock_Pricing_Cont
1797     (   p_api_version_number          => 1.0
1798     ,   p_init_msg_list               => FND_API.G_TRUE
1799     ,   x_return_status               => l_return_status
1800     ,   x_msg_count                   => x_msg_count
1801     ,   x_msg_data                    => x_msg_data
1802     ,   p_Price_LLine_tbl             => l_Price_LLine_tbl
1803     ,   x_Contract_rec                => l_x_Contract_rec
1804     ,   x_Agreement_rec               => l_x_Agreement_rec
1805     ,   x_Price_LHeader_rec           => l_x_Price_LHeader_rec
1806     ,   x_Discount_Header_rec         => l_x_Discount_Header_rec
1807     ,   x_Price_LLine_tbl             => l_x_Price_LLine_tbl
1808     ,   x_Discount_Cust_tbl           => l_x_Discount_Cust_tbl
1809     ,   x_Discount_Line_tbl           => l_x_Discount_Line_tbl
1810     ,   x_Price_Break_tbl             => l_x_Price_Break_tbl
1811     );
1812 
1813     oe_debug_pub.add('price list id 3 is : ' || to_char(p_price_list_id));
1814 
1815     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1816 
1817         --  Set DB flag and write record to cache.
1818 
1819         l_x_Price_LLine_rec.db_flag := FND_API.G_TRUE;
1820 
1821         Write_Price_LLine
1822         (   p_Price_LLine_rec             => l_x_Price_LLine_rec
1823         ,   p_db_record                   => TRUE
1824         );
1825 
1826     END IF;
1827 
1828     --  Set return status.
1829 
1830     x_return_status := l_return_status;
1831 
1832     --  Get message count and data
1833 
1834     OE_MSG_PUB.Count_And_Get
1835     (   p_count                       => x_msg_count
1836     ,   p_data                        => x_msg_data
1837     );
1838 
1839 
1840 EXCEPTION
1841 
1842     WHEN OTHERS THEN
1843 
1844         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1845         THEN
1846             OE_MSG_PUB.Add_Exc_Msg
1847             (   G_PKG_NAME
1848             ,   'Lock_Row'
1849             );
1850         END IF;
1851 
1852         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1853 
1854         --  Get message count and data
1855 
1856         OE_MSG_PUB.Count_And_Get
1857         (   p_count                       => x_msg_count
1858         ,   p_data                        => x_msg_data
1859         );
1860 
1861 
1862 
1863 END Lock_Row;
1864 
1865 --  Procedures maintaining Price_LLine record cache.
1866 
1867 PROCEDURE Write_Price_LLine
1868 (   p_Price_LLine_rec               IN  OE_Price_List_PUB.Price_List_Line_Rec_Type
1869 ,   p_db_record                     IN  BOOLEAN := FALSE
1870 )
1871 IS
1872 BEGIN
1873 
1874     g_Price_LLine_rec := p_Price_LLine_rec;
1875 
1876     IF p_db_record THEN
1877 
1878         g_db_Price_LLine_rec := p_Price_LLine_rec;
1879 
1880     END IF;
1881 
1882 END Write_Price_Lline;
1883 
1884 FUNCTION Get_Price_LLine
1885 (   p_db_record                     IN  BOOLEAN := FALSE
1886 ,   p_price_list_line_id            IN  NUMBER
1887 )
1888 RETURN OE_Price_List_PUB.Price_List_Line_Rec_Type
1889 IS
1890 BEGIN
1891 
1892     oe_debug_pub.add('global pline id is : ' || to_char(g_Price_LLine_rec.price_list_id));
1893 
1894     oe_debug_pub.add('plineid 2 is : ' || to_char(p_price_list_line_id));
1895 
1896     IF  p_price_list_line_id <> g_Price_LLine_rec.price_list_line_id
1897     THEN
1898 
1899         --  Query row from DB
1900 
1901         g_Price_LLine_rec := OE_Price_List_Line_Util.Query_Row
1902         (   p_price_list_line_id          => p_price_list_line_id
1903         ,   p_price_list_id          => g_Price_LLine_rec.price_list_id
1904         );
1905 
1906         g_Price_LLine_rec.db_flag      := FND_API.G_TRUE;
1907 
1908         --  Load DB record
1909 
1910         g_db_Price_LLine_rec           := g_Price_LLine_rec;
1911 
1912     END IF;
1913 
1914     IF p_db_record THEN
1915 
1916         RETURN g_db_Price_LLine_rec;
1917 
1918     ELSE
1919 
1920         RETURN g_Price_LLine_rec;
1921 
1922     END IF;
1923 
1924 END Get_Price_Lline;
1925 
1926 PROCEDURE Clear_Price_Lline
1927 IS
1928 BEGIN
1929 
1930     g_Price_LLine_rec              := OE_Price_List_PUB.G_MISS_PRICE_List_Line_REC;
1931     g_db_Price_LLine_rec           := OE_Price_List_PUB.G_MISS_PRICE_List_Line_REC;
1932 
1933 END Clear_Price_Lline;
1934 
1935 END OE_OE_Form_Price_Lline;