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.11.12020000.5 2013/01/23 06:27:14 kadiraju 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 		-- sol_ord_er #16014165
1698         IF l_return_status <> FND_API.G_RET_STS_SUCCESS
1699 		THEN
1700 			RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1701 		END IF;
1702 		oe_delayed_requests_pvt.log_request(
1703 								 p_entity_code            => OE_GLOBALS.G_ENTITY_ALL,
1704 								 p_entity_id              => p_x_header_adj_rec.Header_Id,
1705 								 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
1706 								 p_requesting_entity_id   => p_x_header_adj_rec.Header_Id,
1707 								 p_request_type           => OE_GLOBALS.G_SERVICE_FIRST_PERIOD_BILL,
1708 								 p_request_unique_key1    => 'ORDER',
1709 								 p_param1                 => p_x_header_adj_rec.Header_Id,
1710 								 x_return_status          => l_return_status);
1711 		-- sol_ord_er #16014165 end
1712 	     END IF;
1713 
1714 		l_price_flag := FALSE;
1715 	End If;
1716 
1717 	IF l_return_status <> FND_API.G_RET_STS_SUCCESS
1718 	THEN
1719 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1720 	END IF;
1721 
1722         IF (l_verify_payment_flag = 'Y') THEN
1723            --Start bug#5961160
1724            -- Query the Order Header
1725            IF l_debug_level  > 0 THEN
1726               oe_debug_pub.add( 'OEXUHADB: BEFORE QUERYING HEADER ID : '|| p_x_header_adj_rec.header_id ) ;
1727            END IF;
1728 
1729            OE_Header_UTIL.Query_Row
1730              (p_header_id               => p_x_header_adj_rec.header_id
1731              ,x_header_rec              => l_header_rec
1732               );
1733 
1734            IF l_debug_level  > 0
1735            THEN
1736               OE_DEBUG_PUB.ADD('after query header ');
1737               OE_DEBUG_PUB.ADD(' ');
1738               OE_DEBUG_PUB.ADD('================================================');
1739               OE_DEBUG_PUB.ADD('Header ID           = '|| l_header_rec.header_id );
1740               OE_DEBUG_PUB.ADD('order_category_code = '|| l_header_rec.order_category_code );
1741               OE_DEBUG_PUB.ADD('Booked flag         = '|| l_header_rec.booked_flag );
1742               OE_DEBUG_PUB.ADD('Order number        = '|| l_header_rec.order_number );
1743               OE_DEBUG_PUB.ADD('payment_term_id     = '|| l_header_rec.payment_term_id );
1744               OE_DEBUG_PUB.ADD('order_type_id       = '|| l_header_rec.order_type_id );
1745               OE_DEBUG_PUB.ADD(' ');
1746               OE_DEBUG_PUB.ADD('================================================');
1747            END IF;
1748 
1749            -- Call Which_Rule function to find out Which Rule to Apply
1750            IF l_debug_level  > 0 THEN
1751               oe_debug_pub.add( 'OEXUHADB: BEFORE CALLING WHICH RULE ' ) ;
1752            END IF;
1753 
1754            l_calling_action := OE_Verify_Payment_PUB.Which_Rule(p_header_id => p_x_header_adj_rec.header_id);
1755 
1756            IF l_debug_level  > 0 THEN
1757              oe_debug_pub.add( 'OEXUHADB: RULE TO BE USED IS : '|| l_calling_action ) ;
1758            END IF;
1759 
1760            IF l_debug_level  > 0 THEN
1761               oe_debug_pub.add( 'OEXUHADB: BEFORE CHECKING IF THE RULE IS DEFINED OR NOT' ) ;
1762            END IF;
1763 
1764            l_rule_defined := OE_Verify_Payment_PUB.Check_Rule_Defined
1765                                 ( p_header_rec     => l_header_rec
1766                                 , p_calling_action => l_calling_action
1767                                 ) ;
1768 
1769            IF l_debug_level  > 0 THEN
1770               oe_debug_pub.add( 'OEXUHADB: OUT OF RULE DEFINED : '|| l_rule_defined);
1771            END IF;
1772 
1773            IF l_rule_defined = 'Y' THEN
1774               l_credit_check_rule_id := NULL ;
1775 
1776               -- Check the Rule to Apply
1777               IF l_debug_level  > 0 THEN
1778                  oe_debug_pub.add( 'Before L_CREDIT_CHECK_RULE_ID => '|| l_credit_check_rule_id ) ;
1779               END IF;
1780 
1781               OE_CREDIT_CHECK_UTIL.Get_Credit_Check_Rule_ID
1782                ( p_calling_action        => l_calling_action
1783                , p_order_type_id         => l_header_rec.order_type_id
1784                , x_credit_rule_id        => l_credit_check_rule_id
1785                 );
1786 
1787               IF l_debug_level  > 0 THEN
1788                  oe_debug_pub.add( 'After L_CREDIT_CHECK_RULE_ID => '|| l_credit_check_rule_id ) ;
1789               END IF;
1790 
1791               OE_CREDIT_CHECK_UTIL.GET_credit_check_rule
1792                ( p_credit_check_rule_id   => l_credit_check_rule_id
1793                , x_credit_check_rules_rec => l_credit_check_rule_rec
1794                 );
1795 
1796               IF l_debug_level  > 0 THEN
1797                  oe_debug_pub.add( 'OEXUHADB: INCL FREIGHT CHARGE FLAG : '|| l_credit_check_rule_rec.incl_freight_charges_flag);
1798               END IF;
1799 
1800               IF NVL(l_credit_check_rule_rec.incl_freight_charges_flag,'N') = 'Y' THEN
1801               -- Log a request for Verify Payment
1802                  oe_debug_pub.add('OEXUHADB: Logging Delayed Request for Verify Payment',3);
1803                  OE_delayed_requests_Pvt.log_request
1804                   (p_entity_code            => OE_GLOBALS.G_ENTITY_ALL,
1805                    p_entity_id              => p_x_header_adj_rec.header_id,
1806                    p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1807                    p_requesting_entity_id   => p_x_header_adj_rec.header_id,
1808                    p_request_type           => OE_GLOBALS.G_VERIFY_PAYMENT,
1809                    x_return_status          => l_return_status);
1810 	      --CC Reversal ER#16014135 Start
1811 	      ELSIF OE_VERIFY_PAYMENT_PUB.Get_CC_Rev_Reauth_Code(p_x_header_adj_rec.header_id) IS NOT NULL THEN
1812                 IF l_debug_level  > 0 THEN
1813                   oe_debug_pub.ADD('OEXUHADB: Logging delayed request for Verify Payment CC Reversal',5);
1814                 END IF;
1815 	        oe_verify_payment_pub.G_credit_check_flag := 'N' ;
1816                 OE_delayed_requests_Pvt.log_request
1817                 (p_entity_code            => OE_GLOBALS.G_ENTITY_ALL,
1818                  p_entity_id              => p_x_header_adj_rec.header_id,
1819                  p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1820                  p_requesting_entity_id   => p_x_header_adj_rec.header_id,
1821                  p_request_type           => OE_GLOBALS.G_VERIFY_PAYMENT,
1822                  x_return_status          => l_return_status);
1823 	      --CC Reversal ER#16014135 End
1824               END IF;
1825 			--CC Reversal ER#16014135 Start
1826 			ELSIF OE_VERIFY_PAYMENT_PUB.Get_CC_Rev_Reauth_Code(p_x_header_adj_rec.header_id) IS NOT NULL THEN
1827 			-- if no rule defined .. Need to log verify payment request for processing authorization.
1828 			    IF l_debug_level  > 0 THEN
1829                   oe_debug_pub.ADD('OEXUHADB: Logging delayed request for Verify Payment CC Reversal when rule not exists',5);
1830                 END IF;
1831 	            oe_verify_payment_pub.G_credit_check_flag := 'N' ;
1832                 OE_delayed_requests_Pvt.log_request
1833                 (p_entity_code            => OE_GLOBALS.G_ENTITY_ALL,
1834                  p_entity_id              => p_x_header_adj_rec.header_id,
1835                  p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1836                  p_requesting_entity_id   => p_x_header_adj_rec.header_id,
1837                  p_request_type           => OE_GLOBALS.G_VERIFY_PAYMENT,
1838                  x_return_status          => l_return_status);
1839 			--CC Reversal ER#16014135 End
1840            END IF;
1841            --End bug#5961160
1842         END IF;
1843 
1844 	IF l_return_status <> FND_API.G_RET_STS_SUCCESS
1845 	THEN
1846 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1847 	END IF;
1848 
1849     IF l_debug_level  > 0 THEN
1850         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.APPLY_ATTRIBUTE_CHANGES' , 1 ) ;
1851     END IF;
1852 
1853 END Apply_Attribute_Changes;
1854 
1855 --  Procedure Complete_Record
1856 
1857 PROCEDURE Complete_Record
1858 (   p_x_Header_Adj_rec              IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
1859 ,   p_old_Header_Adj_rec            IN  OE_Order_PUB.Header_Adj_Rec_Type
1860 )
1861 IS
1862 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type := p_x_Header_Adj_rec;
1863 --
1864 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1865 --
1866 BEGIN
1867 
1868     IF l_debug_level  > 0 THEN
1869         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.COMPLETE_RECORD' , 1 ) ;
1870     END IF;
1871 
1872     IF l_Header_Adj_rec.price_adjustment_id = FND_API.G_MISS_NUM THEN
1873         l_Header_Adj_rec.price_adjustment_id := p_old_Header_Adj_rec.price_adjustment_id;
1874     END IF;
1875 
1876     IF l_Header_Adj_rec.creation_date = FND_API.G_MISS_DATE THEN
1877         l_Header_Adj_rec.creation_date := p_old_Header_Adj_rec.creation_date;
1878     END IF;
1879 
1880     IF l_Header_Adj_rec.created_by = FND_API.G_MISS_NUM THEN
1881         l_Header_Adj_rec.created_by := p_old_Header_Adj_rec.created_by;
1882     END IF;
1883 
1884     IF l_Header_Adj_rec.last_update_date = FND_API.G_MISS_DATE THEN
1885         l_Header_Adj_rec.last_update_date := p_old_Header_Adj_rec.last_update_date;
1886     END IF;
1887 
1888     IF l_Header_Adj_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1889         l_Header_Adj_rec.last_updated_by := p_old_Header_Adj_rec.last_updated_by;
1890     END IF;
1891 
1892     IF l_Header_Adj_rec.last_update_login = FND_API.G_MISS_NUM THEN
1893         l_Header_Adj_rec.last_update_login := p_old_Header_Adj_rec.last_update_login;
1894     END IF;
1895 
1896     IF l_Header_Adj_rec.program_application_id = FND_API.G_MISS_NUM THEN
1897         l_Header_Adj_rec.program_application_id := p_old_Header_Adj_rec.program_application_id;
1898     END IF;
1899 
1900     IF l_Header_Adj_rec.program_id = FND_API.G_MISS_NUM THEN
1901         l_Header_Adj_rec.program_id := p_old_Header_Adj_rec.program_id;
1902     END IF;
1903 
1904     IF l_Header_Adj_rec.program_update_date = FND_API.G_MISS_DATE THEN
1905         l_Header_Adj_rec.program_update_date := p_old_Header_Adj_rec.program_update_date;
1906     END IF;
1907 
1908     IF l_Header_Adj_rec.request_id = FND_API.G_MISS_NUM THEN
1909         l_Header_Adj_rec.request_id := p_old_Header_Adj_rec.request_id;
1910     END IF;
1911 
1912     IF l_Header_Adj_rec.header_id = FND_API.G_MISS_NUM THEN
1913         l_Header_Adj_rec.header_id := p_old_Header_Adj_rec.header_id;
1914     END IF;
1915 
1916     IF l_Header_Adj_rec.discount_id = FND_API.G_MISS_NUM THEN
1917         l_Header_Adj_rec.discount_id := p_old_Header_Adj_rec.discount_id;
1918     END IF;
1919 
1920     IF l_Header_Adj_rec.discount_line_id = FND_API.G_MISS_NUM THEN
1921         l_Header_Adj_rec.discount_line_id := p_old_Header_Adj_rec.discount_line_id;
1922     END IF;
1923 
1924     IF l_Header_Adj_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
1925         l_Header_Adj_rec.automatic_flag := p_old_Header_Adj_rec.automatic_flag;
1926     END IF;
1927 
1928     IF l_Header_Adj_rec.percent = FND_API.G_MISS_NUM THEN
1929         l_Header_Adj_rec.percent := p_old_Header_Adj_rec.percent;
1930     END IF;
1931 
1932     IF l_Header_Adj_rec.line_id = FND_API.G_MISS_NUM THEN
1933         l_Header_Adj_rec.line_id := p_old_Header_Adj_rec.line_id;
1934     END IF;
1935 
1936     IF l_Header_Adj_rec.context = FND_API.G_MISS_CHAR THEN
1937         l_Header_Adj_rec.context := p_old_Header_Adj_rec.context;
1938     END IF;
1939 
1940     IF l_Header_Adj_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1941         l_Header_Adj_rec.attribute1 := p_old_Header_Adj_rec.attribute1;
1942     END IF;
1943 
1944     IF l_Header_Adj_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1945         l_Header_Adj_rec.attribute2 := p_old_Header_Adj_rec.attribute2;
1946     END IF;
1947 
1948     IF l_Header_Adj_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1949         l_Header_Adj_rec.attribute3 := p_old_Header_Adj_rec.attribute3;
1950     END IF;
1951 
1952     IF l_Header_Adj_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1953         l_Header_Adj_rec.attribute4 := p_old_Header_Adj_rec.attribute4;
1954     END IF;
1955 
1956     IF l_Header_Adj_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1957         l_Header_Adj_rec.attribute5 := p_old_Header_Adj_rec.attribute5;
1958     END IF;
1959 
1960     IF l_Header_Adj_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1961         l_Header_Adj_rec.attribute6 := p_old_Header_Adj_rec.attribute6;
1962     END IF;
1963 
1964     IF l_Header_Adj_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1965         l_Header_Adj_rec.attribute7 := p_old_Header_Adj_rec.attribute7;
1966     END IF;
1967 
1968     IF l_Header_Adj_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1969         l_Header_Adj_rec.attribute8 := p_old_Header_Adj_rec.attribute8;
1970     END IF;
1971 
1972     IF l_Header_Adj_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1973         l_Header_Adj_rec.attribute9 := p_old_Header_Adj_rec.attribute9;
1974     END IF;
1975 
1976     IF l_Header_Adj_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1977         l_Header_Adj_rec.attribute10 := p_old_Header_Adj_rec.attribute10;
1978     END IF;
1979 
1980     IF l_Header_Adj_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1981         l_Header_Adj_rec.attribute11 := p_old_Header_Adj_rec.attribute11;
1982     END IF;
1983 
1984     IF l_Header_Adj_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1985         l_Header_Adj_rec.attribute12 := p_old_Header_Adj_rec.attribute12;
1986     END IF;
1987 
1988     IF l_Header_Adj_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1989         l_Header_Adj_rec.attribute13 := p_old_Header_Adj_rec.attribute13;
1990     END IF;
1991 
1992     IF l_Header_Adj_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1993         l_Header_Adj_rec.attribute14 := p_old_Header_Adj_rec.attribute14;
1994     END IF;
1995 
1996     IF l_Header_Adj_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1997         l_Header_Adj_rec.attribute15 := p_old_Header_Adj_rec.attribute15;
1998     END IF;
1999 
2000     IF l_Header_Adj_rec.adjusted_amount = FND_API.G_MISS_NUM THEN
2001       l_Header_Adj_rec.adjusted_amount := p_old_Header_Adj_rec.adjusted_amount;
2002     END IF;
2003 
2004     IF l_Header_Adj_rec.pricing_phase_id = FND_API.G_MISS_NUM THEN
2005     l_Header_Adj_rec.pricing_phase_id := p_old_Header_Adj_rec.pricing_phase_id;
2006     END IF;
2007 
2008     IF l_Header_Adj_rec.list_header_id = FND_API.G_MISS_NUM THEN
2009         l_Header_Adj_rec.list_header_id := p_old_Header_Adj_rec.list_header_id;
2010     END IF;
2011 
2012     IF l_Header_Adj_rec.list_line_id = FND_API.G_MISS_NUM THEN
2013         l_Header_Adj_rec.list_line_id := p_old_Header_Adj_rec.list_line_id;
2014     END IF;
2015     IF l_Header_Adj_rec.modified_from = FND_API.G_MISS_CHAR THEN
2016         l_Header_Adj_rec.modified_from := p_old_Header_Adj_rec.modified_from;
2017     END IF;
2018     IF l_Header_Adj_rec.modified_to = FND_API.G_MISS_CHAR THEN
2019         l_Header_Adj_rec.modified_to := p_old_Header_Adj_rec.modified_from;
2020     END IF;
2021 
2022     IF l_Header_Adj_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
2023         l_Header_Adj_rec.list_line_type_code := p_old_Header_Adj_rec.list_line_type_code;
2024     END IF;
2025 
2026     IF l_Header_Adj_rec.updated_flag = FND_API.G_MISS_CHAR THEN
2027         l_Header_Adj_rec.updated_flag := p_old_Header_Adj_rec.updated_flag;
2028     END IF;
2029 
2030     IF l_Header_Adj_rec.update_allowed = FND_API.G_MISS_CHAR THEN
2031         l_Header_Adj_rec.update_allowed := p_old_Header_Adj_rec.update_allowed;
2032     END IF;
2033 
2034     IF l_Header_Adj_rec.applied_flag = FND_API.G_MISS_CHAR THEN
2035         l_Header_Adj_rec.applied_flag := p_old_Header_Adj_rec.applied_flag;
2036     END IF;
2037 
2038     IF l_Header_Adj_rec.modifier_mechanism_type_code = FND_API.G_MISS_CHAR THEN
2039         l_Header_Adj_rec.modifier_mechanism_type_code := p_old_Header_Adj_rec.modifier_mechanism_type_code;
2040     END IF;
2041 
2042     IF l_Header_Adj_rec.change_reason_code = FND_API.G_MISS_CHAR THEN
2043         l_Header_Adj_rec.change_reason_code := p_old_Header_Adj_rec.change_reason_code;
2044     END IF;
2045 
2046     IF l_Header_Adj_rec.change_reason_text = FND_API.G_MISS_CHAR THEN
2047         l_Header_Adj_rec.change_reason_text := p_old_Header_Adj_rec.change_reason_text;
2048     END IF;
2049 
2050     IF l_Header_Adj_rec.arithmetic_operator = FND_API.G_MISS_CHAR THEN
2051         l_Header_Adj_rec.arithmetic_operator := p_old_Header_Adj_rec.arithmetic_operator;
2052     END IF;
2053 
2054     IF l_Header_Adj_rec.operand = FND_API.G_MISS_NUM THEN
2055         l_Header_Adj_rec.operand := p_old_Header_Adj_rec.operand;
2056     END IF;
2057 
2058 	IF l_Header_Adj_rec.cost_id = FND_API.G_MISS_NUM THEN
2059 	    l_Header_Adj_rec.cost_id :=  p_old_Header_Adj_rec.cost_id;
2060 	END IF;
2061 
2062 	IF l_Header_Adj_rec.tax_code = FND_API.G_MISS_CHAR THEN
2063 	    l_Header_Adj_rec.tax_code := p_old_Header_Adj_rec.tax_code;
2064 	END IF;
2065 
2066 	IF l_Header_Adj_rec.tax_exempt_flag = FND_API.G_MISS_CHAR THEN
2067 	    l_Header_Adj_rec.tax_exempt_flag :=
2068 	    p_old_Header_Adj_rec.tax_exempt_flag;
2069 	END IF;
2070 
2071 	IF l_Header_Adj_rec.tax_exempt_number = FND_API.G_MISS_CHAR THEN
2072 	    l_Header_Adj_rec.tax_exempt_number :=
2073 	    p_old_Header_Adj_rec.tax_exempt_number;
2074 	END IF;
2075 
2076 	IF l_Header_Adj_rec.tax_exempt_reason_code = FND_API.G_MISS_CHAR THEN
2077 	    l_Header_Adj_rec.tax_exempt_reason_code :=
2078 	    p_old_Header_Adj_rec.tax_exempt_reason_code;
2079 	END IF;
2080 
2081 	IF l_Header_Adj_rec.parent_adjustment_id = FND_API.G_MISS_NUM THEN
2082 	    l_Header_Adj_rec.parent_adjustment_id :=
2083 	    p_old_Header_Adj_rec.parent_adjustment_id;
2084 	END IF;
2085 
2086 	IF l_Header_Adj_rec.invoiced_flag = FND_API.G_MISS_CHAR THEN
2087 	    l_Header_Adj_rec.invoiced_flag :=
2088 	    p_old_Header_Adj_rec.invoiced_flag;
2089 	END IF;
2090 
2091 	IF l_Header_Adj_rec.estimated_flag = FND_API.G_MISS_CHAR THEN
2092 	    l_Header_Adj_rec.estimated_flag :=
2093 	    p_old_Header_Adj_rec.estimated_flag;
2094 	END IF;
2095 
2096 	IF l_Header_Adj_rec.inc_in_sales_performance = FND_API.G_MISS_CHAR THEN
2097 	    l_Header_Adj_rec.inc_in_sales_performance :=
2098 	    p_old_Header_Adj_rec.inc_in_sales_performance;
2099 	END IF;
2100 
2101 	IF l_Header_Adj_rec.split_action_code = FND_API.G_MISS_CHAR THEN
2102 	    l_Header_Adj_rec.split_action_code :=
2103 	    p_old_Header_Adj_rec.split_action_code;
2104 	END IF;
2105 
2106 	IF l_Header_Adj_rec.charge_type_code = FND_API.G_MISS_CHAR THEN
2107 	    l_Header_Adj_rec.charge_type_code :=
2108 	    p_old_Header_Adj_rec.charge_type_code;
2109 	END IF;
2110 
2111 	IF l_Header_Adj_rec.charge_subtype_code = FND_API.G_MISS_CHAR THEN
2112 	    l_Header_Adj_rec.charge_subtype_code :=
2113 	    p_old_Header_Adj_rec.charge_subtype_code;
2114 	END IF;
2115 
2116 	IF l_Header_Adj_rec.list_line_no = FND_API.G_MISS_CHAR THEN
2117 	    l_Header_Adj_rec.list_line_no :=
2118 	    p_old_Header_Adj_rec.list_line_no;
2119 	END IF;
2120 
2121 	IF l_Header_Adj_rec.source_system_code = FND_API.G_MISS_CHAR THEN
2122 	    l_Header_Adj_rec.source_system_code :=
2123 	    p_old_Header_Adj_rec.source_system_code;
2124 	END IF;
2125 
2126 	IF l_Header_Adj_rec.benefit_qty = FND_API.G_MISS_NUM THEN
2127 	    l_Header_Adj_rec.benefit_qty :=
2128 	    p_old_Header_Adj_rec.benefit_qty;
2129 	END IF;
2130 
2131 	IF l_Header_Adj_rec.benefit_uom_code = FND_API.G_MISS_CHAR THEN
2132 	    l_Header_Adj_rec.benefit_uom_code :=
2133 	    p_old_Header_Adj_rec.benefit_uom_code;
2134 	END IF;
2135 
2136 	IF l_Header_Adj_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
2137 	    l_Header_Adj_rec.print_on_invoice_flag :=
2138 	    p_old_Header_Adj_rec.print_on_invoice_flag;
2139 	END IF;
2140 
2141 	IF l_Header_Adj_rec.expiration_date = FND_API.G_MISS_DATE THEN
2142 	    l_Header_Adj_rec.expiration_date :=
2143 	    p_old_Header_Adj_rec.expiration_date;
2144 	END IF;
2145 
2146 	IF l_Header_Adj_rec.rebate_transaction_type_code = FND_API.G_MISS_CHAR THEN
2147 	    l_Header_Adj_rec.rebate_transaction_type_code :=
2148 	    p_old_Header_Adj_rec.rebate_transaction_type_code;
2149 	END IF;
2150 
2151 	IF l_Header_Adj_rec.rebate_transaction_reference = FND_API.G_MISS_CHAR THEN
2152 	    l_Header_Adj_rec.rebate_transaction_reference :=
2153 	    p_old_Header_Adj_rec.rebate_transaction_reference;
2154 	END IF;
2155 
2156 	IF l_Header_Adj_rec.rebate_payment_system_code = FND_API.G_MISS_CHAR THEN
2157 	    l_Header_Adj_rec.rebate_payment_system_code :=
2158 	    p_old_Header_Adj_rec.rebate_payment_system_code;
2159 	END IF;
2160 
2161 	IF l_Header_Adj_rec.redeemed_date = FND_API.G_MISS_DATE THEN
2162 	    l_Header_Adj_rec.redeemed_date :=
2163 	    p_old_Header_Adj_rec.redeemed_date;
2164 	END IF;
2165 
2166 	IF l_Header_Adj_rec.redeemed_flag = FND_API.G_MISS_CHAR THEN
2167 	    l_Header_Adj_rec.redeemed_flag :=
2168 	    p_old_Header_Adj_rec.redeemed_flag;
2169 	END IF;
2170 
2171 	IF l_Header_Adj_rec.accrual_flag = FND_API.G_MISS_CHAR THEN
2172 	    l_Header_Adj_rec.accrual_flag :=
2173 	    p_old_Header_Adj_rec.accrual_flag;
2174 	END IF;
2175 
2176 	IF l_Header_Adj_rec.range_break_quantity = FND_API.G_MISS_NUM THEN
2177 	    l_Header_Adj_rec.range_break_quantity :=
2178 	    p_old_Header_Adj_rec.range_break_quantity;
2179 	END IF;
2180 
2181 	IF l_Header_Adj_rec.accrual_conversion_rate = FND_API.G_MISS_NUM THEN
2182 	    l_Header_Adj_rec.accrual_conversion_rate :=
2183 	    p_old_Header_Adj_rec.accrual_conversion_rate;
2184 	END IF;
2185 
2186 	IF l_Header_Adj_rec.pricing_group_sequence = FND_API.G_MISS_NUM THEN
2187 	    l_Header_Adj_rec.pricing_group_sequence :=
2188 	    p_old_Header_Adj_rec.pricing_group_sequence;
2189 	END IF;
2190 
2191 	IF l_Header_Adj_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
2192 	    l_Header_Adj_rec.modifier_level_code :=
2193 	    p_old_Header_Adj_rec.modifier_level_code;
2194 	END IF;
2195 
2196 	IF l_Header_Adj_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
2197 	    l_Header_Adj_rec.price_break_type_code :=
2198 	    p_old_Header_Adj_rec.price_break_type_code;
2199 	END IF;
2200 
2201 	IF l_Header_Adj_rec.substitution_attribute = FND_API.G_MISS_CHAR THEN
2202 	    l_Header_Adj_rec.substitution_attribute :=
2203 	    p_old_Header_Adj_rec.substitution_attribute;
2204 	END IF;
2205 
2206 	IF l_Header_Adj_rec.proration_type_code = FND_API.G_MISS_CHAR THEN
2207 	    l_Header_Adj_rec.proration_type_code :=
2208 	    p_old_Header_Adj_rec.proration_type_code;
2209 	END IF;
2210 
2211 	IF l_Header_Adj_rec.credit_or_charge_flag = FND_API.G_MISS_CHAR THEN
2212 	    l_Header_Adj_rec.credit_or_charge_flag :=
2213 	    p_old_Header_Adj_rec.credit_or_charge_flag;
2214 	END IF;
2215 
2216 	IF l_Header_Adj_rec.include_on_returns_flag = FND_API.G_MISS_CHAR THEN
2217 	    l_Header_Adj_rec.include_on_returns_flag :=
2218 	    p_old_Header_Adj_rec.include_on_returns_flag;
2219 	END IF;
2220 
2221 
2222     IF l_Header_Adj_rec.ac_context = FND_API.G_MISS_CHAR THEN
2223         l_Header_Adj_rec.ac_context := p_old_Header_Adj_rec.ac_context;
2224     END IF;
2225 
2226     IF l_Header_Adj_rec.ac_attribute1 = FND_API.G_MISS_CHAR THEN
2227         l_Header_Adj_rec.ac_attribute1 := p_old_Header_Adj_rec.ac_attribute1;
2228     END IF;
2229 
2230     IF l_Header_Adj_rec.ac_attribute2 = FND_API.G_MISS_CHAR THEN
2231         l_Header_Adj_rec.ac_attribute2 := p_old_Header_Adj_rec.ac_attribute2;
2232     END IF;
2233 
2234     IF l_Header_Adj_rec.ac_attribute3 = FND_API.G_MISS_CHAR THEN
2235         l_Header_Adj_rec.ac_attribute3 := p_old_Header_Adj_rec.ac_attribute3;
2236     END IF;
2237 
2238     IF l_Header_Adj_rec.ac_attribute4 = FND_API.G_MISS_CHAR THEN
2239         l_Header_Adj_rec.ac_attribute4 := p_old_Header_Adj_rec.ac_attribute4;
2240     END IF;
2241 
2242     IF l_Header_Adj_rec.ac_attribute5 = FND_API.G_MISS_CHAR THEN
2243         l_Header_Adj_rec.ac_attribute5 := p_old_Header_Adj_rec.ac_attribute5;
2244     END IF;
2245 
2246     IF l_Header_Adj_rec.ac_attribute6 = FND_API.G_MISS_CHAR THEN
2247         l_Header_Adj_rec.ac_attribute6 := p_old_Header_Adj_rec.ac_attribute6;
2248     END IF;
2249 
2250     IF l_Header_Adj_rec.ac_attribute7 = FND_API.G_MISS_CHAR THEN
2251         l_Header_Adj_rec.ac_attribute7 := p_old_Header_Adj_rec.ac_attribute7;
2252     END IF;
2253 
2254     IF l_Header_Adj_rec.ac_attribute8 = FND_API.G_MISS_CHAR THEN
2255         l_Header_Adj_rec.ac_attribute8 := p_old_Header_Adj_rec.ac_attribute8;
2256     END IF;
2257 
2258     IF l_Header_Adj_rec.ac_attribute9 = FND_API.G_MISS_CHAR THEN
2259         l_Header_Adj_rec.ac_attribute9 := p_old_Header_Adj_rec.ac_attribute9;
2260     END IF;
2261 
2262     IF l_Header_Adj_rec.ac_attribute10 = FND_API.G_MISS_CHAR THEN
2263         l_Header_Adj_rec.ac_attribute10 := p_old_Header_Adj_rec.ac_attribute10;
2264     END IF;
2265 
2266     IF l_Header_Adj_rec.ac_attribute11 = FND_API.G_MISS_CHAR THEN
2267         l_Header_Adj_rec.ac_attribute11 := p_old_Header_Adj_rec.ac_attribute11;
2268     END IF;
2269 
2270     IF l_Header_Adj_rec.ac_attribute12 = FND_API.G_MISS_CHAR THEN
2271         l_Header_Adj_rec.ac_attribute12 := p_old_Header_Adj_rec.ac_attribute12;
2272     END IF;
2273 
2274     IF l_Header_Adj_rec.ac_attribute13 = FND_API.G_MISS_CHAR THEN
2275         l_Header_Adj_rec.ac_attribute13 := p_old_Header_Adj_rec.ac_attribute13;
2276     END IF;
2277 
2278     IF l_Header_Adj_rec.ac_attribute14 = FND_API.G_MISS_CHAR THEN
2279         l_Header_Adj_rec.ac_attribute14 := p_old_Header_Adj_rec.ac_attribute14;
2280     END IF;
2281 
2282     IF l_Header_Adj_rec.ac_attribute15 = FND_API.G_MISS_CHAR THEN
2283         l_Header_Adj_rec.ac_attribute15 := p_old_Header_Adj_rec.ac_attribute15;
2284     END IF;
2285     --uom begin
2286      IF l_Header_Adj_rec.OPERAND_PER_PQTY = FND_API.G_MISS_NUM THEN
2287  --bug 3063549
2288  --l_Header_Adj_rec.OPERAND_PER_PQTY := p_old_Header_Adj_rec.OPERAND_PER_PQTY;
2289    l_Header_Adj_rec.OPERAND_PER_PQTY := NULL;
2290      END IF;
2291 
2292      IF l_Header_Adj_rec.ADJUSTED_AMOUNT_PER_PQTY = FND_API.G_MISS_NUM THEN
2293        l_Header_Adj_rec.ADJUSTED_AMOUNT_PER_PQTY := p_old_Header_Adj_rec.ADJUSTED_AMOUNT_PER_PQTY;
2294      END IF;
2295     --uom end
2296 
2297      IF l_Header_Adj_rec.INVOICED_AMOUNT = FND_API.G_MISS_NUM THEN
2298        l_Header_Adj_rec.INVOICED_AMOUNT := p_old_Header_Adj_rec.INVOICED_AMOUNT;
2299      END IF;
2300 
2301     --12611888 start
2302     If l_Header_Adj_rec.tax_rate_id  = FND_API.G_MISS_NUM THEN
2303        l_Header_Adj_rec.tax_rate_id := p_old_Header_Adj_rec.tax_rate_id;
2304     END IF;
2305     --12611888 end
2306 
2307 
2308     IF l_debug_level  > 0 THEN
2309         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.COMPLETE_RECORD' , 1 ) ;
2310     END IF;
2311 
2312     -- RETURN l_Header_Adj_rec;
2313     p_x_Header_Adj_rec := l_Header_Adj_rec;
2314 
2315 END Complete_Record;
2316 
2317 --  Procedure Convert_Miss_To_Null
2318 
2319 PROCEDURE Convert_Miss_To_Null
2320 (   p_x_Header_Adj_rec                IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
2321 )
2322 IS
2323 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type := p_x_Header_Adj_rec;
2324 --
2325 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2326 --
2327 BEGIN
2328 
2329     IF l_debug_level  > 0 THEN
2330         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.CONVERT_MISS_TO_NULL' , 1 ) ;
2331     END IF;
2332 
2333     IF l_Header_Adj_rec.price_adjustment_id = FND_API.G_MISS_NUM THEN
2334         l_Header_Adj_rec.price_adjustment_id := NULL;
2335     END IF;
2336 
2337     IF l_Header_Adj_rec.creation_date = FND_API.G_MISS_DATE THEN
2338         l_Header_Adj_rec.creation_date := NULL;
2339     END IF;
2340 
2341     IF l_Header_Adj_rec.created_by = FND_API.G_MISS_NUM THEN
2342         l_Header_Adj_rec.created_by := NULL;
2343     END IF;
2344 
2345     IF l_Header_Adj_rec.last_update_date = FND_API.G_MISS_DATE THEN
2346         l_Header_Adj_rec.last_update_date := NULL;
2347     END IF;
2348 
2349     IF l_Header_Adj_rec.last_updated_by = FND_API.G_MISS_NUM THEN
2350         l_Header_Adj_rec.last_updated_by := NULL;
2351     END IF;
2352 
2353     IF l_Header_Adj_rec.last_update_login = FND_API.G_MISS_NUM THEN
2354         l_Header_Adj_rec.last_update_login := NULL;
2355     END IF;
2356 
2357     IF l_Header_Adj_rec.program_application_id = FND_API.G_MISS_NUM THEN
2358         l_Header_Adj_rec.program_application_id := NULL;
2359     END IF;
2360 
2361     IF l_Header_Adj_rec.program_id = FND_API.G_MISS_NUM THEN
2362         l_Header_Adj_rec.program_id := NULL;
2363     END IF;
2364 
2365     IF l_Header_Adj_rec.program_update_date = FND_API.G_MISS_DATE THEN
2366         l_Header_Adj_rec.program_update_date := NULL;
2367     END IF;
2368 
2369     IF l_Header_Adj_rec.request_id = FND_API.G_MISS_NUM THEN
2370         l_Header_Adj_rec.request_id := NULL;
2371     END IF;
2372 
2373     IF l_Header_Adj_rec.header_id = FND_API.G_MISS_NUM THEN
2374         l_Header_Adj_rec.header_id := NULL;
2375     END IF;
2376 
2377     IF l_Header_Adj_rec.discount_id = FND_API.G_MISS_NUM THEN
2378         l_Header_Adj_rec.discount_id := NULL;
2379     END IF;
2380 
2381     IF l_Header_Adj_rec.discount_line_id = FND_API.G_MISS_NUM THEN
2382         l_Header_Adj_rec.discount_line_id := NULL;
2383     END IF;
2384 
2385     IF l_Header_Adj_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
2386         l_Header_Adj_rec.automatic_flag := NULL;
2387     END IF;
2388 
2389     IF l_Header_Adj_rec.percent = FND_API.G_MISS_NUM THEN
2390         l_Header_Adj_rec.percent := NULL;
2391     END IF;
2392 
2393     IF l_Header_Adj_rec.line_id = FND_API.G_MISS_NUM THEN
2394         l_Header_Adj_rec.line_id := NULL;
2395     END IF;
2396 
2397     IF l_Header_Adj_rec.context = FND_API.G_MISS_CHAR THEN
2398         l_Header_Adj_rec.context := NULL;
2399     END IF;
2400 
2401     IF l_Header_Adj_rec.attribute1 = FND_API.G_MISS_CHAR THEN
2402         l_Header_Adj_rec.attribute1 := NULL;
2403     END IF;
2404 
2405     IF l_Header_Adj_rec.attribute2 = FND_API.G_MISS_CHAR THEN
2406         l_Header_Adj_rec.attribute2 := NULL;
2407     END IF;
2408 
2409     IF l_Header_Adj_rec.attribute3 = FND_API.G_MISS_CHAR THEN
2410         l_Header_Adj_rec.attribute3 := NULL;
2411     END IF;
2412 
2413     IF l_Header_Adj_rec.attribute4 = FND_API.G_MISS_CHAR THEN
2414         l_Header_Adj_rec.attribute4 := NULL;
2415     END IF;
2416 
2417     IF l_Header_Adj_rec.attribute5 = FND_API.G_MISS_CHAR THEN
2418         l_Header_Adj_rec.attribute5 := NULL;
2419     END IF;
2420 
2421     IF l_Header_Adj_rec.attribute6 = FND_API.G_MISS_CHAR THEN
2422         l_Header_Adj_rec.attribute6 := NULL;
2423     END IF;
2424 
2425     IF l_Header_Adj_rec.attribute7 = FND_API.G_MISS_CHAR THEN
2426         l_Header_Adj_rec.attribute7 := NULL;
2427     END IF;
2428 
2429     IF l_Header_Adj_rec.attribute8 = FND_API.G_MISS_CHAR THEN
2430         l_Header_Adj_rec.attribute8 := NULL;
2431     END IF;
2432 
2433     IF l_Header_Adj_rec.attribute9 = FND_API.G_MISS_CHAR THEN
2434         l_Header_Adj_rec.attribute9 := NULL;
2435     END IF;
2436 
2437     IF l_Header_Adj_rec.attribute10 = FND_API.G_MISS_CHAR THEN
2438         l_Header_Adj_rec.attribute10 := NULL;
2439     END IF;
2440 
2441     IF l_Header_Adj_rec.attribute11 = FND_API.G_MISS_CHAR THEN
2442         l_Header_Adj_rec.attribute11 := NULL;
2443     END IF;
2444 
2445     IF l_Header_Adj_rec.attribute12 = FND_API.G_MISS_CHAR THEN
2446         l_Header_Adj_rec.attribute12 := NULL;
2447     END IF;
2448 
2449     IF l_Header_Adj_rec.attribute13 = FND_API.G_MISS_CHAR THEN
2450         l_Header_Adj_rec.attribute13 := NULL;
2451     END IF;
2452 
2453     IF l_Header_Adj_rec.attribute14 = FND_API.G_MISS_CHAR THEN
2454         l_Header_Adj_rec.attribute14 := NULL;
2455     END IF;
2456 
2457     IF l_Header_Adj_rec.attribute15 = FND_API.G_MISS_CHAR THEN
2458         l_Header_Adj_rec.attribute15 := NULL;
2459     END IF;
2460 
2461     IF l_Header_Adj_rec.adjusted_amount = FND_API.G_MISS_NUM THEN
2462         l_Header_Adj_rec.adjusted_amount := NULL;
2463     END IF;
2464 
2465     IF l_Header_Adj_rec.pricing_phase_id = FND_API.G_MISS_NUM THEN
2466         l_Header_Adj_rec.pricing_phase_id := NULL;
2467     END IF;
2468 
2469     IF l_Header_Adj_rec.list_header_id = FND_API.G_MISS_NUM THEN
2470         l_Header_Adj_rec.list_header_id := NULL;
2471     END IF;
2472 
2473     IF l_Header_Adj_rec.list_line_id = FND_API.G_MISS_NUM THEN
2474         l_Header_Adj_rec.list_line_id := NULL;
2475     END IF;
2476     IF l_Header_Adj_rec.modified_from = FND_API.G_MISS_CHAR THEN
2477         l_Header_Adj_rec.modified_from := NULL;
2478     END IF;
2479 
2480     IF l_Header_Adj_rec.modified_to = FND_API.G_MISS_CHAR THEN
2481         l_Header_Adj_rec.modified_to := NULL;
2482     END IF;
2483 
2484     IF l_Header_Adj_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
2485         l_Header_Adj_rec.list_line_type_code := NULL;
2486     END IF;
2487 
2488     IF l_Header_Adj_rec.updated_flag = FND_API.G_MISS_CHAR THEN
2489         l_Header_Adj_rec.updated_flag := NULL;
2490     END IF;
2491 
2492     IF l_Header_Adj_rec.update_allowed = FND_API.G_MISS_CHAR THEN
2493         l_Header_Adj_rec.update_allowed := NULL;
2494     END IF;
2495 
2496     IF l_Header_Adj_rec.applied_flag = FND_API.G_MISS_CHAR THEN
2497         l_Header_Adj_rec.applied_flag := NULL;
2498     END IF;
2499 
2500     IF l_Header_Adj_rec.modifier_mechanism_type_code = FND_API.G_MISS_CHAR THEN
2501         l_Header_Adj_rec.modifier_mechanism_type_code := NULL;
2502     END IF;
2503 
2504     IF l_Header_Adj_rec.change_reason_code = FND_API.G_MISS_CHAR THEN
2505         l_Header_Adj_rec.change_reason_code := NULL;
2506     END IF;
2507 
2508     IF l_Header_Adj_rec.change_reason_text = FND_API.G_MISS_CHAR THEN
2509         l_Header_Adj_rec.change_reason_text := NULL ;
2510     END IF;
2511 
2512     IF l_Header_Adj_rec.arithmetic_operator = FND_API.G_MISS_CHAR THEN
2513         l_Header_Adj_rec.arithmetic_operator := NULL ;
2514     END IF;
2515 
2516     IF l_Header_Adj_rec.operand = FND_API.G_MISS_NUM THEN
2517         l_Header_Adj_rec.operand := NULL ;
2518     END IF;
2519 
2520 	IF l_Header_Adj_rec.cost_id = FND_API.G_MISS_NUM THEN
2521 	    l_Header_Adj_rec.cost_id := NULL ;
2522 	END IF;
2523 
2524 	IF l_Header_Adj_rec.tax_code = FND_API.G_MISS_CHAR THEN
2525 	    l_Header_Adj_rec.tax_code := NULL ;
2526 	END IF;
2527 
2528 	IF l_Header_Adj_rec.tax_exempt_flag = FND_API.G_MISS_CHAR THEN
2529 	    l_Header_Adj_rec.tax_exempt_flag := NULL ;
2530 	END IF;
2531 
2532 	IF l_Header_Adj_rec.tax_exempt_number = FND_API.G_MISS_CHAR THEN
2533 	    l_Header_Adj_rec.tax_exempt_number := NULL ;
2534 	END IF;
2535 
2536 	IF l_Header_Adj_rec.tax_exempt_reason_code = FND_API.G_MISS_CHAR THEN
2537 	    l_Header_Adj_rec.tax_exempt_reason_code := NULL ;
2538 	END IF;
2539 
2540 	IF l_Header_Adj_rec.parent_adjustment_id = FND_API.G_MISS_NUM THEN
2541 	    l_Header_Adj_rec.parent_adjustment_id := NULL ;
2542 	END IF;
2543 
2544 	IF l_Header_Adj_rec.invoiced_flag = FND_API.G_MISS_CHAR THEN
2545 	    l_Header_Adj_rec.invoiced_flag := NULL ;
2546 	END IF;
2547 
2548 	IF l_Header_Adj_rec.estimated_flag = FND_API.G_MISS_CHAR THEN
2549 	    l_Header_Adj_rec.estimated_flag := NULL ;
2550 	END IF;
2551 
2552 	IF l_Header_Adj_rec.inc_in_sales_performance = FND_API.G_MISS_CHAR THEN
2553 	    l_Header_Adj_rec.inc_in_sales_performance := NULL ;
2554 	END IF;
2555 
2556 	IF l_Header_Adj_rec.split_action_code = FND_API.G_MISS_CHAR THEN
2557 	    l_Header_Adj_rec.split_action_code := NULL ;
2558 	END IF;
2559 
2560 	IF l_Header_Adj_rec.charge_type_code = FND_API.G_MISS_CHAR THEN
2561 	    l_Header_Adj_rec.charge_type_code := NULL ;
2562 	END IF;
2563 
2564 	IF l_Header_Adj_rec.charge_subtype_code = FND_API.G_MISS_CHAR THEN
2565 	    l_Header_Adj_rec.charge_subtype_code := NULL ;
2566 	END IF;
2567 
2568 	IF l_Header_Adj_rec.list_line_no = FND_API.G_MISS_CHAR THEN
2569 	    l_Header_Adj_rec.list_line_no := NULL ;
2570 	END IF;
2571 
2572 	IF l_Header_Adj_rec.source_system_code = FND_API.G_MISS_CHAR THEN
2573 	    l_Header_Adj_rec.source_system_code := NULL ;
2574 	END IF;
2575 
2576 	IF l_Header_Adj_rec.benefit_qty = FND_API.G_MISS_NUM THEN
2577 	    l_Header_Adj_rec.benefit_qty := NULL ;
2578 	END IF;
2579 
2580 	IF l_Header_Adj_rec.benefit_uom_code = FND_API.G_MISS_CHAR THEN
2581 	    l_Header_Adj_rec.benefit_uom_code := NULL ;
2582 	END IF;
2583 
2584 	IF l_Header_Adj_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
2585 	    l_Header_Adj_rec.print_on_invoice_flag := NULL ;
2586 	END IF;
2587 
2588 	IF l_Header_Adj_rec.expiration_date = FND_API.G_MISS_DATE THEN
2589 	    l_Header_Adj_rec.expiration_date := NULL ;
2590 	END IF;
2591 
2592 	IF l_Header_Adj_rec.rebate_transaction_type_code = FND_API.G_MISS_CHAR THEN
2593 	    l_Header_Adj_rec.rebate_transaction_type_code := NULL ;
2594 	END IF;
2595 
2596 	IF l_Header_Adj_rec.rebate_transaction_reference = FND_API.G_MISS_CHAR THEN
2597 	    l_Header_Adj_rec.rebate_transaction_reference := NULL ;
2598 	END IF;
2599 
2600 	IF l_Header_Adj_rec.rebate_payment_system_code = FND_API.G_MISS_CHAR THEN
2601 	    l_Header_Adj_rec.rebate_payment_system_code := NULL ;
2602 	END IF;
2603 
2604 	IF l_Header_Adj_rec.redeemed_date = FND_API.G_MISS_DATE THEN
2605 	    l_Header_Adj_rec.redeemed_date := NULL ;
2606 	END IF;
2607 
2608 	IF l_Header_Adj_rec.redeemed_flag = FND_API.G_MISS_CHAR THEN
2609 	    l_Header_Adj_rec.redeemed_flag := NULL ;
2610 	END IF;
2611 
2612 	IF l_Header_Adj_rec.accrual_flag = FND_API.G_MISS_CHAR THEN
2613 	    l_Header_Adj_rec.accrual_flag := NULL ;
2614 	END IF;
2615 
2616 	IF l_Header_Adj_rec.range_break_quantity = FND_API.G_MISS_NUM THEN
2617 	    l_Header_Adj_rec.range_break_quantity := NULL ;
2618 	END IF;
2619 
2620 	IF l_Header_Adj_rec.accrual_conversion_rate = FND_API.G_MISS_NUM THEN
2621 	    l_Header_Adj_rec.accrual_conversion_rate := NULL ;
2622 	END IF;
2623 
2624 	IF l_Header_Adj_rec.pricing_group_sequence = FND_API.G_MISS_NUM THEN
2625 	    l_Header_Adj_rec.pricing_group_sequence := NULL ;
2626 	END IF;
2627 
2628 	IF l_Header_Adj_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
2629 	    l_Header_Adj_rec.modifier_level_code := NULL ;
2630 	END IF;
2631 
2632 	IF l_Header_Adj_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
2633 	    l_Header_Adj_rec.price_break_type_code := NULL ;
2634 	END IF;
2635 
2636 	IF l_Header_Adj_rec.substitution_attribute = FND_API.G_MISS_CHAR THEN
2637 	    l_Header_Adj_rec.substitution_attribute := NULL ;
2638 	END IF;
2639 
2640 	IF l_Header_Adj_rec.proration_type_code = FND_API.G_MISS_CHAR THEN
2641 	    l_Header_Adj_rec.proration_type_code := NULL ;
2642 	END IF;
2643 
2644 	IF l_Header_Adj_rec.credit_or_charge_flag = FND_API.G_MISS_CHAR THEN
2645 	    l_Header_Adj_rec.credit_or_charge_flag := NULL ;
2646 	END IF;
2647 
2648 	IF l_Header_Adj_rec.include_on_returns_flag = FND_API.G_MISS_CHAR THEN
2649 	    l_Header_Adj_rec.include_on_returns_flag := NULL ;
2650 	END IF;
2651 
2652     IF l_Header_Adj_rec.ac_context = FND_API.G_MISS_CHAR THEN
2653         l_Header_Adj_rec.ac_context := NULL;
2654     END IF;
2655 
2656     IF l_Header_Adj_rec.ac_attribute1 = FND_API.G_MISS_CHAR THEN
2657         l_Header_Adj_rec.ac_attribute1 := NULL;
2658     END IF;
2659 
2660     IF l_Header_Adj_rec.ac_attribute2 = FND_API.G_MISS_CHAR THEN
2661         l_Header_Adj_rec.ac_attribute2 := NULL;
2662     END IF;
2663 
2664     IF l_Header_Adj_rec.ac_attribute3 = FND_API.G_MISS_CHAR THEN
2665         l_Header_Adj_rec.ac_attribute3 := NULL;
2666     END IF;
2667 
2668     IF l_Header_Adj_rec.ac_attribute4 = FND_API.G_MISS_CHAR THEN
2669         l_Header_Adj_rec.ac_attribute4 := NULL;
2670     END IF;
2671 
2672     IF l_Header_Adj_rec.ac_attribute5 = FND_API.G_MISS_CHAR THEN
2673         l_Header_Adj_rec.ac_attribute5 := NULL;
2674     END IF;
2675 
2676     IF l_Header_Adj_rec.ac_attribute6 = FND_API.G_MISS_CHAR THEN
2677         l_Header_Adj_rec.ac_attribute6 := NULL;
2678     END IF;
2679 
2680     IF l_Header_Adj_rec.ac_attribute7 = FND_API.G_MISS_CHAR THEN
2681         l_Header_Adj_rec.ac_attribute7 := NULL;
2682     END IF;
2683 
2684     IF l_Header_Adj_rec.ac_attribute8 = FND_API.G_MISS_CHAR THEN
2685         l_Header_Adj_rec.ac_attribute8 := NULL;
2686     END IF;
2687 
2688     IF l_Header_Adj_rec.ac_attribute9 = FND_API.G_MISS_CHAR THEN
2689         l_Header_Adj_rec.ac_attribute9 := NULL;
2690     END IF;
2691 
2692     IF l_Header_Adj_rec.ac_attribute10 = FND_API.G_MISS_CHAR THEN
2693         l_Header_Adj_rec.ac_attribute10 := NULL;
2694     END IF;
2695 
2696     IF l_Header_Adj_rec.ac_attribute11 = FND_API.G_MISS_CHAR THEN
2697         l_Header_Adj_rec.ac_attribute11 := NULL;
2698     END IF;
2699 
2700     IF l_Header_Adj_rec.ac_attribute12 = FND_API.G_MISS_CHAR THEN
2701         l_Header_Adj_rec.ac_attribute12 := NULL;
2702     END IF;
2703 
2704     IF l_Header_Adj_rec.ac_attribute13 = FND_API.G_MISS_CHAR THEN
2705         l_Header_Adj_rec.ac_attribute13 := NULL;
2706     END IF;
2707 
2708     IF l_Header_Adj_rec.ac_attribute14 = FND_API.G_MISS_CHAR THEN
2709         l_Header_Adj_rec.ac_attribute14 := NULL;
2710     END IF;
2711 
2712     IF l_Header_Adj_rec.ac_attribute15 = FND_API.G_MISS_CHAR THEN
2713         l_Header_Adj_rec.ac_attribute15 := NULL;
2714     END IF;
2715     --uom begin
2716     If l_Header_Adj_rec.operand_per_pqty = FND_API.G_MISS_NUM THEN
2717        l_Header_Adj_rec.operand_per_pqty:=NULL;
2718     END IF;
2719 
2720     If l_Header_Adj_rec.adjusted_amount_per_pqty = FND_API.G_MISS_NUM THEN
2721        l_Header_Adj_rec.adjusted_amount_per_pqty:=NULL;
2722     END IF;
2723     --uom end
2724 
2725     If l_Header_Adj_rec.invoiced_amount = FND_API.G_MISS_NUM THEN
2726        l_Header_Adj_rec.invoiced_amount := NULL;
2727     END IF;
2728 
2729     --12611888 start
2730     If l_Header_Adj_rec.tax_rate_id  = FND_API.G_MISS_NUM THEN
2731        l_Header_Adj_rec.tax_rate_id := NULL;
2732     END IF;
2733     --12611888 end
2734 
2735     IF l_debug_level  > 0 THEN
2736         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.CONVERT_MISS_TO_NULL' , 1 ) ;
2737     END IF;
2738 
2739     -- RETURN l_Header_Adj_rec;
2740     p_x_Header_Adj_rec := l_Header_Adj_rec;
2741 
2742 END Convert_Miss_To_Null;
2743 
2744 --  Procedure Update_Row
2745 
2746 
2747 PROCEDURE Update_Row
2748 (   p_Header_Adj_rec            IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
2749 )
2750 IS
2751 l_lock_control			NUMBER;
2752 --added for notification framework
2753 l_index    NUMBER;
2754 l_return_status VARCHAR2(1);
2755 
2756 --
2757 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2758 --
2759 BEGIN
2760 
2761     IF l_debug_level  > 0 THEN
2762         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2763     END IF;
2764 
2765     -- increment lock_control by 1 whenever the record is updated
2766     SELECT lock_control
2767     INTO   l_lock_control
2768     FROM   oe_price_adjustments
2769     WHERE  price_adjustment_id = p_Header_Adj_rec.price_adjustment_id;
2770 
2771     l_lock_control := l_lock_control + 1;
2772 
2773 
2774   -- calling notification framework to update global picture
2775   -- check code release level first. Notification framework is at Pack H level
2776 
2777    IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
2778       IF l_debug_level  > 0 THEN
2779           oe_debug_pub.add(  'HDR_ADJ_ID= ' || P_HEADER_ADJ_REC.PRICE_ADJUSTMENT_ID ) ;
2780       END IF;
2781       OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
2782                     p_Hdr_adj_rec =>p_header_adj_rec,
2783                     p_hdr_adj_id => p_header_adj_rec.price_adjustment_id,
2784                     x_index => l_index,
2785                     x_return_status => l_return_status);
2786 
2787       IF l_debug_level  > 0 THEN
2788           oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_ADJ_UTIL.UPDATE_ROE IS: ' || L_RETURN_STATUS ) ;
2789       END IF;
2790 
2791        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2792            IF l_debug_level  > 0 THEN
2793                oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
2794            END IF;
2795            IF l_debug_level  > 0 THEN
2796                oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2797            END IF;
2798 	   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2799        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2800            IF l_debug_level  > 0 THEN
2801                oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_ADJ_UTIL.UPDATE_ROW' ) ;
2802            END IF;
2803            IF l_debug_level  > 0 THEN
2804                oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2805            END IF;
2806 	   RAISE FND_API.G_EXC_ERROR;
2807        END IF;
2808    END IF;  /*code_release_level*/
2809  -- notification framework end
2810 
2811 
2812     UPDATE  OE_PRICE_ADJUSTMENTS
2813     SET     PRICE_ADJUSTMENT_ID    = p_Header_Adj_rec.price_adjustment_id
2814     ,       CREATION_DATE          = p_Header_Adj_rec.creation_date
2815     ,       CREATED_BY             = p_Header_Adj_rec.created_by
2816     ,       LAST_UPDATE_DATE       = p_Header_Adj_rec.last_update_date
2817     ,       LAST_UPDATED_BY        = p_Header_Adj_rec.last_updated_by
2818     ,       LAST_UPDATE_LOGIN      = p_Header_Adj_rec.last_update_login
2819     ,       PROGRAM_APPLICATION_ID = p_Header_Adj_rec.program_application_id
2820     ,       PROGRAM_ID             = p_Header_Adj_rec.program_id
2821     ,       PROGRAM_UPDATE_DATE    = p_Header_Adj_rec.program_update_date
2822     ,       REQUEST_ID             = p_Header_Adj_rec.request_id
2823     ,       HEADER_ID              = p_Header_Adj_rec.header_id
2824     ,       DISCOUNT_ID            = p_Header_Adj_rec.discount_id
2825     ,       DISCOUNT_LINE_ID       = p_Header_Adj_rec.discount_line_id
2826     ,       AUTOMATIC_FLAG         = p_Header_Adj_rec.automatic_flag
2827     ,       PERCENT                = p_Header_Adj_rec.percent
2828     ,       LINE_ID                = p_Header_Adj_rec.line_id
2829     ,       CONTEXT                = p_Header_Adj_rec.context
2830     ,       ATTRIBUTE1             = p_Header_Adj_rec.attribute1
2831     ,       ATTRIBUTE2             = p_Header_Adj_rec.attribute2
2832     ,       ATTRIBUTE3             = p_Header_Adj_rec.attribute3
2833     ,       ATTRIBUTE4             = p_Header_Adj_rec.attribute4
2834     ,       ATTRIBUTE5             = p_Header_Adj_rec.attribute5
2835     ,       ATTRIBUTE6             = p_Header_Adj_rec.attribute6
2836     ,       ATTRIBUTE7             = p_Header_Adj_rec.attribute7
2837     ,       ATTRIBUTE8             = p_Header_Adj_rec.attribute8
2838     ,       ATTRIBUTE9             = p_Header_Adj_rec.attribute9
2839     ,       ATTRIBUTE10            = p_Header_Adj_rec.attribute10
2840     ,       ATTRIBUTE11            = p_Header_Adj_rec.attribute11
2841     ,       ATTRIBUTE12            = p_Header_Adj_rec.attribute12
2842     ,       ATTRIBUTE13            = p_Header_Adj_rec.attribute13
2843     ,       ATTRIBUTE14            = p_Header_Adj_rec.attribute14
2844     ,       ATTRIBUTE15            = p_Header_Adj_rec.attribute15
2845     ,       ORIG_SYS_DISCOUNT_REF  = p_Header_Adj_rec.orig_sys_discount_ref
2846     ,	  LIST_HEADER_ID		= p_Header_Adj_rec.list_header_id
2847     ,	  LIST_LINE_ID			= p_Header_Adj_rec.list_line_id
2848     ,	  LIST_LINE_TYPE_CODE	= p_Header_Adj_rec.list_line_type_code
2849     ,	  MODIFIER_MECHANISM_TYPE_CODE = p_Header_Adj_rec.list_header_id
2850     ,	  MODIFIED_FROM 		= p_Header_Adj_rec.modified_from
2851     ,	  MODIFIED_TO			= p_Header_Adj_rec.modified_to
2852     ,	  UPDATED_FLAG			= p_Header_Adj_rec.updated_flag
2853     ,	  UPDATE_ALLOWED		= p_Header_Adj_rec.update_allowed
2854     ,	  APPLIED_FLAG			= p_Header_Adj_rec.applied_flag
2855     ,	  CHANGE_REASON_CODE	= p_Header_Adj_rec.change_reason_code
2856     ,	  CHANGE_REASON_TEXT	= p_Header_Adj_rec.change_reason_text
2857     ,	  operand				= p_Header_Adj_rec.operand
2858     ,	  arithmetic_operator	= p_Header_Adj_rec.arithmetic_operator
2859     ,	  COST_ID                = p_Header_Adj_rec.cost_id
2860     ,	  TAX_CODE               = p_Header_Adj_rec.tax_code
2861     ,	  TAX_EXEMPT_FLAG        = p_Header_Adj_rec.tax_exempt_flag
2862     ,	  TAX_EXEMPT_NUMBER      = p_Header_Adj_rec.tax_exempt_number
2863     ,	  TAX_EXEMPT_REASON_CODE = p_Header_Adj_rec.tax_exempt_reason_code
2864     ,	  PARENT_ADJUSTMENT_ID   = p_Header_Adj_rec.parent_adjustment_id
2865     ,	  INVOICED_FLAG          = p_Header_Adj_rec.invoiced_flag
2866     ,	  ESTIMATED_FLAG         = p_Header_Adj_rec.estimated_flag
2867     ,	  INC_IN_SALES_PERFORMANCE = p_Header_Adj_rec.inc_in_sales_performance
2868     ,	  SPLIT_ACTION_CODE      = p_Header_Adj_rec.split_action_code
2869     ,	  ADJUSTED_AMOUNT		= p_Header_Adj_rec.adjusted_amount
2870     ,	  PRICING_PHASE_ID		= p_Header_Adj_rec.pricing_phase_id
2871     ,	  CHARGE_TYPE_CODE		= p_Header_Adj_rec.charge_type_code
2872     ,	  CHARGE_SUBTYPE_CODE	= p_Header_Adj_rec.charge_subtype_code
2873     ,       LIST_LINE_NO          = p_Header_Adj_rec.list_line_no
2874     ,       SOURCE_SYSTEM_CODE     = p_Header_Adj_rec.source_system_code
2875     ,       BENEFIT_QTY           = p_Header_Adj_rec.benefit_qty
2876     ,       BENEFIT_UOM_CODE      = p_Header_Adj_rec.benefit_uom_code
2877     ,       PRINT_ON_INVOICE_FLAG = p_Header_Adj_rec.print_on_invoice_flag
2878     ,       EXPIRATION_DATE       = p_Header_Adj_rec.expiration_date
2879     ,       REBATE_TRANSACTION_TYPE_CODE  = p_Header_Adj_rec.rebate_transaction_type_code
2880     ,       REBATE_TRANSACTION_REFERENCE  = p_Header_Adj_rec.rebate_transaction_reference
2881     ,       REBATE_PAYMENT_SYSTEM_CODE    = p_Header_Adj_rec.rebate_payment_system_code
2882     ,       REDEEMED_DATE         = p_Header_Adj_rec.redeemed_date
2883     ,       REDEEMED_FLAG         = p_Header_Adj_rec.redeemed_flag
2884     ,       ACCRUAL_FLAG          = p_Header_Adj_rec.accrual_flag
2885     ,       RANGE_BREAK_QUANTITY  = p_Header_Adj_rec.range_break_quantity
2886     ,       ACCRUAL_CONVERSION_RATE = p_Header_Adj_rec.accrual_conversion_rate
2887     ,       PRICING_GROUP_SEQUENCE  = p_Header_Adj_rec.pricing_group_sequence
2888     ,       MODIFIER_LEVEL_CODE     = p_Header_Adj_rec.modifier_level_code
2889     ,       PRICE_BREAK_TYPE_CODE   = p_Header_Adj_rec.price_break_type_code
2890     ,       SUBSTITUTION_ATTRIBUTE  = p_Header_Adj_rec.substitution_attribute
2891     ,       PRORATION_TYPE_CODE     = p_Header_Adj_rec.proration_type_code
2892     ,       CREDIT_OR_CHARGE_FLAG   = p_Header_Adj_rec.credit_or_charge_flag
2893     ,       INCLUDE_ON_RETURNS_FLAG = p_Header_Adj_rec.include_on_returns_flag
2894     ,       AC_CONTEXT              = p_Header_Adj_rec.ac_context
2895     ,       AC_ATTRIBUTE1           = p_Header_Adj_rec.ac_attribute1
2896     ,       AC_ATTRIBUTE2           = p_Header_Adj_rec.ac_attribute2
2897     ,       AC_ATTRIBUTE3           = p_Header_Adj_rec.ac_attribute3
2898     ,       AC_ATTRIBUTE4           = p_Header_Adj_rec.ac_attribute4
2899     ,       AC_ATTRIBUTE5           = p_Header_Adj_rec.ac_attribute5
2900     ,       AC_ATTRIBUTE6           = p_Header_Adj_rec.ac_attribute6
2901     ,       AC_ATTRIBUTE7           = p_Header_Adj_rec.ac_attribute7
2902     ,       AC_ATTRIBUTE8           = p_Header_Adj_rec.ac_attribute8
2903     ,       AC_ATTRIBUTE9           = p_Header_Adj_rec.ac_attribute9
2904     ,       AC_ATTRIBUTE10          = p_Header_Adj_rec.ac_attribute10
2905     ,       AC_ATTRIBUTE11          = p_Header_Adj_rec.ac_attribute11
2906     ,       AC_ATTRIBUTE12          = p_Header_Adj_rec.ac_attribute12
2907     ,       AC_ATTRIBUTE13          = p_Header_Adj_rec.ac_attribute13
2908     ,       AC_ATTRIBUTE14          = p_Header_Adj_rec.ac_attribute14
2909     ,       AC_ATTRIBUTE15          = p_Header_Adj_rec.ac_attribute15
2910 --uom begin
2911     ,       OPERAND_PER_PQTY         = p_Header_Adj_rec.operand_per_pqty
2912     ,       ADJUSTED_AMOUNT_PER_PQTY = p_Header_Adj_rec.adjusted_amount_per_pqty
2913 --uom end
2914     ,       INVOICED_AMOUNT         = p_Header_Adj_rec.invoiced_amount
2915     ,	  LOCK_CONTROL			 = l_lock_control
2916     WHERE   PRICE_ADJUSTMENT_ID    = p_Header_Adj_rec.price_adjustment_id
2917     ;
2918 
2919     p_Header_Adj_rec.lock_control := l_lock_control;
2920     IF l_debug_level  > 0 THEN
2921         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2922     END IF;
2923 
2924 EXCEPTION
2925 
2926     WHEN OTHERS THEN
2927 
2928         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2929         THEN
2930             OE_MSG_PUB.Add_Exc_Msg
2931             (   G_PKG_NAME
2932             ,   'Update_Row'
2933             );
2934         END IF;
2935 
2936         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2937 
2938 END Update_Row;
2939 
2940 --  Procedure Insert_Row
2941 
2942 PROCEDURE Insert_Row
2943 (   p_Header_Adj_rec                IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
2944 )
2945 IS
2946 l_lock_control		NUMBER := 1;
2947 --added for notification framework
2948 l_index                NUMBER;
2949 l_return_status        VARCHAR2(1);
2950 
2951 --
2952 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2953 --
2954 BEGIN
2955 
2956     IF l_debug_level  > 0 THEN
2957         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.INSERT_ROW' , 1 ) ;
2958     END IF;
2959 
2960     INSERT  INTO OE_PRICE_ADJUSTMENTS
2961     (       PRICE_ADJUSTMENT_ID
2962     ,       CREATION_DATE
2963     ,       CREATED_BY
2964     ,       LAST_UPDATE_DATE
2965     ,       LAST_UPDATED_BY
2966     ,       LAST_UPDATE_LOGIN
2967     ,       PROGRAM_APPLICATION_ID
2968     ,       PROGRAM_ID
2969     ,       PROGRAM_UPDATE_DATE
2970     ,       REQUEST_ID
2971     ,       HEADER_ID
2972     ,       DISCOUNT_ID
2973     ,       DISCOUNT_LINE_ID
2974     ,       AUTOMATIC_FLAG
2975     ,       PERCENT
2976     ,       LINE_ID
2977     ,       CONTEXT
2978     ,       ATTRIBUTE1
2979     ,       ATTRIBUTE2
2980     ,       ATTRIBUTE3
2981     ,       ATTRIBUTE4
2982     ,       ATTRIBUTE5
2983     ,       ATTRIBUTE6
2984     ,       ATTRIBUTE7
2985     ,       ATTRIBUTE8
2986     ,       ATTRIBUTE9
2987     ,       ATTRIBUTE10
2988     ,       ATTRIBUTE11
2989     ,       ATTRIBUTE12
2990     ,       ATTRIBUTE13
2991     ,       ATTRIBUTE14
2992     ,       ATTRIBUTE15
2993     ,       ORIG_SYS_DISCOUNT_REF
2994     ,	  LIST_HEADER_ID
2995     ,	  LIST_LINE_ID
2996     ,	  LIST_LINE_TYPE_CODE
2997     ,	  MODIFIER_MECHANISM_TYPE_CODE
2998     ,	  MODIFIED_FROM
2999     ,	  MODIFIED_TO
3000     ,	  UPDATED_FLAG
3001     ,	  UPDATE_ALLOWED
3002     ,	  APPLIED_FLAG
3003     ,	  CHANGE_REASON_CODE
3004     ,	  CHANGE_REASON_TEXT
3005     ,	  operand
3006     ,	  arithmetic_operator
3007     ,	  COST_ID
3008     ,	  TAX_CODE
3009     ,	  TAX_RATE_ID   --TaxER
3010     ,	  TAX_EXEMPT_FLAG
3011     ,	  TAX_EXEMPT_NUMBER
3012     ,	  TAX_EXEMPT_REASON_CODE
3013     ,	  PARENT_ADJUSTMENT_ID
3014     ,	  INVOICED_FLAG
3015     ,	  ESTIMATED_FLAG
3016     ,	  INC_IN_SALES_PERFORMANCE
3017     ,	  SPLIT_ACTION_CODE
3018     ,	  ADJUSTED_AMOUNT
3019     ,	  PRICING_PHASE_ID
3020     ,	  CHARGE_TYPE_CODE
3021     ,	  CHARGE_SUBTYPE_CODE
3022     ,     list_line_no
3023     ,     source_system_code
3024     ,     benefit_qty
3025     ,     benefit_uom_code
3026     ,     print_on_invoice_flag
3027     ,     expiration_date
3028     ,     rebate_transaction_type_code
3029     ,     rebate_transaction_reference
3030     ,     rebate_payment_system_code
3031     ,     redeemed_date
3032     ,     redeemed_flag
3033     ,     accrual_flag
3034     ,     range_break_quantity
3035     ,     accrual_conversion_rate
3036     ,     pricing_group_sequence
3037     ,     modifier_level_code
3038     ,     price_break_type_code
3039     ,     substitution_attribute
3040     ,     proration_type_code
3041     ,       CREDIT_OR_CHARGE_FLAG
3042     ,       INCLUDE_ON_RETURNS_FLAG
3043     ,       AC_CONTEXT
3044     ,       AC_ATTRIBUTE1
3045     ,       AC_ATTRIBUTE2
3046     ,       AC_ATTRIBUTE3
3047     ,       AC_ATTRIBUTE4
3048     ,       AC_ATTRIBUTE5
3049     ,       AC_ATTRIBUTE6
3050     ,       AC_ATTRIBUTE7
3051     ,       AC_ATTRIBUTE8
3052     ,       AC_ATTRIBUTE9
3053     ,       AC_ATTRIBUTE10
3054     ,       AC_ATTRIBUTE11
3055     ,       AC_ATTRIBUTE12
3056     ,       AC_ATTRIBUTE13
3057     ,       AC_ATTRIBUTE14
3058     ,       AC_ATTRIBUTE15
3059  --uom begin
3060     ,       OPERAND_PER_PQTY
3061     ,       ADJUSTED_AMOUNT_PER_PQTY
3062     --uom end
3063     ,       INVOICED_AMOUNT
3064     ,	  lock_control
3065     )
3066     VALUES
3067     (       p_Header_Adj_rec.price_adjustment_id
3068     ,       p_Header_Adj_rec.creation_date
3069     ,       p_Header_Adj_rec.created_by
3070     ,       p_Header_Adj_rec.last_update_date
3071     ,       p_Header_Adj_rec.last_updated_by
3072     ,       p_Header_Adj_rec.last_update_login
3073     ,       p_Header_Adj_rec.program_application_id
3074     ,       p_Header_Adj_rec.program_id
3075     ,       p_Header_Adj_rec.program_update_date
3076     ,       p_Header_Adj_rec.request_id
3077     ,       p_Header_Adj_rec.header_id
3078     ,       p_Header_Adj_rec.discount_id
3079     ,       p_Header_Adj_rec.discount_line_id
3080     ,       p_Header_Adj_rec.automatic_flag
3081     ,       p_Header_Adj_rec.percent
3082     ,       p_Header_Adj_rec.line_id
3083     ,       p_Header_Adj_rec.context
3084     ,       p_Header_Adj_rec.attribute1
3085     ,       p_Header_Adj_rec.attribute2
3086     ,       p_Header_Adj_rec.attribute3
3087     ,       p_Header_Adj_rec.attribute4
3088     ,       p_Header_Adj_rec.attribute5
3089     ,       p_Header_Adj_rec.attribute6
3090     ,       p_Header_Adj_rec.attribute7
3091     ,       p_Header_Adj_rec.attribute8
3092     ,       p_Header_Adj_rec.attribute9
3093     ,       p_Header_Adj_rec.attribute10
3094     ,       p_Header_Adj_rec.attribute11
3095     ,       p_Header_Adj_rec.attribute12
3096     ,       p_Header_Adj_rec.attribute13
3097     ,       p_Header_Adj_rec.attribute14
3098     ,       p_Header_Adj_rec.attribute15
3099     ,       p_Header_Adj_rec.orig_sys_discount_ref
3100     ,	  p_Header_Adj_rec.list_header_id
3101     ,	  p_Header_Adj_rec.list_line_id
3102     ,	  p_Header_Adj_rec.list_line_type_code
3103     ,	  p_Header_Adj_rec.modifier_mechanism_type_code
3104     ,	  p_Header_Adj_rec.modified_from
3105     ,	  p_Header_Adj_rec.modified_to
3106     ,	  p_Header_Adj_rec.updated_flag
3107     ,	  p_Header_Adj_rec.update_allowed
3108     ,	  p_Header_Adj_rec.applied_flag
3109     ,	  p_Header_Adj_rec.change_reason_code
3110     ,	  p_Header_Adj_rec.change_reason_text
3111     ,	  p_Header_Adj_rec.operand
3112     ,	  p_Header_Adj_rec.arithmetic_operator
3113     ,	  p_Header_Adj_rec.COST_ID
3114     ,	  p_Header_Adj_rec.TAX_CODE
3115     ,	  p_Header_Adj_rec.TAX_RATE_ID  --TaxER
3116     ,	  p_Header_Adj_rec.TAX_EXEMPT_FLAG
3117     ,	  p_Header_Adj_rec.TAX_EXEMPT_NUMBER
3118     ,	  p_Header_Adj_rec.TAX_EXEMPT_REASON_CODE
3119     ,	  p_Header_Adj_rec.PARENT_ADJUSTMENT_ID
3120     ,	  p_Header_Adj_rec.INVOICED_FLAG
3121     ,	  p_Header_Adj_rec.ESTIMATED_FLAG
3122     ,	  p_Header_Adj_rec.INC_IN_SALES_PERFORMANCE
3123     ,	  p_Header_Adj_rec.SPLIT_ACTION_CODE
3124     ,	  p_Header_Adj_rec.adjusted_amount
3125     ,	  p_Header_Adj_rec.pricing_phase_id
3126     ,	  p_Header_Adj_rec.charge_type_code
3127     ,	  p_Header_Adj_rec.charge_subtype_code
3128     ,     p_Header_Adj_rec.list_line_no
3129     ,     p_Header_Adj_rec.source_system_code
3130     ,     p_Header_Adj_rec.benefit_qty
3131     ,     p_Header_Adj_rec.benefit_uom_code
3132     ,     p_Header_Adj_rec.print_on_invoice_flag
3133     ,     p_Header_Adj_rec.expiration_date
3134     ,     p_Header_Adj_rec.rebate_transaction_type_code
3135     ,     p_Header_Adj_rec.rebate_transaction_reference
3136     ,     p_Header_Adj_rec.rebate_payment_system_code
3137     ,     p_Header_Adj_rec.redeemed_date
3138     ,     p_Header_Adj_rec.redeemed_flag
3139     ,     p_Header_Adj_rec.accrual_flag
3140     ,     p_Header_Adj_rec.range_break_quantity
3141     ,     p_Header_Adj_rec.accrual_conversion_rate
3142     ,     p_Header_Adj_rec.pricing_group_sequence
3143     ,     p_Header_Adj_rec.modifier_level_code
3144     ,     p_Header_Adj_rec.price_break_type_code
3145     ,     p_Header_Adj_rec.substitution_attribute
3146     ,     p_Header_Adj_rec.proration_type_code
3147     ,       p_Header_Adj_rec.credit_or_charge_flag
3148     ,       p_Header_Adj_rec.include_on_returns_flag
3149     ,       p_Header_Adj_rec.ac_context
3150     ,       p_Header_Adj_rec.ac_attribute1
3151     ,       p_Header_Adj_rec.ac_attribute2
3152     ,       p_Header_Adj_rec.ac_attribute3
3153     ,       p_Header_Adj_rec.ac_attribute4
3154     ,       p_Header_Adj_rec.ac_attribute5
3155     ,       p_Header_Adj_rec.ac_attribute6
3156     ,       p_Header_Adj_rec.ac_attribute7
3157     ,       p_Header_Adj_rec.ac_attribute8
3158     ,       p_Header_Adj_rec.ac_attribute9
3159     ,       p_Header_Adj_rec.ac_attribute10
3160     ,       p_Header_Adj_rec.ac_attribute11
3161     ,       p_Header_Adj_rec.ac_attribute12
3162     ,       p_Header_Adj_rec.ac_attribute13
3163     ,       p_Header_Adj_rec.ac_attribute14
3164     ,       p_Header_Adj_rec.ac_attribute15
3165     --uom begin
3166     ,       p_Header_Adj_rec.OPERAND_PER_PQTY
3167     ,         p_Header_Adj_rec.ADJUSTED_AMOUNT_PER_PQTY
3168     --uom end
3169     ,       p_Header_Adj_rec.INVOICED_AMOUNT
3170     ,	  l_lock_control
3171     );
3172 
3173     p_header_Adj_rec.lock_control := l_lock_control;
3174 
3175     -- calling notification framework to update global picture
3176   -- check code release level first. Notification framework is at Pack H level
3177    IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
3178        OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
3179                     p_old_hdr_adj_rec => NULL,
3180                     p_Hdr_adj_rec =>p_header_adj_rec,
3181                     p_hdr_adj_id => p_header_adj_rec.price_adjustment_id,
3182                     x_index => l_index,
3183                     x_return_status => l_return_status);
3184 
3185       IF l_debug_level  > 0 THEN
3186           oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_ADJ_UTIL.INSERT_ROW IS: ' || L_RETURN_STATUS ) ;
3187       END IF;
3188       IF l_debug_level  > 0 THEN
3189           oe_debug_pub.add(  'RETURNED INDEX IS: ' || L_INDEX , 1 ) ;
3190       END IF;
3191 
3192      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3193         IF l_debug_level  > 0 THEN
3194             oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
3195         END IF;
3196         IF l_debug_level  > 0 THEN
3197             oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.INSERT_ROW' , 1 ) ;
3198         END IF;
3199 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3200      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3201         IF l_debug_level  > 0 THEN
3202             oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_ADJ_UTIL.INSERT_ROW' ) ;
3203         END IF;
3204         IF l_debug_level  > 0 THEN
3205             oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.INSERT_ROW' , 1 ) ;
3206         END IF;
3207 	RAISE FND_API.G_EXC_ERROR;
3208      END IF;
3209   END IF; /* code_release_level*/
3210   -- notification framework end
3211 
3212     IF l_debug_level  > 0 THEN
3213         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.INSERT_ROW' , 1 ) ;
3214     END IF;
3215 
3216 EXCEPTION
3217 
3218     WHEN OTHERS THEN
3219 
3220         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3221         THEN
3222             OE_MSG_PUB.Add_Exc_Msg
3223             (   G_PKG_NAME
3224             ,   'Insert_Row'
3225             );
3226         END IF;
3227 
3228         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3229 
3230 END Insert_Row;
3231 
3232 -- Procedure Delete_Header_Charges
3233 
3234 Procedure Delete_Header_Charges
3235 (
3236   p_header_id     IN Number
3237 )
3238 IS
3239 l_return_status         VARCHAR2(30);
3240 
3241 begin
3242 
3243 
3244     DELETE  FROM OE_PRICE_ADJUSTMENTS
3245     WHERE   HEADER_ID = p_header_id
3246       AND   LINE_ID  IS NULL
3247       AND   LIST_LINE_TYPE_CODE = 'FREIGHT_CHARGE';
3248 
3249 
3250 EXCEPTION
3251 
3252 WHEN OTHERS THEN
3253         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3254         THEN
3255                 FND_MSG_PUB.Add_Exc_Msg
3256                 (   G_PKG_NAME
3257                 ,   'Delete_Row'
3258                 );
3259         END IF;
3260         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3261 
3262 END Delete_Header_Charges;
3263 
3264 --  Procedure Delete_Row
3265 
3266 PROCEDURE Delete_Row
3267 (   p_price_adjustment_id           IN  NUMBER :=
3268                                         FND_API.G_MISS_NUM
3269 ,   p_header_id                     IN  NUMBER :=
3270                                         FND_API.G_MISS_NUM
3271 )
3272 IS
3273 l_return_status		VARCHAR2(30);
3274 CURSOR price_adj IS
3275 	SELECT price_adjustment_id
3276 	FROM OE_PRICE_ADJUSTMENTS
3277 	WHERE   HEADER_ID = p_header_id;
3278 
3279  -- added for notification framework
3280 l_new_header_adj_rec     OE_Order_PUB.Header_Adj_Rec_Type;
3281 l_index                  NUMBER;
3282 
3283 --
3284 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3285 --
3286 BEGIN
3287 
3288     IF l_debug_level  > 0 THEN
3289         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3290     END IF;
3291 
3292   IF p_header_id <> FND_API.G_MISS_NUM
3293   THEN
3294     FOR l_adj IN price_adj LOOP
3295 
3296    --added for notification framework
3297    --check code release level first. Notification framework is at Pack H level
3298      IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
3299         IF l_debug_level  > 0 THEN
3300             oe_debug_pub.add(  'JFC: IN DELETE ROW , PRICE_ADJUSTMENT_ID= '|| L_ADJ.PRICE_ADJUSTMENT_ID ) ;
3301         END IF;
3302 
3303      /* Set the operation on the record so that globals are updated as well */
3304       l_new_header_adj_rec.operation := OE_GLOBALS.G_OPR_DELETE;
3305       l_new_header_adj_rec.price_adjustment_id := l_adj.price_adjustment_id;
3306 
3307       OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
3308                     p_Hdr_adj_rec =>l_new_header_adj_rec,
3309                     p_hdr_adj_id => l_adj.price_adjustment_id,
3310                     x_index => l_index,
3311                     x_return_status => l_return_status);
3312 
3313      IF l_debug_level  > 0 THEN
3314          oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_ADJ_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
3315      END IF;
3316 
3317       IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3318           IF l_debug_level  > 0 THEN
3319               oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
3320           END IF;
3321           IF l_debug_level  > 0 THEN
3322               oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3323           END IF;
3324     	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3325       ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3326           IF l_debug_level  > 0 THEN
3327               oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_ADJ_UTIL.DELETE_ROW' ) ;
3328           END IF;
3329           IF l_debug_level  > 0 THEN
3330               oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3331           END IF;
3332 	RAISE FND_API.G_EXC_ERROR;
3333      END IF;
3334    END IF; /*code_release_level*/
3335    -- notification framework end
3336 
3337 
3338       OE_Delayed_Requests_Pvt.Delete_Reqs_for_deleted_entity(
3339         p_entity_code  => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
3340         p_entity_id     => l_adj.price_adjustment_id,
3341         x_return_status => l_return_status
3342         );
3343 
3344 	  OE_Line_Price_Aattr_Util.delete_row(
3345 			p_price_adjustment_id=>l_adj.price_adjustment_id);
3346 
3347 	  OE_Line_Adj_Assocs_Util.delete_row(
3348 			p_price_adjustment_id=>l_adj.price_adjustment_id);
3349     END LOOP;
3350     /* Start Audit Trail */
3351     DELETE  FROM OE_PRICE_ADJS_HISTORY
3352     WHERE   HEADER_ID = p_header_id;
3353     /* End Audit Trail */
3354 
3355     DELETE  FROM OE_PRICE_ADJUSTMENTS
3356     WHERE   HEADER_ID = p_header_id;
3357   ELSE
3358 
3359    --added for notification framework
3360    --check code release level first. Notification framework is at Pack H level
3361     IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
3362        IF l_debug_level  > 0 THEN
3363            oe_debug_pub.add(  'JFC:IN DELETE ROW , HEADER_ID IS G_MISS_NUM , PRICE_ADJUSTMENT_ID= '|| P_PRICE_ADJUSTMENT_ID , 1 ) ;
3364        END IF;
3365 
3366       /* Set the operation on the record so that globals are updated as well */
3367        l_new_header_adj_rec.operation := OE_GLOBALS.G_OPR_DELETE;
3368        l_new_header_adj_rec.price_adjustment_id := p_price_adjustment_id;
3369        OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
3370                     p_Hdr_adj_rec =>l_new_header_adj_rec,
3371                     p_hdr_adj_id => p_price_adjustment_id,
3372                     x_index => l_index,
3373                     x_return_status => l_return_status);
3374        IF l_debug_level  > 0 THEN
3375            oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_ADJ_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
3376        END IF;
3377 
3378         IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3379             IF l_debug_level  > 0 THEN
3380                 oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
3381             END IF;
3382             IF l_debug_level  > 0 THEN
3383                 oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3384             END IF;
3385         	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3386         ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3387             IF l_debug_level  > 0 THEN
3388                 oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_ADJ_UTIL.DELETE_ROW' ) ;
3389             END IF;
3390           IF l_debug_level  > 0 THEN
3391               oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3392           END IF;
3393 	  RAISE FND_API.G_EXC_ERROR;
3394         END IF;
3395    END IF; /*code_release_level*/
3396    -- notification framework end
3397 
3398       OE_Delayed_Requests_Pvt.Delete_Reqs_for_deleted_entity
3399         (p_entity_code  => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
3400         p_entity_id     => p_price_adjustment_id,
3401         x_return_status => l_return_status
3402         );
3403 
3404 	  OE_Line_Price_Aattr_Util.delete_row(
3405 			p_price_adjustment_id=>p_price_adjustment_id);
3406 
3407 	  OE_Line_Adj_Assocs_Util.delete_row(
3408 			p_price_adjustment_id=>p_price_adjustment_id);
3409 
3410     /* Start Audit Trail (modified for 11.5.10) */
3411     DELETE  FROM OE_PRICE_ADJS_HISTORY
3412     WHERE   PRICE_ADJUSTMENT_ID = p_price_adjustment_id
3413     AND     NVL(AUDIT_FLAG, 'Y') = 'Y'
3414     AND     NVL(VERSION_FLAG, 'N') = 'N'
3415     AND     NVL(PHASE_CHANGE_FLAG, 'N') = 'N';
3416 
3417     UPDATE  OE_PRICE_ADJS_HISTORY
3418     SET     AUDIT_FLAG = 'N'
3419     WHERE   PRICE_ADJUSTMENT_ID = p_price_adjustment_id
3420     AND     NVL(AUDIT_FLAG, 'Y') = 'Y'
3421     AND    (NVL(VERSION_FLAG, 'N') = 'Y'
3422     OR      NVL(PHASE_CHANGE_FLAG, 'N') = 'Y');
3423     /* End Audit Trail */
3424 
3425     DELETE  FROM OE_PRICE_ADJUSTMENTS
3426     WHERE   PRICE_ADJUSTMENT_ID = p_price_adjustment_id
3427     ;
3428   END IF;
3429 
3430     IF l_debug_level  > 0 THEN
3431         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3432     END IF;
3433 
3434 EXCEPTION
3435 
3436     WHEN OTHERS THEN
3437 
3438         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3439         THEN
3440             OE_MSG_PUB.Add_Exc_Msg
3441             (   G_PKG_NAME
3442             ,   'Delete_Row'
3443             );
3444         END IF;
3445 
3446         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3447 
3448 END Delete_Row;
3449 
3450 --  Procedure Query_Row
3451 
3452 
3453 PROCEDURE Query_Row
3454 (   p_price_adjustment_id     IN  NUMBER
3455 ,   x_Header_Adj_Rec 		IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
3456 )
3457 IS
3458   l_Header_Adj_Tbl			OE_Order_PUB.Header_Adj_Tbl_Type;
3459   --
3460   l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3461   --
3462 BEGIN
3463     IF l_debug_level  > 0 THEN
3464         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.QUERY_ROW' , 1 ) ;
3465     END IF;
3466 
3467     Query_Rows
3468         (   p_price_adjustment_id         => p_price_adjustment_id
3469 	   ,   x_Header_Adj_Tbl			  => l_Header_Adj_Tbl
3470 	   );
3471     x_Header_Adj_Rec := l_Header_Adj_Tbl(1);
3472 
3473     IF l_debug_level  > 0 THEN
3474         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.QUERY_ROW' , 1 ) ;
3475     END IF;
3476 
3477 END Query_Row;
3478 
3479 --  Procedure Query_Rows
3480 
3481 PROCEDURE Query_Rows
3482 (   p_price_adjustment_id     IN  NUMBER :=
3483                                   FND_API.G_MISS_NUM
3484 ,   p_header_id               IN  NUMBER :=
3485                                   FND_API.G_MISS_NUM
3486 ,   x_Header_Adj_Tbl		IN OUT NOCOPY OE_Order_PUB.Header_Adj_Tbl_Type
3487 )
3488 IS
3489 l_count			NUMBER;
3490 
3491 CURSOR l_Header_Adj_csr_p IS
3492     SELECT  ATTRIBUTE1
3493     ,       ATTRIBUTE10
3494     ,       ATTRIBUTE11
3495     ,       ATTRIBUTE12
3496     ,       ATTRIBUTE13
3497     ,       ATTRIBUTE14
3498     ,       ATTRIBUTE15
3499     ,       ATTRIBUTE2
3500     ,       ATTRIBUTE3
3501     ,       ATTRIBUTE4
3502     ,       ATTRIBUTE5
3503     ,       ATTRIBUTE6
3504     ,       ATTRIBUTE7
3505     ,       ATTRIBUTE8
3506     ,       ATTRIBUTE9
3507     ,       AUTOMATIC_FLAG
3508     ,       CONTEXT
3509     ,       CREATED_BY
3510     ,       CREATION_DATE
3511     ,       DISCOUNT_ID
3512     ,       DISCOUNT_LINE_ID
3513     ,       HEADER_ID
3514     ,       LAST_UPDATED_BY
3515     ,       LAST_UPDATE_DATE
3516     ,       LAST_UPDATE_LOGIN
3517     ,       LINE_ID
3518     ,       PERCENT
3519     ,       PRICE_ADJUSTMENT_ID
3520     ,       PROGRAM_APPLICATION_ID
3521     ,       PROGRAM_ID
3522     ,       PROGRAM_UPDATE_DATE
3523     ,       REQUEST_ID
3524     ,	  LIST_HEADER_ID
3525     ,	  LIST_LINE_ID
3526     ,	  LIST_LINE_TYPE_CODE
3527     ,	  MODIFIER_MECHANISM_TYPE_CODE
3528     ,	  MODIFIED_FROM
3529     ,	  MODIFIED_TO
3530     ,	  UPDATED_FLAG
3531     ,	  UPDATE_ALLOWED
3532     ,	  APPLIED_FLAG
3533     ,	  CHANGE_REASON_CODE
3534     ,	  CHANGE_REASON_TEXT
3535     ,	  operand
3536     ,       arithmetic_operator
3537     ,	  COST_ID
3538     ,	  TAX_CODE
3539     ,	  TAX_EXEMPT_FLAG
3540     ,	  TAX_EXEMPT_NUMBER
3541     ,	  TAX_EXEMPT_REASON_CODE
3542     ,	  PARENT_ADJUSTMENT_ID
3543     ,	  INVOICED_FLAG
3544     ,	  ESTIMATED_FLAG
3545     ,	  INC_IN_SALES_PERFORMANCE
3546     ,	  SPLIT_ACTION_CODE
3547     ,	  ADJUSTED_AMOUNT
3548     ,	  PRICING_PHASE_ID
3549     ,	  CHARGE_TYPE_CODE
3550     ,	  CHARGE_SUBTYPE_CODE
3551     ,     list_line_no
3552     ,     source_system_code
3553     ,     benefit_qty
3554     ,     benefit_uom_code
3555     ,     print_on_invoice_flag
3556     ,     expiration_date
3557     ,     rebate_transaction_type_code
3558     ,     rebate_transaction_reference
3559     ,     rebate_payment_system_code
3560     ,     redeemed_date
3561     ,     redeemed_flag
3562     ,     accrual_flag
3563     ,     range_break_quantity
3564     ,     accrual_conversion_rate
3565     ,     pricing_group_sequence
3566     ,     modifier_level_code
3567     ,     price_break_type_code
3568     ,     substitution_attribute
3569     ,     proration_type_code
3570     ,       CREDIT_OR_CHARGE_FLAG
3571     ,       INCLUDE_ON_RETURNS_FLAG
3572     ,       AC_ATTRIBUTE1
3573     ,       AC_ATTRIBUTE10
3574     ,       AC_ATTRIBUTE11
3575     ,       AC_ATTRIBUTE12
3576     ,       AC_ATTRIBUTE13
3577     ,       AC_ATTRIBUTE14
3578     ,       AC_ATTRIBUTE15
3579     ,       AC_ATTRIBUTE2
3580     ,       AC_ATTRIBUTE3
3581     ,       AC_ATTRIBUTE4
3582     ,       AC_ATTRIBUTE5
3583     ,       AC_ATTRIBUTE6
3584     ,       AC_ATTRIBUTE7
3585     ,       AC_ATTRIBUTE8
3586     ,       AC_ATTRIBUTE9
3587     ,       AC_CONTEXT
3588     ,       orig_sys_discount_ref
3589  --uom begin
3590     ,       OPERAND_PER_PQTY
3591     ,         ADJUSTED_AMOUNT_PER_PQTY
3592     ,       INVOICED_AMOUNT
3593     --uom end
3594     ,	  LOCK_CONTROL
3595     FROM    OE_PRICE_ADJUSTMENTS
3596     WHERE   PRICE_ADJUSTMENT_ID = p_price_adjustment_id;
3597 
3598 CURSOR l_Header_Adj_csr_h IS
3599     SELECT  ATTRIBUTE1
3600     ,       ATTRIBUTE10
3601     ,       ATTRIBUTE11
3602     ,       ATTRIBUTE12
3603     ,       ATTRIBUTE13
3604     ,       ATTRIBUTE14
3605     ,       ATTRIBUTE15
3606     ,       ATTRIBUTE2
3607     ,       ATTRIBUTE3
3608     ,       ATTRIBUTE4
3609     ,       ATTRIBUTE5
3610     ,       ATTRIBUTE6
3611     ,       ATTRIBUTE7
3612     ,       ATTRIBUTE8
3613     ,       ATTRIBUTE9
3614     ,       AUTOMATIC_FLAG
3615     ,       CONTEXT
3616     ,       CREATED_BY
3617     ,       CREATION_DATE
3618     ,       DISCOUNT_ID
3619     ,       DISCOUNT_LINE_ID
3620     ,       HEADER_ID
3621     ,       LAST_UPDATED_BY
3622     ,       LAST_UPDATE_DATE
3623     ,       LAST_UPDATE_LOGIN
3624     ,       LINE_ID
3625     ,       PERCENT
3626     ,       PRICE_ADJUSTMENT_ID
3627     ,       PROGRAM_APPLICATION_ID
3628     ,       PROGRAM_ID
3629     ,       PROGRAM_UPDATE_DATE
3630     ,       REQUEST_ID
3631     ,	  LIST_HEADER_ID
3632     ,	  LIST_LINE_ID
3633     ,	  LIST_LINE_TYPE_CODE
3634     ,	  MODIFIER_MECHANISM_TYPE_CODE
3635     ,	  MODIFIED_FROM
3636     ,	  MODIFIED_TO
3637     ,	  UPDATED_FLAG
3638     ,	  UPDATE_ALLOWED
3639     ,	  APPLIED_FLAG
3640     ,	  CHANGE_REASON_CODE
3641     ,	  CHANGE_REASON_TEXT
3642     ,	  operand
3643     ,       arithmetic_operator
3644     ,	  COST_ID
3645     ,	  TAX_CODE
3646     ,	  TAX_EXEMPT_FLAG
3647     ,	  TAX_EXEMPT_NUMBER
3648     ,	  TAX_EXEMPT_REASON_CODE
3649     ,	  PARENT_ADJUSTMENT_ID
3650     ,	  INVOICED_FLAG
3651     ,	  ESTIMATED_FLAG
3652     ,	  INC_IN_SALES_PERFORMANCE
3653     ,	  SPLIT_ACTION_CODE
3654     ,	  ADJUSTED_AMOUNT
3655     ,	  PRICING_PHASE_ID
3656     ,	  CHARGE_TYPE_CODE
3657     ,	  CHARGE_SUBTYPE_CODE
3658     ,     list_line_no
3659     ,     source_system_code
3660     ,     benefit_qty
3661     ,     benefit_uom_code
3662     ,     print_on_invoice_flag
3663     ,     expiration_date
3664     ,     rebate_transaction_type_code
3665     ,     rebate_transaction_reference
3666     ,     rebate_payment_system_code
3667     ,     redeemed_date
3668     ,     redeemed_flag
3669     ,     accrual_flag
3670     ,     range_break_quantity
3671     ,     accrual_conversion_rate
3672     ,     pricing_group_sequence
3673     ,     modifier_level_code
3674     ,     price_break_type_code
3675     ,     substitution_attribute
3676     ,     proration_type_code
3677     ,       CREDIT_OR_CHARGE_FLAG
3678     ,       INCLUDE_ON_RETURNS_FLAG
3679     ,       AC_ATTRIBUTE1
3680     ,       AC_ATTRIBUTE10
3681     ,       AC_ATTRIBUTE11
3682     ,       AC_ATTRIBUTE12
3683     ,       AC_ATTRIBUTE13
3684     ,       AC_ATTRIBUTE14
3685     ,       AC_ATTRIBUTE15
3686     ,       AC_ATTRIBUTE2
3687     ,       AC_ATTRIBUTE3
3688     ,       AC_ATTRIBUTE4
3689     ,       AC_ATTRIBUTE5
3690     ,       AC_ATTRIBUTE6
3691     ,       AC_ATTRIBUTE7
3692     ,       AC_ATTRIBUTE8
3693     ,       AC_ATTRIBUTE9
3694     ,       AC_CONTEXT
3695     ,       orig_sys_discount_ref
3696  --uom begin
3697     ,       OPERAND_PER_PQTY
3698     ,         ADJUSTED_AMOUNT_PER_PQTY
3699     ,       INVOICED_AMOUNT
3700     --uom end
3701     ,	  LOCK_CONTROL
3702     FROM    OE_PRICE_ADJUSTMENTS
3703     WHERE   HEADER_ID = p_header_id AND LINE_ID IS NULL;
3704 
3705   l_implicit_rec l_header_adj_csr_p%ROWTYPE;
3706   l_entity NUMBER;
3707 
3708 --
3709 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3710 --
3711 BEGIN
3712 
3713     IF
3714     (p_price_adjustment_id IS NOT NULL
3715      AND
3716      p_price_adjustment_id <> FND_API.G_MISS_NUM)
3717     AND
3718     (p_header_id IS NOT NULL
3719      AND
3720      p_header_id <> FND_API.G_MISS_NUM)
3721     THEN
3722             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3723             THEN
3724                 OE_MSG_PUB.Add_Exc_Msg
3725                 (   G_PKG_NAME
3726                 ,   'Query Rows'
3727                 ,   'Keys are mutually exclusive: price_adjustment_id = '|| p_price_adjustment_id || ', header_id = '|| p_header_id
3728                 );
3729             END IF;
3730 
3731         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3732 
3733     END IF;
3734 
3735     IF nvl(p_price_adjustment_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
3736 	   l_entity := 1;
3737            OPEN l_header_adj_csr_p;
3738     ELSIF nvl(p_header_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
3739 	   l_entity := 2;
3740            OPEN l_header_adj_csr_h;
3741     END IF;
3742 
3743     --  Loop over fetched records
3744     l_count := 1;
3745     LOOP
3746         IF l_entity = 1 THEN
3747              FETCH l_header_adj_csr_p INTO l_implicit_rec;
3748              EXIT WHEN l_header_adj_csr_p%NOTFOUND;
3749         ELSIF l_entity = 2 THEN
3750              FETCH l_header_adj_csr_h INTO l_implicit_rec;
3751              EXIT WHEN l_header_adj_csr_h%NOTFOUND;
3752         ELSE
3753           EXIT;
3754         END IF;
3755 
3756         x_Header_Adj_tbl(l_count).attribute1    := l_implicit_rec.ATTRIBUTE1;
3757         x_Header_Adj_tbl(l_count).attribute10   := l_implicit_rec.ATTRIBUTE10;
3758         x_Header_Adj_tbl(l_count).attribute11   := l_implicit_rec.ATTRIBUTE11;
3759         x_Header_Adj_tbl(l_count).attribute12   := l_implicit_rec.ATTRIBUTE12;
3760         x_Header_Adj_tbl(l_count).attribute13   := l_implicit_rec.ATTRIBUTE13;
3761         x_Header_Adj_tbl(l_count).attribute14   := l_implicit_rec.ATTRIBUTE14;
3762         x_Header_Adj_tbl(l_count).attribute15   := l_implicit_rec.ATTRIBUTE15;
3763         x_Header_Adj_tbl(l_count).attribute2    := l_implicit_rec.ATTRIBUTE2;
3764         x_Header_Adj_tbl(l_count).attribute3    := l_implicit_rec.ATTRIBUTE3;
3765         x_Header_Adj_tbl(l_count).attribute4    := l_implicit_rec.ATTRIBUTE4;
3766         x_Header_Adj_tbl(l_count).attribute5    := l_implicit_rec.ATTRIBUTE5;
3767         x_Header_Adj_tbl(l_count).attribute6    := l_implicit_rec.ATTRIBUTE6;
3768         x_Header_Adj_tbl(l_count).attribute7    := l_implicit_rec.ATTRIBUTE7;
3769         x_Header_Adj_tbl(l_count).attribute8    := l_implicit_rec.ATTRIBUTE8;
3770         x_Header_Adj_tbl(l_count).attribute9    := l_implicit_rec.ATTRIBUTE9;
3771         x_Header_Adj_tbl(l_count).automatic_flag := l_implicit_rec.AUTOMATIC_FLAG;
3772         x_Header_Adj_tbl(l_count).context       := l_implicit_rec.CONTEXT;
3773         x_Header_Adj_tbl(l_count).created_by    := l_implicit_rec.CREATED_BY;
3774         x_Header_Adj_tbl(l_count).creation_date := l_implicit_rec.CREATION_DATE;
3775         x_Header_Adj_tbl(l_count).discount_id   := l_implicit_rec.DISCOUNT_ID;
3776         x_Header_Adj_tbl(l_count).discount_line_id := l_implicit_rec.DISCOUNT_LINE_ID;
3777         x_Header_Adj_tbl(l_count).header_id     := l_implicit_rec.HEADER_ID;
3778         x_Header_Adj_tbl(l_count).last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
3779         x_Header_Adj_tbl(l_count).last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
3780         x_Header_Adj_tbl(l_count).last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
3781         x_Header_Adj_tbl(l_count).line_id       := l_implicit_rec.LINE_ID;
3782         x_Header_Adj_tbl(l_count).percent       := l_implicit_rec.PERCENT;
3783         x_Header_Adj_tbl(l_count).price_adjustment_id := l_implicit_rec.PRICE_ADJUSTMENT_ID;
3784         x_Header_Adj_tbl(l_count).program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
3785         x_Header_Adj_tbl(l_count).program_id    := l_implicit_rec.PROGRAM_ID;
3786         x_Header_Adj_tbl(l_count).program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
3787         x_Header_Adj_tbl(l_count).adjusted_amount   := l_implicit_rec.adjusted_amount;
3788         x_Header_Adj_tbl(l_count).pricing_phase_id  := l_implicit_rec.pricing_phase_id;
3789         x_Header_Adj_tbl(l_count).list_header_id    := l_implicit_rec.list_header_id;
3790         x_Header_Adj_tbl(l_count).list_line_id    := l_implicit_rec.list_line_id;
3791         x_Header_Adj_tbl(l_count).list_line_type_code    := l_implicit_rec.list_line_type_code;
3792         x_Header_Adj_tbl(l_count).modifier_mechanism_type_code :=
3793 					 l_implicit_rec.modifier_mechanism_type_code;
3794      x_Header_Adj_tbl(l_count).modified_from    := l_implicit_rec.modified_from;
3795      x_Header_Adj_tbl(l_count).modified_to    := l_implicit_rec.modified_to;
3796      x_Header_Adj_tbl(l_count).updated_flag    := l_implicit_rec.updated_flag;
3797      x_Header_Adj_tbl(l_count).update_allowed    := l_implicit_rec.update_allowed;
3798      x_Header_Adj_tbl(l_count).applied_flag    := l_implicit_rec.applied_flag;
3799      x_Header_Adj_tbl(l_count).change_reason_code := l_implicit_rec.change_reason_code;
3800      x_Header_Adj_tbl(l_count).change_reason_text  := l_implicit_rec.change_reason_text;
3801      x_Header_Adj_tbl(l_count).operand  := l_implicit_rec.operand;
3802      x_Header_Adj_tbl(l_count).arithmetic_operator  :=
3803 							l_implicit_rec.arithmetic_operator;
3804 
3805         x_Header_Adj_tbl(l_count).request_id    := l_implicit_rec.REQUEST_ID;
3806 
3807      x_Header_Adj_tbl(l_count).cost_id := l_implicit_rec.cost_id;
3808      x_Header_Adj_tbl(l_count).tax_code := l_implicit_rec.tax_code;
3809      x_Header_Adj_tbl(l_count).tax_exempt_flag := l_implicit_rec.tax_exempt_flag;
3810      x_Header_Adj_tbl(l_count).tax_exempt_number := l_implicit_rec.tax_exempt_number;
3811      x_Header_Adj_tbl(l_count).tax_exempt_reason_code := l_implicit_rec.tax_exempt_reason_code;
3812      x_Header_Adj_tbl(l_count).parent_adjustment_id := l_implicit_rec.parent_adjustment_id;
3813      x_Header_Adj_tbl(l_count).invoiced_flag := l_implicit_rec.invoiced_flag;
3814      x_Header_Adj_tbl(l_count).estimated_flag := l_implicit_rec.estimated_flag;
3815      x_Header_Adj_tbl(l_count).inc_in_sales_performance := l_implicit_rec.inc_in_sales_performance;
3816      x_Header_Adj_tbl(l_count).split_action_code := l_implicit_rec.split_action_code;
3817      x_Header_Adj_tbl(l_count).charge_type_code := l_implicit_rec.charge_type_code;
3818      x_Header_Adj_tbl(l_count).charge_subtype_code := l_implicit_rec.charge_subtype_code;
3819      x_Header_Adj_tbl(l_count).list_line_no := l_implicit_rec.list_line_no;
3820      x_Header_Adj_tbl(l_count).source_system_code := l_implicit_rec.source_system_code;
3821      x_Header_Adj_tbl(l_count).benefit_qty := l_implicit_rec.benefit_qty;
3822      x_Header_Adj_tbl(l_count).benefit_uom_code := l_implicit_rec.benefit_uom_code;
3823      x_Header_Adj_tbl(l_count).print_on_invoice_flag := l_implicit_rec.print_on_invoice_flag;
3824      x_Header_Adj_tbl(l_count).expiration_date := l_implicit_rec.expiration_date;
3825      x_Header_Adj_tbl(l_count).rebate_transaction_type_code := l_implicit_rec.rebate_transaction_type_code;
3826      x_Header_Adj_tbl(l_count).rebate_transaction_reference := l_implicit_rec.rebate_transaction_reference;
3827      x_Header_Adj_tbl(l_count).rebate_payment_system_code := l_implicit_rec.rebate_payment_system_code;
3828      x_Header_Adj_tbl(l_count).redeemed_date := l_implicit_rec.redeemed_date;
3829      x_Header_Adj_tbl(l_count).redeemed_flag := l_implicit_rec.redeemed_flag;
3830      x_Header_Adj_tbl(l_count).accrual_flag := l_implicit_rec.accrual_flag;
3831      x_Header_Adj_tbl(l_count).range_break_quantity := l_implicit_rec.range_break_quantity;
3832      x_Header_Adj_tbl(l_count).accrual_conversion_rate := l_implicit_rec.accrual_conversion_rate;
3833      x_Header_Adj_tbl(l_count).pricing_group_sequence := l_implicit_rec.pricing_group_sequence;
3834      x_Header_Adj_tbl(l_count).modifier_level_code := l_implicit_rec.modifier_level_code;
3835      x_Header_Adj_tbl(l_count).price_break_type_code := l_implicit_rec.price_break_type_code;
3836      x_Header_Adj_tbl(l_count).substitution_attribute := l_implicit_rec.substitution_attribute;
3837      x_Header_Adj_tbl(l_count).proration_type_code := l_implicit_rec.proration_type_code;
3838      x_Header_Adj_tbl(l_count).credit_or_charge_flag := l_implicit_rec.credit_or_charge_flag;
3839      x_Header_Adj_tbl(l_count).include_on_returns_flag := l_implicit_rec.include_on_returns_flag;
3840         x_Header_Adj_tbl(l_count).ac_attribute1    := l_implicit_rec.AC_ATTRIBUTE1;
3841         x_Header_Adj_tbl(l_count).ac_attribute10   := l_implicit_rec.AC_ATTRIBUTE10;
3842         x_Header_Adj_tbl(l_count).ac_attribute11   := l_implicit_rec.AC_ATTRIBUTE11;
3843         x_Header_Adj_tbl(l_count).ac_attribute12   := l_implicit_rec.AC_ATTRIBUTE12;
3844         x_Header_Adj_tbl(l_count).ac_attribute13   := l_implicit_rec.AC_ATTRIBUTE13;
3845         x_Header_Adj_tbl(l_count).ac_attribute14   := l_implicit_rec.AC_ATTRIBUTE14;
3846         x_Header_Adj_tbl(l_count).ac_attribute15   := l_implicit_rec.AC_ATTRIBUTE15;
3847         x_Header_Adj_tbl(l_count).ac_attribute2    := l_implicit_rec.AC_ATTRIBUTE2;
3848         x_Header_Adj_tbl(l_count).ac_attribute3    := l_implicit_rec.AC_ATTRIBUTE3;
3849         x_Header_Adj_tbl(l_count).ac_attribute4    := l_implicit_rec.AC_ATTRIBUTE4;
3850         x_Header_Adj_tbl(l_count).ac_attribute5    := l_implicit_rec.AC_ATTRIBUTE5;
3851         x_Header_Adj_tbl(l_count).ac_attribute6    := l_implicit_rec.AC_ATTRIBUTE6;
3852         x_Header_Adj_tbl(l_count).ac_attribute7    := l_implicit_rec.AC_ATTRIBUTE7;
3853         x_Header_Adj_tbl(l_count).ac_attribute8    := l_implicit_rec.AC_ATTRIBUTE8;
3854         x_Header_Adj_tbl(l_count).ac_attribute9    := l_implicit_rec.AC_ATTRIBUTE9;
3855         x_Header_Adj_tbl(l_count).ac_context       := l_implicit_rec.AC_CONTEXT;
3856         x_Header_Adj_tbl(l_count).orig_sys_discount_ref  := l_implicit_rec.orig_sys_discount_ref;
3857         --uom begin
3858         x_Header_Adj_tbl(l_count).OPERAND_PER_PQTY      :=l_implicit_rec.operand_per_pqty;
3859      x_Header_Adj_tbl(l_count).ADJUSTED_AMOUNT_PER_PQTY :=l_implicit_rec.adjusted_amount_per_pqty;
3860         --uom end
3861         x_Header_Adj_tbl(l_count).invoiced_amount   := l_implicit_rec.invoiced_amount;
3862         x_Header_Adj_tbl(l_count).lock_control      := l_implicit_rec.LOCK_CONTROL;
3863 
3864         -- set values for non-DB fields
3865         x_Header_Adj_tbl(l_count).db_flag          := FND_API.G_TRUE;
3866         x_Header_Adj_tbl(l_count).operation        := FND_API.G_MISS_CHAR;
3867         x_Header_Adj_tbl(l_count).return_status    := FND_API.G_MISS_CHAR;
3868 
3869         l_count := l_count + 1;
3870     END LOOP;
3871 
3872     IF l_entity = 1 THEN
3873         CLOSE l_header_adj_csr_p;
3874     ELSIF l_entity = 2 THEN
3875         CLOSE l_header_adj_csr_h;
3876     END IF;
3877 
3878     --  PK sent and no rows found
3879 
3880     IF
3881     (p_price_adjustment_id IS NOT NULL
3882      AND
3883      p_price_adjustment_id <> FND_API.G_MISS_NUM)
3884     AND
3885     (x_Header_Adj_tbl.COUNT = 0)
3886     THEN
3887         RAISE NO_DATA_FOUND;
3888     END IF;
3889 
3890 EXCEPTION
3891 
3892     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3893 
3894         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3895 
3896     WHEN OTHERS THEN
3897 
3898         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3899         THEN
3900             OE_MSG_PUB.Add_Exc_Msg
3901             (   G_PKG_NAME
3902             ,   'Query_Rows'
3903             );
3904         END IF;
3905 
3906         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3907 
3908 END Query_Rows;
3909 
3910 --  Procedure       lock_Row
3911 --
3912 -- lock by ID or value will be decided by, if lock_control is passed or not.
3913 -- we are doing this so that other products, can still call lock_order API
3914 -- which does not take only primary key and takes only entire records. However
3915 -- if they do not set lokc_control on rec, we will still lock by ID
3916 -- that way they do not need to query up the records before sending them in.
3917 -- OM calls can directly fo to util.lock row, thus can send only PK.
3918 
3919 PROCEDURE Lock_Row
3920 ( x_return_status OUT NOCOPY VARCHAR2
3921 
3922 ,   p_x_Header_Adj_rec              IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
3923 --                                      := OE_Order_PUB.G_MISS_HEADER_ADJ_REC
3924 ,   p_price_adjustment_id           IN  NUMBER
3925                                         := FND_API.G_MISS_NUM
3926 -- ,   x_Header_Adj_rec                OUT OE_Order_PUB.Header_Adj_Rec_Type
3927 )
3928 IS
3929 l_price_adjustment_id         NUMBER;
3930 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type;
3931 l_lock_control				NUMBER;
3932 --
3933 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3934 --
3935 BEGIN
3936 
3937     IF l_debug_level  > 0 THEN
3938         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.LOCK_ROW' , 1 ) ;
3939     END IF;
3940 
3941     SAVEPOINT Lock_Row;
3942 
3943     l_lock_control := NULL;
3944 
3945     -- Retrieve the primary key.
3946     IF p_price_adjustment_id <> FND_API.G_MISS_NUM THEN
3947         l_price_adjustment_id := p_price_adjustment_id;
3948     ELSE
3949         l_price_adjustment_id := p_x_header_adj_rec.price_adjustment_id;
3950         l_lock_control 		:= p_x_header_adj_rec.lock_control;
3951     END IF;
3952 
3953     -- added for performance change
3954     SELECT price_adjustment_id
3955     INTO   l_price_adjustment_id
3956     FROM   oe_price_adjustments
3957     WHERE  price_adjustment_id = l_price_adjustment_id
3958     FOR UPDATE NOWAIT;
3959 
3960     IF l_debug_level  > 0 THEN
3961         oe_debug_pub.add(  'SELECTING FOR UPDATE.' , 1 ) ;
3962     END IF;
3963 
3964     OE_Header_Adj_Util.Query_Row
3965     (p_price_adjustment_id	=> l_price_adjustment_id
3966     ,x_Header_Adj_rec 		=> p_x_Header_Adj_rec
3967     );
3968 
3969     IF l_debug_level  > 0 THEN
3970         oe_debug_pub.add(  'QUERIED LOCK_CONTROL: '|| P_X_HEADER_ADJ_REC.LOCK_CONTROL , 1 ) ;
3971     END IF;
3972 
3973     -- If lock_control is not passed(is null or missing), then return the locked record.
3974 
3975 
3976     IF l_lock_control is null OR
3977        l_lock_control = FND_API.G_MISS_NUM
3978     THEN
3979 
3980         --  Set return status
3981         x_return_status                := FND_API.G_RET_STS_SUCCESS;
3982         p_x_header_adj_rec.return_status     := FND_API.G_RET_STS_SUCCESS;
3983 
3984         -- return for lock by ID.
3985 	RETURN;
3986 
3987     END IF;
3988 
3989     --  Row locked. If the whole record is passed, then
3990     --  Compare lock_control.
3991 
3992     IF l_debug_level  > 0 THEN
3993         oe_debug_pub.add(  'COMPARE ' , 1 ) ;
3994     END IF;
3995 
3996     IF      OE_GLOBALS.Equal(p_x_header_adj_rec.lock_control,
3997                              l_lock_control)
3998     THEN
3999 
4000         --  Row has not changed. Set out parameter.
4001 
4002         IF l_debug_level  > 0 THEN
4003             oe_debug_pub.add(  'LOCKED ROW' , 1 ) ;
4004         END IF;
4005 
4006         --  Set return status
4007 
4008         x_return_status                := FND_API.G_RET_STS_SUCCESS;
4009         p_x_header_adj_rec.return_status       := FND_API.G_RET_STS_SUCCESS;
4010 
4011     ELSE
4012 
4013         --  Row has changed by another user.
4014         IF l_debug_level  > 0 THEN
4015             oe_debug_pub.add(  'ROW CHANGED BY OTHER USER' , 1 ) ;
4016         END IF;
4017 
4018         x_return_status                := FND_API.G_RET_STS_ERROR;
4019         p_x_header_adj_rec.return_status       := FND_API.G_RET_STS_ERROR;
4020 
4021         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
4022         THEN
4023 
4024             -- Release the lock
4025             ROLLBACK TO Lock_Row;
4026 
4027             fnd_message.set_name('ONT','OE_LOCK_ROW_CHANGED');
4028             OE_MSG_PUB.Add;
4029 
4030         END IF;
4031 
4032     END IF;
4033 
4034     IF l_debug_level  > 0 THEN
4035         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.LOCK_ROW' , 1 ) ;
4036     END IF;
4037 
4038 EXCEPTION
4039 
4040     WHEN NO_DATA_FOUND THEN
4041 
4042         x_return_status                := FND_API.G_RET_STS_ERROR;
4043         p_x_Header_Adj_rec.return_status := FND_API.G_RET_STS_ERROR;
4044 
4045         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
4046         THEN
4047 
4048             FND_MESSAGE.SET_NAME('OE','OE_LOCK_ROW_DELETED');
4049             FND_MSG_PUB.Add;
4050 
4051         END IF;
4052     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
4053 
4054         x_return_status                := FND_API.G_RET_STS_ERROR;
4055         p_x_Header_Adj_rec.return_status := FND_API.G_RET_STS_ERROR;
4056 
4057         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
4058         THEN
4059 
4060             FND_MESSAGE.SET_NAME('OE','OE_LOCK_ROW_ALREADY_LOCKED');
4061             FND_MSG_PUB.Add;
4062 
4063         END IF;
4064     WHEN OTHERS THEN
4065 
4066         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
4067         p_x_Header_Adj_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4068 
4069         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4070         THEN
4071             OE_MSG_PUB.Add_Exc_Msg
4072             (   G_PKG_NAME
4073             ,   'Lock_Row'
4074             );
4075         END IF;
4076 
4077 END Lock_Row;
4078 
4079 PROCEDURE Lock_Rows
4080 (   p_price_adjustment_id          IN  NUMBER
4081                                        := FND_API.G_MISS_NUM
4082 ,   p_header_id           		IN  NUMBER
4083                                        := FND_API.G_MISS_NUM
4084 ,   x_Header_Adj_tbl               OUT NOCOPY OE_Order_PUB.Header_Adj_Tbl_Type
4085 , x_return_status OUT NOCOPY VARCHAR2
4086 
4087 )
4088 IS
4089 
4090   CURSOR lock_adj_hdr(p_header_id IN NUMBER) IS
4091   SELECT price_adjustment_id
4092   FROM   oe_price_adjustments
4093   WHERE  header_id = p_header_id
4094   FOR UPDATE NOWAIT;
4095 
4096 l_price_adjustment_id         NUMBER;
4097 l_Header_Adj_tbl              OE_Order_PUB.Header_Adj_Tbl_Type;
4098 l_lock_control				NUMBER;
4099 
4100 --
4101 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4102 --
4103 BEGIN
4104 
4105   IF l_debug_level  > 0 THEN
4106       oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.LOCK_ROWS.' , 1 ) ;
4107   END IF;
4108 
4109   IF (p_price_adjustment_id IS NOT NULL AND
4110 	 p_price_adjustment_id <> FND_API.G_MISS_NUM) AND
4111      (p_header_id IS NOT NULL AND
4112 	 p_header_id <> FND_API.G_MISS_NUM)
4113   THEN
4114     IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4115 	 OE_MSG_PUB.Add_Exc_Msg
4116 	 (  G_PKG_NAME
4117 	 ,  'Lock_Rows'
4118 	 ,  'Keys are mutually exclusive: price_adjustment_id = ' ||
4119 	    p_price_adjustment_id || ', header_id = ' || p_header_id );
4120     END IF;
4121 
4122     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4123   END IF;
4124 
4125   IF p_price_adjustment_id <> FND_API.G_MISS_NUM THEN
4126 
4127     SELECT price_adjustment_id
4128     INTO   l_price_adjustment_id
4129     FROM   oe_price_adjustments
4130     WHERE  price_adjustment_id = p_price_adjustment_id
4131     FOR UPDATE NOWAIT;
4132   END IF;
4133 
4134   -- null header_id shouldn't be passed in unnecessarily if
4135   -- price_adjustment_id is passed in already.
4136   BEGIN
4137     IF p_header_id <> FND_API.G_MISS_NUM THEN
4138 	 SAVEPOINT LOCK_ROWS;
4139 	 OPEN lock_adj_hdr(p_header_id);
4140 
4141 	 LOOP
4142 	   FETCH lock_adj_hdr INTO l_price_adjustment_id;
4143 	   EXIT WHEN lock_adj_hdr%NOTFOUND;
4144       END LOOP;
4145       CLOSE lock_adj_hdr;
4146     END IF;
4147   EXCEPTION
4148     WHEN OTHERS THEN
4149 	 ROLLBACK TO LOCK_ROWS;
4150 
4151 	 IF lock_adj_hdr%ISOPEN THEN
4152         CLOSE lock_adj_hdr;
4153       END IF;
4154 
4155 	 RAISE;
4156   END;
4157 
4158   OE_Header_Adj_Util.Query_Rows
4159   ( p_price_adjustment_id	=> p_price_adjustment_id
4160   , p_header_id			=> p_header_id
4161   , x_Header_Adj_tbl		=> x_Header_Adj_tbl
4162   );
4163 
4164   x_return_status := FND_API.G_RET_STS_SUCCESS;
4165 
4166   EXCEPTION
4167     WHEN NO_DATA_FOUND THEN
4168       x_return_status                := FND_API.G_RET_STS_ERROR;
4169       IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
4170       THEN
4171         fnd_message.set_name('ONT','OE_LOCK_ROW_DELETED');
4172         OE_MSG_PUB.Add;
4173       END IF;
4174 
4175      WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
4176        x_return_status                := FND_API.G_RET_STS_ERROR;
4177        IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
4178        THEN
4179          fnd_message.set_name('ONT','OE_LOCK_ROW_ALREADY_LOCKED');
4180          OE_MSG_PUB.Add;
4181        END IF;
4182 
4183      WHEN OTHERS THEN
4184         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
4185        IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4186        THEN
4187          OE_MSG_PUB.Add_Exc_Msg
4188          (   G_PKG_NAME
4189           ,   'Lock_Row'
4190          );
4191        END IF;
4192 
4193   IF l_debug_level  > 0 THEN
4194       oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.LOCK_ROWS.' , 1 ) ;
4195   END IF;
4196 
4197 END Lock_Rows;
4198 
4199 PROCEDURE Log_Adj_Requests
4200 ( x_return_status OUT NOCOPY VARCHAR2
4201 
4202 , p_adj_rec		IN	OE_order_pub.Header_Adj_Rec_Type
4203 , p_old_adj_rec		IN	OE_order_pub.Header_Adj_Rec_Type
4204 , p_delete_flag		IN	BOOLEAN DEFAULT FALSE
4205   )  IS
4206 
4207 --
4208 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4209 --
4210 BEGIN
4211 
4212    x_return_status := FND_API.G_RET_STS_SUCCESS;
4213 
4214     -- if the adjustment_id changed or the percent changed
4215     -- or discount or discount_line has changed
4216 
4217     IF (  (p_adj_rec.price_adjustment_id <> p_old_adj_rec.price_adjustment_id
4218 	   OR
4219 	   p_old_adj_rec.price_adjustment_id IS NULL)
4220 	OR
4221 	  (p_adj_rec.percent <> p_old_adj_rec.percent
4222 	   OR
4223 	   p_old_adj_rec.percent IS NULL)
4224 	OR
4225 	  (p_adj_rec.discount_id <> p_old_adj_rec.discount_id
4226 	   OR
4227 	   p_old_adj_rec.discount_id IS NULL)
4228 	OR
4229 	  (p_adj_rec.discount_line_id <> p_old_adj_rec.discount_line_id
4230 	   OR
4231 	   p_old_adj_rec.discount_line_id IS NULL)
4232 	OR
4233 	  p_delete_flag)
4234       THEN
4235 
4236 	  /*
4237        oe_delayed_requests_pvt.log_request(p_entity_code	=> OE_GLOBALS.G_ENTITY_HEADER_ADJ,
4238 		   p_entity_id		=> p_adj_rec.header_id,
4239                    p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
4240                    p_requesting_entity_id   => p_adj_rec.
4241                                                         price_adjustment_id,
4242 		   p_request_type	=> OE_GLOBALS.G_PRICE_ADJ,
4243 		   x_return_status	=> x_return_status);
4244 		   */
4245 		   null;
4246     END IF;
4247 
4248 END Log_Adj_Requests;
4249 
4250 --  Function Get_Values
4251 
4252 FUNCTION Get_Values
4253 (   p_Header_Adj_rec                IN  OE_Order_PUB.Header_Adj_Rec_Type
4254 ,   p_old_Header_Adj_rec            IN  OE_Order_PUB.Header_Adj_Rec_Type :=
4255                                         OE_Order_PUB.G_MISS_HEADER_ADJ_REC
4256 ) RETURN OE_Order_PUB.Header_Adj_Val_Rec_Type
4257 IS
4258 l_Header_Adj_val_rec          OE_Order_PUB.Header_Adj_Val_Rec_Type;
4259 --
4260 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4261 --
4262 BEGIN
4263 
4264     IF (p_Header_Adj_rec.discount_id IS NULL OR
4265         p_Header_Adj_rec.discount_id <> FND_API.G_MISS_NUM) AND
4266         NOT OE_GLOBALS.Equal(p_Header_Adj_rec.discount_id,
4267         p_old_Header_Adj_rec.discount_id)
4268     THEN
4269         l_Header_Adj_val_rec.discount := OE_Id_To_Value.Discount
4270         (   p_discount_id                 => p_Header_Adj_rec.discount_id
4271         );
4272     END IF;
4273 
4274     RETURN l_Header_Adj_val_rec;
4275 
4276 END Get_Values;
4277 
4278 --  Procedure Get_Ids
4279 
4280 PROCEDURE Get_Ids
4281 (   p_x_Header_Adj_rec              IN OUT NOCOPY OE_Order_PUB.Header_Adj_Rec_Type
4282 ,   p_Header_Adj_val_rec            IN  OE_Order_PUB.Header_Adj_Val_Rec_Type
4283 )
4284 IS
4285 l_Header_Adj_rec              OE_Order_PUB.Header_Adj_Rec_Type;
4286 --
4287 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4288 --
4289 BEGIN
4290 
4291     --  initialize  return_status.
4292 
4293     l_Header_Adj_rec.return_status := FND_API.G_RET_STS_SUCCESS;
4294 
4295     --  initialize l_Header_Adj_rec.
4296 
4297     l_Header_Adj_rec := p_x_Header_Adj_rec;
4298 
4299     IF  p_Header_Adj_val_rec.discount <> FND_API.G_MISS_CHAR
4300     THEN
4301 
4302         IF p_x_Header_Adj_rec.discount_id <> FND_API.G_MISS_NUM THEN
4303 
4304             l_Header_Adj_rec.discount_id := p_x_Header_Adj_rec.discount_id;
4305 
4306             IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
4307             THEN
4308 
4309                 FND_MESSAGE.SET_NAME('OE','OE_BOTH_VAL_AND_ID_EXIST');
4310                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','discount');
4311                 FND_MSG_PUB.Add;
4312 
4313             END IF;
4314 
4315         ELSE
4316 
4317             l_Header_Adj_rec.discount_id := OE_Value_To_Id.discount
4318             (   p_discount                    => p_Header_Adj_val_rec.discount
4319             );
4320 
4321             IF l_Header_Adj_rec.discount_id = FND_API.G_MISS_NUM THEN
4322                 l_Header_Adj_rec.return_status := FND_API.G_RET_STS_ERROR;
4323             END IF;
4324 
4325         END IF;
4326 
4327     END IF;
4328 
4329 
4330   --  RETURN l_Header_Adj_rec;
4331     p_x_Header_Adj_rec := l_Header_Adj_rec;
4332 
4333 END Get_Ids;
4334 
4335 
4336 FUNCTION  get_adj_total
4337 ( p_header_id       IN   NUMBER := null
4338 , p_line_id       IN   NUMBER :=null
4339 )
4340 		RETURN NUMBER
4341 is
4342 l_adj_total NUMBER := 0;
4343 Is_fmt Boolean;
4344 --
4345 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4346 --
4347 BEGIN
4348 
4349     IF l_debug_level  > 0 THEN
4350         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.GET_ADJ_TOTAL' , 1 ) ;
4351     END IF;
4352 
4353     IF (p_header_id IS NOT NULL AND
4354        NVL(p_header_id,-1)<>NVL(OE_ORDER_UTIL.G_Header_id,-10))
4355     OR  OE_ORDER_UTIL.G_Precision IS NULL THEN
4356       Is_fmt:=   OE_ORDER_UTIL.Get_Precision(
4357                 p_header_id=>p_header_id
4358                );
4359     END IF;
4360 
4361     IF (p_line_id IS NOT NULL AND
4362     NVL(p_Line_id,-1)<>NVL(OE_ORDER_UTIL.G_Line_id,-10))
4363     OR  OE_ORDER_UTIL.G_Precision IS NULL THEN
4364       Is_fmt:=   OE_ORDER_UTIL.Get_Precision(
4365                 p_line_id=>p_line_id
4366                );
4367     END IF;
4368 
4369     IF OE_ORDER_UTIL.G_Precision IS NULL THEN
4370       OE_ORDER_UTIL.G_Precision:=2;
4371     END IF;
4372 
4373 
4374     --	Query total.
4375     --  Separating into two separate SQLs for bug 3090569 --jvicenti
4376 
4377     IF p_header_id IS NOT NULL THEN
4378         SELECT  sum(ROUND(((unit_selling_price - unit_list_price)*
4379                           ordered_quantity) ,OE_ORDER_UTIL.G_Precision))
4380         INTO    l_adj_total
4381         FROM    oe_order_lines_all
4382         WHERE   HEADER_ID = p_header_id
4383         AND     charge_periodicity_code IS NULL -- addded for recurring charges
4384         AND	nvl(cancelled_flag,'N') ='N';
4385     ELSE
4386         SELECT  sum(ROUND(((unit_selling_price - unit_list_price)*
4387                           ordered_quantity) ,OE_ORDER_UTIL.G_Precision))
4388         INTO    l_adj_total
4389         FROM    oe_order_lines_all
4390         WHERE   line_id = p_line_id
4391         AND	nvl(cancelled_flag,'N') ='N';
4392     END IF;
4393 
4394     IF l_adj_total IS NULL THEN
4395 
4396 		l_adj_total := 0;
4397 
4398     END IF;
4399 
4400     IF l_debug_level  > 0 THEN
4401         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.GET_ADJ_TOTAL' , 1 ) ;
4402     END IF;
4403 
4404     RETURN l_adj_total;
4405 
4406 EXCEPTION
4407 
4408     WHEN OTHERS THEN
4409 
4410         -- Unexpected error
4411 	IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4412 
4413 	    OE_MSG_PUB.Add_Exc_Msg
4414 	    (   G_PKG_NAME  	    ,
4415     	        'Price_Utilities - Get_Adj_Total'
4416 	    );
4417 	END IF;
4418 
4419 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4420 
4421 END Get_Adj_Total;
4422 
4423  procedure get_line_adjustments
4424  (p_header_id			number
4425  ,p_line_id			number
4426 ,x_line_adjustments out nocopy line_adjustments_tab_type
4427 
4428  )
4429 is
4430 l_index		number := 0;
4431 --
4432 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4433 --
4434 BEGIN
4435 
4436     IF l_debug_level  > 0 THEN
4437         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.GET_LINE_ADJUSTMENTS' , 1 ) ;
4438     END IF;
4439 
4440     for adj_cur in
4441     ( SELECT   opa.price_adjustment_id
4442 			,opa.adjustment_name
4443                         ,opa.adjustment_description  --Enhancement 3816014
4444                         ,opa.list_line_no
4445 			,opa.adjustment_type_code
4446 			,opa.operand
4447 			,opa.arithmetic_operator
4448 --Bug 3340636 Starts
4449 			,decode(list_line_type_code,'SUR',
4450 				-1 * (decode(opa.arithmetic_operator,
4451 				null,0,
4452 				'%', opa.operand*ool.unit_list_price/100,
4453 				'AMT',opa.operand,
4454 				'NEWPRICE',ool.unit_list_price - opa.operand)),
4455 			decode(opa.arithmetic_operator,null,0,'%',
4456 			opa.operand*ool.unit_list_price/100,
4457 				'AMT',opa.operand,
4458 			'NEWPRICE',ool.unit_list_price-opa.operand))
4459 					unit_discount_amount
4460 --Bug 3340636 Ends
4461 			 FROM oe_price_adjustments_v opa
4462 			, oe_order_lines_all ool
4463       WHERE   	opa.HEADER_ID = p_header_id
4464 			and opa.line_id is null
4465 		   	and ool.line_id = p_line_id
4466 		   	and ool.header_id = p_header_id
4467 		   	and nvl(opa.applied_flag,'N') = 'Y'
4468 			and nvl(opa.accrual_flag,'N') = 'N'
4469 		   	and list_line_type_code in ('DIS','SUR','PBH')
4470      UNION
4471 	  -- get line adjustments
4472      SELECT   	opa.price_adjustment_id
4473 			,opa.adjustment_name
4474                         ,opa.adjustment_description  --Enhancement 3816014
4475                         ,opa.list_line_no
4476 			,opa.adjustment_type_code
4477 			,opa.operand
4478 			,opa.arithmetic_operator
4479 			,Nvl(opa.adjusted_amount,0)*(-1)	unit_discount_amount    --added nvl for bug 13605684
4480       FROM    	oe_price_adjustments_v opa
4481 			, oe_order_lines_all ool
4482       WHERE  	opa.line_id =p_line_id
4483 		   	and ool.line_id = p_line_id
4484 		   	and ool.header_id = p_header_id
4485 		   	and nvl(opa.applied_flag,'N') = 'Y'
4486 			and nvl(opa.accrual_flag,'N') = 'N'
4487 		   	and list_line_type_code in ('DIS','SUR','PBH')
4488      )
4489 	loop
4490 
4491 	l_index:= l_index+1;
4492 	x_line_adjustments(l_index).price_adjustment_id := adj_cur.price_adjustment_id;
4493  	x_line_adjustments(l_index).adjustment_name := adj_cur.adjustment_name;
4494         x_line_adjustments(l_index).adjustment_description := adj_cur.adjustment_description;  --Enhancement 3816014
4495         x_line_adjustments(l_index).list_line_no := adj_cur.list_line_no;
4496  	x_line_adjustments(l_index).adjustment_type_code:= adj_cur.adjustment_type_code;
4497  	x_line_adjustments(l_index).operand:= adj_cur.operand;
4498  	x_line_adjustments(l_index).arithmetic_operator:= adj_cur.arithmetic_operator;
4499  	x_line_adjustments(l_index).unit_discount_amount := adj_cur.unit_discount_amount;
4500 
4501      end loop;
4502 
4503 
4504     IF l_debug_level  > 0 THEN
4505         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.GET_LINE_ADJUSTMENTS' , 1 ) ;
4506     END IF;
4507 
4508 
4509 EXCEPTION
4510 
4511     WHEN OTHERS THEN
4512 
4513         -- Unexpected error
4514 	IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4515 
4516 	    OE_MSG_PUB.Add_Exc_Msg
4517 	    (   G_PKG_NAME  	    ,
4518     	        'Header_utilities - get_line_adjustments'
4519 	    );
4520 	END IF;
4521 
4522 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4523 
4524 END get_line_adjustments;
4525 
4526 /* Start AuditTrail */
4527 PROCEDURE Pre_Write_Process
4528           (p_x_header_adj_rec IN OUT NOCOPY /* file.sql.39 change */ OE_ORDER_PUB.header_adj_rec_type,
4529            p_old_header_adj_rec IN OE_ORDER_PUB.header_adj_rec_type := OE_ORDER_PUB.G_MISS_HEADER_ADJ_REC) IS
4530 /*local */
4531 l_return_status     varchar2(30);
4532 --
4533 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4534 --
4535 l_org_id                NUMBER(15):=MO_GLOBAL.Get_Current_Org_Id;  --TaxER
4536 l_current_event number := 0;   --TaxER
4537 l_tax_calculation_event_code number := 0;  --TaxER
4538 l_header_rec OE_Order_PUB.Header_Rec_Type;  --TaxER
4539 BEGIN
4540 
4541        --11.5.10 Versioning/Audit Trail updates
4542      IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' AND
4543          OE_GLOBALS.G_ROLL_VERSION <> 'N' AND
4544          NOT OE_GLOBALS.G_HEADER_CREATED THEN
4545        IF OE_GLOBALS.G_REASON_CODE IS NULL AND
4546            OE_GLOBALS.G_CAPTURED_REASON IN ('V','A') THEN
4547          IF p_x_header_adj_rec.change_reason_code <> FND_API.G_MISS_CHAR THEN
4548               OE_GLOBALS.G_REASON_TYPE := 'CHANGE_CODE';
4549               OE_GLOBALS.G_REASON_CODE := p_x_header_adj_rec.change_reason_code;
4550               OE_GLOBALS.G_REASON_COMMENTS := p_x_header_adj_rec.change_reason_text;
4551               OE_GLOBALS.G_CAPTURED_REASON := 'Y';
4552          ELSE
4553               IF l_debug_level  > 0 THEN
4554                  OE_DEBUG_PUB.add('Reason code for versioning is missing', 1);
4555               END IF;
4556               IF OE_GLOBALS.G_UI_FLAG THEN
4557                  raise FND_API.G_EXC_ERROR;
4558               END IF;
4559          END IF;
4560        END IF;
4561 
4562        --log delayed request
4563         oe_debug_pub.add('log versioning request',1);
4564           OE_Delayed_Requests_Pvt.Log_Request(p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
4565                                    p_entity_id => p_x_header_adj_rec.header_id,
4566                                    p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
4567                                    p_requesting_entity_id => p_x_header_adj_rec.price_adjustment_id,
4568                                    p_request_type => OE_GLOBALS.G_VERSION_AUDIT,
4569                                    x_return_status => l_return_status);
4570      END IF;
4571 
4572 if (p_x_header_adj_rec.operation  = OE_GLOBALS.G_OPR_UPDATE) then
4573 
4574    IF OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG = 'Y' OR
4575 	 OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG = 'Y' THEN
4576 
4577       IF l_debug_level  > 0 THEN
4578           oe_debug_pub.add(  'CALL TO RECORD HEADER PRICE ADJ HISTORY' , 5 ) ;
4579       END IF;
4580      --11.5.10 Versioning/Audit Trail updates
4581      IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' THEN
4582           OE_Versioning_Util.Capture_Audit_Info(p_entity_code => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
4583                                            p_entity_id => p_x_header_adj_rec.price_adjustment_id,
4584                                            p_hist_type_code =>  'UPDATE');
4585            --log delayed request
4586              OE_Delayed_Requests_Pvt.Log_Request(p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
4587                                    p_entity_id => p_x_header_adj_rec.header_id,
4588                                    p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
4589                                    p_requesting_entity_id => p_x_header_adj_rec.header_id,
4590                                    p_request_type => OE_GLOBALS.G_VERSION_AUDIT,
4591                                    x_return_status => l_return_status);
4592           OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
4593      ELSE
4594       OE_CHG_ORDER_PVT.RecordHPAdjHist
4595       ( p_header_adj_id => p_x_header_adj_rec.price_adjustment_id,
4596         p_header_adj_rec => null,
4597         p_hist_type_code => 'UPDATE',
4598         p_reason_code => p_x_header_adj_rec.change_reason_code,
4599         p_comments => p_x_header_adj_rec.change_reason_text,
4600         p_wf_activity_code => null,
4601         p_wf_result_code => null,
4602         x_return_status => l_return_status );
4603      END IF;
4604 
4605    END IF;
4606 
4607     IF l_return_status <> FND_API.G_RET_STS_SUCCESS then
4608 	  IF l_debug_level  > 0 THEN
4609 	      oe_debug_pub.add(  'INSERT INTO HEADER PRICE ADJUSTMENTS AUDIT HISTORY CAUSED ERROR' , 1 ) ;
4610 	  END IF;
4611        IF l_return_status = FND_API.G_RET_STS_ERROR then
4612           raise FND_API.G_EXC_ERROR;
4613        ELSE
4614           raise FND_API.G_EXC_UNEXPECTED_ERROR;
4615        END IF;
4616     END IF;
4617 END IF;
4618 
4619 
4620    --TaxER start
4621      IF  (NVL(oe_sys_parameters.value('OE_INVOICE_FREIGHT_AS_LINE',l_org_id), 'N') = 'Y')
4622      AND p_x_header_adj_rec.list_line_type_code = 'FREIGHT_CHARGE' THEN
4623         BEGIN
4624 
4625          IF OE_Order_Cache.g_header_rec.order_type_id is not null THEN
4626 
4627               IF (OE_Order_Cache.g_order_type_rec.order_type_id = FND_API.G_MISS_NUM)
4628                   OR (OE_Order_Cache.g_order_type_rec.order_type_id is null)
4629                   OR (OE_Order_Cache.g_order_type_rec.order_type_id <> OE_Order_Cache.g_header_rec.Order_Type_id)
4630               THEN
4631                          OE_Order_Cache.Load_Order_type(OE_Order_CACHE.g_header_rec.Order_Type_id) ;
4632                END IF ;
4633 
4634               IF (OE_Order_Cache.g_order_type_rec.order_type_id = OE_Order_Cache.g_header_rec.Order_Type_id) THEN
4635                         if (OE_Order_Cache.g_order_type_rec.tax_calculation_event_code = 'ENTERING') then
4636                                 l_tax_calculation_event_code := 0;
4637                         elsif (OE_Order_Cache.g_order_type_rec.tax_calculation_event_code = 'BOOKING') then
4638                                 l_tax_calculation_event_code := 1;
4639                         elsif (OE_Order_Cache.g_order_type_rec.tax_calculation_event_code = 'SHIPPING') then
4640                                 l_tax_calculation_event_code := 2;
4641                         elsif (OE_Order_Cache.g_order_type_rec.tax_calculation_event_code = 'INVOICING') then
4642                                 l_tax_calculation_event_code := 3;
4643                         else
4644                                 l_tax_calculation_event_code := -1;
4645                         end if ;
4646                ELSE
4647                       l_tax_calculation_event_code := 0 ;
4648                END IF ;
4649 
4650 
4651          END IF;
4652 
4653         EXCEPTION
4654            WHEN NO_DATA_FOUND THEN
4655                  l_tax_calculation_event_code := 0;
4656            WHEN OTHERS THEN
4657             IF l_debug_level > 0 THEN
4658              oe_debug_pub.add('OEXUHADB:Failed while trying to query up tax_calcualtion_event for order_type_id ');
4659             END IF;
4660 
4661              RAISE;
4662         END;
4663 
4664       BEGIN
4665 
4666       l_header_rec  := OE_Header_UTIL.Query_Row(p_header_id=> p_x_header_adj_rec.header_id);
4667 
4668       EXCEPTION
4669          WHEN NO_DATA_FOUND THEN  --bug 12594800
4670            l_current_event := 0;  /* Event is Entering */
4671       END;
4672 
4673         IF nvl(l_header_rec.booked_flag, 'N') = 'Y' THEN
4674             l_current_event := 1;  /* current event is booking or higher */
4675         END IF;
4676 
4677         IF l_debug_level > 0 THEN
4678            oe_debug_pub.add('OEXUHADB:Tax Event Code :'||l_tax_calculation_event_code);
4679            oe_debug_pub.add('OEXUHADB:Current Event  :'||l_current_event);
4680         END IF;
4681 
4682 
4683     IF l_current_event >= l_tax_calculation_event_code THEN
4684 
4685           IF (OE_GLOBALS.G_UI_FLAG)
4686              AND nvl(FND_PROFILE.VALUE('ONT_DELAY_TAX_CALC'), 'N') = 'N'
4687           THEN
4688             OE_delayed_requests_Pvt.log_request(
4689                 p_entity_code           => OE_GLOBALS.G_ENTITY_HEADER,
4690                 p_entity_id             => p_x_header_adj_rec.header_id,
4691                 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
4692                 p_requesting_entity_id   => p_x_header_adj_rec.header_id,
4693                 p_request_type          => OE_GLOBALS.g_tax_line,
4694                 x_return_status         => l_return_status);
4695           ELSE
4696             OE_delayed_requests_Pvt.log_request(
4697                 p_entity_code           => OE_GLOBALS.G_ENTITY_ALL,
4698                 p_entity_id             => p_x_header_adj_rec.header_id,
4699                 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
4700                 p_requesting_entity_id   => p_x_header_adj_rec.header_id,
4701                 p_request_type          => OE_GLOBALS.g_tax_line,
4702                 p_param1                => NULL,
4703                 x_return_status         => l_return_status);
4704           END IF;
4705      END IF;
4706 
4707    END IF;
4708 
4709   --TaxER end
4710 
4711 
4712 END Pre_Write_Process;
4713 /* End AuditTrail */
4714 
4715 /* Added the following procedure to fix the bug 2170086 */
4716 PROCEDURE copy_header_adjustments
4717 ( p_from_header_id    IN   NUMBER
4718 , p_to_header_id      IN   NUMBER
4719 , p_to_order_category IN   VARCHAR2
4720 , x_return_status     OUT NOCOPY /* file.sql.39 change */  VARCHAR2
4721 )
4722 is
4723 l_copy_freight_charge      VARCHAR2(1);
4724 l_from_order_category      VARCHAR2(30);
4725 l_from_header_adj_tbl      OE_Order_PUB.Header_Adj_Tbl_Type;
4726 l_from_header_adj_att_tbl  OE_Order_Pub.Header_Adj_Att_Tbl_Type;
4727 l_header_adj_tbl           OE_Order_PUB.Header_Adj_Tbl_Type;
4728 l_header_adj_att_tbl       OE_Order_Pub.Header_Adj_Att_Tbl_Type;
4729 i                          pls_integer;
4730 j                          pls_integer;
4731 l_control_rec              OE_Globals.Control_rec_type;
4732 l_header_rec               OE_Order_PUB.Header_Rec_Type;
4733 l_x_Header_price_Att_tbl   OE_Order_PUB.Header_price_Att_tbl_type;
4734 l_x_Header_Adj_Assoc_tbl   OE_Order_PUB.Header_Adj_Assoc_tbl_type;
4735 l_x_Header_Scredit_tbl     OE_Order_PUB.Header_Scredit_Tbl_Type;
4736 l_line_tbl                 OE_Order_PUB.Line_Tbl_Type;
4737 l_x_Line_Adj_tbl           OE_Order_PUB.Line_Adj_Tbl_Type;
4738 l_x_Line_Adj_Att_tbl       OE_Order_PUB.Line_Adj_Att_tbl_type;
4739 l_x_Line_price_Att_tbl     OE_Order_PUB.Line_price_Att_tbl_type;
4740 l_x_Line_Adj_Assoc_tbl     OE_Order_PUB.Line_Adj_Assoc_tbl_type;
4741 l_x_Line_Scredit_tbl       OE_Order_PUB.Line_Scredit_Tbl_Type;
4742 l_x_lot_serial_tbl         OE_Order_PUB.lot_serial_tbl_type;
4743 l_x_action_request_tbl     OE_Order_PUB.request_tbl_type;
4744 l_x_msg_count              NUMBER;
4745 l_x_msg_data               VARCHAR2(2000);
4746 
4747 cursor c1
4748 is
4749 select order_category_code
4750 from   oe_order_headers
4751 where  header_id = p_from_header_id;
4752 
4753 BEGIN
4754 
4755   oe_debug_pub.add('Entering OE_Header_Adj_Util.copy_header_adjustments ', 1);
4756 
4757   /* Get Order category of the order FROM which adjustments are being copied. */
4758   for c1_rec in c1 loop
4759     l_from_order_category := c1_rec.order_category_code;
4760   end loop;
4761 
4762   /* Header Level adjustment for FROM Header */
4763   IF OE_CODE_CONTROL.Get_Code_Release_Level >= '110510' THEN
4764       OE_Version_History_Util.Query_Rows
4765            (  p_header_id => p_from_header_id
4766             , p_version_number => OE_ORDER_COPY_UTIL.G_HDR_VER_NUMBER
4767             , p_phase_change_flag => OE_ORDER_COPY_UTIL.G_HDR_PHASE_CHANGE_FLAG
4768             , x_Header_Adj_Tbl => l_from_header_adj_tbl);
4769   ELSE
4770       OE_Header_Adj_Util.Query_Rows( p_header_Id      => p_from_header_id
4771                                , x_Header_Adj_Tbl => l_from_header_adj_tbl
4772                                );
4773   END IF;
4774 
4775   i := l_from_header_adj_tbl.First;
4776   While i is not null Loop
4777 
4778     oe_debug_pub.add('inside copy header adj '||l_from_header_adj_tbl(i).list_line_type_code);
4779 
4780     /* If it's a Freight Charge then ... */
4781     If l_from_header_adj_tbl(i).list_line_type_code <> 'FREIGHT_CHARGE' and
4782        l_from_header_adj_tbl(i).list_line_type_code <> 'OM_CALLED_FREIGHT_RATES' and -- bug 4304163
4783        l_from_header_adj_tbl(i).list_line_type_code <> 'OM_CALLED_CHOOSE_SHIP_METHOD' then --Bug3322938
4784 
4785       /* Copy Freight Charge only if the flag was set to 'Y' */
4786 
4787         oe_header_price_aattr_util.Query_Rows(
4788                 p_price_adjustment_id => l_from_header_adj_tbl(i).price_adjustment_id,
4789                 x_header_adj_att_tbl  => l_from_header_adj_att_tbl
4790 			 );
4791 
4792         j := l_from_header_adj_att_tbl.First;
4793         While j is not null Loop
4794 
4795           l_from_header_adj_att_tbl(j).operation           := OE_GLOBALS.G_OPR_CREATE;
4796           l_from_header_adj_att_tbl(j).price_adjustment_id := fnd_api.g_miss_num;
4797           l_from_header_adj_att_tbl(j).adj_index           := l_header_adj_tbl.count+1;
4798           l_from_header_adj_att_tbl(j).price_adj_attrib_id := fnd_api.g_miss_num;
4799 
4800           l_header_adj_att_tbl(l_header_adj_att_tbl.count+1) := l_from_header_adj_att_tbl(j);
4801 
4802           j := l_from_header_adj_att_tbl.Next(j);
4803 
4804         End Loop;
4805 
4806         l_from_header_adj_tbl(i).operation           := OE_GLOBALS.G_OPR_CREATE;
4807         l_from_header_adj_tbl(i).header_id           := p_to_header_id;
4808         l_from_header_adj_tbl(i).invoiced_flag       := 'N';
4809         l_from_header_adj_tbl(i).price_adjustment_id := fnd_api.g_miss_num;
4810 
4811         l_header_adj_tbl(l_header_adj_tbl.count+1)   := l_from_header_adj_tbl(i);
4812 
4813 
4814     End if; -- List Line Type <> Freight Charge
4815 
4816     i:= l_from_header_adj_tbl.Next(i);
4817   End Loop;
4818 
4819   If l_header_adj_tbl.count > 0 or l_header_adj_att_tbl.count > 0 Then
4820 
4821     -- set control record
4822     l_control_rec.controlled_operation := TRUE;
4823     l_control_rec.write_to_DB          := TRUE;
4824     l_control_rec.change_attributes    := TRUE;
4825     l_control_rec.default_attributes   := TRUE;
4826     l_control_rec.validate_entity      := TRUE;
4827     l_control_rec.clear_dependents     := TRUE;
4828 
4829     l_control_rec.process              := FALSE;
4830     l_control_rec.clear_api_cache      := FALSE;
4831     l_control_rec.clear_api_requests   := FALSE;
4832 
4833     oe_debug_pub.add('Before OE_Order_PVT.Process_order',3);
4834 
4835     -- OE_Globals.G_RECURSION_MODE := 'Y';
4836 
4837     -- Call OE_Order_PVT.Process_order
4838     OE_Order_PVT.Process_order
4839     (   p_api_version_number          => 1.0
4840     ,   x_return_status               => x_return_status
4841     ,   x_msg_count                   => l_x_msg_count
4842     ,   x_msg_data                    => l_x_msg_data
4843     ,   p_control_rec                 => l_control_rec
4844     ,   p_x_header_rec                => l_header_rec
4845     ,   p_x_Header_Adj_tbl            => l_Header_Adj_Tbl
4846     ,   p_x_Header_Adj_att_tbl        => l_Header_Adj_Att_Tbl
4847     ,   p_x_Header_Price_Att_Tbl      => l_x_Header_Price_Att_Tbl
4848     ,   p_x_Header_Adj_Assoc_tbl      => l_x_Header_Adj_Assoc_tbl
4849     ,   p_x_Header_Scredit_tbl        => l_x_Header_Scredit_tbl
4850     ,   p_x_line_tbl                  => l_line_tbl
4851     ,   p_x_Line_Adj_tbl              => l_x_Line_Adj_tbl
4852     ,   p_x_Line_Adj_att_tbl          => l_x_Line_Adj_att_tbl
4853     ,   p_x_Line_Price_att_tbl        => l_x_Line_Price_att_tbl
4854     ,   p_x_Line_Adj_Assoc_tbl        => l_x_Line_Adj_Assoc_tbl
4855     ,   p_x_Line_Scredit_tbl          => l_x_Line_Scredit_tbl
4856     ,   p_x_Lot_Serial_tbl            => l_x_Lot_Serial_Tbl
4857     ,   p_x_action_request_tbl        => l_x_Action_Request_tbl
4858     );
4859 
4860     -- OE_Globals.G_RECURSION_MODE := 'N';
4861 
4862     If x_return_status = FND_API.G_RET_STS_UNEXP_ERROR Then
4863       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4864     Elsif x_return_status = FND_API.G_RET_STS_ERROR Then
4865       RAISE FND_API.G_EXC_ERROR;
4866     End If;
4867 
4868   End If;
4869 
4870   oe_debug_pub.add('Exiting OE_Header_Adj_Util.copy_header_adjustments ', 1);
4871 
4872   EXCEPTION
4873 
4874     WHEN FND_API.G_EXC_ERROR THEN
4875       x_return_status := FND_API.G_RET_STS_ERROR;
4876 
4877     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4878       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4879       oe_debug_pub.add(G_PKG_NAME||':copy_header_adjuetments :'||SQLERRM);
4880 
4881     WHEN OTHERS THEN
4882       If FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) Then
4883             OE_MSG_PUB.Add_Exc_Msg
4884             (   G_PKG_NAME
4885             ,   'Copy_header_adjustments '
4886             );
4887       End If;
4888       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4889 
4890 END copy_header_adjustments ;
4891 
4892 /* End of the procedure added to fix the bug 2170086 */
4893 
4894 /* Fix for 1559906: New Procedure to Copy Freight Charges */
4895 
4896 PROCEDURE copy_freight_charges
4897 ( p_from_header_id    IN   NUMBER
4898 , p_to_header_id      IN   NUMBER
4899 , p_to_order_category IN   VARCHAR2
4900 , x_return_status OUT NOCOPY VARCHAR2
4901 
4902 )
4903 is
4904 l_copy_freight_charge      VARCHAR2(1);
4905 l_from_order_category      VARCHAR2(30);
4906 l_from_header_adj_tbl      OE_Order_PUB.Header_Adj_Tbl_Type;
4907 l_from_header_adj_att_tbl  OE_Order_Pub.Header_Adj_Att_Tbl_Type;
4908 l_header_adj_tbl           OE_Order_PUB.Header_Adj_Tbl_Type;
4909 l_header_adj_att_tbl       OE_Order_Pub.Header_Adj_Att_Tbl_Type;
4910 i                          pls_integer;
4911 j                          pls_integer;
4912 l_control_rec              OE_Globals.Control_rec_type;
4913 l_header_rec               OE_Order_PUB.Header_Rec_Type;
4914 l_x_Header_price_Att_tbl   OE_Order_PUB.Header_price_Att_tbl_type;
4915 l_x_Header_Adj_Assoc_tbl   OE_Order_PUB.Header_Adj_Assoc_tbl_type;
4916 l_x_Header_Scredit_tbl     OE_Order_PUB.Header_Scredit_Tbl_Type;
4917 l_line_tbl                 OE_Order_PUB.Line_Tbl_Type;
4918 l_x_Line_Adj_tbl           OE_Order_PUB.Line_Adj_Tbl_Type;
4919 l_x_Line_Adj_Att_tbl       OE_Order_PUB.Line_Adj_Att_tbl_type;
4920 l_x_Line_price_Att_tbl     OE_Order_PUB.Line_price_Att_tbl_type;
4921 l_x_Line_Adj_Assoc_tbl     OE_Order_PUB.Line_Adj_Assoc_tbl_type;
4922 l_x_Line_Scredit_tbl       OE_Order_PUB.Line_Scredit_Tbl_Type;
4923 l_x_lot_serial_tbl         OE_Order_PUB.lot_serial_tbl_type;
4924 l_x_action_request_tbl     OE_Order_PUB.request_tbl_type;
4925 l_x_msg_count              NUMBER;
4926 l_x_msg_data               VARCHAR2(2000);
4927 
4928 cursor c1
4929 is
4930 select order_category_code
4931 from   oe_order_headers
4932 where  header_id = p_from_header_id;
4933 --serla begin
4934 l_x_Header_Payment_tbl        OE_Order_PUB.Header_Payment_Tbl_Type;
4935 l_x_Line_Payment_tbl          OE_Order_PUB.Line_Payment_Tbl_Type;
4936 --serla end
4937 --
4938 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4939 --
4940 BEGIN
4941 
4942   IF l_debug_level  > 0 THEN
4943       oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.COPY_FREIGHT_CHARGES' , 1 ) ;
4944   END IF;
4945 
4946   /* Get Order category of the order FROM which charges are being copied. */
4947   for c1_rec in c1 loop
4948     l_from_order_category := c1_rec.order_category_code;
4949   end loop;
4950 
4951   /* Header Level Charges for FROM Header */
4952   IF OE_CODE_CONTROL.Get_Code_Release_Level >= '110510' THEN
4953       OE_Version_History_Util.Query_Rows
4954            (  p_header_id => p_from_header_id
4955             , p_version_number => OE_ORDER_COPY_UTIL.G_HDR_VER_NUMBER
4956             , p_phase_change_flag => OE_ORDER_COPY_UTIL.G_HDR_PHASE_CHANGE_FLAG
4957             , x_Header_Adj_Tbl => l_from_header_adj_tbl);
4958   ELSE
4959       OE_Header_Adj_Util.Query_Rows( p_header_Id      => p_from_header_id
4960                                , x_Header_Adj_Tbl => l_from_header_adj_tbl);
4961   END IF;
4962 
4963   i := l_from_header_adj_tbl.First;
4964   While i is not null Loop
4965 
4966     oe_debug_pub.add('Inside copy frieght charges .. '||l_from_header_adj_tbl(i).list_line_type_code);
4967 
4968     l_copy_freight_charge := 'N';
4969 
4970     /* If it's a Freight Charge then ... */
4971     If l_from_header_adj_tbl(i).list_line_type_code = 'FREIGHT_CHARGE' then
4972 
4973       /* If copying from Order to Return then ... */
4974       If l_from_order_category = 'ORDER' and p_to_order_category = 'RETURN' then
4975 
4976 	   If (NVL(l_from_header_Adj_Tbl(i).include_on_returns_flag,'Y') = 'Y' and
4977             NVL(l_from_header_Adj_Tbl(i).applied_flag,'N') = 'Y') then
4978 
4979           l_copy_freight_charge := 'Y';
4980 
4981           if l_from_header_adj_tbl(i).credit_or_charge_flag = 'C' then
4982             l_from_header_adj_tbl(i).credit_or_charge_flag := 'D';
4983           else
4984             l_from_header_adj_tbl(i).credit_or_charge_flag := 'C';
4985           end if;
4986 
4987           l_from_header_adj_tbl(i).updated_flag          := 'Y';
4988           l_from_header_adj_tbl(i).change_reason_code    := 'MISC';
4989           l_from_header_adj_tbl(i).change_reason_text    := 'Reversing Credit';
4990 
4991         End if;
4992 
4993       /* If copying from Return to Order then ... */
4994       Elsif l_from_order_category = 'RETURN' and p_to_order_category = 'ORDER' then
4995 
4996         l_copy_freight_charge := 'Y';
4997 
4998         if l_from_header_adj_tbl(i).credit_or_charge_flag = 'C' then
4999           l_from_header_adj_tbl(i).credit_or_charge_flag := 'D';
5000         else
5001           l_from_header_adj_tbl(i).credit_or_charge_flag := 'C';
5002         end if;
5003 
5004         l_from_header_adj_tbl(i).updated_flag          := 'N';
5005         l_from_header_adj_tbl(i).change_reason_code    := NULL;
5006         l_from_header_adj_tbl(i).change_reason_text    := NULL;
5007 
5008       /*
5009       ** Else copying from:
5010       ** Order-> Order, Return-> Return, Mixed-> Mixed, Order-> Mixed, Return-> Mixed.
5011       */
5012       Else
5013 
5014         /* Copy the charge as it is */
5015            l_copy_freight_charge := 'Y';
5016 
5017       End if; -- Order Category
5018 
5019       /* Copy Freight Charge only if the flag was set to 'Y' */
5020 	 If l_copy_freight_charge = 'Y' Then
5021 
5022         oe_header_price_aattr_util.Query_Rows(
5023                 p_price_adjustment_id => l_from_header_adj_tbl(i).price_adjustment_id,
5024                 x_header_adj_att_tbl  => l_from_header_adj_att_tbl
5025 			 );
5026 
5027         j := l_from_header_adj_att_tbl.First;
5028         While j is not null Loop
5029 
5030           l_from_header_adj_att_tbl(j).operation           := OE_GLOBALS.G_OPR_CREATE;
5031           l_from_header_adj_att_tbl(j).price_adjustment_id := fnd_api.g_miss_num;
5032           l_from_header_adj_att_tbl(j).adj_index           := l_header_adj_tbl.count+1;
5033           l_from_header_adj_att_tbl(j).price_adj_attrib_id := fnd_api.g_miss_num;
5034 
5035           l_header_adj_att_tbl(l_header_adj_att_tbl.count+1) := l_from_header_adj_att_tbl(j);
5036 
5037           j := l_from_header_adj_att_tbl.Next(j);
5038 
5039         End Loop;
5040 
5041         l_from_header_adj_tbl(i).operation           := OE_GLOBALS.G_OPR_CREATE;
5042         l_from_header_adj_tbl(i).header_id           := p_to_header_id;
5043         l_from_header_adj_tbl(i).invoiced_flag       := 'N';
5044 	l_from_header_adj_tbl(i).invoiced_amount     := NULL;
5045         l_from_header_adj_tbl(i).price_adjustment_id := fnd_api.g_miss_num;
5046 
5047         l_header_adj_tbl(l_header_adj_tbl.count+1)   := l_from_header_adj_tbl(i);
5048 
5049       End If;
5050 
5051     End if; -- List Line Type = Freight Charge
5052 
5053     i:= l_from_header_adj_tbl.Next(i);
5054   End Loop;
5055 
5056   If l_header_adj_tbl.count > 0 or l_header_adj_att_tbl.count > 0 Then
5057 
5058     -- set control record
5059     l_control_rec.controlled_operation := TRUE;
5060     l_control_rec.write_to_DB          := TRUE;
5061     l_control_rec.change_attributes    := TRUE;
5062     l_control_rec.default_attributes   := TRUE;
5063     l_control_rec.validate_entity      := TRUE;
5064     l_control_rec.clear_dependents     := TRUE;
5065 
5066     l_control_rec.process              := FALSE;
5067     l_control_rec.clear_api_cache      := FALSE;
5068     l_control_rec.clear_api_requests   := FALSE;
5069 
5070     IF l_debug_level  > 0 THEN
5071         oe_debug_pub.add(  'BEFORE OE_ORDER_PVT.PROCESS_ORDER' , 3 ) ;
5072     END IF;
5073 
5074     -- OE_Globals.G_RECURSION_MODE := 'Y';
5075 
5076     -- Call OE_Order_PVT.Process_order
5077     OE_Order_PVT.Process_order
5078     (   p_api_version_number          => 1.0
5079     ,   x_return_status               => x_return_status
5080     ,   x_msg_count                   => l_x_msg_count
5081     ,   x_msg_data                    => l_x_msg_data
5082     ,   p_control_rec                 => l_control_rec
5083     ,   p_x_header_rec                => l_header_rec
5084     ,   p_x_Header_Adj_tbl            => l_Header_Adj_Tbl
5085     ,   p_x_Header_Adj_att_tbl        => l_Header_Adj_Att_Tbl
5086     ,   p_x_Header_Price_Att_Tbl      => l_x_Header_Price_Att_Tbl
5087     ,   p_x_Header_Adj_Assoc_tbl      => l_x_Header_Adj_Assoc_tbl
5088     ,   p_x_Header_Scredit_tbl        => l_x_Header_Scredit_tbl
5089 --serla begin
5090     ,   p_x_Header_Payment_tbl          => l_x_Header_Payment_tbl
5091 --serla end
5092     ,   p_x_line_tbl                  => l_line_tbl
5093     ,   p_x_Line_Adj_tbl              => l_x_Line_Adj_tbl
5094     ,   p_x_Line_Adj_att_tbl          => l_x_Line_Adj_att_tbl
5095     ,   p_x_Line_Price_att_tbl        => l_x_Line_Price_att_tbl
5096     ,   p_x_Line_Adj_Assoc_tbl        => l_x_Line_Adj_Assoc_tbl
5097     ,   p_x_Line_Scredit_tbl          => l_x_Line_Scredit_tbl
5098 --serla begin
5099     ,   p_x_Line_Payment_tbl            => l_x_Line_Payment_tbl
5100 --serla end
5101     ,   p_x_Lot_Serial_tbl            => l_x_Lot_Serial_Tbl
5102     ,   p_x_action_request_tbl        => l_x_Action_Request_tbl
5103     );
5104 
5105     -- OE_Globals.G_RECURSION_MODE := 'N';
5106 
5107     If x_return_status = FND_API.G_RET_STS_UNEXP_ERROR Then
5108       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5109     Elsif x_return_status = FND_API.G_RET_STS_ERROR Then
5110       RAISE FND_API.G_EXC_ERROR;
5111     End If;
5112 
5113   End If;
5114 
5115   IF l_debug_level  > 0 THEN
5116       oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.COPY_FREIGHT_CHARGES' , 1 ) ;
5117   END IF;
5118 
5119   EXCEPTION
5120 
5121     WHEN FND_API.G_EXC_ERROR THEN
5122       x_return_status := FND_API.G_RET_STS_ERROR;
5123 
5124     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5125       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5126       IF l_debug_level  > 0 THEN
5127           oe_debug_pub.add(  G_PKG_NAME||':COPY_FREIGHT_CHARGES:'||SQLERRM ) ;
5128       END IF;
5129 
5130     WHEN OTHERS THEN
5131       If FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) Then
5132             OE_MSG_PUB.Add_Exc_Msg
5133             (   G_PKG_NAME
5134             ,   'Copy_Freight_Charges'
5135             );
5136       End If;
5137       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5138 
5139 END copy_freight_charges;
5140 
5141 --Recurring Charges
5142 FUNCTION  get_rec_adj_total
5143 ( p_header_id       IN   NUMBER := null
5144 , p_line_id       IN   NUMBER :=null
5145 , p_charge_periodicity_code       IN    VARCHAR2
5146 )
5147 		RETURN NUMBER
5148 is
5149 l_adj_total NUMBER := 0;
5150 Is_fmt Boolean;
5151 --
5152 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5153 --
5154 BEGIN
5155 
5156     IF l_debug_level  > 0 THEN
5157         oe_debug_pub.add(  'ENTERING OE_HEADER_ADJ_UTIL.GET_ADJ_TOTAL' , 1 ) ;
5158     END IF;
5159 
5160     IF (p_header_id IS NOT NULL AND
5161        NVL(p_header_id,-1)<>NVL(OE_ORDER_UTIL.G_Header_id,-10))
5162     OR  OE_ORDER_UTIL.G_Precision IS NULL THEN
5163       Is_fmt:=   OE_ORDER_UTIL.Get_Precision(
5164                 p_header_id=>p_header_id
5165                );
5166     END IF;
5167 
5168     IF (p_line_id IS NOT NULL AND
5169     NVL(p_Line_id,-1)<>NVL(OE_ORDER_UTIL.G_Line_id,-10))
5170     OR  OE_ORDER_UTIL.G_Precision IS NULL THEN
5171       Is_fmt:=   OE_ORDER_UTIL.Get_Precision(
5172                 p_line_id=>p_line_id
5173                );
5174     END IF;
5175 
5176     IF OE_ORDER_UTIL.G_Precision IS NULL THEN
5177       OE_ORDER_UTIL.G_Precision:=2;
5178     END IF;
5179 
5180 
5181     --	Query total.
5182     --  Separating into two separate SQLs for bug 3090569 --jvicenti
5183 
5184     IF p_header_id IS NOT NULL THEN
5185         SELECT  sum(ROUND(((unit_selling_price - unit_list_price)*
5186                           ordered_quantity) ,OE_ORDER_UTIL.G_Precision))
5187         INTO    l_adj_total
5188         FROM    oe_order_lines_all
5189         WHERE   HEADER_ID = p_header_id
5190         AND     nvl(charge_periodicity_code,'ONE') = p_charge_periodicity_code
5191         AND	nvl(cancelled_flag,'N') ='N';
5192     END IF;
5193 
5194     IF l_adj_total IS NULL THEN
5195 
5196 		l_adj_total := 0;
5197 
5198     END IF;
5199 
5200     IF l_debug_level  > 0 THEN
5201         oe_debug_pub.add(  'EXITING OE_HEADER_ADJ_UTIL.GET_ADJ_TOTAL' , 1 ) ;
5202     END IF;
5203 
5204     RETURN l_adj_total;
5205 
5206 EXCEPTION
5207 
5208     WHEN OTHERS THEN
5209 
5210         -- Unexpected error
5211 	IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
5212 
5213 	    OE_MSG_PUB.Add_Exc_Msg
5214 	    (   G_PKG_NAME  	    ,
5215     	        'Price_Utilities - Get_Adj_Total'
5216 	    );
5217 	END IF;
5218 
5219 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5220 
5221 END Get_Rec_Adj_Total;
5222 -- Recurring CHarges
5223 
5224 --rc
5225 -- New function added to return the recurring amount given the order level modifier and periodicity
5226 FUNCTION  get_rec_order_adj_total
5227    ( p_header_id       IN   NUMBER DEFAULT NULL
5228      , p_price_adjustment_id IN NUMBER DEFAULT NULL
5229      , p_charge_periodicity_code       IN    VARCHAR2 DEFAULT NULL
5230      )
5231    RETURN NUMBER
5232 Is
5233    l_rec_list_price_total NUMBER := 0;
5234    l_operand NUMBER :=0;
5235    l_order_adj_total NUMBER := 0;
5236    l_status_code       VARCHAR2(30);
5237    l_price_list_id     NUMBER;
5238    l_currency_code     VARCHAR2(15);
5239    l_pricing_date      DATE;
5240    l_header_id         NUMBER;
5241    l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5242 
5243 BEGIN
5244    IF l_debug_level > 0 THEN
5245       oe_debug_pub.add('ENTERING OE_HEADER_ADJ_UTIL.GET_REC_ORDER_ADJ_TOTAL');
5246    END IF;
5247 
5248    IF p_price_adjustment_id IS NULL OR
5249       p_charge_periodicity_code IS NULL THEN
5250          RETURN NULL;
5251    ELSE
5252       IF p_header_id IS NULL THEN
5253 	 BEGIN
5254 	    SELECT header_id INTO l_header_id
5255 	    FROM oe_price_adjustments
5256 	    WHERE price_adjustment_id = p_price_adjustment_id;
5257 
5258 	    IF l_header_id IS NULL THEN
5259 	       RETURN NULL;
5260 	    END IF;
5261 	 EXCEPTION
5262 	    WHEN OTHERS THEN
5263 	       IF l_debug_level > 0 THEN
5264 		  oe_debug_pub.add('Exception while querying for the adjustment record : ' || SQLERRM);
5265 	       END IF;
5266 	       RETURN NULL;
5267 	 END;
5268       ELSE
5269         l_header_id := p_header_id;
5270       END IF;
5271    END IF;
5272 
5273    IF l_debug_level > 0 THEN
5274       oe_debug_pub.add('l_header_id : ' || l_header_id);
5275       oe_debug_pub.add('p_price_adjustment_id : ' || p_price_adjustment_id);
5276       oe_debug_pub.add('p_charge_periodicity_code : ' || p_charge_periodicity_code);
5277    END IF;
5278 
5279 
5280    SELECT  nvl(sum(unit_list_price * ordered_quantity), 0) --bug5354658
5281    INTO    l_rec_list_price_total
5282    FROM    oe_order_lines_all
5283    WHERE   HEADER_ID = l_header_id
5284    AND     charge_periodicity_code = p_charge_periodicity_code
5285    AND     nvl(cancelled_flag,'N') ='N';
5286 
5287    IF l_debug_level > 0 THEN
5288       oe_debug_pub.add('l_rec_list_price_total : ' || l_rec_list_price_total);
5289    END IF;
5290 
5291    SELECT nvl(operand,0) * decode(list_line_type_code, 'DIS', -1, 'SUR', 1)
5292    INTO l_operand
5293    FROM oe_price_adjustments
5294    WHERE price_adjustment_id = p_price_adjustment_id
5295    AND line_id IS NULL
5296    AND arithmetic_operator = '%';
5297 
5298    IF l_debug_level > 0 THEN
5299       oe_debug_pub.add('l_operand : ' || l_operand);
5300    END IF;
5301 
5302    l_order_adj_total := l_rec_list_price_total * (l_operand / 100);
5303 
5304    IF l_order_adj_total <> 0 THEN
5305       BEGIN
5306 	 SELECT price_list_id,
5307 	        transactional_curr_code,
5308 	        nvl(pricing_date,ordered_date)
5309 	 INTO l_price_list_id,l_currency_code,l_pricing_date
5310 	 FROM   Oe_Order_Headers_All
5311 	 WHERE  header_id = p_header_id;
5312 
5313 	 QP_UTIL_PUB.round_price
5314 	    (p_operand                => l_order_adj_total,
5315 	     p_rounding_factor        => NULL,
5316 	     p_use_multi_currency     => 'Y',
5317 	     p_price_list_id          => l_price_list_id,
5318 	     p_currency_code          => l_currency_code,
5319 	     p_pricing_effective_date => l_pricing_date,
5320 	     x_rounded_operand        => l_order_adj_total,
5321 	     x_status_code            => l_status_code,
5322 	     p_operand_type           => 'A'
5323 	     );
5324 
5325 	 IF l_order_adj_total IS NULL Then
5326 	    IF l_debug_level > 0 THEN
5327 	       oe_debug_pub.add('Error in QP_UTIL_PUB.round_price. Unable to perform rounding');
5328 	    END IF;
5329 	    --pricing has some errors retore the old adjusted_amount
5330 	    l_order_adj_total := l_rec_list_price_total * (l_operand / 100);
5331 	 END IF;
5332       EXCEPTION
5333 	 WHEN NO_DATA_FOUND THEN
5334 	    IF l_debug_level > 0 THEN
5335 	       oe_debug_pub.add('Unable to query header to perform rounding:'||p_header_id);
5336 	    END IF;
5337 	       l_order_adj_total := 0;
5338 	 WHEN OTHERS THEN
5339 	    IF l_debug_level > 0 THEN
5340 	       oe_debug_pub.add('OEXUHADB.pls'||SQLERRM);
5341 	    END IF;
5342 
5343 	    l_order_adj_total := l_rec_list_price_total * (l_operand / 100);
5344       END;
5345 
5346   END IF;
5347 
5348   IF l_debug_level > 0 THEN
5349       oe_debug_pub.add('l_order_adj_total : ' || l_order_adj_total);
5350       oe_debug_pub.add('EXITING OE_HEADER_ADJ_UTIL.GET_REC_ORDER_ADJ_TOTAL');
5351   END IF;
5352 
5353   Return l_order_adj_total;
5354 
5355 EXCEPTION
5356    WHEN NO_DATA_FOUND THEN
5357       RETURN NULL;
5358 END get_rec_order_adj_total;
5359 
5360 END OE_Header_Adj_Util;