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.3.12020000.2 2013/04/04 05:36:31 kadiraju ship $ */
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_pricing_group_sequence  THEN  --bug 12895497
876 		l_x_Header_Adj_rec.pricing_group_sequence := p_attr_value1 ;      --bug 12895497
877     ELSIF p_attr_id = OE_Header_Adj_Util.G_ARITHMETIC_OPERATOR  then
878 		l_x_Header_Adj_rec.arithmetic_operator := p_attr_value1 ;
879 
880     ELSIF p_attr_id = OE_Header_Adj_Util.G_ADJUSTED_AMOUNT  then
881 		l_x_Header_Adj_rec.adjusted_amount := p_attr_value1 ;
882     ELSIF p_attr_id = OE_Header_Adj_Util.G_PRICING_PHASE_ID  then
883 		l_x_Header_Adj_rec.pricing_phase_id := p_attr_value1 ;
884     ELSIF p_attr_id = OE_Header_Adj_Util.G_LIST_LINE_NO then
885 	  l_x_Header_Adj_rec.list_line_no := p_attr_value1 ;
886     ELSIF p_attr_id = OE_Header_Adj_Util.G_SOURCE_SYSTEM_CODE then
887           l_x_Header_Adj_rec.source_system_code := p_attr_value1;
888     ELSIF p_attr_id = OE_Header_Adj_Util.G_BENEFIT_QTY then
889           l_x_Header_Adj_rec.benefit_qty := TO_NUMBER(p_attr_value1);
890     ELSIF p_attr_id = OE_Header_Adj_Util.G_BENEFIT_UOM_CODE then
891           l_x_Header_Adj_rec.benefit_uom_code := p_attr_value1;
892     ELSIF p_attr_id = OE_Header_Adj_Util.G_PRINT_ON_INVOICE_FLAG then
893           l_x_Header_Adj_rec.print_on_invoice_flag := p_attr_value1;
894     ELSIF p_attr_id = OE_Header_Adj_Util.G_EXPIRATION_DATE then
895           --l_x_Header_Adj_rec.expiration_date := TO_DATE(p_attr_value1, l_date_format);
896 	  l_x_Header_Adj_rec.expiration_date := fnd_date.string_TO_DATE(p_attr_value1, l_date_format); --bug5402396
897     ELSIF p_attr_id = OE_Header_Adj_Util.G_REBATE_TRANSACTION_TYPE_CODE then
898           l_x_Header_Adj_rec.rebate_transaction_type_code := p_attr_value1;
899     ELSIF p_attr_id = OE_Header_Adj_Util.G_REBATE_TRANSACTION_REFERENCE then
900           l_x_Header_Adj_rec.rebate_transaction_reference := p_attr_value1;
901     ELSIF p_attr_id = OE_Header_Adj_Util.G_REBATE_PAYMENT_SYSTEM_CODE then
902           l_x_Header_Adj_rec.rebate_payment_system_code := p_attr_value1;
903     ELSIF p_attr_id = OE_Header_Adj_Util.G_REDEEMED_DATE then
904           --l_x_Header_Adj_rec.redeemed_date := TO_DATE(p_attr_value1, l_date_format);
905 	  l_x_Header_Adj_rec.redeemed_date := fnd_date.string_TO_DATE(p_attr_value1, l_date_format); --bug5402396
906     ELSIF p_attr_id = OE_Header_Adj_Util.G_REDEEMED_FLAG then
907           l_x_Header_Adj_rec.redeemed_flag  := p_attr_value1;
908     ELSIF p_attr_id = OE_Header_Adj_Util.G_ACCRUAL_FLAG then
909           l_x_Header_Adj_rec.accrual_flag := p_attr_value1;
910 
911     ELSIF p_attr_id = OE_Header_Adj_Util.G_AUTOMATIC THEN
912         l_x_Header_Adj_rec.automatic_flag := p_attr_value1;
913     ELSIF p_attr_id = OE_Header_Adj_Util.G_PERCENT THEN
914         l_x_Header_Adj_rec.percent := TO_NUMBER(p_attr_value1);
915     --Manual begin
916     ELSIF p_attr_id = OE_Header_Adj_Util.G_LINE THEN
917         If p_attr_value1 is Not Null Then
918           l_x_Header_Adj_rec.line_id := TO_NUMBER(p_attr_value1);
919         Else
920           l_x_Header_Adj_rec.line_id := NULL;
921         End If;
922     --Manual end
923     ELSIF p_attr_id = OE_Header_Adj_Util.G_ESTIMATED_FLAG THEN
924         l_x_Header_Adj_rec.estimated_flag := p_attr_value1;
925     ELSIF p_attr_id = OE_Header_Adj_Util.G_INVOICED_FLAG THEN
926         l_x_Header_Adj_rec.INVOICED_FLAG := p_attr_value1;
927     ELSIF p_attr_id = OE_Header_Adj_Util.G_credit_or_charge_flag THEN
928         l_x_Header_Adj_rec.credit_or_charge_flag := p_attr_value1;
929     ELSIF p_attr_id = OE_Header_Adj_Util.G_include_on_returns_flag THEN
930         l_x_Header_Adj_rec.include_on_returns_flag := p_attr_value1;
931     ELSIF p_attr_id = OE_Header_Adj_Util.G_charge_type_code THEN
932         l_x_Header_Adj_rec.charge_type_code := p_attr_value1;
933     ELSIF p_attr_id = OE_Header_Adj_Util.G_charge_subtype_code THEN
934         l_x_Header_Adj_rec.charge_subtype_code := p_attr_value1;
935     --uom begin
936     ELSIF p_attr_id = OE_Header_Adj_Util.G_operand_per_pqty Then
937 	 l_x_Header_Adj_rec.operand_per_pqty := to_number(p_attr_value1);
938     ELSIF  p_attr_id = OE_Header_Adj_Util.G_adjusted_amount_per_pqty Then
939       l_x_Header_Adj_rec.adjusted_amount_per_pqty := to_number(p_attr_value1);
940     --uom end
941     --Manual begin
942     ELSIF p_attr_id = OE_Header_Adj_Util.G_modifier_level_code Then
943          l_x_Header_Adj_rec.modifier_level_code := p_attr_value1;
944     ELSIF p_attr_id = OE_Header_Adj_Util.G_OVERRIDE_ALLOWED_FLAG Then
945          l_x_Header_Adj_rec.update_allowed:= p_attr_value1;
946     --Manual end
947     ELSIF p_attr_id = OE_Header_Adj_Util.G_CONTEXT
948     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE1
949     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE2
950     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE3
951     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE4
952     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE5
953     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE6
954     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE7
955     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE8
956     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE9
957     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE10
958     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE11
959     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE12
960     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE13
961     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE14
962     OR     p_attr_id = OE_Header_Adj_Util.G_ATTRIBUTE15
963     THEN
964 
965         l_x_Header_Adj_rec.context       := p_context;
966         l_x_Header_Adj_rec.attribute1    := p_attribute1;
967         l_x_Header_Adj_rec.attribute2    := p_attribute2;
968         l_x_Header_Adj_rec.attribute3    := p_attribute3;
969         l_x_Header_Adj_rec.attribute4    := p_attribute4;
970         l_x_Header_Adj_rec.attribute5    := p_attribute5;
971         l_x_Header_Adj_rec.attribute6    := p_attribute6;
972         l_x_Header_Adj_rec.attribute7    := p_attribute7;
973         l_x_Header_Adj_rec.attribute8    := p_attribute8;
974         l_x_Header_Adj_rec.attribute9    := p_attribute9;
975         l_x_Header_Adj_rec.attribute10   := p_attribute10;
976         l_x_Header_Adj_rec.attribute11   := p_attribute11;
977         l_x_Header_Adj_rec.attribute12   := p_attribute12;
978         l_x_Header_Adj_rec.attribute13   := p_attribute13;
979         l_x_Header_Adj_rec.attribute14   := p_attribute14;
980         l_x_Header_Adj_rec.attribute15   := p_attribute15;
981     ELSIF p_attr_id = OE_Header_Adj_Util.G_AC_CONTEXT
982     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE1
983     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE2
984     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE3
985     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE4
986     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE5
987     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE6
988     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE7
989     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE8
990     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE9
991     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE10
992     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE11
993     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE12
994     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE13
995     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE14
996     OR     p_attr_id = OE_Header_Adj_Util.G_AC_ATTRIBUTE15
997     THEN
998 
999         l_x_Header_Adj_rec.ac_context       := p_ac_context;
1000         l_x_Header_Adj_rec.ac_attribute1    := p_ac_attribute1;
1001         l_x_Header_Adj_rec.ac_attribute2    := p_ac_attribute2;
1002         l_x_Header_Adj_rec.ac_attribute3    := p_ac_attribute3;
1003         l_x_Header_Adj_rec.ac_attribute4    := p_ac_attribute4;
1004         l_x_Header_Adj_rec.ac_attribute5    := p_ac_attribute5;
1005         l_x_Header_Adj_rec.ac_attribute6    := p_ac_attribute6;
1006         l_x_Header_Adj_rec.ac_attribute7    := p_ac_attribute7;
1007         l_x_Header_Adj_rec.ac_attribute8    := p_ac_attribute8;
1008         l_x_Header_Adj_rec.ac_attribute9    := p_ac_attribute9;
1009         l_x_Header_Adj_rec.ac_attribute10   := p_ac_attribute10;
1010         l_x_Header_Adj_rec.ac_attribute11   := p_ac_attribute11;
1011         l_x_Header_Adj_rec.ac_attribute12   := p_ac_attribute12;
1012         l_x_Header_Adj_rec.ac_attribute13   := p_ac_attribute13;
1013         l_x_Header_Adj_rec.ac_attribute14   := p_ac_attribute14;
1014         l_x_Header_Adj_rec.ac_attribute15   := p_ac_attribute15;
1015 
1016     ELSE
1017 
1018         --  Unexpected error, unrecognized attribute
1019         stmt:=5;
1020         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1021         THEN
1022             OE_MSG_PUB.Add_Exc_Msg
1023             (   G_PKG_NAME
1024             ,   'Change_Attributes'
1025             ,   'Unrecognized attribute:'||p_attr_id
1026             );
1027         END IF;
1028 
1029         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1030 
1031     END IF;
1032     stmt:=10;
1033 
1034     --  Set Operation.
1035     IF FND_API.To_Boolean(l_x_Header_Adj_rec.db_flag) THEN
1036         l_x_Header_Adj_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
1037     ELSE
1038         l_x_Header_Adj_rec.operation := OE_GLOBALS.G_OPR_CREATE;
1039     END IF;
1040 
1041 
1042     -- Request execution of delayed request on if a discount is
1043     -- applied
1044    /* IF p_attr_id = OE_Header_Adj_Util.G_DISCOUNT_LINE
1045       OR
1046       p_attr_id = OE_Header_Adj_Util.G_DISCOUNT
1047       THEN
1048 
1049        -- Assign requests that are to be executed
1050        l_request_rec.entity_code:= OE_GLOBALS.G_ENTITY_HEADER_ADJ;
1051        l_request_rec.entity_id	:= l_header_adj_rec.price_adjustment_id;
1052        l_request_rec.param1	:= l_header_adj_rec.discount_id;
1053        l_request_rec.param2	:= l_header_adj_rec.header_id;
1054        l_request_rec.request_type	:= OE_GLOBALS.G_CHECK_DUPLICATE;
1055        l_request_tbl(1) := l_request_rec;
1056 
1057     END IF; */
1058 
1059     --  Populate Header_Adj table
1060     -- l_Header_Adj_tbl(1) := l_Header_Adj_rec;
1061     l_x_Header_Adj_tbl(1) := l_x_Header_Adj_rec;
1062     l_old_Header_Adj_tbl(1) := l_old_Header_Adj_rec;
1063 
1064     -- Call Oe_Order_Adj_Pvt.Header_Adj
1065     l_Header_Adj_rec := l_x_Header_Adj_rec;
1066         stmt:=15;
1067     oe_order_adj_pvt.Header_Adjs
1068     (	p_init_msg_list	=> FND_API.G_TRUE
1069     ,	p_validation_level 	=> FND_API.G_VALID_LEVEL_NONE
1070     ,	p_control_rec		=> l_control_rec
1071     ,	p_x_header_adj_tbl	=> l_x_Header_Adj_tbl
1072     ,   p_x_old_header_adj_tbl 	=> l_x_old_header_adj_tbl
1073     );
1074 
1075     --  Unload out tbl
1076     l_x_Header_Adj_rec := l_x_Header_Adj_tbl(1);
1077 
1078             stmt:=20;
1079     IF l_x_header_adj_rec.return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1080         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1081     ELSIF l_x_header_adj_rec.return_status = FND_API.G_RET_STS_ERROR THEN
1082         RAISE FND_API.G_EXC_ERROR;
1083     END IF;
1084                stmt:=25;
1085        OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
1086           (p_request_type   => OE_GLOBALS.G_CHECK_DUPLICATE
1087           ,p_delete        => FND_API.G_TRUE
1088           ,x_return_status => l_return_status
1089           );
1090        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1091                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1092        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1093                  RAISE FND_API.G_EXC_ERROR;
1094        END IF;
1095 
1096 	OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
1097           (p_request_type   => OE_GLOBALS.G_CHECK_FIXED_PRICE
1098           ,p_delete        => FND_API.G_TRUE
1099           ,x_return_status => l_return_status
1100           );
1101 	IF p_enforce_fixed_price = 'YES' THEN
1102        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1103                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1104        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1105                  RAISE FND_API.G_EXC_ERROR;
1106        END IF;
1107 	ELSE
1108 		l_return_status := FND_API.G_RET_STS_SUCCESS;
1109 	END IF;
1110 
1111 
1112             stmt:=30;
1113     --  Init OUT parameters to missing.
1114 
1115     x_price_adjustment_id          := FND_API.G_MISS_NUM;
1116     x_header_id                    := FND_API.G_MISS_NUM;
1117     x_discount_id                  := FND_API.G_MISS_NUM;
1118     x_discount                     := FND_API.G_MISS_CHAR;
1119     x_discount_line_id             := FND_API.G_MISS_NUM;
1120     x_automatic_flag               := FND_API.G_MISS_CHAR;
1121     x_percent                      := FND_API.G_MISS_NUM;
1122     x_line_id                      := FND_API.G_MISS_NUM;
1123     x_context                      := FND_API.G_MISS_CHAR;
1124     x_attribute1                   := FND_API.G_MISS_CHAR;
1125     x_attribute2                   := FND_API.G_MISS_CHAR;
1126     x_attribute3                   := FND_API.G_MISS_CHAR;
1127     x_attribute4                   := FND_API.G_MISS_CHAR;
1128     x_attribute5                   := FND_API.G_MISS_CHAR;
1129     x_attribute6                   := FND_API.G_MISS_CHAR;
1130     x_attribute7                   := FND_API.G_MISS_CHAR;
1131     x_attribute8                   := FND_API.G_MISS_CHAR;
1132     x_attribute9                   := FND_API.G_MISS_CHAR;
1133     x_attribute10                  := FND_API.G_MISS_CHAR;
1134     x_attribute11                  := FND_API.G_MISS_CHAR;
1135     x_attribute12                  := FND_API.G_MISS_CHAR;
1136     x_attribute13                  := FND_API.G_MISS_CHAR;
1137     x_attribute14                  := FND_API.G_MISS_CHAR;
1138     x_attribute15                  := FND_API.G_MISS_CHAR;
1139     x_ac_context                   := FND_API.G_MISS_CHAR;
1140     x_ac_attribute1                := FND_API.G_MISS_CHAR;
1141     x_ac_attribute2                := FND_API.G_MISS_CHAR;
1142     x_ac_attribute3                := FND_API.G_MISS_CHAR;
1143     x_ac_attribute4                := FND_API.G_MISS_CHAR;
1144     x_ac_attribute5                := FND_API.G_MISS_CHAR;
1145     x_ac_attribute6                := FND_API.G_MISS_CHAR;
1146     x_ac_attribute7                := FND_API.G_MISS_CHAR;
1147     x_ac_attribute8                := FND_API.G_MISS_CHAR;
1148     x_ac_attribute9                := FND_API.G_MISS_CHAR;
1149     x_ac_attribute10               := FND_API.G_MISS_CHAR;
1150     x_ac_attribute11               := FND_API.G_MISS_CHAR;
1151     x_ac_attribute12               := FND_API.G_MISS_CHAR;
1152     x_ac_attribute13               := FND_API.G_MISS_CHAR;
1153     x_ac_attribute14               := FND_API.G_MISS_CHAR;
1154     x_ac_attribute15               := FND_API.G_MISS_CHAR;
1155 
1156         stmt:=35;
1157 -- New  columns names added
1158 	x_list_header_id	:= FND_API.G_MISS_NUM;
1159 	x_list_line_id	:= FND_API.G_MISS_NUM;
1160 	x_list_line_type_code := FND_API.G_MISS_CHAR;
1161 	x_modifier_mechanism_type_code := FND_API.G_MISS_CHAR;
1162 	x_modified_from	:= FND_API.G_MISS_CHAR;
1163 	x_modified_to	:= FND_API.G_MISS_CHAR;
1164 	x_update_allowed	:= FND_API.G_MISS_CHAR;
1165 	x_updated_flag	:= FND_API.G_MISS_CHAR;
1166 	x_applied_flag	:= FND_API.G_MISS_CHAR;
1167 	x_change_reason_code := FND_API.G_MISS_CHAR;
1168 	x_change_reason_text := FND_API.G_MISS_CHAR;
1169 	x_operand	:= FND_API.G_MISS_NUM;
1170 	x_arithmetic_operator	:= FND_API.G_MISS_CHAR;
1171 
1172 	x_adjusted_amount	:= FND_API.G_MISS_NUM;
1173 	x_pricing_phase_id	:= FND_API.G_MISS_NUM;
1174         x_list_line_no                          := FND_API.G_MISS_CHAR;
1175         x_source_system_code                    := FND_API.G_MISS_CHAR;
1176         x_benefit_qty                           := FND_API.G_MISS_NUM;
1177         x_benefit_uom_code                      := FND_API.G_MISS_CHAR;
1178         x_print_on_invoice_flag                 := FND_API.G_MISS_CHAR;
1179         x_expiration_date                       := FND_API.G_MISS_DATE;
1180         x_rebate_transaction_type_code          := FND_API.G_MISS_CHAR;
1181         x_rebate_transaction_reference          := FND_API.G_MISS_CHAR;
1182         x_rebate_payment_system_code            := FND_API.G_MISS_CHAR;
1183         x_redeemed_date                         := FND_API.G_MISS_DATE;
1184         x_redeemed_flag                         := FND_API.G_MISS_CHAR;
1185         x_accrual_flag                          := FND_API.G_MISS_CHAR;
1186         x_invoiced_flag                         := FND_API.G_MISS_CHAR;
1187         x_estimated_flag                        := FND_API.G_MISS_CHAR;
1188         x_credit_or_charge_flag                 := FND_API.G_MISS_CHAR;
1189         x_include_on_returns_flag               := FND_API.G_MISS_CHAR;
1190         x_charge_type_code                      := FND_API.G_MISS_CHAR;
1191         x_charge_subtype_code                   := FND_API.G_MISS_CHAR;
1192 
1193     --uom begin
1194 	   x_operand_per_pqty := FND_API.G_MISS_NUM;
1195 	   x_adjusted_amount_per_pqty := FND_API.G_MISS_NUM;
1196     --uom end
1197 
1198     -- Load display out parameters if any
1199     stmt:=40;
1200     l_Header_Adj_val_rec := OE_Header_Adj_Util.Get_Values
1201     (   p_Header_Adj_rec              => l_x_Header_Adj_rec
1202     ,   p_old_Header_Adj_rec          => l_Header_Adj_rec
1203     );
1204    stmt:=45;
1205 -- New column changes :: new code
1206 
1207     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.list_header_id,
1208                             l_Header_Adj_rec.list_header_id)
1209     THEN
1210         x_list_header_id := l_x_Header_Adj_rec.list_header_id;
1211     END IF;
1212 
1213     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.list_line_id,
1214                             l_Header_Adj_rec.list_line_id)
1215     THEN
1216         x_list_line_id := l_x_Header_Adj_rec.list_line_id;
1217     END IF;
1218 
1219     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.list_line_type_code,
1220 
1221                             l_Header_Adj_rec.list_line_type_code)
1222     THEN
1223         x_list_line_type_code := l_x_Header_Adj_rec.list_line_type_code;
1224     END IF;
1225 
1226     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.modifier_mechanism_type_code,
1227 
1228                             l_Header_Adj_rec.modifier_mechanism_type_code)
1229     THEN
1230         x_modifier_mechanism_type_code := l_x_Header_Adj_rec.modifier_mechanism_type_code;
1231     END IF;
1232 
1233     stmt:=50;
1234     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.update_allowed,
1235 
1236                             l_Header_Adj_rec.update_allowed)
1237     THEN
1238         x_update_allowed := l_x_Header_Adj_rec.update_allowed;
1239     END IF;
1240 
1241     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.updated_flag,
1242 
1243                             l_Header_Adj_rec.updated_flag)
1244     THEN
1245         x_updated_flag := l_x_Header_Adj_rec.updated_flag;
1246     END IF;
1247     stmt:=55;
1248     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.modified_from,
1249 
1250                             l_Header_Adj_rec.modified_from)
1251     THEN
1252         x_modified_from := l_x_Header_Adj_rec.modified_from;
1253     END IF;
1254 
1255     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.modified_to,
1256 
1257                             l_Header_Adj_rec.modified_to)
1258     THEN
1259         x_modified_to := l_x_Header_Adj_rec.modified_to;
1260     END IF;
1261     stmt:=60;
1262     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.applied_flag,
1263                             l_Header_Adj_rec.applied_flag)
1264     THEN
1265         x_applied_flag := l_x_Header_Adj_rec.applied_flag;
1266     END IF;
1267     stmt:=65;
1268     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.change_reason_code,
1269                             l_Header_Adj_rec.change_reason_code)
1270     THEN
1271         x_change_reason_code := l_x_Header_Adj_rec.change_reason_code;
1272     END IF;
1273 
1274     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.change_reason_text,
1275                             l_Header_Adj_rec.change_reason_text)
1276     THEN
1277         x_change_reason_text := l_x_Header_Adj_rec.change_reason_text;
1278     END IF;
1279     stmt:=70;
1280     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.operand,
1281                             l_Header_Adj_rec.operand)
1282     THEN
1283         x_operand := l_x_Header_Adj_rec.operand;
1284     END IF;
1285 
1286     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.arithmetic_operator,
1287                             l_Header_Adj_rec.arithmetic_operator)
1288     THEN
1289         x_arithmetic_operator := l_x_Header_Adj_rec.arithmetic_operator;
1290     END IF;
1291 
1292 
1293     --  Return changed attributes.
1294 
1295     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute1,
1296                             l_Header_Adj_rec.attribute1)
1297     THEN
1298         x_attribute1 := l_x_Header_Adj_rec.attribute1;
1299     END IF;
1300     stmt:=75;
1301     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute10,
1302                             l_Header_Adj_rec.attribute10)
1303     THEN
1304         x_attribute10 := l_x_Header_Adj_rec.attribute10;
1305     END IF;
1306 
1307     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute11,
1308                             l_Header_Adj_rec.attribute11)
1309     THEN
1310         x_attribute11 := l_x_Header_Adj_rec.attribute11;
1311     END IF;
1312 
1313     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute12,
1314                             l_Header_Adj_rec.attribute12)
1315     THEN
1316         x_attribute12 := l_x_Header_Adj_rec.attribute12;
1317     END IF;
1318     stmt:=80;
1319     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute13,
1320                             l_Header_Adj_rec.attribute13)
1321     THEN
1322         x_attribute13 := l_x_Header_Adj_rec.attribute13;
1323     END IF;
1324 
1325     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute14,
1326                             l_Header_Adj_rec.attribute14)
1327     THEN
1328         x_attribute14 := l_x_Header_Adj_rec.attribute14;
1329     END IF;
1330     stmt:=85;
1331     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute15,
1332                             l_Header_Adj_rec.attribute15)
1333     THEN
1334         x_attribute15 := l_x_Header_Adj_rec.attribute15;
1335     END IF;
1336 
1337     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute2,
1338                             l_Header_Adj_rec.attribute2)
1339     THEN
1340         x_attribute2 := l_x_Header_Adj_rec.attribute2;
1341     END IF;
1342 
1343     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute3,
1344                             l_Header_Adj_rec.attribute3)
1345     THEN
1346         x_attribute3 := l_x_Header_Adj_rec.attribute3;
1347     END IF;
1348 
1349     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute4,
1350                             l_Header_Adj_rec.attribute4)
1351     THEN
1352         x_attribute4 := l_x_Header_Adj_rec.attribute4;
1353     END IF;
1354 
1355     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute5,
1356                             l_Header_Adj_rec.attribute5)
1357     THEN
1358         x_attribute5 := l_x_Header_Adj_rec.attribute5;
1359     END IF;
1360 
1361     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute6,
1362                             l_Header_Adj_rec.attribute6)
1363     THEN
1364         x_attribute6 := l_x_Header_Adj_rec.attribute6;
1365     END IF;
1366 
1367     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute7,
1368                             l_Header_Adj_rec.attribute7)
1369     THEN
1370         x_attribute7 := l_x_Header_Adj_rec.attribute7;
1371     END IF;
1372 
1373     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute8,
1374                             l_Header_Adj_rec.attribute8)
1375     THEN
1376         x_attribute8 := l_x_Header_Adj_rec.attribute8;
1377     END IF;
1378 
1379     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.attribute9,
1380                             l_Header_Adj_rec.attribute9)
1381     THEN
1382         x_attribute9 := l_x_Header_Adj_rec.attribute9;
1383     END IF;
1384 
1385     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.automatic_flag,
1386                             l_Header_Adj_rec.automatic_flag)
1387     THEN
1388         x_automatic_flag := l_x_Header_Adj_rec.automatic_flag;
1389     END IF;
1390 
1391     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.context,
1392                             l_Header_Adj_rec.context)
1393     THEN
1394         x_context := l_x_Header_Adj_rec.context;
1395     END IF;
1396     stmt:=95;
1397     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.discount_id,
1398                             l_Header_Adj_rec.discount_id)
1399     THEN
1400         x_discount_id := l_x_Header_Adj_rec.discount_id;
1401         x_discount := l_Header_Adj_val_rec.discount;
1402     END IF;
1403 
1404     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.discount_line_id,
1405                             l_Header_Adj_rec.discount_line_id)
1406     THEN
1407         x_discount_line_id := l_x_Header_Adj_rec.discount_line_id;
1408     END IF;
1409 
1410     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.header_id,
1411                             l_Header_Adj_rec.header_id)
1412     THEN
1413         x_header_id := l_x_Header_Adj_rec.header_id;
1414     END IF;
1415     stmt:=100;
1416     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.line_id,
1417                             l_Header_Adj_rec.line_id)
1418     THEN
1419         x_line_id := l_x_Header_Adj_rec.line_id;
1420     END IF;
1421 
1422     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.percent,
1423                             l_Header_Adj_rec.percent)
1424     THEN
1425         x_percent := l_x_Header_Adj_rec.percent;
1426     END IF;
1427 
1428     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.price_adjustment_id,
1429                             l_Header_Adj_rec.price_adjustment_id)
1430     THEN
1431         x_price_adjustment_id := l_x_Header_Adj_rec.price_adjustment_id;
1432     END IF;
1433 
1434 
1435     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.adjusted_amount,
1436                             l_Header_Adj_rec.adjusted_amount)
1437     THEN
1438         x_adjusted_amount := l_x_Header_Adj_rec.adjusted_amount;
1439     END IF;
1440 
1441     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.pricing_phase_id,
1442                             l_Header_Adj_rec.pricing_phase_id)
1443     THEN
1444         x_pricing_phase_id := l_x_Header_Adj_rec.pricing_phase_id;
1445     END IF;
1446 
1447     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.list_line_no, l_Header_Adj_rec.list_line_no)
1448     THEN
1449        x_list_line_no := l_x_Header_Adj_rec.list_line_no;
1450     END IF;
1451 
1452     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.source_system_code, l_Header_Adj_rec.source_system_code)
1453     THEN
1454        x_source_system_code := l_x_Header_Adj_rec.source_system_code;
1455     END IF;
1456 
1457     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.benefit_qty, l_Header_Adj_rec.benefit_qty)
1458     THEN
1459        x_benefit_qty := l_x_Header_Adj_rec.benefit_qty;
1460     END IF;
1461 
1462     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.benefit_uom_code, l_Header_Adj_rec.benefit_uom_code)
1463     THEN
1464        x_benefit_uom_code := l_x_Header_Adj_rec.benefit_uom_code;
1465     END IF;
1466 
1467     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.print_on_invoice_flag, l_Header_Adj_rec.print_on_invoice_flag)
1468     THEN
1469        x_print_on_invoice_flag := l_x_Header_Adj_rec.print_on_invoice_flag;
1470     END IF;
1471 
1472     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.expiration_date, l_Header_Adj_rec.expiration_date)
1473     THEN
1474        x_expiration_date := l_x_Header_Adj_rec.expiration_date;
1475     END IF;
1476 
1477     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.rebate_transaction_type_code, l_Header_Adj_rec.rebate_transaction_type_code)
1478     THEN
1479        x_rebate_transaction_type_code := l_x_Header_Adj_rec.rebate_transaction_type_code;
1480     END IF;
1481 
1482     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.rebate_transaction_reference, l_Header_Adj_rec.rebate_transaction_reference)
1483     THEN
1484        x_rebate_transaction_reference := l_x_Header_Adj_rec.rebate_transaction_reference;
1485     END IF;
1486 
1487     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.rebate_payment_system_code, l_Header_Adj_rec.rebate_payment_system_code)
1488     THEN
1489        x_rebate_payment_system_code := l_x_Header_Adj_rec.rebate_payment_system_code;
1490     END IF;
1491 
1492     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.redeemed_date, l_Header_Adj_rec.redeemed_date)
1493     THEN
1494        x_redeemed_date := l_x_Header_Adj_rec.redeemed_date;
1495     END IF;
1496 
1497     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.redeemed_flag, l_Header_Adj_rec.redeemed_flag)
1498     THEN
1499        x_redeemed_flag := l_x_Header_Adj_rec.redeemed_flag;
1500     END IF;
1501 
1502     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.accrual_flag, l_Header_Adj_rec.accrual_flag)
1503     THEN
1504        x_accrual_flag := l_x_Header_Adj_rec.accrual_flag;
1505     END IF;
1506 
1507     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.estimated_flag, l_Header_Adj_rec.estimated_flag)
1508     THEN
1509        x_estimated_flag := l_x_Header_Adj_rec.estimated_flag;
1510     END IF;
1511 
1512     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.invoiced_flag, l_Header_Adj_rec.invoiced_flag)
1513     THEN
1514        x_invoiced_flag := l_x_Header_Adj_rec.invoiced_flag;
1515     END IF;
1516 
1517     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.charge_type_code, l_Header_Adj_rec.charge_type_code)
1518     THEN
1519        x_charge_type_code := l_x_Header_Adj_rec.charge_type_code;
1520     END IF;
1521 
1522     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.charge_subtype_code, l_Header_Adj_rec.charge_subtype_code)
1523     THEN
1524        x_charge_subtype_code := l_x_Header_Adj_rec.charge_subtype_code;
1525     END IF;
1526 
1527     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.credit_or_charge_flag, l_Header_Adj_rec.credit_or_charge_flag)
1528     THEN
1529        x_credit_or_charge_flag := l_x_Header_Adj_rec.credit_or_charge_flag;
1530     END IF;
1531 
1532     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.include_on_returns_flag, l_Header_Adj_rec.include_on_returns_flag)
1533     THEN
1534        x_include_on_returns_flag := l_x_Header_Adj_rec.include_on_returns_flag;
1535     END IF;
1536 
1537     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute1,
1538                             l_Header_Adj_rec.ac_attribute1)
1539     THEN
1540         x_ac_attribute1 := l_x_Header_Adj_rec.ac_attribute1;
1541     END IF;
1542 
1543     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute10,
1544                             l_Header_Adj_rec.ac_attribute10)
1545     THEN
1546         x_ac_attribute10 := l_x_Header_Adj_rec.ac_attribute10;
1547     END IF;
1548 
1549     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute11,
1550                             l_Header_Adj_rec.ac_attribute11)
1551     THEN
1552         x_ac_attribute11 := l_x_Header_Adj_rec.ac_attribute11;
1553     END IF;
1554 
1555     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute12,
1556                             l_Header_Adj_rec.ac_attribute12)
1557     THEN
1558         x_ac_attribute12 := l_x_Header_Adj_rec.ac_attribute12;
1559     END IF;
1560 
1561     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute13,
1562                             l_Header_Adj_rec.ac_attribute13)
1563     THEN
1564         x_ac_attribute13 := l_x_Header_Adj_rec.ac_attribute13;
1565     END IF;
1566 
1567     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute14,
1568                             l_Header_Adj_rec.ac_attribute14)
1569     THEN
1570         x_ac_attribute14 := l_x_Header_Adj_rec.ac_attribute14;
1571     END IF;
1572 
1573     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute15,
1574                             l_Header_Adj_rec.ac_attribute15)
1575     THEN
1576         x_ac_attribute15 := l_x_Header_Adj_rec.ac_attribute15;
1577     END IF;
1578 
1579     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute2,
1580                             l_Header_Adj_rec.ac_attribute2)
1581     THEN
1582         x_ac_attribute2 := l_x_Header_Adj_rec.ac_attribute2;
1583     END IF;
1584 
1585     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute3,
1586                             l_Header_Adj_rec.ac_attribute3)
1587     THEN
1588         x_ac_attribute3 := l_x_Header_Adj_rec.ac_attribute3;
1589     END IF;
1590 
1591     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute4,
1592                             l_Header_Adj_rec.ac_attribute4)
1593     THEN
1594         x_ac_attribute4 := l_x_Header_Adj_rec.ac_attribute4;
1595     END IF;
1596 
1597     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute5,
1598                             l_Header_Adj_rec.ac_attribute5)
1599     THEN
1600         x_ac_attribute5 := l_x_Header_Adj_rec.ac_attribute5;
1601     END IF;
1602 
1603     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute6,
1604                             l_Header_Adj_rec.ac_attribute6)
1605     THEN
1606         x_ac_attribute6 := l_x_Header_Adj_rec.ac_attribute6;
1607     END IF;
1608 
1609     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute7,
1610                             l_Header_Adj_rec.ac_attribute7)
1611     THEN
1612         x_ac_attribute7 := l_x_Header_Adj_rec.ac_attribute7;
1613     END IF;
1614 
1615     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute8,
1616                             l_Header_Adj_rec.ac_attribute8)
1617     THEN
1618         x_ac_attribute8 := l_x_Header_Adj_rec.ac_attribute8;
1619     END IF;
1620 
1621     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_attribute9,
1622                             l_Header_Adj_rec.ac_attribute9)
1623     THEN
1624         x_ac_attribute9 := l_x_Header_Adj_rec.ac_attribute9;
1625     END IF;
1626 
1627     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.ac_context,
1628                             l_Header_Adj_rec.ac_context)
1629     THEN
1630         x_ac_context := l_x_Header_Adj_rec.ac_context;
1631     END IF;
1632     stmt:=120;
1633     --uom begin
1634     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.operand_per_pqty,
1635                             l_Header_Adj_rec.operand_per_pqty)
1636     THEN
1637 	   x_operand_per_pqty := l_x_Header_Adj_rec.operand_per_pqty;
1638     END IF;
1639 
1640     IF NOT OE_GLOBALS.Equal(l_x_Header_Adj_rec.adjusted_amount_per_pqty,
1641   				        l_Header_Adj_rec.adjusted_amount_per_pqty)
1642     THEN
1643 	 x_adjusted_amount_per_pqty := l_x_Header_Adj_rec.adjusted_amount_per_pqty;
1644     END IF;
1645 
1646    --uom end
1647     stmt:=130;
1648 
1649     --  Write to cache.
1650 
1651     Write_Header_Adj
1652     (   p_Header_Adj_rec              => l_x_Header_Adj_rec
1653     );
1654 
1655    stmt:=140;
1656     -- Re-set the UI flag to FALSE
1657     OE_GLOBALS.G_UI_FLAG := FALSE;
1658 
1659     --  Set return status.
1660     x_return_status := FND_API.G_RET_STS_SUCCESS;
1661 
1662 
1663     --  Get message count and data
1664     OE_MSG_PUB.Count_And_Get
1665     (   p_count                       => x_msg_count
1666     ,   p_data                        => x_msg_data
1667     );
1668 
1669     IF l_debug_level  > 0 THEN
1670         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.CHANGE_ATTRIBUTES' , 1 ) ;
1671     END IF;
1672 
1673 EXCEPTION
1674 
1675     WHEN FND_API.G_EXC_ERROR THEN
1676 
1677 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1678 
1679         x_return_status := FND_API.G_RET_STS_ERROR;
1680 
1681         --  Get message count and data
1682 
1683 /* Msg is commented out nocopy for the bug #2485694 */
1684 
1685          /* OE_MSG_PUB.Add_Exc_Msg
1686             (   G_PKG_NAME
1687             ,   'Change_Attributes'||stmt
1688             ); */
1689 
1690         IF l_debug_level  > 0 THEN
1691             oe_debug_pub.add(  G_PKG_NAME|| 'CHANGE_ATTRIBUTES'||STMT , 1 ) ;
1692         END IF;
1693 
1694         OE_MSG_PUB.Count_And_Get
1695         (   p_count                       => x_msg_count
1696         ,   p_data                        => x_msg_data
1697         );
1698 
1699         IF l_debug_level  > 0 THEN
1700             oe_debug_pub.add(  'STMT:'||STMT ) ;
1701         END IF;
1702 	ROLLBACK TO SAVEPOINT change_attributes;
1703 
1704     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1705            IF l_debug_level  > 0 THEN
1706                oe_debug_pub.add(  'STMT:'||STMT ) ;
1707            END IF;
1708 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1709 
1710         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1711 
1712         --  Get message count and data
1713          IF l_debug_level  > 0 THEN
1714              oe_debug_pub.add(  'STMT:'||STMT ) ;
1715          END IF;
1716          OE_MSG_PUB.Add_Exc_Msg
1717             (   G_PKG_NAME
1718             ,   'Change_Attributes:'||stmt
1719             );
1720         OE_MSG_PUB.Count_And_Get
1721         (   p_count                       => x_msg_count
1722         ,   p_data                        => x_msg_data
1723         );
1724 
1725 	ROLLBACK TO SAVEPOINT change_attributes;
1726 
1727     WHEN OTHERS THEN
1728 
1729 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1730 
1731         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1732 
1733         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1734         THEN
1735             OE_MSG_PUB.Add_Exc_Msg
1736             (   G_PKG_NAME
1737             ,   'Change_Attributes:'||stmt
1738             );
1739         END IF;
1740 
1741         --  Get message count and data
1742 
1743         OE_MSG_PUB.Count_And_Get
1744         (   p_count                       => x_msg_count
1745         ,   p_data                        => x_msg_data
1746         );
1747 
1748 	ROLLBACK TO SAVEPOINT change_attributes;
1749 
1750 END Change_Attributes;
1751 
1752 
1753 --  Procedure       Validate_And_Write
1754 --
1755 
1756 
1757 PROCEDURE Validate_And_Write
1758 ( x_return_status OUT NOCOPY VARCHAR2
1759 
1760 , x_msg_count OUT NOCOPY NUMBER
1761 
1762 , x_msg_data OUT NOCOPY VARCHAR2
1763 
1764 ,   p_price_adjustment_id           IN  NUMBER
1765 , x_creation_date OUT NOCOPY DATE
1766 
1767 , x_created_by OUT NOCOPY NUMBER
1768 
1769 , x_last_update_date OUT NOCOPY DATE
1770 
1771 , x_last_updated_by OUT NOCOPY NUMBER
1772 
1773 , x_last_update_login OUT NOCOPY NUMBER
1774 
1775 ,   p_ok_flag			    		 IN  VARCHAR2
1776 , x_program_id OUT NOCOPY NUMBER
1777 
1778 , x_program_application_id OUT NOCOPY NUMBER
1779 
1780 , x_program_update_date OUT NOCOPY DATE
1781 
1782 , x_request_id OUT NOCOPY NUMBER
1783 
1784 , x_lock_control OUT NOCOPY NUMBER
1785 
1786 )
1787 IS
1788 l_request_rec		      OE_order_pub.Request_Rec_Type;
1789 l_request_tbl		      OE_order_pub.Request_Tbl_Type;
1790 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type;
1791 l_old_Header_Adj_rec          OE_Order_PUB.Header_Adj_Rec_Type;
1792 l_x_old_Header_Adj_rec          OE_Order_PUB.Header_Adj_Rec_Type;
1793 l_Header_Adj_tbl              OE_Order_PUB.Header_Adj_Tbl_Type;
1794 l_old_Header_Adj_tbl          OE_Order_PUB.Header_Adj_Tbl_Type;
1795 l_x_old_Header_Adj_tbl          OE_Order_PUB.Header_Adj_Tbl_Type;
1796 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
1797 l_return_status               VARCHAR2(1);
1798 l_action_request_tbl		OE_Order_PUB.Request_Tbl_Type;
1799 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
1800 l_x_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
1801 l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
1802 l_x_Header_Scredit_rec        OE_Order_PUB.Header_Scredit_Rec_Type;
1803 l_x_Header_Scredit_tbl        OE_Order_PUB.Header_Scredit_Tbl_Type;
1804 l_x_line_rec                  OE_Order_PUB.Line_Rec_Type;
1805 l_x_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
1806 l_x_Line_Adj_rec              OE_Order_PUB.Line_Adj_Rec_Type;
1807 l_x_Line_Adj_tbl              OE_Order_PUB.Line_Adj_Tbl_Type;
1808 l_x_Line_Scredit_rec          OE_Order_PUB.Line_Scredit_Rec_Type;
1809 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
1810 l_x_Lot_Serial_rec            OE_Order_PUB.Lot_Serial_Rec_Type;
1811 l_x_Lot_Serial_tbl            OE_Order_PUB.Lot_Serial_Tbl_Type;
1812 
1813 --New out parameters
1814 l_x_Header_price_Att_tbl      OE_Order_PUB.Header_Price_Att_Tbl_Type;
1815 l_x_Header_Adj_Att_tbl        OE_Order_PUB.Header_Adj_Att_Tbl_Type;
1816 l_x_Header_Adj_Assoc_tbl      OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
1817 
1818 l_x_Line_price_Att_tbl        OE_Order_PUB.Line_Price_Att_Tbl_Type;
1819 l_x_Line_Adj_Att_tbl          OE_Order_PUB.Line_Adj_Att_Tbl_Type;
1820 l_x_Line_Adj_Assoc_tbl        OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
1821 
1822 --
1823 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1824 --
1825 BEGIN
1826     --3340264{
1827       x_return_status := FND_API.G_RET_STS_SUCCESS;
1828     --3340264}
1829     IF l_debug_level  > 0 THEN
1830         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.VALIDATE_AND_WRITE' , 1 ) ;
1831     END IF;
1832 
1833     -- Set the UI flag
1834     OE_GLOBALS.G_UI_FLAG := TRUE;
1835 
1836     --  Set control flags.
1837     l_control_rec.controlled_operation := TRUE;
1838     l_control_rec.validate_entity      := TRUE;
1839     l_control_rec.write_to_DB          := TRUE;
1840 
1841     l_control_rec.check_security       := FALSE;
1842     l_control_rec.clear_dependents     := FALSE;
1843     l_control_rec.default_attributes   := FALSE;
1844     l_control_rec.change_attributes    := FALSE;
1845     l_control_rec.process              := FALSE;
1846     l_control_rec.process_entity       := OE_GLOBALS.G_ENTITY_HEADER_ADJ;
1847 
1848 
1849     --  Instruct API to retain its caches
1850     l_control_rec.clear_api_cache      := FALSE;
1851     l_control_rec.clear_api_requests   := FALSE;
1852 
1853 
1854     -- Save point to rollback to if there were
1855     -- any errors
1856     SAVEPOINT validate_and_write;
1857 
1858 
1859     --  Read Header_Adj from cache
1860     Get_Header_Adj
1861     (   p_db_record                   => TRUE
1862     ,   p_price_adjustment_id         => p_price_adjustment_id
1863     ,   x_Header_Adj_Rec			   => l_x_old_Header_Adj_rec
1864     );
1865 
1866     Get_Header_Adj
1867     (   p_db_record                   => FALSE
1868     ,   p_price_adjustment_id         => p_price_adjustment_id
1869     ,   x_Header_Adj_rec			   => l_x_Header_Adj_rec
1870     );
1871 
1872     --  Set Operation.
1873     --3340264{
1874     IF(l_x_Header_Adj_rec.db_flag= FND_API.G_MISS_CHAR) THEN
1875        return;
1876     ELSE
1877        IF FND_API.To_Boolean(l_x_Header_Adj_rec.db_flag) THEN
1878           l_x_Header_Adj_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
1879        ELSE
1880           l_x_Header_Adj_rec.operation := OE_GLOBALS.G_OPR_CREATE;
1881        END IF;
1882     END IF;
1883     --3340264}
1884 
1885     --  Populate Header_Adj table
1886     l_x_Header_Adj_tbl(1) := l_x_Header_Adj_rec;
1887     l_x_old_Header_Adj_tbl(1) := l_x_old_Header_Adj_rec;
1888 
1889     -- Call Oe_Order_Adj_Pvt.Header_Adj
1890     oe_order_adj_pvt.Header_Adjs
1891     (	p_init_msg_list	=> FND_API.G_TRUE
1892     ,	p_validation_level 	=> FND_API.G_VALID_LEVEL_FULL
1893     ,	p_control_rec		=> l_control_rec
1894     ,	p_x_header_adj_tbl	=> l_x_Header_Adj_tbl
1895     ,   p_x_old_header_adj_tbl  => l_x_old_header_adj_tbl
1896     );
1897 
1898     /***************************************************************
1899 ** commented out nocopy for performance changes **
1900 
1901     --  Call OE_Order_PVT.Process_order
1902     OE_Order_PVT.Process_order
1903     (   p_api_version_number          => 1.0
1904     ,   p_init_msg_list               => FND_API.G_TRUE
1905     ,   x_return_status               => l_return_status
1906     ,   x_msg_count                   => x_msg_count
1907     ,   x_msg_data                    => x_msg_data
1908     ,   p_control_rec                 => l_control_rec
1909     --,   p_request_tbl		      => l_request_tbl
1910     ,   p_Header_Adj_tbl              => l_Header_Adj_tbl
1911     ,   p_old_Header_Adj_tbl          => l_old_Header_Adj_tbl
1912     ,   x_header_rec                  => l_x_header_rec
1913     ,   x_Header_Adj_tbl              => l_x_Header_Adj_tbl
1914  -- New Parameters
1915     ,   x_Header_price_Att_tbl         => l_x_Header_price_Att_tbl
1916     ,   x_Header_Adj_Att_tbl           => l_x_Header_Adj_Att_tbl
1917     ,   x_Header_Adj_Assoc_tbl         => l_x_Header_Adj_Assoc_tbl
1918 
1919     ,   x_Header_Scredit_tbl          => l_x_Header_Scredit_tbl
1920     ,   x_line_tbl                    => l_x_line_tbl
1921     ,   x_Line_Adj_tbl                => l_x_Line_Adj_tbl
1922 
1923 -- New Parameters
1924     ,   x_Line_price_Att_tbl          => l_x_Line_price_Att_tbl
1925     ,   x_Line_Adj_Att_tbl            => l_x_Line_Adj_Att_tbl
1926     ,   x_Line_Adj_Assoc_tbl          => l_x_Line_Adj_Assoc_tbl
1927 
1928     ,   x_Line_Scredit_tbl            => l_x_Line_Scredit_tbl
1929     ,   x_Lot_Serial_tbl              => l_x_Lot_Serial_tbl
1930     ,	x_action_request_tbl	      => l_action_request_tbl
1931     );
1932 
1933     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1934         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1935     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1936         RAISE FND_API.G_EXC_ERROR;
1937     END IF;
1938     **********************************************************/
1939 
1940     --  Load OUT parameters.
1941     l_x_Header_Adj_rec := l_x_Header_Adj_tbl(1);
1942 
1943     IF l_x_header_adj_rec.return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1944         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1945     ELSIF l_x_header_adj_rec.return_status = FND_API.G_RET_STS_ERROR THEN
1946         RAISE FND_API.G_EXC_ERROR;
1947     END IF;
1948 
1949     /*******
1950     Oe_Order_Pvt.Process_Requests_And_Notify
1951     (	p_process_requests	=> FALSE
1952     ,	p_notify		=> TRUE
1953     ,	p_header_adj_tbl	=> l_x_header_adj_tbl
1954     ,	p_old_header_adj_tbl	=> l_x_old_header_adj_tbl
1955     ,	x_return_status		=> l_return_status
1956     );
1957 
1958     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1959         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1960     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1961         RAISE FND_API.G_EXC_ERROR;
1962     END IF;
1963     *******/
1964 
1965     x_lock_control := l_x_Header_Adj_rec.lock_control;
1966 
1967 	OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
1968           (p_request_type   => OE_GLOBALS.G_CHECK_PERCENTAGE
1969           ,p_delete        => FND_API.G_TRUE
1970           ,x_return_status => l_return_status
1971           );
1972        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1973                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1974        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1975                  RAISE FND_API.G_EXC_ERROR;
1976        END IF;
1977 
1978 --TaxER start
1979      IF nvl(FND_PROFILE.VALUE('ONT_DELAY_TAX_CALC'), 'N') = 'N' THEN
1980        OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
1981           (p_request_type   => OE_GLOBALS.G_TAX_LINE
1982           ,p_delete        => FND_API.G_TRUE
1983           ,x_return_status => l_return_status
1984           );
1985        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1986                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1987        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1988                  RAISE FND_API.G_EXC_ERROR;
1989        END IF;
1990      END IF;
1991 --TaxER end
1992 
1993        -- fixed bug 3271297
1994        OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
1995           (p_request_type   => OE_GLOBALS.G_VERIFY_PAYMENT
1996           ,p_delete        => FND_API.G_TRUE
1997           ,x_return_status => l_return_status
1998           );
1999        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2000                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2001        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2002                  RAISE FND_API.G_EXC_ERROR;
2003        END IF;
2004 
2005 	/*****
2006 	IF p_ok_flag = 'Y' THEN
2007 	OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
2008           (p_request_type   => OE_GLOBALS.G_PRICE_ADJ
2009           ,p_delete        => FND_API.G_TRUE
2010           ,x_return_status => l_return_status
2011           );
2012        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2013                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2014        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2015                  RAISE FND_API.G_EXC_ERROR;
2016        END IF;
2017 	END IF;
2018 	******/
2019 
2020     x_creation_date                := l_x_Header_Adj_rec.creation_date;
2021     x_created_by                   := l_x_Header_Adj_rec.created_by;
2022     x_last_update_date             := l_x_Header_Adj_rec.last_update_date;
2023     x_last_updated_by              := l_x_Header_Adj_rec.last_updated_by;
2024     x_last_update_login            := l_x_Header_Adj_rec.last_update_login;
2025     x_program_id            		:= l_x_Line_Adj_rec.program_id;
2026     x_program_application_id      	:= l_x_Line_Adj_rec.program_application_id;
2027     x_program_update_date      	:= l_x_Line_Adj_rec.program_update_date;
2028     x_request_id      			:= l_x_Line_Adj_rec.request_id;
2029 
2030 
2031     --  Clear Header_Adj record cache
2032     Clear_Header_Adj;
2033 
2034 
2035     -- Re-set the UI flag to FALSE
2036     OE_GLOBALS.G_UI_FLAG := FALSE;
2037 
2038     --  Set return status.
2039     x_return_status := FND_API.G_RET_STS_SUCCESS;
2040 
2041 
2042     --  Get message count and data
2043     OE_MSG_PUB.Count_And_Get
2044     (   p_count                       => x_msg_count
2045     ,   p_data                        => x_msg_data
2046     );
2047 
2048     IF l_debug_level  > 0 THEN
2049         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.VALIDATE_AND_WRITE' , 1 ) ;
2050     END IF;
2051 
2052 EXCEPTION
2053 
2054    WHEN FND_API.G_EXC_ERROR THEN
2055 
2056 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2057 
2058       x_return_status := FND_API.G_RET_STS_ERROR;
2059 
2060       --  Get message count and data
2061 
2062       OE_MSG_PUB.Count_And_Get
2063         (   p_count                       => x_msg_count
2064         ,   p_data                        => x_msg_data
2065         );
2066 
2067       ROLLBACK TO SAVEPOINT validate_and_write;
2068 
2069    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2070 
2071 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2072 
2073         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2074 
2075         --  Get message count and data
2076 
2077         OE_MSG_PUB.Count_And_Get
2078         (   p_count                       => x_msg_count
2079         ,   p_data                        => x_msg_data
2080         );
2081 
2082 	ROLLBACK TO SAVEPOINT validate_and_write;
2083 
2084     WHEN OTHERS THEN
2085 
2086 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2087 
2088         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2089 
2090         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2091         THEN
2092             OE_MSG_PUB.Add_Exc_Msg
2093             (   G_PKG_NAME
2094             ,   'Validate_And_Write'
2095             );
2096         END IF;
2097 
2098         --  Get message count and data
2099 
2100         OE_MSG_PUB.Count_And_Get
2101         (   p_count                       => x_msg_count
2102         ,   p_data                        => x_msg_data
2103         );
2104 
2105 	ROLLBACK TO SAVEPOINT validate_and_write;
2106 
2107 END Validate_And_Write;
2108 
2109 
2110 --  Procedure       Delete_Row
2111 --
2112 
2113 PROCEDURE Delete_Row
2114 ( x_return_status OUT NOCOPY VARCHAR2
2115 
2116 , x_msg_count OUT NOCOPY NUMBER
2117 
2118 , x_msg_data OUT NOCOPY VARCHAR2
2119 
2120 ,   p_price_adjustment_id           IN  NUMBER
2121 , p_change_reason_code            IN  VARCHAR2 Default Null
2122 , p_change_comments               IN  VARCHAR2 Default Null
2123 )
2124 IS
2125 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type;
2126 l_Header_Adj_tbl              OE_Order_PUB.Header_Adj_Tbl_Type;
2127 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
2128 l_return_status               VARCHAR2(1);
2129 l_action_request_tbl		OE_Order_PUB.Request_Tbl_Type;
2130 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
2131 l_x_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
2132 l_x_old_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
2133 l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
2134 l_x_old_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
2135 l_x_Header_Scredit_rec        OE_Order_PUB.Header_Scredit_Rec_Type;
2136 l_x_Header_Scredit_tbl        OE_Order_PUB.Header_Scredit_Tbl_Type;
2137 l_x_line_rec                  OE_Order_PUB.Line_Rec_Type;
2138 l_x_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
2139 l_x_Line_Adj_rec              OE_Order_PUB.Line_Adj_Rec_Type;
2140 l_x_Line_Adj_tbl              OE_Order_PUB.Line_Adj_Tbl_Type;
2141 l_x_Line_Scredit_rec          OE_Order_PUB.Line_Scredit_Rec_Type;
2142 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
2143 l_x_Lot_Serial_rec            OE_Order_PUB.Lot_Serial_Rec_Type;
2144 l_x_Lot_Serial_tbl            OE_Order_PUB.Lot_Serial_Tbl_Type;
2145 
2146 
2147 --New out parameters
2148 
2149 l_x_Header_price_Att_tbl      OE_Order_PUB.Header_Price_Att_Tbl_Type;
2150 l_x_Header_Adj_Att_tbl        OE_Order_PUB.Header_Adj_Att_Tbl_Type;
2151 l_x_Header_Adj_Assoc_tbl      OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
2152 
2153 l_x_Line_price_Att_tbl        OE_Order_PUB.Line_Price_Att_Tbl_Type;
2154 l_x_Line_Adj_Att_tbl          OE_Order_PUB.Line_Adj_Att_Tbl_Type;
2155 l_x_Line_Adj_Assoc_tbl        OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
2156 
2157 --
2158 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2159 --
2160 BEGIN
2161 
2162     IF l_debug_level  > 0 THEN
2163         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.DELETE_ROW' , 1 ) ;
2164     END IF;
2165 
2166     -- Set the UI flag
2167     OE_GLOBALS.G_UI_FLAG := TRUE;
2168 
2169     --  Set control flags.
2170     l_control_rec.controlled_operation := TRUE;
2171     l_control_rec.check_security       := TRUE;
2172     l_control_rec.validate_entity      := TRUE;
2173     l_control_rec.write_to_DB          := TRUE;
2174 
2175     l_control_rec.clear_dependents     := FALSE;
2176     l_control_rec.default_attributes   := FALSE;
2177     l_control_rec.change_attributes    := FALSE;
2178     l_control_rec.process              := FALSE;
2179 
2180 
2181     --  Instruct API to retain its caches
2182     l_control_rec.clear_api_cache      := FALSE;
2183     l_control_rec.clear_api_requests   := FALSE;
2184 
2185 
2186     --  Read DB record from cache
2187     Get_Header_Adj
2188     (   p_db_record                   => TRUE
2189     ,   p_price_adjustment_id         => p_price_adjustment_id
2190     ,   x_Header_Adj_rec			   => l_x_Header_Adj_rec
2191     );
2192 
2193 
2194     --  Set Operation.
2195     l_x_Header_Adj_rec.operation := OE_GLOBALS.G_OPR_DELETE;
2196 
2197 
2198     --  Populate Header_Adj table
2199     l_x_Header_Adj_tbl(1) := l_x_Header_Adj_rec;
2200     l_x_Header_Adj_tbl(1).change_reason_code := p_change_reason_code;
2201     l_x_Header_Adj_tbl(1).change_reason_text := p_change_comments;
2202 
2203     -- Call Oe_Order_Adj_Pvt.Header_Adj
2204     oe_order_adj_pvt.Header_Adjs
2205     (	p_init_msg_list	=> FND_API.G_TRUE
2206     ,	p_validation_level 	=> FND_API.G_VALID_LEVEL_FULL
2207     ,	p_control_rec		=> l_control_rec
2208     ,	p_x_header_adj_tbl	=> l_x_Header_Adj_tbl
2209     ,     p_x_old_header_adj_tbl  => l_x_old_header_adj_tbl
2210     );
2211 
2212     /*****************************************************************
2213     --  Call OE_Order_PVT.Process_order
2214     OE_Order_PVT.Process_order
2215     (   p_api_version_number          => 1.0
2216     ,   p_init_msg_list               => FND_API.G_TRUE
2217     ,   x_return_status               => l_return_status
2218     ,   x_msg_count                   => x_msg_count
2219     ,   x_msg_data                    => x_msg_data
2220     ,   p_control_rec                 => l_control_rec
2221     ,   p_x_Header_Adj_tbl              => l_x_Header_Adj_tbl
2222     ,   p_x_header_rec                  => l_x_header_rec
2223  --   ,   x_Header_Adj_tbl              => l_x_Header_Adj_tbl
2224 -- New Parameters
2225     ,   p_x_Header_price_Att_tbl         => l_x_Header_price_Att_tbl
2226     ,   p_x_Header_Adj_Att_tbl           => l_x_Header_Adj_Att_tbl
2227     ,   p_x_Header_Adj_Assoc_tbl         => l_x_Header_Adj_Assoc_tbl
2228 
2229     ,   p_x_Header_Scredit_tbl          => l_x_Header_Scredit_tbl
2230     ,   p_x_line_tbl                    => l_x_line_tbl
2231     ,   p_x_Line_Adj_tbl                => l_x_Line_Adj_tbl
2232 
2233 -- New Parameters
2234     ,   p_x_Line_price_Att_tbl          => l_x_Line_price_Att_tbl
2235     ,   p_x_Line_Adj_Att_tbl            => l_x_Line_Adj_Att_tbl
2236     ,   p_x_Line_Adj_Assoc_tbl          => l_x_Line_Adj_Assoc_tbl
2237 
2238     ,   p_x_Line_Scredit_tbl            => l_x_Line_Scredit_tbl
2239     ,   p_x_Lot_Serial_tbl              => l_x_Lot_Serial_tbl
2240     ,	p_x_action_request_tbl	      => l_action_request_tbl
2241     );
2242     *********************************************************************/
2243 
2244     --  Load OUT parameters.
2245     l_x_Header_Adj_rec := l_x_Header_Adj_tbl(1);
2246 
2247     IF l_x_Header_Adj_rec.return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2248         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2249     ELSIF l_x_Header_Adj_rec.return_status = FND_API.G_RET_STS_ERROR THEN
2250         RAISE FND_API.G_EXC_ERROR;
2251     END IF;
2252 
2253 
2254     --  Clear Header_Adj record cache
2255     Clear_Header_Adj;
2256 
2257 
2258     -- Re-set the UI flag to FALSE
2259     OE_GLOBALS.G_UI_FLAG := FALSE;
2260 
2261     --  Set return status.
2262     x_return_status := FND_API.G_RET_STS_SUCCESS;
2263 
2264 
2265     --  Get message count and data
2266     OE_MSG_PUB.Count_And_Get
2267     (   p_count                       => x_msg_count
2268     ,   p_data                        => x_msg_data
2269     );
2270 
2271     IF l_debug_level  > 0 THEN
2272         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.DELETE_ROW' , 1 ) ;
2273     END IF;
2274 
2275 EXCEPTION
2276 
2277     WHEN FND_API.G_EXC_ERROR THEN
2278 
2279 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2280 
2281         x_return_status := FND_API.G_RET_STS_ERROR;
2282 
2283         --  Get message count and data
2284         OE_MSG_PUB.Count_And_Get
2285         (   p_count                       => x_msg_count
2286         ,   p_data                        => x_msg_data
2287         );
2288 
2289     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2290 
2291 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2292 
2293         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2294 
2295         --  Get message count and data
2296         OE_MSG_PUB.Count_And_Get
2297         (   p_count                       => x_msg_count
2298         ,   p_data                        => x_msg_data
2299         );
2300 
2301     WHEN OTHERS THEN
2302 
2303 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2304 
2305         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2306 
2307         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2308         THEN
2309             OE_MSG_PUB.Add_Exc_Msg
2310             (   G_PKG_NAME
2311             ,   'Delete_Row'
2312             );
2313         END IF;
2314 
2315         --  Get message count and data
2316         OE_MSG_PUB.Count_And_Get
2317         (   p_count                       => x_msg_count
2318         ,   p_data                        => x_msg_data
2319         );
2320 
2321 END Delete_Row;
2322 
2323 
2324 --  Procedure       Process_Entity
2325 --
2326 
2327 
2328 PROCEDURE Process_Delayed_Requests
2329 ( x_return_status OUT NOCOPY VARCHAR2
2330 
2331 , x_msg_count OUT NOCOPY NUMBER
2332 
2333 , x_msg_data OUT NOCOPY VARCHAR2
2334 
2335 ,   p_header_id			    IN  NUMBER
2336 )
2337 IS
2338 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
2339 l_return_status               VARCHAR2(1);
2340 l_action_request_tbl		OE_Order_PUB.Request_Tbl_Type;
2341 l_request_rec		      OE_Order_Pub.Request_Rec_Type;
2342 l_request_tbl		      OE_Order_Pub.Request_Tbl_Type;
2343 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
2344 l_x_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
2345 l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
2346 l_x_Header_Scredit_rec        OE_Order_PUB.Header_Scredit_Rec_Type;
2347 l_x_Header_Scredit_tbl        OE_Order_PUB.Header_Scredit_Tbl_Type;
2348 l_x_line_rec                  OE_Order_PUB.Line_Rec_Type;
2349 l_x_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
2350 l_x_Line_Adj_rec              OE_Order_PUB.Line_Adj_Rec_Type;
2351 l_x_Line_Adj_tbl              OE_Order_PUB.Line_Adj_Tbl_Type;
2352 l_x_Line_Scredit_rec          OE_Order_PUB.Line_Scredit_Rec_Type;
2353 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
2354 l_x_Lot_Serial_rec            OE_Order_PUB.Lot_Serial_Rec_Type;
2355 l_x_Lot_Serial_tbl            OE_Order_PUB.Lot_Serial_Tbl_Type;
2356 
2357 --New out parameters
2358 l_x_Header_price_Att_tbl      OE_Order_PUB.Header_Price_Att_Tbl_Type;
2359 l_x_Header_Adj_Att_tbl        OE_Order_PUB.Header_Adj_Att_Tbl_Type;
2360 l_x_Header_Adj_Assoc_tbl      OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
2361 
2362 l_x_Line_price_Att_tbl        OE_Order_PUB.Line_Price_Att_Tbl_Type;
2363 l_x_Line_Adj_Att_tbl          OE_Order_PUB.Line_Adj_Att_Tbl_Type;
2364 l_x_Line_Adj_Assoc_tbl        OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
2365 
2366 
2367 --
2368 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2369 --
2370 BEGIN
2371 
2372     IF l_debug_level  > 0 THEN
2373         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.PROCESS_DELAYED_REQUESTS' , 1 ) ;
2374     END IF;
2375 
2376    /*
2377 	OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
2378 		(p_request_type   => OE_GLOBALS.G_PRICE_ADJ
2379 		,p_delete        => FND_API.G_TRUE
2380 		,x_return_status => l_return_status
2381 		);
2382 	IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2383 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2384 	ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2385 		RAISE FND_API.G_EXC_ERROR;
2386 	END IF;
2387 
2388      -- process delayed requests for tax calculation.
2389 	OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
2390 		(p_request_type   => OE_GLOBALS.G_TAX_LINE
2391 		,p_delete        => FND_API.G_TRUE
2392 		,x_return_status => l_return_status
2393 		);
2394 	IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2395 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2396 	ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2397 		RAISE FND_API.G_EXC_ERROR;
2398 	END IF;
2399 
2400         oe_debug_pub.ADD('Processing delayed request for Verify Payment for price adjustments changes.', 3);
2401         OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
2402 		(p_request_type   => OE_GLOBALS.G_VERIFY_PAYMENT
2403 		,p_delete        => FND_API.G_TRUE
2404 		,x_return_status => l_return_status
2405 		);
2406      */
2407      Oe_Order_Pvt.Process_Requests_And_Notify
2408     (	p_process_requests	=> TRUE
2409     ,	p_notify			=> TRUE
2410     ,   p_process_ack           => TRUE
2411     ,	x_return_status	=> l_return_status
2412     );
2413 
2414         IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2415 	  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2416 	ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2417 	  RAISE FND_API.G_EXC_ERROR;
2418 	END IF;
2419 
2420     x_return_status := FND_API.G_RET_STS_SUCCESS;
2421     -- 16581325 start Get message count and data
2422     OE_MSG_PUB.Count_And_Get
2423     (   p_count                       => x_msg_count
2424     ,   p_data                        => x_msg_data
2425     );
2426 	--16581325 end
2427 
2428     IF l_debug_level  > 0 THEN
2429         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.PROCESS_DELAYED_REQUESTS' , 1 ) ;
2430     END IF;
2431 Return;
2432 
2433 
2434 /*
2435 
2436     -- Set the UI flag
2437     OE_GLOBALS.G_UI_FLAG := TRUE;
2438 
2439     --  Set control flags.
2440 
2441     l_control_rec.controlled_operation := TRUE;
2442     l_control_rec.process              := TRUE;
2443     l_control_rec.process_entity       := OE_GLOBALS.G_ENTITY_HEADER_ADJ;
2444 
2445     l_control_rec.check_security       := FALSE;
2446     l_control_rec.clear_dependents     := FALSE;
2447     l_control_rec.default_attributes   := FALSE;
2448     l_control_rec.change_attributes    := FALSE;
2449     l_control_rec.validate_entity      := FALSE;
2450     l_control_rec.write_to_DB          := FALSE;
2451 
2452     --  Instruct API to clear its request table
2453 
2454     l_control_rec.clear_api_cache      := FALSE;
2455     l_control_rec.clear_api_requests   := FALSE;
2456 
2457 
2458     -- Assign requests in the order that is to be executed
2459     l_request_rec.request_type	:= OE_GLOBALS.G_CHECK_PERCENTAGE;
2460 
2461     -- 1905650
2462     -- G_PRICE_ADJ request should be logged using entity ALL
2463     l_request_rec.entity_code	:= OE_GLOBALS.G_ENTITY_ALL;
2464     l_request_rec.entity_id	:= p_header_id;
2465     l_request_tbl(1) := l_request_rec;
2466 
2467     l_request_rec.request_type	:= OE_GLOBALS.G_PRICE_ADJ;
2468     l_request_rec.entity_code	:= OE_GLOBALS.G_ENTITY_HEADER_ADJ;
2469     l_request_rec.entity_id	:= p_header_id;
2470     l_request_tbl(2) := l_request_rec;
2471 
2472 
2473     --  Call OE_Order_PVT.Process_order
2474 
2475     OE_Order_PVT.Process_order
2476     (   p_api_version_number          => 1.0
2477     ,   p_init_msg_list               => FND_API.G_TRUE
2478     ,   x_return_status               => l_return_status
2479     ,   x_msg_count                   => x_msg_count
2480     ,   x_msg_data                    => x_msg_data
2481     ,   p_control_rec                 => l_control_rec
2482     ,   p_action_request_tbl	      => l_request_tbl
2483     ,   x_header_rec                  => l_x_header_rec
2484     ,   x_Header_Adj_tbl              => l_x_Header_Adj_tbl
2485 
2486 -- New Parameters
2487     ,   x_Header_price_Att_tbl         => l_x_Header_price_Att_tbl
2488     ,   x_Header_Adj_Att_tbl           => l_x_Header_Adj_Att_tbl
2489     ,   x_Header_Adj_Assoc_tbl         => l_x_Header_Adj_Assoc_tbl
2490 
2491     ,   x_Header_Scredit_tbl          => l_x_Header_Scredit_tbl
2492     ,   x_line_tbl                    => l_x_line_tbl
2493     ,   x_Line_Adj_tbl                => l_x_Line_Adj_tbl
2494 
2495 -- New Parameters
2496     ,   x_Line_price_Att_tbl          => l_x_Line_price_Att_tbl
2497     ,   x_Line_Adj_Att_tbl            => l_x_Line_Adj_Att_tbl
2498     ,   x_Line_Adj_Assoc_tbl          => l_x_Line_Adj_Assoc_tbl
2499 
2500     ,   x_Line_Scredit_tbl            => l_x_Line_Scredit_tbl
2501     ,   x_Lot_Serial_tbl              => l_x_Lot_Serial_tbl
2502     ,	x_action_request_tbl	      => l_action_request_tbl
2503     );
2504 
2505     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2506         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2507     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2508         RAISE FND_API.G_EXC_ERROR;
2509     END IF;
2510 
2511 
2512     -- Re-set the UI flag to FALSE
2513     OE_GLOBALS.G_UI_FLAG := FALSE;
2514 
2515     --  Set return status.
2516 
2517     x_return_status := FND_API.G_RET_STS_SUCCESS;
2518 
2519     --  Get message count and data
2520 
2521     OE_MSG_PUB.Count_And_Get
2522     (   p_count                       => x_msg_count
2523     ,   p_data                        => x_msg_data
2524     );
2525 
2526     oe_debug_pub.add('Exiting OE_OE_FORM_HEADER_ADJ.PROCESS_DELAYED_REQUESTS', 1);
2527 
2528 */
2529 
2530 EXCEPTION
2531 
2532     WHEN FND_API.G_EXC_ERROR THEN
2533 
2534 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2535 
2536         x_return_status := FND_API.G_RET_STS_ERROR;
2537 
2538         --  Get message count and data
2539 
2540         OE_MSG_PUB.Count_And_Get
2541         (   p_count                       => x_msg_count
2542         ,   p_data                        => x_msg_data
2543         );
2544 
2545     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2546 
2547 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2548 
2549         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2550 
2551         --  Get message count and data
2552 
2553         OE_MSG_PUB.Count_And_Get
2554         (   p_count                       => x_msg_count
2555         ,   p_data                        => x_msg_data
2556         );
2557 
2558     WHEN OTHERS THEN
2559 
2560 	   OE_GLOBALS.G_UI_FLAG := FALSE;
2561 
2562         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2563 
2564         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2565         THEN
2566             OE_MSG_PUB.Add_Exc_Msg
2567             (   G_PKG_NAME
2568             ,   'Process_Entity'
2569             );
2570         END IF;
2571 
2572         --  Get message count and data
2573 
2574         OE_MSG_PUB.Count_And_Get
2575         (   p_count                       => x_msg_count
2576         ,   p_data                        => x_msg_data
2577         );
2578 
2579 END Process_Delayed_Requests;
2580 
2581 --  Procedure       lock_Row
2582 --
2583 
2584 
2585 PROCEDURE Lock_Row
2586 ( x_return_status OUT NOCOPY VARCHAR2
2587 
2588 , x_msg_count OUT NOCOPY NUMBER
2589 
2590 , x_msg_data OUT NOCOPY VARCHAR2
2591 
2592 ,   p_price_adjustment_id	IN NUMBER
2593 ,   p_lock_control		 	IN  NUMBER
2594 )
2595 IS
2596 l_return_status               VARCHAR2(1);
2597 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type;
2598 l_Header_Adj_tbl              OE_Order_PUB.Header_Adj_Tbl_Type;
2599 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
2600 l_x_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
2601 l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
2602 
2603 --
2604 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2605 --
2606 BEGIN
2607 
2608     IF l_debug_level  > 0 THEN
2609         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.LOCK_ROW' , 1 ) ;
2610     END IF;
2611 
2612     --  Load Header_Adj record
2613 
2614     l_x_Header_Adj_rec.operation := OE_GLOBALS.G_OPR_LOCK;
2615 
2616     l_x_Header_Adj_rec.lock_control := p_lock_control;
2617     l_x_Header_Adj_rec.price_adjustment_id := p_price_adjustment_id;
2618 
2619     OE_Header_Adj_Util.Lock_Row
2620     ( x_return_status	=> l_return_status
2621     , p_x_header_adj_rec	=> l_x_header_adj_rec
2622     );
2623 
2624     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
2625 
2626         --  Set DB flag and write record to cache.
2627         l_x_Header_Adj_rec.db_flag := FND_API.G_TRUE;
2628 
2629         Write_Header_Adj
2630         (   p_Header_Adj_rec              => l_x_Header_Adj_rec
2631         ,   p_db_record                   => TRUE
2632         );
2633 
2634     END IF;
2635 
2636 
2637     --  Set return status.
2638     x_return_status := l_return_status;
2639 
2640 
2641     --  Get message count and data
2642     OE_MSG_PUB.Count_And_Get
2643     (   p_count                       => x_msg_count
2644     ,   p_data                        => x_msg_data
2645     );
2646 
2647     IF l_debug_level  > 0 THEN
2648         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.LOCK_ROW' , 1 ) ;
2649     END IF;
2650 
2651 EXCEPTION
2652 
2653     WHEN OTHERS THEN
2654 
2655         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2656         THEN
2657             OE_MSG_PUB.Add_Exc_Msg
2658             (   G_PKG_NAME
2659             ,   'Lock_Row'
2660             );
2661         END IF;
2662 
2663         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2664 
2665         --  Get message count and data
2666 
2667         OE_MSG_PUB.Count_And_Get
2668         (   p_count                       => x_msg_count
2669         ,   p_data                        => x_msg_data
2670         );
2671 
2672 
2673 
2674 END Lock_Row;
2675 
2676 --  Procedures maintaining Header_Adj record cache.
2677 
2678 PROCEDURE Write_Header_Adj
2679 (   p_Header_Adj_rec                IN  OE_Order_PUB.Header_Adj_Rec_Type
2680 ,   p_db_record                     IN  BOOLEAN := FALSE
2681 )
2682 IS
2683 --
2684 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2685 --
2686 BEGIN
2687 
2688     IF l_debug_level  > 0 THEN
2689         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.WRITE_HEADER_ADJ' , 1 ) ;
2690     END IF;
2691 
2692     g_Header_Adj_rec := p_Header_Adj_rec;
2693 
2694     IF p_db_record THEN
2695 
2696         g_db_Header_Adj_rec := p_Header_Adj_rec;
2697 
2698     END IF;
2699 
2700     IF l_debug_level  > 0 THEN
2701         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.WRITE_HEADER_ADJ' , 1 ) ;
2702     END IF;
2703 
2704 END Write_Header_Adj;
2705 
2706 
2707 PROCEDURE Get_Header_Adj
2708 (   p_db_record               IN  BOOLEAN := FALSE
2709 ,   p_price_adjustment_id     IN  NUMBER
2710 ,   x_Header_Adj_Rec		IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
2711 )
2712 IS
2713 --
2714 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2715 --
2716 BEGIN
2717 
2718     IF l_debug_level  > 0 THEN
2719         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.GET_HEADER_ADJ' , 1 ) ;
2720     END IF;
2721 
2722     IF  p_price_adjustment_id <> g_Header_Adj_rec.price_adjustment_id
2723     THEN
2724 
2725         --  Query row from DB
2726 
2727         OE_Header_Adj_Util.Query_Row
2728         (   p_price_adjustment_id         => p_price_adjustment_id
2729 	,   x_Header_Adj_rec		  => g_Header_Adj_rec
2730         );
2731 
2732         g_Header_Adj_rec.db_flag       := FND_API.G_TRUE;
2733 
2734         --  Load DB record
2735 
2736         g_db_Header_Adj_rec            := g_Header_Adj_rec;
2737 
2738     END IF;
2739 
2740     IF p_db_record THEN
2741 
2742         -- RETURN g_db_Header_Adj_rec;
2743         x_header_adj_rec := g_db_Header_Adj_rec;
2744 
2745     ELSE
2746 
2747         -- RETURN g_Header_Adj_rec;
2748         x_header_adj_rec := g_Header_Adj_rec;
2749 
2750     END IF;
2751 
2752     IF l_debug_level  > 0 THEN
2753         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.GET_HEADER_ADJ' , 1 ) ;
2754     END IF;
2755 
2756 END Get_Header_Adj;
2757 
2758 
2759 PROCEDURE Clear_Header_Adj
2760 IS
2761 --
2762 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2763 --
2764 BEGIN
2765 
2766     IF l_debug_level  > 0 THEN
2767         oe_debug_pub.add(  'ENTERING OE_OE_FORM_HEADER_ADJ.CLEAR_HEADER_ADJ' , 1 ) ;
2768     END IF;
2769 
2770     g_Header_Adj_rec               := OE_Order_PUB.G_MISS_HEADER_ADJ_REC;
2771     g_db_Header_Adj_rec            := OE_Order_PUB.G_MISS_HEADER_ADJ_REC;
2772 
2773     IF l_debug_level  > 0 THEN
2774         oe_debug_pub.add(  'EXITING OE_OE_FORM_HEADER_ADJ.CLEAR_HEADER_ADJ' , 1 ) ;
2775     END IF;
2776 
2777 END Clear_Header_Adj;
2778 
2779 END OE_OE_Form_Header_Adj;