DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_OE_FORM_HEADER_ADJ

Source


1 PACKAGE BODY OE_OE_Form_Header_Adj AS
2 /* $Header: OEXFHADB.pls 120.1 2006/07/25 11:43:52 ppnair noship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_OE_Form_Header_Adj';
7 
8 --  Global variables holding cached record.
9 
10 g_Header_Adj_rec      OE_Order_PUB.Header_Adj_Rec_Type
11 					:= OE_ORDER_PUB.G_MISS_HEADER_ADJ_REC;
12 g_db_Header_Adj_rec   OE_Order_PUB.Header_Adj_Rec_Type
13 					:= OE_ORDER_PUB.G_MISS_HEADER_ADJ_REC;
14 
15 --  Forward declaration of procedures maintaining entity record cache.
16 
17 PROCEDURE Write_Header_Adj
18 (   p_Header_Adj_rec                IN  OE_Order_PUB.Header_Adj_Rec_Type
19 ,   p_db_record                     IN  BOOLEAN := FALSE
20 );
21 
22 PROCEDURE Get_Header_Adj
23 (   p_db_record               IN  BOOLEAN := FALSE
24 ,   p_price_adjustment_id     IN  NUMBER
25 ,   x_Header_Adj_Rec		IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
26 );
27 
28 PROCEDURE Clear_Header_Adj;
29 
30 --  Global variable holding performed operations.
31 
32 g_opr__tbl                    OE_Order_PUB.Header_Adj_Tbl_Type;
33 
34 --  Procedure : Default_Attributes
35 --
36 
37 
38 PROCEDURE Default_Attributes
39 ( x_return_status OUT NOCOPY VARCHAR2
40 
41 , x_msg_count OUT NOCOPY NUMBER
42 
43 , x_msg_data OUT NOCOPY VARCHAR2
44 
45 ,   p_header_id                     IN  NUMBER
46 ,   p_line_id			    IN  NUMBER
47 , x_price_adjustment_id OUT NOCOPY NUMBER
48 
49 , x_header_id OUT NOCOPY NUMBER
50 
51 , x_discount_id OUT NOCOPY NUMBER
52 
53 , x_discount_line_id OUT NOCOPY NUMBER
54 
55 , x_automatic_flag OUT NOCOPY VARCHAR2
56 
57 , x_percent OUT NOCOPY NUMBER
58 
59 , x_line_id OUT NOCOPY NUMBER
60 
61 , x_context OUT NOCOPY VARCHAR2
62 
63 , x_attribute1 OUT NOCOPY VARCHAR2
64 
65 , x_attribute2 OUT NOCOPY VARCHAR2
66 
67 , x_attribute3 OUT NOCOPY VARCHAR2
68 
69 , x_attribute4 OUT NOCOPY VARCHAR2
70 
71 , x_attribute5 OUT NOCOPY VARCHAR2
72 
73 , x_attribute6 OUT NOCOPY VARCHAR2
74 
75 , x_attribute7 OUT NOCOPY VARCHAR2
76 
77 , x_attribute8 OUT NOCOPY VARCHAR2
78 
79 , x_attribute9 OUT NOCOPY VARCHAR2
80 
81 , x_attribute10 OUT NOCOPY VARCHAR2
82 
83 , x_attribute11 OUT NOCOPY VARCHAR2
84 
85 , x_attribute12 OUT NOCOPY VARCHAR2
86 
87 , x_attribute13 OUT NOCOPY VARCHAR2
88 
89 , x_attribute14 OUT NOCOPY VARCHAR2
90 
91 , x_attribute15 OUT NOCOPY VARCHAR2
92 
93 , x_discount OUT NOCOPY VARCHAR2
94 
95 , x_list_header_id OUT NOCOPY NUMBER
96 
97 , x_list_line_id OUT NOCOPY NUMBER
98 
99 , x_list_line_type_code OUT NOCOPY VARCHAR2
100 
101 , x_modifier_mechanism_type_code OUT NOCOPY VARCHAR2
102 
103 , x_updated_flag OUT NOCOPY VARCHAR2
104 
105 , x_update_allowed OUT NOCOPY VARCHAR2
106 
107 , x_applied_flag OUT NOCOPY VARCHAR2
108 
109 , x_change_reason_code OUT NOCOPY VARCHAR2
110 
111 , x_change_reason_text OUT NOCOPY VARCHAR2
112 
113 , x_modified_from OUT NOCOPY VARCHAR2
114 
115 , x_modified_to OUT NOCOPY VARCHAR2
116 
117 , x_operand OUT NOCOPY NUMBER
118 
119 , x_arithmetic_operator OUT NOCOPY varchar2
120 
121 , x_adjusted_amount OUT NOCOPY NUMBER
122 
123 , x_pricing_phase_id OUT NOCOPY NUMBER
124 
125 , x_list_line_no OUT NOCOPY varchar2
126 
127 , x_source_system_code OUT NOCOPY varchar2
128 
129 , x_benefit_qty OUT NOCOPY NUMBER
130 
131 , x_benefit_uom_code OUT NOCOPY varchar2
132 
133 , x_print_on_invoice_flag OUT NOCOPY varchar2
134 
135 , x_expiration_date OUT NOCOPY DATE
136 
137 , x_rebate_transaction_type_code OUT NOCOPY varchar2
138 
139 , x_rebate_transaction_reference OUT NOCOPY varchar2
140 
141 , x_rebate_payment_system_code OUT NOCOPY varchar2
142 
143 , x_redeemed_date OUT NOCOPY DATE
144 
145 , x_redeemed_flag OUT NOCOPY varchar2
146 
147 , x_accrual_flag OUT NOCOPY varchar2
148 
149 , x_invoiced_flag OUT NOCOPY varchar2
150 
151 , x_estimated_flag OUT NOCOPY varchar2
152 
153 , x_credit_or_charge_flag OUT NOCOPY varchar2
154 
155 , x_include_on_returns_flag OUT NOCOPY varchar2
156 
157 , x_charge_type_code OUT NOCOPY varchar2
158 
159 , x_charge_subtype_code OUT NOCOPY varchar2
160 
161 , x_ac_context OUT NOCOPY VARCHAR2
162 
163 , x_ac_attribute1 OUT NOCOPY VARCHAR2
164 
165 , x_ac_attribute2 OUT NOCOPY VARCHAR2
166 
167 , x_ac_attribute3 OUT NOCOPY VARCHAR2
168 
169 , x_ac_attribute4 OUT NOCOPY VARCHAR2
170 
171 , x_ac_attribute5 OUT NOCOPY VARCHAR2
172 
173 , x_ac_attribute6 OUT NOCOPY VARCHAR2
174 
175 , x_ac_attribute7 OUT NOCOPY VARCHAR2
176 
177 , x_ac_attribute8 OUT NOCOPY VARCHAR2
178 
179 , x_ac_attribute9 OUT NOCOPY VARCHAR2
180 
181 , x_ac_attribute10 OUT NOCOPY VARCHAR2
182 
183 , x_ac_attribute11 OUT NOCOPY VARCHAR2
184 
185 , x_ac_attribute12 OUT NOCOPY VARCHAR2
186 
187 , x_ac_attribute13 OUT NOCOPY VARCHAR2
188 
189 , x_ac_attribute14 OUT NOCOPY VARCHAR2
190 
191 , x_ac_attribute15 OUT NOCOPY VARCHAR2
192 
193 --uom begin
194 , x_operand_per_pqty OUT NOCOPY NUMBER
195 
196 , x_adjusted_amount_per_pqty OUT NOCOPY NUMBER
197 
198 --uom end
199 )
200 IS
201 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type;
202 l_Header_Adj_tbl              OE_Order_PUB.Header_Adj_Tbl_Type;
203 l_Header_Adj_val_rec          OE_Order_Pub.Header_Adj_Val_Rec_Type;
204 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
205 l_return_status               VARCHAR2(1);
206 l_action_request_tbl		OE_Order_PUB.Request_Tbl_Type;
207 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
208 l_x_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
209 l_x_old_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
210 l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
211 l_x_old_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
212 l_x_Header_Scredit_rec        OE_Order_PUB.Header_Scredit_Rec_Type;
213 l_x_Header_Scredit_tbl        OE_Order_PUB.Header_Scredit_Tbl_Type;
214 l_x_line_rec                  OE_Order_PUB.Line_Rec_Type;
215 l_x_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
216 l_x_Line_Adj_rec              OE_Order_PUB.Line_Adj_Rec_Type;
217 l_x_Line_Adj_tbl              OE_Order_PUB.Line_Adj_Tbl_Type;
218 l_x_Line_Scredit_rec          OE_Order_PUB.Line_Scredit_Rec_Type;
219 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
220 l_x_Lot_Serial_rec            OE_Order_PUB.Lot_Serial_Rec_Type;
221 l_x_Lot_Serial_tbl            OE_Order_PUB.Lot_Serial_Tbl_Type;
222 
223 
224 --New out parameters
225 l_x_Header_price_Att_tbl      OE_Order_PUB.Header_Price_Att_Tbl_Type;
226 l_x_Header_Adj_Att_tbl        OE_Order_PUB.Header_Adj_Att_Tbl_Type;
227 l_x_Header_Adj_Assoc_tbl      OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
228 
229 l_x_Line_price_Att_tbl        OE_Order_PUB.Line_Price_Att_Tbl_Type ;
230 l_x_Line_Adj_Att_tbl          OE_Order_PUB.Line_Adj_Att_Tbl_Type ;
231 l_x_Line_Adj_Assoc_tbl        OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
232 
233 --
234 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
235 --
236 BEGIN
237 
238 
239     -- Set the UI flag
240     OE_GLOBALS.G_UI_FLAG := TRUE;
241 
242     --  Set control flags.
243     l_control_rec.controlled_operation := TRUE;
244     l_control_rec.check_security       := TRUE;
245     l_control_rec.default_attributes   := TRUE;
246     l_control_rec.change_attributes    := TRUE;
247 
248     l_control_rec.clear_dependents     := FALSE;
249     l_control_rec.validate_entity      := FALSE;
250     l_control_rec.write_to_DB          := FALSE;
251     l_control_rec.process              := FALSE;
252 
253     --  Instruct API to retain its caches
254     l_control_rec.clear_api_cache      := FALSE;
255     l_control_rec.clear_api_requests   := FALSE;
256 
257 
258     l_x_old_header_adj_rec := OE_ORDER_PUB.G_MISS_HEADER_ADJ_REC;
259     l_x_header_adj_rec := OE_ORDER_PUB.G_MISS_HEADER_ADJ_REC;
260 
261     --  Load IN parameters if any exist
262     l_x_Header_adj_rec.header_id	:= p_header_id;
263     l_x_Header_adj_rec.line_id		:= p_line_id;
264 
265 
266     --  Defaulting of flex values is currently done by the form.
267     --  Set flex attributes to NULL in order to avoid defaulting them.
268     l_x_Header_Adj_rec.context                      := NULL;
269     l_x_Header_Adj_rec.attribute1                   := NULL;
270     l_x_Header_Adj_rec.attribute2                   := NULL;
271     l_x_Header_Adj_rec.attribute3                   := NULL;
272     l_x_Header_Adj_rec.attribute4                   := NULL;
273     l_x_Header_Adj_rec.attribute5                   := NULL;
274     l_x_Header_Adj_rec.attribute6                   := NULL;
275     l_x_Header_Adj_rec.attribute7                   := NULL;
276     l_x_Header_Adj_rec.attribute8                   := NULL;
277     l_x_Header_Adj_rec.attribute9                   := NULL;
278     l_x_Header_Adj_rec.attribute10                  := NULL;
279     l_x_Header_Adj_rec.attribute11                  := NULL;
280     l_x_Header_Adj_rec.attribute12                  := NULL;
281     l_x_Header_Adj_rec.attribute13                  := NULL;
282     l_x_Header_Adj_rec.attribute14                  := NULL;
283     l_x_Header_Adj_rec.attribute15                  := NULL;
284     l_x_Header_Adj_rec.ac_context                   := NULL;
285     l_x_Header_Adj_rec.ac_attribute1                := NULL;
286     l_x_Header_Adj_rec.ac_attribute2                := NULL;
287     l_x_Header_Adj_rec.ac_attribute3                := NULL;
288     l_x_Header_Adj_rec.ac_attribute4                := NULL;
289     l_x_Header_Adj_rec.ac_attribute5                := NULL;
290     l_x_Header_Adj_rec.ac_attribute6                := NULL;
291     l_x_Header_Adj_rec.ac_attribute7                := NULL;
292     l_x_Header_Adj_rec.ac_attribute8                := NULL;
293     l_x_Header_Adj_rec.ac_attribute9                := NULL;
294     l_x_Header_Adj_rec.ac_attribute10               := NULL;
295     l_x_Header_Adj_rec.ac_attribute11               := NULL;
296     l_x_Header_Adj_rec.ac_attribute12               := NULL;
297     l_x_Header_Adj_rec.ac_attribute13               := NULL;
298     l_x_Header_Adj_rec.ac_attribute14               := NULL;
299     l_x_Header_Adj_rec.ac_attribute15               := NULL;
300     /*
301     l_Header_Adj_rec.list_header_id	:=null;
302    l_Header_Adj_rec.list_line_id	:=NULL;
303    l_Header_Adj_rec.list_line_type_code	:=NULL;
304    l_Header_Adj_rec.modifier_mechanism_type_code	:=NULL;
305    l_Header_Adj_rec.updated_flag	:=NULL;
306    l_Header_Adj_rec.update_allowed	:=NULL;
307    l_Header_Adj_rec.applied_flag	:=NULL;
308    l_Header_Adj_rec.change_reason_code	:=NULL;
309    l_Header_Adj_rec.change_reason_text	:=NULL;
310    l_Header_Adj_rec.modified_from	:=NULL;
311    l_Header_Adj_rec.modified_to	:=NULL;
312    l_Header_Adj_rec.operand	:=NULL;
313    l_Header_Adj_rec.arithmetic_operator	:=NULL;
314   */
315 
316     --  Set Operation to Create
317     l_x_Header_Adj_rec.operation := OE_GLOBALS.G_OPR_CREATE;
318 
319     --  Populate Header_Adj table
320     l_x_Header_Adj_tbl(1) := l_x_Header_Adj_rec;
321     l_x_old_Header_Adj_tbl(1) := l_x_old_Header_Adj_rec;
322 
323     -- Call Oe_Order_Adj_Pvt.Header_Adj
324     oe_order_adj_pvt.Header_Adjs
325     (	p_init_msg_list	=> FND_API.G_TRUE
326     ,	p_validation_level 	=> FND_API.G_VALID_LEVEL_FULL
327     ,	p_control_rec		=> l_control_rec
328     ,	p_x_header_adj_tbl	=> l_x_Header_Adj_tbl
329     ,	p_x_old_header_adj_tbl	=> l_x_old_Header_Adj_tbl
330     );
331 
332    /*********************************************************************
333 ** commented out nocopy for performance changes **
334 
335 
336     --  Call OE_Order_PVT.Process_order
337     OE_Order_PVT.Process_order
338     (   p_api_version_number          => 1.0
339     ,   p_init_msg_list               => FND_API.G_TRUE
340     ,   x_return_status               => l_return_status
341     ,   x_msg_count                   => x_msg_count
342     ,   x_msg_data                    => x_msg_data
343     ,   p_control_rec                 => l_control_rec
344     ,   p_Header_Adj_tbl              => l_Header_Adj_tbl
345     ,   x_header_rec                  => l_x_header_rec
346     ,   x_Header_Adj_tbl              => l_x_Header_Adj_tbl
347 -- New Parameters
348     ,   x_Header_price_Att_tbl         => l_x_Header_price_Att_tbl
349     ,   x_Header_Adj_Att_tbl           => l_x_Header_Adj_Att_tbl
350     ,   x_Header_Adj_Assoc_tbl         => l_x_Header_Adj_Assoc_tbl
351 
352     ,   x_Header_Scredit_tbl          => l_x_Header_Scredit_tbl
353     ,   x_line_tbl                    => l_x_line_tbl
354     ,   x_Line_Adj_tbl                => l_x_Line_Adj_tbl
355 
356 -- New Parameters
357     ,   x_Line_price_Att_tbl          => l_x_Line_price_Att_tbl
358     ,   x_Line_Adj_Att_tbl            => l_x_Line_Adj_Att_tbl
359     ,   x_Line_Adj_Assoc_tbl          => l_x_Line_Adj_Assoc_tbl
360 
361     ,   x_Line_Scredit_tbl            => l_x_Line_Scredit_tbl
362     ,   x_Lot_Serial_tbl              => l_x_Lot_Serial_tbl
363     ,	x_action_request_tbl	      => l_action_request_tbl
364     );
365 
366     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
367         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
368     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
369         RAISE FND_API.G_EXC_ERROR;
370     END IF;
371     ******************************************************************/
372 
373     --  Unload out tbl
374     l_x_Header_Adj_rec := l_x_Header_Adj_tbl(1);
375 
376     IF l_x_header_adj_rec.return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
377         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
378     ELSIF l_x_header_adj_rec.return_status = FND_API.G_RET_STS_ERROR THEN
379         RAISE FND_API.G_EXC_ERROR;
380     END IF;
381 
382     --  Load OUT parameters.
383     x_price_adjustment_id          := l_x_Header_Adj_rec.price_adjustment_id;
384     x_header_id                    := l_x_Header_Adj_rec.header_id;
385     x_discount_id                  := l_x_Header_Adj_rec.discount_id;
386     x_discount_line_id             := l_x_Header_Adj_rec.discount_line_id;
387     x_automatic_flag               := l_x_Header_Adj_rec.automatic_flag;
388     x_percent                      := l_x_Header_Adj_rec.percent;
389     x_line_id                      := l_x_Header_Adj_rec.line_id;
390     x_context                      := l_x_Header_Adj_rec.context;
391     x_attribute1                   := l_x_Header_Adj_rec.attribute1;
392     x_attribute2                   := l_x_Header_Adj_rec.attribute2;
393     x_attribute3                   := l_x_Header_Adj_rec.attribute3;
394     x_attribute4                   := l_x_Header_Adj_rec.attribute4;
395     x_attribute5                   := l_x_Header_Adj_rec.attribute5;
396     x_attribute6                   := l_x_Header_Adj_rec.attribute6;
397     x_attribute7                   := l_x_Header_Adj_rec.attribute7;
398     x_attribute8                   := l_x_Header_Adj_rec.attribute8;
399     x_attribute9                   := l_x_Header_Adj_rec.attribute9;
400     x_attribute10                  := l_x_Header_Adj_rec.attribute10;
401     x_attribute11                  := l_x_Header_Adj_rec.attribute11;
402     x_attribute12                  := l_x_Header_Adj_rec.attribute12;
403     x_attribute13                  := l_x_Header_Adj_rec.attribute13;
404     x_attribute14                  := l_x_Header_Adj_rec.attribute14;
405     x_attribute15                  := l_x_Header_Adj_rec.attribute15;
406     x_ac_context                   := l_x_Header_Adj_rec.ac_context;
407     x_ac_attribute1                := l_x_Header_Adj_rec.ac_attribute1;
408     x_ac_attribute2                := l_x_Header_Adj_rec.ac_attribute2;
409     x_ac_attribute3                := l_x_Header_Adj_rec.ac_attribute3;
410     x_ac_attribute4                := l_x_Header_Adj_rec.ac_attribute4;
411     x_ac_attribute5                := l_x_Header_Adj_rec.ac_attribute5;
412     x_ac_attribute6                := l_x_Header_Adj_rec.ac_attribute6;
413     x_ac_attribute7                := l_x_Header_Adj_rec.ac_attribute7;
414     x_ac_attribute8                := l_x_Header_Adj_rec.ac_attribute8;
415     x_ac_attribute9                := l_x_Header_Adj_rec.ac_attribute9;
416     x_ac_attribute10               := l_x_Header_Adj_rec.ac_attribute10;
417     x_ac_attribute11               := l_x_Header_Adj_rec.ac_attribute11;
418     x_ac_attribute12               := l_x_Header_Adj_rec.ac_attribute12;
419     x_ac_attribute13               := l_x_Header_Adj_rec.ac_attribute13;
420     x_ac_attribute14               := l_x_Header_Adj_rec.ac_attribute14;
421     x_ac_attribute15               := l_x_Header_Adj_rec.ac_attribute15;
422     x_list_header_id 		     := l_x_Header_Adj_rec.list_header_id;
423     x_list_line_id			     := l_x_Header_Adj_rec.list_line_id;
424     x_list_line_type_code 		:= l_x_Header_Adj_rec.list_line_type_code;
425     x_modifier_mechanism_type_code	:= l_x_Header_Adj_rec.modifier_mechanism_type_code;
426     x_updated_flag		     := l_x_Header_Adj_rec.updated_flag;
427     x_update_allowed	     := l_x_Header_Adj_rec.update_allowed;
428     x_applied_flag			:= l_x_Header_Adj_rec.applied_flag;
429     x_change_reason_code 	:= l_x_Header_Adj_rec.change_reason_code;
430     x_change_reason_text     	:= l_x_Header_Adj_rec.change_reason_text;
431     x_modified_from		     := l_x_Header_Adj_rec.modified_from;
432     x_modified_to		     := l_x_Header_Adj_rec.modified_to;
433     x_operand			     := l_x_Header_Adj_rec.operand;
434     x_arithmetic_operator	:= l_x_Header_Adj_rec.arithmetic_operator;
435 
436     x_adjusted_amount		:= l_x_Header_Adj_rec.adjusted_amount;
437     x_pricing_phase_id		:= l_x_Header_Adj_rec.pricing_phase_id;
438     x_list_line_no           := l_x_Header_Adj_rec.list_line_no;
439     x_source_system_code     := l_x_Header_Adj_rec.source_system_code;
440     x_benefit_qty            := l_x_Header_Adj_rec.benefit_qty;
441     x_benefit_uom_code       := l_x_Header_Adj_rec.benefit_uom_code;
442     x_print_on_invoice_flag  := l_x_Header_Adj_rec.print_on_invoice_flag;
443     x_expiration_date        := l_x_Header_Adj_rec.expiration_date;
444     x_rebate_transaction_type_code  := l_x_Header_Adj_rec.rebate_transaction_type_code;
445     x_rebate_transaction_reference  := l_x_Header_Adj_rec.rebate_transaction_reference;
446     x_rebate_payment_system_code    := l_x_Header_Adj_rec.rebate_payment_system_code;
447     x_redeemed_date          := l_x_Header_Adj_rec.redeemed_date;
448     x_redeemed_flag          := l_x_Header_Adj_rec.redeemed_flag;
449     x_accrual_flag           := l_x_Header_Adj_rec.accrual_flag;
450     x_estimated_flag         := l_x_Header_Adj_rec.estimated_flag;
451     x_invoiced_flag          := l_x_Header_Adj_rec.invoiced_flag;
452     x_charge_type_code       := l_x_Header_Adj_rec.charge_type_code;
453     x_charge_subtype_code    := l_x_Header_Adj_rec.charge_subtype_code;
454     x_credit_or_charge_flag  := l_x_Header_Adj_rec.credit_or_charge_flag;
455     x_include_on_returns_flag := l_x_Header_Adj_rec.include_on_returns_flag;
456     --uom begin
457 	 x_operand_per_pqty        := l_x_Header_Adj_rec.operand_per_pqty;
458       x_adjusted_amount_per_pqty := l_x_Header_Adj_rec.adjusted_amount_per_pqty;
459     --uom end
460         --  Load display out parameters if any
461 
462     l_Header_Adj_val_rec := OE_Header_Adj_Util.Get_Values
463     (   p_Header_Adj_rec              => l_x_Header_Adj_rec
464     );
465     x_discount                     := l_Header_Adj_val_rec.discount;
466 
467     --  Write to cache.
468     --  Set db_flag to False before writing to cache
469     l_x_Header_Adj_rec.db_flag := FND_API.G_FALSE;
470 
471     Write_Header_Adj
472     (   p_Header_Adj_rec              => l_x_Header_Adj_rec
473     );
474 
475 
476     -- Re-set the UI flag to FALSE
477     OE_GLOBALS.G_UI_FLAG := FALSE;
478 
479     --  Set return status.
480     x_return_status := FND_API.G_RET_STS_SUCCESS;
481 
482 
483     --  Get message count and data
484     OE_MSG_PUB.Count_And_Get
485     (   p_count                       => x_msg_count
486     ,   p_data                        => x_msg_data
487     );
488 
489 
490 EXCEPTION
491 
492     WHEN FND_API.G_EXC_ERROR THEN
493 
494 	   OE_GLOBALS.G_UI_FLAG := FALSE;
495 
496         x_return_status := FND_API.G_RET_STS_ERROR;
497 
498         --  Get message count and data
499 
500         OE_MSG_PUB.Count_And_Get
501         (   p_count                       => x_msg_count
502         ,   p_data                        => x_msg_data
503         );
504 
505     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
506 
507 	   OE_GLOBALS.G_UI_FLAG := FALSE;
508 
509         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
510 
511         --  Get message count and data
512 
513         OE_MSG_PUB.Count_And_Get
514         (   p_count                       => x_msg_count
515         ,   p_data                        => x_msg_data
516         );
517 
518     WHEN OTHERS THEN
519 
520 	   OE_GLOBALS.G_UI_FLAG := FALSE;
521 
522         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
523 
524         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
525         THEN
526             OE_MSG_PUB.Add_Exc_Msg
527             (   G_PKG_NAME
528             ,   'Default_Attributes'
529             );
530         END IF;
531 
532         --  Get message count and data
533 
534         OE_MSG_PUB.Count_And_Get
535         (   p_count                       => x_msg_count
536         ,   p_data                        => x_msg_data
537         );
538 
539 END Default_Attributes;
540 
541 --  Procedure   :   Change_Attribute
542 --
543 
544 PROCEDURE Change_Attributes
545 ( x_return_status OUT NOCOPY VARCHAR2
546 
547 , x_msg_count OUT NOCOPY NUMBER
548 
549 , x_msg_data OUT NOCOPY VARCHAR2
550 
551 ,   p_price_adjustment_id           IN  NUMBER
552 ,   p_attr_id                       IN  NUMBER
553 ,   p_attr_value1                   IN  VARCHAR2
554 ,   p_attr_value2                   IN  VARCHAR2 DEFAULT FND_API.G_MISS_CHAR
555 ,   p_context                       IN  VARCHAR2
556 ,   p_attribute1                    IN  VARCHAR2
557 ,   p_attribute2                    IN  VARCHAR2
558 ,   p_attribute3                    IN  VARCHAR2
559 ,   p_attribute4                    IN  VARCHAR2
560 ,   p_attribute5                    IN  VARCHAR2
561 ,   p_attribute6                    IN  VARCHAR2
562 ,   p_attribute7                    IN  VARCHAR2
563 ,   p_attribute8                    IN  VARCHAR2
564 ,   p_attribute9                    IN  VARCHAR2
565 ,   p_attribute10                   IN  VARCHAR2
566 ,   p_attribute11                   IN  VARCHAR2
567 ,   p_attribute12                   IN  VARCHAR2
568 ,   p_attribute13                   IN  VARCHAR2
569 ,   p_attribute14                   IN  VARCHAR2
570 ,   p_attribute15                   IN  VARCHAR2
571 ,   p_ac_context                    IN  VARCHAR2
572 ,   p_ac_attribute1                 IN  VARCHAR2
573 ,   p_ac_attribute2                 IN  VARCHAR2
574 ,   p_ac_attribute3                 IN  VARCHAR2
575 ,   p_ac_attribute4                 IN  VARCHAR2
576 ,   p_ac_attribute5                 IN  VARCHAR2
577 ,   p_ac_attribute6                 IN  VARCHAR2
578 ,   p_ac_attribute7                 IN  VARCHAR2
579 ,   p_ac_attribute8                 IN  VARCHAR2
580 ,   p_ac_attribute9                 IN  VARCHAR2
581 ,   p_ac_attribute10                IN  VARCHAR2
582 ,   p_ac_attribute11                IN  VARCHAR2
583 ,   p_ac_attribute12                IN  VARCHAR2
584 ,   p_ac_attribute13                IN  VARCHAR2
585 ,   p_ac_attribute14                IN  VARCHAR2
586 ,   p_ac_attribute15                IN  VARCHAR2
587 , x_price_adjustment_id OUT NOCOPY NUMBER
588 
589 , x_header_id OUT NOCOPY NUMBER
590 
591 , x_discount_id OUT NOCOPY NUMBER
592 
593 , x_discount_line_id OUT NOCOPY NUMBER
594 
595 , x_automatic_flag OUT NOCOPY VARCHAR2
596 
597 , x_percent OUT NOCOPY NUMBER
598 
599 , x_line_id OUT NOCOPY NUMBER
600 
601 , x_context OUT NOCOPY VARCHAR2
602 
603 , x_attribute1 OUT NOCOPY VARCHAR2
604 
605 , x_attribute2 OUT NOCOPY VARCHAR2
606 
607 , x_attribute3 OUT NOCOPY VARCHAR2
608 
609 , x_attribute4 OUT NOCOPY VARCHAR2
610 
611 , x_attribute5 OUT NOCOPY VARCHAR2
612 
613 , x_attribute6 OUT NOCOPY VARCHAR2
614 
615 , x_attribute7 OUT NOCOPY VARCHAR2
616 
617 , x_attribute8 OUT NOCOPY VARCHAR2
618 
619 , x_attribute9 OUT NOCOPY VARCHAR2
620 
621 , x_attribute10 OUT NOCOPY VARCHAR2
622 
623 , x_attribute11 OUT NOCOPY VARCHAR2
624 
625 , x_attribute12 OUT NOCOPY VARCHAR2
626 
627 , x_attribute13 OUT NOCOPY VARCHAR2
628 
629 , x_attribute14 OUT NOCOPY VARCHAR2
630 
631 , x_attribute15 OUT NOCOPY VARCHAR2
632 
633 , x_ac_context OUT NOCOPY VARCHAR2
634 
635 , x_ac_attribute1 OUT NOCOPY VARCHAR2
636 
637 , x_ac_attribute2 OUT NOCOPY VARCHAR2
638 
639 , x_ac_attribute3 OUT NOCOPY VARCHAR2
640 
641 , x_ac_attribute4 OUT NOCOPY VARCHAR2
642 
643 , x_ac_attribute5 OUT NOCOPY VARCHAR2
644 
645 , x_ac_attribute6 OUT NOCOPY VARCHAR2
646 
647 , x_ac_attribute7 OUT NOCOPY VARCHAR2
648 
649 , x_ac_attribute8 OUT NOCOPY VARCHAR2
650 
651 , x_ac_attribute9 OUT NOCOPY VARCHAR2
652 
653 , x_ac_attribute10 OUT NOCOPY VARCHAR2
654 
655 , x_ac_attribute11 OUT NOCOPY VARCHAR2
656 
657 , x_ac_attribute12 OUT NOCOPY VARCHAR2
658 
659 , x_ac_attribute13 OUT NOCOPY VARCHAR2
660 
661 , x_ac_attribute14 OUT NOCOPY VARCHAR2
662 
663 , x_ac_attribute15 OUT NOCOPY VARCHAR2
664 
665 , x_discount OUT NOCOPY VARCHAR2
666 
667 ,   p_enforce_fixed_price	    IN  VARCHAR2
668 
669 -- New code added
670 , x_list_header_id OUT NOCOPY NUMBER
671 
672 , x_list_line_id OUT NOCOPY NUMBER
673 
674 , x_list_line_type_code OUT NOCOPY VARCHAR2
675 
676 , x_modifier_mechanism_type_code OUT NOCOPY VARCHAR2
677 
678 , x_updated_flag OUT NOCOPY VARCHAR2
679 
680 , x_update_allowed OUT NOCOPY VARCHAR2
681 
682 , x_applied_flag OUT NOCOPY VARCHAR2
683 
684 , x_change_reason_code OUT NOCOPY VARCHAR2
685 
686 , x_change_reason_text OUT NOCOPY VARCHAR2
687 
688 , x_modified_from OUT NOCOPY VARCHAR2
689 
690 , x_modified_to OUT NOCOPY VARCHAR2
691 
692 , x_operand OUT NOCOPY NUMBER
693 
694 , x_arithmetic_operator OUT NOCOPY varchar2
695 
696 
697 , x_adjusted_amount OUT NOCOPY NUMBER
698 
699 , x_pricing_phase_id OUT NOCOPY NUMBER
700 
701 , x_list_line_no OUT NOCOPY varchar2
702 
703 , x_source_system_code OUT NOCOPY varchar2
704 
705 , x_benefit_qty OUT NOCOPY NUMBER
706 
707 , x_benefit_uom_code OUT NOCOPY varchar2
708 
709 , x_print_on_invoice_flag OUT NOCOPY varchar2
710 
711 , x_expiration_date OUT NOCOPY DATE
712 
713 , x_rebate_transaction_type_code OUT NOCOPY varchar2
714 
715 , x_rebate_transaction_reference OUT NOCOPY varchar2
716 
717 , x_rebate_payment_system_code OUT NOCOPY varchar2
718 
719 , x_redeemed_date OUT NOCOPY DATE
720 
721 , x_redeemed_flag OUT NOCOPY varchar2
722 
723 , x_accrual_flag OUT NOCOPY varchar2
724 
725 , x_invoiced_flag OUT NOCOPY varchar2
726 
727 , x_estimated_flag OUT NOCOPY varchar2
728 
729 , x_credit_or_charge_flag OUT NOCOPY varchar2
730 
731 , x_include_on_returns_flag OUT NOCOPY varchar2
732 
733 , x_charge_type_code OUT NOCOPY varchar2
734 
735 , x_charge_subtype_code OUT NOCOPY varchar2
736 
737 --uom begin
738 , x_operand_per_pqty OUT NOCOPY number
739 
740 , x_adjusted_amount_per_pqty OUT NOCOPY number
741 
742 --uom end
743 )
744 IS
745 l_request_rec		      OE_Order_Pub.Request_Rec_Type;
746 l_request_tbl		      OE_Order_Pub.Request_Tbl_Type;
747 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type;
748 l_old_Header_Adj_rec          OE_Order_PUB.Header_Adj_Rec_Type;
749 l_x_old_Header_Adj_rec          OE_Order_PUB.Header_Adj_Rec_Type;
750 l_Header_Adj_tbl              OE_Order_PUB.Header_Adj_Tbl_Type;
751 l_old_Header_Adj_tbl          OE_Order_PUB.Header_Adj_Tbl_Type;
752 l_x_old_Header_Adj_tbl          OE_Order_PUB.Header_Adj_Tbl_Type;
753 l_Header_Adj_val_rec          OE_Order_PUB.Header_Adj_Val_Rec_Type;
754 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
755 l_return_status               VARCHAR2(1);
756 l_action_request_tbl		OE_Order_PUB.Request_Tbl_Type;
757 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
758 l_x_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
759 l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
760 l_x_Header_Scredit_rec        OE_Order_PUB.Header_Scredit_Rec_Type;
761 l_x_Header_Scredit_tbl        OE_Order_PUB.Header_Scredit_Tbl_Type;
762 l_x_line_rec                  OE_Order_PUB.Line_Rec_Type;
763 l_x_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
764 l_x_Line_Adj_rec              OE_Order_PUB.Line_Adj_Rec_Type;
765 l_x_Line_Adj_tbl              OE_Order_PUB.Line_Adj_Tbl_Type;
766 l_x_Line_Scredit_rec          OE_Order_PUB.Line_Scredit_Rec_Type;
767 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
768 l_x_Lot_Serial_rec            OE_Order_PUB.Lot_Serial_Rec_Type;
769 l_x_Lot_Serial_tbl            OE_Order_PUB.Lot_Serial_Tbl_Type;
770 
771 --New out parameters
772 l_x_Header_price_Att_tbl      OE_Order_PUB.Header_Price_Att_Tbl_Type;
773 l_x_Header_Adj_Att_tbl        OE_Order_PUB.Header_Adj_Att_Tbl_Type;
774 l_x_Header_Adj_Assoc_tbl      OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
775 
776 l_x_Line_price_Att_tbl        OE_Order_PUB.Line_Price_Att_Tbl_Type ;
777 l_x_Line_Adj_Att_tbl          OE_Order_PUB.Line_Adj_Att_Tbl_Type ;
778 l_x_Line_Adj_Assoc_tbl        OE_Order_PUB.Line_Adj_Assoc_Tbl_Type ;
779 l_date_format                 Varchar2(22) := 'DD-MON-YYYY HH24:MI:SS';
780 stmt NUMBER:=0;
781 --
782 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
783 --
784 BEGIN
785 
786     IF l_debug_level  > 0 THEN
787         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.CHANGE_ATTRIBUTES' , 1 ) ;
788     END IF;
789 
790     -- Set the UI flag
791     OE_GLOBALS.G_UI_FLAG := TRUE;
792 
793     --  Set control flags.
794     l_control_rec.controlled_operation := TRUE;
795     l_control_rec.check_security       := TRUE;
796     l_control_rec.clear_dependents     := TRUE;
797     l_control_rec.default_attributes   := TRUE;
798     l_control_rec.change_attributes    := TRUE;
799 
800     l_control_rec.validate_entity      := FALSE;
801     l_control_rec.write_to_DB          := FALSE;
802     l_control_rec.process              := FALSE;
803     l_control_rec.process_entity       := OE_GLOBALS.G_ENTITY_HEADER_ADJ;
804 
805 
806     --  Instruct API to retain its caches
807     l_control_rec.clear_api_cache      := FALSE;
808     l_control_rec.clear_api_requests   := FALSE;
809 
810 
811     -- Save point to rollback to if there were
812     -- any errors
813     SAVEPOINT change_attributes;
814 
815     --  Read Header_Adj from cache
816     Get_Header_Adj
817     (   p_db_record                   => FALSE
818     ,   p_price_adjustment_id         => p_price_adjustment_id
819     ,   x_Header_Adj_rec			   => l_x_Header_Adj_rec
820     );
821 
822 
823    l_x_old_Header_Adj_rec           := l_x_Header_Adj_rec;
824 
825 
826     IF p_attr_id = OE_Header_Adj_Util.G_PRICE_ADJUSTMENT THEN
827         l_x_Header_Adj_rec.price_adjustment_id := TO_NUMBER(p_attr_value1);
828     ELSIF p_attr_id = OE_Header_Adj_Util.G_HEADER THEN
829         l_x_Header_Adj_rec.header_id := TO_NUMBER(p_attr_value1);
830 
831     -- The following has been done because a discount can only
832     -- be uniquely identified with a discount_id and discount_line_id
833     --
834     -- The form will now be sending in both attribute_values
835     --
836     -- It ATTR_ID       is discount_id then
837     --    ATTR_VALUE1   is discount_id
838     --    ATTR_VALUE2   is discount_line_id
839     ELSIF p_attr_id = OE_Header_Adj_Util.G_DISCOUNT THEN
840         l_x_Header_Adj_rec.discount_id	  := TO_NUMBER(p_attr_value1);
841         l_x_Header_Adj_rec.discount_line_id := TO_NUMBER(p_attr_value2);
842 
843     -- It ATTR_ID       is discount_line_id then
844     --    ATTR_VALUE1   is discount_line_id
845     --    ATTR_VALUE2   is discount_id
846     ELSIF p_attr_id = OE_Header_Adj_Util.G_DISCOUNT_LINE THEN
847         l_x_Header_Adj_rec.discount_line_id := TO_NUMBER(p_attr_value1);
848         l_x_Header_Adj_rec.discount_id	  := TO_NUMBER(p_attr_value2);
849 
850 -- New code Added :: Column Changes
851     ELSIF p_attr_id = OE_Header_Adj_Util.G_LIST_HEADER_ID  then
852 		l_x_Header_Adj_rec.list_header_id := to_number(p_attr_value1) ;
853     ELSIF p_attr_id = OE_Header_Adj_Util.G_LIST_LINE_ID  then
854 		l_x_Header_Adj_rec.list_line_id := to_number(p_attr_value1) ;
855     ELSIF p_attr_id = OE_Header_Adj_Util.G_LIST_LINE_TYPE_CODE then
856 		l_x_Header_Adj_rec.list_line_type_code := p_attr_value1 ;
857     ELSIF p_attr_id = OE_Header_Adj_Util.G_MODIFIER_MECHANISM_TYPE_CODE then
858 		l_x_Header_Adj_rec.modifier_mechanism_type_code := p_attr_value1 ;
859     ELSIF p_attr_id = OE_Header_Adj_Util.G_MODIFIED_FROM  then
860 		l_x_Header_Adj_rec.modified_from := p_attr_value1;
861     ELSIF p_attr_id = OE_Header_Adj_Util.G_MODIFIED_TO  then
862 		l_x_Header_Adj_rec.modified_to := p_attr_value1;
863     ELSIF p_attr_id = OE_Header_Adj_Util.G_UPDATE_ALLOWED  then
864 		l_x_Header_Adj_rec.update_allowed := p_attr_value1 ;
865     ELSIF p_attr_id = OE_Header_Adj_Util.G_UPDATED_FLAG  then
866 		l_x_Header_Adj_rec.updated_flag := p_attr_value1 ;
867     ELSIF p_attr_id = OE_Header_Adj_Util.G_APPLIED_FLAG  then
868 		l_x_Header_Adj_rec.applied_flag := p_attr_value1 ;
869     ELSIF p_attr_id = OE_Header_Adj_Util.G_CHANGE_REASON_CODE then
870 		l_x_Header_Adj_rec.change_reason_code := p_attr_value1 ;
871     ELSIF p_attr_id = OE_Header_Adj_Util.G_CHANGE_REASON_TEXT  then
872 		l_x_Header_Adj_rec.change_reason_text := p_attr_value1 ;
873     ELSIF p_attr_id = OE_Header_Adj_Util.G_OPERAND  then
874 		l_x_Header_Adj_rec.operand := p_attr_value1 ;
875     ELSIF p_attr_id = OE_Header_Adj_Util.G_ARITHMETIC_OPERATOR  then
876 		l_x_Header_Adj_rec.arithmetic_operator := p_attr_value1 ;
877 
878     ELSIF p_attr_id = OE_Header_Adj_Util.G_ADJUSTED_AMOUNT  then
879 		l_x_Header_Adj_rec.adjusted_amount := p_attr_value1 ;
880     ELSIF p_attr_id = OE_Header_Adj_Util.G_PRICING_PHASE_ID  then
881 		l_x_Header_Adj_rec.pricing_phase_id := p_attr_value1 ;
882     ELSIF p_attr_id = OE_Header_Adj_Util.G_LIST_LINE_NO then
883 	  l_x_Header_Adj_rec.list_line_no := p_attr_value1 ;
884     ELSIF p_attr_id = OE_Header_Adj_Util.G_SOURCE_SYSTEM_CODE then
885           l_x_Header_Adj_rec.source_system_code := p_attr_value1;
886     ELSIF p_attr_id = OE_Header_Adj_Util.G_BENEFIT_QTY then
887           l_x_Header_Adj_rec.benefit_qty := TO_NUMBER(p_attr_value1);
888     ELSIF p_attr_id = OE_Header_Adj_Util.G_BENEFIT_UOM_CODE then
889           l_x_Header_Adj_rec.benefit_uom_code := p_attr_value1;
890     ELSIF p_attr_id = OE_Header_Adj_Util.G_PRINT_ON_INVOICE_FLAG then
891           l_x_Header_Adj_rec.print_on_invoice_flag := p_attr_value1;
892     ELSIF p_attr_id = OE_Header_Adj_Util.G_EXPIRATION_DATE then
893           --l_x_Header_Adj_rec.expiration_date := TO_DATE(p_attr_value1, l_date_format);
894 	  l_x_Header_Adj_rec.expiration_date := fnd_date.string_TO_DATE(p_attr_value1, l_date_format); --bug5402396
895     ELSIF p_attr_id = OE_Header_Adj_Util.G_REBATE_TRANSACTION_TYPE_CODE then
896           l_x_Header_Adj_rec.rebate_transaction_type_code := p_attr_value1;
897     ELSIF p_attr_id = OE_Header_Adj_Util.G_REBATE_TRANSACTION_REFERENCE then
898           l_x_Header_Adj_rec.rebate_transaction_reference := p_attr_value1;
899     ELSIF p_attr_id = OE_Header_Adj_Util.G_REBATE_PAYMENT_SYSTEM_CODE then
900           l_x_Header_Adj_rec.rebate_payment_system_code := p_attr_value1;
901     ELSIF p_attr_id = OE_Header_Adj_Util.G_REDEEMED_DATE then
902           --l_x_Header_Adj_rec.redeemed_date := TO_DATE(p_attr_value1, l_date_format);
903 	  l_x_Header_Adj_rec.redeemed_date := fnd_date.string_TO_DATE(p_attr_value1, l_date_format); --bug5402396
904     ELSIF p_attr_id = OE_Header_Adj_Util.G_REDEEMED_FLAG then
905           l_x_Header_Adj_rec.redeemed_flag  := p_attr_value1;
906     ELSIF p_attr_id = OE_Header_Adj_Util.G_ACCRUAL_FLAG then
907           l_x_Header_Adj_rec.accrual_flag := p_attr_value1;
908 
909     ELSIF p_attr_id = OE_Header_Adj_Util.G_AUTOMATIC THEN
910         l_x_Header_Adj_rec.automatic_flag := p_attr_value1;
911     ELSIF p_attr_id = OE_Header_Adj_Util.G_PERCENT THEN
912         l_x_Header_Adj_rec.percent := TO_NUMBER(p_attr_value1);
913     --Manual begin
914     ELSIF p_attr_id = OE_Header_Adj_Util.G_LINE THEN
915         If p_attr_value1 is Not Null Then
916           l_x_Header_Adj_rec.line_id := TO_NUMBER(p_attr_value1);
917         Else
918           l_x_Header_Adj_rec.line_id := NULL;
919         End If;
920     --Manual end
921     ELSIF p_attr_id = OE_Header_Adj_Util.G_ESTIMATED_FLAG THEN
922         l_x_Header_Adj_rec.estimated_flag := p_attr_value1;
923     ELSIF p_attr_id = OE_Header_Adj_Util.G_INVOICED_FLAG THEN
924         l_x_Header_Adj_rec.INVOICED_FLAG := p_attr_value1;
925     ELSIF p_attr_id = OE_Header_Adj_Util.G_credit_or_charge_flag THEN
926         l_x_Header_Adj_rec.credit_or_charge_flag := p_attr_value1;
927     ELSIF p_attr_id = OE_Header_Adj_Util.G_include_on_returns_flag THEN
928         l_x_Header_Adj_rec.include_on_returns_flag := p_attr_value1;
929     ELSIF p_attr_id = OE_Header_Adj_Util.G_charge_type_code THEN
930         l_x_Header_Adj_rec.charge_type_code := p_attr_value1;
931     ELSIF p_attr_id = OE_Header_Adj_Util.G_charge_subtype_code THEN
932         l_x_Header_Adj_rec.charge_subtype_code := p_attr_value1;
933     --uom begin
934     ELSIF p_attr_id = OE_Header_Adj_Util.G_operand_per_pqty Then
935 	 l_x_Header_Adj_rec.operand_per_pqty := to_number(p_attr_value1);
936     ELSIF  p_attr_id = OE_Header_Adj_Util.G_adjusted_amount_per_pqty Then
937       l_x_Header_Adj_rec.adjusted_amount_per_pqty := to_number(p_attr_value1);
938     --uom end
939     --Manual begin
940     ELSIF p_attr_id = OE_Header_Adj_Util.G_modifier_level_code Then
941          l_x_Header_Adj_rec.modifier_level_code := p_attr_value1;
942     ELSIF p_attr_id = OE_Header_Adj_Util.G_OVERRIDE_ALLOWED_FLAG Then
943          l_x_Header_Adj_rec.update_allowed:= p_attr_value1;
944     --Manual end
945     ELSIF p_attr_id = OE_Header_Adj_Util.G_CONTEXT
946     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE1
947     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE2
948     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE3
949     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE4
950     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE5
951     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE6
952     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE7
953     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE8
954     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE9
955     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE10
956     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE11
957     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE12
958     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE13
959     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE14
960     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE15
961     THEN
962 
963         l_x_Header_Adj_rec.context       := p_context;
964         l_x_Header_Adj_rec.attribute1    := p_attribute1;
965         l_x_Header_Adj_rec.attribute2    := p_attribute2;
966         l_x_Header_Adj_rec.attribute3    := p_attribute3;
967         l_x_Header_Adj_rec.attribute4    := p_attribute4;
968         l_x_Header_Adj_rec.attribute5    := p_attribute5;
969         l_x_Header_Adj_rec.attribute6    := p_attribute6;
970         l_x_Header_Adj_rec.attribute7    := p_attribute7;
971         l_x_Header_Adj_rec.attribute8    := p_attribute8;
972         l_x_Header_Adj_rec.attribute9    := p_attribute9;
973         l_x_Header_Adj_rec.attribute10   := p_attribute10;
974         l_x_Header_Adj_rec.attribute11   := p_attribute11;
975         l_x_Header_Adj_rec.attribute12   := p_attribute12;
976         l_x_Header_Adj_rec.attribute13   := p_attribute13;
977         l_x_Header_Adj_rec.attribute14   := p_attribute14;
978         l_x_Header_Adj_rec.attribute15   := p_attribute15;
979     ELSIF p_attr_id = OE_Header_Adj_Util.G_AC_CONTEXT
980     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE1
981     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE2
982     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE3
983     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE4
984     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE5
985     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE6
986     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE7
987     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE8
988     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE9
989     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE10
990     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE11
991     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE12
992     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE13
993     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE14
994     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE15
995     THEN
996 
997         l_x_Header_Adj_rec.ac_context       := p_ac_context;
998         l_x_Header_Adj_rec.ac_attribute1    := p_ac_attribute1;
999         l_x_Header_Adj_rec.ac_attribute2    := p_ac_attribute2;
1000         l_x_Header_Adj_rec.ac_attribute3    := p_ac_attribute3;
1001         l_x_Header_Adj_rec.ac_attribute4    := p_ac_attribute4;
1002         l_x_Header_Adj_rec.ac_attribute5    := p_ac_attribute5;
1003         l_x_Header_Adj_rec.ac_attribute6    := p_ac_attribute6;
1004         l_x_Header_Adj_rec.ac_attribute7    := p_ac_attribute7;
1005         l_x_Header_Adj_rec.ac_attribute8    := p_ac_attribute8;
1006         l_x_Header_Adj_rec.ac_attribute9    := p_ac_attribute9;
1007         l_x_Header_Adj_rec.ac_attribute10   := p_ac_attribute10;
1008         l_x_Header_Adj_rec.ac_attribute11   := p_ac_attribute11;
1009         l_x_Header_Adj_rec.ac_attribute12   := p_ac_attribute12;
1010         l_x_Header_Adj_rec.ac_attribute13   := p_ac_attribute13;
1011         l_x_Header_Adj_rec.ac_attribute14   := p_ac_attribute14;
1012         l_x_Header_Adj_rec.ac_attribute15   := p_ac_attribute15;
1013 
1014     ELSE
1015 
1016         --  Unexpected error, unrecognized attribute
1017         stmt:=5;
1018         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1019         THEN
1020             OE_MSG_PUB.Add_Exc_Msg
1021             (   G_PKG_NAME
1022             ,   'Change_Attributes'
1023             ,   'Unrecognized attribute:'||p_attr_id
1024             );
1025         END IF;
1026 
1027         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1028 
1029     END IF;
1030     stmt:=10;
1031 
1032     --  Set Operation.
1033     IF FND_API.To_Boolean(l_x_Header_Adj_rec.db_flag) THEN
1034         l_x_Header_Adj_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
1035     ELSE
1036         l_x_Header_Adj_rec.operation := OE_GLOBALS.G_OPR_CREATE;
1037     END IF;
1038 
1039 
1040     -- Request execution of delayed request on if a discount is
1041     -- applied
1042    /* IF p_attr_id = OE_Header_Adj_Util.G_DISCOUNT_LINE
1043       OR
1044       p_attr_id = OE_Header_Adj_Util.G_DISCOUNT
1045       THEN
1046 
1047        -- Assign requests that are to be executed
1048        l_request_rec.entity_code:= OE_GLOBALS.G_ENTITY_HEADER_ADJ;
1049        l_request_rec.entity_id	:= l_header_adj_rec.price_adjustment_id;
1050        l_request_rec.param1	:= l_header_adj_rec.discount_id;
1051        l_request_rec.param2	:= l_header_adj_rec.header_id;
1052        l_request_rec.request_type	:= OE_GLOBALS.G_CHECK_DUPLICATE;
1053        l_request_tbl(1) := l_request_rec;
1054 
1055     END IF; */
1056 
1057     --  Populate Header_Adj table
1058     -- l_Header_Adj_tbl(1) := l_Header_Adj_rec;
1059     l_x_Header_Adj_tbl(1) := l_x_Header_Adj_rec;
1060     l_old_Header_Adj_tbl(1) := l_old_Header_Adj_rec;
1061 
1062     -- Call Oe_Order_Adj_Pvt.Header_Adj
1063     l_Header_Adj_rec := l_x_Header_Adj_rec;
1064         stmt:=15;
1065     oe_order_adj_pvt.Header_Adjs
1066     (	p_init_msg_list	=> FND_API.G_TRUE
1067     ,	p_validation_level 	=> FND_API.G_VALID_LEVEL_NONE
1068     ,	p_control_rec		=> l_control_rec
1069     ,	p_x_header_adj_tbl	=> l_x_Header_Adj_tbl
1070     ,   p_x_old_header_adj_tbl 	=> l_x_old_header_adj_tbl
1071     );
1072 
1073     --  Unload out tbl
1074     l_x_Header_Adj_rec := l_x_Header_Adj_tbl(1);
1075 
1076             stmt:=20;
1077     IF l_x_header_adj_rec.return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1078         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1079     ELSIF l_x_header_adj_rec.return_status = FND_API.G_RET_STS_ERROR THEN
1080         RAISE FND_API.G_EXC_ERROR;
1081     END IF;
1082                stmt:=25;
1083        OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
1084           (p_request_type   => OE_GLOBALS.G_CHECK_DUPLICATE
1085           ,p_delete        => FND_API.G_TRUE
1086           ,x_return_status => l_return_status
1087           );
1088        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1089                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1090        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1091                  RAISE FND_API.G_EXC_ERROR;
1092        END IF;
1093 
1094 	OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
1095           (p_request_type   => OE_GLOBALS.G_CHECK_FIXED_PRICE
1096           ,p_delete        => FND_API.G_TRUE
1097           ,x_return_status => l_return_status
1098           );
1099 	IF p_enforce_fixed_price = 'YES' THEN
1100        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1101                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1102        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1103                  RAISE FND_API.G_EXC_ERROR;
1104        END IF;
1105 	ELSE
1106 		l_return_status := FND_API.G_RET_STS_SUCCESS;
1107 	END IF;
1108 
1109 
1110             stmt:=30;
1111     --  Init OUT parameters to missing.
1112 
1113     x_price_adjustment_id          := FND_API.G_MISS_NUM;
1114     x_header_id                    := FND_API.G_MISS_NUM;
1115     x_discount_id                  := FND_API.G_MISS_NUM;
1116     x_discount                     := FND_API.G_MISS_CHAR;
1117     x_discount_line_id             := FND_API.G_MISS_NUM;
1118     x_automatic_flag               := FND_API.G_MISS_CHAR;
1119     x_percent                      := FND_API.G_MISS_NUM;
1120     x_line_id                      := FND_API.G_MISS_NUM;
1121     x_context                      := FND_API.G_MISS_CHAR;
1122     x_attribute1                   := FND_API.G_MISS_CHAR;
1123     x_attribute2                   := FND_API.G_MISS_CHAR;
1124     x_attribute3                   := FND_API.G_MISS_CHAR;
1125     x_attribute4                   := FND_API.G_MISS_CHAR;
1126     x_attribute5                   := FND_API.G_MISS_CHAR;
1127     x_attribute6                   := FND_API.G_MISS_CHAR;
1128     x_attribute7                   := FND_API.G_MISS_CHAR;
1129     x_attribute8                   := FND_API.G_MISS_CHAR;
1130     x_attribute9                   := FND_API.G_MISS_CHAR;
1131     x_attribute10                  := FND_API.G_MISS_CHAR;
1132     x_attribute11                  := FND_API.G_MISS_CHAR;
1133     x_attribute12                  := FND_API.G_MISS_CHAR;
1134     x_attribute13                  := FND_API.G_MISS_CHAR;
1135     x_attribute14                  := FND_API.G_MISS_CHAR;
1136     x_attribute15                  := FND_API.G_MISS_CHAR;
1137     x_ac_context                   := FND_API.G_MISS_CHAR;
1138     x_ac_attribute1                := FND_API.G_MISS_CHAR;
1139     x_ac_attribute2                := FND_API.G_MISS_CHAR;
1140     x_ac_attribute3                := FND_API.G_MISS_CHAR;
1141     x_ac_attribute4                := FND_API.G_MISS_CHAR;
1142     x_ac_attribute5                := FND_API.G_MISS_CHAR;
1143     x_ac_attribute6                := FND_API.G_MISS_CHAR;
1144     x_ac_attribute7                := FND_API.G_MISS_CHAR;
1145     x_ac_attribute8                := FND_API.G_MISS_CHAR;
1146     x_ac_attribute9                := FND_API.G_MISS_CHAR;
1147     x_ac_attribute10               := FND_API.G_MISS_CHAR;
1148     x_ac_attribute11               := FND_API.G_MISS_CHAR;
1149     x_ac_attribute12               := FND_API.G_MISS_CHAR;
1150     x_ac_attribute13               := FND_API.G_MISS_CHAR;
1151     x_ac_attribute14               := FND_API.G_MISS_CHAR;
1152     x_ac_attribute15               := FND_API.G_MISS_CHAR;
1153 
1154         stmt:=35;
1155 -- New  columns names added
1156 	x_list_header_id	:= FND_API.G_MISS_NUM;
1157 	x_list_line_id	:= FND_API.G_MISS_NUM;
1158 	x_list_line_type_code := FND_API.G_MISS_CHAR;
1159 	x_modifier_mechanism_type_code := FND_API.G_MISS_CHAR;
1160 	x_modified_from	:= FND_API.G_MISS_CHAR;
1161 	x_modified_to	:= FND_API.G_MISS_CHAR;
1162 	x_update_allowed	:= FND_API.G_MISS_CHAR;
1163 	x_updated_flag	:= FND_API.G_MISS_CHAR;
1164 	x_applied_flag	:= FND_API.G_MISS_CHAR;
1165 	x_change_reason_code := FND_API.G_MISS_CHAR;
1166 	x_change_reason_text := FND_API.G_MISS_CHAR;
1167 	x_operand	:= FND_API.G_MISS_NUM;
1168 	x_arithmetic_operator	:= FND_API.G_MISS_CHAR;
1169 
1170 	x_adjusted_amount	:= FND_API.G_MISS_NUM;
1171 	x_pricing_phase_id	:= FND_API.G_MISS_NUM;
1172         x_list_line_no                          := FND_API.G_MISS_CHAR;
1173         x_source_system_code                    := FND_API.G_MISS_CHAR;
1174         x_benefit_qty                           := FND_API.G_MISS_NUM;
1175         x_benefit_uom_code                      := FND_API.G_MISS_CHAR;
1176         x_print_on_invoice_flag                 := FND_API.G_MISS_CHAR;
1177         x_expiration_date                       := FND_API.G_MISS_DATE;
1178         x_rebate_transaction_type_code          := FND_API.G_MISS_CHAR;
1179         x_rebate_transaction_reference          := FND_API.G_MISS_CHAR;
1180         x_rebate_payment_system_code            := FND_API.G_MISS_CHAR;
1181         x_redeemed_date                         := FND_API.G_MISS_DATE;
1182         x_redeemed_flag                         := FND_API.G_MISS_CHAR;
1183         x_accrual_flag                          := FND_API.G_MISS_CHAR;
1184         x_invoiced_flag                         := FND_API.G_MISS_CHAR;
1185         x_estimated_flag                        := FND_API.G_MISS_CHAR;
1186         x_credit_or_charge_flag                 := FND_API.G_MISS_CHAR;
1187         x_include_on_returns_flag               := FND_API.G_MISS_CHAR;
1188         x_charge_type_code                      := FND_API.G_MISS_CHAR;
1189         x_charge_subtype_code                   := FND_API.G_MISS_CHAR;
1190 
1191     --uom begin
1192 	   x_operand_per_pqty := FND_API.G_MISS_NUM;
1193 	   x_adjusted_amount_per_pqty := FND_API.G_MISS_NUM;
1194     --uom end
1195 
1196     -- Load display out parameters if any
1197     stmt:=40;
1198     l_Header_Adj_val_rec := OE_Header_Adj_Util.Get_Values
1199     (   p_Header_Adj_rec              => l_x_Header_Adj_rec
1200     ,   p_old_Header_Adj_rec          => l_Header_Adj_rec
1201     );
1202    stmt:=45;
1203 -- New column changes :: new code
1204 
1205     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.list_header_id,
1206                             l_Header_Adj_rec.list_header_id)
1207     THEN
1208         x_list_header_id := l_x_Header_Adj_rec.list_header_id;
1209     END IF;
1210 
1211     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.list_line_id,
1212                             l_Header_Adj_rec.list_line_id)
1213     THEN
1214         x_list_line_id := l_x_Header_Adj_rec.list_line_id;
1215     END IF;
1216 
1217     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.list_line_type_code,
1218 
1219                             l_Header_Adj_rec.list_line_type_code)
1220     THEN
1221         x_list_line_type_code := l_x_Header_Adj_rec.list_line_type_code;
1222     END IF;
1223 
1224     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.modifier_mechanism_type_code,
1225 
1226                             l_Header_Adj_rec.modifier_mechanism_type_code)
1227     THEN
1228         x_modifier_mechanism_type_code := l_x_Header_Adj_rec.modifier_mechanism_type_code;
1229     END IF;
1230 
1231     stmt:=50;
1232     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.update_allowed,
1233 
1234                             l_Header_Adj_rec.update_allowed)
1235     THEN
1236         x_update_allowed := l_x_Header_Adj_rec.update_allowed;
1237     END IF;
1238 
1239     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.updated_flag,
1240 
1241                             l_Header_Adj_rec.updated_flag)
1242     THEN
1243         x_updated_flag := l_x_Header_Adj_rec.updated_flag;
1244     END IF;
1245     stmt:=55;
1246     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.modified_from,
1247 
1248                             l_Header_Adj_rec.modified_from)
1249     THEN
1250         x_modified_from := l_x_Header_Adj_rec.modified_from;
1251     END IF;
1252 
1253     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.modified_to,
1254 
1255                             l_Header_Adj_rec.modified_to)
1256     THEN
1257         x_modified_to := l_x_Header_Adj_rec.modified_to;
1258     END IF;
1259     stmt:=60;
1260     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.applied_flag,
1261                             l_Header_Adj_rec.applied_flag)
1262     THEN
1263         x_applied_flag := l_x_Header_Adj_rec.applied_flag;
1264     END IF;
1265     stmt:=65;
1266     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.change_reason_code,
1267                             l_Header_Adj_rec.change_reason_code)
1268     THEN
1269         x_change_reason_code := l_x_Header_Adj_rec.change_reason_code;
1270     END IF;
1271 
1272     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.change_reason_text,
1273                             l_Header_Adj_rec.change_reason_text)
1274     THEN
1275         x_change_reason_text := l_x_Header_Adj_rec.change_reason_text;
1276     END IF;
1277     stmt:=70;
1278     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.operand,
1279                             l_Header_Adj_rec.operand)
1280     THEN
1281         x_operand := l_x_Header_Adj_rec.operand;
1282     END IF;
1283 
1284     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.arithmetic_operator,
1285                             l_Header_Adj_rec.arithmetic_operator)
1286     THEN
1287         x_arithmetic_operator := l_x_Header_Adj_rec.arithmetic_operator;
1288     END IF;
1289 
1290 
1291     --  Return changed attributes.
1292 
1293     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute1,
1294                             l_Header_Adj_rec.attribute1)
1295     THEN
1296         x_attribute1 := l_x_Header_Adj_rec.attribute1;
1297     END IF;
1298     stmt:=75;
1299     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute10,
1300                             l_Header_Adj_rec.attribute10)
1301     THEN
1302         x_attribute10 := l_x_Header_Adj_rec.attribute10;
1303     END IF;
1304 
1305     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute11,
1306                             l_Header_Adj_rec.attribute11)
1307     THEN
1308         x_attribute11 := l_x_Header_Adj_rec.attribute11;
1309     END IF;
1310 
1311     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute12,
1312                             l_Header_Adj_rec.attribute12)
1313     THEN
1314         x_attribute12 := l_x_Header_Adj_rec.attribute12;
1315     END IF;
1316     stmt:=80;
1317     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute13,
1318                             l_Header_Adj_rec.attribute13)
1319     THEN
1320         x_attribute13 := l_x_Header_Adj_rec.attribute13;
1321     END IF;
1322 
1323     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute14,
1324                             l_Header_Adj_rec.attribute14)
1325     THEN
1326         x_attribute14 := l_x_Header_Adj_rec.attribute14;
1327     END IF;
1328     stmt:=85;
1329     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute15,
1330                             l_Header_Adj_rec.attribute15)
1331     THEN
1332         x_attribute15 := l_x_Header_Adj_rec.attribute15;
1333     END IF;
1334 
1335     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute2,
1336                             l_Header_Adj_rec.attribute2)
1337     THEN
1338         x_attribute2 := l_x_Header_Adj_rec.attribute2;
1339     END IF;
1340 
1341     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute3,
1342                             l_Header_Adj_rec.attribute3)
1343     THEN
1344         x_attribute3 := l_x_Header_Adj_rec.attribute3;
1345     END IF;
1346 
1347     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute4,
1348                             l_Header_Adj_rec.attribute4)
1349     THEN
1350         x_attribute4 := l_x_Header_Adj_rec.attribute4;
1351     END IF;
1352 
1353     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute5,
1354                             l_Header_Adj_rec.attribute5)
1355     THEN
1356         x_attribute5 := l_x_Header_Adj_rec.attribute5;
1357     END IF;
1358 
1359     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute6,
1360                             l_Header_Adj_rec.attribute6)
1361     THEN
1362         x_attribute6 := l_x_Header_Adj_rec.attribute6;
1363     END IF;
1364 
1365     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute7,
1366                             l_Header_Adj_rec.attribute7)
1367     THEN
1368         x_attribute7 := l_x_Header_Adj_rec.attribute7;
1369     END IF;
1370 
1371     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute8,
1372                             l_Header_Adj_rec.attribute8)
1373     THEN
1374         x_attribute8 := l_x_Header_Adj_rec.attribute8;
1375     END IF;
1376 
1377     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute9,
1378                             l_Header_Adj_rec.attribute9)
1379     THEN
1380         x_attribute9 := l_x_Header_Adj_rec.attribute9;
1381     END IF;
1382 
1383     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.automatic_flag,
1384                             l_Header_Adj_rec.automatic_flag)
1385     THEN
1386         x_automatic_flag := l_x_Header_Adj_rec.automatic_flag;
1387     END IF;
1388 
1389     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.context,
1390                             l_Header_Adj_rec.context)
1391     THEN
1392         x_context := l_x_Header_Adj_rec.context;
1393     END IF;
1394     stmt:=95;
1395     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.discount_id,
1396                             l_Header_Adj_rec.discount_id)
1397     THEN
1398         x_discount_id := l_x_Header_Adj_rec.discount_id;
1399         x_discount := l_Header_Adj_val_rec.discount;
1400     END IF;
1401 
1402     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.discount_line_id,
1403                             l_Header_Adj_rec.discount_line_id)
1404     THEN
1405         x_discount_line_id := l_x_Header_Adj_rec.discount_line_id;
1406     END IF;
1407 
1408     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.header_id,
1409                             l_Header_Adj_rec.header_id)
1410     THEN
1411         x_header_id := l_x_Header_Adj_rec.header_id;
1412     END IF;
1413     stmt:=100;
1414     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.line_id,
1415                             l_Header_Adj_rec.line_id)
1416     THEN
1417         x_line_id := l_x_Header_Adj_rec.line_id;
1418     END IF;
1419 
1420     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.percent,
1421                             l_Header_Adj_rec.percent)
1422     THEN
1423         x_percent := l_x_Header_Adj_rec.percent;
1424     END IF;
1425 
1426     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.price_adjustment_id,
1427                             l_Header_Adj_rec.price_adjustment_id)
1428     THEN
1429         x_price_adjustment_id := l_x_Header_Adj_rec.price_adjustment_id;
1430     END IF;
1431 
1432 
1433     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.adjusted_amount,
1434                             l_Header_Adj_rec.adjusted_amount)
1435     THEN
1436         x_adjusted_amount := l_x_Header_Adj_rec.adjusted_amount;
1437     END IF;
1438 
1439     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.pricing_phase_id,
1440                             l_Header_Adj_rec.pricing_phase_id)
1441     THEN
1442         x_pricing_phase_id := l_x_Header_Adj_rec.pricing_phase_id;
1443     END IF;
1444 
1445     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.list_line_no, l_Header_Adj_rec.list_line_no)
1446     THEN
1447        x_list_line_no := l_x_Header_Adj_rec.list_line_no;
1448     END IF;
1449 
1450     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.source_system_code, l_Header_Adj_rec.source_system_code)
1451     THEN
1452        x_source_system_code := l_x_Header_Adj_rec.source_system_code;
1453     END IF;
1454 
1455     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.benefit_qty, l_Header_Adj_rec.benefit_qty)
1456     THEN
1457        x_benefit_qty := l_x_Header_Adj_rec.benefit_qty;
1458     END IF;
1459 
1460     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.benefit_uom_code, l_Header_Adj_rec.benefit_uom_code)
1461     THEN
1462        x_benefit_uom_code := l_x_Header_Adj_rec.benefit_uom_code;
1463     END IF;
1464 
1465     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.print_on_invoice_flag, l_Header_Adj_rec.print_on_invoice_flag)
1466     THEN
1467        x_print_on_invoice_flag := l_x_Header_Adj_rec.print_on_invoice_flag;
1468     END IF;
1469 
1470     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.expiration_date, l_Header_Adj_rec.expiration_date)
1471     THEN
1472        x_expiration_date := l_x_Header_Adj_rec.expiration_date;
1473     END IF;
1474 
1475     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.rebate_transaction_type_code, l_Header_Adj_rec.rebate_transaction_type_code)
1476     THEN
1477        x_rebate_transaction_type_code := l_x_Header_Adj_rec.rebate_transaction_type_code;
1478     END IF;
1479 
1480     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.rebate_transaction_reference, l_Header_Adj_rec.rebate_transaction_reference)
1481     THEN
1482        x_rebate_transaction_reference := l_x_Header_Adj_rec.rebate_transaction_reference;
1483     END IF;
1484 
1485     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.rebate_payment_system_code, l_Header_Adj_rec.rebate_payment_system_code)
1486     THEN
1487        x_rebate_payment_system_code := l_x_Header_Adj_rec.rebate_payment_system_code;
1488     END IF;
1489 
1490     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.redeemed_date, l_Header_Adj_rec.redeemed_date)
1491     THEN
1492        x_redeemed_date := l_x_Header_Adj_rec.redeemed_date;
1493     END IF;
1494 
1495     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.redeemed_flag, l_Header_Adj_rec.redeemed_flag)
1496     THEN
1497        x_redeemed_flag := l_x_Header_Adj_rec.redeemed_flag;
1498     END IF;
1499 
1500     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.accrual_flag, l_Header_Adj_rec.accrual_flag)
1501     THEN
1502        x_accrual_flag := l_x_Header_Adj_rec.accrual_flag;
1503     END IF;
1504 
1505     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.estimated_flag, l_Header_Adj_rec.estimated_flag)
1506     THEN
1507        x_estimated_flag := l_x_Header_Adj_rec.estimated_flag;
1508     END IF;
1509 
1510     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.invoiced_flag, l_Header_Adj_rec.invoiced_flag)
1511     THEN
1512        x_invoiced_flag := l_x_Header_Adj_rec.invoiced_flag;
1513     END IF;
1514 
1515     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.charge_type_code, l_Header_Adj_rec.charge_type_code)
1516     THEN
1517        x_charge_type_code := l_x_Header_Adj_rec.charge_type_code;
1518     END IF;
1519 
1520     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.charge_subtype_code, l_Header_Adj_rec.charge_subtype_code)
1521     THEN
1522        x_charge_subtype_code := l_x_Header_Adj_rec.charge_subtype_code;
1523     END IF;
1524 
1525     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.credit_or_charge_flag, l_Header_Adj_rec.credit_or_charge_flag)
1526     THEN
1527        x_credit_or_charge_flag := l_x_Header_Adj_rec.credit_or_charge_flag;
1528     END IF;
1529 
1530     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.include_on_returns_flag, l_Header_Adj_rec.include_on_returns_flag)
1531     THEN
1532        x_include_on_returns_flag := l_x_Header_Adj_rec.include_on_returns_flag;
1533     END IF;
1534 
1535     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute1,
1536                             l_Header_Adj_rec.ac_attribute1)
1537     THEN
1538         x_ac_attribute1 := l_x_Header_Adj_rec.ac_attribute1;
1539     END IF;
1540 
1541     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute10,
1542                             l_Header_Adj_rec.ac_attribute10)
1543     THEN
1544         x_ac_attribute10 := l_x_Header_Adj_rec.ac_attribute10;
1545     END IF;
1546 
1547     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute11,
1548                             l_Header_Adj_rec.ac_attribute11)
1549     THEN
1550         x_ac_attribute11 := l_x_Header_Adj_rec.ac_attribute11;
1551     END IF;
1552 
1553     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute12,
1554                             l_Header_Adj_rec.ac_attribute12)
1555     THEN
1556         x_ac_attribute12 := l_x_Header_Adj_rec.ac_attribute12;
1557     END IF;
1558 
1559     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute13,
1560                             l_Header_Adj_rec.ac_attribute13)
1561     THEN
1562         x_ac_attribute13 := l_x_Header_Adj_rec.ac_attribute13;
1563     END IF;
1564 
1565     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute14,
1566                             l_Header_Adj_rec.ac_attribute14)
1567     THEN
1568         x_ac_attribute14 := l_x_Header_Adj_rec.ac_attribute14;
1569     END IF;
1570 
1571     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute15,
1572                             l_Header_Adj_rec.ac_attribute15)
1573     THEN
1574         x_ac_attribute15 := l_x_Header_Adj_rec.ac_attribute15;
1575     END IF;
1576 
1577     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute2,
1578                             l_Header_Adj_rec.ac_attribute2)
1579     THEN
1580         x_ac_attribute2 := l_x_Header_Adj_rec.ac_attribute2;
1581     END IF;
1582 
1583     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute3,
1584                             l_Header_Adj_rec.ac_attribute3)
1585     THEN
1586         x_ac_attribute3 := l_x_Header_Adj_rec.ac_attribute3;
1587     END IF;
1588 
1589     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute4,
1590                             l_Header_Adj_rec.ac_attribute4)
1591     THEN
1592         x_ac_attribute4 := l_x_Header_Adj_rec.ac_attribute4;
1593     END IF;
1594 
1595     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute5,
1596                             l_Header_Adj_rec.ac_attribute5)
1597     THEN
1598         x_ac_attribute5 := l_x_Header_Adj_rec.ac_attribute5;
1599     END IF;
1600 
1601     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute6,
1602                             l_Header_Adj_rec.ac_attribute6)
1603     THEN
1604         x_ac_attribute6 := l_x_Header_Adj_rec.ac_attribute6;
1605     END IF;
1606 
1607     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute7,
1608                             l_Header_Adj_rec.ac_attribute7)
1609     THEN
1610         x_ac_attribute7 := l_x_Header_Adj_rec.ac_attribute7;
1611     END IF;
1612 
1613     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute8,
1614                             l_Header_Adj_rec.ac_attribute8)
1615     THEN
1616         x_ac_attribute8 := l_x_Header_Adj_rec.ac_attribute8;
1617     END IF;
1618 
1619     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute9,
1620                             l_Header_Adj_rec.ac_attribute9)
1621     THEN
1622         x_ac_attribute9 := l_x_Header_Adj_rec.ac_attribute9;
1623     END IF;
1624 
1625     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_context,
1626                             l_Header_Adj_rec.ac_context)
1627     THEN
1628         x_ac_context := l_x_Header_Adj_rec.ac_context;
1629     END IF;
1630     stmt:=120;
1631     --uom begin
1632     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.operand_per_pqty,
1633                             l_Header_Adj_rec.operand_per_pqty)
1634     THEN
1635 	   x_operand_per_pqty := l_x_Header_Adj_rec.operand_per_pqty;
1636     END IF;
1637 
1638     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.adjusted_amount_per_pqty,
1639   				        l_Header_Adj_rec.adjusted_amount_per_pqty)
1640     THEN
1641 	 x_adjusted_amount_per_pqty := l_x_Header_Adj_rec.adjusted_amount_per_pqty;
1642     END IF;
1643 
1644    --uom end
1645     stmt:=130;
1646 
1647     --  Write to cache.
1648 
1649     Write_Header_Adj
1650     (   p_Header_Adj_rec              => l_x_Header_Adj_rec
1651     );
1652 
1653    stmt:=140;
1654     -- Re-set the UI flag to FALSE
1655     OE_GLOBALS.G_UI_FLAG := FALSE;
1656 
1657     --  Set return status.
1658     x_return_status := FND_API.G_RET_STS_SUCCESS;
1659 
1660 
1661     --  Get message count and data
1662     OE_MSG_PUB.Count_And_Get
1663     (   p_count                       => x_msg_count
1664     ,   p_data                        => x_msg_data
1665     );
1666 
1667     IF l_debug_level  > 0 THEN
1668         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.CHANGE_ATTRIBUTES' , 1 ) ;
1669     END IF;
1670 
1671 EXCEPTION
1672 
1673     WHEN FND_API.G_EXC_ERROR THEN
1674 
1675 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1676 
1677         x_return_status := FND_API.G_RET_STS_ERROR;
1678 
1679         --  Get message count and data
1680 
1681 /* Msg is commented out nocopy for the bug #2485694 */
1682 
1683          /* OE_MSG_PUB.Add_Exc_Msg
1684             (   G_PKG_NAME
1685             ,   'Change_Attributes'||stmt
1686             ); */
1687 
1688         IF l_debug_level  > 0 THEN
1689             oe_debug_pub.add(  G_PKG_NAME|| 'CHANGE_ATTRIBUTES'||STMT , 1 ) ;
1690         END IF;
1691 
1692         OE_MSG_PUB.Count_And_Get
1693         (   p_count                       => x_msg_count
1694         ,   p_data                        => x_msg_data
1695         );
1696 
1697         IF l_debug_level  > 0 THEN
1698             oe_debug_pub.add(  'STMT:'||STMT ) ;
1699         END IF;
1700 	ROLLBACK TO SAVEPOINT change_attributes;
1701 
1702     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1703            IF l_debug_level  > 0 THEN
1704                oe_debug_pub.add(  'STMT:'||STMT ) ;
1705            END IF;
1706 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1707 
1708         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1709 
1710         --  Get message count and data
1711          IF l_debug_level  > 0 THEN
1712              oe_debug_pub.add(  'STMT:'||STMT ) ;
1713          END IF;
1714          OE_MSG_PUB.Add_Exc_Msg
1715             (   G_PKG_NAME
1716             ,   'Change_Attributes:'||stmt
1717             );
1718         OE_MSG_PUB.Count_And_Get
1719         (   p_count                       => x_msg_count
1720         ,   p_data                        => x_msg_data
1721         );
1722 
1723 	ROLLBACK TO SAVEPOINT change_attributes;
1724 
1725     WHEN OTHERS THEN
1726 
1727 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1728 
1729         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1730 
1731         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1732         THEN
1733             OE_MSG_PUB.Add_Exc_Msg
1734             (   G_PKG_NAME
1735             ,   'Change_Attributes:'||stmt
1736             );
1737         END IF;
1738 
1739         --  Get message count and data
1740 
1741         OE_MSG_PUB.Count_And_Get
1742         (   p_count                       => x_msg_count
1743         ,   p_data                        => x_msg_data
1744         );
1745 
1746 	ROLLBACK TO SAVEPOINT change_attributes;
1747 
1748 END Change_Attributes;
1749 
1750 
1751 --  Procedure       Validate_And_Write
1752 --
1753 
1754 
1755 PROCEDURE Validate_And_Write
1756 ( x_return_status OUT NOCOPY VARCHAR2
1757 
1758 , x_msg_count OUT NOCOPY NUMBER
1759 
1760 , x_msg_data OUT NOCOPY VARCHAR2
1761 
1762 ,   p_price_adjustment_id           IN  NUMBER
1763 , x_creation_date OUT NOCOPY DATE
1764 
1765 , x_created_by OUT NOCOPY NUMBER
1766 
1767 , x_last_update_date OUT NOCOPY DATE
1768 
1769 , x_last_updated_by OUT NOCOPY NUMBER
1770 
1771 , x_last_update_login OUT NOCOPY NUMBER
1772 
1773 ,   p_ok_flag			    		 IN  VARCHAR2
1774 , x_program_id OUT NOCOPY NUMBER
1775 
1776 , x_program_application_id OUT NOCOPY NUMBER
1777 
1778 , x_program_update_date OUT NOCOPY DATE
1779 
1780 , x_request_id OUT NOCOPY NUMBER
1781 
1782 , x_lock_control OUT NOCOPY NUMBER
1783 
1784 )
1785 IS
1786 l_request_rec		      OE_order_pub.Request_Rec_Type;
1787 l_request_tbl		      OE_order_pub.Request_Tbl_Type;
1788 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type;
1789 l_old_Header_Adj_rec          OE_Order_PUB.Header_Adj_Rec_Type;
1790 l_x_old_Header_Adj_rec          OE_Order_PUB.Header_Adj_Rec_Type;
1791 l_Header_Adj_tbl              OE_Order_PUB.Header_Adj_Tbl_Type;
1792 l_old_Header_Adj_tbl          OE_Order_PUB.Header_Adj_Tbl_Type;
1793 l_x_old_Header_Adj_tbl          OE_Order_PUB.Header_Adj_Tbl_Type;
1794 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
1795 l_return_status               VARCHAR2(1);
1796 l_action_request_tbl		OE_Order_PUB.Request_Tbl_Type;
1797 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
1798 l_x_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
1799 l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
1800 l_x_Header_Scredit_rec        OE_Order_PUB.Header_Scredit_Rec_Type;
1801 l_x_Header_Scredit_tbl        OE_Order_PUB.Header_Scredit_Tbl_Type;
1802 l_x_line_rec                  OE_Order_PUB.Line_Rec_Type;
1803 l_x_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
1804 l_x_Line_Adj_rec              OE_Order_PUB.Line_Adj_Rec_Type;
1805 l_x_Line_Adj_tbl              OE_Order_PUB.Line_Adj_Tbl_Type;
1806 l_x_Line_Scredit_rec          OE_Order_PUB.Line_Scredit_Rec_Type;
1807 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
1808 l_x_Lot_Serial_rec            OE_Order_PUB.Lot_Serial_Rec_Type;
1809 l_x_Lot_Serial_tbl            OE_Order_PUB.Lot_Serial_Tbl_Type;
1810 
1811 --New out parameters
1812 l_x_Header_price_Att_tbl      OE_Order_PUB.Header_Price_Att_Tbl_Type;
1813 l_x_Header_Adj_Att_tbl        OE_Order_PUB.Header_Adj_Att_Tbl_Type;
1814 l_x_Header_Adj_Assoc_tbl      OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
1815 
1816 l_x_Line_price_Att_tbl        OE_Order_PUB.Line_Price_Att_Tbl_Type;
1817 l_x_Line_Adj_Att_tbl          OE_Order_PUB.Line_Adj_Att_Tbl_Type;
1818 l_x_Line_Adj_Assoc_tbl        OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
1819 
1820 --
1821 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1822 --
1823 BEGIN
1824     --3340264{
1825       x_return_status := FND_API.G_RET_STS_SUCCESS;
1826     --3340264}
1827     IF l_debug_level  > 0 THEN
1828         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.VALIDATE_AND_WRITE' , 1 ) ;
1829     END IF;
1830 
1831     -- Set the UI flag
1832     OE_GLOBALS.G_UI_FLAG := TRUE;
1833 
1834     --  Set control flags.
1835     l_control_rec.controlled_operation := TRUE;
1836     l_control_rec.validate_entity      := TRUE;
1837     l_control_rec.write_to_DB          := TRUE;
1838 
1839     l_control_rec.check_security       := FALSE;
1840     l_control_rec.clear_dependents     := FALSE;
1841     l_control_rec.default_attributes   := FALSE;
1842     l_control_rec.change_attributes    := FALSE;
1843     l_control_rec.process              := FALSE;
1844     l_control_rec.process_entity       := OE_GLOBALS.G_ENTITY_HEADER_ADJ;
1845 
1846 
1847     --  Instruct API to retain its caches
1848     l_control_rec.clear_api_cache      := FALSE;
1849     l_control_rec.clear_api_requests   := FALSE;
1850 
1851 
1852     -- Save point to rollback to if there were
1853     -- any errors
1854     SAVEPOINT validate_and_write;
1855 
1856 
1857     --  Read Header_Adj from cache
1858     Get_Header_Adj
1859     (   p_db_record                   => TRUE
1860     ,   p_price_adjustment_id         => p_price_adjustment_id
1861     ,   x_Header_Adj_Rec			   => l_x_old_Header_Adj_rec
1862     );
1863 
1864     Get_Header_Adj
1865     (   p_db_record                   => FALSE
1866     ,   p_price_adjustment_id         => p_price_adjustment_id
1867     ,   x_Header_Adj_rec			   => l_x_Header_Adj_rec
1868     );
1869 
1870     --  Set Operation.
1871     --3340264{
1872     IF(l_x_Header_Adj_rec.db_flag= FND_API.G_MISS_CHAR) THEN
1873        return;
1874     ELSE
1875        IF FND_API.To_Boolean(l_x_Header_Adj_rec.db_flag) THEN
1876           l_x_Header_Adj_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
1877        ELSE
1878           l_x_Header_Adj_rec.operation := OE_GLOBALS.G_OPR_CREATE;
1879        END IF;
1880     END IF;
1881     --3340264}
1882 
1883     --  Populate Header_Adj table
1884     l_x_Header_Adj_tbl(1) := l_x_Header_Adj_rec;
1885     l_x_old_Header_Adj_tbl(1) := l_x_old_Header_Adj_rec;
1886 
1887     -- Call Oe_Order_Adj_Pvt.Header_Adj
1888     oe_order_adj_pvt.Header_Adjs
1889     (	p_init_msg_list	=> FND_API.G_TRUE
1890     ,	p_validation_level 	=> FND_API.G_VALID_LEVEL_FULL
1891     ,	p_control_rec		=> l_control_rec
1892     ,	p_x_header_adj_tbl	=> l_x_Header_Adj_tbl
1893     ,   p_x_old_header_adj_tbl  => l_x_old_header_adj_tbl
1894     );
1895 
1896     /***************************************************************
1897 ** commented out nocopy for performance changes **
1898 
1899     --  Call OE_Order_PVT.Process_order
1900     OE_Order_PVT.Process_order
1901     (   p_api_version_number          => 1.0
1902     ,   p_init_msg_list               => FND_API.G_TRUE
1903     ,   x_return_status               => l_return_status
1904     ,   x_msg_count                   => x_msg_count
1905     ,   x_msg_data                    => x_msg_data
1906     ,   p_control_rec                 => l_control_rec
1907     --,   p_request_tbl		      => l_request_tbl
1908     ,   p_Header_Adj_tbl              => l_Header_Adj_tbl
1909     ,   p_old_Header_Adj_tbl          => l_old_Header_Adj_tbl
1910     ,   x_header_rec                  => l_x_header_rec
1911     ,   x_Header_Adj_tbl              => l_x_Header_Adj_tbl
1912  -- New Parameters
1913     ,   x_Header_price_Att_tbl         => l_x_Header_price_Att_tbl
1914     ,   x_Header_Adj_Att_tbl           => l_x_Header_Adj_Att_tbl
1915     ,   x_Header_Adj_Assoc_tbl         => l_x_Header_Adj_Assoc_tbl
1916 
1917     ,   x_Header_Scredit_tbl          => l_x_Header_Scredit_tbl
1918     ,   x_line_tbl                    => l_x_line_tbl
1919     ,   x_Line_Adj_tbl                => l_x_Line_Adj_tbl
1920 
1921 -- New Parameters
1922     ,   x_Line_price_Att_tbl          => l_x_Line_price_Att_tbl
1923     ,   x_Line_Adj_Att_tbl            => l_x_Line_Adj_Att_tbl
1924     ,   x_Line_Adj_Assoc_tbl          => l_x_Line_Adj_Assoc_tbl
1925 
1926     ,   x_Line_Scredit_tbl            => l_x_Line_Scredit_tbl
1927     ,   x_Lot_Serial_tbl              => l_x_Lot_Serial_tbl
1928     ,	x_action_request_tbl	      => l_action_request_tbl
1929     );
1930 
1931     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1932         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1933     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1934         RAISE FND_API.G_EXC_ERROR;
1935     END IF;
1936     **********************************************************/
1937 
1938     --  Load OUT parameters.
1939     l_x_Header_Adj_rec := l_x_Header_Adj_tbl(1);
1940 
1941     IF l_x_header_adj_rec.return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1942         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1943     ELSIF l_x_header_adj_rec.return_status = FND_API.G_RET_STS_ERROR THEN
1944         RAISE FND_API.G_EXC_ERROR;
1945     END IF;
1946 
1947     /*******
1948     Oe_Order_Pvt.Process_Requests_And_Notify
1949     (	p_process_requests	=> FALSE
1950     ,	p_notify		=> TRUE
1951     ,	p_header_adj_tbl	=> l_x_header_adj_tbl
1952     ,	p_old_header_adj_tbl	=> l_x_old_header_adj_tbl
1953     ,	x_return_status		=> l_return_status
1954     );
1955 
1956     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1957         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1958     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1959         RAISE FND_API.G_EXC_ERROR;
1960     END IF;
1961     *******/
1962 
1963     x_lock_control := l_x_Header_Adj_rec.lock_control;
1964 
1965 	OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
1966           (p_request_type   => OE_GLOBALS.G_CHECK_PERCENTAGE
1967           ,p_delete        => FND_API.G_TRUE
1968           ,x_return_status => l_return_status
1969           );
1970        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1971                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1972        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1973                  RAISE FND_API.G_EXC_ERROR;
1974        END IF;
1975 
1976        -- fixed bug 3271297
1977        OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
1978           (p_request_type   => OE_GLOBALS.G_VERIFY_PAYMENT
1979           ,p_delete        => FND_API.G_TRUE
1980           ,x_return_status => l_return_status
1981           );
1982        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1983                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1984        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1985                  RAISE FND_API.G_EXC_ERROR;
1986        END IF;
1987 
1988 	/*****
1989 	IF p_ok_flag = 'Y' THEN
1990 	OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
1991           (p_request_type   => OE_GLOBALS.G_PRICE_ADJ
1992           ,p_delete        => FND_API.G_TRUE
1993           ,x_return_status => l_return_status
1994           );
1995        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1996                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1997        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1998                  RAISE FND_API.G_EXC_ERROR;
1999        END IF;
2000 	END IF;
2001 	******/
2002 
2003     x_creation_date                := l_x_Header_Adj_rec.creation_date;
2004     x_created_by                   := l_x_Header_Adj_rec.created_by;
2005     x_last_update_date             := l_x_Header_Adj_rec.last_update_date;
2006     x_last_updated_by              := l_x_Header_Adj_rec.last_updated_by;
2007     x_last_update_login            := l_x_Header_Adj_rec.last_update_login;
2008     x_program_id            		:= l_x_Line_Adj_rec.program_id;
2009     x_program_application_id      	:= l_x_Line_Adj_rec.program_application_id;
2010     x_program_update_date      	:= l_x_Line_Adj_rec.program_update_date;
2011     x_request_id      			:= l_x_Line_Adj_rec.request_id;
2012 
2013 
2014     --  Clear Header_Adj record cache
2015     Clear_Header_Adj;
2016 
2017 
2018     -- Re-set the UI flag to FALSE
2019     OE_GLOBALS.G_UI_FLAG := FALSE;
2020 
2021     --  Set return status.
2022     x_return_status := FND_API.G_RET_STS_SUCCESS;
2023 
2024 
2025     --  Get message count and data
2026     OE_MSG_PUB.Count_And_Get
2027     (   p_count                       => x_msg_count
2028     ,   p_data                        => x_msg_data
2029     );
2030 
2031     IF l_debug_level  > 0 THEN
2032         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.VALIDATE_AND_WRITE' , 1 ) ;
2033     END IF;
2034 
2035 EXCEPTION
2036 
2037    WHEN FND_API.G_EXC_ERROR THEN
2038 
2039 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2040 
2041       x_return_status := FND_API.G_RET_STS_ERROR;
2042 
2043       --  Get message count and data
2044 
2045       OE_MSG_PUB.Count_And_Get
2046         (   p_count                       => x_msg_count
2047         ,   p_data                        => x_msg_data
2048         );
2049 
2050       ROLLBACK TO SAVEPOINT validate_and_write;
2051 
2052    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2053 
2054 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2055 
2056         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2057 
2058         --  Get message count and data
2059 
2060         OE_MSG_PUB.Count_And_Get
2061         (   p_count                       => x_msg_count
2062         ,   p_data                        => x_msg_data
2063         );
2064 
2065 	ROLLBACK TO SAVEPOINT validate_and_write;
2066 
2067     WHEN OTHERS THEN
2068 
2069 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2070 
2071         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2072 
2073         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2074         THEN
2075             OE_MSG_PUB.Add_Exc_Msg
2076             (   G_PKG_NAME
2077             ,   'Validate_And_Write'
2078             );
2079         END IF;
2080 
2081         --  Get message count and data
2082 
2083         OE_MSG_PUB.Count_And_Get
2084         (   p_count                       => x_msg_count
2085         ,   p_data                        => x_msg_data
2086         );
2087 
2088 	ROLLBACK TO SAVEPOINT validate_and_write;
2089 
2090 END Validate_And_Write;
2091 
2092 
2093 --  Procedure       Delete_Row
2094 --
2095 
2096 PROCEDURE Delete_Row
2097 ( x_return_status OUT NOCOPY VARCHAR2
2098 
2099 , x_msg_count OUT NOCOPY NUMBER
2100 
2101 , x_msg_data OUT NOCOPY VARCHAR2
2102 
2103 ,   p_price_adjustment_id           IN  NUMBER
2104 , p_change_reason_code            IN  VARCHAR2 Default Null
2105 , p_change_comments               IN  VARCHAR2 Default Null
2106 )
2107 IS
2108 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type;
2109 l_Header_Adj_tbl              OE_Order_PUB.Header_Adj_Tbl_Type;
2110 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
2111 l_return_status               VARCHAR2(1);
2112 l_action_request_tbl		OE_Order_PUB.Request_Tbl_Type;
2113 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
2114 l_x_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
2115 l_x_old_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
2116 l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
2117 l_x_old_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
2118 l_x_Header_Scredit_rec        OE_Order_PUB.Header_Scredit_Rec_Type;
2119 l_x_Header_Scredit_tbl        OE_Order_PUB.Header_Scredit_Tbl_Type;
2120 l_x_line_rec                  OE_Order_PUB.Line_Rec_Type;
2121 l_x_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
2122 l_x_Line_Adj_rec              OE_Order_PUB.Line_Adj_Rec_Type;
2123 l_x_Line_Adj_tbl              OE_Order_PUB.Line_Adj_Tbl_Type;
2124 l_x_Line_Scredit_rec          OE_Order_PUB.Line_Scredit_Rec_Type;
2125 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
2126 l_x_Lot_Serial_rec            OE_Order_PUB.Lot_Serial_Rec_Type;
2127 l_x_Lot_Serial_tbl            OE_Order_PUB.Lot_Serial_Tbl_Type;
2128 
2129 
2130 --New out parameters
2131 
2132 l_x_Header_price_Att_tbl      OE_Order_PUB.Header_Price_Att_Tbl_Type;
2133 l_x_Header_Adj_Att_tbl        OE_Order_PUB.Header_Adj_Att_Tbl_Type;
2134 l_x_Header_Adj_Assoc_tbl      OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
2135 
2136 l_x_Line_price_Att_tbl        OE_Order_PUB.Line_Price_Att_Tbl_Type;
2137 l_x_Line_Adj_Att_tbl          OE_Order_PUB.Line_Adj_Att_Tbl_Type;
2138 l_x_Line_Adj_Assoc_tbl        OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
2139 
2140 --
2141 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2142 --
2143 BEGIN
2144 
2145     IF l_debug_level  > 0 THEN
2146         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.DELETE_ROW' , 1 ) ;
2147     END IF;
2148 
2149     -- Set the UI flag
2150     OE_GLOBALS.G_UI_FLAG := TRUE;
2151 
2152     --  Set control flags.
2153     l_control_rec.controlled_operation := TRUE;
2154     l_control_rec.check_security       := TRUE;
2155     l_control_rec.validate_entity      := TRUE;
2156     l_control_rec.write_to_DB          := TRUE;
2157 
2158     l_control_rec.clear_dependents     := FALSE;
2159     l_control_rec.default_attributes   := FALSE;
2160     l_control_rec.change_attributes    := FALSE;
2161     l_control_rec.process              := FALSE;
2162 
2163 
2164     --  Instruct API to retain its caches
2165     l_control_rec.clear_api_cache      := FALSE;
2166     l_control_rec.clear_api_requests   := FALSE;
2167 
2168 
2169     --  Read DB record from cache
2170     Get_Header_Adj
2171     (   p_db_record                   => TRUE
2172     ,   p_price_adjustment_id         => p_price_adjustment_id
2173     ,   x_Header_Adj_rec			   => l_x_Header_Adj_rec
2174     );
2175 
2176 
2177     --  Set Operation.
2178     l_x_Header_Adj_rec.operation := OE_GLOBALS.G_OPR_DELETE;
2179 
2180 
2181     --  Populate Header_Adj table
2182     l_x_Header_Adj_tbl(1) := l_x_Header_Adj_rec;
2183     l_x_Header_Adj_tbl(1).change_reason_code := p_change_reason_code;
2184     l_x_Header_Adj_tbl(1).change_reason_text := p_change_comments;
2185 
2186     -- Call Oe_Order_Adj_Pvt.Header_Adj
2187     oe_order_adj_pvt.Header_Adjs
2188     (	p_init_msg_list	=> FND_API.G_TRUE
2189     ,	p_validation_level 	=> FND_API.G_VALID_LEVEL_FULL
2190     ,	p_control_rec		=> l_control_rec
2191     ,	p_x_header_adj_tbl	=> l_x_Header_Adj_tbl
2192     ,     p_x_old_header_adj_tbl  => l_x_old_header_adj_tbl
2193     );
2194 
2195     /*****************************************************************
2196     --  Call OE_Order_PVT.Process_order
2197     OE_Order_PVT.Process_order
2198     (   p_api_version_number          => 1.0
2199     ,   p_init_msg_list               => FND_API.G_TRUE
2200     ,   x_return_status               => l_return_status
2201     ,   x_msg_count                   => x_msg_count
2202     ,   x_msg_data                    => x_msg_data
2203     ,   p_control_rec                 => l_control_rec
2204     ,   p_x_Header_Adj_tbl              => l_x_Header_Adj_tbl
2205     ,   p_x_header_rec                  => l_x_header_rec
2206  --   ,   x_Header_Adj_tbl              => l_x_Header_Adj_tbl
2207 -- New Parameters
2208     ,   p_x_Header_price_Att_tbl         => l_x_Header_price_Att_tbl
2209     ,   p_x_Header_Adj_Att_tbl           => l_x_Header_Adj_Att_tbl
2210     ,   p_x_Header_Adj_Assoc_tbl         => l_x_Header_Adj_Assoc_tbl
2211 
2212     ,   p_x_Header_Scredit_tbl          => l_x_Header_Scredit_tbl
2213     ,   p_x_line_tbl                    => l_x_line_tbl
2214     ,   p_x_Line_Adj_tbl                => l_x_Line_Adj_tbl
2215 
2216 -- New Parameters
2217     ,   p_x_Line_price_Att_tbl          => l_x_Line_price_Att_tbl
2218     ,   p_x_Line_Adj_Att_tbl            => l_x_Line_Adj_Att_tbl
2219     ,   p_x_Line_Adj_Assoc_tbl          => l_x_Line_Adj_Assoc_tbl
2220 
2221     ,   p_x_Line_Scredit_tbl            => l_x_Line_Scredit_tbl
2222     ,   p_x_Lot_Serial_tbl              => l_x_Lot_Serial_tbl
2223     ,	p_x_action_request_tbl	      => l_action_request_tbl
2224     );
2225     *********************************************************************/
2226 
2227     --  Load OUT parameters.
2228     l_x_Header_Adj_rec := l_x_Header_Adj_tbl(1);
2229 
2230     IF l_x_Header_Adj_rec.return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2231         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2232     ELSIF l_x_Header_Adj_rec.return_status = FND_API.G_RET_STS_ERROR THEN
2233         RAISE FND_API.G_EXC_ERROR;
2234     END IF;
2235 
2236 
2237     --  Clear Header_Adj record cache
2238     Clear_Header_Adj;
2239 
2240 
2241     -- Re-set the UI flag to FALSE
2242     OE_GLOBALS.G_UI_FLAG := FALSE;
2243 
2244     --  Set return status.
2245     x_return_status := FND_API.G_RET_STS_SUCCESS;
2246 
2247 
2248     --  Get message count and data
2249     OE_MSG_PUB.Count_And_Get
2250     (   p_count                       => x_msg_count
2251     ,   p_data                        => x_msg_data
2252     );
2253 
2254     IF l_debug_level  > 0 THEN
2255         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.DELETE_ROW' , 1 ) ;
2256     END IF;
2257 
2258 EXCEPTION
2259 
2260     WHEN FND_API.G_EXC_ERROR THEN
2261 
2262 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2263 
2264         x_return_status := FND_API.G_RET_STS_ERROR;
2265 
2266         --  Get message count and data
2267         OE_MSG_PUB.Count_And_Get
2268         (   p_count                       => x_msg_count
2269         ,   p_data                        => x_msg_data
2270         );
2271 
2272     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2273 
2274 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2275 
2276         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2277 
2278         --  Get message count and data
2279         OE_MSG_PUB.Count_And_Get
2280         (   p_count                       => x_msg_count
2281         ,   p_data                        => x_msg_data
2282         );
2283 
2284     WHEN OTHERS THEN
2285 
2286 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2287 
2288         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2289 
2290         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2291         THEN
2292             OE_MSG_PUB.Add_Exc_Msg
2293             (   G_PKG_NAME
2294             ,   'Delete_Row'
2295             );
2296         END IF;
2297 
2298         --  Get message count and data
2299         OE_MSG_PUB.Count_And_Get
2300         (   p_count                       => x_msg_count
2301         ,   p_data                        => x_msg_data
2302         );
2303 
2304 END Delete_Row;
2305 
2306 
2307 --  Procedure       Process_Entity
2308 --
2309 
2310 
2311 PROCEDURE Process_Delayed_Requests
2312 ( x_return_status OUT NOCOPY VARCHAR2
2313 
2314 , x_msg_count OUT NOCOPY NUMBER
2315 
2316 , x_msg_data OUT NOCOPY VARCHAR2
2317 
2318 ,   p_header_id			    IN  NUMBER
2319 )
2320 IS
2321 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
2322 l_return_status               VARCHAR2(1);
2323 l_action_request_tbl		OE_Order_PUB.Request_Tbl_Type;
2324 l_request_rec		      OE_Order_Pub.Request_Rec_Type;
2325 l_request_tbl		      OE_Order_Pub.Request_Tbl_Type;
2326 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
2327 l_x_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
2328 l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
2329 l_x_Header_Scredit_rec        OE_Order_PUB.Header_Scredit_Rec_Type;
2330 l_x_Header_Scredit_tbl        OE_Order_PUB.Header_Scredit_Tbl_Type;
2331 l_x_line_rec                  OE_Order_PUB.Line_Rec_Type;
2332 l_x_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
2333 l_x_Line_Adj_rec              OE_Order_PUB.Line_Adj_Rec_Type;
2334 l_x_Line_Adj_tbl              OE_Order_PUB.Line_Adj_Tbl_Type;
2335 l_x_Line_Scredit_rec          OE_Order_PUB.Line_Scredit_Rec_Type;
2336 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
2337 l_x_Lot_Serial_rec            OE_Order_PUB.Lot_Serial_Rec_Type;
2338 l_x_Lot_Serial_tbl            OE_Order_PUB.Lot_Serial_Tbl_Type;
2339 
2340 --New out parameters
2341 l_x_Header_price_Att_tbl      OE_Order_PUB.Header_Price_Att_Tbl_Type;
2342 l_x_Header_Adj_Att_tbl        OE_Order_PUB.Header_Adj_Att_Tbl_Type;
2343 l_x_Header_Adj_Assoc_tbl      OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
2344 
2345 l_x_Line_price_Att_tbl        OE_Order_PUB.Line_Price_Att_Tbl_Type;
2346 l_x_Line_Adj_Att_tbl          OE_Order_PUB.Line_Adj_Att_Tbl_Type;
2347 l_x_Line_Adj_Assoc_tbl        OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
2348 
2349 
2350 --
2351 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2352 --
2353 BEGIN
2354 
2355     IF l_debug_level  > 0 THEN
2356         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.PROCESS_DELAYED_REQUESTS' , 1 ) ;
2357     END IF;
2358 
2359    /*
2360 	OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
2361 		(p_request_type   => OE_GLOBALS.G_PRICE_ADJ
2362 		,p_delete        => FND_API.G_TRUE
2363 		,x_return_status => l_return_status
2364 		);
2365 	IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2366 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2367 	ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2368 		RAISE FND_API.G_EXC_ERROR;
2369 	END IF;
2370 
2371      -- process delayed requests for tax calculation.
2372 	OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
2373 		(p_request_type   => OE_GLOBALS.G_TAX_LINE
2374 		,p_delete        => FND_API.G_TRUE
2375 		,x_return_status => l_return_status
2376 		);
2377 	IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2378 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2379 	ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2380 		RAISE FND_API.G_EXC_ERROR;
2381 	END IF;
2382 
2383         oe_debug_pub.ADD('Processing delayed request for Verify Payment for price adjustments changes.', 3);
2384         OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
2385 		(p_request_type   => OE_GLOBALS.G_VERIFY_PAYMENT
2386 		,p_delete        => FND_API.G_TRUE
2387 		,x_return_status => l_return_status
2388 		);
2389      */
2390      Oe_Order_Pvt.Process_Requests_And_Notify
2391     (	p_process_requests	=> TRUE
2392     ,	p_notify			=> TRUE
2393     ,   p_process_ack           => TRUE
2394     ,	x_return_status	=> l_return_status
2395     );
2396 
2397         IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2398 	  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2399 	ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2400 	  RAISE FND_API.G_EXC_ERROR;
2401 	END IF;
2402 
2403     x_return_status := FND_API.G_RET_STS_SUCCESS;
2404 
2405     IF l_debug_level  > 0 THEN
2406         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.PROCESS_DELAYED_REQUESTS' , 1 ) ;
2407     END IF;
2408 Return;
2409 
2410 
2411 /*
2412 
2413     -- Set the UI flag
2414     OE_GLOBALS.G_UI_FLAG := TRUE;
2415 
2416     --  Set control flags.
2417 
2418     l_control_rec.controlled_operation := TRUE;
2419     l_control_rec.process              := TRUE;
2420     l_control_rec.process_entity       := OE_GLOBALS.G_ENTITY_HEADER_ADJ;
2421 
2422     l_control_rec.check_security       := FALSE;
2423     l_control_rec.clear_dependents     := FALSE;
2424     l_control_rec.default_attributes   := FALSE;
2425     l_control_rec.change_attributes    := FALSE;
2426     l_control_rec.validate_entity      := FALSE;
2427     l_control_rec.write_to_DB          := FALSE;
2428 
2429     --  Instruct API to clear its request table
2430 
2431     l_control_rec.clear_api_cache      := FALSE;
2432     l_control_rec.clear_api_requests   := FALSE;
2433 
2434 
2435     -- Assign requests in the order that is to be executed
2436     l_request_rec.request_type	:= OE_GLOBALS.G_CHECK_PERCENTAGE;
2437 
2438     -- 1905650
2439     -- G_PRICE_ADJ request should be logged using entity ALL
2440     l_request_rec.entity_code	:= OE_GLOBALS.G_ENTITY_ALL;
2441     l_request_rec.entity_id	:= p_header_id;
2442     l_request_tbl(1) := l_request_rec;
2443 
2444     l_request_rec.request_type	:= OE_GLOBALS.G_PRICE_ADJ;
2445     l_request_rec.entity_code	:= OE_GLOBALS.G_ENTITY_HEADER_ADJ;
2446     l_request_rec.entity_id	:= p_header_id;
2447     l_request_tbl(2) := l_request_rec;
2448 
2449 
2450     --  Call OE_Order_PVT.Process_order
2451 
2452     OE_Order_PVT.Process_order
2453     (   p_api_version_number          => 1.0
2454     ,   p_init_msg_list               => FND_API.G_TRUE
2455     ,   x_return_status               => l_return_status
2456     ,   x_msg_count                   => x_msg_count
2457     ,   x_msg_data                    => x_msg_data
2458     ,   p_control_rec                 => l_control_rec
2459     ,   p_action_request_tbl	      => l_request_tbl
2460     ,   x_header_rec                  => l_x_header_rec
2461     ,   x_Header_Adj_tbl              => l_x_Header_Adj_tbl
2462 
2463 -- New Parameters
2464     ,   x_Header_price_Att_tbl         => l_x_Header_price_Att_tbl
2465     ,   x_Header_Adj_Att_tbl           => l_x_Header_Adj_Att_tbl
2466     ,   x_Header_Adj_Assoc_tbl         => l_x_Header_Adj_Assoc_tbl
2467 
2468     ,   x_Header_Scredit_tbl          => l_x_Header_Scredit_tbl
2469     ,   x_line_tbl                    => l_x_line_tbl
2470     ,   x_Line_Adj_tbl                => l_x_Line_Adj_tbl
2471 
2472 -- New Parameters
2473     ,   x_Line_price_Att_tbl          => l_x_Line_price_Att_tbl
2474     ,   x_Line_Adj_Att_tbl            => l_x_Line_Adj_Att_tbl
2475     ,   x_Line_Adj_Assoc_tbl          => l_x_Line_Adj_Assoc_tbl
2476 
2477     ,   x_Line_Scredit_tbl            => l_x_Line_Scredit_tbl
2478     ,   x_Lot_Serial_tbl              => l_x_Lot_Serial_tbl
2479     ,	x_action_request_tbl	      => l_action_request_tbl
2480     );
2481 
2482     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2483         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2484     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2485         RAISE FND_API.G_EXC_ERROR;
2486     END IF;
2487 
2488 
2489     -- Re-set the UI flag to FALSE
2490     OE_GLOBALS.G_UI_FLAG := FALSE;
2491 
2492     --  Set return status.
2493 
2494     x_return_status := FND_API.G_RET_STS_SUCCESS;
2495 
2496     --  Get message count and data
2497 
2498     OE_MSG_PUB.Count_And_Get
2499     (   p_count                       => x_msg_count
2500     ,   p_data                        => x_msg_data
2501     );
2502 
2503     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER_ADJ.PROCESS_DELAYED_REQUESTS', 1);
2504 
2505 */
2506 
2507 EXCEPTION
2508 
2509     WHEN FND_API.G_EXC_ERROR THEN
2510 
2511 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2512 
2513         x_return_status := FND_API.G_RET_STS_ERROR;
2514 
2515         --  Get message count and data
2516 
2517         OE_MSG_PUB.Count_And_Get
2518         (   p_count                       => x_msg_count
2519         ,   p_data                        => x_msg_data
2520         );
2521 
2522     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2523 
2524 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2525 
2526         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2527 
2528         --  Get message count and data
2529 
2530         OE_MSG_PUB.Count_And_Get
2531         (   p_count                       => x_msg_count
2532         ,   p_data                        => x_msg_data
2533         );
2534 
2535     WHEN OTHERS THEN
2536 
2537 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2538 
2539         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2540 
2541         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2542         THEN
2543             OE_MSG_PUB.Add_Exc_Msg
2544             (   G_PKG_NAME
2545             ,   'Process_Entity'
2546             );
2547         END IF;
2548 
2549         --  Get message count and data
2550 
2551         OE_MSG_PUB.Count_And_Get
2552         (   p_count                       => x_msg_count
2553         ,   p_data                        => x_msg_data
2554         );
2555 
2556 END Process_Delayed_Requests;
2557 
2558 --  Procedure       lock_Row
2559 --
2560 
2561 
2562 PROCEDURE Lock_Row
2563 ( x_return_status OUT NOCOPY VARCHAR2
2564 
2565 , x_msg_count OUT NOCOPY NUMBER
2566 
2567 , x_msg_data OUT NOCOPY VARCHAR2
2568 
2569 ,   p_price_adjustment_id	IN NUMBER
2570 ,   p_lock_control		 	IN  NUMBER
2571 )
2572 IS
2573 l_return_status               VARCHAR2(1);
2574 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type;
2575 l_Header_Adj_tbl              OE_Order_PUB.Header_Adj_Tbl_Type;
2576 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
2577 l_x_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
2578 l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
2579 
2580 --
2581 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2582 --
2583 BEGIN
2584 
2585     IF l_debug_level  > 0 THEN
2586         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.LOCK_ROW' , 1 ) ;
2587     END IF;
2588 
2589     --  Load Header_Adj record
2590 
2591     l_x_Header_Adj_rec.operation := OE_GLOBALS.G_OPR_LOCK;
2592 
2593     l_x_Header_Adj_rec.lock_control := p_lock_control;
2594     l_x_Header_Adj_rec.price_adjustment_id := p_price_adjustment_id;
2595 
2596     OE_Header_Adj_Util.Lock_Row
2597     ( x_return_status	=> l_return_status
2598     , p_x_header_adj_rec	=> l_x_header_adj_rec
2599     );
2600 
2601     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
2602 
2603         --  Set DB flag and write record to cache.
2604         l_x_Header_Adj_rec.db_flag := FND_API.G_TRUE;
2605 
2606         Write_Header_Adj
2607         (   p_Header_Adj_rec              => l_x_Header_Adj_rec
2608         ,   p_db_record                   => TRUE
2609         );
2610 
2611     END IF;
2612 
2613 
2614     --  Set return status.
2615     x_return_status := l_return_status;
2616 
2617 
2618     --  Get message count and data
2619     OE_MSG_PUB.Count_And_Get
2620     (   p_count                       => x_msg_count
2621     ,   p_data                        => x_msg_data
2622     );
2623 
2624     IF l_debug_level  > 0 THEN
2625         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.LOCK_ROW' , 1 ) ;
2626     END IF;
2627 
2628 EXCEPTION
2629 
2630     WHEN OTHERS THEN
2631 
2632         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2633         THEN
2634             OE_MSG_PUB.Add_Exc_Msg
2635             (   G_PKG_NAME
2636             ,   'Lock_Row'
2637             );
2638         END IF;
2639 
2640         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2641 
2642         --  Get message count and data
2643 
2644         OE_MSG_PUB.Count_And_Get
2645         (   p_count                       => x_msg_count
2646         ,   p_data                        => x_msg_data
2647         );
2648 
2649 
2650 
2651 END Lock_Row;
2652 
2653 --  Procedures maintaining Header_Adj record cache.
2654 
2655 PROCEDURE Write_Header_Adj
2656 (   p_Header_Adj_rec                IN  OE_Order_PUB.Header_Adj_Rec_Type
2657 ,   p_db_record                     IN  BOOLEAN := FALSE
2658 )
2659 IS
2660 --
2661 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2662 --
2663 BEGIN
2664 
2665     IF l_debug_level  > 0 THEN
2666         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.WRITE_HEADER_ADJ' , 1 ) ;
2667     END IF;
2668 
2669     g_Header_Adj_rec := p_Header_Adj_rec;
2670 
2671     IF p_db_record THEN
2672 
2673         g_db_Header_Adj_rec := p_Header_Adj_rec;
2674 
2675     END IF;
2676 
2677     IF l_debug_level  > 0 THEN
2678         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.WRITE_HEADER_ADJ' , 1 ) ;
2679     END IF;
2680 
2681 END Write_Header_Adj;
2682 
2683 
2684 PROCEDURE Get_Header_Adj
2685 (   p_db_record               IN  BOOLEAN := FALSE
2686 ,   p_price_adjustment_id     IN  NUMBER
2687 ,   x_Header_Adj_Rec		IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
2688 )
2689 IS
2690 --
2691 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2692 --
2693 BEGIN
2694 
2695     IF l_debug_level  > 0 THEN
2696         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.GET_HEADER_ADJ' , 1 ) ;
2697     END IF;
2698 
2699     IF  p_price_adjustment_id <> g_Header_Adj_rec.price_adjustment_id
2700     THEN
2701 
2702         --  Query row from DB
2703 
2704         OE_Header_Adj_Util.Query_Row
2705         (   p_price_adjustment_id         => p_price_adjustment_id
2706 	,   x_Header_Adj_rec		  => g_Header_Adj_rec
2707         );
2708 
2709         g_Header_Adj_rec.db_flag       := FND_API.G_TRUE;
2710 
2711         --  Load DB record
2712 
2713         g_db_Header_Adj_rec            := g_Header_Adj_rec;
2714 
2715     END IF;
2716 
2717     IF p_db_record THEN
2718 
2719         -- RETURN g_db_Header_Adj_rec;
2720         x_header_adj_rec := g_db_Header_Adj_rec;
2721 
2722     ELSE
2723 
2724         -- RETURN g_Header_Adj_rec;
2725         x_header_adj_rec := g_Header_Adj_rec;
2726 
2727     END IF;
2728 
2729     IF l_debug_level  > 0 THEN
2730         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.GET_HEADER_ADJ' , 1 ) ;
2731     END IF;
2732 
2733 END Get_Header_Adj;
2734 
2735 
2736 PROCEDURE Clear_Header_Adj
2737 IS
2738 --
2739 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2740 --
2741 BEGIN
2742 
2743     IF l_debug_level  > 0 THEN
2744         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.CLEAR_HEADER_ADJ' , 1 ) ;
2745     END IF;
2746 
2747     g_Header_Adj_rec               := OE_Order_PUB.G_MISS_HEADER_ADJ_REC;
2748     g_db_Header_Adj_rec            := OE_Order_PUB.G_MISS_HEADER_ADJ_REC;
2749 
2750     IF l_debug_level  > 0 THEN
2751         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.CLEAR_HEADER_ADJ' , 1 ) ;
2752     END IF;
2753 
2754 END Clear_Header_Adj;
2755 
2756 END OE_OE_Form_Header_Adj;