DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_HEADER_ADJ_UTIL

Source


1 PACKAGE BODY OE_Header_Adj_Util AS
2 /* $Header: OEXUHADB.pls 120.4.12010000.1 2008/07/25 07:55:55 appldev ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_Header_Adj_Util';
7 
8 FUNCTION G_MISS_OE_AK_HEADER_ADJ_REC
9 RETURN OE_AK_HEADER_PRCADJS_V%ROWTYPE IS
10 l_rowtype_rec				OE_AK_HEADER_PRCADJS_V%ROWTYPE;
11 --
12 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
13 --
14 BEGIN
15 
16     l_rowtype_rec.ATTRIBUTE1	:= FND_API.G_MISS_CHAR;
17     l_rowtype_rec.ATTRIBUTE10	:= FND_API.G_MISS_CHAR;
18     l_rowtype_rec.ATTRIBUTE11	:= FND_API.G_MISS_CHAR;
19     l_rowtype_rec.ATTRIBUTE12	:= FND_API.G_MISS_CHAR;
20     l_rowtype_rec.ATTRIBUTE13	:= FND_API.G_MISS_CHAR;
21     l_rowtype_rec.ATTRIBUTE14	:= FND_API.G_MISS_CHAR;
22     l_rowtype_rec.ATTRIBUTE15	:= FND_API.G_MISS_CHAR;
23     l_rowtype_rec.ATTRIBUTE2	:= FND_API.G_MISS_CHAR;
24     l_rowtype_rec.ATTRIBUTE3	:= FND_API.G_MISS_CHAR;
25     l_rowtype_rec.ATTRIBUTE4	:= FND_API.G_MISS_CHAR;
26     l_rowtype_rec.ATTRIBUTE5	:= FND_API.G_MISS_CHAR;
27     l_rowtype_rec.ATTRIBUTE6	:= FND_API.G_MISS_CHAR;
28     l_rowtype_rec.ATTRIBUTE7	:= FND_API.G_MISS_CHAR;
29     l_rowtype_rec.ATTRIBUTE8	:= FND_API.G_MISS_CHAR;
30     l_rowtype_rec.ATTRIBUTE9	:= FND_API.G_MISS_CHAR;
31     l_rowtype_rec.CONTEXT		:= FND_API.G_MISS_CHAR;
32     l_rowtype_rec.CREATED_BY	:= FND_API.G_MISS_NUM;
33     l_rowtype_rec.CREATION_DATE	:= FND_API.G_MISS_DATE;
34     l_rowtype_rec.DB_FLAG		:= FND_API.G_MISS_CHAR;
35     l_rowtype_rec.HEADER_ID	:= FND_API.G_MISS_NUM;
36     l_rowtype_rec.LAST_UPDATED_BY	:= FND_API.G_MISS_NUM;
37     l_rowtype_rec.LAST_UPDATE_DATE	:= FND_API.G_MISS_DATE;
38     l_rowtype_rec.LAST_UPDATE_LOGIN	:= FND_API.G_MISS_NUM;
39     l_rowtype_rec.LINE_ID	:= FND_API.G_MISS_NUM;
40     l_rowtype_rec.OPERATION	:= FND_API.G_MISS_CHAR;
41     l_rowtype_rec.PERCENT	:= FND_API.G_MISS_NUM;
42     l_rowtype_rec.RETURN_STATUS	:= FND_API.G_MISS_CHAR;
43     l_rowtype_rec.AUTOMATIC_FLAG	:= FND_API.G_MISS_CHAR;
44     l_rowtype_rec.DISCOUNT_ID	:= FND_API.G_MISS_NUM;
45     l_rowtype_rec.DISCOUNT_LINE_ID	:= FND_API.G_MISS_NUM;
46     l_rowtype_rec.PRICE_ADJUSTMENT_ID	:= FND_API.G_MISS_NUM;
47     l_rowtype_rec.PROGRAM_APPLICATION_ID	:= FND_API.G_MISS_NUM;
48     l_rowtype_rec.PROGRAM_ID		:= FND_API.G_MISS_NUM;
49     l_rowtype_rec.PROGRAM_UPDATE_DATE	:= FND_API.G_MISS_DATE;
50     l_rowtype_rec.request_id		:= FND_API.G_MISS_NUM;
51 --    l_rowtype_rec.orig_sys_discount_ref	:= FND_API.G_MISS_CHAR;
52     l_rowtype_rec.list_header_id	:= FND_API.G_MISS_NUM;
53     l_rowtype_rec.list_line_id	:= FND_API.G_MISS_NUM;
54     l_rowtype_rec.list_line_type_code	:= FND_API.G_MISS_CHAR;
55     l_rowtype_rec.modifier_mechanism_type_code	:= FND_API.G_MISS_CHAR;
56     l_rowtype_rec.modified_from	:= FND_API.G_MISS_CHAR;
57     l_rowtype_rec.modified_to	:= FND_API.G_MISS_CHAR;
58     l_rowtype_rec.updated_flag	:= FND_API.G_MISS_CHAR;
59     l_rowtype_rec.update_allowed	:= FND_API.G_MISS_CHAR;
60     l_rowtype_rec.applied_flag	:= FND_API.G_MISS_CHAR;
61     l_rowtype_rec.change_reason_code	:= FND_API.G_MISS_CHAR;
62     l_rowtype_rec.change_reason_text	:= FND_API.G_MISS_CHAR;
63     l_rowtype_rec.operand	:= FND_API.G_MISS_NUM;
64     l_rowtype_rec.operand_per_pqty	:= FND_API.G_MISS_NUM;
65     l_rowtype_rec.arithmetic_operator	:= FND_API.G_MISS_CHAR;
66     l_rowtype_rec.tax_code	:= FND_API.G_MISS_CHAR;
67     l_rowtype_rec.tax_exempt_flag := FND_API.G_MISS_CHAR;
68     l_rowtype_rec.tax_exempt_number := FND_API.G_MISS_CHAR;
69     l_rowtype_rec.tax_exempt_reason_code := FND_API.G_MISS_CHAR;
70     l_rowtype_rec.parent_adjustment_id := FND_API.G_MISS_NUM;
71     l_rowtype_rec.invoiced_flag := FND_API.G_MISS_CHAR;
72     l_rowtype_rec.estimated_flag := FND_API.G_MISS_CHAR;
73     l_rowtype_rec.inc_in_sales_performance := FND_API.G_MISS_CHAR;
74     l_rowtype_rec.split_action_code := FND_API.G_MISS_CHAR;
75     l_rowtype_rec.charge_type_code := FND_API.G_MISS_CHAR;
76     l_rowtype_rec.charge_subtype_code := FND_API.G_MISS_CHAR;
77     l_rowtype_rec.adjusted_amount := FND_API.G_MISS_NUM;
78     l_rowtype_rec.adjusted_amount_per_pqty := FND_API.G_MISS_NUM;
79     l_rowtype_rec.pricing_phase_id := FND_API.G_MISS_NUM;
80     l_rowtype_rec.list_line_no := FND_API.G_MISS_CHAR;
81     l_rowtype_rec.source_system_code := FND_API.G_MISS_CHAR;
82     l_rowtype_rec.benefit_qty := FND_API.G_MISS_NUM;
83     l_rowtype_rec.benefit_uom_code := FND_API.G_MISS_CHAR;
84     l_rowtype_rec.print_on_invoice_flag := FND_API.G_MISS_CHAR;
85     l_rowtype_rec.expiration_date := FND_API.G_MISS_DATE;
86     l_rowtype_rec.rebate_transaction_type_code := FND_API.G_MISS_CHAR;
87     l_rowtype_rec.rebate_transaction_reference := FND_API.G_MISS_CHAR;
88     l_rowtype_rec.rebate_payment_system_code := FND_API.G_MISS_CHAR;
89     l_rowtype_rec.redeemed_date := FND_API.G_MISS_DATE;
90     l_rowtype_rec.redeemed_flag := FND_API.G_MISS_CHAR;
91     l_rowtype_rec.accrual_flag := FND_API.G_MISS_CHAR;
92     l_rowtype_rec.range_break_quantity := FND_API.G_MISS_NUM;
93     l_rowtype_rec.accrual_conversion_rate := FND_API.G_MISS_NUM;
94     l_rowtype_rec.pricing_group_sequence := FND_API.G_MISS_NUM;
95     l_rowtype_rec.modifier_level_code := FND_API.G_MISS_CHAR;
96     l_rowtype_rec.price_break_type_code := FND_API.G_MISS_CHAR;
97     l_rowtype_rec.substitution_attribute := FND_API.G_MISS_CHAR;
98     l_rowtype_rec.proration_type_code := FND_API.G_MISS_CHAR;
99     l_rowtype_rec.credit_or_charge_flag := FND_API.G_MISS_CHAR;
100     l_rowtype_rec.include_on_returns_flag := FND_API.G_MISS_CHAR;
101     l_rowtype_rec.AC_ATTRIBUTE1	:= FND_API.G_MISS_CHAR;
102     l_rowtype_rec.AC_ATTRIBUTE10	:= FND_API.G_MISS_CHAR;
103     l_rowtype_rec.AC_ATTRIBUTE11	:= FND_API.G_MISS_CHAR;
104     l_rowtype_rec.AC_ATTRIBUTE12	:= FND_API.G_MISS_CHAR;
105     l_rowtype_rec.AC_ATTRIBUTE13	:= FND_API.G_MISS_CHAR;
106     l_rowtype_rec.AC_ATTRIBUTE14	:= FND_API.G_MISS_CHAR;
107     l_rowtype_rec.AC_ATTRIBUTE15	:= FND_API.G_MISS_CHAR;
108     l_rowtype_rec.AC_ATTRIBUTE2	:= FND_API.G_MISS_CHAR;
109     l_rowtype_rec.AC_ATTRIBUTE3	:= FND_API.G_MISS_CHAR;
110     l_rowtype_rec.AC_ATTRIBUTE4	:= FND_API.G_MISS_CHAR;
111     l_rowtype_rec.AC_ATTRIBUTE5	:= FND_API.G_MISS_CHAR;
112     l_rowtype_rec.AC_ATTRIBUTE6	:= FND_API.G_MISS_CHAR;
113     l_rowtype_rec.AC_ATTRIBUTE7	:= FND_API.G_MISS_CHAR;
114     l_rowtype_rec.AC_ATTRIBUTE8	:= FND_API.G_MISS_CHAR;
115     l_rowtype_rec.AC_ATTRIBUTE9	:= FND_API.G_MISS_CHAR;
116     l_rowtype_rec.AC_CONTEXT		:= FND_API.G_MISS_CHAR;
117 
118     RETURN l_rowtype_rec;
119 
120 END G_MISS_OE_AK_HEADER_ADJ_REC;
121 
122 PROCEDURE API_Rec_To_Rowtype_Rec
123 (   p_HEADER_ADJ_rec            IN  OE_Order_PUB.HEADER_ADJ_Rec_Type
124 ,   x_rowtype_rec                   OUT nocopy OE_AK_HEADER_PRCADJS_V%ROWTYPE
125 ) IS
126 --
127 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
128 --
129 BEGIN
130 
131     x_rowtype_rec.ATTRIBUTE1       := p_header_adj_rec.ATTRIBUTE1;
132     x_rowtype_rec.ATTRIBUTE10       := p_header_adj_rec.ATTRIBUTE10;
133     x_rowtype_rec.ATTRIBUTE11       := p_header_adj_rec.ATTRIBUTE11;
134     x_rowtype_rec.ATTRIBUTE12       := p_header_adj_rec.ATTRIBUTE12;
135     x_rowtype_rec.ATTRIBUTE13       := p_header_adj_rec.ATTRIBUTE13;
136     x_rowtype_rec.ATTRIBUTE14       := p_header_adj_rec.ATTRIBUTE14;
137     x_rowtype_rec.ATTRIBUTE15       := p_header_adj_rec.ATTRIBUTE15;
138     x_rowtype_rec.ATTRIBUTE2       := p_header_adj_rec.ATTRIBUTE2;
139     x_rowtype_rec.ATTRIBUTE3       := p_header_adj_rec.ATTRIBUTE3;
140     x_rowtype_rec.ATTRIBUTE4       := p_header_adj_rec.ATTRIBUTE4;
141     x_rowtype_rec.ATTRIBUTE5       := p_header_adj_rec.ATTRIBUTE5;
142     x_rowtype_rec.ATTRIBUTE6       := p_header_adj_rec.ATTRIBUTE6;
143     x_rowtype_rec.ATTRIBUTE7       := p_header_adj_rec.ATTRIBUTE7;
144     x_rowtype_rec.ATTRIBUTE8       := p_header_adj_rec.ATTRIBUTE8;
145     x_rowtype_rec.ATTRIBUTE9       := p_header_adj_rec.ATTRIBUTE9;
146     x_rowtype_rec.CONTEXT       := p_header_adj_rec.CONTEXT;
147     x_rowtype_rec.CREATED_BY       := p_header_adj_rec.CREATED_BY;
148     x_rowtype_rec.CREATION_DATE       := p_header_adj_rec.CREATION_DATE;
149     x_rowtype_rec.DB_FLAG       := p_header_adj_rec.DB_FLAG;
150     x_rowtype_rec.HEADER_ID       := p_header_adj_rec.HEADER_ID;
151     x_rowtype_rec.LAST_UPDATED_BY       := p_header_adj_rec.LAST_UPDATED_BY;
152     x_rowtype_rec.LAST_UPDATE_DATE       := p_header_adj_rec.LAST_UPDATE_DATE;
153     x_rowtype_rec.LAST_UPDATE_LOGIN       := p_header_adj_rec.LAST_UPDATE_LOGIN;
154     x_rowtype_rec.LINE_ID       := p_header_adj_rec.LINE_ID;
155     x_rowtype_rec.OPERATION       := p_header_adj_rec.OPERATION;
156     x_rowtype_rec.PERCENT       := p_header_adj_rec.PERCENT;
157     x_rowtype_rec.RETURN_STATUS       := p_header_adj_rec.RETURN_STATUS;
158     x_rowtype_rec.AUTOMATIC_FLAG	:= p_header_adj_rec.AUTOMATIC_FLAG;
159     x_rowtype_rec.DISCOUNT_ID	:= p_header_adj_rec.DISCOUNT_ID;
160     x_rowtype_rec.DISCOUNT_LINE_ID	:= p_header_adj_rec.DISCOUNT_LINE_ID;
161     x_rowtype_rec.PRICE_ADJUSTMENT_ID	:= p_header_adj_rec.PRICE_ADJUSTMENT_ID;
162     x_rowtype_rec.PROGRAM_APPLICATION_ID	:= p_header_adj_rec.PROGRAM_APPLICATION_ID;
163     x_rowtype_rec.PROGRAM_ID		:= p_header_adj_rec.PROGRAM_ID;
164     x_rowtype_rec.PROGRAM_UPDATE_DATE	:= p_header_adj_rec.PROGRAM_UPDATE_DATE;
165     x_rowtype_rec.request_id		:= p_header_adj_rec.request_id;
166    x_rowtype_rec.orig_sys_discount_ref	:= p_header_adj_rec.orig_sys_discount_ref;
167     x_rowtype_rec.list_header_id	:= p_header_adj_rec.list_header_id;
168     x_rowtype_rec.list_line_id	:= p_header_adj_rec.list_line_id;
169     x_rowtype_rec.list_line_type_code	:= p_header_adj_rec.list_line_type_code;
170     x_rowtype_rec.modifier_mechanism_type_code	:= p_header_adj_rec.modifier_mechanism_type_code;
171     x_rowtype_rec.modified_from	:= p_header_adj_rec.modified_from;
172     x_rowtype_rec.modified_to	:= p_header_adj_rec.modified_to;
173     x_rowtype_rec.updated_flag	:= p_header_adj_rec.updated_flag;
174     x_rowtype_rec.update_allowed	:= p_header_adj_rec.update_allowed;
175     x_rowtype_rec.applied_flag	:= p_header_adj_rec.applied_flag;
176     x_rowtype_rec.change_reason_code	:= p_header_adj_rec.change_reason_code;
177     x_rowtype_rec.change_reason_text	:= p_header_adj_rec.change_reason_text;
178     x_rowtype_rec.operand	:= p_header_adj_rec.operand;
179     x_rowtype_rec.operand_per_pqty	:= p_header_adj_rec.operand_per_pqty;
180     x_rowtype_rec.arithmetic_operator	:= p_header_adj_rec.arithmetic_operator;
181     x_rowtype_rec.cost_id	:= p_header_adj_rec.cost_id;
182     x_rowtype_rec.tax_code	:= p_header_adj_rec.tax_code;
183     x_rowtype_rec.tax_exempt_flag := p_header_adj_rec.tax_exempt_flag;
184     x_rowtype_rec.tax_exempt_number := p_header_adj_rec.tax_exempt_number;
185     x_rowtype_rec.tax_exempt_reason_code := p_header_adj_rec.tax_exempt_reason_code;
186     x_rowtype_rec.parent_adjustment_id := p_header_adj_rec.parent_adjustment_id;
187     x_rowtype_rec.invoiced_flag := p_header_adj_rec.invoiced_flag;
188     x_rowtype_rec.estimated_flag := p_header_adj_rec.estimated_flag;
189     x_rowtype_rec.inc_in_sales_performance := p_header_adj_rec.inc_in_sales_performance;
190     x_rowtype_rec.split_action_code := p_header_adj_rec.split_action_code;
191     x_rowtype_rec.charge_type_code := p_header_adj_rec.charge_type_code;
192     x_rowtype_rec.charge_subtype_code := p_header_adj_rec.charge_subtype_code;
193 
194     x_rowtype_rec.adjusted_amount := p_header_adj_rec.adjusted_amount;
195     x_rowtype_rec.adjusted_amount_per_pqty := p_header_adj_rec.adjusted_amount_per_pqty;
196     x_rowtype_rec.pricing_phase_id := p_header_adj_rec.pricing_phase_id;
197     x_rowtype_rec.list_line_no := p_header_adj_rec.list_line_no;
198     x_rowtype_rec.source_system_code := p_header_adj_rec.source_system_code;
199     x_rowtype_rec.benefit_qty := p_header_adj_rec.benefit_qty;
200     x_rowtype_rec.benefit_uom_code := p_header_adj_rec.benefit_uom_code;
201     x_rowtype_rec.print_on_invoice_flag := p_header_adj_rec.print_on_invoice_flag;
202     x_rowtype_rec.expiration_date := p_header_adj_rec.expiration_date;
203     x_rowtype_rec.rebate_transaction_type_code := p_header_adj_rec.rebate_transaction_type_code;
204     x_rowtype_rec.rebate_transaction_reference := p_header_adj_rec.rebate_transaction_reference;
205     x_rowtype_rec.rebate_payment_system_code := p_header_adj_rec.rebate_payment_system_code;
206     x_rowtype_rec.redeemed_date := p_header_adj_rec.redeemed_date;
207     x_rowtype_rec.redeemed_flag := p_header_adj_rec.redeemed_flag;
208     x_rowtype_rec.accrual_flag := p_header_adj_rec.accrual_flag;
209     x_rowtype_rec.range_break_quantity := p_header_adj_rec.range_break_quantity;
210     x_rowtype_rec.accrual_conversion_rate := p_header_adj_rec.accrual_conversion_rate;
211     x_rowtype_rec.pricing_group_sequence := p_header_adj_rec.pricing_group_sequence;
212     x_rowtype_rec.modifier_level_code := p_header_adj_rec.modifier_level_code;
213     x_rowtype_rec.price_break_type_code := p_header_adj_rec.price_break_type_code;
214     x_rowtype_rec.substitution_attribute := p_header_adj_rec.substitution_attribute;
215     x_rowtype_rec.proration_type_code := p_header_adj_rec.proration_type_code;
216     x_rowtype_rec.credit_or_charge_flag := p_header_adj_rec.credit_or_charge_flag;
217     x_rowtype_rec.include_on_returns_flag := p_header_adj_rec.include_on_returns_flag;
218     x_rowtype_rec.AC_ATTRIBUTE1       := p_header_adj_rec.AC_ATTRIBUTE1;
219     x_rowtype_rec.AC_ATTRIBUTE10      := p_header_adj_rec.AC_ATTRIBUTE10;
220     x_rowtype_rec.AC_ATTRIBUTE11      := p_header_adj_rec.AC_ATTRIBUTE11;
221     x_rowtype_rec.AC_ATTRIBUTE12      := p_header_adj_rec.AC_ATTRIBUTE12;
222     x_rowtype_rec.AC_ATTRIBUTE13      := p_header_adj_rec.AC_ATTRIBUTE13;
223     x_rowtype_rec.AC_ATTRIBUTE14      := p_header_adj_rec.AC_ATTRIBUTE14;
224     x_rowtype_rec.AC_ATTRIBUTE15      := p_header_adj_rec.AC_ATTRIBUTE15;
225     x_rowtype_rec.AC_ATTRIBUTE2       := p_header_adj_rec.AC_ATTRIBUTE2;
226     x_rowtype_rec.AC_ATTRIBUTE3       := p_header_adj_rec.AC_ATTRIBUTE3;
227     x_rowtype_rec.AC_ATTRIBUTE4       := p_header_adj_rec.AC_ATTRIBUTE4;
228     x_rowtype_rec.AC_ATTRIBUTE5       := p_header_adj_rec.AC_ATTRIBUTE5;
229     x_rowtype_rec.AC_ATTRIBUTE6       := p_header_adj_rec.AC_ATTRIBUTE6;
230     x_rowtype_rec.AC_ATTRIBUTE7       := p_header_adj_rec.AC_ATTRIBUTE7;
231     x_rowtype_rec.AC_ATTRIBUTE8       := p_header_adj_rec.AC_ATTRIBUTE8;
232     x_rowtype_rec.AC_ATTRIBUTE9       := p_header_adj_rec.AC_ATTRIBUTE9;
233     x_rowtype_rec.AC_CONTEXT          := p_header_adj_rec.AC_CONTEXT;
234     x_rowtype_rec.invoiced_amount     := p_header_adj_rec.invoiced_amount;
235 
236 END API_Rec_To_RowType_Rec;
237 
238 
239 PROCEDURE Rowtype_Rec_To_API_Rec
240 (   p_record                        IN  OE_AK_HEADER_PRCADJS_V%ROWTYPE
241 ,   x_api_rec                       OUT nocopy OE_Order_PUB.HEADER_ADJ_Rec_Type
242 )
243 iS
244 
245 --
246 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
247 --
248 BEGIN
249 
250     x_api_rec.ATTRIBUTE1       := p_record.ATTRIBUTE1;
251     x_api_rec.ATTRIBUTE10       := p_record.ATTRIBUTE10;
252     x_api_rec.ATTRIBUTE11       := p_record.ATTRIBUTE11;
253     x_api_rec.ATTRIBUTE12       := p_record.ATTRIBUTE12;
254     x_api_rec.ATTRIBUTE13       := p_record.ATTRIBUTE13;
255     x_api_rec.ATTRIBUTE14       := p_record.ATTRIBUTE14;
256     x_api_rec.ATTRIBUTE15       := p_record.ATTRIBUTE15;
257     x_api_rec.ATTRIBUTE2       := p_record.ATTRIBUTE2;
258     x_api_rec.ATTRIBUTE3       := p_record.ATTRIBUTE3;
259     x_api_rec.ATTRIBUTE4       := p_record.ATTRIBUTE4;
260     x_api_rec.ATTRIBUTE5       := p_record.ATTRIBUTE5;
261     x_api_rec.ATTRIBUTE6       := p_record.ATTRIBUTE6;
262     x_api_rec.ATTRIBUTE7       := p_record.ATTRIBUTE7;
263     x_api_rec.ATTRIBUTE8       := p_record.ATTRIBUTE8;
264     x_api_rec.ATTRIBUTE9       := p_record.ATTRIBUTE9;
265     x_api_rec.CONTEXT       := p_record.CONTEXT;
266     x_api_rec.CREATED_BY       := p_record.CREATED_BY;
267     x_api_rec.CREATION_DATE       := p_record.CREATION_DATE;
268     x_api_rec.DB_FLAG       := p_record.DB_FLAG;
269     x_api_rec.HEADER_ID       := p_record.HEADER_ID;
270     x_api_rec.LAST_UPDATED_BY       := p_record.LAST_UPDATED_BY;
271     x_api_rec.LAST_UPDATE_DATE       := p_record.LAST_UPDATE_DATE;
272     x_api_rec.LAST_UPDATE_LOGIN       := p_record.LAST_UPDATE_LOGIN;
273     x_api_rec.LINE_ID       := p_record.LINE_ID;
274     x_api_rec.OPERATION       := p_record.OPERATION;
275     x_api_rec.PERCENT       := p_record.PERCENT;
276     x_api_rec.RETURN_STATUS       := p_record.RETURN_STATUS;
277     x_api_rec.AUTOMATIC_FLAG	:= p_record.AUTOMATIC_FLAG;
278     x_api_rec.DISCOUNT_ID	:= p_record.DISCOUNT_ID;
279     x_api_rec.DISCOUNT_LINE_ID	:= p_record.DISCOUNT_LINE_ID;
280     x_api_rec.PRICE_ADJUSTMENT_ID	:= p_record.PRICE_ADJUSTMENT_ID;
281     x_api_rec.PROGRAM_APPLICATION_ID	:= p_record.PROGRAM_APPLICATION_ID;
282     x_api_rec.PROGRAM_ID		:= p_record.PROGRAM_ID;
283     x_api_rec.PROGRAM_UPDATE_DATE	:= p_record.PROGRAM_UPDATE_DATE;
284     x_api_rec.request_id		:= p_record.request_id;
285     x_api_rec.orig_sys_discount_ref	:= p_record.orig_sys_discount_ref;
286     x_api_rec.list_header_id	:= p_record.list_header_id;
287     x_api_rec.list_line_id	:= p_record.list_line_id;
288     x_api_rec.list_line_type_code	:= p_record.list_line_type_code;
289     x_api_rec.modifier_mechanism_type_code	:= p_record.modifier_mechanism_type_code;
290     x_api_rec.modified_from	:= p_record.modified_from;
291     x_api_rec.modified_to	:= p_record.modified_to;
292     x_api_rec.updated_flag	:= p_record.updated_flag;
293     x_api_rec.update_allowed	:= p_record.update_allowed;
294     x_api_rec.applied_flag	:= p_record.applied_flag;
295     x_api_rec.change_reason_code	:= p_record.change_reason_code;
296     x_api_rec.change_reason_text	:= p_record.change_reason_text;
297     x_api_rec.operand	:= p_record.operand;
298     x_api_rec.operand_per_pqty	:= p_record.operand_per_pqty;
299     x_api_rec.arithmetic_operator	:= p_record.arithmetic_operator;
300     x_api_rec.cost_id	:= p_record.cost_id;
301     x_api_rec.tax_code	:= p_record.tax_code;
302     x_api_rec.tax_exempt_flag := p_record.tax_exempt_flag;
303     x_api_rec.tax_exempt_number := p_record.tax_exempt_number;
304     x_api_rec.tax_exempt_reason_code := p_record.tax_exempt_reason_code;
305     x_api_rec.parent_adjustment_id := p_record.parent_adjustment_id;
306     x_api_rec.invoiced_flag := p_record.invoiced_flag;
307     x_api_rec.estimated_flag := p_record.estimated_flag;
308     x_api_rec.inc_in_sales_performance := p_record.inc_in_sales_performance;
309     x_api_rec.split_action_code := p_record.split_action_code;
310     x_api_rec.charge_type_code := p_record.charge_type_code;
311     x_api_rec.charge_subtype_code := p_record.charge_subtype_code;
312     x_api_rec.adjusted_amount := p_record.adjusted_amount;
313     x_api_rec.adjusted_amount_per_pqty := p_record.adjusted_amount_per_pqty;
314     x_api_rec.pricing_phase_id := p_record.pricing_phase_id;
315     x_api_rec.list_line_no := p_record.list_line_no;
316     x_api_rec.source_system_code := p_record.source_system_code;
317     x_api_rec.benefit_qty := p_record.benefit_qty;
318     x_api_rec.benefit_uom_code := p_record.benefit_uom_code;
319     x_api_rec.print_on_invoice_flag := p_record.print_on_invoice_flag;
320     x_api_rec.expiration_date := p_record.expiration_date;
321     x_api_rec.rebate_transaction_type_code := p_record.rebate_transaction_type_code;
322     x_api_rec.rebate_transaction_reference := p_record.rebate_transaction_reference;
323     x_api_rec.rebate_payment_system_code := p_record.rebate_payment_system_code;
324     x_api_rec.redeemed_date := p_record.redeemed_date;
325     x_api_rec.redeemed_flag := p_record.redeemed_flag;
326     x_api_rec.accrual_flag := p_record.accrual_flag;
327     x_api_rec.range_break_quantity := p_record.range_break_quantity;
328     x_api_rec.accrual_conversion_rate := p_record.accrual_conversion_rate;
329     x_api_rec.pricing_group_sequence := p_record.pricing_group_sequence;
330     x_api_rec.modifier_level_code := p_record.modifier_level_code;
331     x_api_rec.price_break_type_code := p_record.price_break_type_code;
332     x_api_rec.substitution_attribute := p_record.substitution_attribute;
333     x_api_rec.proration_type_code := p_record.proration_type_code;
334     x_api_rec.credit_or_charge_flag := p_record.credit_or_charge_flag;
335     x_api_rec.include_on_returns_flag := p_record.include_on_returns_flag;
336     x_api_rec.AC_ATTRIBUTE1       := p_record.AC_ATTRIBUTE1;
337     x_api_rec.AC_ATTRIBUTE10      := p_record.AC_ATTRIBUTE10;
338     x_api_rec.AC_ATTRIBUTE11      := p_record.AC_ATTRIBUTE11;
339     x_api_rec.AC_ATTRIBUTE12      := p_record.AC_ATTRIBUTE12;
340     x_api_rec.AC_ATTRIBUTE13      := p_record.AC_ATTRIBUTE13;
341     x_api_rec.AC_ATTRIBUTE14      := p_record.AC_ATTRIBUTE14;
342     x_api_rec.AC_ATTRIBUTE15      := p_record.AC_ATTRIBUTE15;
343     x_api_rec.AC_ATTRIBUTE2       := p_record.AC_ATTRIBUTE2;
344     x_api_rec.AC_ATTRIBUTE3       := p_record.AC_ATTRIBUTE3;
345     x_api_rec.AC_ATTRIBUTE4       := p_record.AC_ATTRIBUTE4;
346     x_api_rec.AC_ATTRIBUTE5       := p_record.AC_ATTRIBUTE5;
347     x_api_rec.AC_ATTRIBUTE6       := p_record.AC_ATTRIBUTE6;
348     x_api_rec.AC_ATTRIBUTE7       := p_record.AC_ATTRIBUTE7;
349     x_api_rec.AC_ATTRIBUTE8       := p_record.AC_ATTRIBUTE8;
350     x_api_rec.AC_ATTRIBUTE9       := p_record.AC_ATTRIBUTE9;
351     x_api_rec.AC_CONTEXT          := p_record.AC_CONTEXT;
352     x_api_rec.invoiced_amount     := p_record.invoiced_amount;
353 
354 END Rowtype_Rec_To_API_Rec;
355 
356 --  Procedure Clear_Dependent_Attr
357 
358 -- Over loaded Procedure , Remember to maintain 2 code sets
359 
360 PROCEDURE Clear_Dependent_Attr
361 (   p_attr_id                       IN  NUMBER := FND_API.G_MISS_NUM
362 ,   p_x_Header_Adj_rec              IN OUT NOCOPY OE_AK_HEADER_PRCADJS_V%ROWTYPE
363 ,   p_old_Header_Adj_rec            IN  OE_AK_HEADER_PRCADJS_V%ROWTYPE :=
364 								G_MISS_OE_AK_HEADER_ADJ_REC
365 -- ,   x_Header_Adj_rec                OUT nocopy OE_AK_HEADER_PRCADJS_V%ROWTYPE
366 )
367 
368 IS
369 l_index			NUMBER :=0;
370 l_src_attr_tbl		OE_GLOBALS.NUMBER_Tbl_Type;
371 l_dep_attr_tbl		OE_GLOBALS.NUMBER_Tbl_Type;
372 --
373 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
374 --
375 BEGIN
376 
377     IF l_debug_level  > 0 THEN
378         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.CLEAR_DEPENDENT_ATTR' , 1 ) ;
379     END IF;
380 
381     --  Load out record
382 
383   --  x_Header_Adj_rec := p_Header_Adj_rec;
384 
385     --  If attr_id is missing compare old and new records and for
386     --  every changed attribute clear its dependent fields.
387 
388     IF p_attr_id = FND_API.G_MISS_NUM THEN
389 
390         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.price_adjustment_id,p_old_Header_Adj_rec.price_adjustment_id)
391         THEN
392             l_index := l_index + 1;
393             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_PRICE_ADJUSTMENT;
394         END IF;
395 
396         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.creation_date,p_old_Header_Adj_rec.creation_date)
397         THEN
398             l_index := l_index + 1;
399             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_CREATION_DATE;
400         END IF;
401 
402         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.created_by,p_old_Header_Adj_rec.created_by)
403         THEN
404             l_index := l_index + 1;
405             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_CREATED_BY;
406         END IF;
407 
408         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.last_update_date,p_old_Header_Adj_rec.last_update_date)
409         THEN
410             l_index := l_index + 1;
411             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_LAST_UPDATE_DATE;
412         END IF;
413 
414         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.last_updated_by,p_old_Header_Adj_rec.last_updated_by)
415         THEN
416             l_index := l_index + 1;
417             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_LAST_UPDATED_BY;
418         END IF;
419 
420         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.last_update_login,p_old_Header_Adj_rec.last_update_login)
421         THEN
422             l_index := l_index + 1;
423             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_LAST_UPDATE_LOGIN;
424         END IF;
425 
426         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.program_application_id,p_old_Header_Adj_rec.program_application_id)
427         THEN
428             l_index := l_index + 1;
429             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_PROGRAM_APPLICATION;
430         END IF;
431 
432         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.program_id,p_old_Header_Adj_rec.program_id)
433         THEN
434             l_index := l_index + 1;
435             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_PROGRAM;
436         END IF;
437 
438         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.program_update_date,p_old_Header_Adj_rec.program_update_date)
439         THEN
440             l_index := l_index + 1;
441             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_PROGRAM_UPDATE_DATE;
442         END IF;
443 
444         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.request_id,p_old_Header_Adj_rec.request_id)
445         THEN
446             l_index := l_index + 1;
447             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_REQUEST;
448         END IF;
449 
450         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.header_id,p_old_Header_Adj_rec.header_id)
451         THEN
452             l_index := l_index + 1;
453             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_HEADER;
454         END IF;
455 
456         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.discount_id,p_old_Header_Adj_rec.discount_id)
457         THEN
458             l_index := l_index + 1;
459             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_DISCOUNT;
460         END IF;
461 
462         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.discount_line_id,p_old_Header_Adj_rec.discount_line_id)
463         THEN
464             l_index := l_index + 1;
465             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_DISCOUNT_LINE;
466         END IF;
467 
468         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.automatic_flag,p_old_Header_Adj_rec.automatic_flag)
469         THEN
470             l_index := l_index + 1;
471             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AUTOMATIC;
472         END IF;
473 
474         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.percent,p_old_Header_Adj_rec.percent)
475         THEN
476             l_index := l_index + 1;
477             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_PERCENT;
478         END IF;
479 
480         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.line_id,p_old_Header_Adj_rec.line_id)
481         THEN
482             l_index := l_index + 1;
483             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_LINE;
484         END IF;
485 
486         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.context,p_old_Header_Adj_rec.context)
487         THEN
488             l_index := l_index + 1;
489             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_CONTEXT;
490         END IF;
491 
492         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute1,p_old_Header_Adj_rec.attribute1)
493         THEN
494             l_index := l_index + 1;
495             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE1;
496         END IF;
497 
498         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute2,p_old_Header_Adj_rec.attribute2)
499         THEN
500             l_index := l_index + 1;
501             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE2;
502         END IF;
503 
504         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute3,p_old_Header_Adj_rec.attribute3)
505         THEN
506             l_index := l_index + 1;
507             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE3;
508         END IF;
509 
510         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute4,p_old_Header_Adj_rec.attribute4)
511         THEN
512             l_index := l_index + 1;
513             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE4;
514         END IF;
515 
516         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute5,p_old_Header_Adj_rec.attribute5)
517         THEN
518             l_index := l_index + 1;
519             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE5;
520         END IF;
521 
522         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute6,p_old_Header_Adj_rec.attribute6)
523         THEN
524             l_index := l_index + 1;
525             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE6;
526         END IF;
527 
528         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute7,p_old_Header_Adj_rec.attribute7)
529         THEN
530             l_index := l_index + 1;
531             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE7;
532         END IF;
533 
534         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute8,p_old_Header_Adj_rec.attribute8)
535         THEN
536             l_index := l_index + 1;
537             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE8;
538         END IF;
539 
540         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute9,p_old_Header_Adj_rec.attribute9)
541         THEN
542             l_index := l_index + 1;
543             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE9;
544         END IF;
545 
546         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute10,p_old_Header_Adj_rec.attribute10)
547         THEN
548             l_index := l_index + 1;
549             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE10;
550         END IF;
551 
552         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute11,p_old_Header_Adj_rec.attribute11)
553         THEN
554             l_index := l_index + 1;
555             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE11;
556         END IF;
557 
558         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute12,p_old_Header_Adj_rec.attribute12)
559         THEN
560             l_index := l_index + 1;
561             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE12;
562         END IF;
563 
564         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute13,p_old_Header_Adj_rec.attribute13)
565         THEN
566             l_index := l_index + 1;
567             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE13;
568         END IF;
569 
570         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute14,p_old_Header_Adj_rec.attribute14)
571         THEN
572             l_index := l_index + 1;
573             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE14;
574         END IF;
575 
576         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute15,p_old_Header_Adj_rec.attribute15)
577         THEN
578             l_index := l_index + 1;
579             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ATTRIBUTE15;
580         END IF;
581 
582         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.COST_ID, p_old_Header_Adj_rec.COST_ID)
583 	   THEN
584             l_index := l_index + 1;
585             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_COST_ID;
586 	   END IF;
587 
588         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.TAX_CODE, p_old_Header_Adj_rec.TAX_CODE)
589 	   THEN
590             l_index := l_index + 1;
591             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_TAX_CODE;
592 	   END IF;
593 
594         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.TAX_EXEMPT_FLAG, p_old_Header_Adj_rec.TAX_EXEMPT_FLAG)
595 	   THEN
596             l_index := l_index + 1;
597             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_TAX_EXEMPT_FLAG;
598 	   END IF;
599 
600         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.TAX_EXEMPT_NUMBER, p_old_Header_Adj_rec.TAX_EXEMPT_NUMBER)
601 	   THEN
602             l_index := l_index + 1;
603             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_TAX_EXEMPT_NUMBER;
604 	   END IF;
605 
606         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.TAX_EXEMPT_REASON_CODE, p_old_Header_Adj_rec.TAX_EXEMPT_REASON_CODE)
607 	   THEN
608             l_index := l_index + 1;
609             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_TAX_EXEMPT_REASON_CODE;
610 	   END IF;
611 
612         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.PARENT_ADJUSTMENT_ID, p_old_Header_Adj_rec.PARENT_ADJUSTMENT_ID)
613 	   THEN
614             l_index := l_index + 1;
615             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_PARENT_ADJUSTMENT_ID;
616 	   END IF;
617 
618         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.INVOICED_FLAG, p_old_Header_Adj_rec.INVOICED_FLAG)
619 	   THEN
620             l_index := l_index + 1;
621             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_INVOICED_FLAG;
622 	   END IF;
623 
624         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ESTIMATED_FLAG, p_old_Header_Adj_rec.ESTIMATED_FLAG)
625 	   THEN
626             l_index := l_index + 1;
627             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_ESTIMATED_FLAG;
628 	   END IF;
629 
630         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.INC_IN_SALES_PERFORMANCE, p_old_Header_Adj_rec.INC_IN_SALES_PERFORMANCE)
631 	   THEN
632             l_index := l_index + 1;
633             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_INC_IN_SALES_PERFORMANCE;
634 	   END IF;
635 
636         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.SPLIT_ACTION_CODE, p_old_Header_Adj_rec.SPLIT_ACTION_CODE)
637 	   THEN
638             l_index := l_index + 1;
639             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_SPLIT_ACTION_CODE;
640 	   END IF;
641 
642         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.charge_type_code, p_old_Header_Adj_rec.charge_type_code)
643 	   THEN
644             l_index := l_index + 1;
645             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_CHARGE_TYPE_CODE;
646 	   END IF;
647 
648         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.charge_subtype_code, p_old_Header_Adj_rec.charge_subtype_code)
649 	   THEN
650             l_index := l_index + 1;
651             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_CHARGE_SUBTYPE_CODE;
652 	   END IF;
653 
654         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.list_line_no, p_old_Header_Adj_rec.list_line_no)
655 	   THEN
656             l_index := l_index + 1;
657             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_LIST_LINE_NO;
658 	   END IF;
659 
660         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.source_system_code, p_old_Header_Adj_rec.source_system_code)
661 	   THEN
662             l_index := l_index + 1;
663             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_SOURCE_SYSTEM_CODE;
664 	   END IF;
665 
666         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.benefit_qty, p_old_Header_Adj_rec.benefit_qty)
667 	   THEN
668             l_index := l_index + 1;
669             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_BENEFIT_QTY;
670 	   END IF;
671 
672         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.benefit_uom_code, p_old_Header_Adj_rec.benefit_uom_code)
673 	   THEN
674             l_index := l_index + 1;
675             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_BENEFIT_UOM_CODE;
676 	   END IF;
677 
678         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.print_on_invoice_flag, p_old_Header_Adj_rec.print_on_invoice_flag)
679 	   THEN
680             l_index := l_index + 1;
681             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_PRINT_ON_INVOICE_FLAG;
682 	   END IF;
683 
684         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.expiration_date, p_old_Header_Adj_rec.expiration_date)
685 	   THEN
686             l_index := l_index + 1;
687             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_EXPIRATION_DATE;
688 	   END IF;
689 
690         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.rebate_transaction_type_code, p_old_Header_Adj_rec.rebate_transaction_type_code)
691 	   THEN
692             l_index := l_index + 1;
693             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_REBATE_TRANSACTION_TYPE_CODE;
694 	   END IF;
695 
696         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.rebate_transaction_reference, p_old_Header_Adj_rec.rebate_transaction_reference)
697 	   THEN
698             l_index := l_index + 1;
699             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_REBATE_TRANSACTION_REFERENCE;
700 	   END IF;
701 
702         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.rebate_payment_system_code, p_old_Header_Adj_rec.rebate_payment_system_code)
703 	   THEN
704             l_index := l_index + 1;
705             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_REBATE_PAYMENT_SYSTEM_CODE;
706 	   END IF;
707 
708         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.redeemed_date, p_old_Header_Adj_rec.redeemed_date)
709 	   THEN
710             l_index := l_index + 1;
711             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_REDEEMED_DATE;
712 	   END IF;
713 
714         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.redeemed_flag, p_old_Header_Adj_rec.redeemed_flag)
715 	   THEN
716             l_index := l_index + 1;
717             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_REDEEMED_FLAG;
718 	   END IF;
719 
720         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.accrual_flag, p_old_Header_Adj_rec.accrual_flag)
721 	   THEN
722             l_index := l_index + 1;
723             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_ACCRUAL_FLAG;
724 	   END IF;
725 
726         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.range_break_quantity, p_old_Header_Adj_rec.range_break_quantity)
727 	   THEN
728             l_index := l_index + 1;
729             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_range_break_quantity;
730 	   END IF;
731 
732         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.accrual_conversion_rate, p_old_Header_Adj_rec.accrual_conversion_rate)
733 	   THEN
734             l_index := l_index + 1;
735             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_accrual_conversion_rate;
736 	   END IF;
737 
738         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.pricing_group_sequence, p_old_Header_Adj_rec.pricing_group_sequence)
739 	   THEN
740             l_index := l_index + 1;
741             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_pricing_group_sequence;
742 	   END IF;
743 
744         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.modifier_level_code, p_old_Header_Adj_rec.modifier_level_code)
745 	   THEN
746             l_index := l_index + 1;
747             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_modifier_level_code;
748 	   END IF;
749 
750         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.price_break_type_code, p_old_Header_Adj_rec.price_break_type_code)
751 	   THEN
752             l_index := l_index + 1;
753             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_price_break_type_code;
754 	   END IF;
755 
756         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.substitution_attribute, p_old_Header_Adj_rec.substitution_attribute)
757 	   THEN
758             l_index := l_index + 1;
759             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_substitution_attribute;
760 	   END IF;
761 
762         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.proration_type_code, p_old_Header_Adj_rec.proration_type_code)
763 	   THEN
764             l_index := l_index + 1;
765             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_proration_type_code;
766 	   END IF;
767 
768         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.credit_or_charge_flag, p_old_Header_Adj_rec.credit_or_charge_flag)
769 	   THEN
770             l_index := l_index + 1;
771             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_credit_or_charge_flag;
772 	   END IF;
773 
774         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.include_on_returns_flag, p_old_Header_Adj_rec.include_on_returns_flag)
775 	   THEN
776             l_index := l_index + 1;
777             l_src_attr_tbl(l_index) := OE_Header_ADJ_UTIL.G_include_on_returns_flag;
778 	   END IF;
779 
780         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_context,p_old_Header_Adj_rec.ac_context)
781         THEN
782             l_index := l_index + 1;
783             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_CONTEXT;
784         END IF;
785 
786         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute1,p_old_Header_Adj_rec.ac_attribute1)
787         THEN
788             l_index := l_index + 1;
789             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE1;
790         END IF;
791 
792         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute2,p_old_Header_Adj_rec.ac_attribute2)
793         THEN
794             l_index := l_index + 1;
795             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE2;
796         END IF;
797 
798         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute3,p_old_Header_Adj_rec.ac_attribute3)
799         THEN
800             l_index := l_index + 1;
801             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE3;
802         END IF;
803 
804         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute4,p_old_Header_Adj_rec.ac_attribute4)
805         THEN
806             l_index := l_index + 1;
807             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE4;
808         END IF;
809 
810         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute5,p_old_Header_Adj_rec.ac_attribute5)
811         THEN
812             l_index := l_index + 1;
813             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE5;
814         END IF;
815 
816         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute6,p_old_Header_Adj_rec.ac_attribute6)
817         THEN
818             l_index := l_index + 1;
819             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE6;
820         END IF;
821 
822         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute7,p_old_Header_Adj_rec.ac_attribute7)
823         THEN
824             l_index := l_index + 1;
825             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE7;
826         END IF;
827 
828         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute8,p_old_Header_Adj_rec.ac_attribute8)
829         THEN
830             l_index := l_index + 1;
831             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE8;
832         END IF;
833 
834         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute9,p_old_Header_Adj_rec.ac_attribute9)
835         THEN
836             l_index := l_index + 1;
837             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE9;
838         END IF;
839 
840         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute10,p_old_Header_Adj_rec.ac_attribute10)
841         THEN
842             l_index := l_index + 1;
843             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE10;
844         END IF;
845 
846         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute11,p_old_Header_Adj_rec.ac_attribute11)
847         THEN
848             l_index := l_index + 1;
849             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE11;
850         END IF;
851 
852         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute12,p_old_Header_Adj_rec.ac_attribute12)
853         THEN
854             l_index := l_index + 1;
855             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE12;
856         END IF;
857 
858         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute13,p_old_Header_Adj_rec.ac_attribute13)
859         THEN
860             l_index := l_index + 1;
861             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE13;
862         END IF;
863 
864         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute14,p_old_Header_Adj_rec.ac_attribute14)
865         THEN
866             l_index := l_index + 1;
867             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE14;
868         END IF;
869 
870         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ac_attribute15,p_old_Header_Adj_rec.ac_attribute15)
871         THEN
872             l_index := l_index + 1;
873             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE15;
874         END IF;
875 
876         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.operand,
877                                 p_old_Header_Adj_rec.operand)
878         THEN
879             l_index := l_index + 1;
880             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_OPERAND;
881         END IF;
882 
883         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.adjusted_amount,
884                                 p_old_Header_Adj_rec.adjusted_amount)
885         THEN
886             l_index := l_index + 1;
887             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ADJUSTED_AMOUNT;
888         END IF;
889 
890          --uom begin
891         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.operand_per_pqty,
892                                 p_old_Header_Adj_rec.operand_per_pqty)
893         THEN
894             l_index := l_index + 1;
895             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_OPERAND_PER_PQTY;
896         END IF;
897 
898         IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.adjusted_amount_per_pqty,
899                                 p_old_Header_Adj_rec.adjusted_amount_per_pqty)
900         THEN
901             l_index := l_index + 1;
902             l_src_attr_tbl(l_index) := OE_HEADER_ADJ_UTIL.G_ADJUSTED_AMOUNT_PER_PQTY;
903         END IF;
904         --uom end
905 
906 
907     ElsE
908         l_index := l_index + 1.0;
909         l_src_attr_tbl(l_index) := p_attr_id;
910 
911     End If;
912 
913     If l_src_attr_tbl.COUNT <> 0 THEN
914 
915         OE_Dependencies.Mark_Dependent
916         (p_entity_code     => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
917         p_source_attr_tbl => l_src_attr_tbl,
918         p_dep_attr_tbl    => l_dep_attr_tbl);
919 
920         FOR I IN 1..l_dep_attr_tbl.COUNT LOOP
921             IF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_PRICE_ADJUSTMENT THEN
922                 p_x_Header_Adj_rec.PRICE_ADJUSTMENT_ID := FND_API.G_MISS_NUM;
923             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_CREATION_DATE THEN
924                 p_x_Header_Adj_rec.CREATION_DATE := FND_API.G_MISS_DATE;
925             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_CREATED_BY THEN
926                 p_x_Header_Adj_rec.CREATED_BY := FND_API.G_MISS_NUM;
927             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_LAST_UPDATE_DATE THEN
928                 p_x_Header_Adj_rec.LAST_UPDATE_DATE := FND_API.G_MISS_DATE;
929             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_LAST_UPDATED_BY THEN
930                 p_x_Header_Adj_rec.LAST_UPDATED_BY := FND_API.G_MISS_NUM;
931             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_LAST_UPDATE_LOGIN THEN
932                 p_x_Header_Adj_rec.LAST_UPDATE_LOGIN := FND_API.G_MISS_NUM;
933             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_PROGRAM_APPLICATION THEN
934                 p_x_Header_Adj_rec.PROGRAM_APPLICATION_ID := FND_API.G_MISS_NUM;
935             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_PROGRAM THEN
936                 p_x_Header_Adj_rec.PROGRAM_ID := FND_API.G_MISS_NUM;
937             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_PROGRAM_UPDATE_DATE THEN
938                 p_x_Header_Adj_rec.PROGRAM_UPDATE_DATE := FND_API.G_MISS_DATE;
939             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_REQUEST THEN
940                 p_x_Header_Adj_rec.REQUEST_ID := FND_API.G_MISS_NUM;
941             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_HEADER THEN
942                 p_x_Header_Adj_rec.HEADER_ID := FND_API.G_MISS_NUM;
943             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_DISCOUNT THEN
944                 p_x_Header_Adj_rec.DISCOUNT_ID := FND_API.G_MISS_NUM;
945             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_DISCOUNT_LINE THEN
946                 p_x_Header_Adj_rec.DISCOUNT_LINE_ID := FND_API.G_MISS_NUM;
947             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AUTOMATIC THEN
948                 p_x_Header_Adj_rec.AUTOMATIC_FLAG := FND_API.G_MISS_CHAR;
949             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_PERCENT THEN
950                 p_x_Header_Adj_rec.PERCENT := FND_API.G_MISS_NUM;
951             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_LINE THEN
952                 p_x_Header_Adj_rec.LINE_ID := FND_API.G_MISS_NUM;
953             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_CONTEXT THEN
954                 p_x_Header_Adj_rec.CONTEXT := FND_API.G_MISS_CHAR;
955             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE1 THEN
956                 p_x_Header_Adj_rec.ATTRIBUTE1 := FND_API.G_MISS_CHAR;
957             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE2 THEN
958                 p_x_Header_Adj_rec.ATTRIBUTE2 := FND_API.G_MISS_CHAR;
959             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE3 THEN
960                 p_x_Header_Adj_rec.ATTRIBUTE3 := FND_API.G_MISS_CHAR;
961             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE4 THEN
962                 p_x_Header_Adj_rec.ATTRIBUTE4 := FND_API.G_MISS_CHAR;
963             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE5 THEN
964                 p_x_Header_Adj_rec.ATTRIBUTE5 := FND_API.G_MISS_CHAR;
965             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE6 THEN
966                 p_x_Header_Adj_rec.ATTRIBUTE6 := FND_API.G_MISS_CHAR;
967             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE7 THEN
968                 p_x_Header_Adj_rec.ATTRIBUTE7 := FND_API.G_MISS_CHAR;
969             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE8 THEN
970                 p_x_Header_Adj_rec.ATTRIBUTE8 := FND_API.G_MISS_CHAR;
971             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE9 THEN
972                 p_x_Header_Adj_rec.ATTRIBUTE9 := FND_API.G_MISS_CHAR;
973             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE10 THEN
974                 p_x_Header_Adj_rec.ATTRIBUTE10 := FND_API.G_MISS_CHAR;
975             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE11 THEN
976                 p_x_Header_Adj_rec.ATTRIBUTE11 := FND_API.G_MISS_CHAR;
977             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE12 THEN
978                 p_x_Header_Adj_rec.ATTRIBUTE12 := FND_API.G_MISS_CHAR;
979             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE13 THEN
980                 p_x_Header_Adj_rec.ATTRIBUTE13 := FND_API.G_MISS_CHAR;
981             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE14 THEN
982                 p_x_Header_Adj_rec.ATTRIBUTE14 := FND_API.G_MISS_CHAR;
983             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ATTRIBUTE15 THEN
984                 p_x_Header_Adj_rec.ATTRIBUTE15 := FND_API.G_MISS_CHAR;
985 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_COST_ID THEN
986 			 p_x_Header_Adj_rec.COST_ID := FND_API.G_MISS_NUM;
987 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_TAX_CODE THEN
988 			 p_x_Header_Adj_rec.TAX_CODE := FND_API.G_MISS_CHAR;
989 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_TAX_EXEMPT_FLAG THEN
990 			 p_x_Header_Adj_rec.TAX_EXEMPT_FLAG := FND_API.G_MISS_CHAR;
991 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_TAX_EXEMPT_NUMBER THEN
992 			 p_x_Header_Adj_rec.TAX_EXEMPT_NUMBER := FND_API.G_MISS_CHAR;
993 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_TAX_EXEMPT_REASON_CODE THEN
994 			 p_x_Header_Adj_rec.TAX_EXEMPT_REASON_CODE := FND_API.G_MISS_CHAR;
995 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_PARENT_ADJUSTMENT_ID THEN
996 			 p_x_Header_Adj_rec.PARENT_ADJUSTMENT_ID := FND_API.G_MISS_NUM;
997 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_INVOICED_FLAG THEN
998 			 p_x_Header_Adj_rec.INVOICED_FLAG := FND_API.G_MISS_CHAR;
999 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_ESTIMATED_FLAG THEN
1000 			 p_x_Header_Adj_rec.ESTIMATED_FLAG := FND_API.G_MISS_CHAR;
1001 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_INC_IN_SALES_PERFORMANCE THEN
1002 			 p_x_Header_Adj_rec.INC_IN_SALES_PERFORMANCE := FND_API.G_MISS_CHAR;
1003 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_SPLIT_ACTION_CODE THEN
1004 			 p_x_Header_Adj_rec.SPLIT_ACTION_CODE := FND_API.G_MISS_CHAR;
1005 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_CHARGE_TYPE_CODE THEN
1006 			 p_x_Header_Adj_rec.CHARGE_TYPE_CODE := FND_API.G_MISS_CHAR;
1007 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_CHARGE_SUBTYPE_CODE THEN
1008 			 p_x_Header_Adj_rec.CHARGE_SUBTYPE_CODE := FND_API.G_MISS_CHAR;
1009 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_LIST_LINE_NO THEN
1010 			 p_x_Header_Adj_rec.LIST_LINE_NO := FND_API.G_MISS_CHAR;
1011 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_SOURCE_SYSTEM_CODE THEN
1012 			 p_x_Header_Adj_rec.SOURCE_SYSTEM_CODE := FND_API.G_MISS_CHAR;
1013 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_BENEFIT_QTY THEN
1014 			 p_x_Header_Adj_rec.BENEFIT_QTY := FND_API.G_MISS_NUM;
1015 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_BENEFIT_UOM_CODE THEN
1016 			 p_x_Header_Adj_rec.BENEFIT_UOM_CODE := FND_API.G_MISS_CHAR;
1017 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_PRINT_ON_INVOICE_FLAG THEN
1018 			 p_x_Header_Adj_rec.PRINT_ON_INVOICE_FLAG := FND_API.G_MISS_CHAR;
1019 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_EXPIRATION_DATE THEN
1020 			 p_x_Header_Adj_rec.EXPIRATION_DATE := FND_API.G_MISS_DATE;
1021 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_REBATE_TRANSACTION_TYPE_CODE THEN
1022 			 p_x_Header_Adj_rec.REBATE_TRANSACTION_TYPE_CODE := FND_API.G_MISS_CHAR;
1023 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_REBATE_TRANSACTION_REFERENCE THEN
1024 			 p_x_Header_Adj_rec.REBATE_TRANSACTION_REFERENCE := FND_API.G_MISS_CHAR;
1025 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_REBATE_PAYMENT_SYSTEM_CODE THEN
1026 			 p_x_Header_Adj_rec.REBATE_PAYMENT_SYSTEM_CODE := FND_API.G_MISS_CHAR;
1027 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_REDEEMED_DATE THEN
1028 			 p_x_Header_Adj_rec.REDEEMED_DATE := FND_API.G_MISS_DATE;
1029 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_REDEEMED_FLAG THEN
1030 			 p_x_Header_Adj_rec.REDEEMED_FLAG := FND_API.G_MISS_CHAR;
1031 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_ACCRUAL_FLAG THEN
1032 			 p_x_Header_Adj_rec.ACCRUAL_FLAG := FND_API.G_MISS_CHAR;
1033 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_range_break_quantity THEN
1034 			 p_x_Header_Adj_rec.range_break_quantity := FND_API.G_MISS_NUM;
1035 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_accrual_conversion_rate THEN
1036 			 p_x_Header_Adj_rec.accrual_conversion_rate := FND_API.G_MISS_NUM;
1037 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_pricing_group_sequence THEN
1038 			 p_x_Header_Adj_rec.pricing_group_sequence := FND_API.G_MISS_NUM;
1039 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_modifier_level_code THEN
1040 			 p_x_Header_Adj_rec.modifier_level_code := FND_API.G_MISS_CHAR;
1041 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_price_break_type_code THEN
1042 			 p_x_Header_Adj_rec.price_break_type_code := FND_API.G_MISS_CHAR;
1043 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_substitution_attribute THEN
1044 			 p_x_Header_Adj_rec.substitution_attribute := FND_API.G_MISS_CHAR;
1045 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_proration_type_code THEN
1046 			 p_x_Header_Adj_rec.proration_type_code := FND_API.G_MISS_CHAR;
1047 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_credit_or_charge_flag THEN
1048 			 p_x_Header_Adj_rec.credit_or_charge_flag := FND_API.G_MISS_CHAR;
1049 		  ELSIF l_dep_attr_tbl(I) = OE_Header_ADJ_UTIL.G_include_on_returns_flag THEN
1050 			 p_x_Header_Adj_rec.include_on_returns_flag := FND_API.G_MISS_CHAR;
1051 
1052             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_CONTEXT THEN
1053                 p_x_Header_Adj_rec.AC_CONTEXT := FND_API.G_MISS_CHAR;
1054             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE1 THEN
1055                 p_x_Header_Adj_rec.AC_ATTRIBUTE1 := FND_API.G_MISS_CHAR;
1056             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE2 THEN
1057                 p_x_Header_Adj_rec.AC_ATTRIBUTE2 := FND_API.G_MISS_CHAR;
1058             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE3 THEN
1059                 p_x_Header_Adj_rec.AC_ATTRIBUTE3 := FND_API.G_MISS_CHAR;
1060             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE4 THEN
1061                 p_x_Header_Adj_rec.AC_ATTRIBUTE4 := FND_API.G_MISS_CHAR;
1062             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE5 THEN
1063                 p_x_Header_Adj_rec.AC_ATTRIBUTE5 := FND_API.G_MISS_CHAR;
1064             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE6 THEN
1065                 p_x_Header_Adj_rec.AC_ATTRIBUTE6 := FND_API.G_MISS_CHAR;
1066             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE7 THEN
1067                 p_x_Header_Adj_rec.AC_ATTRIBUTE7 := FND_API.G_MISS_CHAR;
1068             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE8 THEN
1069                 p_x_Header_Adj_rec.AC_ATTRIBUTE8 := FND_API.G_MISS_CHAR;
1070             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE9 THEN
1071                 p_x_Header_Adj_rec.AC_ATTRIBUTE9 := FND_API.G_MISS_CHAR;
1072             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE10 THEN
1073                 p_x_Header_Adj_rec.AC_ATTRIBUTE10 := FND_API.G_MISS_CHAR;
1074             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE11 THEN
1075                 p_x_Header_Adj_rec.AC_ATTRIBUTE11 := FND_API.G_MISS_CHAR;
1076             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE12 THEN
1077                 p_x_Header_Adj_rec.AC_ATTRIBUTE12 := FND_API.G_MISS_CHAR;
1078             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE13 THEN
1079                 p_x_Header_Adj_rec.AC_ATTRIBUTE13 := FND_API.G_MISS_CHAR;
1080             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE14 THEN
1081                 p_x_Header_Adj_rec.AC_ATTRIBUTE14 := FND_API.G_MISS_CHAR;
1082             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_AC_ATTRIBUTE15 THEN
1083                 p_x_Header_Adj_rec.AC_ATTRIBUTE15 := FND_API.G_MISS_CHAR;
1084             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_OPERAND THEN
1085                 p_x_Header_Adj_rec.OPERAND := FND_API.G_MISS_NUM;
1086             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ADJUSTED_AMOUNT THEN
1087                 p_x_Header_Adj_rec.ADJUSTED_AMOUNT:= FND_API.G_MISS_NUM
1088 ;
1089              --uom begin
1090             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_OPERAND_PER_PQTY THEN
1091 
1092                 p_x_Header_Adj_rec.OPERAND_PER_PQTY := FND_API.G_MISS_NUM;
1093             ELSIF l_dep_attr_tbl(I) = OE_HEADER_ADJ_UTIL.G_ADJUSTED_AMOUNT_PER_PQTY THEN
1094                 p_x_Header_Adj_rec.ADJUSTED_AMOUNT_PER_PQTY:= FND_API.G_MISS_NUM
1095 ;
1096             --uom end
1097 
1098             END IF;
1099         END LOOP;
1100     END IF;
1101 
1102     IF l_debug_level  > 0 THEN
1103         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.CLEAR_DEPENDENT_ATTR' , 1 ) ;
1104     END IF;
1105 
1106 END Clear_Dependent_Attr;
1107 
1108 
1109 -- Procedure that has new column changes
1110 -- maintaining 2 code sets
1111 
1112 PROCEDURE Clear_Dependent_Attr
1113 (   p_attr_id                       IN  NUMBER := FND_API.G_MISS_NUM
1114 ,   p_x_Header_Adj_rec              IN  out nocopy OE_Order_PUB.Header_Adj_Rec_Type
1115 ,   p_old_Header_Adj_rec            IN  OE_Order_PUB.Header_Adj_Rec_Type :=
1116                                         OE_Order_PUB.G_MISS_HEADER_ADJ_REC
1117 --,   x_Header_Adj_rec                OUT OE_Order_PUB.Header_Adj_Rec_Type
1118 )
1119 IS
1120 
1121 l_Header_Adj_rec                OE_AK_HEADER_PRCADJS_V%ROWTYPE;
1122 l_old_Header_Adj_rec            OE_AK_HEADER_PRCADJS_V%ROWTYPE ;
1123 l_initial_Header_Adj_rec        OE_AK_HEADER_PRCADJS_V%ROWTYPE;
1124 
1125 --
1126 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1127 --
1128 BEGIN
1129 
1130     IF l_debug_level  > 0 THEN
1131         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.CLEAR_DEPENDENT_ATTR' , 1 ) ;
1132     END IF;
1133 
1134     --  Load out record
1135 
1136     API_Rec_To_Rowtype_Rec(p_x_Header_Adj_rec , l_Header_Adj_rec);
1137     API_Rec_To_Rowtype_Rec(p_Old_Header_Adj_rec , l_Old_Header_Adj_rec);
1138     l_Initial_Header_Adj_rec := l_Header_Adj_rec;
1139 
1140 	Clear_Dependent_Attr
1141 		(   p_attr_id                  => p_attr_id
1142 		,   p_x_Header_Adj_rec         =>l_Header_Adj_rec
1143 		,   p_old_Header_Adj_rec       =>l_Old_Header_Adj_rec
1144 	--	,   x_Header_Adj_rec           =>l_Header_Adj_rec
1145 		);
1146 
1147 	Rowtype_Rec_To_API_Rec(l_Header_Adj_rec,p_x_Header_Adj_rec);
1148 
1149     IF l_debug_level  > 0 THEN
1150         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.CLEAR_DEPENDENT_ATTR' , 1 ) ;
1151     END IF;
1152 
1153 END Clear_Dependent_Attr;
1154 
1155 --bug 4060297
1156 Procedure log_request_for_margin(p_header_id in number)
1157 is
1158 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1159 l_booked_flag   varchar2(1);
1160 l_return_status  VARCHAR2(1);
1161 begin
1162    If l_debug_level > 0 Then
1163       oe_debug_pub.add('in log_request_for_margin');
1164       oe_debug_pub.add('p_header_id : '||p_header_id);
1165    End If;
1166    OE_Order_Cache.Load_Order_Header(p_header_id);
1167    l_booked_flag := OE_ORDER_CACHE.g_header_rec.booked_flag;
1168    oe_debug_pub.add('l_booked_flag : '||l_booked_flag);
1169 /*
1170    select booked_flag into l_booked_flag from oe_order_headers_all
1171    where header_id = p_header_id;
1172 */
1173    If OE_CODE_CONTROL.Get_Code_Release_Level >= '110509' THEN
1174       If l_booked_flag = 'Y' Then
1175          IF nvl(Oe_Sys_Parameters.Value('COMPUTE_MARGIN'),'N') <> 'N' Then
1176             IF l_debug_level  > 0 THEN
1177                oe_debug_pub.add(  'LOGGING DELAYED REQUEST FOR MARGIN HOLD FOR BOOKED HEADER ID : '||p_header_id);
1178             END IF;
1179             oe_delayed_requests_pvt.log_request(
1180             p_entity_code            => OE_GLOBALS.G_ENTITY_ALL,
1181             p_entity_id              => p_header_id,
1182             p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
1183             p_requesting_entity_id   => p_header_id,
1184             p_request_type           => 'MARGIN_HOLD',
1185             x_return_status          => l_return_status);
1186 
1187             IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1188                RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1189             ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1190                RAISE FND_API.G_EXC_ERROR;
1191             END IF;
1192          END IF;
1193       END IF;
1194    END IF;
1195 END Log_request_for_margin;
1196 --bug 4060297
1197 
1198 --  Procedure Apply_Attribute_Changes
1199 
1200 PROCEDURE Apply_Attribute_Changes
1201 (   p_x_Header_Adj_rec              IN  out nocopy OE_Order_PUB.Header_Adj_Rec_Type
1202 ,   p_old_Header_Adj_rec            IN  OE_Order_PUB.Header_Adj_Rec_Type :=
1203                                         OE_Order_PUB.G_MISS_HEADER_ADJ_REC
1204 --,   x_Header_Adj_rec              OUT OE_Order_PUB.Header_Adj_Rec_Type
1205 )
1206   IS
1207 l_return_status		VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1208 l_price_flag		boolean := FALSE;
1209 l_verify_payment_flag   VARCHAR2(30) := 'N';
1210 --bug#5961160
1211 l_calling_action        VARCHAR2(30);
1212 l_header_rec            OE_Order_PUB.Header_Rec_Type;
1213 l_rule_defined          VARCHAR2(1);
1214 l_credit_check_rule_id  NUMBER;
1215 l_credit_check_rule_rec OE_CREDIT_CHECK_UTIL.OE_credit_rules_rec_type ;
1216 --
1217 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1218 --
1219 BEGIN
1220 
1221     IF l_debug_level  > 0 THEN
1222         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.APPLY_ATTRIBUTE_CHANGES' , 1 ) ;
1223     END IF;
1224 
1225     --  Load out record
1226 
1227     --x_Header_Adj_rec := p_Header_Adj_rec;
1228 
1229     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.price_adjustment_id,p_old_Header_Adj_rec.price_adjustment_id)
1230     THEN
1231         NULL;
1232     END IF;
1233 
1234     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.creation_date,p_old_Header_Adj_rec.creation_date)
1235     THEN
1236         NULL;
1237     END IF;
1238 
1239     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.created_by,p_old_Header_Adj_rec.created_by)
1240     THEN
1241         NULL;
1242     END IF;
1243 
1244     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.last_update_date,p_old_Header_Adj_rec.last_update_date)
1245     THEN
1246         NULL;
1247     END IF;
1248 
1249     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.last_updated_by,p_old_Header_Adj_rec.last_updated_by)
1250     THEN
1251         NULL;
1252     END IF;
1253 
1254     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.last_update_login,p_old_Header_Adj_rec.last_update_login)
1255     THEN
1256         NULL;
1257     END IF;
1258 
1259     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.program_application_id,p_old_Header_Adj_rec.program_application_id)
1260     THEN
1261         NULL;
1262     END IF;
1263 
1264     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.program_id,p_old_Header_Adj_rec.program_id)
1265     THEN
1266         NULL;
1267     END IF;
1268 
1269     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.program_update_date,p_old_Header_Adj_rec.program_update_date)
1270     THEN
1271         NULL;
1272     END IF;
1273 
1274     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.request_id,p_old_Header_Adj_rec.request_id)
1275     THEN
1276         NULL;
1277     END IF;
1278 
1279     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.header_id,p_old_Header_Adj_rec.header_id)
1280     THEN
1281         NULL;
1282     END IF;
1283 
1284 
1285     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.discount_id,
1286 			    p_old_Header_Adj_rec.discount_id)
1287     THEN
1288 		Null;
1289     END IF;
1290 
1291     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.discount_line_id,p_old_Header_Adj_rec.discount_line_id)
1292     THEN
1293         NULL;
1294     END IF;
1295 
1296     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.automatic_flag,p_old_Header_Adj_rec.automatic_flag)
1297     THEN
1298         NULL;
1299     END IF;
1300 
1301     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.percent,p_old_Header_Adj_rec.percent)
1302     THEN
1303         NULL;
1304     END IF;
1305 
1306     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.line_id,p_old_Header_Adj_rec.line_id)
1307     THEN
1308         NULL;
1309     END IF;
1310 
1311     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.context,p_old_Header_Adj_rec.context)
1312     THEN
1313         NULL;
1314     END IF;
1315 
1316     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute1,p_old_Header_Adj_rec.attribute1)
1317     THEN
1318         NULL;
1319     END IF;
1320 
1321     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute2,p_old_Header_Adj_rec.attribute2)
1322     THEN
1323         NULL;
1324     END IF;
1325 
1326     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute3,p_old_Header_Adj_rec.attribute3)
1327     THEN
1328         NULL;
1329     END IF;
1330 
1331     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute4,p_old_Header_Adj_rec.attribute4)
1332     THEN
1333         NULL;
1334     END IF;
1335 
1336     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute5,p_old_Header_Adj_rec.attribute5)
1337     THEN
1338         NULL;
1339     END IF;
1340 
1341     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute6,p_old_Header_Adj_rec.attribute6)
1342     THEN
1343         NULL;
1344     END IF;
1345 
1346     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute7,p_old_Header_Adj_rec.attribute7)
1347     THEN
1348         NULL;
1349     END IF;
1350 
1351     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute8,p_old_Header_Adj_rec.attribute8)
1352     THEN
1353         NULL;
1354     END IF;
1355 
1356     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute9,p_old_Header_Adj_rec.attribute9)
1357     THEN
1358         NULL;
1359     END IF;
1360 
1361     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute10,p_old_Header_Adj_rec.attribute10)
1362     THEN
1363         NULL;
1364     END IF;
1365 
1366     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute11,p_old_Header_Adj_rec.attribute11)
1367     THEN
1368         NULL;
1369     END IF;
1370 
1371     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute12,p_old_Header_Adj_rec.attribute12)
1372     THEN
1373         NULL;
1374     END IF;
1375 
1376     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute13,p_old_Header_Adj_rec.attribute13)
1377     THEN
1378         NULL;
1379     END IF;
1380 
1381     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute14,p_old_Header_Adj_rec.attribute14)
1382     THEN
1383         NULL;
1384     END IF;
1385 
1386     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.attribute15,p_old_Header_Adj_rec.attribute15)
1387     THEN
1388         NULL;
1389     END IF;
1390 
1391     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.list_header_id,p_old_Header_Adj_rec.list_header_id)
1392     THEN
1393         NULL;
1394     END IF;
1395 
1396     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.list_line_id,p_old_Header_Adj_rec.list_line_id)
1397     THEN
1398         NULL;
1399     END IF;
1400 
1401     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.list_line_type_code,p_old_Header_Adj_rec.list_line_type_code)
1402     THEN
1403         NULL;
1404     END IF;
1405 
1406     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.modifier_mechanism_type_code,p_old_Header_Adj_rec.modifier_mechanism_type_code)
1407     THEN
1408         NULL;
1409     END IF;
1410 
1411     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.update_allowed,p_old_Header_Adj_rec.update_allowed)
1412     THEN
1413         NULL;
1414     END IF;
1415 
1416     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.updated_flag,p_old_Header_Adj_rec.updated_flag)
1417     THEN
1418 	   l_price_flag := TRUE;
1419        IF p_x_Header_Adj_rec.estimated_flag = 'Y' AND
1420           p_x_Header_Adj_rec.updated_flag = 'Y'
1421        THEN
1422            p_x_Header_adj_rec.estimated_flag := 'N';
1423        END IF;
1424        IF p_x_Header_Adj_rec.estimated_flag = 'N' AND
1425           p_x_Header_Adj_rec.updated_flag = 'N'
1426        THEN
1427            p_x_Header_adj_rec.estimated_flag := 'Y';
1428        END IF;
1429     END IF;
1430 
1431     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.applied_flag,p_old_Header_Adj_rec.applied_flag)
1432     THEN
1433 	   l_price_flag := TRUE;
1434            --bug 4060297
1435            log_request_for_margin(p_x_Header_Adj_rec.header_id);
1436     END IF;
1437 
1438     -- added by lkxu: populate the change reason when manual adjustment
1439     -- is applied by user.
1440     IF p_x_Header_Adj_rec.applied_flag = 'Y'
1441 	  AND p_x_Header_Adj_rec.automatic_flag = 'N'
1442 	  AND p_x_Header_Adj_rec.change_reason_code IS NULL THEN
1443          BEGIN
1444 	    SELECT lookup_code, meaning
1445 	    INTO   p_x_Header_Adj_rec.change_reason_code,
1446 		      p_x_Header_Adj_rec.change_reason_text
1447 	    FROM   oe_lookups
1448 	    WHERE  lookup_type = 'CHANGE_CODE'
1449 	    AND    lookup_code = 'MANUAL';
1450 
1451 	    EXCEPTION WHEN NO_DATA_FOUND THEN
1452 		 null;
1453          END;
1454     END IF;
1455 
1456     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.operand,p_old_Header_Adj_rec.operand)
1457     THEN
1458 	   l_price_flag := TRUE;
1459            --bug 4060297
1460            log_request_for_margin(p_x_Header_Adj_rec.header_id);
1461            -- fixed bug 3271297, to log Verify Payment delayed request
1462            -- when freight charge changes.
1463            IF p_x_Header_Adj_rec.list_line_type_code='FREIGHT_CHARGE' THEN
1464                 l_verify_payment_flag := 'Y';
1465            END IF;
1466     END IF;
1467 
1468 
1469     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.operand_per_pqty,p_old_Header_Adj_rec.operand_per_pqty)
1470     THEN
1471 	   l_price_flag := TRUE;
1472     END IF;
1473 
1474     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.arithmetic_operator,p_old_Header_Adj_rec.arithmetic_operator)
1475     THEN
1476 	   l_price_flag := TRUE;
1477     END IF;
1478 
1479     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.modified_from,p_old_Header_Adj_rec.modified_from)
1480     THEN
1481         NULL;
1482     END IF;
1483 
1484     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.modified_to,p_old_Header_Adj_rec.modified_to)
1485     THEN
1486         NULL;
1487     END IF;
1488 
1489     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.adjusted_amount,p_old_Header_Adj_rec.adjusted_amount)
1490     THEN
1491         NULL;
1492     END IF;
1493 
1494     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.adjusted_amount_per_pqty,p_old_Header_Adj_rec.adjusted_amount_per_pqty)
1495     THEN
1496         NULL;
1497     END IF;
1498 
1499     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.pricing_phase_id,p_old_Header_Adj_rec.pricing_phase_id)
1500     THEN
1501 	   l_price_flag := TRUE;
1502     END IF;
1503 
1504     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.change_reason_code,p_old_Header_Adj_rec.change_reason_code)
1505     THEN
1506         NULL;
1507     END IF;
1508 
1509     IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.change_reason_text,p_old_Header_Adj_rec.change_reason_text)
1510     THEN
1511         NULL;
1512     END IF;
1513 
1514    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.COST_ID, p_old_Header_Adj_rec.COST_ID)
1515    THEN
1516 	  NULL;
1517    END IF;
1518 
1519    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.TAX_CODE, p_old_Header_Adj_rec.TAX_CODE)
1520    THEN
1521 	  NULL;
1522    END IF;
1523 
1524    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.TAX_EXEMPT_FLAG, p_old_Header_Adj_rec.TAX_EXEMPT_FLAG)
1525    THEN
1526 	  NULL;
1527    END IF;
1528 
1529    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.TAX_EXEMPT_NUMBER, p_old_Header_Adj_rec.TAX_EXEMPT_NUMBER)
1530    THEN
1531 	  NULL;
1532    END IF;
1533 
1534    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.TAX_EXEMPT_REASON_CODE, p_old_Header_Adj_rec.TAX_EXEMPT_REASON_CODE)
1535    THEN
1536 	  NULL;
1537    END IF;
1538 
1539    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.PARENT_ADJUSTMENT_ID, p_old_Header_Adj_rec.PARENT_ADJUSTMENT_ID)
1540    THEN
1541 	  NULL;
1542    END IF;
1543 
1544    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.INVOICED_FLAG, p_old_Header_Adj_rec.INVOICED_FLAG)
1545    THEN
1546 	  NULL;
1547    END IF;
1548 
1549    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.ESTIMATED_FLAG, p_old_Header_Adj_rec.ESTIMATED_FLAG)
1550    THEN
1551 	  NULL;
1552    END IF;
1553 
1554    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.INC_IN_SALES_PERFORMANCE, p_old_Header_Adj_rec.INC_IN_SALES_PERFORMANCE)
1555    THEN
1556 	  NULL;
1557    END IF;
1558 
1559    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.SPLIT_ACTION_CODE, p_old_Header_Adj_rec.SPLIT_ACTION_CODE)
1560    THEN
1561 	  NULL;
1562    END IF;
1563 
1564    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.CHARGE_TYPE_CODE, p_old_Header_Adj_rec.CHARGE_TYPE_CODE)
1565    THEN
1566 	  NULL;
1567    END IF;
1568 
1569    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.CHARGE_SUBTYPE_CODE, p_old_Header_Adj_rec.CHARGE_SUBTYPE_CODE)
1570    THEN
1571 	  NULL;
1572    END IF;
1573 
1574    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.list_line_no, p_old_Header_Adj_rec.list_line_no)
1575    THEN
1576           NULL;
1577    END IF;
1578 
1579    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.source_system_code, p_old_Header_Adj_rec.source_system_code)
1580    THEN
1581           NULL;
1582    END IF;
1583 
1584    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.benefit_qty, p_old_Header_Adj_rec.benefit_qty)
1585    THEN
1586           NULL;
1587    END IF;
1588 
1589    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.benefit_uom_code, p_old_Header_Adj_rec.benefit_uom_code)
1590    THEN
1591           NULL;
1592    END IF;
1593 
1594    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.print_on_invoice_flag, p_old_Header_Adj_rec.print_on_invoice_flag)
1595    THEN
1596           NULL;
1597    END IF;
1598 
1599    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.expiration_date, p_old_Header_Adj_rec.expiration_date)
1600    THEN
1601           NULL;
1602    END IF;
1603 
1604    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.rebate_transaction_type_code, p_old_Header_Adj_rec.rebate_transaction_type_code)
1605    THEN
1606           NULL;
1607    END IF;
1608 
1609    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.rebate_transaction_reference, p_old_Header_Adj_rec.rebate_transaction_reference)
1610    THEN
1611           NULL;
1612    END IF;
1613 
1614    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.rebate_payment_system_code, p_old_Header_Adj_rec.rebate_payment_system_code)
1615    THEN
1616           NULL;
1617    END IF;
1618 
1619    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.redeemed_date, p_old_Header_Adj_rec.redeemed_date)
1620    THEN
1621           NULL;
1622    END IF;
1623 
1624    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.redeemed_flag, p_old_Header_Adj_rec.redeemed_flag)
1625    THEN
1626           NULL;
1627    END IF;
1628 
1629    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.accrual_flag, p_old_Header_Adj_rec.accrual_flag)
1630    THEN
1631           NULL;
1632    END IF;
1633 
1634    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.range_break_quantity, p_old_Header_Adj_rec.range_break_quantity)
1635    THEN
1636           NULL;
1637    END IF;
1638 
1639    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.accrual_conversion_rate, p_old_Header_Adj_rec.accrual_conversion_rate)
1640    THEN
1641           NULL;
1642    END IF;
1643 
1644    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.pricing_group_sequence, p_old_Header_Adj_rec.pricing_group_sequence)
1645    THEN
1646 	   l_price_flag := TRUE;
1647    END IF;
1648 
1649    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.modifier_level_code, p_old_Header_Adj_rec.modifier_level_code)
1650    THEN
1651           NULL;
1652    END IF;
1653 
1654    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.price_break_type_code, p_old_Header_Adj_rec.price_break_type_code)
1655    THEN
1656           NULL;
1657    END IF;
1658 
1659    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.substitution_attribute, p_old_Header_Adj_rec.substitution_attribute)
1660    THEN
1661           NULL;
1662    END IF;
1663 
1664    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.proration_type_code, p_old_Header_Adj_rec.proration_type_code)
1665    THEN
1666           NULL;
1667    END IF;
1668 
1669    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.credit_or_charge_flag, p_old_Header_Adj_rec.credit_or_charge_flag)
1670    THEN
1671           NULL;
1672    END IF;
1673 
1674    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.include_on_returns_flag, p_old_Header_Adj_rec.include_on_returns_flag)
1675    THEN
1676           NULL;
1677    END IF;
1678 
1679    IF NOT OE_GLOBALS.Equal(p_x_Header_Adj_rec.invoiced_amount, p_old_Header_Adj_rec.invoiced_amount)
1680    THEN
1681           NULL;
1682    END IF;
1683 
1684     	IF l_price_flag and OE_Globals.G_RECURSION_MODE <> 'Y' AND
1685 	    p_x_Header_adj_rec.list_line_type_code NOT IN ('TAX','COST')
1686      THEN
1687 
1688 	     IF nvl(OE_ORDER_COPY_UTIL.G_COPY_REC.line_price_mode,-2) <> OE_ORDER_COPY_UTIL.G_CPY_ORIG_PRICE THEN
1689 		--no point to reprice all the line is user says copy with orig price, all lines
1690                 --has calc price = 'N'
1691 		oe_delayed_requests_pvt.log_request(p_entity_code     => OE_GLOBALS.G_ENTITY_ALL,
1692 					p_entity_id              => p_x_header_adj_rec.Header_id,
1693 					p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
1694 					p_requesting_entity_id   => p_x_header_adj_rec.HEader_id,
1695 					p_request_type           => OE_GLOBALS.G_PRICE_ADJ,
1696 					x_return_status          => l_return_status);
1697 	     END IF;
1698 
1699 		l_price_flag := FALSE;
1700 	End If;
1701 
1702 	IF l_return_status <> FND_API.G_RET_STS_SUCCESS
1703 	THEN
1704 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1705 	END IF;
1706 
1707         IF (l_verify_payment_flag = 'Y') THEN
1708            --Start bug#5961160
1709            -- Query the Order Header
1710            IF l_debug_level  > 0 THEN
1711               oe_debug_pub.add( 'OEXUHADB: BEFORE QUERYING HEADER ID : '|| p_x_header_adj_rec.header_id ) ;
1712            END IF;
1713 
1714            OE_Header_UTIL.Query_Row
1715              (p_header_id               => p_x_header_adj_rec.header_id
1716              ,x_header_rec              => l_header_rec
1717               );
1718 
1719            IF l_debug_level  > 0
1720            THEN
1721               OE_DEBUG_PUB.ADD('after query header ');
1722               OE_DEBUG_PUB.ADD(' ');
1723               OE_DEBUG_PUB.ADD('================================================');
1724               OE_DEBUG_PUB.ADD('Header ID           = '|| l_header_rec.header_id );
1725               OE_DEBUG_PUB.ADD('order_category_code = '|| l_header_rec.order_category_code );
1726               OE_DEBUG_PUB.ADD('Booked flag         = '|| l_header_rec.booked_flag );
1727               OE_DEBUG_PUB.ADD('Order number        = '|| l_header_rec.order_number );
1728               OE_DEBUG_PUB.ADD('payment_term_id     = '|| l_header_rec.payment_term_id );
1729               OE_DEBUG_PUB.ADD('order_type_id       = '|| l_header_rec.order_type_id );
1730               OE_DEBUG_PUB.ADD(' ');
1731               OE_DEBUG_PUB.ADD('================================================');
1732            END IF;
1733 
1734            -- Call Which_Rule function to find out Which Rule to Apply
1735            IF l_debug_level  > 0 THEN
1736               oe_debug_pub.add( 'OEXUHADB: BEFORE CALLING WHICH RULE ' ) ;
1737            END IF;
1738 
1739            l_calling_action := OE_Verify_Payment_PUB.Which_Rule(p_header_id => p_x_header_adj_rec.header_id);
1740 
1741            IF l_debug_level  > 0 THEN
1742              oe_debug_pub.add( 'OEXUHADB: RULE TO BE USED IS : '|| l_calling_action ) ;
1743            END IF;
1744 
1745            IF l_debug_level  > 0 THEN
1746               oe_debug_pub.add( 'OEXUHADB: BEFORE CHECKING IF THE RULE IS DEFINED OR NOT' ) ;
1747            END IF;
1748 
1749            l_rule_defined := OE_Verify_Payment_PUB.Check_Rule_Defined
1750                                 ( p_header_rec     => l_header_rec
1751                                 , p_calling_action => l_calling_action
1752                                 ) ;
1753 
1754            IF l_debug_level  > 0 THEN
1755               oe_debug_pub.add( 'OEXUHADB: OUT OF RULE DEFINED : '|| l_rule_defined);
1756            END IF;
1757 
1758            IF l_rule_defined = 'Y' THEN
1759               l_credit_check_rule_id := NULL ;
1760 
1761               -- Check the Rule to Apply
1762               IF l_debug_level  > 0 THEN
1763                  oe_debug_pub.add( 'Before L_CREDIT_CHECK_RULE_ID => '|| l_credit_check_rule_id ) ;
1764               END IF;
1765 
1766               OE_CREDIT_CHECK_UTIL.Get_Credit_Check_Rule_ID
1767                ( p_calling_action        => l_calling_action
1768                , p_order_type_id         => l_header_rec.order_type_id
1769                , x_credit_rule_id        => l_credit_check_rule_id
1770                 );
1771 
1772               IF l_debug_level  > 0 THEN
1773                  oe_debug_pub.add( 'After L_CREDIT_CHECK_RULE_ID => '|| l_credit_check_rule_id ) ;
1774               END IF;
1775 
1776               OE_CREDIT_CHECK_UTIL.GET_credit_check_rule
1777                ( p_credit_check_rule_id   => l_credit_check_rule_id
1778                , x_credit_check_rules_rec => l_credit_check_rule_rec
1779                 );
1780 
1781               IF l_debug_level  > 0 THEN
1782                  oe_debug_pub.add( 'OEXUHADB: INCL FREIGHT CHARGE FLAG : '|| l_credit_check_rule_rec.incl_freight_charges_flag);
1783               END IF;
1784 
1785               IF NVL(l_credit_check_rule_rec.incl_freight_charges_flag,'N') = 'Y' THEN
1786               -- Log a request for Verify Payment
1787                  oe_debug_pub.add('OEXUHADB: Logging Delayed Request for Verify Payment',3);
1788                  OE_delayed_requests_Pvt.log_request
1789                   (p_entity_code            => OE_GLOBALS.G_ENTITY_ALL,
1790                    p_entity_id              => p_x_header_adj_rec.header_id,
1791                    p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1792                    p_requesting_entity_id   => p_x_header_adj_rec.header_id,
1793                    p_request_type           => OE_GLOBALS.G_VERIFY_PAYMENT,
1794                    x_return_status          => l_return_status);
1795               END IF;
1796            END IF;
1797            --End bug#5961160
1798         END IF;
1799 
1800 	IF l_return_status <> FND_API.G_RET_STS_SUCCESS
1801 	THEN
1802 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1803 	END IF;
1804 
1805     IF l_debug_level  > 0 THEN
1806         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.APPLY_ATTRIBUTE_CHANGES' , 1 ) ;
1807     END IF;
1808 
1809 END Apply_Attribute_Changes;
1810 
1811 --  Procedure Complete_Record
1812 
1813 PROCEDURE Complete_Record
1814 (   p_x_Header_Adj_rec              IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
1815 ,   p_old_Header_Adj_rec            IN  OE_Order_PUB.Header_Adj_Rec_Type
1816 )
1817 IS
1818 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type := p_x_Header_Adj_rec;
1819 --
1820 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1821 --
1822 BEGIN
1823 
1824     IF l_debug_level  > 0 THEN
1825         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.COMPLETE_RECORD' , 1 ) ;
1826     END IF;
1827 
1828     IF l_Header_Adj_rec.price_adjustment_id = FND_API.G_MISS_NUM THEN
1829         l_Header_Adj_rec.price_adjustment_id := p_old_Header_Adj_rec.price_adjustment_id;
1830     END IF;
1831 
1832     IF l_Header_Adj_rec.creation_date = FND_API.G_MISS_DATE THEN
1833         l_Header_Adj_rec.creation_date := p_old_Header_Adj_rec.creation_date;
1834     END IF;
1835 
1836     IF l_Header_Adj_rec.created_by = FND_API.G_MISS_NUM THEN
1837         l_Header_Adj_rec.created_by := p_old_Header_Adj_rec.created_by;
1838     END IF;
1839 
1840     IF l_Header_Adj_rec.last_update_date = FND_API.G_MISS_DATE THEN
1841         l_Header_Adj_rec.last_update_date := p_old_Header_Adj_rec.last_update_date;
1842     END IF;
1843 
1844     IF l_Header_Adj_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1845         l_Header_Adj_rec.last_updated_by := p_old_Header_Adj_rec.last_updated_by;
1846     END IF;
1847 
1848     IF l_Header_Adj_rec.last_update_login = FND_API.G_MISS_NUM THEN
1849         l_Header_Adj_rec.last_update_login := p_old_Header_Adj_rec.last_update_login;
1850     END IF;
1851 
1852     IF l_Header_Adj_rec.program_application_id = FND_API.G_MISS_NUM THEN
1853         l_Header_Adj_rec.program_application_id := p_old_Header_Adj_rec.program_application_id;
1854     END IF;
1855 
1856     IF l_Header_Adj_rec.program_id = FND_API.G_MISS_NUM THEN
1857         l_Header_Adj_rec.program_id := p_old_Header_Adj_rec.program_id;
1858     END IF;
1859 
1860     IF l_Header_Adj_rec.program_update_date = FND_API.G_MISS_DATE THEN
1861         l_Header_Adj_rec.program_update_date := p_old_Header_Adj_rec.program_update_date;
1862     END IF;
1863 
1864     IF l_Header_Adj_rec.request_id = FND_API.G_MISS_NUM THEN
1865         l_Header_Adj_rec.request_id := p_old_Header_Adj_rec.request_id;
1866     END IF;
1867 
1868     IF l_Header_Adj_rec.header_id = FND_API.G_MISS_NUM THEN
1869         l_Header_Adj_rec.header_id := p_old_Header_Adj_rec.header_id;
1870     END IF;
1871 
1872     IF l_Header_Adj_rec.discount_id = FND_API.G_MISS_NUM THEN
1873         l_Header_Adj_rec.discount_id := p_old_Header_Adj_rec.discount_id;
1874     END IF;
1875 
1876     IF l_Header_Adj_rec.discount_line_id = FND_API.G_MISS_NUM THEN
1877         l_Header_Adj_rec.discount_line_id := p_old_Header_Adj_rec.discount_line_id;
1878     END IF;
1879 
1880     IF l_Header_Adj_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
1881         l_Header_Adj_rec.automatic_flag := p_old_Header_Adj_rec.automatic_flag;
1882     END IF;
1883 
1884     IF l_Header_Adj_rec.percent = FND_API.G_MISS_NUM THEN
1885         l_Header_Adj_rec.percent := p_old_Header_Adj_rec.percent;
1886     END IF;
1887 
1888     IF l_Header_Adj_rec.line_id = FND_API.G_MISS_NUM THEN
1889         l_Header_Adj_rec.line_id := p_old_Header_Adj_rec.line_id;
1890     END IF;
1891 
1892     IF l_Header_Adj_rec.context = FND_API.G_MISS_CHAR THEN
1893         l_Header_Adj_rec.context := p_old_Header_Adj_rec.context;
1894     END IF;
1895 
1896     IF l_Header_Adj_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1897         l_Header_Adj_rec.attribute1 := p_old_Header_Adj_rec.attribute1;
1898     END IF;
1899 
1900     IF l_Header_Adj_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1901         l_Header_Adj_rec.attribute2 := p_old_Header_Adj_rec.attribute2;
1902     END IF;
1903 
1904     IF l_Header_Adj_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1905         l_Header_Adj_rec.attribute3 := p_old_Header_Adj_rec.attribute3;
1906     END IF;
1907 
1908     IF l_Header_Adj_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1909         l_Header_Adj_rec.attribute4 := p_old_Header_Adj_rec.attribute4;
1910     END IF;
1911 
1912     IF l_Header_Adj_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1913         l_Header_Adj_rec.attribute5 := p_old_Header_Adj_rec.attribute5;
1914     END IF;
1915 
1916     IF l_Header_Adj_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1917         l_Header_Adj_rec.attribute6 := p_old_Header_Adj_rec.attribute6;
1918     END IF;
1919 
1920     IF l_Header_Adj_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1921         l_Header_Adj_rec.attribute7 := p_old_Header_Adj_rec.attribute7;
1922     END IF;
1923 
1924     IF l_Header_Adj_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1925         l_Header_Adj_rec.attribute8 := p_old_Header_Adj_rec.attribute8;
1926     END IF;
1927 
1928     IF l_Header_Adj_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1929         l_Header_Adj_rec.attribute9 := p_old_Header_Adj_rec.attribute9;
1930     END IF;
1931 
1932     IF l_Header_Adj_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1933         l_Header_Adj_rec.attribute10 := p_old_Header_Adj_rec.attribute10;
1934     END IF;
1935 
1936     IF l_Header_Adj_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1937         l_Header_Adj_rec.attribute11 := p_old_Header_Adj_rec.attribute11;
1938     END IF;
1939 
1940     IF l_Header_Adj_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1941         l_Header_Adj_rec.attribute12 := p_old_Header_Adj_rec.attribute12;
1942     END IF;
1943 
1944     IF l_Header_Adj_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1945         l_Header_Adj_rec.attribute13 := p_old_Header_Adj_rec.attribute13;
1946     END IF;
1947 
1948     IF l_Header_Adj_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1949         l_Header_Adj_rec.attribute14 := p_old_Header_Adj_rec.attribute14;
1950     END IF;
1951 
1952     IF l_Header_Adj_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1953         l_Header_Adj_rec.attribute15 := p_old_Header_Adj_rec.attribute15;
1954     END IF;
1955 
1956     IF l_Header_Adj_rec.adjusted_amount = FND_API.G_MISS_NUM THEN
1957       l_Header_Adj_rec.adjusted_amount := p_old_Header_Adj_rec.adjusted_amount;
1958     END IF;
1959 
1960     IF l_Header_Adj_rec.pricing_phase_id = FND_API.G_MISS_NUM THEN
1961     l_Header_Adj_rec.pricing_phase_id := p_old_Header_Adj_rec.pricing_phase_id;
1962     END IF;
1963 
1964     IF l_Header_Adj_rec.list_header_id = FND_API.G_MISS_NUM THEN
1965         l_Header_Adj_rec.list_header_id := p_old_Header_Adj_rec.list_header_id;
1966     END IF;
1967 
1968     IF l_Header_Adj_rec.list_line_id = FND_API.G_MISS_NUM THEN
1969         l_Header_Adj_rec.list_line_id := p_old_Header_Adj_rec.list_line_id;
1970     END IF;
1971     IF l_Header_Adj_rec.modified_from = FND_API.G_MISS_CHAR THEN
1972         l_Header_Adj_rec.modified_from := p_old_Header_Adj_rec.modified_from;
1973     END IF;
1974     IF l_Header_Adj_rec.modified_to = FND_API.G_MISS_CHAR THEN
1975         l_Header_Adj_rec.modified_to := p_old_Header_Adj_rec.modified_from;
1976     END IF;
1977 
1978     IF l_Header_Adj_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
1979         l_Header_Adj_rec.list_line_type_code := p_old_Header_Adj_rec.list_line_type_code;
1980     END IF;
1981 
1982     IF l_Header_Adj_rec.updated_flag = FND_API.G_MISS_CHAR THEN
1983         l_Header_Adj_rec.updated_flag := p_old_Header_Adj_rec.updated_flag;
1984     END IF;
1985 
1986     IF l_Header_Adj_rec.update_allowed = FND_API.G_MISS_CHAR THEN
1987         l_Header_Adj_rec.update_allowed := p_old_Header_Adj_rec.update_allowed;
1988     END IF;
1989 
1990     IF l_Header_Adj_rec.applied_flag = FND_API.G_MISS_CHAR THEN
1991         l_Header_Adj_rec.applied_flag := p_old_Header_Adj_rec.applied_flag;
1992     END IF;
1993 
1994     IF l_Header_Adj_rec.modifier_mechanism_type_code = FND_API.G_MISS_CHAR THEN
1995         l_Header_Adj_rec.modifier_mechanism_type_code := p_old_Header_Adj_rec.modifier_mechanism_type_code;
1996     END IF;
1997 
1998     IF l_Header_Adj_rec.change_reason_code = FND_API.G_MISS_CHAR THEN
1999         l_Header_Adj_rec.change_reason_code := p_old_Header_Adj_rec.change_reason_code;
2000     END IF;
2001 
2002     IF l_Header_Adj_rec.change_reason_text = FND_API.G_MISS_CHAR THEN
2003         l_Header_Adj_rec.change_reason_text := p_old_Header_Adj_rec.change_reason_text;
2004     END IF;
2005 
2006     IF l_Header_Adj_rec.arithmetic_operator = FND_API.G_MISS_CHAR THEN
2007         l_Header_Adj_rec.arithmetic_operator := p_old_Header_Adj_rec.arithmetic_operator;
2008     END IF;
2009 
2010     IF l_Header_Adj_rec.operand = FND_API.G_MISS_NUM THEN
2011         l_Header_Adj_rec.operand := p_old_Header_Adj_rec.operand;
2012     END IF;
2013 
2014 	IF l_Header_Adj_rec.cost_id = FND_API.G_MISS_NUM THEN
2015 	    l_Header_Adj_rec.cost_id :=  p_old_Header_Adj_rec.cost_id;
2016 	END IF;
2017 
2018 	IF l_Header_Adj_rec.tax_code = FND_API.G_MISS_CHAR THEN
2019 	    l_Header_Adj_rec.tax_code := p_old_Header_Adj_rec.tax_code;
2020 	END IF;
2021 
2022 	IF l_Header_Adj_rec.tax_exempt_flag = FND_API.G_MISS_CHAR THEN
2023 	    l_Header_Adj_rec.tax_exempt_flag :=
2024 	    p_old_Header_Adj_rec.tax_exempt_flag;
2025 	END IF;
2026 
2027 	IF l_Header_Adj_rec.tax_exempt_number = FND_API.G_MISS_CHAR THEN
2028 	    l_Header_Adj_rec.tax_exempt_number :=
2029 	    p_old_Header_Adj_rec.tax_exempt_number;
2030 	END IF;
2031 
2032 	IF l_Header_Adj_rec.tax_exempt_reason_code = FND_API.G_MISS_CHAR THEN
2033 	    l_Header_Adj_rec.tax_exempt_reason_code :=
2034 	    p_old_Header_Adj_rec.tax_exempt_reason_code;
2035 	END IF;
2036 
2037 	IF l_Header_Adj_rec.parent_adjustment_id = FND_API.G_MISS_NUM THEN
2038 	    l_Header_Adj_rec.parent_adjustment_id :=
2039 	    p_old_Header_Adj_rec.parent_adjustment_id;
2040 	END IF;
2041 
2042 	IF l_Header_Adj_rec.invoiced_flag = FND_API.G_MISS_CHAR THEN
2043 	    l_Header_Adj_rec.invoiced_flag :=
2044 	    p_old_Header_Adj_rec.invoiced_flag;
2045 	END IF;
2046 
2047 	IF l_Header_Adj_rec.estimated_flag = FND_API.G_MISS_CHAR THEN
2048 	    l_Header_Adj_rec.estimated_flag :=
2049 	    p_old_Header_Adj_rec.estimated_flag;
2050 	END IF;
2051 
2052 	IF l_Header_Adj_rec.inc_in_sales_performance = FND_API.G_MISS_CHAR THEN
2053 	    l_Header_Adj_rec.inc_in_sales_performance :=
2054 	    p_old_Header_Adj_rec.inc_in_sales_performance;
2055 	END IF;
2056 
2057 	IF l_Header_Adj_rec.split_action_code = FND_API.G_MISS_CHAR THEN
2058 	    l_Header_Adj_rec.split_action_code :=
2059 	    p_old_Header_Adj_rec.split_action_code;
2060 	END IF;
2061 
2062 	IF l_Header_Adj_rec.charge_type_code = FND_API.G_MISS_CHAR THEN
2063 	    l_Header_Adj_rec.charge_type_code :=
2064 	    p_old_Header_Adj_rec.charge_type_code;
2065 	END IF;
2066 
2067 	IF l_Header_Adj_rec.charge_subtype_code = FND_API.G_MISS_CHAR THEN
2068 	    l_Header_Adj_rec.charge_subtype_code :=
2069 	    p_old_Header_Adj_rec.charge_subtype_code;
2070 	END IF;
2071 
2072 	IF l_Header_Adj_rec.list_line_no = FND_API.G_MISS_CHAR THEN
2073 	    l_Header_Adj_rec.list_line_no :=
2074 	    p_old_Header_Adj_rec.list_line_no;
2075 	END IF;
2076 
2077 	IF l_Header_Adj_rec.source_system_code = FND_API.G_MISS_CHAR THEN
2078 	    l_Header_Adj_rec.source_system_code :=
2079 	    p_old_Header_Adj_rec.source_system_code;
2080 	END IF;
2081 
2082 	IF l_Header_Adj_rec.benefit_qty = FND_API.G_MISS_NUM THEN
2083 	    l_Header_Adj_rec.benefit_qty :=
2084 	    p_old_Header_Adj_rec.benefit_qty;
2085 	END IF;
2086 
2087 	IF l_Header_Adj_rec.benefit_uom_code = FND_API.G_MISS_CHAR THEN
2088 	    l_Header_Adj_rec.benefit_uom_code :=
2089 	    p_old_Header_Adj_rec.benefit_uom_code;
2090 	END IF;
2091 
2092 	IF l_Header_Adj_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
2093 	    l_Header_Adj_rec.print_on_invoice_flag :=
2094 	    p_old_Header_Adj_rec.print_on_invoice_flag;
2095 	END IF;
2096 
2097 	IF l_Header_Adj_rec.expiration_date = FND_API.G_MISS_DATE THEN
2098 	    l_Header_Adj_rec.expiration_date :=
2099 	    p_old_Header_Adj_rec.expiration_date;
2100 	END IF;
2101 
2102 	IF l_Header_Adj_rec.rebate_transaction_type_code = FND_API.G_MISS_CHAR THEN
2103 	    l_Header_Adj_rec.rebate_transaction_type_code :=
2104 	    p_old_Header_Adj_rec.rebate_transaction_type_code;
2105 	END IF;
2106 
2107 	IF l_Header_Adj_rec.rebate_transaction_reference = FND_API.G_MISS_CHAR THEN
2108 	    l_Header_Adj_rec.rebate_transaction_reference :=
2109 	    p_old_Header_Adj_rec.rebate_transaction_reference;
2110 	END IF;
2111 
2112 	IF l_Header_Adj_rec.rebate_payment_system_code = FND_API.G_MISS_CHAR THEN
2113 	    l_Header_Adj_rec.rebate_payment_system_code :=
2114 	    p_old_Header_Adj_rec.rebate_payment_system_code;
2115 	END IF;
2116 
2117 	IF l_Header_Adj_rec.redeemed_date = FND_API.G_MISS_DATE THEN
2118 	    l_Header_Adj_rec.redeemed_date :=
2119 	    p_old_Header_Adj_rec.redeemed_date;
2120 	END IF;
2121 
2122 	IF l_Header_Adj_rec.redeemed_flag = FND_API.G_MISS_CHAR THEN
2123 	    l_Header_Adj_rec.redeemed_flag :=
2124 	    p_old_Header_Adj_rec.redeemed_flag;
2125 	END IF;
2126 
2127 	IF l_Header_Adj_rec.accrual_flag = FND_API.G_MISS_CHAR THEN
2128 	    l_Header_Adj_rec.accrual_flag :=
2129 	    p_old_Header_Adj_rec.accrual_flag;
2130 	END IF;
2131 
2132 	IF l_Header_Adj_rec.range_break_quantity = FND_API.G_MISS_NUM THEN
2133 	    l_Header_Adj_rec.range_break_quantity :=
2134 	    p_old_Header_Adj_rec.range_break_quantity;
2135 	END IF;
2136 
2137 	IF l_Header_Adj_rec.accrual_conversion_rate = FND_API.G_MISS_NUM THEN
2138 	    l_Header_Adj_rec.accrual_conversion_rate :=
2139 	    p_old_Header_Adj_rec.accrual_conversion_rate;
2140 	END IF;
2141 
2142 	IF l_Header_Adj_rec.pricing_group_sequence = FND_API.G_MISS_NUM THEN
2143 	    l_Header_Adj_rec.pricing_group_sequence :=
2144 	    p_old_Header_Adj_rec.pricing_group_sequence;
2145 	END IF;
2146 
2147 	IF l_Header_Adj_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
2148 	    l_Header_Adj_rec.modifier_level_code :=
2149 	    p_old_Header_Adj_rec.modifier_level_code;
2150 	END IF;
2151 
2152 	IF l_Header_Adj_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
2153 	    l_Header_Adj_rec.price_break_type_code :=
2154 	    p_old_Header_Adj_rec.price_break_type_code;
2155 	END IF;
2156 
2157 	IF l_Header_Adj_rec.substitution_attribute = FND_API.G_MISS_CHAR THEN
2158 	    l_Header_Adj_rec.substitution_attribute :=
2159 	    p_old_Header_Adj_rec.substitution_attribute;
2160 	END IF;
2161 
2162 	IF l_Header_Adj_rec.proration_type_code = FND_API.G_MISS_CHAR THEN
2163 	    l_Header_Adj_rec.proration_type_code :=
2164 	    p_old_Header_Adj_rec.proration_type_code;
2165 	END IF;
2166 
2167 	IF l_Header_Adj_rec.credit_or_charge_flag = FND_API.G_MISS_CHAR THEN
2168 	    l_Header_Adj_rec.credit_or_charge_flag :=
2169 	    p_old_Header_Adj_rec.credit_or_charge_flag;
2170 	END IF;
2171 
2172 	IF l_Header_Adj_rec.include_on_returns_flag = FND_API.G_MISS_CHAR THEN
2173 	    l_Header_Adj_rec.include_on_returns_flag :=
2174 	    p_old_Header_Adj_rec.include_on_returns_flag;
2175 	END IF;
2176 
2177 
2178     IF l_Header_Adj_rec.ac_context = FND_API.G_MISS_CHAR THEN
2179         l_Header_Adj_rec.ac_context := p_old_Header_Adj_rec.ac_context;
2180     END IF;
2181 
2182     IF l_Header_Adj_rec.ac_attribute1 = FND_API.G_MISS_CHAR THEN
2183         l_Header_Adj_rec.ac_attribute1 := p_old_Header_Adj_rec.ac_attribute1;
2184     END IF;
2185 
2186     IF l_Header_Adj_rec.ac_attribute2 = FND_API.G_MISS_CHAR THEN
2187         l_Header_Adj_rec.ac_attribute2 := p_old_Header_Adj_rec.ac_attribute2;
2188     END IF;
2189 
2190     IF l_Header_Adj_rec.ac_attribute3 = FND_API.G_MISS_CHAR THEN
2191         l_Header_Adj_rec.ac_attribute3 := p_old_Header_Adj_rec.ac_attribute3;
2192     END IF;
2193 
2194     IF l_Header_Adj_rec.ac_attribute4 = FND_API.G_MISS_CHAR THEN
2195         l_Header_Adj_rec.ac_attribute4 := p_old_Header_Adj_rec.ac_attribute4;
2196     END IF;
2197 
2198     IF l_Header_Adj_rec.ac_attribute5 = FND_API.G_MISS_CHAR THEN
2199         l_Header_Adj_rec.ac_attribute5 := p_old_Header_Adj_rec.ac_attribute5;
2200     END IF;
2201 
2202     IF l_Header_Adj_rec.ac_attribute6 = FND_API.G_MISS_CHAR THEN
2203         l_Header_Adj_rec.ac_attribute6 := p_old_Header_Adj_rec.ac_attribute6;
2204     END IF;
2205 
2206     IF l_Header_Adj_rec.ac_attribute7 = FND_API.G_MISS_CHAR THEN
2207         l_Header_Adj_rec.ac_attribute7 := p_old_Header_Adj_rec.ac_attribute7;
2208     END IF;
2209 
2210     IF l_Header_Adj_rec.ac_attribute8 = FND_API.G_MISS_CHAR THEN
2211         l_Header_Adj_rec.ac_attribute8 := p_old_Header_Adj_rec.ac_attribute8;
2212     END IF;
2213 
2214     IF l_Header_Adj_rec.ac_attribute9 = FND_API.G_MISS_CHAR THEN
2215         l_Header_Adj_rec.ac_attribute9 := p_old_Header_Adj_rec.ac_attribute9;
2216     END IF;
2217 
2218     IF l_Header_Adj_rec.ac_attribute10 = FND_API.G_MISS_CHAR THEN
2219         l_Header_Adj_rec.ac_attribute10 := p_old_Header_Adj_rec.ac_attribute10;
2220     END IF;
2221 
2222     IF l_Header_Adj_rec.ac_attribute11 = FND_API.G_MISS_CHAR THEN
2223         l_Header_Adj_rec.ac_attribute11 := p_old_Header_Adj_rec.ac_attribute11;
2224     END IF;
2225 
2226     IF l_Header_Adj_rec.ac_attribute12 = FND_API.G_MISS_CHAR THEN
2227         l_Header_Adj_rec.ac_attribute12 := p_old_Header_Adj_rec.ac_attribute12;
2228     END IF;
2229 
2230     IF l_Header_Adj_rec.ac_attribute13 = FND_API.G_MISS_CHAR THEN
2231         l_Header_Adj_rec.ac_attribute13 := p_old_Header_Adj_rec.ac_attribute13;
2232     END IF;
2233 
2234     IF l_Header_Adj_rec.ac_attribute14 = FND_API.G_MISS_CHAR THEN
2235         l_Header_Adj_rec.ac_attribute14 := p_old_Header_Adj_rec.ac_attribute14;
2236     END IF;
2237 
2238     IF l_Header_Adj_rec.ac_attribute15 = FND_API.G_MISS_CHAR THEN
2239         l_Header_Adj_rec.ac_attribute15 := p_old_Header_Adj_rec.ac_attribute15;
2240     END IF;
2241     --uom begin
2242      IF l_Header_Adj_rec.OPERAND_PER_PQTY = FND_API.G_MISS_NUM THEN
2243  --bug 3063549
2244  --l_Header_Adj_rec.OPERAND_PER_PQTY := p_old_Header_Adj_rec.OPERAND_PER_PQTY;
2245    l_Header_Adj_rec.OPERAND_PER_PQTY := NULL;
2246      END IF;
2247 
2248      IF l_Header_Adj_rec.ADJUSTED_AMOUNT_PER_PQTY = FND_API.G_MISS_NUM THEN
2249        l_Header_Adj_rec.ADJUSTED_AMOUNT_PER_PQTY := p_old_Header_Adj_rec.ADJUSTED_AMOUNT_PER_PQTY;
2250      END IF;
2251     --uom end
2252 
2253      IF l_Header_Adj_rec.INVOICED_AMOUNT = FND_API.G_MISS_NUM THEN
2254        l_Header_Adj_rec.INVOICED_AMOUNT := p_old_Header_Adj_rec.INVOICED_AMOUNT;
2255      END IF;
2256 
2257     IF l_debug_level  > 0 THEN
2258         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.COMPLETE_RECORD' , 1 ) ;
2259     END IF;
2260 
2261     -- RETURN l_Header_Adj_rec;
2262     p_x_Header_Adj_rec := l_Header_Adj_rec;
2263 
2264 END Complete_Record;
2265 
2266 --  Procedure Convert_Miss_To_Null
2267 
2268 PROCEDURE Convert_Miss_To_Null
2269 (   p_x_Header_Adj_rec                IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
2270 )
2271 IS
2272 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type := p_x_Header_Adj_rec;
2273 --
2274 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2275 --
2276 BEGIN
2277 
2278     IF l_debug_level  > 0 THEN
2279         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.CONVERT_MISS_TO_NULL' , 1 ) ;
2280     END IF;
2281 
2282     IF l_Header_Adj_rec.price_adjustment_id = FND_API.G_MISS_NUM THEN
2283         l_Header_Adj_rec.price_adjustment_id := NULL;
2284     END IF;
2285 
2286     IF l_Header_Adj_rec.creation_date = FND_API.G_MISS_DATE THEN
2287         l_Header_Adj_rec.creation_date := NULL;
2288     END IF;
2289 
2290     IF l_Header_Adj_rec.created_by = FND_API.G_MISS_NUM THEN
2291         l_Header_Adj_rec.created_by := NULL;
2292     END IF;
2293 
2294     IF l_Header_Adj_rec.last_update_date = FND_API.G_MISS_DATE THEN
2295         l_Header_Adj_rec.last_update_date := NULL;
2296     END IF;
2297 
2298     IF l_Header_Adj_rec.last_updated_by = FND_API.G_MISS_NUM THEN
2299         l_Header_Adj_rec.last_updated_by := NULL;
2300     END IF;
2301 
2302     IF l_Header_Adj_rec.last_update_login = FND_API.G_MISS_NUM THEN
2303         l_Header_Adj_rec.last_update_login := NULL;
2304     END IF;
2305 
2306     IF l_Header_Adj_rec.program_application_id = FND_API.G_MISS_NUM THEN
2307         l_Header_Adj_rec.program_application_id := NULL;
2308     END IF;
2309 
2310     IF l_Header_Adj_rec.program_id = FND_API.G_MISS_NUM THEN
2311         l_Header_Adj_rec.program_id := NULL;
2312     END IF;
2313 
2314     IF l_Header_Adj_rec.program_update_date = FND_API.G_MISS_DATE THEN
2315         l_Header_Adj_rec.program_update_date := NULL;
2316     END IF;
2317 
2318     IF l_Header_Adj_rec.request_id = FND_API.G_MISS_NUM THEN
2319         l_Header_Adj_rec.request_id := NULL;
2320     END IF;
2321 
2322     IF l_Header_Adj_rec.header_id = FND_API.G_MISS_NUM THEN
2323         l_Header_Adj_rec.header_id := NULL;
2324     END IF;
2325 
2326     IF l_Header_Adj_rec.discount_id = FND_API.G_MISS_NUM THEN
2327         l_Header_Adj_rec.discount_id := NULL;
2328     END IF;
2329 
2330     IF l_Header_Adj_rec.discount_line_id = FND_API.G_MISS_NUM THEN
2331         l_Header_Adj_rec.discount_line_id := NULL;
2332     END IF;
2333 
2334     IF l_Header_Adj_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
2335         l_Header_Adj_rec.automatic_flag := NULL;
2336     END IF;
2337 
2338     IF l_Header_Adj_rec.percent = FND_API.G_MISS_NUM THEN
2339         l_Header_Adj_rec.percent := NULL;
2340     END IF;
2341 
2342     IF l_Header_Adj_rec.line_id = FND_API.G_MISS_NUM THEN
2343         l_Header_Adj_rec.line_id := NULL;
2344     END IF;
2345 
2346     IF l_Header_Adj_rec.context = FND_API.G_MISS_CHAR THEN
2347         l_Header_Adj_rec.context := NULL;
2348     END IF;
2349 
2350     IF l_Header_Adj_rec.attribute1 = FND_API.G_MISS_CHAR THEN
2351         l_Header_Adj_rec.attribute1 := NULL;
2352     END IF;
2353 
2354     IF l_Header_Adj_rec.attribute2 = FND_API.G_MISS_CHAR THEN
2355         l_Header_Adj_rec.attribute2 := NULL;
2356     END IF;
2357 
2358     IF l_Header_Adj_rec.attribute3 = FND_API.G_MISS_CHAR THEN
2359         l_Header_Adj_rec.attribute3 := NULL;
2360     END IF;
2361 
2362     IF l_Header_Adj_rec.attribute4 = FND_API.G_MISS_CHAR THEN
2363         l_Header_Adj_rec.attribute4 := NULL;
2364     END IF;
2365 
2366     IF l_Header_Adj_rec.attribute5 = FND_API.G_MISS_CHAR THEN
2367         l_Header_Adj_rec.attribute5 := NULL;
2368     END IF;
2369 
2370     IF l_Header_Adj_rec.attribute6 = FND_API.G_MISS_CHAR THEN
2371         l_Header_Adj_rec.attribute6 := NULL;
2372     END IF;
2373 
2374     IF l_Header_Adj_rec.attribute7 = FND_API.G_MISS_CHAR THEN
2375         l_Header_Adj_rec.attribute7 := NULL;
2376     END IF;
2377 
2378     IF l_Header_Adj_rec.attribute8 = FND_API.G_MISS_CHAR THEN
2379         l_Header_Adj_rec.attribute8 := NULL;
2380     END IF;
2381 
2382     IF l_Header_Adj_rec.attribute9 = FND_API.G_MISS_CHAR THEN
2383         l_Header_Adj_rec.attribute9 := NULL;
2384     END IF;
2385 
2386     IF l_Header_Adj_rec.attribute10 = FND_API.G_MISS_CHAR THEN
2387         l_Header_Adj_rec.attribute10 := NULL;
2388     END IF;
2389 
2390     IF l_Header_Adj_rec.attribute11 = FND_API.G_MISS_CHAR THEN
2391         l_Header_Adj_rec.attribute11 := NULL;
2392     END IF;
2393 
2394     IF l_Header_Adj_rec.attribute12 = FND_API.G_MISS_CHAR THEN
2395         l_Header_Adj_rec.attribute12 := NULL;
2396     END IF;
2397 
2398     IF l_Header_Adj_rec.attribute13 = FND_API.G_MISS_CHAR THEN
2399         l_Header_Adj_rec.attribute13 := NULL;
2400     END IF;
2401 
2402     IF l_Header_Adj_rec.attribute14 = FND_API.G_MISS_CHAR THEN
2403         l_Header_Adj_rec.attribute14 := NULL;
2404     END IF;
2405 
2406     IF l_Header_Adj_rec.attribute15 = FND_API.G_MISS_CHAR THEN
2407         l_Header_Adj_rec.attribute15 := NULL;
2408     END IF;
2409 
2410     IF l_Header_Adj_rec.adjusted_amount = FND_API.G_MISS_NUM THEN
2411         l_Header_Adj_rec.adjusted_amount := NULL;
2412     END IF;
2413 
2414     IF l_Header_Adj_rec.pricing_phase_id = FND_API.G_MISS_NUM THEN
2415         l_Header_Adj_rec.pricing_phase_id := NULL;
2416     END IF;
2417 
2418     IF l_Header_Adj_rec.list_header_id = FND_API.G_MISS_NUM THEN
2419         l_Header_Adj_rec.list_header_id := NULL;
2420     END IF;
2421 
2422     IF l_Header_Adj_rec.list_line_id = FND_API.G_MISS_NUM THEN
2423         l_Header_Adj_rec.list_line_id := NULL;
2424     END IF;
2425     IF l_Header_Adj_rec.modified_from = FND_API.G_MISS_CHAR THEN
2426         l_Header_Adj_rec.modified_from := NULL;
2427     END IF;
2428 
2429     IF l_Header_Adj_rec.modified_to = FND_API.G_MISS_CHAR THEN
2430         l_Header_Adj_rec.modified_to := NULL;
2431     END IF;
2432 
2433     IF l_Header_Adj_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
2434         l_Header_Adj_rec.list_line_type_code := NULL;
2435     END IF;
2436 
2437     IF l_Header_Adj_rec.updated_flag = FND_API.G_MISS_CHAR THEN
2438         l_Header_Adj_rec.updated_flag := NULL;
2439     END IF;
2440 
2441     IF l_Header_Adj_rec.update_allowed = FND_API.G_MISS_CHAR THEN
2442         l_Header_Adj_rec.update_allowed := NULL;
2443     END IF;
2444 
2445     IF l_Header_Adj_rec.applied_flag = FND_API.G_MISS_CHAR THEN
2446         l_Header_Adj_rec.applied_flag := NULL;
2447     END IF;
2448 
2449     IF l_Header_Adj_rec.modifier_mechanism_type_code = FND_API.G_MISS_CHAR THEN
2450         l_Header_Adj_rec.modifier_mechanism_type_code := NULL;
2451     END IF;
2452 
2453     IF l_Header_Adj_rec.change_reason_code = FND_API.G_MISS_CHAR THEN
2454         l_Header_Adj_rec.change_reason_code := NULL;
2455     END IF;
2456 
2457     IF l_Header_Adj_rec.change_reason_text = FND_API.G_MISS_CHAR THEN
2458         l_Header_Adj_rec.change_reason_text := NULL ;
2459     END IF;
2460 
2461     IF l_Header_Adj_rec.arithmetic_operator = FND_API.G_MISS_CHAR THEN
2462         l_Header_Adj_rec.arithmetic_operator := NULL ;
2463     END IF;
2464 
2465     IF l_Header_Adj_rec.operand = FND_API.G_MISS_NUM THEN
2466         l_Header_Adj_rec.operand := NULL ;
2467     END IF;
2468 
2469 	IF l_Header_Adj_rec.cost_id = FND_API.G_MISS_NUM THEN
2470 	    l_Header_Adj_rec.cost_id := NULL ;
2471 	END IF;
2472 
2473 	IF l_Header_Adj_rec.tax_code = FND_API.G_MISS_CHAR THEN
2474 	    l_Header_Adj_rec.tax_code := NULL ;
2475 	END IF;
2476 
2477 	IF l_Header_Adj_rec.tax_exempt_flag = FND_API.G_MISS_CHAR THEN
2478 	    l_Header_Adj_rec.tax_exempt_flag := NULL ;
2479 	END IF;
2480 
2481 	IF l_Header_Adj_rec.tax_exempt_number = FND_API.G_MISS_CHAR THEN
2482 	    l_Header_Adj_rec.tax_exempt_number := NULL ;
2483 	END IF;
2484 
2485 	IF l_Header_Adj_rec.tax_exempt_reason_code = FND_API.G_MISS_CHAR THEN
2486 	    l_Header_Adj_rec.tax_exempt_reason_code := NULL ;
2487 	END IF;
2488 
2489 	IF l_Header_Adj_rec.parent_adjustment_id = FND_API.G_MISS_NUM THEN
2490 	    l_Header_Adj_rec.parent_adjustment_id := NULL ;
2491 	END IF;
2492 
2493 	IF l_Header_Adj_rec.invoiced_flag = FND_API.G_MISS_CHAR THEN
2494 	    l_Header_Adj_rec.invoiced_flag := NULL ;
2495 	END IF;
2496 
2497 	IF l_Header_Adj_rec.estimated_flag = FND_API.G_MISS_CHAR THEN
2498 	    l_Header_Adj_rec.estimated_flag := NULL ;
2499 	END IF;
2500 
2501 	IF l_Header_Adj_rec.inc_in_sales_performance = FND_API.G_MISS_CHAR THEN
2502 	    l_Header_Adj_rec.inc_in_sales_performance := NULL ;
2503 	END IF;
2504 
2505 	IF l_Header_Adj_rec.split_action_code = FND_API.G_MISS_CHAR THEN
2506 	    l_Header_Adj_rec.split_action_code := NULL ;
2507 	END IF;
2508 
2509 	IF l_Header_Adj_rec.charge_type_code = FND_API.G_MISS_CHAR THEN
2510 	    l_Header_Adj_rec.charge_type_code := NULL ;
2511 	END IF;
2512 
2513 	IF l_Header_Adj_rec.charge_subtype_code = FND_API.G_MISS_CHAR THEN
2514 	    l_Header_Adj_rec.charge_subtype_code := NULL ;
2515 	END IF;
2516 
2517 	IF l_Header_Adj_rec.list_line_no = FND_API.G_MISS_CHAR THEN
2518 	    l_Header_Adj_rec.list_line_no := NULL ;
2519 	END IF;
2520 
2521 	IF l_Header_Adj_rec.source_system_code = FND_API.G_MISS_CHAR THEN
2522 	    l_Header_Adj_rec.source_system_code := NULL ;
2523 	END IF;
2524 
2525 	IF l_Header_Adj_rec.benefit_qty = FND_API.G_MISS_NUM THEN
2526 	    l_Header_Adj_rec.benefit_qty := NULL ;
2527 	END IF;
2528 
2529 	IF l_Header_Adj_rec.benefit_uom_code = FND_API.G_MISS_CHAR THEN
2530 	    l_Header_Adj_rec.benefit_uom_code := NULL ;
2531 	END IF;
2532 
2533 	IF l_Header_Adj_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
2534 	    l_Header_Adj_rec.print_on_invoice_flag := NULL ;
2535 	END IF;
2536 
2537 	IF l_Header_Adj_rec.expiration_date = FND_API.G_MISS_DATE THEN
2538 	    l_Header_Adj_rec.expiration_date := NULL ;
2539 	END IF;
2540 
2541 	IF l_Header_Adj_rec.rebate_transaction_type_code = FND_API.G_MISS_CHAR THEN
2542 	    l_Header_Adj_rec.rebate_transaction_type_code := NULL ;
2543 	END IF;
2544 
2545 	IF l_Header_Adj_rec.rebate_transaction_reference = FND_API.G_MISS_CHAR THEN
2546 	    l_Header_Adj_rec.rebate_transaction_reference := NULL ;
2547 	END IF;
2548 
2549 	IF l_Header_Adj_rec.rebate_payment_system_code = FND_API.G_MISS_CHAR THEN
2550 	    l_Header_Adj_rec.rebate_payment_system_code := NULL ;
2551 	END IF;
2552 
2553 	IF l_Header_Adj_rec.redeemed_date = FND_API.G_MISS_DATE THEN
2554 	    l_Header_Adj_rec.redeemed_date := NULL ;
2555 	END IF;
2556 
2557 	IF l_Header_Adj_rec.redeemed_flag = FND_API.G_MISS_CHAR THEN
2558 	    l_Header_Adj_rec.redeemed_flag := NULL ;
2559 	END IF;
2560 
2561 	IF l_Header_Adj_rec.accrual_flag = FND_API.G_MISS_CHAR THEN
2562 	    l_Header_Adj_rec.accrual_flag := NULL ;
2563 	END IF;
2564 
2565 	IF l_Header_Adj_rec.range_break_quantity = FND_API.G_MISS_NUM THEN
2566 	    l_Header_Adj_rec.range_break_quantity := NULL ;
2567 	END IF;
2568 
2569 	IF l_Header_Adj_rec.accrual_conversion_rate = FND_API.G_MISS_NUM THEN
2570 	    l_Header_Adj_rec.accrual_conversion_rate := NULL ;
2571 	END IF;
2572 
2573 	IF l_Header_Adj_rec.pricing_group_sequence = FND_API.G_MISS_NUM THEN
2574 	    l_Header_Adj_rec.pricing_group_sequence := NULL ;
2575 	END IF;
2576 
2577 	IF l_Header_Adj_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
2578 	    l_Header_Adj_rec.modifier_level_code := NULL ;
2579 	END IF;
2580 
2581 	IF l_Header_Adj_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
2582 	    l_Header_Adj_rec.price_break_type_code := NULL ;
2583 	END IF;
2584 
2585 	IF l_Header_Adj_rec.substitution_attribute = FND_API.G_MISS_CHAR THEN
2586 	    l_Header_Adj_rec.substitution_attribute := NULL ;
2587 	END IF;
2588 
2589 	IF l_Header_Adj_rec.proration_type_code = FND_API.G_MISS_CHAR THEN
2590 	    l_Header_Adj_rec.proration_type_code := NULL ;
2591 	END IF;
2592 
2593 	IF l_Header_Adj_rec.credit_or_charge_flag = FND_API.G_MISS_CHAR THEN
2594 	    l_Header_Adj_rec.credit_or_charge_flag := NULL ;
2595 	END IF;
2596 
2597 	IF l_Header_Adj_rec.include_on_returns_flag = FND_API.G_MISS_CHAR THEN
2598 	    l_Header_Adj_rec.include_on_returns_flag := NULL ;
2599 	END IF;
2600 
2601     IF l_Header_Adj_rec.ac_context = FND_API.G_MISS_CHAR THEN
2602         l_Header_Adj_rec.ac_context := NULL;
2603     END IF;
2604 
2605     IF l_Header_Adj_rec.ac_attribute1 = FND_API.G_MISS_CHAR THEN
2606         l_Header_Adj_rec.ac_attribute1 := NULL;
2607     END IF;
2608 
2609     IF l_Header_Adj_rec.ac_attribute2 = FND_API.G_MISS_CHAR THEN
2610         l_Header_Adj_rec.ac_attribute2 := NULL;
2611     END IF;
2612 
2613     IF l_Header_Adj_rec.ac_attribute3 = FND_API.G_MISS_CHAR THEN
2614         l_Header_Adj_rec.ac_attribute3 := NULL;
2615     END IF;
2616 
2617     IF l_Header_Adj_rec.ac_attribute4 = FND_API.G_MISS_CHAR THEN
2618         l_Header_Adj_rec.ac_attribute4 := NULL;
2619     END IF;
2620 
2621     IF l_Header_Adj_rec.ac_attribute5 = FND_API.G_MISS_CHAR THEN
2622         l_Header_Adj_rec.ac_attribute5 := NULL;
2623     END IF;
2624 
2625     IF l_Header_Adj_rec.ac_attribute6 = FND_API.G_MISS_CHAR THEN
2626         l_Header_Adj_rec.ac_attribute6 := NULL;
2627     END IF;
2628 
2629     IF l_Header_Adj_rec.ac_attribute7 = FND_API.G_MISS_CHAR THEN
2630         l_Header_Adj_rec.ac_attribute7 := NULL;
2631     END IF;
2632 
2633     IF l_Header_Adj_rec.ac_attribute8 = FND_API.G_MISS_CHAR THEN
2634         l_Header_Adj_rec.ac_attribute8 := NULL;
2635     END IF;
2636 
2637     IF l_Header_Adj_rec.ac_attribute9 = FND_API.G_MISS_CHAR THEN
2638         l_Header_Adj_rec.ac_attribute9 := NULL;
2639     END IF;
2640 
2641     IF l_Header_Adj_rec.ac_attribute10 = FND_API.G_MISS_CHAR THEN
2642         l_Header_Adj_rec.ac_attribute10 := NULL;
2643     END IF;
2644 
2645     IF l_Header_Adj_rec.ac_attribute11 = FND_API.G_MISS_CHAR THEN
2646         l_Header_Adj_rec.ac_attribute11 := NULL;
2647     END IF;
2648 
2649     IF l_Header_Adj_rec.ac_attribute12 = FND_API.G_MISS_CHAR THEN
2650         l_Header_Adj_rec.ac_attribute12 := NULL;
2651     END IF;
2652 
2653     IF l_Header_Adj_rec.ac_attribute13 = FND_API.G_MISS_CHAR THEN
2654         l_Header_Adj_rec.ac_attribute13 := NULL;
2655     END IF;
2656 
2657     IF l_Header_Adj_rec.ac_attribute14 = FND_API.G_MISS_CHAR THEN
2658         l_Header_Adj_rec.ac_attribute14 := NULL;
2659     END IF;
2660 
2661     IF l_Header_Adj_rec.ac_attribute15 = FND_API.G_MISS_CHAR THEN
2662         l_Header_Adj_rec.ac_attribute15 := NULL;
2663     END IF;
2664     --uom begin
2665     If l_Header_Adj_rec.operand_per_pqty = FND_API.G_MISS_NUM THEN
2666        l_Header_Adj_rec.operand_per_pqty:=NULL;
2667     END IF;
2668 
2669     If l_Header_Adj_rec.adjusted_amount_per_pqty = FND_API.G_MISS_NUM THEN
2670        l_Header_Adj_rec.adjusted_amount_per_pqty:=NULL;
2671     END IF;
2672     --uom end
2673 
2674     If l_Header_Adj_rec.invoiced_amount = FND_API.G_MISS_NUM THEN
2675        l_Header_Adj_rec.invoiced_amount := NULL;
2676     END IF;
2677 
2678     IF l_debug_level  > 0 THEN
2679         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.CONVERT_MISS_TO_NULL' , 1 ) ;
2680     END IF;
2681 
2682     -- RETURN l_Header_Adj_rec;
2683     p_x_Header_Adj_rec := l_Header_Adj_rec;
2684 
2685 END Convert_Miss_To_Null;
2686 
2687 --  Procedure Update_Row
2688 
2689 
2690 PROCEDURE Update_Row
2691 (   p_Header_Adj_rec            IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
2692 )
2693 IS
2694 l_lock_control			NUMBER;
2695 --added for notification framework
2696 l_index    NUMBER;
2697 l_return_status VARCHAR2(1);
2698 
2699 --
2700 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2701 --
2702 BEGIN
2703 
2704     IF l_debug_level  > 0 THEN
2705         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2706     END IF;
2707 
2708     -- increment lock_control by 1 whenever the record is updated
2709     SELECT lock_control
2710     INTO   l_lock_control
2711     FROM   oe_price_adjustments
2712     WHERE  price_adjustment_id = p_Header_Adj_rec.price_adjustment_id;
2713 
2714     l_lock_control := l_lock_control + 1;
2715 
2716 
2717   -- calling notification framework to update global picture
2718   -- check code release level first. Notification framework is at Pack H level
2719 
2720    IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
2721       IF l_debug_level  > 0 THEN
2722           oe_debug_pub.add(  'HDR_ADJ_ID= ' || P_HEADER_ADJ_REC.PRICE_ADJUSTMENT_ID ) ;
2723       END IF;
2724       OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
2725                     p_Hdr_adj_rec =>p_header_adj_rec,
2726                     p_hdr_adj_id => p_header_adj_rec.price_adjustment_id,
2727                     x_index => l_index,
2728                     x_return_status => l_return_status);
2729 
2730       IF l_debug_level  > 0 THEN
2731           oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_ADJ_UTIL.UPDATE_ROE IS: ' || L_RETURN_STATUS ) ;
2732       END IF;
2733 
2734        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2735            IF l_debug_level  > 0 THEN
2736                oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
2737            END IF;
2738            IF l_debug_level  > 0 THEN
2739                oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2740            END IF;
2741 	   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2742        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2743            IF l_debug_level  > 0 THEN
2744                oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_ADJ_UTIL.UPDATE_ROW' ) ;
2745            END IF;
2746            IF l_debug_level  > 0 THEN
2747                oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2748            END IF;
2749 	   RAISE FND_API.G_EXC_ERROR;
2750        END IF;
2751    END IF;  /*code_release_level*/
2752  -- notification framework end
2753 
2754 
2755     UPDATE  OE_PRICE_ADJUSTMENTS
2756     SET     PRICE_ADJUSTMENT_ID    = p_Header_Adj_rec.price_adjustment_id
2757     ,       CREATION_DATE          = p_Header_Adj_rec.creation_date
2758     ,       CREATED_BY             = p_Header_Adj_rec.created_by
2759     ,       LAST_UPDATE_DATE       = p_Header_Adj_rec.last_update_date
2760     ,       LAST_UPDATED_BY        = p_Header_Adj_rec.last_updated_by
2761     ,       LAST_UPDATE_LOGIN      = p_Header_Adj_rec.last_update_login
2762     ,       PROGRAM_APPLICATION_ID = p_Header_Adj_rec.program_application_id
2763     ,       PROGRAM_ID             = p_Header_Adj_rec.program_id
2764     ,       PROGRAM_UPDATE_DATE    = p_Header_Adj_rec.program_update_date
2765     ,       REQUEST_ID             = p_Header_Adj_rec.request_id
2766     ,       HEADER_ID              = p_Header_Adj_rec.header_id
2767     ,       DISCOUNT_ID            = p_Header_Adj_rec.discount_id
2768     ,       DISCOUNT_LINE_ID       = p_Header_Adj_rec.discount_line_id
2769     ,       AUTOMATIC_FLAG         = p_Header_Adj_rec.automatic_flag
2770     ,       PERCENT                = p_Header_Adj_rec.percent
2771     ,       LINE_ID                = p_Header_Adj_rec.line_id
2772     ,       CONTEXT                = p_Header_Adj_rec.context
2773     ,       ATTRIBUTE1             = p_Header_Adj_rec.attribute1
2774     ,       ATTRIBUTE2             = p_Header_Adj_rec.attribute2
2775     ,       ATTRIBUTE3             = p_Header_Adj_rec.attribute3
2776     ,       ATTRIBUTE4             = p_Header_Adj_rec.attribute4
2777     ,       ATTRIBUTE5             = p_Header_Adj_rec.attribute5
2778     ,       ATTRIBUTE6             = p_Header_Adj_rec.attribute6
2779     ,       ATTRIBUTE7             = p_Header_Adj_rec.attribute7
2780     ,       ATTRIBUTE8             = p_Header_Adj_rec.attribute8
2781     ,       ATTRIBUTE9             = p_Header_Adj_rec.attribute9
2782     ,       ATTRIBUTE10            = p_Header_Adj_rec.attribute10
2783     ,       ATTRIBUTE11            = p_Header_Adj_rec.attribute11
2784     ,       ATTRIBUTE12            = p_Header_Adj_rec.attribute12
2785     ,       ATTRIBUTE13            = p_Header_Adj_rec.attribute13
2786     ,       ATTRIBUTE14            = p_Header_Adj_rec.attribute14
2787     ,       ATTRIBUTE15            = p_Header_Adj_rec.attribute15
2788     ,       ORIG_SYS_DISCOUNT_REF  = p_Header_Adj_rec.orig_sys_discount_ref
2789     ,	  LIST_HEADER_ID		= p_Header_Adj_rec.list_header_id
2790     ,	  LIST_LINE_ID			= p_Header_Adj_rec.list_line_id
2791     ,	  LIST_LINE_TYPE_CODE	= p_Header_Adj_rec.list_line_type_code
2792     ,	  MODIFIER_MECHANISM_TYPE_CODE = p_Header_Adj_rec.list_header_id
2793     ,	  MODIFIED_FROM 		= p_Header_Adj_rec.modified_from
2794     ,	  MODIFIED_TO			= p_Header_Adj_rec.modified_to
2795     ,	  UPDATED_FLAG			= p_Header_Adj_rec.updated_flag
2796     ,	  UPDATE_ALLOWED		= p_Header_Adj_rec.update_allowed
2797     ,	  APPLIED_FLAG			= p_Header_Adj_rec.applied_flag
2798     ,	  CHANGE_REASON_CODE	= p_Header_Adj_rec.change_reason_code
2799     ,	  CHANGE_REASON_TEXT	= p_Header_Adj_rec.change_reason_text
2800     ,	  operand				= p_Header_Adj_rec.operand
2801     ,	  arithmetic_operator	= p_Header_Adj_rec.arithmetic_operator
2802     ,	  COST_ID                = p_Header_Adj_rec.cost_id
2803     ,	  TAX_CODE               = p_Header_Adj_rec.tax_code
2804     ,	  TAX_EXEMPT_FLAG        = p_Header_Adj_rec.tax_exempt_flag
2805     ,	  TAX_EXEMPT_NUMBER      = p_Header_Adj_rec.tax_exempt_number
2806     ,	  TAX_EXEMPT_REASON_CODE = p_Header_Adj_rec.tax_exempt_reason_code
2807     ,	  PARENT_ADJUSTMENT_ID   = p_Header_Adj_rec.parent_adjustment_id
2808     ,	  INVOICED_FLAG          = p_Header_Adj_rec.invoiced_flag
2809     ,	  ESTIMATED_FLAG         = p_Header_Adj_rec.estimated_flag
2810     ,	  INC_IN_SALES_PERFORMANCE = p_Header_Adj_rec.inc_in_sales_performance
2811     ,	  SPLIT_ACTION_CODE      = p_Header_Adj_rec.split_action_code
2812     ,	  ADJUSTED_AMOUNT		= p_Header_Adj_rec.adjusted_amount
2813     ,	  PRICING_PHASE_ID		= p_Header_Adj_rec.pricing_phase_id
2814     ,	  CHARGE_TYPE_CODE		= p_Header_Adj_rec.charge_type_code
2815     ,	  CHARGE_SUBTYPE_CODE	= p_Header_Adj_rec.charge_subtype_code
2816     ,       LIST_LINE_NO          = p_Header_Adj_rec.list_line_no
2817     ,       SOURCE_SYSTEM_CODE     = p_Header_Adj_rec.source_system_code
2818     ,       BENEFIT_QTY           = p_Header_Adj_rec.benefit_qty
2819     ,       BENEFIT_UOM_CODE      = p_Header_Adj_rec.benefit_uom_code
2820     ,       PRINT_ON_INVOICE_FLAG = p_Header_Adj_rec.print_on_invoice_flag
2821     ,       EXPIRATION_DATE       = p_Header_Adj_rec.expiration_date
2822     ,       REBATE_TRANSACTION_TYPE_CODE  = p_Header_Adj_rec.rebate_transaction_type_code
2823     ,       REBATE_TRANSACTION_REFERENCE  = p_Header_Adj_rec.rebate_transaction_reference
2824     ,       REBATE_PAYMENT_SYSTEM_CODE    = p_Header_Adj_rec.rebate_payment_system_code
2825     ,       REDEEMED_DATE         = p_Header_Adj_rec.redeemed_date
2826     ,       REDEEMED_FLAG         = p_Header_Adj_rec.redeemed_flag
2827     ,       ACCRUAL_FLAG          = p_Header_Adj_rec.accrual_flag
2828     ,       RANGE_BREAK_QUANTITY  = p_Header_Adj_rec.range_break_quantity
2829     ,       ACCRUAL_CONVERSION_RATE = p_Header_Adj_rec.accrual_conversion_rate
2830     ,       PRICING_GROUP_SEQUENCE  = p_Header_Adj_rec.pricing_group_sequence
2831     ,       MODIFIER_LEVEL_CODE     = p_Header_Adj_rec.modifier_level_code
2832     ,       PRICE_BREAK_TYPE_CODE   = p_Header_Adj_rec.price_break_type_code
2833     ,       SUBSTITUTION_ATTRIBUTE  = p_Header_Adj_rec.substitution_attribute
2834     ,       PRORATION_TYPE_CODE     = p_Header_Adj_rec.proration_type_code
2835     ,       CREDIT_OR_CHARGE_FLAG   = p_Header_Adj_rec.credit_or_charge_flag
2836     ,       INCLUDE_ON_RETURNS_FLAG = p_Header_Adj_rec.include_on_returns_flag
2837     ,       AC_CONTEXT              = p_Header_Adj_rec.ac_context
2838     ,       AC_ATTRIBUTE1           = p_Header_Adj_rec.ac_attribute1
2839     ,       AC_ATTRIBUTE2           = p_Header_Adj_rec.ac_attribute2
2840     ,       AC_ATTRIBUTE3           = p_Header_Adj_rec.ac_attribute3
2841     ,       AC_ATTRIBUTE4           = p_Header_Adj_rec.ac_attribute4
2842     ,       AC_ATTRIBUTE5           = p_Header_Adj_rec.ac_attribute5
2843     ,       AC_ATTRIBUTE6           = p_Header_Adj_rec.ac_attribute6
2844     ,       AC_ATTRIBUTE7           = p_Header_Adj_rec.ac_attribute7
2845     ,       AC_ATTRIBUTE8           = p_Header_Adj_rec.ac_attribute8
2846     ,       AC_ATTRIBUTE9           = p_Header_Adj_rec.ac_attribute9
2847     ,       AC_ATTRIBUTE10          = p_Header_Adj_rec.ac_attribute10
2848     ,       AC_ATTRIBUTE11          = p_Header_Adj_rec.ac_attribute11
2849     ,       AC_ATTRIBUTE12          = p_Header_Adj_rec.ac_attribute12
2850     ,       AC_ATTRIBUTE13          = p_Header_Adj_rec.ac_attribute13
2851     ,       AC_ATTRIBUTE14          = p_Header_Adj_rec.ac_attribute14
2852     ,       AC_ATTRIBUTE15          = p_Header_Adj_rec.ac_attribute15
2853 --uom begin
2854     ,       OPERAND_PER_PQTY         = p_Header_Adj_rec.operand_per_pqty
2855     ,       ADJUSTED_AMOUNT_PER_PQTY = p_Header_Adj_rec.adjusted_amount_per_pqty
2856 --uom end
2857     ,       INVOICED_AMOUNT         = p_Header_Adj_rec.invoiced_amount
2858     ,	  LOCK_CONTROL			 = l_lock_control
2859     WHERE   PRICE_ADJUSTMENT_ID    = p_Header_Adj_rec.price_adjustment_id
2860     ;
2861 
2862     p_Header_Adj_rec.lock_control := l_lock_control;
2863     IF l_debug_level  > 0 THEN
2864         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2865     END IF;
2866 
2867 EXCEPTION
2868 
2869     WHEN OTHERS THEN
2870 
2871         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2872         THEN
2873             OE_MSG_PUB.Add_Exc_Msg
2874             (   G_PKG_NAME
2875             ,   'Update_Row'
2876             );
2877         END IF;
2878 
2879         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2880 
2881 END Update_Row;
2882 
2883 --  Procedure Insert_Row
2884 
2885 PROCEDURE Insert_Row
2886 (   p_Header_Adj_rec                IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
2887 )
2888 IS
2889 l_lock_control		NUMBER := 1;
2890 --added for notification framework
2891 l_index                NUMBER;
2892 l_return_status        VARCHAR2(1);
2893 
2894 --
2895 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2896 --
2897 BEGIN
2898 
2899     IF l_debug_level  > 0 THEN
2900         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.INSERT_ROW' , 1 ) ;
2901     END IF;
2902 
2903     INSERT  INTO OE_PRICE_ADJUSTMENTS
2904     (       PRICE_ADJUSTMENT_ID
2905     ,       CREATION_DATE
2906     ,       CREATED_BY
2907     ,       LAST_UPDATE_DATE
2908     ,       LAST_UPDATED_BY
2909     ,       LAST_UPDATE_LOGIN
2910     ,       PROGRAM_APPLICATION_ID
2911     ,       PROGRAM_ID
2912     ,       PROGRAM_UPDATE_DATE
2913     ,       REQUEST_ID
2914     ,       HEADER_ID
2915     ,       DISCOUNT_ID
2916     ,       DISCOUNT_LINE_ID
2917     ,       AUTOMATIC_FLAG
2918     ,       PERCENT
2919     ,       LINE_ID
2920     ,       CONTEXT
2921     ,       ATTRIBUTE1
2922     ,       ATTRIBUTE2
2923     ,       ATTRIBUTE3
2924     ,       ATTRIBUTE4
2925     ,       ATTRIBUTE5
2926     ,       ATTRIBUTE6
2927     ,       ATTRIBUTE7
2928     ,       ATTRIBUTE8
2929     ,       ATTRIBUTE9
2930     ,       ATTRIBUTE10
2931     ,       ATTRIBUTE11
2932     ,       ATTRIBUTE12
2933     ,       ATTRIBUTE13
2934     ,       ATTRIBUTE14
2935     ,       ATTRIBUTE15
2936     ,       ORIG_SYS_DISCOUNT_REF
2937     ,	  LIST_HEADER_ID
2938     ,	  LIST_LINE_ID
2939     ,	  LIST_LINE_TYPE_CODE
2940     ,	  MODIFIER_MECHANISM_TYPE_CODE
2941     ,	  MODIFIED_FROM
2942     ,	  MODIFIED_TO
2943     ,	  UPDATED_FLAG
2944     ,	  UPDATE_ALLOWED
2945     ,	  APPLIED_FLAG
2946     ,	  CHANGE_REASON_CODE
2947     ,	  CHANGE_REASON_TEXT
2948     ,	  operand
2949     ,	  arithmetic_operator
2950     ,	  COST_ID
2951     ,	  TAX_CODE
2952     ,	  TAX_EXEMPT_FLAG
2953     ,	  TAX_EXEMPT_NUMBER
2954     ,	  TAX_EXEMPT_REASON_CODE
2955     ,	  PARENT_ADJUSTMENT_ID
2956     ,	  INVOICED_FLAG
2957     ,	  ESTIMATED_FLAG
2958     ,	  INC_IN_SALES_PERFORMANCE
2959     ,	  SPLIT_ACTION_CODE
2960     ,	  ADJUSTED_AMOUNT
2961     ,	  PRICING_PHASE_ID
2962     ,	  CHARGE_TYPE_CODE
2963     ,	  CHARGE_SUBTYPE_CODE
2964     ,     list_line_no
2965     ,     source_system_code
2966     ,     benefit_qty
2967     ,     benefit_uom_code
2968     ,     print_on_invoice_flag
2969     ,     expiration_date
2970     ,     rebate_transaction_type_code
2971     ,     rebate_transaction_reference
2972     ,     rebate_payment_system_code
2973     ,     redeemed_date
2974     ,     redeemed_flag
2975     ,     accrual_flag
2976     ,     range_break_quantity
2977     ,     accrual_conversion_rate
2978     ,     pricing_group_sequence
2979     ,     modifier_level_code
2980     ,     price_break_type_code
2981     ,     substitution_attribute
2982     ,     proration_type_code
2983     ,       CREDIT_OR_CHARGE_FLAG
2984     ,       INCLUDE_ON_RETURNS_FLAG
2985     ,       AC_CONTEXT
2986     ,       AC_ATTRIBUTE1
2987     ,       AC_ATTRIBUTE2
2988     ,       AC_ATTRIBUTE3
2989     ,       AC_ATTRIBUTE4
2990     ,       AC_ATTRIBUTE5
2991     ,       AC_ATTRIBUTE6
2992     ,       AC_ATTRIBUTE7
2993     ,       AC_ATTRIBUTE8
2994     ,       AC_ATTRIBUTE9
2995     ,       AC_ATTRIBUTE10
2996     ,       AC_ATTRIBUTE11
2997     ,       AC_ATTRIBUTE12
2998     ,       AC_ATTRIBUTE13
2999     ,       AC_ATTRIBUTE14
3000     ,       AC_ATTRIBUTE15
3001  --uom begin
3002     ,       OPERAND_PER_PQTY
3003     ,       ADJUSTED_AMOUNT_PER_PQTY
3004     --uom end
3005     ,       INVOICED_AMOUNT
3006     ,	  lock_control
3007     )
3008     VALUES
3009     (       p_Header_Adj_rec.price_adjustment_id
3010     ,       p_Header_Adj_rec.creation_date
3011     ,       p_Header_Adj_rec.created_by
3012     ,       p_Header_Adj_rec.last_update_date
3013     ,       p_Header_Adj_rec.last_updated_by
3014     ,       p_Header_Adj_rec.last_update_login
3015     ,       p_Header_Adj_rec.program_application_id
3016     ,       p_Header_Adj_rec.program_id
3017     ,       p_Header_Adj_rec.program_update_date
3018     ,       p_Header_Adj_rec.request_id
3019     ,       p_Header_Adj_rec.header_id
3020     ,       p_Header_Adj_rec.discount_id
3021     ,       p_Header_Adj_rec.discount_line_id
3022     ,       p_Header_Adj_rec.automatic_flag
3023     ,       p_Header_Adj_rec.percent
3024     ,       p_Header_Adj_rec.line_id
3025     ,       p_Header_Adj_rec.context
3026     ,       p_Header_Adj_rec.attribute1
3027     ,       p_Header_Adj_rec.attribute2
3028     ,       p_Header_Adj_rec.attribute3
3029     ,       p_Header_Adj_rec.attribute4
3030     ,       p_Header_Adj_rec.attribute5
3031     ,       p_Header_Adj_rec.attribute6
3032     ,       p_Header_Adj_rec.attribute7
3033     ,       p_Header_Adj_rec.attribute8
3034     ,       p_Header_Adj_rec.attribute9
3035     ,       p_Header_Adj_rec.attribute10
3036     ,       p_Header_Adj_rec.attribute11
3037     ,       p_Header_Adj_rec.attribute12
3038     ,       p_Header_Adj_rec.attribute13
3039     ,       p_Header_Adj_rec.attribute14
3040     ,       p_Header_Adj_rec.attribute15
3041     ,       p_Header_Adj_rec.orig_sys_discount_ref
3042     ,	  p_Header_Adj_rec.list_header_id
3043     ,	  p_Header_Adj_rec.list_line_id
3044     ,	  p_Header_Adj_rec.list_line_type_code
3045     ,	  p_Header_Adj_rec.modifier_mechanism_type_code
3046     ,	  p_Header_Adj_rec.modified_from
3047     ,	  p_Header_Adj_rec.modified_to
3048     ,	  p_Header_Adj_rec.updated_flag
3049     ,	  p_Header_Adj_rec.update_allowed
3050     ,	  p_Header_Adj_rec.applied_flag
3051     ,	  p_Header_Adj_rec.change_reason_code
3052     ,	  p_Header_Adj_rec.change_reason_text
3053     ,	  p_Header_Adj_rec.operand
3054     ,	  p_Header_Adj_rec.arithmetic_operator
3055     ,	  p_Header_Adj_rec.COST_ID
3056     ,	  p_Header_Adj_rec.TAX_CODE
3057     ,	  p_Header_Adj_rec.TAX_EXEMPT_FLAG
3058     ,	  p_Header_Adj_rec.TAX_EXEMPT_NUMBER
3059     ,	  p_Header_Adj_rec.TAX_EXEMPT_REASON_CODE
3060     ,	  p_Header_Adj_rec.PARENT_ADJUSTMENT_ID
3061     ,	  p_Header_Adj_rec.INVOICED_FLAG
3062     ,	  p_Header_Adj_rec.ESTIMATED_FLAG
3063     ,	  p_Header_Adj_rec.INC_IN_SALES_PERFORMANCE
3064     ,	  p_Header_Adj_rec.SPLIT_ACTION_CODE
3065     ,	  p_Header_Adj_rec.adjusted_amount
3066     ,	  p_Header_Adj_rec.pricing_phase_id
3067     ,	  p_Header_Adj_rec.charge_type_code
3068     ,	  p_Header_Adj_rec.charge_subtype_code
3069     ,     p_Header_Adj_rec.list_line_no
3070     ,     p_Header_Adj_rec.source_system_code
3071     ,     p_Header_Adj_rec.benefit_qty
3072     ,     p_Header_Adj_rec.benefit_uom_code
3073     ,     p_Header_Adj_rec.print_on_invoice_flag
3074     ,     p_Header_Adj_rec.expiration_date
3075     ,     p_Header_Adj_rec.rebate_transaction_type_code
3076     ,     p_Header_Adj_rec.rebate_transaction_reference
3077     ,     p_Header_Adj_rec.rebate_payment_system_code
3078     ,     p_Header_Adj_rec.redeemed_date
3079     ,     p_Header_Adj_rec.redeemed_flag
3080     ,     p_Header_Adj_rec.accrual_flag
3081     ,     p_Header_Adj_rec.range_break_quantity
3082     ,     p_Header_Adj_rec.accrual_conversion_rate
3083     ,     p_Header_Adj_rec.pricing_group_sequence
3084     ,     p_Header_Adj_rec.modifier_level_code
3085     ,     p_Header_Adj_rec.price_break_type_code
3086     ,     p_Header_Adj_rec.substitution_attribute
3087     ,     p_Header_Adj_rec.proration_type_code
3088     ,       p_Header_Adj_rec.credit_or_charge_flag
3089     ,       p_Header_Adj_rec.include_on_returns_flag
3090     ,       p_Header_Adj_rec.ac_context
3091     ,       p_Header_Adj_rec.ac_attribute1
3092     ,       p_Header_Adj_rec.ac_attribute2
3093     ,       p_Header_Adj_rec.ac_attribute3
3094     ,       p_Header_Adj_rec.ac_attribute4
3095     ,       p_Header_Adj_rec.ac_attribute5
3096     ,       p_Header_Adj_rec.ac_attribute6
3097     ,       p_Header_Adj_rec.ac_attribute7
3098     ,       p_Header_Adj_rec.ac_attribute8
3099     ,       p_Header_Adj_rec.ac_attribute9
3100     ,       p_Header_Adj_rec.ac_attribute10
3101     ,       p_Header_Adj_rec.ac_attribute11
3102     ,       p_Header_Adj_rec.ac_attribute12
3103     ,       p_Header_Adj_rec.ac_attribute13
3104     ,       p_Header_Adj_rec.ac_attribute14
3105     ,       p_Header_Adj_rec.ac_attribute15
3106     --uom begin
3107     ,       p_Header_Adj_rec.OPERAND_PER_PQTY
3108     ,         p_Header_Adj_rec.ADJUSTED_AMOUNT_PER_PQTY
3109     --uom end
3110     ,       p_Header_Adj_rec.INVOICED_AMOUNT
3111     ,	  l_lock_control
3112     );
3113 
3114     p_header_Adj_rec.lock_control := l_lock_control;
3115 
3116     -- calling notification framework to update global picture
3117   -- check code release level first. Notification framework is at Pack H level
3118    IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
3119        OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
3120                     p_old_hdr_adj_rec => NULL,
3121                     p_Hdr_adj_rec =>p_header_adj_rec,
3122                     p_hdr_adj_id => p_header_adj_rec.price_adjustment_id,
3123                     x_index => l_index,
3124                     x_return_status => l_return_status);
3125 
3126       IF l_debug_level  > 0 THEN
3127           oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_ADJ_UTIL.INSERT_ROW IS: ' || L_RETURN_STATUS ) ;
3128       END IF;
3129       IF l_debug_level  > 0 THEN
3130           oe_debug_pub.add(  'RETURNED INDEX IS: ' || L_INDEX , 1 ) ;
3131       END IF;
3132 
3133      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3134         IF l_debug_level  > 0 THEN
3135             oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
3136         END IF;
3137         IF l_debug_level  > 0 THEN
3138             oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.INSERT_ROW' , 1 ) ;
3139         END IF;
3140 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3141      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3142         IF l_debug_level  > 0 THEN
3143             oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_ADJ_UTIL.INSERT_ROW' ) ;
3144         END IF;
3145         IF l_debug_level  > 0 THEN
3146             oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.INSERT_ROW' , 1 ) ;
3147         END IF;
3148 	RAISE FND_API.G_EXC_ERROR;
3149      END IF;
3150   END IF; /* code_release_level*/
3151   -- notification framework end
3152 
3153     IF l_debug_level  > 0 THEN
3154         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.INSERT_ROW' , 1 ) ;
3155     END IF;
3156 
3157 EXCEPTION
3158 
3159     WHEN OTHERS THEN
3160 
3161         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3162         THEN
3163             OE_MSG_PUB.Add_Exc_Msg
3164             (   G_PKG_NAME
3165             ,   'Insert_Row'
3166             );
3167         END IF;
3168 
3169         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3170 
3171 END Insert_Row;
3172 
3173 -- Procedure Delete_Header_Charges
3174 
3175 Procedure Delete_Header_Charges
3176 (
3177   p_header_id     IN Number
3178 )
3179 IS
3180 l_return_status         VARCHAR2(30);
3181 
3182 begin
3183 
3184 
3185     DELETE  FROM OE_PRICE_ADJUSTMENTS
3186     WHERE   HEADER_ID = p_header_id
3187       AND   LINE_ID  IS NULL
3188       AND   LIST_LINE_TYPE_CODE = 'FREIGHT_CHARGE';
3189 
3190 
3191 EXCEPTION
3192 
3193 WHEN OTHERS THEN
3194         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3195         THEN
3196                 FND_MSG_PUB.Add_Exc_Msg
3197                 (   G_PKG_NAME
3198                 ,   'Delete_Row'
3199                 );
3200         END IF;
3201         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3202 
3203 END Delete_Header_Charges;
3204 
3205 --  Procedure Delete_Row
3206 
3207 PROCEDURE Delete_Row
3208 (   p_price_adjustment_id           IN  NUMBER :=
3209                                         FND_API.G_MISS_NUM
3210 ,   p_header_id                     IN  NUMBER :=
3211                                         FND_API.G_MISS_NUM
3212 )
3213 IS
3214 l_return_status		VARCHAR2(30);
3215 CURSOR price_adj IS
3216 	SELECT price_adjustment_id
3217 	FROM OE_PRICE_ADJUSTMENTS
3218 	WHERE   HEADER_ID = p_header_id;
3219 
3220  -- added for notification framework
3221 l_new_header_adj_rec     OE_Order_PUB.Header_Adj_Rec_Type;
3222 l_index                  NUMBER;
3223 
3224 --
3225 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3226 --
3227 BEGIN
3228 
3229     IF l_debug_level  > 0 THEN
3230         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3231     END IF;
3232 
3233   IF p_header_id <> FND_API.G_MISS_NUM
3234   THEN
3235     FOR l_adj IN price_adj LOOP
3236 
3237    --added for notification framework
3238    --check code release level first. Notification framework is at Pack H level
3239      IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
3240         IF l_debug_level  > 0 THEN
3241             oe_debug_pub.add(  'JFC: IN DELETE ROW , PRICE_ADJUSTMENT_ID= '|| L_ADJ.PRICE_ADJUSTMENT_ID ) ;
3242         END IF;
3243 
3244      /* Set the operation on the record so that globals are updated as well */
3245       l_new_header_adj_rec.operation := OE_GLOBALS.G_OPR_DELETE;
3246       l_new_header_adj_rec.price_adjustment_id := l_adj.price_adjustment_id;
3247 
3248       OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
3249                     p_Hdr_adj_rec =>l_new_header_adj_rec,
3250                     p_hdr_adj_id => l_adj.price_adjustment_id,
3251                     x_index => l_index,
3252                     x_return_status => l_return_status);
3253 
3254      IF l_debug_level  > 0 THEN
3255          oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_ADJ_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
3256      END IF;
3257 
3258       IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3259           IF l_debug_level  > 0 THEN
3260               oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
3261           END IF;
3262           IF l_debug_level  > 0 THEN
3263               oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3264           END IF;
3265     	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3266       ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3267           IF l_debug_level  > 0 THEN
3268               oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_ADJ_UTIL.DELETE_ROW' ) ;
3269           END IF;
3270           IF l_debug_level  > 0 THEN
3271               oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3272           END IF;
3273 	RAISE FND_API.G_EXC_ERROR;
3274      END IF;
3275    END IF; /*code_release_level*/
3276    -- notification framework end
3277 
3278 
3279       OE_Delayed_Requests_Pvt.Delete_Reqs_for_deleted_entity(
3280         p_entity_code  => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
3281         p_entity_id     => l_adj.price_adjustment_id,
3282         x_return_status => l_return_status
3283         );
3284 
3285 	  OE_Line_Price_Aattr_Util.delete_row(
3286 			p_price_adjustment_id=>l_adj.price_adjustment_id);
3287 
3288 	  OE_Line_Adj_Assocs_Util.delete_row(
3289 			p_price_adjustment_id=>l_adj.price_adjustment_id);
3290     END LOOP;
3291     /* Start Audit Trail */
3292     DELETE  FROM OE_PRICE_ADJS_HISTORY
3293     WHERE   HEADER_ID = p_header_id;
3294     /* End Audit Trail */
3295 
3296     DELETE  FROM OE_PRICE_ADJUSTMENTS
3297     WHERE   HEADER_ID = p_header_id;
3298   ELSE
3299 
3300    --added for notification framework
3301    --check code release level first. Notification framework is at Pack H level
3302     IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
3303        IF l_debug_level  > 0 THEN
3304            oe_debug_pub.add(  'JFC:IN DELETE ROW , HEADER_ID IS G_MISS_NUM , PRICE_ADJUSTMENT_ID= '|| P_PRICE_ADJUSTMENT_ID , 1 ) ;
3305        END IF;
3306 
3307       /* Set the operation on the record so that globals are updated as well */
3308        l_new_header_adj_rec.operation := OE_GLOBALS.G_OPR_DELETE;
3309        l_new_header_adj_rec.price_adjustment_id := p_price_adjustment_id;
3310        OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
3311                     p_Hdr_adj_rec =>l_new_header_adj_rec,
3312                     p_hdr_adj_id => p_price_adjustment_id,
3313                     x_index => l_index,
3314                     x_return_status => l_return_status);
3315        IF l_debug_level  > 0 THEN
3316            oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_ADJ_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
3317        END IF;
3318 
3319         IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3320             IF l_debug_level  > 0 THEN
3321                 oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
3322             END IF;
3323             IF l_debug_level  > 0 THEN
3324                 oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3325             END IF;
3326         	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3327         ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3328             IF l_debug_level  > 0 THEN
3329                 oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_ADJ_UTIL.DELETE_ROW' ) ;
3330             END IF;
3331           IF l_debug_level  > 0 THEN
3332               oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3333           END IF;
3334 	  RAISE FND_API.G_EXC_ERROR;
3335         END IF;
3336    END IF; /*code_release_level*/
3337    -- notification framework end
3338 
3339       OE_Delayed_Requests_Pvt.Delete_Reqs_for_deleted_entity
3340         (p_entity_code  => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
3341         p_entity_id     => p_price_adjustment_id,
3342         x_return_status => l_return_status
3343         );
3344 
3345 	  OE_Line_Price_Aattr_Util.delete_row(
3346 			p_price_adjustment_id=>p_price_adjustment_id);
3347 
3348 	  OE_Line_Adj_Assocs_Util.delete_row(
3349 			p_price_adjustment_id=>p_price_adjustment_id);
3350 
3351     /* Start Audit Trail (modified for 11.5.10) */
3352     DELETE  FROM OE_PRICE_ADJS_HISTORY
3353     WHERE   PRICE_ADJUSTMENT_ID = p_price_adjustment_id
3354     AND     NVL(AUDIT_FLAG, 'Y') = 'Y'
3355     AND     NVL(VERSION_FLAG, 'N') = 'N'
3356     AND     NVL(PHASE_CHANGE_FLAG, 'N') = 'N';
3357 
3358     UPDATE  OE_PRICE_ADJS_HISTORY
3359     SET     AUDIT_FLAG = 'N'
3360     WHERE   PRICE_ADJUSTMENT_ID = p_price_adjustment_id
3361     AND     NVL(AUDIT_FLAG, 'Y') = 'Y'
3362     AND    (NVL(VERSION_FLAG, 'N') = 'Y'
3363     OR      NVL(PHASE_CHANGE_FLAG, 'N') = 'Y');
3364     /* End Audit Trail */
3365 
3366     DELETE  FROM OE_PRICE_ADJUSTMENTS
3367     WHERE   PRICE_ADJUSTMENT_ID = p_price_adjustment_id
3368     ;
3369   END IF;
3370 
3371     IF l_debug_level  > 0 THEN
3372         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3373     END IF;
3374 
3375 EXCEPTION
3376 
3377     WHEN OTHERS THEN
3378 
3379         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3380         THEN
3381             OE_MSG_PUB.Add_Exc_Msg
3382             (   G_PKG_NAME
3383             ,   'Delete_Row'
3384             );
3385         END IF;
3386 
3387         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3388 
3389 END Delete_Row;
3390 
3391 --  Procedure Query_Row
3392 
3393 
3394 PROCEDURE Query_Row
3395 (   p_price_adjustment_id     IN  NUMBER
3396 ,   x_Header_Adj_Rec 		IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
3397 )
3398 IS
3399   l_Header_Adj_Tbl			OE_Order_PUB.Header_Adj_Tbl_Type;
3400   --
3401   l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3402   --
3403 BEGIN
3404     IF l_debug_level  > 0 THEN
3405         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.QUERY_ROW' , 1 ) ;
3406     END IF;
3407 
3408     Query_Rows
3409         (   p_price_adjustment_id         => p_price_adjustment_id
3410 	   ,   x_Header_Adj_Tbl			  => l_Header_Adj_Tbl
3411 	   );
3412     x_Header_Adj_Rec := l_Header_Adj_Tbl(1);
3413 
3414     IF l_debug_level  > 0 THEN
3415         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.QUERY_ROW' , 1 ) ;
3416     END IF;
3417 
3418 END Query_Row;
3419 
3420 --  Procedure Query_Rows
3421 
3422 PROCEDURE Query_Rows
3423 (   p_price_adjustment_id     IN  NUMBER :=
3424                                   FND_API.G_MISS_NUM
3425 ,   p_header_id               IN  NUMBER :=
3426                                   FND_API.G_MISS_NUM
3427 ,   x_Header_Adj_Tbl		IN OUT NOCOPY OE_Order_PUB.Header_Adj_Tbl_Type
3428 )
3429 IS
3430 l_count			NUMBER;
3431 
3432 CURSOR l_Header_Adj_csr_p IS
3433     SELECT  ATTRIBUTE1
3434     ,       ATTRIBUTE10
3435     ,       ATTRIBUTE11
3436     ,       ATTRIBUTE12
3437     ,       ATTRIBUTE13
3438     ,       ATTRIBUTE14
3439     ,       ATTRIBUTE15
3440     ,       ATTRIBUTE2
3441     ,       ATTRIBUTE3
3442     ,       ATTRIBUTE4
3443     ,       ATTRIBUTE5
3444     ,       ATTRIBUTE6
3445     ,       ATTRIBUTE7
3446     ,       ATTRIBUTE8
3447     ,       ATTRIBUTE9
3448     ,       AUTOMATIC_FLAG
3449     ,       CONTEXT
3450     ,       CREATED_BY
3451     ,       CREATION_DATE
3452     ,       DISCOUNT_ID
3453     ,       DISCOUNT_LINE_ID
3454     ,       HEADER_ID
3455     ,       LAST_UPDATED_BY
3456     ,       LAST_UPDATE_DATE
3457     ,       LAST_UPDATE_LOGIN
3458     ,       LINE_ID
3459     ,       PERCENT
3460     ,       PRICE_ADJUSTMENT_ID
3461     ,       PROGRAM_APPLICATION_ID
3462     ,       PROGRAM_ID
3463     ,       PROGRAM_UPDATE_DATE
3464     ,       REQUEST_ID
3465     ,	  LIST_HEADER_ID
3466     ,	  LIST_LINE_ID
3467     ,	  LIST_LINE_TYPE_CODE
3468     ,	  MODIFIER_MECHANISM_TYPE_CODE
3469     ,	  MODIFIED_FROM
3470     ,	  MODIFIED_TO
3471     ,	  UPDATED_FLAG
3472     ,	  UPDATE_ALLOWED
3473     ,	  APPLIED_FLAG
3474     ,	  CHANGE_REASON_CODE
3475     ,	  CHANGE_REASON_TEXT
3476     ,	  operand
3477     ,       arithmetic_operator
3478     ,	  COST_ID
3479     ,	  TAX_CODE
3480     ,	  TAX_EXEMPT_FLAG
3481     ,	  TAX_EXEMPT_NUMBER
3482     ,	  TAX_EXEMPT_REASON_CODE
3483     ,	  PARENT_ADJUSTMENT_ID
3484     ,	  INVOICED_FLAG
3485     ,	  ESTIMATED_FLAG
3486     ,	  INC_IN_SALES_PERFORMANCE
3487     ,	  SPLIT_ACTION_CODE
3488     ,	  ADJUSTED_AMOUNT
3489     ,	  PRICING_PHASE_ID
3490     ,	  CHARGE_TYPE_CODE
3491     ,	  CHARGE_SUBTYPE_CODE
3492     ,     list_line_no
3493     ,     source_system_code
3494     ,     benefit_qty
3495     ,     benefit_uom_code
3496     ,     print_on_invoice_flag
3497     ,     expiration_date
3498     ,     rebate_transaction_type_code
3499     ,     rebate_transaction_reference
3500     ,     rebate_payment_system_code
3501     ,     redeemed_date
3502     ,     redeemed_flag
3503     ,     accrual_flag
3504     ,     range_break_quantity
3505     ,     accrual_conversion_rate
3506     ,     pricing_group_sequence
3507     ,     modifier_level_code
3508     ,     price_break_type_code
3509     ,     substitution_attribute
3510     ,     proration_type_code
3511     ,       CREDIT_OR_CHARGE_FLAG
3512     ,       INCLUDE_ON_RETURNS_FLAG
3513     ,       AC_ATTRIBUTE1
3514     ,       AC_ATTRIBUTE10
3515     ,       AC_ATTRIBUTE11
3516     ,       AC_ATTRIBUTE12
3517     ,       AC_ATTRIBUTE13
3518     ,       AC_ATTRIBUTE14
3519     ,       AC_ATTRIBUTE15
3520     ,       AC_ATTRIBUTE2
3521     ,       AC_ATTRIBUTE3
3522     ,       AC_ATTRIBUTE4
3523     ,       AC_ATTRIBUTE5
3524     ,       AC_ATTRIBUTE6
3525     ,       AC_ATTRIBUTE7
3526     ,       AC_ATTRIBUTE8
3527     ,       AC_ATTRIBUTE9
3528     ,       AC_CONTEXT
3529     ,       orig_sys_discount_ref
3530  --uom begin
3531     ,       OPERAND_PER_PQTY
3532     ,         ADJUSTED_AMOUNT_PER_PQTY
3533     ,       INVOICED_AMOUNT
3534     --uom end
3535     ,	  LOCK_CONTROL
3536     FROM    OE_PRICE_ADJUSTMENTS
3537     WHERE   PRICE_ADJUSTMENT_ID = p_price_adjustment_id;
3538 
3539 CURSOR l_Header_Adj_csr_h IS
3540     SELECT  ATTRIBUTE1
3541     ,       ATTRIBUTE10
3542     ,       ATTRIBUTE11
3543     ,       ATTRIBUTE12
3544     ,       ATTRIBUTE13
3545     ,       ATTRIBUTE14
3546     ,       ATTRIBUTE15
3547     ,       ATTRIBUTE2
3548     ,       ATTRIBUTE3
3549     ,       ATTRIBUTE4
3550     ,       ATTRIBUTE5
3551     ,       ATTRIBUTE6
3552     ,       ATTRIBUTE7
3553     ,       ATTRIBUTE8
3554     ,       ATTRIBUTE9
3555     ,       AUTOMATIC_FLAG
3556     ,       CONTEXT
3557     ,       CREATED_BY
3558     ,       CREATION_DATE
3559     ,       DISCOUNT_ID
3560     ,       DISCOUNT_LINE_ID
3561     ,       HEADER_ID
3562     ,       LAST_UPDATED_BY
3563     ,       LAST_UPDATE_DATE
3564     ,       LAST_UPDATE_LOGIN
3565     ,       LINE_ID
3566     ,       PERCENT
3567     ,       PRICE_ADJUSTMENT_ID
3568     ,       PROGRAM_APPLICATION_ID
3569     ,       PROGRAM_ID
3570     ,       PROGRAM_UPDATE_DATE
3571     ,       REQUEST_ID
3572     ,	  LIST_HEADER_ID
3573     ,	  LIST_LINE_ID
3574     ,	  LIST_LINE_TYPE_CODE
3575     ,	  MODIFIER_MECHANISM_TYPE_CODE
3576     ,	  MODIFIED_FROM
3577     ,	  MODIFIED_TO
3578     ,	  UPDATED_FLAG
3579     ,	  UPDATE_ALLOWED
3580     ,	  APPLIED_FLAG
3581     ,	  CHANGE_REASON_CODE
3582     ,	  CHANGE_REASON_TEXT
3583     ,	  operand
3584     ,       arithmetic_operator
3585     ,	  COST_ID
3586     ,	  TAX_CODE
3587     ,	  TAX_EXEMPT_FLAG
3588     ,	  TAX_EXEMPT_NUMBER
3589     ,	  TAX_EXEMPT_REASON_CODE
3590     ,	  PARENT_ADJUSTMENT_ID
3591     ,	  INVOICED_FLAG
3592     ,	  ESTIMATED_FLAG
3593     ,	  INC_IN_SALES_PERFORMANCE
3594     ,	  SPLIT_ACTION_CODE
3595     ,	  ADJUSTED_AMOUNT
3596     ,	  PRICING_PHASE_ID
3597     ,	  CHARGE_TYPE_CODE
3598     ,	  CHARGE_SUBTYPE_CODE
3599     ,     list_line_no
3600     ,     source_system_code
3601     ,     benefit_qty
3602     ,     benefit_uom_code
3603     ,     print_on_invoice_flag
3604     ,     expiration_date
3605     ,     rebate_transaction_type_code
3606     ,     rebate_transaction_reference
3607     ,     rebate_payment_system_code
3608     ,     redeemed_date
3609     ,     redeemed_flag
3610     ,     accrual_flag
3611     ,     range_break_quantity
3612     ,     accrual_conversion_rate
3613     ,     pricing_group_sequence
3614     ,     modifier_level_code
3615     ,     price_break_type_code
3616     ,     substitution_attribute
3617     ,     proration_type_code
3618     ,       CREDIT_OR_CHARGE_FLAG
3619     ,       INCLUDE_ON_RETURNS_FLAG
3620     ,       AC_ATTRIBUTE1
3621     ,       AC_ATTRIBUTE10
3622     ,       AC_ATTRIBUTE11
3623     ,       AC_ATTRIBUTE12
3624     ,       AC_ATTRIBUTE13
3625     ,       AC_ATTRIBUTE14
3626     ,       AC_ATTRIBUTE15
3627     ,       AC_ATTRIBUTE2
3628     ,       AC_ATTRIBUTE3
3629     ,       AC_ATTRIBUTE4
3630     ,       AC_ATTRIBUTE5
3631     ,       AC_ATTRIBUTE6
3632     ,       AC_ATTRIBUTE7
3633     ,       AC_ATTRIBUTE8
3634     ,       AC_ATTRIBUTE9
3635     ,       AC_CONTEXT
3636     ,       orig_sys_discount_ref
3637  --uom begin
3638     ,       OPERAND_PER_PQTY
3639     ,         ADJUSTED_AMOUNT_PER_PQTY
3640     ,       INVOICED_AMOUNT
3641     --uom end
3642     ,	  LOCK_CONTROL
3643     FROM    OE_PRICE_ADJUSTMENTS
3644     WHERE   HEADER_ID = p_header_id AND LINE_ID IS NULL;
3645 
3646   l_implicit_rec l_header_adj_csr_p%ROWTYPE;
3647   l_entity NUMBER;
3648 
3649 --
3650 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3651 --
3652 BEGIN
3653 
3654     IF
3655     (p_price_adjustment_id IS NOT NULL
3656      AND
3657      p_price_adjustment_id <> FND_API.G_MISS_NUM)
3658     AND
3659     (p_header_id IS NOT NULL
3660      AND
3661      p_header_id <> FND_API.G_MISS_NUM)
3662     THEN
3663             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3664             THEN
3665                 OE_MSG_PUB.Add_Exc_Msg
3666                 (   G_PKG_NAME
3667                 ,   'Query Rows'
3668                 ,   'Keys are mutually exclusive: price_adjustment_id = '|| p_price_adjustment_id || ', header_id = '|| p_header_id
3669                 );
3670             END IF;
3671 
3672         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3673 
3674     END IF;
3675 
3676     IF nvl(p_price_adjustment_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
3677 	   l_entity := 1;
3678            OPEN l_header_adj_csr_p;
3679     ELSIF nvl(p_header_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
3680 	   l_entity := 2;
3681            OPEN l_header_adj_csr_h;
3682     END IF;
3683 
3684     --  Loop over fetched records
3685     l_count := 1;
3686     LOOP
3687         IF l_entity = 1 THEN
3688              FETCH l_header_adj_csr_p INTO l_implicit_rec;
3689              EXIT WHEN l_header_adj_csr_p%NOTFOUND;
3690         ELSIF l_entity = 2 THEN
3691              FETCH l_header_adj_csr_h INTO l_implicit_rec;
3692              EXIT WHEN l_header_adj_csr_h%NOTFOUND;
3693         ELSE
3694           EXIT;
3695         END IF;
3696 
3697         x_Header_Adj_tbl(l_count).attribute1    := l_implicit_rec.ATTRIBUTE1;
3698         x_Header_Adj_tbl(l_count).attribute10   := l_implicit_rec.ATTRIBUTE10;
3699         x_Header_Adj_tbl(l_count).attribute11   := l_implicit_rec.ATTRIBUTE11;
3700         x_Header_Adj_tbl(l_count).attribute12   := l_implicit_rec.ATTRIBUTE12;
3701         x_Header_Adj_tbl(l_count).attribute13   := l_implicit_rec.ATTRIBUTE13;
3702         x_Header_Adj_tbl(l_count).attribute14   := l_implicit_rec.ATTRIBUTE14;
3703         x_Header_Adj_tbl(l_count).attribute15   := l_implicit_rec.ATTRIBUTE15;
3704         x_Header_Adj_tbl(l_count).attribute2    := l_implicit_rec.ATTRIBUTE2;
3705         x_Header_Adj_tbl(l_count).attribute3    := l_implicit_rec.ATTRIBUTE3;
3706         x_Header_Adj_tbl(l_count).attribute4    := l_implicit_rec.ATTRIBUTE4;
3707         x_Header_Adj_tbl(l_count).attribute5    := l_implicit_rec.ATTRIBUTE5;
3708         x_Header_Adj_tbl(l_count).attribute6    := l_implicit_rec.ATTRIBUTE6;
3709         x_Header_Adj_tbl(l_count).attribute7    := l_implicit_rec.ATTRIBUTE7;
3710         x_Header_Adj_tbl(l_count).attribute8    := l_implicit_rec.ATTRIBUTE8;
3711         x_Header_Adj_tbl(l_count).attribute9    := l_implicit_rec.ATTRIBUTE9;
3712         x_Header_Adj_tbl(l_count).automatic_flag := l_implicit_rec.AUTOMATIC_FLAG;
3713         x_Header_Adj_tbl(l_count).context       := l_implicit_rec.CONTEXT;
3714         x_Header_Adj_tbl(l_count).created_by    := l_implicit_rec.CREATED_BY;
3715         x_Header_Adj_tbl(l_count).creation_date := l_implicit_rec.CREATION_DATE;
3716         x_Header_Adj_tbl(l_count).discount_id   := l_implicit_rec.DISCOUNT_ID;
3717         x_Header_Adj_tbl(l_count).discount_line_id := l_implicit_rec.DISCOUNT_LINE_ID;
3718         x_Header_Adj_tbl(l_count).header_id     := l_implicit_rec.HEADER_ID;
3719         x_Header_Adj_tbl(l_count).last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
3720         x_Header_Adj_tbl(l_count).last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
3721         x_Header_Adj_tbl(l_count).last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
3722         x_Header_Adj_tbl(l_count).line_id       := l_implicit_rec.LINE_ID;
3723         x_Header_Adj_tbl(l_count).percent       := l_implicit_rec.PERCENT;
3724         x_Header_Adj_tbl(l_count).price_adjustment_id := l_implicit_rec.PRICE_ADJUSTMENT_ID;
3725         x_Header_Adj_tbl(l_count).program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
3726         x_Header_Adj_tbl(l_count).program_id    := l_implicit_rec.PROGRAM_ID;
3727         x_Header_Adj_tbl(l_count).program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
3728         x_Header_Adj_tbl(l_count).adjusted_amount   := l_implicit_rec.adjusted_amount;
3729         x_Header_Adj_tbl(l_count).pricing_phase_id  := l_implicit_rec.pricing_phase_id;
3730         x_Header_Adj_tbl(l_count).list_header_id    := l_implicit_rec.list_header_id;
3731         x_Header_Adj_tbl(l_count).list_line_id    := l_implicit_rec.list_line_id;
3732         x_Header_Adj_tbl(l_count).list_line_type_code    := l_implicit_rec.list_line_type_code;
3733         x_Header_Adj_tbl(l_count).modifier_mechanism_type_code :=
3734 					 l_implicit_rec.modifier_mechanism_type_code;
3735      x_Header_Adj_tbl(l_count).modified_from    := l_implicit_rec.modified_from;
3736      x_Header_Adj_tbl(l_count).modified_to    := l_implicit_rec.modified_to;
3737      x_Header_Adj_tbl(l_count).updated_flag    := l_implicit_rec.updated_flag;
3738      x_Header_Adj_tbl(l_count).update_allowed    := l_implicit_rec.update_allowed;
3739      x_Header_Adj_tbl(l_count).applied_flag    := l_implicit_rec.applied_flag;
3740      x_Header_Adj_tbl(l_count).change_reason_code := l_implicit_rec.change_reason_code;
3741      x_Header_Adj_tbl(l_count).change_reason_text  := l_implicit_rec.change_reason_text;
3742      x_Header_Adj_tbl(l_count).operand  := l_implicit_rec.operand;
3743      x_Header_Adj_tbl(l_count).arithmetic_operator  :=
3744 							l_implicit_rec.arithmetic_operator;
3745 
3746         x_Header_Adj_tbl(l_count).request_id    := l_implicit_rec.REQUEST_ID;
3747 
3748      x_Header_Adj_tbl(l_count).cost_id := l_implicit_rec.cost_id;
3749      x_Header_Adj_tbl(l_count).tax_code := l_implicit_rec.tax_code;
3750      x_Header_Adj_tbl(l_count).tax_exempt_flag := l_implicit_rec.tax_exempt_flag;
3751      x_Header_Adj_tbl(l_count).tax_exempt_number := l_implicit_rec.tax_exempt_number;
3752      x_Header_Adj_tbl(l_count).tax_exempt_reason_code := l_implicit_rec.tax_exempt_reason_code;
3753      x_Header_Adj_tbl(l_count).parent_adjustment_id := l_implicit_rec.parent_adjustment_id;
3754      x_Header_Adj_tbl(l_count).invoiced_flag := l_implicit_rec.invoiced_flag;
3755      x_Header_Adj_tbl(l_count).estimated_flag := l_implicit_rec.estimated_flag;
3756      x_Header_Adj_tbl(l_count).inc_in_sales_performance := l_implicit_rec.inc_in_sales_performance;
3757      x_Header_Adj_tbl(l_count).split_action_code := l_implicit_rec.split_action_code;
3758      x_Header_Adj_tbl(l_count).charge_type_code := l_implicit_rec.charge_type_code;
3759      x_Header_Adj_tbl(l_count).charge_subtype_code := l_implicit_rec.charge_subtype_code;
3760      x_Header_Adj_tbl(l_count).list_line_no := l_implicit_rec.list_line_no;
3761      x_Header_Adj_tbl(l_count).source_system_code := l_implicit_rec.source_system_code;
3762      x_Header_Adj_tbl(l_count).benefit_qty := l_implicit_rec.benefit_qty;
3763      x_Header_Adj_tbl(l_count).benefit_uom_code := l_implicit_rec.benefit_uom_code;
3764      x_Header_Adj_tbl(l_count).print_on_invoice_flag := l_implicit_rec.print_on_invoice_flag;
3765      x_Header_Adj_tbl(l_count).expiration_date := l_implicit_rec.expiration_date;
3766      x_Header_Adj_tbl(l_count).rebate_transaction_type_code := l_implicit_rec.rebate_transaction_type_code;
3767      x_Header_Adj_tbl(l_count).rebate_transaction_reference := l_implicit_rec.rebate_transaction_reference;
3768      x_Header_Adj_tbl(l_count).rebate_payment_system_code := l_implicit_rec.rebate_payment_system_code;
3769      x_Header_Adj_tbl(l_count).redeemed_date := l_implicit_rec.redeemed_date;
3770      x_Header_Adj_tbl(l_count).redeemed_flag := l_implicit_rec.redeemed_flag;
3771      x_Header_Adj_tbl(l_count).accrual_flag := l_implicit_rec.accrual_flag;
3772      x_Header_Adj_tbl(l_count).range_break_quantity := l_implicit_rec.range_break_quantity;
3773      x_Header_Adj_tbl(l_count).accrual_conversion_rate := l_implicit_rec.accrual_conversion_rate;
3774      x_Header_Adj_tbl(l_count).pricing_group_sequence := l_implicit_rec.pricing_group_sequence;
3775      x_Header_Adj_tbl(l_count).modifier_level_code := l_implicit_rec.modifier_level_code;
3776      x_Header_Adj_tbl(l_count).price_break_type_code := l_implicit_rec.price_break_type_code;
3777      x_Header_Adj_tbl(l_count).substitution_attribute := l_implicit_rec.substitution_attribute;
3778      x_Header_Adj_tbl(l_count).proration_type_code := l_implicit_rec.proration_type_code;
3779      x_Header_Adj_tbl(l_count).credit_or_charge_flag := l_implicit_rec.credit_or_charge_flag;
3780      x_Header_Adj_tbl(l_count).include_on_returns_flag := l_implicit_rec.include_on_returns_flag;
3781         x_Header_Adj_tbl(l_count).ac_attribute1    := l_implicit_rec.AC_ATTRIBUTE1;
3782         x_Header_Adj_tbl(l_count).ac_attribute10   := l_implicit_rec.AC_ATTRIBUTE10;
3783         x_Header_Adj_tbl(l_count).ac_attribute11   := l_implicit_rec.AC_ATTRIBUTE11;
3784         x_Header_Adj_tbl(l_count).ac_attribute12   := l_implicit_rec.AC_ATTRIBUTE12;
3785         x_Header_Adj_tbl(l_count).ac_attribute13   := l_implicit_rec.AC_ATTRIBUTE13;
3786         x_Header_Adj_tbl(l_count).ac_attribute14   := l_implicit_rec.AC_ATTRIBUTE14;
3787         x_Header_Adj_tbl(l_count).ac_attribute15   := l_implicit_rec.AC_ATTRIBUTE15;
3788         x_Header_Adj_tbl(l_count).ac_attribute2    := l_implicit_rec.AC_ATTRIBUTE2;
3789         x_Header_Adj_tbl(l_count).ac_attribute3    := l_implicit_rec.AC_ATTRIBUTE3;
3790         x_Header_Adj_tbl(l_count).ac_attribute4    := l_implicit_rec.AC_ATTRIBUTE4;
3791         x_Header_Adj_tbl(l_count).ac_attribute5    := l_implicit_rec.AC_ATTRIBUTE5;
3792         x_Header_Adj_tbl(l_count).ac_attribute6    := l_implicit_rec.AC_ATTRIBUTE6;
3793         x_Header_Adj_tbl(l_count).ac_attribute7    := l_implicit_rec.AC_ATTRIBUTE7;
3794         x_Header_Adj_tbl(l_count).ac_attribute8    := l_implicit_rec.AC_ATTRIBUTE8;
3795         x_Header_Adj_tbl(l_count).ac_attribute9    := l_implicit_rec.AC_ATTRIBUTE9;
3796         x_Header_Adj_tbl(l_count).ac_context       := l_implicit_rec.AC_CONTEXT;
3797         x_Header_Adj_tbl(l_count).orig_sys_discount_ref  := l_implicit_rec.orig_sys_discount_ref;
3798         --uom begin
3799         x_Header_Adj_tbl(l_count).OPERAND_PER_PQTY      :=l_implicit_rec.operand_per_pqty;
3800      x_Header_Adj_tbl(l_count).ADJUSTED_AMOUNT_PER_PQTY :=l_implicit_rec.adjusted_amount_per_pqty;
3801         --uom end
3802         x_Header_Adj_tbl(l_count).invoiced_amount   := l_implicit_rec.invoiced_amount;
3803         x_Header_Adj_tbl(l_count).lock_control      := l_implicit_rec.LOCK_CONTROL;
3804 
3805         -- set values for non-DB fields
3806         x_Header_Adj_tbl(l_count).db_flag          := FND_API.G_TRUE;
3807         x_Header_Adj_tbl(l_count).operation        := FND_API.G_MISS_CHAR;
3808         x_Header_Adj_tbl(l_count).return_status    := FND_API.G_MISS_CHAR;
3809 
3810         l_count := l_count + 1;
3811     END LOOP;
3812 
3813     IF l_entity = 1 THEN
3814         CLOSE l_header_adj_csr_p;
3815     ELSIF l_entity = 2 THEN
3816         CLOSE l_header_adj_csr_h;
3817     END IF;
3818 
3819     --  PK sent and no rows found
3820 
3821     IF
3822     (p_price_adjustment_id IS NOT NULL
3823      AND
3824      p_price_adjustment_id <> FND_API.G_MISS_NUM)
3825     AND
3826     (x_Header_Adj_tbl.COUNT = 0)
3827     THEN
3828         RAISE NO_DATA_FOUND;
3829     END IF;
3830 
3831 EXCEPTION
3832 
3833     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3834 
3835         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3836 
3837     WHEN OTHERS THEN
3838 
3839         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3840         THEN
3841             OE_MSG_PUB.Add_Exc_Msg
3842             (   G_PKG_NAME
3843             ,   'Query_Rows'
3844             );
3845         END IF;
3846 
3847         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3848 
3849 END Query_Rows;
3850 
3851 --  Procedure       lock_Row
3852 --
3853 -- lock by ID or value will be decided by, if lock_control is passed or not.
3854 -- we are doing this so that other products, can still call lock_order API
3855 -- which does not take only primary key and takes only entire records. However
3856 -- if they do not set lokc_control on rec, we will still lock by ID
3857 -- that way they do not need to query up the records before sending them in.
3858 -- OM calls can directly fo to util.lock row, thus can send only PK.
3859 
3860 PROCEDURE Lock_Row
3861 ( x_return_status OUT NOCOPY VARCHAR2
3862 
3863 ,   p_x_Header_Adj_rec              IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
3864 --                                      := OE_Order_PUB.G_MISS_HEADER_ADJ_REC
3865 ,   p_price_adjustment_id           IN  NUMBER
3866                                         := FND_API.G_MISS_NUM
3867 -- ,   x_Header_Adj_rec                OUT OE_Order_PUB.Header_Adj_Rec_Type
3868 )
3869 IS
3870 l_price_adjustment_id         NUMBER;
3871 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type;
3872 l_lock_control				NUMBER;
3873 --
3874 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3875 --
3876 BEGIN
3877 
3878     IF l_debug_level  > 0 THEN
3879         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.LOCK_ROW' , 1 ) ;
3880     END IF;
3881 
3882     SAVEPOINT Lock_Row;
3883 
3884     l_lock_control := NULL;
3885 
3886     -- Retrieve the primary key.
3887     IF p_price_adjustment_id <> FND_API.G_MISS_NUM THEN
3888         l_price_adjustment_id := p_price_adjustment_id;
3889     ELSE
3890         l_price_adjustment_id := p_x_header_adj_rec.price_adjustment_id;
3891         l_lock_control 		:= p_x_header_adj_rec.lock_control;
3892     END IF;
3893 
3894     -- added for performance change
3895     SELECT price_adjustment_id
3896     INTO   l_price_adjustment_id
3897     FROM   oe_price_adjustments
3898     WHERE  price_adjustment_id = l_price_adjustment_id
3899     FOR UPDATE NOWAIT;
3900 
3901     IF l_debug_level  > 0 THEN
3902         oe_debug_pub.add(  'SELECTING FOR UPDATE.' , 1 ) ;
3903     END IF;
3904 
3905     OE_Header_Adj_Util.Query_Row
3906     (p_price_adjustment_id	=> l_price_adjustment_id
3907     ,x_Header_Adj_rec 		=> p_x_Header_Adj_rec
3908     );
3909 
3910     IF l_debug_level  > 0 THEN
3911         oe_debug_pub.add(  'QUERIED LOCK_CONTROL: '|| P_X_HEADER_ADJ_REC.LOCK_CONTROL , 1 ) ;
3912     END IF;
3913 
3914     -- If lock_control is not passed(is null or missing), then return the locked record.
3915 
3916 
3917     IF l_lock_control is null OR
3918        l_lock_control = FND_API.G_MISS_NUM
3919     THEN
3920 
3921         --  Set return status
3922         x_return_status                := FND_API.G_RET_STS_SUCCESS;
3923         p_x_header_adj_rec.return_status     := FND_API.G_RET_STS_SUCCESS;
3924 
3925         -- return for lock by ID.
3926 	RETURN;
3927 
3928     END IF;
3929 
3930     --  Row locked. If the whole record is passed, then
3931     --  Compare lock_control.
3932 
3933     IF l_debug_level  > 0 THEN
3934         oe_debug_pub.add(  'COMPARE ' , 1 ) ;
3935     END IF;
3936 
3937     IF      OE_GLOBALS.Equal(p_x_header_adj_rec.lock_control,
3938                              l_lock_control)
3939     THEN
3940 
3941         --  Row has not changed. Set out parameter.
3942 
3943         IF l_debug_level  > 0 THEN
3944             oe_debug_pub.add(  'LOCKED ROW' , 1 ) ;
3945         END IF;
3946 
3947         --  Set return status
3948 
3949         x_return_status                := FND_API.G_RET_STS_SUCCESS;
3950         p_x_header_adj_rec.return_status       := FND_API.G_RET_STS_SUCCESS;
3951 
3952     ELSE
3953 
3954         --  Row has changed by another user.
3955         IF l_debug_level  > 0 THEN
3956             oe_debug_pub.add(  'ROW CHANGED BY OTHER USER' , 1 ) ;
3957         END IF;
3958 
3959         x_return_status                := FND_API.G_RET_STS_ERROR;
3960         p_x_header_adj_rec.return_status       := FND_API.G_RET_STS_ERROR;
3961 
3962         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
3963         THEN
3964 
3965             -- Release the lock
3966             ROLLBACK TO Lock_Row;
3967 
3968             fnd_message.set_name('ONT','OE_LOCK_ROW_CHANGED');
3969             OE_MSG_PUB.Add;
3970 
3971         END IF;
3972 
3973     END IF;
3974 
3975     IF l_debug_level  > 0 THEN
3976         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.LOCK_ROW' , 1 ) ;
3977     END IF;
3978 
3979 EXCEPTION
3980 
3981     WHEN NO_DATA_FOUND THEN
3982 
3983         x_return_status                := FND_API.G_RET_STS_ERROR;
3984         p_x_Header_Adj_rec.return_status := FND_API.G_RET_STS_ERROR;
3985 
3986         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3987         THEN
3988 
3989             FND_MESSAGE.SET_NAME('OE','OE_LOCK_ROW_DELETED');
3990             FND_MSG_PUB.Add;
3991 
3992         END IF;
3993     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
3994 
3995         x_return_status                := FND_API.G_RET_STS_ERROR;
3996         p_x_Header_Adj_rec.return_status := FND_API.G_RET_STS_ERROR;
3997 
3998         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3999         THEN
4000 
4001             FND_MESSAGE.SET_NAME('OE','OE_LOCK_ROW_ALREADY_LOCKED');
4002             FND_MSG_PUB.Add;
4003 
4004         END IF;
4005     WHEN OTHERS THEN
4006 
4007         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
4008         p_x_Header_Adj_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4009 
4010         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4011         THEN
4012             OE_MSG_PUB.Add_Exc_Msg
4013             (   G_PKG_NAME
4014             ,   'Lock_Row'
4015             );
4016         END IF;
4017 
4018 END Lock_Row;
4019 
4020 PROCEDURE Lock_Rows
4021 (   p_price_adjustment_id          IN  NUMBER
4022                                        := FND_API.G_MISS_NUM
4023 ,   p_header_id           		IN  NUMBER
4024                                        := FND_API.G_MISS_NUM
4025 ,   x_Header_Adj_tbl               OUT NOCOPY OE_Order_PUB.Header_Adj_Tbl_Type
4026 , x_return_status OUT NOCOPY VARCHAR2
4027 
4028 )
4029 IS
4030 
4031   CURSOR lock_adj_hdr(p_header_id IN NUMBER) IS
4032   SELECT price_adjustment_id
4033   FROM   oe_price_adjustments
4034   WHERE  header_id = p_header_id
4035   FOR UPDATE NOWAIT;
4036 
4037 l_price_adjustment_id         NUMBER;
4038 l_Header_Adj_tbl              OE_Order_PUB.Header_Adj_Tbl_Type;
4039 l_lock_control				NUMBER;
4040 
4041 --
4042 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4043 --
4044 BEGIN
4045 
4046   IF l_debug_level  > 0 THEN
4047       oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.LOCK_ROWS.' , 1 ) ;
4048   END IF;
4049 
4050   IF (p_price_adjustment_id IS NOT NULL AND
4051 	 p_price_adjustment_id <> FND_API.G_MISS_NUM) AND
4052      (p_header_id IS NOT NULL AND
4053 	 p_header_id <> FND_API.G_MISS_NUM)
4054   THEN
4055     IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4056 	 OE_MSG_PUB.Add_Exc_Msg
4057 	 (  G_PKG_NAME
4058 	 ,  'Lock_Rows'
4059 	 ,  'Keys are mutually exclusive: price_adjustment_id = ' ||
4060 	    p_price_adjustment_id || ', header_id = ' || p_header_id );
4061     END IF;
4062 
4063     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4064   END IF;
4065 
4066   IF p_price_adjustment_id <> FND_API.G_MISS_NUM THEN
4067 
4068     SELECT price_adjustment_id
4069     INTO   l_price_adjustment_id
4070     FROM   oe_price_adjustments
4071     WHERE  price_adjustment_id = p_price_adjustment_id
4072     FOR UPDATE NOWAIT;
4073   END IF;
4074 
4075   -- null header_id shouldn't be passed in unnecessarily if
4076   -- price_adjustment_id is passed in already.
4077   BEGIN
4078     IF p_header_id <> FND_API.G_MISS_NUM THEN
4079 	 SAVEPOINT LOCK_ROWS;
4080 	 OPEN lock_adj_hdr(p_header_id);
4081 
4082 	 LOOP
4083 	   FETCH lock_adj_hdr INTO l_price_adjustment_id;
4084 	   EXIT WHEN lock_adj_hdr%NOTFOUND;
4085       END LOOP;
4086       CLOSE lock_adj_hdr;
4087     END IF;
4088   EXCEPTION
4089     WHEN OTHERS THEN
4090 	 ROLLBACK TO LOCK_ROWS;
4091 
4092 	 IF lock_adj_hdr%ISOPEN THEN
4093         CLOSE lock_adj_hdr;
4094       END IF;
4095 
4096 	 RAISE;
4097   END;
4098 
4099   OE_Header_Adj_Util.Query_Rows
4100   ( p_price_adjustment_id	=> p_price_adjustment_id
4101   , p_header_id			=> p_header_id
4102   , x_Header_Adj_tbl		=> x_Header_Adj_tbl
4103   );
4104 
4105   x_return_status := FND_API.G_RET_STS_SUCCESS;
4106 
4107   EXCEPTION
4108     WHEN NO_DATA_FOUND THEN
4109       x_return_status                := FND_API.G_RET_STS_ERROR;
4110       IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
4111       THEN
4112         fnd_message.set_name('ONT','OE_LOCK_ROW_DELETED');
4113         OE_MSG_PUB.Add;
4114       END IF;
4115 
4116      WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
4117        x_return_status                := FND_API.G_RET_STS_ERROR;
4118        IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
4119        THEN
4120          fnd_message.set_name('ONT','OE_LOCK_ROW_ALREADY_LOCKED');
4121          OE_MSG_PUB.Add;
4122        END IF;
4123 
4124      WHEN OTHERS THEN
4125         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
4126        IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4127        THEN
4128          OE_MSG_PUB.Add_Exc_Msg
4129          (   G_PKG_NAME
4130           ,   'Lock_Row'
4131          );
4132        END IF;
4133 
4134   IF l_debug_level  > 0 THEN
4135       oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.LOCK_ROWS.' , 1 ) ;
4136   END IF;
4137 
4138 END Lock_Rows;
4139 
4140 PROCEDURE Log_Adj_Requests
4141 ( x_return_status OUT NOCOPY VARCHAR2
4142 
4143 , p_adj_rec		IN	OE_order_pub.Header_Adj_Rec_Type
4144 , p_old_adj_rec		IN	OE_order_pub.Header_Adj_Rec_Type
4145 , p_delete_flag		IN	BOOLEAN DEFAULT FALSE
4146   )  IS
4147 
4148 --
4149 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4150 --
4151 BEGIN
4152 
4153    x_return_status := FND_API.G_RET_STS_SUCCESS;
4154 
4155     -- if the adjustment_id changed or the percent changed
4156     -- or discount or discount_line has changed
4157 
4158     IF (  (p_adj_rec.price_adjustment_id <> p_old_adj_rec.price_adjustment_id
4159 	   OR
4160 	   p_old_adj_rec.price_adjustment_id IS NULL)
4161 	OR
4162 	  (p_adj_rec.percent <> p_old_adj_rec.percent
4163 	   OR
4164 	   p_old_adj_rec.percent IS NULL)
4165 	OR
4166 	  (p_adj_rec.discount_id <> p_old_adj_rec.discount_id
4167 	   OR
4168 	   p_old_adj_rec.discount_id IS NULL)
4169 	OR
4170 	  (p_adj_rec.discount_line_id <> p_old_adj_rec.discount_line_id
4171 	   OR
4172 	   p_old_adj_rec.discount_line_id IS NULL)
4173 	OR
4174 	  p_delete_flag)
4175       THEN
4176 
4177 	  /*
4178        oe_delayed_requests_pvt.log_request(p_entity_code	=> OE_GLOBALS.G_ENTITY_HEADER_ADJ,
4179 		   p_entity_id		=> p_adj_rec.header_id,
4180                    p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
4181                    p_requesting_entity_id   => p_adj_rec.
4182                                                         price_adjustment_id,
4183 		   p_request_type	=> OE_GLOBALS.G_PRICE_ADJ,
4184 		   x_return_status	=> x_return_status);
4185 		   */
4186 		   null;
4187     END IF;
4188 
4189 END Log_Adj_Requests;
4190 
4191 --  Function Get_Values
4192 
4193 FUNCTION Get_Values
4194 (   p_Header_Adj_rec                IN  OE_Order_PUB.Header_Adj_Rec_Type
4195 ,   p_old_Header_Adj_rec            IN  OE_Order_PUB.Header_Adj_Rec_Type :=
4196                                         OE_Order_PUB.G_MISS_HEADER_ADJ_REC
4197 ) RETURN OE_Order_PUB.Header_Adj_Val_Rec_Type
4198 IS
4199 l_Header_Adj_val_rec          OE_Order_PUB.Header_Adj_Val_Rec_Type;
4200 --
4201 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4202 --
4203 BEGIN
4204 
4205     IF (p_Header_Adj_rec.discount_id IS NULL OR
4206         p_Header_Adj_rec.discount_id <> FND_API.G_MISS_NUM) AND
4207         NOT OE_GLOBALS.Equal(p_Header_Adj_rec.discount_id,
4208         p_old_Header_Adj_rec.discount_id)
4209     THEN
4210         l_Header_Adj_val_rec.discount := OE_Id_To_Value.Discount
4211         (   p_discount_id                 => p_Header_Adj_rec.discount_id
4212         );
4213     END IF;
4214 
4215     RETURN l_Header_Adj_val_rec;
4216 
4217 END Get_Values;
4218 
4219 --  Procedure Get_Ids
4220 
4221 PROCEDURE Get_Ids
4222 (   p_x_Header_Adj_rec              IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
4223 ,   p_Header_Adj_val_rec            IN  OE_Order_PUB.Header_Adj_Val_Rec_Type
4224 )
4225 IS
4226 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type;
4227 --
4228 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4229 --
4230 BEGIN
4231 
4232     --  initialize  return_status.
4233 
4234     l_Header_Adj_rec.return_status := FND_API.G_RET_STS_SUCCESS;
4235 
4236     --  initialize l_Header_Adj_rec.
4237 
4238     l_Header_Adj_rec := p_x_Header_Adj_rec;
4239 
4240     IF  p_Header_Adj_val_rec.discount <> FND_API.G_MISS_CHAR
4241     THEN
4242 
4243         IF p_x_Header_Adj_rec.discount_id <> FND_API.G_MISS_NUM THEN
4244 
4245             l_Header_Adj_rec.discount_id := p_x_Header_Adj_rec.discount_id;
4246 
4247             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
4248             THEN
4249 
4250                 FND_MESSAGE.SET_NAME('OE','OE_BOTH_VAL_AND_ID_EXIST');
4251                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','discount');
4252                 FND_MSG_PUB.Add;
4253 
4254             END IF;
4255 
4256         ELSE
4257 
4258             l_Header_Adj_rec.discount_id := OE_Value_To_Id.discount
4259             (   p_discount                    => p_Header_Adj_val_rec.discount
4260             );
4261 
4262             IF l_Header_Adj_rec.discount_id = FND_API.G_MISS_NUM THEN
4263                 l_Header_Adj_rec.return_status := FND_API.G_RET_STS_ERROR;
4264             END IF;
4265 
4266         END IF;
4267 
4268     END IF;
4269 
4270 
4271   --  RETURN l_Header_Adj_rec;
4272     p_x_Header_Adj_rec := l_Header_Adj_rec;
4273 
4274 END Get_Ids;
4275 
4276 
4277 FUNCTION  get_adj_total
4278 ( p_header_id       IN   NUMBER := null
4279 , p_line_id       IN   NUMBER :=null
4280 )
4281 		RETURN NUMBER
4282 is
4283 l_adj_total NUMBER := 0;
4284 Is_fmt Boolean;
4285 --
4286 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4287 --
4288 BEGIN
4289 
4290     IF l_debug_level  > 0 THEN
4291         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.GET_ADJ_TOTAL' , 1 ) ;
4292     END IF;
4293 
4294     IF (p_header_id IS NOT NULL AND
4295        NVL(p_header_id,-1)<>NVL(OE_ORDER_UTIL.G_Header_id,-10))
4296     OR  OE_ORDER_UTIL.G_Precision IS NULL THEN
4297       Is_fmt:=   OE_ORDER_UTIL.Get_Precision(
4298                 p_header_id=>p_header_id
4299                );
4300     END IF;
4301 
4302     IF (p_line_id IS NOT NULL AND
4303     NVL(p_Line_id,-1)<>NVL(OE_ORDER_UTIL.G_Line_id,-10))
4304     OR  OE_ORDER_UTIL.G_Precision IS NULL THEN
4305       Is_fmt:=   OE_ORDER_UTIL.Get_Precision(
4306                 p_line_id=>p_line_id
4307                );
4308     END IF;
4309 
4310     IF OE_ORDER_UTIL.G_Precision IS NULL THEN
4311       OE_ORDER_UTIL.G_Precision:=2;
4312     END IF;
4313 
4314 
4315     --	Query total.
4316     --  Separating into two separate SQLs for bug 3090569 --jvicenti
4317 
4318     IF p_header_id IS NOT NULL THEN
4319         SELECT  sum(ROUND(((unit_selling_price - unit_list_price)*
4320                           ordered_quantity) ,OE_ORDER_UTIL.G_Precision))
4321         INTO    l_adj_total
4322         FROM    oe_order_lines_all
4323         WHERE   HEADER_ID = p_header_id
4324         AND     charge_periodicity_code IS NULL -- addded for recurring charges
4325         AND	nvl(cancelled_flag,'N') ='N';
4326     ELSE
4327         SELECT  sum(ROUND(((unit_selling_price - unit_list_price)*
4328                           ordered_quantity) ,OE_ORDER_UTIL.G_Precision))
4329         INTO    l_adj_total
4330         FROM    oe_order_lines_all
4331         WHERE   line_id = p_line_id
4332         AND	nvl(cancelled_flag,'N') ='N';
4333     END IF;
4334 
4335     IF l_adj_total IS NULL THEN
4336 
4337 		l_adj_total := 0;
4338 
4339     END IF;
4340 
4341     IF l_debug_level  > 0 THEN
4342         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.GET_ADJ_TOTAL' , 1 ) ;
4343     END IF;
4344 
4345     RETURN l_adj_total;
4346 
4347 EXCEPTION
4348 
4349     WHEN OTHERS THEN
4350 
4351         -- Unexpected error
4352 	IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4353 
4354 	    OE_MSG_PUB.Add_Exc_Msg
4355 	    (   G_PKG_NAME  	    ,
4356     	        'Price_Utilities - Get_Adj_Total'
4357 	    );
4358 	END IF;
4359 
4360 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4361 
4362 END Get_Adj_Total;
4363 
4364  procedure get_line_adjustments
4365  (p_header_id			number
4366  ,p_line_id			number
4367 ,x_line_adjustments out nocopy line_adjustments_tab_type
4368 
4369  )
4370 is
4371 l_index		number := 0;
4372 --
4373 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4374 --
4375 BEGIN
4376 
4377     IF l_debug_level  > 0 THEN
4378         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.GET_LINE_ADJUSTMENTS' , 1 ) ;
4379     END IF;
4380 
4381     for adj_cur in
4382     ( SELECT   opa.price_adjustment_id
4383 			,opa.adjustment_name
4384                         ,opa.adjustment_description  --Enhancement 3816014
4385                         ,opa.list_line_no
4386 			,opa.adjustment_type_code
4387 			,opa.operand
4388 			,opa.arithmetic_operator
4389 --Bug 3340636 Starts
4390 			,decode(list_line_type_code,'SUR',
4391 				-1 * (decode(opa.arithmetic_operator,
4392 				null,0,
4393 				'%', opa.operand*ool.unit_list_price/100,
4394 				'AMT',opa.operand,
4395 				'NEWPRICE',ool.unit_list_price - opa.operand)),
4396 			decode(opa.arithmetic_operator,null,0,'%',
4397 			opa.operand*ool.unit_list_price/100,
4398 				'AMT',opa.operand,
4399 			'NEWPRICE',ool.unit_list_price-opa.operand))
4400 					unit_discount_amount
4401 --Bug 3340636 Ends
4402 			 FROM oe_price_adjustments_v opa
4403 			, oe_order_lines_all ool
4404       WHERE   	opa.HEADER_ID = p_header_id
4405 			and opa.line_id is null
4406 		   	and ool.line_id = p_line_id
4407 		   	and ool.header_id = p_header_id
4408 		   	and nvl(opa.applied_flag,'N') = 'Y'
4409 			and nvl(opa.accrual_flag,'N') = 'N'
4410 		   	and list_line_type_code in ('DIS','SUR','PBH')
4411      UNION
4412 	  -- get line adjustments
4413      SELECT   	opa.price_adjustment_id
4414 			,opa.adjustment_name
4415                         ,opa.adjustment_description  --Enhancement 3816014
4416                         ,opa.list_line_no
4417 			,opa.adjustment_type_code
4418 			,opa.operand
4419 			,opa.arithmetic_operator
4420 			,opa.adjusted_amount*(-1)	unit_discount_amount
4421       FROM    	oe_price_adjustments_v opa
4422 			, oe_order_lines_all ool
4423       WHERE  	opa.line_id =p_line_id
4424 		   	and ool.line_id = p_line_id
4425 		   	and ool.header_id = p_header_id
4426 		   	and nvl(opa.applied_flag,'N') = 'Y'
4427 			and nvl(opa.accrual_flag,'N') = 'N'
4428 		   	and list_line_type_code in ('DIS','SUR','PBH')
4429      )
4430 	loop
4431 
4432 	l_index:= l_index+1;
4433 	x_line_adjustments(l_index).price_adjustment_id := adj_cur.price_adjustment_id;
4434  	x_line_adjustments(l_index).adjustment_name := adj_cur.adjustment_name;
4435         x_line_adjustments(l_index).adjustment_description := adj_cur.adjustment_description;  --Enhancement 3816014
4436         x_line_adjustments(l_index).list_line_no := adj_cur.list_line_no;
4437  	x_line_adjustments(l_index).adjustment_type_code:= adj_cur.adjustment_type_code;
4438  	x_line_adjustments(l_index).operand:= adj_cur.operand;
4439  	x_line_adjustments(l_index).arithmetic_operator:= adj_cur.arithmetic_operator;
4440  	x_line_adjustments(l_index).unit_discount_amount := adj_cur.unit_discount_amount;
4441 
4442      end loop;
4443 
4444 
4445     IF l_debug_level  > 0 THEN
4446         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.GET_LINE_ADJUSTMENTS' , 1 ) ;
4447     END IF;
4448 
4449 
4450 EXCEPTION
4451 
4452     WHEN OTHERS THEN
4453 
4454         -- Unexpected error
4455 	IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4456 
4457 	    OE_MSG_PUB.Add_Exc_Msg
4458 	    (   G_PKG_NAME  	    ,
4459     	        'Header_utilities - get_line_adjustments'
4460 	    );
4461 	END IF;
4462 
4463 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4464 
4465 END get_line_adjustments;
4466 
4467 /* Start AuditTrail */
4468 PROCEDURE Pre_Write_Process
4469           (p_x_header_adj_rec IN OUT NOCOPY /* file.sql.39 change */ OE_ORDER_PUB.header_adj_rec_type,
4470            p_old_header_adj_rec IN OE_ORDER_PUB.header_adj_rec_type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_REC) IS
4471 /*local */
4472 l_return_status     varchar2(30);
4473 --
4474 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4475 --
4476 BEGIN
4477 
4478        --11.5.10 Versioning/Audit Trail updates
4479      IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' AND
4480          OE_GLOBALS.G_ROLL_VERSION <> 'N' AND
4481          NOT OE_GLOBALS.G_HEADER_CREATED THEN
4482        IF OE_GLOBALS.G_REASON_CODE IS NULL AND
4483            OE_GLOBALS.G_CAPTURED_REASON IN ('V','A') THEN
4484          IF p_x_header_adj_rec.change_reason_code <> FND_API.G_MISS_CHAR THEN
4485               OE_GLOBALS.G_REASON_TYPE := 'CHANGE_CODE';
4486               OE_GLOBALS.G_REASON_CODE := p_x_header_adj_rec.change_reason_code;
4487               OE_GLOBALS.G_REASON_COMMENTS := p_x_header_adj_rec.change_reason_text;
4488               OE_GLOBALS.G_CAPTURED_REASON := 'Y';
4489          ELSE
4490               IF l_debug_level  > 0 THEN
4491                  OE_DEBUG_PUB.add('Reason code for versioning is missing', 1);
4492               END IF;
4493               IF OE_GLOBALS.G_UI_FLAG THEN
4494                  raise FND_API.G_EXC_ERROR;
4495               END IF;
4496          END IF;
4497        END IF;
4498 
4499        --log delayed request
4500         oe_debug_pub.add('log versioning request',1);
4501           OE_Delayed_Requests_Pvt.Log_Request(p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
4502                                    p_entity_id => p_x_header_adj_rec.header_id,
4503                                    p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
4504                                    p_requesting_entity_id => p_x_header_adj_rec.price_adjustment_id,
4505                                    p_request_type => OE_GLOBALS.G_VERSION_AUDIT,
4506                                    x_return_status => l_return_status);
4507      END IF;
4508 
4509 if (p_x_header_adj_rec.operation  = OE_GLOBALS.G_OPR_UPDATE) then
4510 
4511    IF OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG = 'Y' OR
4512 	 OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG = 'Y' THEN
4513 
4514       IF l_debug_level  > 0 THEN
4515           oe_debug_pub.add(  'CALL TO RECORD HEADER PRICE ADJ HISTORY' , 5 ) ;
4516       END IF;
4517      --11.5.10 Versioning/Audit Trail updates
4518      IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' THEN
4519           OE_Versioning_Util.Capture_Audit_Info(p_entity_code => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
4520                                            p_entity_id => p_x_header_adj_rec.price_adjustment_id,
4521                                            p_hist_type_code =>  'UPDATE');
4522            --log delayed request
4523              OE_Delayed_Requests_Pvt.Log_Request(p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
4524                                    p_entity_id => p_x_header_adj_rec.header_id,
4525                                    p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
4526                                    p_requesting_entity_id => p_x_header_adj_rec.header_id,
4527                                    p_request_type => OE_GLOBALS.G_VERSION_AUDIT,
4528                                    x_return_status => l_return_status);
4529           OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
4530      ELSE
4531       OE_CHG_ORDER_PVT.RecordHPAdjHist
4532       ( p_header_adj_id => p_x_header_adj_rec.price_adjustment_id,
4533         p_header_adj_rec => null,
4534         p_hist_type_code => 'UPDATE',
4535         p_reason_code => p_x_header_adj_rec.change_reason_code,
4536         p_comments => p_x_header_adj_rec.change_reason_text,
4537         p_wf_activity_code => null,
4538         p_wf_result_code => null,
4539         x_return_status => l_return_status );
4540      END IF;
4541 
4542    END IF;
4543 
4544     IF l_return_status <> FND_API.G_RET_STS_SUCCESS then
4545 	  IF l_debug_level  > 0 THEN
4546 	      oe_debug_pub.add(  'INSERT INTO HEADER PRICE ADJUSTMENTS AUDIT HISTORY CAUSED ERROR' , 1 ) ;
4547 	  END IF;
4548        IF l_return_status = FND_API.G_RET_STS_ERROR then
4549           raise FND_API.G_EXC_ERROR;
4550        ELSE
4551           raise FND_API.G_EXC_UNEXPECTED_ERROR;
4552        END IF;
4553     END IF;
4554 END IF;
4555 
4556 END Pre_Write_Process;
4557 /* End AuditTrail */
4558 
4559 /* Added the following procedure to fix the bug 2170086 */
4560 PROCEDURE copy_header_adjustments
4561 ( p_from_header_id    IN   NUMBER
4562 , p_to_header_id      IN   NUMBER
4563 , p_to_order_category IN   VARCHAR2
4564 , x_return_status     OUT NOCOPY /* file.sql.39 change */  VARCHAR2
4565 )
4566 is
4567 l_copy_freight_charge      VARCHAR2(1);
4568 l_from_order_category      VARCHAR2(30);
4569 l_from_header_adj_tbl      OE_Order_PUB.Header_Adj_Tbl_Type;
4570 l_from_header_adj_att_tbl  OE_Order_Pub.Header_Adj_Att_Tbl_Type;
4571 l_header_adj_tbl           OE_Order_PUB.Header_Adj_Tbl_Type;
4572 l_header_adj_att_tbl       OE_Order_Pub.Header_Adj_Att_Tbl_Type;
4573 i                          pls_integer;
4574 j                          pls_integer;
4575 l_control_rec              OE_Globals.Control_rec_type;
4576 l_header_rec               OE_Order_PUB.Header_Rec_Type;
4577 l_x_Header_price_Att_tbl   OE_Order_PUB.Header_price_Att_tbl_type;
4578 l_x_Header_Adj_Assoc_tbl   OE_Order_PUB.Header_Adj_Assoc_tbl_type;
4579 l_x_Header_Scredit_tbl     OE_Order_PUB.Header_Scredit_Tbl_Type;
4580 l_line_tbl                 OE_Order_PUB.Line_Tbl_Type;
4581 l_x_Line_Adj_tbl           OE_Order_PUB.Line_Adj_Tbl_Type;
4582 l_x_Line_Adj_Att_tbl       OE_Order_PUB.Line_Adj_Att_tbl_type;
4583 l_x_Line_price_Att_tbl     OE_Order_PUB.Line_price_Att_tbl_type;
4584 l_x_Line_Adj_Assoc_tbl     OE_Order_PUB.Line_Adj_Assoc_tbl_type;
4585 l_x_Line_Scredit_tbl       OE_Order_PUB.Line_Scredit_Tbl_Type;
4586 l_x_lot_serial_tbl         OE_Order_PUB.lot_serial_tbl_type;
4587 l_x_action_request_tbl     OE_Order_PUB.request_tbl_type;
4588 l_x_msg_count              NUMBER;
4589 l_x_msg_data               VARCHAR2(2000);
4590 
4591 cursor c1
4592 is
4593 select order_category_code
4594 from   oe_order_headers
4595 where  header_id = p_from_header_id;
4596 
4597 BEGIN
4598 
4599   oe_debug_pub.add('Entering OE_Header_Adj_Util.copy_header_adjustments ', 1);
4600 
4601   /* Get Order category of the order FROM which adjustments are being copied. */
4602   for c1_rec in c1 loop
4603     l_from_order_category := c1_rec.order_category_code;
4604   end loop;
4605 
4606   /* Header Level adjustment for FROM Header */
4607   IF OE_CODE_CONTROL.Get_Code_Release_Level >= '110510' THEN
4608       OE_Version_History_Util.Query_Rows
4609            (  p_header_id => p_from_header_id
4610             , p_version_number => OE_ORDER_COPY_UTIL.G_HDR_VER_NUMBER
4611             , p_phase_change_flag => OE_ORDER_COPY_UTIL.G_HDR_PHASE_CHANGE_FLAG
4612             , x_Header_Adj_Tbl => l_from_header_adj_tbl);
4613   ELSE
4614       OE_Header_Adj_Util.Query_Rows( p_header_Id      => p_from_header_id
4615                                , x_Header_Adj_Tbl => l_from_header_adj_tbl
4616                                );
4617   END IF;
4618 
4619   i := l_from_header_adj_tbl.First;
4620   While i is not null Loop
4621 
4622     oe_debug_pub.add('inside copy header adj '||l_from_header_adj_tbl(i).list_line_type_code);
4623 
4624     /* If it's a Freight Charge then ... */
4625     If l_from_header_adj_tbl(i).list_line_type_code <> 'FREIGHT_CHARGE' and
4626        l_from_header_adj_tbl(i).list_line_type_code <> 'OM_CALLED_FREIGHT_RATES' and -- bug 4304163
4627        l_from_header_adj_tbl(i).list_line_type_code <> 'OM_CALLED_CHOOSE_SHIP_METHOD' then --Bug3322938
4628 
4629       /* Copy Freight Charge only if the flag was set to 'Y' */
4630 
4631         oe_header_price_aattr_util.Query_Rows(
4632                 p_price_adjustment_id => l_from_header_adj_tbl(i).price_adjustment_id,
4633                 x_header_adj_att_tbl  => l_from_header_adj_att_tbl
4634 			 );
4635 
4636         j := l_from_header_adj_att_tbl.First;
4637         While j is not null Loop
4638 
4639           l_from_header_adj_att_tbl(j).operation           := OE_GLOBALS.G_OPR_CREATE;
4640           l_from_header_adj_att_tbl(j).price_adjustment_id := fnd_api.g_miss_num;
4641           l_from_header_adj_att_tbl(j).adj_index           := l_header_adj_tbl.count+1;
4642           l_from_header_adj_att_tbl(j).price_adj_attrib_id := fnd_api.g_miss_num;
4643 
4644           l_header_adj_att_tbl(l_header_adj_att_tbl.count+1) := l_from_header_adj_att_tbl(j);
4645 
4646           j := l_from_header_adj_att_tbl.Next(j);
4647 
4648         End Loop;
4649 
4650         l_from_header_adj_tbl(i).operation           := OE_GLOBALS.G_OPR_CREATE;
4651         l_from_header_adj_tbl(i).header_id           := p_to_header_id;
4652         l_from_header_adj_tbl(i).invoiced_flag       := 'N';
4653         l_from_header_adj_tbl(i).price_adjustment_id := fnd_api.g_miss_num;
4654 
4655         l_header_adj_tbl(l_header_adj_tbl.count+1)   := l_from_header_adj_tbl(i);
4656 
4657 
4658     End if; -- List Line Type <> Freight Charge
4659 
4660     i:= l_from_header_adj_tbl.Next(i);
4661   End Loop;
4662 
4663   If l_header_adj_tbl.count > 0 or l_header_adj_att_tbl.count > 0 Then
4664 
4665     -- set control record
4666     l_control_rec.controlled_operation := TRUE;
4667     l_control_rec.write_to_DB          := TRUE;
4668     l_control_rec.change_attributes    := TRUE;
4669     l_control_rec.default_attributes   := TRUE;
4670     l_control_rec.validate_entity      := TRUE;
4671     l_control_rec.clear_dependents     := TRUE;
4672 
4673     l_control_rec.process              := FALSE;
4674     l_control_rec.clear_api_cache      := FALSE;
4675     l_control_rec.clear_api_requests   := FALSE;
4676 
4677     oe_debug_pub.add('Before OE_Order_PVT.Process_order',3);
4678 
4679     -- OE_Globals.G_RECURSION_MODE := 'Y';
4680 
4681     -- Call OE_Order_PVT.Process_order
4682     OE_Order_PVT.Process_order
4683     (   p_api_version_number          => 1.0
4684     ,   x_return_status               => x_return_status
4685     ,   x_msg_count                   => l_x_msg_count
4686     ,   x_msg_data                    => l_x_msg_data
4687     ,   p_control_rec                 => l_control_rec
4688     ,   p_x_header_rec                => l_header_rec
4689     ,   p_x_Header_Adj_tbl            => l_Header_Adj_Tbl
4690     ,   p_x_Header_Adj_att_tbl        => l_Header_Adj_Att_Tbl
4691     ,   p_x_Header_Price_Att_Tbl      => l_x_Header_Price_Att_Tbl
4692     ,   p_x_Header_Adj_Assoc_tbl      => l_x_Header_Adj_Assoc_tbl
4693     ,   p_x_Header_Scredit_tbl        => l_x_Header_Scredit_tbl
4694     ,   p_x_line_tbl                  => l_line_tbl
4695     ,   p_x_Line_Adj_tbl              => l_x_Line_Adj_tbl
4696     ,   p_x_Line_Adj_att_tbl          => l_x_Line_Adj_att_tbl
4697     ,   p_x_Line_Price_att_tbl        => l_x_Line_Price_att_tbl
4698     ,   p_x_Line_Adj_Assoc_tbl        => l_x_Line_Adj_Assoc_tbl
4699     ,   p_x_Line_Scredit_tbl          => l_x_Line_Scredit_tbl
4700     ,   p_x_Lot_Serial_tbl            => l_x_Lot_Serial_Tbl
4701     ,   p_x_action_request_tbl        => l_x_Action_Request_tbl
4702     );
4703 
4704     -- OE_Globals.G_RECURSION_MODE := 'N';
4705 
4706     If x_return_status = FND_API.G_RET_STS_UNEXP_ERROR Then
4707       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4708     Elsif x_return_status = FND_API.G_RET_STS_ERROR Then
4709       RAISE FND_API.G_EXC_ERROR;
4710     End If;
4711 
4712   End If;
4713 
4714   oe_debug_pub.add('Exiting OE_Header_Adj_Util.copy_header_adjustments ', 1);
4715 
4716   EXCEPTION
4717 
4718     WHEN FND_API.G_EXC_ERROR THEN
4719       x_return_status := FND_API.G_RET_STS_ERROR;
4720 
4721     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4722       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4723       oe_debug_pub.add(G_PKG_NAME||':copy_header_adjuetments :'||SQLERRM);
4724 
4725     WHEN OTHERS THEN
4726       If FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) Then
4727             OE_MSG_PUB.Add_Exc_Msg
4728             (   G_PKG_NAME
4729             ,   'Copy_header_adjustments '
4730             );
4731       End If;
4732       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4733 
4734 END copy_header_adjustments ;
4735 
4736 /* End of the procedure added to fix the bug 2170086 */
4737 
4738 /* Fix for 1559906: New Procedure to Copy Freight Charges */
4739 
4740 PROCEDURE copy_freight_charges
4741 ( p_from_header_id    IN   NUMBER
4742 , p_to_header_id      IN   NUMBER
4743 , p_to_order_category IN   VARCHAR2
4744 , x_return_status OUT NOCOPY VARCHAR2
4745 
4746 )
4747 is
4748 l_copy_freight_charge      VARCHAR2(1);
4749 l_from_order_category      VARCHAR2(30);
4750 l_from_header_adj_tbl      OE_Order_PUB.Header_Adj_Tbl_Type;
4751 l_from_header_adj_att_tbl  OE_Order_Pub.Header_Adj_Att_Tbl_Type;
4752 l_header_adj_tbl           OE_Order_PUB.Header_Adj_Tbl_Type;
4753 l_header_adj_att_tbl       OE_Order_Pub.Header_Adj_Att_Tbl_Type;
4754 i                          pls_integer;
4755 j                          pls_integer;
4756 l_control_rec              OE_Globals.Control_rec_type;
4757 l_header_rec               OE_Order_PUB.Header_Rec_Type;
4758 l_x_Header_price_Att_tbl   OE_Order_PUB.Header_price_Att_tbl_type;
4759 l_x_Header_Adj_Assoc_tbl   OE_Order_PUB.Header_Adj_Assoc_tbl_type;
4760 l_x_Header_Scredit_tbl     OE_Order_PUB.Header_Scredit_Tbl_Type;
4761 l_line_tbl                 OE_Order_PUB.Line_Tbl_Type;
4762 l_x_Line_Adj_tbl           OE_Order_PUB.Line_Adj_Tbl_Type;
4763 l_x_Line_Adj_Att_tbl       OE_Order_PUB.Line_Adj_Att_tbl_type;
4764 l_x_Line_price_Att_tbl     OE_Order_PUB.Line_price_Att_tbl_type;
4765 l_x_Line_Adj_Assoc_tbl     OE_Order_PUB.Line_Adj_Assoc_tbl_type;
4766 l_x_Line_Scredit_tbl       OE_Order_PUB.Line_Scredit_Tbl_Type;
4767 l_x_lot_serial_tbl         OE_Order_PUB.lot_serial_tbl_type;
4768 l_x_action_request_tbl     OE_Order_PUB.request_tbl_type;
4769 l_x_msg_count              NUMBER;
4770 l_x_msg_data               VARCHAR2(2000);
4771 
4772 cursor c1
4773 is
4774 select order_category_code
4775 from   oe_order_headers
4776 where  header_id = p_from_header_id;
4777 --serla begin
4778 l_x_Header_Payment_tbl        OE_Order_PUB.Header_Payment_Tbl_Type;
4779 l_x_Line_Payment_tbl          OE_Order_PUB.Line_Payment_Tbl_Type;
4780 --serla end
4781 --
4782 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4783 --
4784 BEGIN
4785 
4786   IF l_debug_level  > 0 THEN
4787       oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.COPY_FREIGHT_CHARGES' , 1 ) ;
4788   END IF;
4789 
4790   /* Get Order category of the order FROM which charges are being copied. */
4791   for c1_rec in c1 loop
4792     l_from_order_category := c1_rec.order_category_code;
4793   end loop;
4794 
4795   /* Header Level Charges for FROM Header */
4796   IF OE_CODE_CONTROL.Get_Code_Release_Level >= '110510' THEN
4797       OE_Version_History_Util.Query_Rows
4798            (  p_header_id => p_from_header_id
4799             , p_version_number => OE_ORDER_COPY_UTIL.G_HDR_VER_NUMBER
4800             , p_phase_change_flag => OE_ORDER_COPY_UTIL.G_HDR_PHASE_CHANGE_FLAG
4801             , x_Header_Adj_Tbl => l_from_header_adj_tbl);
4802   ELSE
4803       OE_Header_Adj_Util.Query_Rows( p_header_Id      => p_from_header_id
4804                                , x_Header_Adj_Tbl => l_from_header_adj_tbl);
4805   END IF;
4806 
4807   i := l_from_header_adj_tbl.First;
4808   While i is not null Loop
4809 
4810     oe_debug_pub.add('Inside copy frieght charges .. '||l_from_header_adj_tbl(i).list_line_type_code);
4811 
4812     l_copy_freight_charge := 'N';
4813 
4814     /* If it's a Freight Charge then ... */
4815     If l_from_header_adj_tbl(i).list_line_type_code = 'FREIGHT_CHARGE' then
4816 
4817       /* If copying from Order to Return then ... */
4818       If l_from_order_category = 'ORDER' and p_to_order_category = 'RETURN' then
4819 
4820 	   If (NVL(l_from_header_Adj_Tbl(i).include_on_returns_flag,'Y') = 'Y' and
4821             NVL(l_from_header_Adj_Tbl(i).applied_flag,'N') = 'Y') then
4822 
4823           l_copy_freight_charge := 'Y';
4824 
4825           if l_from_header_adj_tbl(i).credit_or_charge_flag = 'C' then
4826             l_from_header_adj_tbl(i).credit_or_charge_flag := 'D';
4827           else
4828             l_from_header_adj_tbl(i).credit_or_charge_flag := 'C';
4829           end if;
4830 
4831           l_from_header_adj_tbl(i).updated_flag          := 'Y';
4832           l_from_header_adj_tbl(i).change_reason_code    := 'MISC';
4833           l_from_header_adj_tbl(i).change_reason_text    := 'Reversing Credit';
4834 
4835         End if;
4836 
4837       /* If copying from Return to Order then ... */
4838       Elsif l_from_order_category = 'RETURN' and p_to_order_category = 'ORDER' then
4839 
4840         l_copy_freight_charge := 'Y';
4841 
4842         if l_from_header_adj_tbl(i).credit_or_charge_flag = 'C' then
4843           l_from_header_adj_tbl(i).credit_or_charge_flag := 'D';
4844         else
4845           l_from_header_adj_tbl(i).credit_or_charge_flag := 'C';
4846         end if;
4847 
4848         l_from_header_adj_tbl(i).updated_flag          := 'N';
4849         l_from_header_adj_tbl(i).change_reason_code    := NULL;
4850         l_from_header_adj_tbl(i).change_reason_text    := NULL;
4851 
4852       /*
4853       ** Else copying from:
4854       ** Order-> Order, Return-> Return, Mixed-> Mixed, Order-> Mixed, Return-> Mixed.
4855       */
4856       Else
4857 
4858         /* Copy the charge as it is */
4859            l_copy_freight_charge := 'Y';
4860 
4861       End if; -- Order Category
4862 
4863       /* Copy Freight Charge only if the flag was set to 'Y' */
4864 	 If l_copy_freight_charge = 'Y' Then
4865 
4866         oe_header_price_aattr_util.Query_Rows(
4867                 p_price_adjustment_id => l_from_header_adj_tbl(i).price_adjustment_id,
4868                 x_header_adj_att_tbl  => l_from_header_adj_att_tbl
4869 			 );
4870 
4871         j := l_from_header_adj_att_tbl.First;
4872         While j is not null Loop
4873 
4874           l_from_header_adj_att_tbl(j).operation           := OE_GLOBALS.G_OPR_CREATE;
4875           l_from_header_adj_att_tbl(j).price_adjustment_id := fnd_api.g_miss_num;
4876           l_from_header_adj_att_tbl(j).adj_index           := l_header_adj_tbl.count+1;
4877           l_from_header_adj_att_tbl(j).price_adj_attrib_id := fnd_api.g_miss_num;
4878 
4879           l_header_adj_att_tbl(l_header_adj_att_tbl.count+1) := l_from_header_adj_att_tbl(j);
4880 
4881           j := l_from_header_adj_att_tbl.Next(j);
4882 
4883         End Loop;
4884 
4885         l_from_header_adj_tbl(i).operation           := OE_GLOBALS.G_OPR_CREATE;
4886         l_from_header_adj_tbl(i).header_id           := p_to_header_id;
4887         l_from_header_adj_tbl(i).invoiced_flag       := 'N';
4888 	l_from_header_adj_tbl(i).invoiced_amount     := NULL;
4889         l_from_header_adj_tbl(i).price_adjustment_id := fnd_api.g_miss_num;
4890 
4891         l_header_adj_tbl(l_header_adj_tbl.count+1)   := l_from_header_adj_tbl(i);
4892 
4893       End If;
4894 
4895     End if; -- List Line Type = Freight Charge
4896 
4897     i:= l_from_header_adj_tbl.Next(i);
4898   End Loop;
4899 
4900   If l_header_adj_tbl.count > 0 or l_header_adj_att_tbl.count > 0 Then
4901 
4902     -- set control record
4903     l_control_rec.controlled_operation := TRUE;
4904     l_control_rec.write_to_DB          := TRUE;
4905     l_control_rec.change_attributes    := TRUE;
4906     l_control_rec.default_attributes   := TRUE;
4907     l_control_rec.validate_entity      := TRUE;
4908     l_control_rec.clear_dependents     := TRUE;
4909 
4910     l_control_rec.process              := FALSE;
4911     l_control_rec.clear_api_cache      := FALSE;
4912     l_control_rec.clear_api_requests   := FALSE;
4913 
4914     IF l_debug_level  > 0 THEN
4915         oe_debug_pub.add(  'BEFORE OE_ORDER_PVT.PROCESS_ORDER' , 3 ) ;
4916     END IF;
4917 
4918     -- OE_Globals.G_RECURSION_MODE := 'Y';
4919 
4920     -- Call OE_Order_PVT.Process_order
4921     OE_Order_PVT.Process_order
4922     (   p_api_version_number          => 1.0
4923     ,   x_return_status               => x_return_status
4924     ,   x_msg_count                   => l_x_msg_count
4925     ,   x_msg_data                    => l_x_msg_data
4926     ,   p_control_rec                 => l_control_rec
4927     ,   p_x_header_rec                => l_header_rec
4928     ,   p_x_Header_Adj_tbl            => l_Header_Adj_Tbl
4929     ,   p_x_Header_Adj_att_tbl        => l_Header_Adj_Att_Tbl
4930     ,   p_x_Header_Price_Att_Tbl      => l_x_Header_Price_Att_Tbl
4931     ,   p_x_Header_Adj_Assoc_tbl      => l_x_Header_Adj_Assoc_tbl
4932     ,   p_x_Header_Scredit_tbl        => l_x_Header_Scredit_tbl
4933 --serla begin
4934     ,   p_x_Header_Payment_tbl          => l_x_Header_Payment_tbl
4935 --serla end
4936     ,   p_x_line_tbl                  => l_line_tbl
4937     ,   p_x_Line_Adj_tbl              => l_x_Line_Adj_tbl
4938     ,   p_x_Line_Adj_att_tbl          => l_x_Line_Adj_att_tbl
4939     ,   p_x_Line_Price_att_tbl        => l_x_Line_Price_att_tbl
4940     ,   p_x_Line_Adj_Assoc_tbl        => l_x_Line_Adj_Assoc_tbl
4941     ,   p_x_Line_Scredit_tbl          => l_x_Line_Scredit_tbl
4942 --serla begin
4943     ,   p_x_Line_Payment_tbl            => l_x_Line_Payment_tbl
4944 --serla end
4945     ,   p_x_Lot_Serial_tbl            => l_x_Lot_Serial_Tbl
4946     ,   p_x_action_request_tbl        => l_x_Action_Request_tbl
4947     );
4948 
4949     -- OE_Globals.G_RECURSION_MODE := 'N';
4950 
4951     If x_return_status = FND_API.G_RET_STS_UNEXP_ERROR Then
4952       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4953     Elsif x_return_status = FND_API.G_RET_STS_ERROR Then
4954       RAISE FND_API.G_EXC_ERROR;
4955     End If;
4956 
4957   End If;
4958 
4959   IF l_debug_level  > 0 THEN
4960       oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.COPY_FREIGHT_CHARGES' , 1 ) ;
4961   END IF;
4962 
4963   EXCEPTION
4964 
4965     WHEN FND_API.G_EXC_ERROR THEN
4966       x_return_status := FND_API.G_RET_STS_ERROR;
4967 
4968     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4969       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4970       IF l_debug_level  > 0 THEN
4971           oe_debug_pub.add(  G_PKG_NAME||':COPY_FREIGHT_CHARGES:'||SQLERRM ) ;
4972       END IF;
4973 
4974     WHEN OTHERS THEN
4975       If FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) Then
4976             OE_MSG_PUB.Add_Exc_Msg
4977             (   G_PKG_NAME
4978             ,   'Copy_Freight_Charges'
4979             );
4980       End If;
4981       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4982 
4983 END copy_freight_charges;
4984 
4985 --Recurring Charges
4986 FUNCTION  get_rec_adj_total
4987 ( p_header_id       IN   NUMBER := null
4988 , p_line_id       IN   NUMBER :=null
4989 , p_charge_periodicity_code       IN    VARCHAR2
4990 )
4991 		RETURN NUMBER
4992 is
4993 l_adj_total NUMBER := 0;
4994 Is_fmt Boolean;
4995 --
4996 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4997 --
4998 BEGIN
4999 
5000     IF l_debug_level  > 0 THEN
5001         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.GET_ADJ_TOTAL' , 1 ) ;
5002     END IF;
5003 
5004     IF (p_header_id IS NOT NULL AND
5005        NVL(p_header_id,-1)<>NVL(OE_ORDER_UTIL.G_Header_id,-10))
5006     OR  OE_ORDER_UTIL.G_Precision IS NULL THEN
5007       Is_fmt:=   OE_ORDER_UTIL.Get_Precision(
5008                 p_header_id=>p_header_id
5009                );
5010     END IF;
5011 
5012     IF (p_line_id IS NOT NULL AND
5013     NVL(p_Line_id,-1)<>NVL(OE_ORDER_UTIL.G_Line_id,-10))
5014     OR  OE_ORDER_UTIL.G_Precision IS NULL THEN
5015       Is_fmt:=   OE_ORDER_UTIL.Get_Precision(
5016                 p_line_id=>p_line_id
5017                );
5018     END IF;
5019 
5020     IF OE_ORDER_UTIL.G_Precision IS NULL THEN
5021       OE_ORDER_UTIL.G_Precision:=2;
5022     END IF;
5023 
5024 
5025     --	Query total.
5026     --  Separating into two separate SQLs for bug 3090569 --jvicenti
5027 
5028     IF p_header_id IS NOT NULL THEN
5029         SELECT  sum(ROUND(((unit_selling_price - unit_list_price)*
5030                           ordered_quantity) ,OE_ORDER_UTIL.G_Precision))
5031         INTO    l_adj_total
5032         FROM    oe_order_lines_all
5033         WHERE   HEADER_ID = p_header_id
5034         AND     nvl(charge_periodicity_code,'ONE') = p_charge_periodicity_code
5035         AND	nvl(cancelled_flag,'N') ='N';
5036     END IF;
5037 
5038     IF l_adj_total IS NULL THEN
5039 
5040 		l_adj_total := 0;
5041 
5042     END IF;
5043 
5044     IF l_debug_level  > 0 THEN
5045         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.GET_ADJ_TOTAL' , 1 ) ;
5046     END IF;
5047 
5048     RETURN l_adj_total;
5049 
5050 EXCEPTION
5051 
5052     WHEN OTHERS THEN
5053 
5054         -- Unexpected error
5055 	IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
5056 
5057 	    OE_MSG_PUB.Add_Exc_Msg
5058 	    (   G_PKG_NAME  	    ,
5059     	        'Price_Utilities - Get_Adj_Total'
5060 	    );
5061 	END IF;
5062 
5063 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5064 
5065 END Get_Rec_Adj_Total;
5066 -- Recurring CHarges
5067 
5068 --rc
5069 -- New function added to return the recurring amount given the order level modifier and periodicity
5070 FUNCTION  get_rec_order_adj_total
5071    ( p_header_id       IN   NUMBER DEFAULT NULL
5072      , p_price_adjustment_id IN NUMBER DEFAULT NULL
5073      , p_charge_periodicity_code       IN    VARCHAR2 DEFAULT NULL
5074      )
5075    RETURN NUMBER
5076 Is
5077    l_rec_list_price_total NUMBER := 0;
5078    l_operand NUMBER :=0;
5079    l_order_adj_total NUMBER := 0;
5080    l_status_code       VARCHAR2(30);
5081    l_price_list_id     NUMBER;
5082    l_currency_code     VARCHAR2(15);
5083    l_pricing_date      DATE;
5084    l_header_id         NUMBER;
5085    l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5086 
5087 BEGIN
5088    IF l_debug_level > 0 THEN
5089       oe_debug_pub.add('ENTERING OE_HEADER_ADJ_UTIL.GET_REC_ORDER_ADJ_TOTAL');
5090    END IF;
5091 
5092    IF p_price_adjustment_id IS NULL OR
5093       p_charge_periodicity_code IS NULL THEN
5094          RETURN NULL;
5095    ELSE
5096       IF p_header_id IS NULL THEN
5097 	 BEGIN
5098 	    SELECT header_id INTO l_header_id
5099 	    FROM oe_price_adjustments
5100 	    WHERE price_adjustment_id = p_price_adjustment_id;
5101 
5102 	    IF l_header_id IS NULL THEN
5103 	       RETURN NULL;
5104 	    END IF;
5105 	 EXCEPTION
5106 	    WHEN OTHERS THEN
5107 	       IF l_debug_level > 0 THEN
5108 		  oe_debug_pub.add('Exception while querying for the adjustment record : ' || SQLERRM);
5109 	       END IF;
5110 	       RETURN NULL;
5111 	 END;
5112       ELSE
5113         l_header_id := p_header_id;
5114       END IF;
5115    END IF;
5116 
5117    IF l_debug_level > 0 THEN
5118       oe_debug_pub.add('l_header_id : ' || l_header_id);
5119       oe_debug_pub.add('p_price_adjustment_id : ' || p_price_adjustment_id);
5120       oe_debug_pub.add('p_charge_periodicity_code : ' || p_charge_periodicity_code);
5121    END IF;
5122 
5123 
5124    SELECT  nvl(sum(unit_list_price * ordered_quantity), 0) --bug5354658
5125    INTO    l_rec_list_price_total
5126    FROM    oe_order_lines_all
5127    WHERE   HEADER_ID = l_header_id
5128    AND     charge_periodicity_code = p_charge_periodicity_code
5129    AND     nvl(cancelled_flag,'N') ='N';
5130 
5131    IF l_debug_level > 0 THEN
5132       oe_debug_pub.add('l_rec_list_price_total : ' || l_rec_list_price_total);
5133    END IF;
5134 
5135    SELECT nvl(operand,0) * decode(list_line_type_code, 'DIS', -1, 'SUR', 1)
5136    INTO l_operand
5137    FROM oe_price_adjustments
5138    WHERE price_adjustment_id = p_price_adjustment_id
5139    AND line_id IS NULL
5140    AND arithmetic_operator = '%';
5141 
5142    IF l_debug_level > 0 THEN
5143       oe_debug_pub.add('l_operand : ' || l_operand);
5144    END IF;
5145 
5146    l_order_adj_total := l_rec_list_price_total * (l_operand / 100);
5147 
5148    IF l_order_adj_total <> 0 THEN
5149       BEGIN
5150 	 SELECT price_list_id,
5151 	        transactional_curr_code,
5152 	        nvl(pricing_date,ordered_date)
5153 	 INTO l_price_list_id,l_currency_code,l_pricing_date
5154 	 FROM   Oe_Order_Headers_All
5155 	 WHERE  header_id = p_header_id;
5156 
5157 	 QP_UTIL_PUB.round_price
5158 	    (p_operand                => l_order_adj_total,
5159 	     p_rounding_factor        => NULL,
5160 	     p_use_multi_currency     => 'Y',
5161 	     p_price_list_id          => l_price_list_id,
5162 	     p_currency_code          => l_currency_code,
5163 	     p_pricing_effective_date => l_pricing_date,
5164 	     x_rounded_operand        => l_order_adj_total,
5165 	     x_status_code            => l_status_code,
5166 	     p_operand_type           => 'A'
5167 	     );
5168 
5169 	 IF l_order_adj_total IS NULL Then
5170 	    IF l_debug_level > 0 THEN
5171 	       oe_debug_pub.add('Error in QP_UTIL_PUB.round_price. Unable to perform rounding');
5172 	    END IF;
5173 	    --pricing has some errors retore the old adjusted_amount
5174 	    l_order_adj_total := l_rec_list_price_total * (l_operand / 100);
5175 	 END IF;
5176       EXCEPTION
5177 	 WHEN NO_DATA_FOUND THEN
5178 	    IF l_debug_level > 0 THEN
5179 	       oe_debug_pub.add('Unable to query header to perform rounding:'||p_header_id);
5180 	    END IF;
5181 	       l_order_adj_total := 0;
5182 	 WHEN OTHERS THEN
5183 	    IF l_debug_level > 0 THEN
5184 	       oe_debug_pub.add('OEXUHADB.pls'||SQLERRM);
5185 	    END IF;
5186 
5187 	    l_order_adj_total := l_rec_list_price_total * (l_operand / 100);
5188       END;
5189 
5190   END IF;
5191 
5192   IF l_debug_level > 0 THEN
5193       oe_debug_pub.add('l_order_adj_total : ' || l_order_adj_total);
5194       oe_debug_pub.add('EXITING OE_HEADER_ADJ_UTIL.GET_REC_ORDER_ADJ_TOTAL');
5195   END IF;
5196 
5197   Return l_order_adj_total;
5198 
5199 EXCEPTION
5200    WHEN NO_DATA_FOUND THEN
5201       RETURN NULL;
5202 END get_rec_order_adj_total;
5203 
5204 END OE_Header_Adj_Util;