[Home] [Help]
PACKAGE BODY: APPS.OE_LINE_ADJ_UTIL
Source
1 PACKAGE BODY OE_Line_Adj_Util AS
2 /* $Header: OEXULADB.pls 120.9.12010000.5 2009/01/07 10:19:07 aambasth ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_Line_Adj_Util';
7
8
9 Type pbh_tbl_type Is Table Of Number Index by Binary_Integer;
10
11 Procedure Process_Cancelled_Lines(p_x_new_line_rec In Oe_Order_Pub.line_rec_type, p_ordered_quantity In Number);
12 --bug7491829 added p_ordered_quantity
13
14 Procedure Log_Pricing_Requests (p_x_new_line_rec in out nocopy Oe_Order_Pub.Line_Rec_Type,
15 p_old_line_rec in Oe_Order_Pub.Line_Rec_Type,
16 p_no_price_flag Boolean Default False,
17 p_price_flag Varchar2 Default 'Y');
18
19 FUNCTION G_MISS_OE_AK_LINE_ADJ_REC
20 RETURN OE_AK_LINE_PRCADJS_V%ROWTYPE IS
21 l_rowtype_rec OE_AK_LINE_PRCADJS_V%ROWTYPE;
22 BEGIN
23
24 l_rowtype_rec.ATTRIBUTE1 := FND_API.G_MISS_CHAR;
25 l_rowtype_rec.ATTRIBUTE10 := FND_API.G_MISS_CHAR;
26 l_rowtype_rec.ATTRIBUTE11 := FND_API.G_MISS_CHAR;
27 l_rowtype_rec.ATTRIBUTE12 := FND_API.G_MISS_CHAR;
28 l_rowtype_rec.ATTRIBUTE13 := FND_API.G_MISS_CHAR;
29 l_rowtype_rec.ATTRIBUTE14 := FND_API.G_MISS_CHAR;
30 l_rowtype_rec.ATTRIBUTE15 := FND_API.G_MISS_CHAR;
31 l_rowtype_rec.ATTRIBUTE2 := FND_API.G_MISS_CHAR;
32 l_rowtype_rec.ATTRIBUTE3 := FND_API.G_MISS_CHAR;
33 l_rowtype_rec.ATTRIBUTE4 := FND_API.G_MISS_CHAR;
34 l_rowtype_rec.ATTRIBUTE5 := FND_API.G_MISS_CHAR;
35 l_rowtype_rec.ATTRIBUTE6 := FND_API.G_MISS_CHAR;
36 l_rowtype_rec.ATTRIBUTE7 := FND_API.G_MISS_CHAR;
37 l_rowtype_rec.ATTRIBUTE8 := FND_API.G_MISS_CHAR;
38 l_rowtype_rec.ATTRIBUTE9 := FND_API.G_MISS_CHAR;
39 l_rowtype_rec.CONTEXT := FND_API.G_MISS_CHAR;
40 l_rowtype_rec.CREATED_BY := FND_API.G_MISS_NUM;
41 l_rowtype_rec.CREATION_DATE := FND_API.G_MISS_DATE;
42 l_rowtype_rec.DB_FLAG := FND_API.G_MISS_CHAR;
43 l_rowtype_rec.HEADER_ID := FND_API.G_MISS_NUM;
44 l_rowtype_rec.LAST_UPDATED_BY := FND_API.G_MISS_NUM;
45 l_rowtype_rec.LAST_UPDATE_DATE := FND_API.G_MISS_DATE;
46 l_rowtype_rec.LAST_UPDATE_LOGIN := FND_API.G_MISS_NUM;
47 l_rowtype_rec.LINE_ID := FND_API.G_MISS_NUM;
48 l_rowtype_rec.OPERATION := FND_API.G_MISS_CHAR;
49 l_rowtype_rec.LINE_INDEX := FND_API.G_MISS_NUM;
50 l_rowtype_rec.PERCENT := FND_API.G_MISS_NUM;
51 l_rowtype_rec.RETURN_STATUS := FND_API.G_MISS_CHAR;
52 l_rowtype_rec.AUTOMATIC_FLAG := FND_API.G_MISS_CHAR;
53 l_rowtype_rec.DISCOUNT_ID := FND_API.G_MISS_NUM;
54 l_rowtype_rec.DISCOUNT_LINE_ID := FND_API.G_MISS_NUM;
55 l_rowtype_rec.PRICE_ADJUSTMENT_ID := FND_API.G_MISS_NUM;
56 l_rowtype_rec.PROGRAM_APPLICATION_ID := FND_API.G_MISS_NUM;
57 l_rowtype_rec.PROGRAM_ID := FND_API.G_MISS_NUM;
58 l_rowtype_rec.PROGRAM_UPDATE_DATE := FND_API.G_MISS_DATE;
59 l_rowtype_rec.request_id := FND_API.G_MISS_NUM;
60 -- l_rowtype_rec.orig_sys_discount_ref := FND_API.G_MISS_CHAR;
61 l_rowtype_rec.list_header_id := FND_API.G_MISS_NUM;
62 l_rowtype_rec.list_line_id := FND_API.G_MISS_NUM;
63 l_rowtype_rec.list_line_type_code := FND_API.G_MISS_CHAR;
64 l_rowtype_rec.modifier_mechanism_type_code := FND_API.G_MISS_CHAR;
65 l_rowtype_rec.modified_from := FND_API.G_MISS_CHAR;
66 l_rowtype_rec.modified_to := FND_API.G_MISS_CHAR;
67 l_rowtype_rec.updated_flag := FND_API.G_MISS_CHAR;
68 l_rowtype_rec.update_allowed := FND_API.G_MISS_CHAR;
69 l_rowtype_rec.applied_flag := FND_API.G_MISS_CHAR;
70 l_rowtype_rec.change_reason_code := FND_API.G_MISS_CHAR;
71 l_rowtype_rec.change_reason_text := FND_API.G_MISS_CHAR;
72 l_rowtype_rec.operand := FND_API.G_MISS_NUM;
73 --uom begin
74 l_rowtype_rec.operand_per_pqty := FND_API.G_MISS_NUM;
75 l_rowtype_rec.adjusted_amount_per_pqty := FND_API.G_MISS_NUM;
76 --uom end
77
78 l_rowtype_rec.arithmetic_operator := FND_API.G_MISS_CHAR;
79 l_rowtype_rec.cost_id := FND_API.G_MISS_NUM;
80 l_rowtype_rec.tax_code := FND_API.G_MISS_CHAR;
81 l_rowtype_rec.tax_exempt_flag := FND_API.G_MISS_CHAR;
82 l_rowtype_rec.tax_exempt_number := FND_API.G_MISS_CHAR;
83 l_rowtype_rec.tax_exempt_reason_code := FND_API.G_MISS_CHAR;
84 l_rowtype_rec.parent_adjustment_id := FND_API.G_MISS_NUM;
85 l_rowtype_rec.invoiced_flag := FND_API.G_MISS_CHAR;
86 l_rowtype_rec.estimated_flag := FND_API.G_MISS_CHAR;
87 l_rowtype_rec.inc_in_sales_performance := FND_API.G_MISS_CHAR;
88 l_rowtype_rec.split_action_code := FND_API.G_MISS_CHAR;
89 l_rowtype_rec.adjusted_amount := FND_API.G_MISS_NUM;
90 l_rowtype_rec.pricing_phase_id := FND_API.G_MISS_NUM;
91 l_rowtype_rec.charge_type_code := FND_API.G_MISS_CHAR;
92 l_rowtype_rec.charge_subtype_code := FND_API.G_MISS_CHAR;
93 l_rowtype_rec.list_line_no := FND_API.G_MISS_CHAR;
94 l_rowtype_rec.source_system_code := FND_API.G_MISS_CHAR;
95 l_rowtype_rec.benefit_qty := FND_API.G_MISS_NUM;
96 l_rowtype_rec.benefit_uom_code := FND_API.G_MISS_CHAR;
97 l_rowtype_rec.print_on_invoice_flag := FND_API.G_MISS_CHAR;
98 l_rowtype_rec.expiration_date := FND_API.G_MISS_DATE;
99 l_rowtype_rec.rebate_transaction_type_code := FND_API.G_MISS_CHAR;
100 l_rowtype_rec.rebate_transaction_reference := FND_API.G_MISS_CHAR;
101 l_rowtype_rec.rebate_payment_system_code := FND_API.G_MISS_CHAR;
102 l_rowtype_rec.redeemed_date := FND_API.G_MISS_DATE;
103 l_rowtype_rec.redeemed_flag := FND_API.G_MISS_CHAR;
104 l_rowtype_rec.accrual_flag := FND_API.G_MISS_CHAR;
105 l_rowtype_rec.range_break_quantity := FND_API.G_MISS_NUM;
106 l_rowtype_rec.accrual_conversion_rate := FND_API.G_MISS_NUM;
107 l_rowtype_rec.pricing_group_sequence := FND_API.G_MISS_NUM;
108 l_rowtype_rec.modifier_level_code := FND_API.G_MISS_CHAR;
109 l_rowtype_rec.price_break_type_code := FND_API.G_MISS_CHAR;
110 l_rowtype_rec.substitution_attribute := FND_API.G_MISS_CHAR;
111 l_rowtype_rec.proration_type_code := FND_API.G_MISS_CHAR;
112 l_rowtype_rec.credit_or_charge_flag := FND_API.G_MISS_CHAR;
113 l_rowtype_rec.include_on_returns_flag := FND_API.G_MISS_CHAR;
114 l_rowtype_rec.AC_ATTRIBUTE1 := FND_API.G_MISS_CHAR;
115 l_rowtype_rec.AC_ATTRIBUTE10 := FND_API.G_MISS_CHAR;
116 l_rowtype_rec.AC_ATTRIBUTE11 := FND_API.G_MISS_CHAR;
117 l_rowtype_rec.AC_ATTRIBUTE12 := FND_API.G_MISS_CHAR;
118 l_rowtype_rec.AC_ATTRIBUTE13 := FND_API.G_MISS_CHAR;
119 l_rowtype_rec.AC_ATTRIBUTE14 := FND_API.G_MISS_CHAR;
120 l_rowtype_rec.AC_ATTRIBUTE15 := FND_API.G_MISS_CHAR;
121 l_rowtype_rec.AC_ATTRIBUTE2 := FND_API.G_MISS_CHAR;
122 l_rowtype_rec.AC_ATTRIBUTE3 := FND_API.G_MISS_CHAR;
123 l_rowtype_rec.AC_ATTRIBUTE4 := FND_API.G_MISS_CHAR;
124 l_rowtype_rec.AC_ATTRIBUTE5 := FND_API.G_MISS_CHAR;
125 l_rowtype_rec.AC_ATTRIBUTE6 := FND_API.G_MISS_CHAR;
126 l_rowtype_rec.AC_ATTRIBUTE7 := FND_API.G_MISS_CHAR;
127 l_rowtype_rec.AC_ATTRIBUTE8 := FND_API.G_MISS_CHAR;
128 l_rowtype_rec.AC_ATTRIBUTE9 := FND_API.G_MISS_CHAR;
129 l_rowtype_rec.AC_CONTEXT := FND_API.G_MISS_CHAR;
130
131 RETURN l_rowtype_rec;
132
133 END G_MISS_OE_AK_LINE_ADJ_REC;
134
135 Procedure Append_Association (p_line_adj_tbl in Oe_Order_Pub.line_adj_tbl_type,
136 px_line_adj_assoc_tbl in out nocopy Oe_Order_Pub.line_adj_assoc_tbl_type,
137 p_pbh_tbl in pbh_tbl_type
138 ) As
139
140 CURSOR l_price_Adj_assoc_csr(p_price_adjustment_id In Number) IS
141 SELECT
142 a.PRICE_ADJUSTMENT_ID
143 ,a.CREATION_DATE
144 ,a.CREATED_BY
145 ,a.LAST_UPDATE_DATE
146 ,a.LAST_UPDATED_BY
147 ,a.LAST_UPDATE_LOGIN
148 ,a.PROGRAM_APPLICATION_ID
149 ,a.PROGRAM_ID
150 ,a.PROGRAM_UPDATE_DATE
151 ,a.REQUEST_ID
152 ,a.PRICE_ADJ_ASSOC_ID
153 ,a.LINE_ID
154 ,a.RLTD_PRICE_ADJ_ID
155 ,a.LOCK_CONTROL
156 from oe_price_adj_Assocs a, oe_price_adjustments b
157 where a.price_adjustment_id = p_price_adjustment_id
158 and a.rltd_price_adj_id = b.price_adjustment_id
159 and b.list_line_type_code in ('SUR','DIS');
160 I PLS_INTEGER;
161 J PLS_INTEGER;
162 K PLS_INTEGER;
163 cnt PLS_INTEGER:=0;
164 l_found1 Boolean := False;
165 l_found2 Boolean := False;
166 --
167 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
168 --
169 Begin
170 IF l_debug_level > 0 THEN
171 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.APPEND_ASSOCIATIONS' , 1 ) ;
172 END IF;
173 I:=p_pbh_tbl.first;
174 while I is not null loop
175 IF l_debug_level > 0 THEN
176 oe_debug_pub.add( 'PBH'||P_PBH_TBL ( I ) , 1 ) ;
177 END IF;
178 I:=p_pbh_tbl.next(I);
179 end loop;
180
181 I:=p_line_adj_tbl.first;
182 while I is not null loop
183 IF l_debug_level > 0 THEN
184 oe_debug_pub.add( 'LINE ADJ'||P_LINE_ADJ_TBL ( I ) .PRICE_ADJUSTMENT_ID||' '||P_LINE_ADJ_TBL ( I ) .LIST_LINE_TYPE_CODE , 1 ) ;
185 END IF;
186 I:=p_line_adj_tbl.next(I);
187 end loop;
188
189 I:=p_pbh_tbl.first;
190 While I Is Not Null Loop
191 For l_asso In l_price_Adj_assoc_csr(p_line_adj_tbl(p_pbh_tbl(I)).price_adjustment_id) Loop
192 l_found1 := False;
193 l_found2 := False;
194 cnt := cnt +1;
195 J := p_line_adj_tbl.first;
196 While J Is Not Null Loop
197 If p_line_adj_tbl(J).price_adjustment_id = l_asso.rltd_price_adj_id AND p_line_adj_tbl(J).operation = OE_GLOBALS.G_OPR_CREATE Then
198 px_line_adj_assoc_tbl(cnt).rltd_adj_index := J;
199 l_found1 := True;
200 ElsIf p_line_adj_tbl(j).price_adjustment_id = l_asso.price_adjustment_id Then
201 px_line_adj_assoc_tbl(cnt).adj_index := J;
202 px_line_adj_assoc_tbl(cnt).price_adjustment_id := fnd_api.g_miss_num;
203 px_line_adj_assoc_tbl(cnt).price_adj_assoc_id := fnd_api.g_miss_num;
204 l_found2 := True;
205 End If;
206 px_line_adj_assoc_tbl(cnt).operation:=OE_GLOBALS.G_OPR_CREATE;
207 Exit When l_found1 and l_found2;
208 J:= p_line_adj_tbl.next(J);
209 End Loop;
210 End Loop;
211 I:=p_pbh_tbl.next(I);
212 End Loop;
213 IF l_debug_level > 0 THEN
214 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.APPEND_ASSOCIATIONS' , 1 ) ;
215 END IF;
216 End;
217
218 PROCEDURE API_Rec_To_Rowtype_Rec
219 ( p_LINE_ADJ_rec IN OE_Order_PUB.LINE_ADJ_Rec_Type
220 , x_rowtype_rec OUT nocopy OE_AK_LINE_PRCADJS_V%ROWTYPE
221 ) IS
222 BEGIN
223
224 x_rowtype_rec.ATTRIBUTE1 := p_line_adj_rec.ATTRIBUTE1;
225 x_rowtype_rec.ATTRIBUTE10 := p_line_adj_rec.ATTRIBUTE10;
226 x_rowtype_rec.ATTRIBUTE11 := p_line_adj_rec.ATTRIBUTE11;
227 x_rowtype_rec.ATTRIBUTE12 := p_line_adj_rec.ATTRIBUTE12;
228 x_rowtype_rec.ATTRIBUTE13 := p_line_adj_rec.ATTRIBUTE13;
229 x_rowtype_rec.ATTRIBUTE14 := p_line_adj_rec.ATTRIBUTE14;
230 x_rowtype_rec.ATTRIBUTE15 := p_line_adj_rec.ATTRIBUTE15;
231 x_rowtype_rec.ATTRIBUTE2 := p_line_adj_rec.ATTRIBUTE2;
232 x_rowtype_rec.ATTRIBUTE3 := p_line_adj_rec.ATTRIBUTE3;
233 x_rowtype_rec.ATTRIBUTE4 := p_line_adj_rec.ATTRIBUTE4;
234 x_rowtype_rec.ATTRIBUTE5 := p_line_adj_rec.ATTRIBUTE5;
235 x_rowtype_rec.ATTRIBUTE6 := p_line_adj_rec.ATTRIBUTE6;
236 x_rowtype_rec.ATTRIBUTE7 := p_line_adj_rec.ATTRIBUTE7;
237 x_rowtype_rec.ATTRIBUTE8 := p_line_adj_rec.ATTRIBUTE8;
238 x_rowtype_rec.ATTRIBUTE9 := p_line_adj_rec.ATTRIBUTE9;
239 x_rowtype_rec.CONTEXT := p_line_adj_rec.CONTEXT;
240 x_rowtype_rec.CREATED_BY := p_line_adj_rec.CREATED_BY;
241 x_rowtype_rec.CREATION_DATE := p_line_adj_rec.CREATION_DATE;
242 x_rowtype_rec.DB_FLAG := p_line_adj_rec.DB_FLAG;
243 x_rowtype_rec.HEADER_ID := p_line_adj_rec.HEADER_ID;
244 x_rowtype_rec.LAST_UPDATED_BY := p_line_adj_rec.LAST_UPDATED_BY;
245 x_rowtype_rec.LAST_UPDATE_DATE := p_line_adj_rec.LAST_UPDATE_DATE;
246 x_rowtype_rec.LAST_UPDATE_LOGIN := p_line_adj_rec.LAST_UPDATE_LOGIN;
247 x_rowtype_rec.LINE_ID := p_line_adj_rec.LINE_ID;
248 x_rowtype_rec.OPERATION := p_line_adj_rec.OPERATION;
249 x_rowtype_rec.LINE_INDEX := p_line_adj_rec.LINE_INDEX;
250 x_rowtype_rec.PERCENT := p_line_adj_rec.PERCENT;
251 x_rowtype_rec.RETURN_STATUS := p_line_adj_rec.RETURN_STATUS;
252 x_rowtype_rec.AUTOMATIC_FLAG := p_line_adj_rec.AUTOMATIC_FLAG;
253 x_rowtype_rec.DISCOUNT_ID := p_line_adj_rec.DISCOUNT_ID;
254 x_rowtype_rec.DISCOUNT_LINE_ID := p_line_adj_rec.DISCOUNT_LINE_ID;
255 x_rowtype_rec.PRICE_ADJUSTMENT_ID := p_line_adj_rec.PRICE_ADJUSTMENT_ID;
256 x_rowtype_rec.PROGRAM_APPLICATION_ID := p_line_adj_rec.PROGRAM_APPLICATION_ID;
257 x_rowtype_rec.PROGRAM_ID := p_line_adj_rec.PROGRAM_ID;
258 x_rowtype_rec.PROGRAM_UPDATE_DATE := p_line_adj_rec.PROGRAM_UPDATE_DATE;
259 x_rowtype_rec.request_id := p_line_adj_rec.request_id;
260 -- x_rowtype_rec.orig_sys_discount_ref := p_line_adj_rec.orig_sys_discount_ref;
261 x_rowtype_rec.list_header_id := p_line_adj_rec.list_header_id;
262 x_rowtype_rec.list_line_id := p_line_adj_rec.list_line_id;
263 x_rowtype_rec.list_line_type_code := p_line_adj_rec.list_line_type_code;
264 x_rowtype_rec.modifier_mechanism_type_code := p_line_adj_rec.modifier_mechanism_type_code;
265 x_rowtype_rec.modified_from := p_line_adj_rec.modified_from;
266 x_rowtype_rec.modified_to := p_line_adj_rec.modified_to;
267 x_rowtype_rec.updated_flag := p_line_adj_rec.updated_flag;
268 x_rowtype_rec.update_allowed := p_line_adj_rec.update_allowed;
269 x_rowtype_rec.applied_flag := p_line_adj_rec.applied_flag;
270 x_rowtype_rec.change_reason_code := p_line_adj_rec.change_reason_code;
271 x_rowtype_rec.change_reason_text := p_line_adj_rec.change_reason_text;
272 x_rowtype_rec.operand := p_line_adj_rec.operand;
273 x_rowtype_rec.arithmetic_operator := p_line_adj_rec.arithmetic_operator;
274 x_rowtype_rec.cost_id := p_line_adj_rec.cost_id;
275 x_rowtype_rec.tax_code := p_line_adj_rec.tax_code;
276 x_rowtype_rec.tax_exempt_flag := p_line_adj_rec.tax_exempt_flag;
277 x_rowtype_rec.tax_exempt_number := p_line_adj_rec.tax_exempt_number;
278 x_rowtype_rec.tax_exempt_reason_code := p_line_adj_rec.tax_exempt_reason_code;
279 x_rowtype_rec.parent_adjustment_id := p_line_adj_rec.parent_adjustment_id;
280 x_rowtype_rec.invoiced_flag := p_line_adj_rec.invoiced_flag;
281 x_rowtype_rec.estimated_flag := p_line_adj_rec.estimated_flag;
282 x_rowtype_rec.inc_in_sales_performance := p_line_adj_rec.inc_in_sales_performance;
283 x_rowtype_rec.split_action_code := p_line_adj_rec.split_action_code;
284
285 x_rowtype_rec.adjusted_amount := p_line_adj_rec.adjusted_amount;
286 x_rowtype_rec.pricing_phase_id := p_line_adj_rec.pricing_phase_id;
287 x_rowtype_rec.charge_type_code := p_line_adj_rec.charge_type_code;
288 x_rowtype_rec.charge_subtype_code := p_line_adj_rec.charge_subtype_code;
289 x_rowtype_rec.list_line_no := p_line_adj_rec.list_line_no;
290 x_rowtype_rec.source_system_code := p_line_adj_rec.source_system_code;
291 x_rowtype_rec.benefit_qty := p_line_adj_rec.benefit_qty;
292 x_rowtype_rec.benefit_uom_code := p_line_adj_rec.benefit_uom_code;
293 x_rowtype_rec.print_on_invoice_flag := p_line_adj_rec.print_on_invoice_flag;
294 x_rowtype_rec.expiration_date := p_line_adj_rec.expiration_date;
295 x_rowtype_rec.rebate_transaction_type_code := p_line_adj_rec.rebate_transaction_type_code;
296 x_rowtype_rec.rebate_transaction_reference := p_line_adj_rec.rebate_transaction_reference;
297 x_rowtype_rec.rebate_payment_system_code := p_line_adj_rec.rebate_payment_system_code;
298 x_rowtype_rec.redeemed_date := p_line_adj_rec.redeemed_date;
299 x_rowtype_rec.redeemed_flag := p_line_adj_rec.redeemed_flag;
300 x_rowtype_rec.accrual_flag := p_line_adj_rec.accrual_flag;
301 x_rowtype_rec.range_break_quantity := p_line_adj_rec.range_break_quantity;
302 x_rowtype_rec.accrual_conversion_rate := p_line_adj_rec.accrual_conversion_rate;
303 x_rowtype_rec.pricing_group_sequence := p_line_adj_rec.pricing_group_sequence;
304 x_rowtype_rec.modifier_level_code := p_line_adj_rec.modifier_level_code;
305 x_rowtype_rec.price_break_type_code := p_line_adj_rec.price_break_type_code;
306 x_rowtype_rec.substitution_attribute := p_line_adj_rec.substitution_attribute;
307 x_rowtype_rec.proration_type_code := p_line_adj_rec.proration_type_code;
308 x_rowtype_rec.credit_or_charge_flag := p_line_adj_rec.credit_or_charge_flag;
309 x_rowtype_rec.include_on_returns_flag := p_line_adj_rec.include_on_returns_flag;
310 x_rowtype_rec.AC_ATTRIBUTE1 := p_line_adj_rec.AC_ATTRIBUTE1;
311 x_rowtype_rec.AC_ATTRIBUTE10 := p_line_adj_rec.AC_ATTRIBUTE10;
312 x_rowtype_rec.AC_ATTRIBUTE11 := p_line_adj_rec.AC_ATTRIBUTE11;
313 x_rowtype_rec.AC_ATTRIBUTE12 := p_line_adj_rec.AC_ATTRIBUTE12;
314 x_rowtype_rec.AC_ATTRIBUTE13 := p_line_adj_rec.AC_ATTRIBUTE13;
315 x_rowtype_rec.AC_ATTRIBUTE14 := p_line_adj_rec.AC_ATTRIBUTE14;
316 x_rowtype_rec.AC_ATTRIBUTE15 := p_line_adj_rec.AC_ATTRIBUTE15;
317 x_rowtype_rec.AC_ATTRIBUTE2 := p_line_adj_rec.AC_ATTRIBUTE2;
318 x_rowtype_rec.AC_ATTRIBUTE3 := p_line_adj_rec.AC_ATTRIBUTE3;
319 x_rowtype_rec.AC_ATTRIBUTE4 := p_line_adj_rec.AC_ATTRIBUTE4;
320 x_rowtype_rec.AC_ATTRIBUTE5 := p_line_adj_rec.AC_ATTRIBUTE5;
321 x_rowtype_rec.AC_ATTRIBUTE6 := p_line_adj_rec.AC_ATTRIBUTE6;
322 x_rowtype_rec.AC_ATTRIBUTE7 := p_line_adj_rec.AC_ATTRIBUTE7;
323 x_rowtype_rec.AC_ATTRIBUTE8 := p_line_adj_rec.AC_ATTRIBUTE8;
324 x_rowtype_rec.AC_ATTRIBUTE9 := p_line_adj_rec.AC_ATTRIBUTE9;
325 x_rowtype_rec.AC_CONTEXT := p_line_adj_rec.AC_CONTEXT;
326 --uom begin
327 x_rowtype_rec.operand_per_pqty :=p_line_adj_rec.operand_per_pqty;
328 x_rowtype_rec.adjusted_amount_per_pqty :=p_line_adj_rec.adjusted_amount_per_pqty;
329 x_rowtype_rec.invoiced_amount := p_line_adj_rec.invoiced_amount;
330 --uom end
331
332
333 END API_Rec_To_RowType_Rec;
334
335
336 PROCEDURE Rowtype_Rec_To_API_Rec
337 ( p_record IN OE_AK_LINE_PRCADJS_V%ROWTYPE
338 , x_api_rec IN OUT nocopy OE_Order_PUB.LINE_ADJ_Rec_Type
339 )
340 iS
341
342 --
343 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
344 --
345 BEGIN
346 IF l_debug_level > 0 THEN
347 oe_debug_pub.add( 'BEFORE ASSIGN COST_ID '||TO_CHAR ( P_RECORD.COST_ID ) , 1 ) ;
348 END IF;
349
350 x_api_rec.ATTRIBUTE1 := p_record.ATTRIBUTE1;
351 x_api_rec.ATTRIBUTE10 := p_record.ATTRIBUTE10;
352 x_api_rec.ATTRIBUTE11 := p_record.ATTRIBUTE11;
353 x_api_rec.ATTRIBUTE12 := p_record.ATTRIBUTE12;
354 x_api_rec.ATTRIBUTE13 := p_record.ATTRIBUTE13;
355 x_api_rec.ATTRIBUTE14 := p_record.ATTRIBUTE14;
356 x_api_rec.ATTRIBUTE15 := p_record.ATTRIBUTE15;
357 x_api_rec.ATTRIBUTE2 := p_record.ATTRIBUTE2;
358 x_api_rec.ATTRIBUTE3 := p_record.ATTRIBUTE3;
359 x_api_rec.ATTRIBUTE4 := p_record.ATTRIBUTE4;
360 x_api_rec.ATTRIBUTE5 := p_record.ATTRIBUTE5;
361 x_api_rec.ATTRIBUTE6 := p_record.ATTRIBUTE6;
362 x_api_rec.ATTRIBUTE7 := p_record.ATTRIBUTE7;
363 x_api_rec.ATTRIBUTE8 := p_record.ATTRIBUTE8;
364 x_api_rec.ATTRIBUTE9 := p_record.ATTRIBUTE9;
365 x_api_rec.CONTEXT := p_record.CONTEXT;
366 x_api_rec.CREATED_BY := p_record.CREATED_BY;
367 x_api_rec.CREATION_DATE := p_record.CREATION_DATE;
368 x_api_rec.DB_FLAG := p_record.DB_FLAG;
369 x_api_rec.HEADER_ID := p_record.HEADER_ID;
370 x_api_rec.LAST_UPDATED_BY := p_record.LAST_UPDATED_BY;
371 x_api_rec.LAST_UPDATE_DATE := p_record.LAST_UPDATE_DATE;
372 x_api_rec.LAST_UPDATE_LOGIN := p_record.LAST_UPDATE_LOGIN;
373 x_api_rec.LINE_ID := p_record.LINE_ID;
374 x_api_rec.OPERATION := p_record.OPERATION;
375 x_api_rec.LINE_INDEX := p_record.LINE_INDEX;
376 x_api_rec.PERCENT := p_record.PERCENT;
377 x_api_rec.RETURN_STATUS := p_record.RETURN_STATUS;
378 x_api_rec.AUTOMATIC_FLAG := p_record.AUTOMATIC_FLAG;
379 x_api_rec.DISCOUNT_ID := p_record.DISCOUNT_ID;
380 x_api_rec.DISCOUNT_LINE_ID := p_record.DISCOUNT_LINE_ID;
381 x_api_rec.PRICE_ADJUSTMENT_ID := p_record.PRICE_ADJUSTMENT_ID;
382 x_api_rec.PROGRAM_APPLICATION_ID := p_record.PROGRAM_APPLICATION_ID;
383 x_api_rec.PROGRAM_ID := p_record.PROGRAM_ID;
384 x_api_rec.PROGRAM_UPDATE_DATE := p_record.PROGRAM_UPDATE_DATE;
385 x_api_rec.request_id := p_record.request_id;
386 -- x_api_rec.orig_sys_discount_ref := p_record.orig_sys_discount_ref;
387 x_api_rec.list_header_id := p_record.list_header_id;
388 x_api_rec.list_line_id := p_record.list_line_id;
389 x_api_rec.list_line_type_code := p_record.list_line_type_code;
390 x_api_rec.modifier_mechanism_type_code := p_record.modifier_mechanism_type_code;
391 x_api_rec.modified_from := p_record.modified_from;
392 x_api_rec.modified_to := p_record.modified_to;
393 x_api_rec.updated_flag := p_record.updated_flag;
394 x_api_rec.update_allowed := p_record.update_allowed;
395 x_api_rec.applied_flag := p_record.applied_flag;
396 x_api_rec.change_reason_code := p_record.change_reason_code;
397 x_api_rec.change_reason_text := p_record.change_reason_text;
398 x_api_rec.operand := p_record.operand;
399 x_api_rec.arithmetic_operator := p_record.arithmetic_operator;
400 x_api_rec.cost_id := p_record.cost_id;
401 x_api_rec.tax_code := p_record.tax_code;
402 x_api_rec.tax_exempt_flag := p_record.tax_exempt_flag;
403 x_api_rec.tax_exempt_number := p_record.tax_exempt_number;
404 x_api_rec.tax_exempt_reason_code := p_record.tax_exempt_reason_code;
405 x_api_rec.parent_adjustment_id := p_record.parent_adjustment_id;
406 x_api_rec.invoiced_flag := p_record.invoiced_flag;
407 x_api_rec.estimated_flag := p_record.estimated_flag;
408 x_api_rec.inc_in_sales_performance := p_record.inc_in_sales_performance;
409 x_api_rec.split_action_code := p_record.split_action_code;
410 x_api_rec.charge_type_code := p_record.charge_type_code;
411 x_api_rec.charge_subtype_code := p_record.charge_subtype_code;
412 x_api_rec.pricing_phase_id := p_record.pricing_phase_id;
413 x_api_rec.adjusted_amount := p_record.adjusted_amount;
414 x_api_rec.list_line_no := p_record.list_line_no;
415 x_api_rec.source_system_code := p_record.source_system_code;
416 x_api_rec.benefit_qty := p_record.benefit_qty;
417 x_api_rec.benefit_uom_code := p_record.benefit_uom_code;
418 x_api_rec.print_on_invoice_flag := p_record.print_on_invoice_flag;
419 x_api_rec.expiration_date := p_record.expiration_date;
420 x_api_rec.rebate_transaction_type_code := p_record.rebate_transaction_type_code;
421 x_api_rec.rebate_transaction_reference := p_record.rebate_transaction_reference;
422 x_api_rec.rebate_payment_system_code := p_record.rebate_payment_system_code;
423 x_api_rec.redeemed_date := p_record.redeemed_date;
424 x_api_rec.redeemed_flag := p_record.redeemed_flag;
425 x_api_rec.accrual_flag := p_record.accrual_flag;
426 x_api_rec.range_break_quantity := p_record.range_break_quantity;
427 x_api_rec.accrual_conversion_rate := p_record.accrual_conversion_rate;
428 x_api_rec.pricing_group_sequence := p_record.pricing_group_sequence;
429 x_api_rec.modifier_level_code := p_record.modifier_level_code;
430 x_api_rec.price_break_type_code := p_record.price_break_type_code;
431 x_api_rec.substitution_attribute := p_record.substitution_attribute;
432 x_api_rec.proration_type_code := p_record.proration_type_code;
433 x_api_rec.credit_or_charge_flag := p_record.credit_or_charge_flag;
434 x_api_rec.include_on_returns_flag := p_record.include_on_returns_flag;
435 x_api_rec.AC_ATTRIBUTE1 := p_record.AC_ATTRIBUTE1;
436 x_api_rec.AC_ATTRIBUTE10 := p_record.AC_ATTRIBUTE10;
437 x_api_rec.AC_ATTRIBUTE11 := p_record.AC_ATTRIBUTE11;
438 x_api_rec.AC_ATTRIBUTE12 := p_record.AC_ATTRIBUTE12;
439 x_api_rec.AC_ATTRIBUTE13 := p_record.AC_ATTRIBUTE13;
440 x_api_rec.AC_ATTRIBUTE14 := p_record.AC_ATTRIBUTE14;
441 x_api_rec.AC_ATTRIBUTE15 := p_record.AC_ATTRIBUTE15;
442 x_api_rec.AC_ATTRIBUTE2 := p_record.AC_ATTRIBUTE2;
443 x_api_rec.AC_ATTRIBUTE3 := p_record.AC_ATTRIBUTE3;
444 x_api_rec.AC_ATTRIBUTE4 := p_record.AC_ATTRIBUTE4;
445 x_api_rec.AC_ATTRIBUTE5 := p_record.AC_ATTRIBUTE5;
446 x_api_rec.AC_ATTRIBUTE6 := p_record.AC_ATTRIBUTE6;
447 x_api_rec.AC_ATTRIBUTE7 := p_record.AC_ATTRIBUTE7;
448 x_api_rec.AC_ATTRIBUTE8 := p_record.AC_ATTRIBUTE8;
449 x_api_rec.AC_ATTRIBUTE9 := p_record.AC_ATTRIBUTE9;
450 x_api_rec.AC_CONTEXT := p_record.AC_CONTEXT;
451 --uom begin
452 x_api_rec.operand_per_pqty :=p_record.operand_per_pqty;
453 x_api_rec.adjusted_amount_per_pqty :=p_record.adjusted_amount_per_pqty;
454 --uom end
455 x_api_rec.invoiced_amount := p_record.invoiced_amount;
456 END Rowtype_Rec_To_API_Rec;
457
458
459 -- Procedure Clear_Dependent_Attr
460
461 -- Overloaded procedure .. Please maintain 2 code sets
462
463 PROCEDURE Clear_Dependent_Attr
464 ( p_attr_id IN NUMBER := FND_API.G_MISS_NUM
465 , p_x_Line_Adj_rec IN OUT NOCOPY OE_AK_LINE_PRCADJS_V%ROWTYPE
466 , p_old_Line_Adj_rec IN OE_AK_LINE_PRCADJS_V%ROWTYPE :=
467 G_MISS_OE_AK_LINE_ADJ_REC
468 -- , x_Line_Adj_rec OUT nocopy OE_AK_LINE_PRCADJS_V%ROWTYPE
469 )
470 IS
471 l_index NUMBER :=0;
472 l_src_attr_tbl OE_GLOBALS.NUMBER_Tbl_Type;
473 l_dep_attr_tbl OE_GLOBALS.NUMBER_Tbl_Type;
474 --
475 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
476 --
477 BEGIN
478
479 -- Load out record
480
481 -- x_Line_Adj_rec := p_Line_Adj_rec;
482
483 -- If attr_id is missing compare old and new records and for
484 -- every changed attribute clear its dependent fields.
485 IF l_debug_level > 0 THEN
486 oe_debug_pub.add( 'ENTERING CLEAR_DEPENDENT_ATTR' ) ;
487 END IF;
488 IF p_attr_id = FND_API.G_MISS_NUM THEN
489
490
491 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.adjusted_amount,p_old_Line_Adj_rec.adjusted_amount)
492 THEN
493 l_index := l_index + 1;
494 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ADJUSTED_AMOUNT;
495 END IF;
496
497 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.pricing_phase_id,p_old_Line_Adj_rec.pricing_phase_id)
498 THEN
499 l_index := l_index + 1;
500 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_PRICING_PHASE_ID;
501 END IF;
502
503 -----
504
505 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.price_adjustment_id,p_old_Line_Adj_rec.price_adjustment_id)
506 THEN
507 l_index := l_index + 1;
508 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_PRICE_ADJUSTMENT;
509 END IF;
510
511 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.creation_date,p_old_Line_Adj_rec.creation_date)
512 THEN
513 l_index := l_index + 1;
514 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_CREATION_DATE;
515 END IF;
516
517 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.created_by,p_old_Line_Adj_rec.created_by)
518 THEN
519 l_index := l_index + 1;
520 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_CREATED_BY;
521 END IF;
522
523 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.last_update_date,p_old_Line_Adj_rec.last_update_date)
524 THEN
525 l_index := l_index + 1;
526 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_LAST_UPDATE_DATE;
527 END IF;
528
529 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.last_updated_by,p_old_Line_Adj_rec.last_updated_by)
530 THEN
531 l_index := l_index + 1;
532 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_LAST_UPDATED_BY;
533 END IF;
534
535 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.last_update_login,p_old_Line_Adj_rec.last_update_login)
536 THEN
537 l_index := l_index + 1;
538 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_LAST_UPDATE_LOGIN;
539 END IF;
540
541 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.program_application_id,p_old_Line_Adj_rec.program_application_id)
542 THEN
543 l_index := l_index + 1;
544 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_PROGRAM_APPLICATION;
545 END IF;
546
547 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.program_id,p_old_Line_Adj_rec.program_id)
548 THEN
549 l_index := l_index + 1;
550 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_PROGRAM;
551 END IF;
552
553 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.program_update_date,p_old_Line_Adj_rec.program_update_date)
554 THEN
555 l_index := l_index + 1;
556 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_PROGRAM_UPDATE_DATE;
557 END IF;
558
559 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.request_id,p_old_Line_Adj_rec.request_id)
560 THEN
561 l_index := l_index + 1;
562 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_REQUEST;
563 END IF;
564
565 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.header_id,p_old_Line_Adj_rec.header_id)
566 THEN
567 l_index := l_index + 1;
568 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_HEADER;
569 END IF;
570
571 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.discount_id,p_old_Line_Adj_rec.discount_id)
572 THEN
573 l_index := l_index + 1;
574 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_DISCOUNT;
575 END IF;
576
577 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.discount_line_id,p_old_Line_Adj_rec.discount_line_id)
578 THEN
579 l_index := l_index + 1;
580 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_DISCOUNT_LINE;
581 END IF;
582
583 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.automatic_flag,p_old_Line_Adj_rec.automatic_flag)
584 THEN
585 l_index := l_index + 1;
586 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_AUTOMATIC;
587 END IF;
588
589 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.percent,p_old_Line_Adj_rec.percent)
590 THEN
591 l_index := l_index + 1;
592 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_PERCENT;
593 END IF;
594
595 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.line_id,p_old_Line_Adj_rec.line_id)
596 THEN
597 l_index := l_index + 1;
598 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_LINE;
599 END IF;
600
601 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.context,p_old_Line_Adj_rec.context)
602 THEN
603 l_index := l_index + 1;
604 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_CONTEXT;
605 END IF;
606
607 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute1,p_old_Line_Adj_rec.attribute1)
608 THEN
609 l_index := l_index + 1;
610 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE1;
611 END IF;
612
613 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute2,p_old_Line_Adj_rec.attribute2)
614 THEN
615 l_index := l_index + 1;
616 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE2;
617 END IF;
618
619 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute3,p_old_Line_Adj_rec.attribute3)
620 THEN
621 l_index := l_index + 1;
622 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE3;
623 END IF;
624
625 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute4,p_old_Line_Adj_rec.attribute4)
626 THEN
627 l_index := l_index + 1;
628 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE4;
629 END IF;
630
631 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute5,p_old_Line_Adj_rec.attribute5)
632 THEN
633 l_index := l_index + 1;
634 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE5;
635 END IF;
636
637 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute6,p_old_Line_Adj_rec.attribute6)
638 THEN
639 l_index := l_index + 1;
640 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE6;
641 END IF;
642
643 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute7,p_old_Line_Adj_rec.attribute7)
644 THEN
645 l_index := l_index + 1;
646 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE7;
647 END IF;
648
649 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute8,p_old_Line_Adj_rec.attribute8)
650 THEN
651 l_index := l_index + 1;
652 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE8;
653 END IF;
654
655 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute9,p_old_Line_Adj_rec.attribute9)
656 THEN
657 l_index := l_index + 1;
658 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE9;
659 END IF;
660
661 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute10,p_old_Line_Adj_rec.attribute10)
662 THEN
663 l_index := l_index + 1;
664 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE10;
665 END IF;
666
667 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute11,p_old_Line_Adj_rec.attribute11)
668 THEN
669 l_index := l_index + 1;
670 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE11;
671 END IF;
672
673 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute12,p_old_Line_Adj_rec.attribute12)
674 THEN
675 l_index := l_index + 1;
676 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE12;
677 END IF;
678
679 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute13,p_old_Line_Adj_rec.attribute13)
680 THEN
681 l_index := l_index + 1;
682 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE13;
683 END IF;
684
685 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute14,p_old_Line_Adj_rec.attribute14)
686 THEN
687 l_index := l_index + 1;
688 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE14;
689 END IF;
690
691 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute15,p_old_Line_Adj_rec.attribute15)
692 THEN
693 l_index := l_index + 1;
694 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ATTRIBUTE15;
695 END IF;
696
697 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.COST_ID, p_old_Line_Adj_rec.COST_ID)
698 THEN
699 l_index := l_index + 1;
700 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_COST_ID;
701 END IF;
702
703 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.TAX_CODE, p_old_Line_Adj_rec.TAX_CODE)
704 THEN
705 l_index := l_index + 1;
706 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_TAX_CODE;
707 END IF;
708
709 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.TAX_EXEMPT_FLAG, p_old_Line_Adj_rec.TAX_EXEMPT_FLAG)
710 THEN
711 l_index := l_index + 1;
712 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_TAX_EXEMPT_FLAG;
713 END IF;
714
715 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.TAX_EXEMPT_NUMBER, p_old_Line_Adj_rec.TAX_EXEMPT_NUMBER)
716 THEN
717 l_index := l_index + 1;
718 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_TAX_EXEMPT_NUMBER;
719 END IF;
720
721 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.TAX_EXEMPT_REASON_CODE, p_old_Line_Adj_rec.TAX_EXEMPT_REASON_CODE)
722 THEN
723 l_index := l_index + 1;
724 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_TAX_EXEMPT_REASON_CODE;
725 END IF;
726
727 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.PARENT_ADJUSTMENT_ID, p_old_Line_Adj_rec.PARENT_ADJUSTMENT_ID)
728 THEN
729 l_index := l_index + 1;
730 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_PARENT_ADJUSTMENT_ID;
731 END IF;
732
733 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.INVOICED_FLAG, p_old_Line_Adj_rec.INVOICED_FLAG)
734 THEN
735 l_index := l_index + 1;
736 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_INVOICED_FLAG;
737 END IF;
738
739 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.ESTIMATED_FLAG, p_old_Line_Adj_rec.ESTIMATED_FLAG)
740 THEN
741 l_index := l_index + 1;
742 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_ESTIMATED_FLAG;
743 END IF;
744
745 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.INC_IN_SALES_PERFORMANCE, p_old_Line_Adj_rec.INC_IN_SALES_PERFORMANCE)
746 THEN
747 l_index := l_index + 1;
748 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_INC_IN_SALES_PERFORMANCE;
749 END IF;
750
751 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.SPLIT_ACTION_CODE, p_old_Line_Adj_rec.SPLIT_ACTION_CODE)
752 THEN
753 l_index := l_index + 1;
754 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_SPLIT_ACTION_CODE;
755 END IF;
756
757 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.CHARGE_TYPE_CODE, p_old_Line_Adj_rec.CHARGE_TYPE_CODE)
758 THEN
759 l_index := l_index + 1;
760 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_CHARGE_TYPE_CODE;
761 END IF;
762
763 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.CHARGE_SUBTYPE_CODE, p_old_Line_Adj_rec.CHARGE_SUBTYPE_CODE)
764 THEN
765 l_index := l_index + 1;
766 l_src_attr_tbl(l_index) := OE_LINE_ADJ_UTIL.G_CHARGE_SUBTYPE_CODE;
767 END IF;
768
769 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.list_line_no, p_old_Line_Adj_rec.list_line_no)
770 THEN
771 l_index := l_index + 1;
772 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_LIST_LINE_NO;
773 END IF;
774
775 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.source_system_code, p_old_Line_Adj_rec.source_system_code)
776 THEN
777 l_index := l_index + 1;
778 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_SOURCE_SYSTEM_CODE;
779 END IF;
780
781 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.benefit_qty, p_old_Line_Adj_rec.benefit_qty)
782 THEN
783 l_index := l_index + 1;
784 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_BENEFIT_QTY;
785 END IF;
786
787 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.benefit_uom_code, p_old_Line_Adj_rec.benefit_uom_code)
788 THEN
789 l_index := l_index + 1;
790 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_BENEFIT_UOM_CODE;
791 END IF;
792
793 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.print_on_invoice_flag, p_old_Line_Adj_rec.print_on_invoice_flag)
794 THEN
795 l_index := l_index + 1;
796 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_PRINT_ON_INVOICE_FLAG;
797 END IF;
798
799 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.expiration_date, p_old_Line_Adj_rec.expiration_date)
800 THEN
801 l_index := l_index + 1;
802 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_EXPIRATION_DATE;
803 END IF;
804
805 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.rebate_transaction_type_code, p_old_Line_Adj_rec.rebate_transaction_type_code)
806 THEN
807 l_index := l_index + 1;
808 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_REBATE_TRANSACTION_TYPE_CODE;
809 END IF;
810
811 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.rebate_transaction_reference, p_old_Line_Adj_rec.rebate_transaction_reference)
812 THEN
813 l_index := l_index + 1;
814 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_REBATE_TRANSACTION_REFERENCE;
815 END IF;
816
817 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.rebate_payment_system_code, p_old_Line_Adj_rec.rebate_payment_system_code)
818 THEN
819 l_index := l_index + 1;
820 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_REBATE_PAYMENT_SYSTEM_CODE;
821 END IF;
822
823 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.redeemed_date, p_old_Line_Adj_rec.redeemed_date)
824 THEN
825 l_index := l_index + 1;
826 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_REDEEMED_DATE;
827 END IF;
828
829 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.redeemed_flag, p_old_Line_Adj_rec.redeemed_flag)
830 THEN
831 l_index := l_index + 1;
832 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_REDEEMED_FLAG;
833 END IF;
834
835 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.accrual_flag, p_old_Line_Adj_rec.accrual_flag)
836 THEN
837 l_index := l_index + 1;
838 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_ACCRUAL_FLAG;
839 END IF;
840
841 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.range_break_quantity, p_old_Line_Adj_rec.range_break_quantity)
842 THEN
843 l_index := l_index + 1;
844 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_range_break_quantity;
845 END IF;
846
847 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.accrual_conversion_rate, p_old_Line_Adj_rec.accrual_conversion_rate)
848 THEN
849 l_index := l_index + 1;
850 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_accrual_conversion_rate;
851 END IF;
852
853 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.pricing_group_sequence, p_old_Line_Adj_rec.pricing_group_sequence)
854 THEN
855 l_index := l_index + 1;
856 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_pricing_group_sequence;
857 END IF;
858
859 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.modifier_level_code, p_old_Line_Adj_rec.modifier_level_code)
860 THEN
861 l_index := l_index + 1;
862 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_modifier_level_code;
863 END IF;
864
865 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.price_break_type_code, p_old_Line_Adj_rec.price_break_type_code)
866 THEN
867 l_index := l_index + 1;
868 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_price_break_type_code;
869 END IF;
870
871 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.substitution_attribute, p_old_Line_Adj_rec.substitution_attribute)
872 THEN
873 l_index := l_index + 1;
874 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_substitution_attribute;
875 END IF;
876
877 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.proration_type_code, p_old_Line_Adj_rec.proration_type_code)
878 THEN
879 l_index := l_index + 1;
880 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_proration_type_code;
881 END IF;
882
883 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.credit_or_charge_flag, p_old_Line_Adj_rec.credit_or_charge_flag)
884 THEN
885 l_index := l_index + 1;
886 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_credit_or_charge_flag;
887 END IF;
888
889 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.include_on_returns_flag, p_old_Line_Adj_rec.include_on_returns_flag)
890 THEN
891 l_index := l_index + 1;
892 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_include_on_returns_flag;
893 END IF;
894
895 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_context,p_old_Line_Adj_rec.ac_context)
896 THEN
897 l_index := l_index + 1;
898 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_CONTEXT;
899 END IF;
900
901 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute1,p_old_Line_Adj_rec.ac_attribute1)
902 THEN
903 l_index := l_index + 1;
904 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE1;
905 END IF;
906
907 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute2,p_old_Line_Adj_rec.ac_attribute2)
908 THEN
909 l_index := l_index + 1;
910 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE2;
911 END IF;
912
913 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute3,p_old_Line_Adj_rec.ac_attribute3)
914 THEN
915 l_index := l_index + 1;
916 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE3;
917 END IF;
918
919 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute4,p_old_Line_Adj_rec.ac_attribute4)
920 THEN
921 l_index := l_index + 1;
922 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE4;
923 END IF;
924
925 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute5,p_old_Line_Adj_rec.ac_attribute5)
926 THEN
927 l_index := l_index + 1;
928 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE5;
929 END IF;
930
931 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute6,p_old_Line_Adj_rec.ac_attribute6)
932 THEN
933 l_index := l_index + 1;
934 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE6;
935 END IF;
936
937 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute7,p_old_Line_Adj_rec.ac_attribute7)
938 THEN
939 l_index := l_index + 1;
940 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE7;
941 END IF;
942
943 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute8,p_old_Line_Adj_rec.ac_attribute8)
944 THEN
945 l_index := l_index + 1;
946 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE8;
947 END IF;
948
949 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute9,p_old_Line_Adj_rec.ac_attribute9)
950 THEN
951 l_index := l_index + 1;
952 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE9;
953 END IF;
954
955 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute10,p_old_Line_Adj_rec.ac_attribute10)
956 THEN
957 l_index := l_index + 1;
958 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE10;
959 END IF;
960
961 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute11,p_old_Line_Adj_rec.ac_attribute11)
962 THEN
963 l_index := l_index + 1;
964 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE11;
965 END IF;
966
967 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute12,p_old_Line_Adj_rec.ac_attribute12)
968 THEN
969 l_index := l_index + 1;
970 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE12;
971 END IF;
972
973 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute13,p_old_Line_Adj_rec.ac_attribute13)
974 THEN
975 l_index := l_index + 1;
976 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE13;
977 END IF;
978
979 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute14,p_old_Line_Adj_rec.ac_attribute14)
980 THEN
981 l_index := l_index + 1;
982 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE14;
983 END IF;
984
985 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.ac_attribute15,p_old_Line_Adj_rec.ac_attribute15)
986 THEN
987 l_index := l_index + 1;
988 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_AC_ATTRIBUTE15;
989 END IF;
990
991 --uom begin
992 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.operand_per_pqty,p_old_Line_Adj_rec.operand_per_pqty)
993 THEN
994 l_index := l_index + 1;
995 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_OPERAND_PER_PQTY;
996 END IF;
997
998 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.adjusted_amount_per_pqty,p_old_Line_Adj_rec.adjusted_amount_per_pqty)
999 THEN
1000 l_index := l_index + 1;
1001 l_src_attr_tbl(l_index) := OE_Line_ADJ_UTIL.G_ADJUSTED_AMOUNT_PER_PQTY;
1002 END IF;
1003
1004 --uom end
1005
1006 ELSE
1007
1008 l_index := l_index + 1;
1009 l_src_attr_tbl(l_index) := p_attr_id;
1010
1011 END IF;
1012
1013 If l_src_attr_tbl.COUNT <> 0 THEN
1014
1015 OE_Dependencies.Mark_Dependent
1016 (p_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
1017 p_source_attr_tbl => l_src_attr_tbl,
1018 p_dep_attr_tbl => l_dep_attr_tbl);
1019
1020 FOR I IN 1..l_dep_attr_tbl.COUNT LOOP
1021
1022 IF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_PRICE_ADJUSTMENT THEN
1023 p_x_Line_Adj_rec.PRICE_ADJUSTMENT_ID := FND_API.G_MISS_NUM;
1024
1025 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ADJUSTED_AMOUNT THEN
1026 p_x_Line_Adj_rec.ADJUSTED_AMOUNT := FND_API.G_MISS_NUM;
1027 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_PRICING_PHASE_ID THEN
1028 p_x_Line_Adj_rec.PRICING_PHASE_ID := FND_API.G_MISS_NUM;
1029
1030
1031 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_CREATION_DATE THEN
1032 p_x_Line_Adj_rec.CREATION_DATE := FND_API.G_MISS_DATE;
1033 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_CREATED_BY THEN
1034 p_x_Line_Adj_rec.CREATED_BY := FND_API.G_MISS_NUM;
1035 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_LAST_UPDATE_DATE THEN
1036 p_x_Line_Adj_rec.LAST_UPDATE_DATE := FND_API.G_MISS_DATE;
1037 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_LAST_UPDATED_BY THEN
1038 p_x_Line_Adj_rec.LAST_UPDATED_BY := FND_API.G_MISS_NUM;
1039 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_LAST_UPDATE_LOGIN THEN
1040 p_x_Line_Adj_rec.LAST_UPDATE_LOGIN := FND_API.G_MISS_NUM;
1041 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_PROGRAM_APPLICATION THEN
1042 p_x_Line_Adj_rec.PROGRAM_APPLICATION_ID := FND_API.G_MISS_NUM;
1043 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_PROGRAM THEN
1044 p_x_Line_Adj_rec.PROGRAM_ID := FND_API.G_MISS_NUM;
1045 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_PROGRAM_UPDATE_DATE THEN
1046 p_x_Line_Adj_rec.PROGRAM_UPDATE_DATE := FND_API.G_MISS_DATE;
1047 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_REQUEST THEN
1048 p_x_Line_Adj_rec.REQUEST_ID := FND_API.G_MISS_NUM;
1049 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_HEADER THEN
1050 p_x_Line_Adj_rec.HEADER_ID := FND_API.G_MISS_NUM;
1051 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_DISCOUNT THEN
1052 p_x_Line_Adj_rec.DISCOUNT_ID := FND_API.G_MISS_NUM;
1053 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_DISCOUNT_LINE THEN
1054 p_x_Line_Adj_rec.DISCOUNT_LINE_ID := FND_API.G_MISS_NUM;
1055 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AUTOMATIC THEN
1056 p_x_Line_Adj_rec.AUTOMATIC_FLAG := FND_API.G_MISS_CHAR;
1057 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_PERCENT THEN
1058 p_x_Line_Adj_rec.PERCENT := FND_API.G_MISS_NUM;
1059 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_LINE THEN
1060 p_x_Line_Adj_rec.LINE_ID := FND_API.G_MISS_NUM;
1061 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_CONTEXT THEN
1062 p_x_Line_Adj_rec.CONTEXT := FND_API.G_MISS_CHAR;
1063 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE1 THEN
1064 p_x_Line_Adj_rec.ATTRIBUTE1 := FND_API.G_MISS_CHAR;
1065 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE2 THEN
1066 p_x_Line_Adj_rec.ATTRIBUTE2 := FND_API.G_MISS_CHAR;
1067 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE3 THEN
1068 p_x_Line_Adj_rec.ATTRIBUTE3 := FND_API.G_MISS_CHAR;
1069 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE4 THEN
1070 p_x_Line_Adj_rec.ATTRIBUTE4 := FND_API.G_MISS_CHAR;
1071 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE5 THEN
1072 p_x_Line_Adj_rec.ATTRIBUTE5 := FND_API.G_MISS_CHAR;
1073 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE6 THEN
1074 p_x_Line_Adj_rec.ATTRIBUTE6 := FND_API.G_MISS_CHAR;
1075 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE7 THEN
1076 p_x_Line_Adj_rec.ATTRIBUTE7 := FND_API.G_MISS_CHAR;
1077 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE8 THEN
1078 p_x_Line_Adj_rec.ATTRIBUTE8 := FND_API.G_MISS_CHAR;
1079 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE9 THEN
1080 p_x_Line_Adj_rec.ATTRIBUTE9 := FND_API.G_MISS_CHAR;
1081 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE10 THEN
1082 p_x_Line_Adj_rec.ATTRIBUTE10 := FND_API.G_MISS_CHAR;
1083 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE11 THEN
1084 p_x_Line_Adj_rec.ATTRIBUTE11 := FND_API.G_MISS_CHAR;
1085 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE12 THEN
1086 p_x_Line_Adj_rec.ATTRIBUTE12 := FND_API.G_MISS_CHAR;
1087 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE13 THEN
1088 p_x_Line_Adj_rec.ATTRIBUTE13 := FND_API.G_MISS_CHAR;
1089 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE14 THEN
1090 p_x_Line_Adj_rec.ATTRIBUTE14 := FND_API.G_MISS_CHAR;
1091 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ATTRIBUTE15 THEN
1092 p_x_Line_Adj_rec.ATTRIBUTE15 := FND_API.G_MISS_CHAR;
1093 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_COST_ID THEN
1094 p_x_Line_Adj_rec.COST_ID := FND_API.G_MISS_NUM;
1095 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_TAX_CODE THEN
1096 p_x_Line_Adj_rec.TAX_CODE := FND_API.G_MISS_CHAR;
1097 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_TAX_EXEMPT_FLAG THEN
1098 p_x_Line_Adj_rec.TAX_EXEMPT_FLAG := FND_API.G_MISS_CHAR;
1099 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_TAX_EXEMPT_NUMBER THEN
1100 p_x_Line_Adj_rec.TAX_EXEMPT_NUMBER := FND_API.G_MISS_CHAR;
1101 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_TAX_EXEMPT_REASON_CODE THEN
1102 p_x_Line_Adj_rec.TAX_EXEMPT_REASON_CODE := FND_API.G_MISS_CHAR;
1103 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_PARENT_ADJUSTMENT_ID THEN
1104 p_x_Line_Adj_rec.PARENT_ADJUSTMENT_ID := FND_API.G_MISS_NUM;
1105 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_INVOICED_FLAG THEN
1106 p_x_Line_Adj_rec.INVOICED_FLAG := FND_API.G_MISS_CHAR;
1107 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ESTIMATED_FLAG THEN
1108 p_x_Line_Adj_rec.ESTIMATED_FLAG := FND_API.G_MISS_CHAR;
1109 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_INC_IN_SALES_PERFORMANCE THEN
1110 p_x_Line_Adj_rec.INC_IN_SALES_PERFORMANCE := FND_API.G_MISS_CHAR;
1111 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_SPLIT_ACTION_CODE THEN
1112 p_x_Line_Adj_rec.SPLIT_ACTION_CODE := FND_API.G_MISS_CHAR;
1113 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_CHARGE_TYPE_CODE THEN
1114 p_x_Line_Adj_rec.CHARGE_TYPE_CODE := FND_API.G_MISS_CHAR;
1115 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_CHARGE_SUBTYPE_CODE THEN
1116 p_x_Line_Adj_rec.CHARGE_SUBTYPE_CODE := FND_API.G_MISS_CHAR;
1117 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_LIST_LINE_NO THEN
1118 p_x_Line_Adj_rec.LIST_LINE_NO := FND_API.G_MISS_CHAR;
1119 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_SOURCE_SYSTEM_CODE THEN
1120 p_x_Line_Adj_rec.SOURCE_SYSTEM_CODE := FND_API.G_MISS_CHAR;
1121 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_BENEFIT_QTY THEN
1122 p_x_Line_Adj_rec.BENEFIT_QTY := FND_API.G_MISS_NUM;
1123 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_BENEFIT_UOM_CODE THEN
1124 p_x_Line_Adj_rec.BENEFIT_UOM_CODE := FND_API.G_MISS_CHAR;
1125 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_PRINT_ON_INVOICE_FLAG THEN
1126 p_x_Line_Adj_rec.PRINT_ON_INVOICE_FLAG := FND_API.G_MISS_CHAR;
1127 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_EXPIRATION_DATE THEN
1128 p_x_Line_Adj_rec.EXPIRATION_DATE := FND_API.G_MISS_DATE;
1129 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_REBATE_TRANSACTION_TYPE_CODE THEN
1130 p_x_Line_Adj_rec.REBATE_TRANSACTION_TYPE_CODE := FND_API.G_MISS_CHAR;
1131 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_REBATE_TRANSACTION_REFERENCE THEN
1132 p_x_Line_Adj_rec.REBATE_TRANSACTION_REFERENCE := FND_API.G_MISS_CHAR;
1133 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_REBATE_PAYMENT_SYSTEM_CODE THEN
1134 p_x_Line_Adj_rec.REBATE_PAYMENT_SYSTEM_CODE := FND_API.G_MISS_CHAR;
1135 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_REDEEMED_DATE THEN
1136 p_x_Line_Adj_rec.REDEEMED_DATE := FND_API.G_MISS_DATE;
1137 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_REDEEMED_FLAG THEN
1138 p_x_Line_Adj_rec.REDEEMED_FLAG := FND_API.G_MISS_CHAR;
1139 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_ACCRUAL_FLAG THEN
1140 p_x_Line_Adj_rec.ACCRUAL_FLAG := FND_API.G_MISS_CHAR;
1141 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_range_break_quantity THEN
1142 p_x_Line_Adj_rec.range_break_quantity := FND_API.G_MISS_NUM;
1143 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_accrual_conversion_rate THEN
1144 p_x_Line_Adj_rec.accrual_conversion_rate := FND_API.G_MISS_NUM;
1145 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_pricing_group_sequence THEN
1146 p_x_Line_Adj_rec.pricing_group_sequence := FND_API.G_MISS_NUM;
1147 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_modifier_level_code THEN
1148 p_x_Line_Adj_rec.modifier_level_code := FND_API.G_MISS_CHAR;
1149 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_price_break_type_code THEN
1150 p_x_Line_Adj_rec.price_break_type_code := FND_API.G_MISS_CHAR;
1151 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_substitution_attribute THEN
1152 p_x_Line_Adj_rec.substitution_attribute := FND_API.G_MISS_CHAR;
1153 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_proration_type_code THEN
1154 p_x_Line_Adj_rec.proration_type_code := FND_API.G_MISS_CHAR;
1155 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_credit_or_charge_flag THEN
1156 p_x_Line_Adj_rec.credit_or_charge_flag := FND_API.G_MISS_CHAR;
1157 ELSIF l_dep_attr_tbl(I) = OE_Line_ADJ_UTIL.G_include_on_returns_flag THEN
1158 p_x_Line_Adj_rec.include_on_returns_flag := FND_API.G_MISS_CHAR;
1159
1160 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_CONTEXT THEN
1161 p_x_LINE_Adj_rec.AC_CONTEXT := FND_API.G_MISS_CHAR;
1162 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE1 THEN
1163 p_x_LINE_Adj_rec.AC_ATTRIBUTE1 := FND_API.G_MISS_CHAR;
1164 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE2 THEN
1165 p_x_LINE_Adj_rec.AC_ATTRIBUTE2 := FND_API.G_MISS_CHAR;
1166 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE3 THEN
1167 p_x_LINE_Adj_rec.AC_ATTRIBUTE3 := FND_API.G_MISS_CHAR;
1168 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE4 THEN
1169 p_x_LINE_Adj_rec.AC_ATTRIBUTE4 := FND_API.G_MISS_CHAR;
1170 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE5 THEN
1171 p_x_LINE_Adj_rec.AC_ATTRIBUTE5 := FND_API.G_MISS_CHAR;
1172 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE6 THEN
1173 p_x_LINE_Adj_rec.AC_ATTRIBUTE6 := FND_API.G_MISS_CHAR;
1174 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE7 THEN
1175 p_x_LINE_Adj_rec.AC_ATTRIBUTE7 := FND_API.G_MISS_CHAR;
1176 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE8 THEN
1177 p_x_LINE_Adj_rec.AC_ATTRIBUTE8 := FND_API.G_MISS_CHAR;
1178 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE9 THEN
1179 p_x_LINE_Adj_rec.AC_ATTRIBUTE9 := FND_API.G_MISS_CHAR;
1180 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE10 THEN
1181 p_x_LINE_Adj_rec.AC_ATTRIBUTE10 := FND_API.G_MISS_CHAR;
1182 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE11 THEN
1183 p_x_LINE_Adj_rec.AC_ATTRIBUTE11 := FND_API.G_MISS_CHAR;
1184 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE12 THEN
1185 p_x_LINE_Adj_rec.AC_ATTRIBUTE12 := FND_API.G_MISS_CHAR;
1186 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE13 THEN
1187 p_x_LINE_Adj_rec.AC_ATTRIBUTE13 := FND_API.G_MISS_CHAR;
1188 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE14 THEN
1189 p_x_LINE_Adj_rec.AC_ATTRIBUTE14 := FND_API.G_MISS_CHAR;
1190 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_AC_ATTRIBUTE15 THEN
1191 p_x_LINE_Adj_rec.AC_ATTRIBUTE15 := FND_API.G_MISS_CHAR;
1192 --uom begin
1193 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_OPERAND_PER_PQTY THEN
1194 p_x_LINE_Adj_rec.OPERAND_PER_PQTY:=FND_API.G_MISS_NUM;
1195 ELSIF l_dep_attr_tbl(I) = OE_LINE_ADJ_UTIL.G_ADJUSTED_AMOUNT_PER_PQTY THEN
1196 p_x_LINE_Adj_rec.ADJUSTED_AMOUNT_PER_PQTY:=FND_API.G_MISS_NUM;
1197 --uom end
1198 END IF;
1199 END LOOP;
1200 END IF;
1201 IF l_debug_level > 0 THEN
1202 oe_debug_pub.add( 'LEAVING CLEAR_DEPENDENT_ATTR' ) ;
1203 END IF;
1204 END Clear_Dependent_Attr;
1205
1206
1207 PROCEDURE Clear_Dependent_Attr
1208 ( p_attr_id IN NUMBER := FND_API.G_MISS_NUM
1209 , p_x_Line_Adj_rec IN out nocopy OE_Order_PUB.Line_Adj_Rec_Type
1210 , p_old_Line_Adj_rec IN OE_Order_PUB.Line_Adj_Rec_Type :=
1211 OE_Order_PUB.G_MISS_LINE_ADJ_REC
1212 )
1213 IS
1214 l_Line_Adj_rec OE_AK_Line_PRCADJS_V%ROWTYPE;
1215 l_old_Line_Adj_rec OE_AK_Line_PRCADJS_V%ROWTYPE ;
1216 l_initial_Line_Adj_rec OE_AK_Line_PRCADJS_V%ROWTYPE;
1217
1218 --
1219 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1220 --
1221 BEGIN
1222
1223 -- Load out record
1224 IF l_debug_level > 0 THEN
1225 oe_debug_pub.add( 'ENTERING CLEAR_DEPENDENT_ATTR' ) ;
1226 END IF;
1227 API_Rec_To_Rowtype_Rec(p_x_Line_Adj_rec , l_Line_Adj_rec);
1228 API_Rec_To_Rowtype_Rec(p_Old_Line_Adj_rec , l_Old_Line_Adj_rec);
1229 l_Initial_Line_Adj_rec := l_Line_Adj_rec;
1230
1231 Clear_Dependent_Attr
1232 ( p_attr_id => p_attr_id
1233 , p_x_Line_Adj_rec =>l_Line_Adj_rec
1234 , p_old_Line_Adj_rec =>l_Old_Line_Adj_rec
1235 -- , x_Line_Adj_rec =>l_Line_Adj_rec
1236 );
1237
1238 Rowtype_Rec_To_API_Rec(l_Line_Adj_rec,p_x_Line_Adj_Rec);
1239 IF l_debug_level > 0 THEN
1240 oe_debug_pub.add( 'LEAVING CLEAR_DEPENDENT_ATTR' ) ;
1241 END IF;
1242 END Clear_Dependent_Attr;
1243
1244 -- Procedure Apply_Attribute_Changes
1245
1246 PROCEDURE Apply_Attribute_Changes
1247 ( p_x_Line_Adj_rec IN out nocopy OE_Order_PUB.Line_Adj_Rec_Type
1248 , p_old_Line_Adj_rec IN OE_Order_PUB.Line_Adj_Rec_Type :=
1249 OE_Order_PUB.G_MISS_LINE_ADJ_REC
1250 --, x_Line_Adj_rec OUT OE_Order_PUB.Line_Adj_Rec_Type
1251 )
1252 IS
1253 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1254 l_price_flag boolean := FALSE;
1255 l_calculate_commitment_flag VARCHAR2(1) := 'N';
1256 l_class VARCHAR2(30);
1257 l_so_source_code VARCHAR2(30);
1258 l_oe_installed_flag VARCHAR2(30);
1259 l_commitment_id NUMBER;
1260 l_verify_payment_flag VARCHAR2(30) := 'N';
1261 l_line_category_code VARCHAR2(30);
1262
1263 --bug#5961160
1264 l_calling_action VARCHAR2(30);
1265 l_header_rec OE_Order_PUB.Header_Rec_Type;
1266 l_rule_defined VARCHAR2(1);
1267 l_credit_check_rule_id NUMBER;
1268 l_credit_check_rule_rec OE_CREDIT_CHECK_UTIL.OE_credit_rules_rec_type ;
1269
1270 --
1271 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1272 --
1273 BEGIN
1274
1275 -- Load out record
1276
1277 --x_Line_Adj_rec := p_Line_Adj_rec;
1278 IF l_debug_level > 0 THEN
1279 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.APPLY ATTRIBUTE CHANGES' ) ;
1280 END IF;
1281 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.adjusted_amount,p_old_Line_Adj_rec.adjusted_amount)
1282 THEN
1283 NULL;
1284 END IF;
1285
1286 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.adjusted_amount_per_pqty,p_old_Line_Adj_rec.adjusted_amount_per_pqty)
1287 THEN
1288 NULL;
1289 END IF;
1290
1291 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.pricing_phase_id,p_old_Line_Adj_rec.pricing_phase_id)
1292 THEN
1293 l_price_flag := TRUE;
1294 END IF;
1295
1296 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.price_adjustment_id,p_old_Line_Adj_rec.price_adjustment_id)
1297 THEN
1298 NULL;
1299 END IF;
1300
1301 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.creation_date,p_old_Line_Adj_rec.creation_date)
1302 THEN
1303 NULL;
1304 END IF;
1305
1306 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.created_by,p_old_Line_Adj_rec.created_by)
1307 THEN
1308 NULL;
1309 END IF;
1310
1311 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.last_update_date,p_old_Line_Adj_rec.last_update_date)
1312 THEN
1313 NULL;
1314 END IF;
1315
1316 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.last_updated_by,p_old_Line_Adj_rec.last_updated_by)
1317 THEN
1318 NULL;
1319 END IF;
1320
1321 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.last_update_login,p_old_Line_Adj_rec.last_update_login)
1322 THEN
1323 NULL;
1324 END IF;
1325
1326 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.program_application_id,p_old_Line_Adj_rec.program_application_id)
1327 THEN
1328 NULL;
1329 END IF;
1330
1331 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.program_id,p_old_Line_Adj_rec.program_id)
1332 THEN
1333 NULL;
1334 END IF;
1335
1336 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.program_update_date,p_old_Line_Adj_rec.program_update_date)
1337 THEN
1338 NULL;
1339 END IF;
1340
1341 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.request_id,p_old_Line_Adj_rec.request_id)
1342 THEN
1343 NULL;
1344 END IF;
1345
1346 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.header_id,p_old_Line_Adj_rec.header_id)
1347 THEN
1348 NULL;
1349 END IF;
1350
1351
1352 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.discount_id,
1353 p_old_Line_Adj_rec.discount_id)
1354 THEN
1355 Null;
1356 END IF;
1357
1358 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.discount_line_id,
1359 p_old_Line_Adj_rec.discount_line_id)
1360 THEN
1361 null;
1362 END IF;
1363
1364 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.automatic_flag,p_old_Line_Adj_rec.automatic_flag)
1365 THEN
1366 NULL;
1367 END IF;
1368
1369 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.percent,p_old_Line_Adj_rec.percent)
1370 THEN
1371 NULL;
1372 END IF;
1373
1374 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.line_id,p_old_Line_Adj_rec.line_id)
1375 THEN
1376 NULL;
1377 END IF;
1378
1379 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.context,p_old_Line_Adj_rec.context)
1380 THEN
1381 NULL;
1382 END IF;
1383
1384 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute1,p_old_Line_Adj_rec.attribute1)
1385 THEN
1386 NULL;
1387 END IF;
1388
1389 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute2,p_old_Line_Adj_rec.attribute2)
1390 THEN
1391 NULL;
1392 END IF;
1393
1394 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute3,p_old_Line_Adj_rec.attribute3)
1395 THEN
1396 NULL;
1397 END IF;
1398
1399 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute4,p_old_Line_Adj_rec.attribute4)
1400 THEN
1401 NULL;
1402 END IF;
1403
1404 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute5,p_old_Line_Adj_rec.attribute5)
1405 THEN
1406 NULL;
1407 END IF;
1408
1409 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute6,p_old_Line_Adj_rec.attribute6)
1410 THEN
1411 NULL;
1412 END IF;
1413
1414 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute7,p_old_Line_Adj_rec.attribute7)
1415 THEN
1416 NULL;
1417 END IF;
1418
1419 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute8,p_old_Line_Adj_rec.attribute8)
1420 THEN
1421 NULL;
1422 END IF;
1423
1424 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute9,p_old_Line_Adj_rec.attribute9)
1425 THEN
1426 NULL;
1427 END IF;
1428
1429 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute10,p_old_Line_Adj_rec.attribute10)
1430 THEN
1431 NULL;
1432 END IF;
1433
1434 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute11,p_old_Line_Adj_rec.attribute11)
1435 THEN
1436 NULL;
1437 END IF;
1438
1439 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute12,p_old_Line_Adj_rec.attribute12)
1440 THEN
1441 NULL;
1442 END IF;
1443
1444 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute13,p_old_Line_Adj_rec.attribute13)
1445 THEN
1446 NULL;
1447 END IF;
1448
1449 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute14,p_old_Line_Adj_rec.attribute14)
1450 THEN
1451 NULL;
1452 END IF;
1453
1454 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute15,p_old_Line_Adj_rec.attribute15)
1455 THEN
1456 NULL;
1457 END IF;
1458
1459 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.list_header_id,
1460 p_old_Line_Adj_rec.list_header_id)
1461 THEN
1462 NULL;
1463 END IF;
1464
1465 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.list_line_id,
1466 p_old_Line_Adj_rec.list_line_id)
1467 THEN
1468 NULL;
1469 END IF;
1470
1471 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.list_line_type_code,
1472 p_old_Line_Adj_rec.list_line_type_code)
1473 THEN
1474 NULL;
1475 END IF;
1476
1477 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.modifier_mechanism_type_code,
1478 p_old_Line_Adj_rec.modifier_mechanism_type_code)
1479 THEN
1480 NULL;
1481 END IF;
1482
1483 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.update_allowed,
1484 p_old_Line_Adj_rec.update_allowed)
1485 THEN
1486 NULL;
1487 END IF;
1488
1489 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.updated_flag,
1490 p_old_Line_Adj_rec.updated_flag)
1491 THEN
1492 l_price_flag := TRUE;
1493 IF p_x_line_Adj_rec.ESTIMATED_FLAG = 'Y' AND
1494 p_x_line_Adj_rec.updated_flag = 'Y'
1495 THEN
1496 p_x_line_adj_rec.estimated_flag := 'N';
1497 END IF;
1498 IF p_x_line_Adj_rec.ESTIMATED_FLAG = 'N' AND
1499 p_x_line_Adj_rec.updated_flag = 'N'
1500 THEN
1501 p_x_line_adj_rec.estimated_flag := 'Y';
1502 END IF;
1503 END IF;
1504
1505 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.applied_flag,
1506 p_old_Line_Adj_rec.applied_flag)
1507 THEN
1508 l_price_flag := TRUE;
1509 --added by ksurendr
1510 --bug 4060297
1511 --Delayed request to compute margin
1512 oe_header_Adj_util.log_request_for_margin(p_x_Line_Adj_rec.header_id);
1513 END IF;
1514
1515 -- added by lkxu: populate the change reason when manual adjustment
1516 -- is applied by user.
1517 IF p_x_Line_Adj_rec.applied_flag = 'Y'
1518 AND p_x_Line_Adj_rec.automatic_flag = 'N'
1519 AND p_x_Line_Adj_rec.change_reason_code IS NULL THEN
1520 BEGIN
1521 SELECT lookup_code, meaning
1522 INTO p_x_Line_Adj_rec.change_reason_code,
1523 p_x_Line_Adj_rec.change_reason_text
1524 FROM oe_lookups
1525 WHERE lookup_type = 'CHANGE_CODE'
1526 AND lookup_code = 'MANUAL';
1527
1528 EXCEPTION WHEN NO_DATA_FOUND THEN
1529 null;
1530 END;
1531 END IF;
1532
1533 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.modified_from,
1534 p_old_Line_Adj_rec.modified_from)
1535 THEN
1536 NULL;
1537 END IF;
1538
1539 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.modified_to,
1540 p_old_Line_Adj_rec.modified_to)
1541 THEN
1542 NULL;
1543 END IF;
1544
1545
1546 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.change_reason_code,
1547 p_old_Line_Adj_rec.change_reason_code)
1548 THEN
1549 NULL;
1550 END IF;
1551
1552 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.change_reason_text,
1553 p_old_Line_Adj_rec.change_reason_text)
1554 THEN
1555 NULL;
1556 END IF;
1557
1558 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.operand,
1559 p_old_Line_Adj_rec.operand)
1560 THEN
1561 l_price_flag := TRUE;
1562 l_calculate_commitment_flag := 'Y';
1563
1564 --bug 4060297
1565 oe_header_Adj_util.log_request_for_margin(p_x_Line_Adj_rec.header_id);
1566
1567 -- fixed bug 3271297, to log Verify Payment delayed request
1568 -- when freight charge changes.
1569 IF p_x_Line_Adj_rec.list_line_type_code='FREIGHT_CHARGE' THEN
1570 l_verify_payment_flag := 'Y';
1571 END IF;
1572 END IF;
1573
1574 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.operand_per_pqty,
1575 p_old_Line_Adj_rec.operand_per_pqty)
1576 THEN
1577 l_price_flag := TRUE;
1578 END IF;
1579
1580 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.arithmetic_operator,
1581 p_old_Line_Adj_rec.arithmetic_operator)
1582 THEN
1583 l_price_flag := TRUE;
1584 END IF;
1585
1586 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.COST_ID, p_old_Line_Adj_rec.COST_ID)
1587 THEN
1588 NULL;
1589 END IF;
1590
1591 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.TAX_CODE, p_old_Line_Adj_rec.TAX_CODE)
1592 THEN
1593 NULL;
1594 END IF;
1595
1596 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.TAX_EXEMPT_FLAG, p_old_Line_Adj_rec.TAX_EXEMPT_FLAG)
1597 THEN
1598 NULL;
1599 END IF;
1600
1601 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.TAX_EXEMPT_NUMBER, p_old_Line_Adj_rec.TAX_EXEMPT_NUMBER)
1602 THEN
1603 NULL;
1604 END IF;
1605
1606 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.TAX_EXEMPT_REASON_CODE, p_old_Line_Adj_rec.TAX_EXEMPT_REASON_CODE)
1607 THEN
1608 NULL;
1609 END IF;
1610
1611 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.PARENT_ADJUSTMENT_ID, p_old_Line_Adj_rec.PARENT_ADJUSTMENT_ID)
1612 THEN
1613 NULL;
1614 END IF;
1615
1616 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.INVOICED_FLAG, p_old_Line_Adj_rec.INVOICED_FLAG)
1617 THEN
1618 NULL;
1619 END IF;
1620
1621 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.ESTIMATED_FLAG, p_old_Line_Adj_rec.ESTIMATED_FLAG)
1622 THEN
1623 NULL;
1624 END IF;
1625
1626 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.INC_IN_SALES_PERFORMANCE, p_old_Line_Adj_rec.INC_IN_SALES_PERFORMANCE)
1627 THEN
1628 NULL;
1629 END IF;
1630
1631 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.SPLIT_ACTION_CODE, p_old_Line_Adj_rec.SPLIT_ACTION_CODE)
1632 THEN
1633 NULL;
1634 END IF;
1635
1636 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.CHARGE_TYPE_CODE, p_old_Line_Adj_rec.CHARGE_TYPE_CODE)
1637 THEN
1638 NULL;
1639 END IF;
1640
1641 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.CHARGE_SUBTYPE_CODE, p_old_Line_Adj_rec.CHARGE_SUBTYPE_CODE)
1642 THEN
1643 NULL;
1644 END IF;
1645
1646 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.list_line_no, p_old_Line_Adj_rec.list_line_no)
1647 THEN
1648 NULL;
1649 END IF;
1650
1651 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.source_system_code, p_old_Line_Adj_rec.source_system_code)
1652 THEN
1653 NULL;
1654 END IF;
1655
1656 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.benefit_qty, p_old_Line_Adj_rec.benefit_qty)
1657 THEN
1658 NULL;
1659 END IF;
1660
1661 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.benefit_uom_code, p_old_Line_Adj_rec.benefit_uom_code)
1662 THEN
1663 NULL;
1664 END IF;
1665
1666 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.print_on_invoice_flag, p_old_Line_Adj_rec.print_on_invoice_flag)
1667 THEN
1668 NULL;
1669 END IF;
1670
1671 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.expiration_date, p_old_Line_Adj_rec.expiration_date)
1672 THEN
1673 NULL;
1674 END IF;
1675
1676 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.rebate_transaction_type_code, p_old_Line_Adj_rec.rebate_transaction_type_code)
1677 THEN
1678 NULL;
1679 END IF;
1680
1681 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.rebate_transaction_reference, p_old_Line_Adj_rec.rebate_transaction_reference)
1682 THEN
1683 NULL;
1684 END IF;
1685
1686 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.rebate_payment_system_code, p_old_Line_Adj_rec.rebate_payment_system_code)
1687 THEN
1688 NULL;
1689 END IF;
1690
1691 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.redeemed_date, p_old_Line_Adj_rec.redeemed_date)
1692 THEN
1693 NULL;
1694 END IF;
1695
1696 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.redeemed_flag, p_old_Line_Adj_rec.redeemed_flag)
1697 THEN
1698 NULL;
1699 END IF;
1700
1701 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.accrual_flag, p_old_Line_Adj_rec.accrual_flag)
1702 THEN
1703 NULL;
1704 END IF;
1705
1706 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.range_break_quantity, p_old_Line_Adj_rec.range_break_quantity)
1707 THEN
1708 NULL;
1709 END IF;
1710
1711 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.accrual_conversion_rate, p_old_Line_Adj_rec.accrual_conversion_rate)
1712 THEN
1713 NULL;
1714 END IF;
1715
1716 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.pricing_group_sequence, p_old_Line_Adj_rec.pricing_group_sequence)
1717 THEN
1718 l_price_flag := TRUE;
1719 END IF;
1720
1721 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.modifier_level_code, p_old_Line_Adj_rec.modifier_level_code)
1722 THEN
1723 NULL;
1724 END IF;
1725
1726 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.price_break_type_code, p_old_Line_Adj_rec.price_break_type_code)
1727 THEN
1728 NULL;
1729 END IF;
1730
1731 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.substitution_attribute, p_old_Line_Adj_rec.substitution_attribute)
1732 THEN
1733 NULL;
1734 END IF;
1735
1736 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.proration_type_code, p_old_Line_Adj_rec.proration_type_code)
1737 THEN
1738 NULL;
1739 END IF;
1740
1741 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.credit_or_charge_flag, p_old_Line_Adj_rec.credit_or_charge_flag)
1742 THEN
1743 NULL;
1744 END IF;
1745
1746 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.include_on_returns_flag, p_old_Line_Adj_rec.include_on_returns_flag)
1747 THEN
1748 NULL;
1749 END IF;
1750
1751 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.INVOICED_AMOUNT, p_old_Line_Adj_rec.INVOICED_AMOUNT)
1752 THEN
1753 NULL;
1754 END IF;
1755
1756 IF l_debug_level > 0 THEN
1757 oe_debug_pub.add( 'RECURSION_MODE'||OE_GLOBALS.G_RECURSION_MODE||' PRICING:'||OE_GLOBALS.G_PRICING_RECURSION , 1 ) ;
1758 oe_debug_pub.add( 'HEADER_ID'||P_X_LINE_ADJ_REC.HEADER_ID , 1 ) ;
1759 oe_debug_pub.add( 'LINE_ID'||P_X_LINE_ADJ_REC.LINE_ID , 1 ) ;
1760 END IF;
1761 if (l_price_flag) then
1762 IF l_debug_level > 0 THEN
1763 oe_debug_pub.add( 'PRICE FLAG:Y' , 1 ) ;
1764 END IF;
1765 else
1766 IF l_debug_level > 0 THEN
1767 oe_debug_pub.add( 'PRICE FLAG:N' , 1 ) ;
1768 END IF;
1769 end if;
1770
1771 -- bug 2378843: don't log request when g_pricing_recursion is set
1772 IF l_price_flag and OE_Globals.G_RECURSION_MODE <> 'Y' AND
1773 OE_GLOBALS.G_PRICING_RECURSION <> 'Y' AND
1774 p_x_line_adj_rec.list_line_type_code NOT IN ('TAX','COST')
1775 Then
1776
1777 IF (p_x_Line_adj_rec.line_id IS NOT NULL) THEN
1778
1779 /* 1905650
1780 G_PRICE_ADJ request should be logged against LINE entity,
1781 not against LINE_ADJ entity
1782 */
1783 If OE_GLOBALS.G_UI_FLAG and nvl(p_x_Line_adj_rec.automatic_flag,'Y') = 'N' Then
1784 --we need to log different delayed request for manual adjustments.
1785 IF l_debug_level > 0 THEN
1786 oe_debug_pub.add( ' UI FLAG IS TRUE , LOGGING UI DELAYED REQUEST FOR ADJ' ) ;
1787 END IF;
1788 oe_delayed_requests_pvt.log_request(
1789 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
1790 p_entity_id => p_x_Line_adj_rec.Line_id,
1791 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
1792 p_requesting_entity_id => p_x_Line_adj_rec.Line_id,
1793 p_request_type => OE_GLOBALS.G_PRICE_ADJ,
1794 p_param1 => 'UI',
1795 x_return_status => l_return_status);
1796 Else
1797 oe_delayed_requests_pvt.log_request(
1798 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
1799 p_entity_id => p_x_Line_adj_rec.Line_id,
1800 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
1801 p_requesting_entity_id => p_x_Line_adj_rec.Line_id,
1802 p_request_type => OE_GLOBALS.G_PRICE_ADJ,
1803 x_return_status => l_return_status);
1804 End If;
1805 ELSE
1806 oe_delayed_requests_pvt.log_request(
1807 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
1808 p_entity_id => p_x_Line_adj_rec.header_id,
1809 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
1810 p_requesting_entity_id => p_x_Line_adj_rec.header_id,
1811 p_request_type => OE_GLOBALS.G_PRICE_ADJ,
1812 x_return_status => l_return_status);
1813 END IF;
1814 l_price_flag := FALSE;
1815 End If;
1816
1817 IF l_calculate_commitment_flag = 'Y' THEN
1818 l_class := NULL;
1819 l_so_source_code := FND_PROFILE.VALUE('ONT_SOURCE_CODE');
1820 l_oe_installed_flag := 'I';
1821 BEGIN
1822 SELECT commitment_id
1823 INTO l_commitment_id
1824 FROM oe_order_lines
1825 WHERE line_id = p_old_line_adj_rec.line_id;
1826
1827 EXCEPTION
1828 WHEN NO_DATA_FOUND THEN
1829 NULL;
1830 END;
1831
1832 IF l_commitment_id IS NOT NULL
1833 AND OE_Commitment_Pvt.Do_Commitment_Sequencing THEN
1834 oe_globals.g_commitment_balance := ARP_BAL_UTIL.GET_COMMITMENT_BALANCE(
1835 l_commitment_id
1836 ,l_class
1837 ,l_so_source_code
1838 ,l_oe_installed_flag );
1839
1840 OE_Delayed_Requests_Pvt.Log_Request(
1841 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
1842 p_entity_id => p_x_line_adj_rec.line_id,
1843 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
1844 p_requesting_entity_id => p_x_line_adj_rec.line_id,
1845 p_request_type => OE_GLOBALS.G_CALCULATE_COMMITMENT,
1846 x_return_status => l_return_status);
1847 END IF;
1848 END IF;
1849
1850 IF (l_verify_payment_flag = 'Y') THEN
1851 --Start bug# 5961160
1852 -- Query the Order Header
1853 IF l_debug_level > 0 THEN
1854 oe_debug_pub.add( 'OEXULADB: BEFORE QUERYING HEADER ID : '|| p_x_line_adj_rec.header_id ) ;
1855 END IF;
1856
1857 OE_Header_UTIL.Query_Row
1858 (p_header_id => p_x_line_adj_rec.header_id
1859 ,x_header_rec => l_header_rec
1860 );
1861
1862 IF l_debug_level > 0
1863 THEN
1864 OE_DEBUG_PUB.ADD('after query header ');
1865 OE_DEBUG_PUB.ADD(' ');
1866 OE_DEBUG_PUB.ADD('================================================');
1867 OE_DEBUG_PUB.ADD('Header ID = '|| l_header_rec.header_id );
1868 OE_DEBUG_PUB.ADD('order_category_code = '|| l_header_rec.order_category_code );
1869 OE_DEBUG_PUB.ADD('Booked flag = '|| l_header_rec.booked_flag );
1870 OE_DEBUG_PUB.ADD('Order number = '|| l_header_rec.order_number );
1871 OE_DEBUG_PUB.ADD('payment_term_id = '|| l_header_rec.payment_term_id );
1872 OE_DEBUG_PUB.ADD('order_type_id = '|| l_header_rec.order_type_id );
1873 OE_DEBUG_PUB.ADD(' ');
1874 OE_DEBUG_PUB.ADD('================================================');
1875 END IF;
1876
1877 -- Call Which_Rule function to find out Which Rule to Apply
1878 IF l_debug_level > 0 THEN
1879 oe_debug_pub.add( 'OEXULADB: BEFORE CALLING WHICH RULE ' ) ;
1880 END IF;
1881
1882 l_calling_action := OE_Verify_Payment_PUB.Which_Rule(p_header_id => p_x_line_adj_rec.header_id);
1883
1884 IF l_debug_level > 0 THEN
1885 oe_debug_pub.add( 'OEXULADB: RULE TO BE USED IS : '|| l_calling_action ) ;
1886 END IF;
1887
1888 IF l_debug_level > 0 THEN
1889 oe_debug_pub.add( 'OEXULADB: BEFORE CHECKING IF THE RULE IS DEFINED OR NOT' ) ;
1890 END IF;
1891
1892 l_rule_defined := OE_Verify_Payment_PUB.Check_Rule_Defined
1893 ( p_header_rec => l_header_rec
1894 , p_calling_action => l_calling_action
1895 ) ;
1896
1897 IF l_debug_level > 0 THEN
1898 oe_debug_pub.add( 'OEXULADB: OUT OF RULE DEFINED : '|| l_rule_defined);
1899 END IF;
1900
1901 IF l_rule_defined = 'Y' THEN
1902 l_credit_check_rule_id := NULL ;
1903
1904 -- Check the Rule to Apply
1905 IF l_debug_level > 0 THEN
1906 oe_debug_pub.add( 'Before L_CREDIT_CHECK_RULE_ID => '|| l_credit_check_rule_id ) ;
1907 END IF;
1908
1909 OE_CREDIT_CHECK_UTIL.Get_Credit_Check_Rule_ID
1910 ( p_calling_action => l_calling_action
1911 , p_order_type_id => l_header_rec.order_type_id
1912 , x_credit_rule_id => l_credit_check_rule_id
1913 );
1914
1915 IF l_debug_level > 0 THEN
1916 oe_debug_pub.add( 'After L_CREDIT_CHECK_RULE_ID => '|| l_credit_check_rule_id ) ;
1917 END IF;
1918
1919 OE_CREDIT_CHECK_UTIL.GET_credit_check_rule
1920 ( p_credit_check_rule_id => l_credit_check_rule_id
1921 , x_credit_check_rules_rec => l_credit_check_rule_rec
1922 );
1923
1924 IF l_debug_level > 0 THEN
1925 oe_debug_pub.add( 'OEXULADB: INCL FREIGHT CHARGE FLAG : '|| l_credit_check_rule_rec.incl_freight_charges_flag);
1926 END IF;
1927
1928 IF NVL(l_credit_check_rule_rec.incl_freight_charges_flag,'N') = 'Y' THEN
1929 BEGIN
1930 SELECT line_category_code
1931 INTO l_line_category_code
1932 FROM oe_order_lines_all
1933 WHERE line_id = p_x_line_adj_rec.line_id;
1934 EXCEPTION WHEN NO_DATA_FOUND THEN
1935 null;
1936 END;
1937 IF l_line_category_code <> 'RETURN' THEN
1938 oe_debug_pub.ADD('OEXULADB: Logging delayed request for Verify Payment');
1939 OE_delayed_requests_Pvt.log_request
1940 (p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
1941 p_entity_id => p_x_line_adj_rec.header_id,
1942 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
1943 p_requesting_entity_id => p_x_line_adj_rec.line_id,
1944 p_request_type => OE_GLOBALS.G_VERIFY_PAYMENT,
1945 x_return_status => l_return_status);
1946 END IF;
1947 END IF;
1948 END IF;
1949 --End bug#5961160
1950 END IF;
1951
1952 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
1953 THEN
1954 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1955 END IF;
1956 IF l_debug_level > 0 THEN
1957 oe_debug_pub.add( 'OE_LINE_ADJ_UTIL.LEAVING APPLY_ATTRIBUTE_CHANGES' ) ;
1958 END IF;
1959 END Apply_Attribute_Changes;
1960
1961 -- Procedure Complete_Record
1962
1963 PROCEDURE Complete_Record
1964 ( p_x_Line_Adj_rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
1965 , p_old_Line_Adj_rec IN OE_Order_PUB.Line_Adj_Rec_Type
1966 )
1967 IS
1968 l_Line_Adj_rec OE_Order_PUB.Line_Adj_Rec_Type := p_x_Line_Adj_rec;
1969 BEGIN
1970
1971 IF l_Line_Adj_rec.adjusted_amount = FND_API.G_MISS_NUM THEN
1972 l_Line_Adj_rec.adjusted_amount := p_old_Line_Adj_rec.adjusted_amount;
1973 END IF;
1974
1975 IF l_Line_Adj_rec.pricing_phase_id = FND_API.G_MISS_NUM THEN
1976 l_Line_Adj_rec.pricing_phase_id := p_old_Line_Adj_rec.pricing_phase_id;
1977 END IF;
1978
1979
1980
1981 IF l_Line_Adj_rec.price_adjustment_id = FND_API.G_MISS_NUM THEN
1982 l_Line_Adj_rec.price_adjustment_id := p_old_Line_Adj_rec.price_adjustment_id;
1983 END IF;
1984
1985 IF l_Line_Adj_rec.creation_date = FND_API.G_MISS_DATE THEN
1986 l_Line_Adj_rec.creation_date := p_old_Line_Adj_rec.creation_date;
1987 END IF;
1988
1989 IF l_Line_Adj_rec.created_by = FND_API.G_MISS_NUM THEN
1990 l_Line_Adj_rec.created_by := p_old_Line_Adj_rec.created_by;
1991 END IF;
1992
1993 IF l_Line_Adj_rec.last_update_date = FND_API.G_MISS_DATE THEN
1994 l_Line_Adj_rec.last_update_date := p_old_Line_Adj_rec.last_update_date;
1995 END IF;
1996
1997 IF l_Line_Adj_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1998 l_Line_Adj_rec.last_updated_by := p_old_Line_Adj_rec.last_updated_by;
1999 END IF;
2000
2001 IF l_Line_Adj_rec.last_update_login = FND_API.G_MISS_NUM THEN
2002 l_Line_Adj_rec.last_update_login := p_old_Line_Adj_rec.last_update_login;
2003 END IF;
2004
2005 IF l_Line_Adj_rec.program_application_id = FND_API.G_MISS_NUM THEN
2006 l_Line_Adj_rec.program_application_id := p_old_Line_Adj_rec.program_application_id;
2007 END IF;
2008
2009 IF l_Line_Adj_rec.program_id = FND_API.G_MISS_NUM THEN
2010 l_Line_Adj_rec.program_id := p_old_Line_Adj_rec.program_id;
2011 END IF;
2012
2013 IF l_Line_Adj_rec.program_update_date = FND_API.G_MISS_DATE THEN
2014 l_Line_Adj_rec.program_update_date := p_old_Line_Adj_rec.program_update_date;
2015 END IF;
2016
2017 IF l_Line_Adj_rec.request_id = FND_API.G_MISS_NUM THEN
2018 l_Line_Adj_rec.request_id := p_old_Line_Adj_rec.request_id;
2019 END IF;
2020
2021 IF l_Line_Adj_rec.header_id = FND_API.G_MISS_NUM THEN
2022 l_Line_Adj_rec.header_id := p_old_Line_Adj_rec.header_id;
2023 END IF;
2024
2025 IF l_Line_Adj_rec.discount_id = FND_API.G_MISS_NUM THEN
2026 l_Line_Adj_rec.discount_id := p_old_Line_Adj_rec.discount_id;
2027 END IF;
2028
2029 IF l_Line_Adj_rec.discount_line_id = FND_API.G_MISS_NUM THEN
2030 l_Line_Adj_rec.discount_line_id := p_old_Line_Adj_rec.discount_line_id;
2031 END IF;
2032
2033 IF l_Line_Adj_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
2034 l_Line_Adj_rec.automatic_flag := p_old_Line_Adj_rec.automatic_flag;
2035 END IF;
2036
2037 IF l_Line_Adj_rec.percent = FND_API.G_MISS_NUM THEN
2038 l_Line_Adj_rec.percent := p_old_Line_Adj_rec.percent;
2039 END IF;
2040
2041 IF l_Line_Adj_rec.line_id = FND_API.G_MISS_NUM THEN
2042 l_Line_Adj_rec.line_id := p_old_Line_Adj_rec.line_id;
2043 END IF;
2044
2045 IF l_Line_Adj_rec.context = FND_API.G_MISS_CHAR THEN
2046 l_Line_Adj_rec.context := p_old_Line_Adj_rec.context;
2047 END IF;
2048
2049 IF l_Line_Adj_rec.attribute1 = FND_API.G_MISS_CHAR THEN
2050 l_Line_Adj_rec.attribute1 := p_old_Line_Adj_rec.attribute1;
2051 END IF;
2052
2053 IF l_Line_Adj_rec.attribute2 = FND_API.G_MISS_CHAR THEN
2054 l_Line_Adj_rec.attribute2 := p_old_Line_Adj_rec.attribute2;
2055 END IF;
2056
2057 IF l_Line_Adj_rec.attribute3 = FND_API.G_MISS_CHAR THEN
2058 l_Line_Adj_rec.attribute3 := p_old_Line_Adj_rec.attribute3;
2059 END IF;
2060
2061 IF l_Line_Adj_rec.attribute4 = FND_API.G_MISS_CHAR THEN
2062 l_Line_Adj_rec.attribute4 := p_old_Line_Adj_rec.attribute4;
2063 END IF;
2064
2065 IF l_Line_Adj_rec.attribute5 = FND_API.G_MISS_CHAR THEN
2066 l_Line_Adj_rec.attribute5 := p_old_Line_Adj_rec.attribute5;
2067 END IF;
2068
2069 IF l_Line_Adj_rec.attribute6 = FND_API.G_MISS_CHAR THEN
2070 l_Line_Adj_rec.attribute6 := p_old_Line_Adj_rec.attribute6;
2071 END IF;
2072
2073 IF l_Line_Adj_rec.attribute7 = FND_API.G_MISS_CHAR THEN
2074 l_Line_Adj_rec.attribute7 := p_old_Line_Adj_rec.attribute7;
2075 END IF;
2076
2077 IF l_Line_Adj_rec.attribute8 = FND_API.G_MISS_CHAR THEN
2078 l_Line_Adj_rec.attribute8 := p_old_Line_Adj_rec.attribute8;
2079 END IF;
2080
2081 IF l_Line_Adj_rec.attribute9 = FND_API.G_MISS_CHAR THEN
2082 l_Line_Adj_rec.attribute9 := p_old_Line_Adj_rec.attribute9;
2083 END IF;
2084
2085 IF l_Line_Adj_rec.attribute10 = FND_API.G_MISS_CHAR THEN
2086 l_Line_Adj_rec.attribute10 := p_old_Line_Adj_rec.attribute10;
2087 END IF;
2088
2089 IF l_Line_Adj_rec.attribute11 = FND_API.G_MISS_CHAR THEN
2090 l_Line_Adj_rec.attribute11 := p_old_Line_Adj_rec.attribute11;
2091 END IF;
2092
2093 IF l_Line_Adj_rec.attribute12 = FND_API.G_MISS_CHAR THEN
2094 l_Line_Adj_rec.attribute12 := p_old_Line_Adj_rec.attribute12;
2095 END IF;
2096
2097 IF l_Line_Adj_rec.attribute13 = FND_API.G_MISS_CHAR THEN
2098 l_Line_Adj_rec.attribute13 := p_old_Line_Adj_rec.attribute13;
2099 END IF;
2100
2101 IF l_Line_Adj_rec.attribute14 = FND_API.G_MISS_CHAR THEN
2102 l_Line_Adj_rec.attribute14 := p_old_Line_Adj_rec.attribute14;
2103 END IF;
2104
2105 IF l_Line_Adj_rec.attribute15 = FND_API.G_MISS_CHAR THEN
2106 l_Line_Adj_rec.attribute15 := p_old_Line_Adj_rec.attribute15;
2107 END IF;
2108
2109 -- new code
2110 IF l_Line_Adj_rec.list_header_id = FND_API.G_MISS_NUM THEN
2111 l_Line_Adj_rec.list_header_id := p_old_Line_Adj_rec.list_header_id;
2112 END IF;
2113
2114 IF l_Line_Adj_rec.list_line_id = FND_API.G_MISS_NUM THEN
2115 l_Line_Adj_rec.list_line_id := p_old_Line_Adj_rec.list_line_id;
2116 END IF;
2117
2118 IF l_Line_Adj_rec.modified_from = FND_API.G_MISS_CHAR THEN
2119 l_Line_Adj_rec.modified_from := p_old_Line_Adj_rec.modified_from;
2120 END IF;
2121
2122 IF l_Line_Adj_rec.modified_to = FND_API.G_MISS_CHAR THEN
2123 l_Line_Adj_rec.modified_to := p_old_Line_Adj_rec.modified_to;
2124 END IF;
2125
2126 IF l_Line_Adj_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
2127 l_Line_Adj_rec.list_line_type_code :=
2128 p_old_Line_Adj_rec.list_line_type_code;
2129 END IF;
2130
2131 IF l_Line_Adj_rec.updated_flag = FND_API.G_MISS_CHAR THEN
2132 l_Line_Adj_rec.updated_flag := p_old_Line_Adj_rec.updated_flag;
2133 END IF;
2134
2135 IF l_Line_Adj_rec.update_allowed = FND_API.G_MISS_CHAR THEN
2136 l_Line_Adj_rec.update_allowed := p_old_Line_Adj_rec.update_allowed;
2137 END IF;
2138
2139 IF l_Line_Adj_rec.applied_flag = FND_API.G_MISS_CHAR THEN
2140 l_Line_Adj_rec.applied_flag := p_old_Line_Adj_rec.applied_flag;
2141 END IF;
2142
2143 IF l_Line_Adj_rec.modifier_mechanism_type_code = FND_API.G_MISS_CHAR THEN
2144 l_Line_Adj_rec.modifier_mechanism_type_code :=
2145 p_old_Line_Adj_rec.modifier_mechanism_type_code;
2146 END IF;
2147
2148 IF l_Line_Adj_rec.change_reason_code = FND_API.G_MISS_CHAR THEN
2149 l_Line_Adj_rec.change_reason_code :=
2150 p_old_Line_Adj_rec.change_reason_code;
2151 END IF;
2152
2153 IF l_Line_Adj_rec.change_reason_text = FND_API.G_MISS_CHAR THEN
2154 l_Line_Adj_rec.change_reason_text :=
2155 p_old_Line_Adj_rec.change_reason_text;
2156 END IF;
2157
2158 IF l_Line_Adj_rec.operand = FND_API.G_MISS_NUM THEN
2159 l_Line_Adj_rec.operand :=
2160 p_old_Line_Adj_rec.operand;
2161 END IF;
2162
2163 IF l_Line_Adj_rec.arithmetic_operator = FND_API.G_MISS_CHAR THEN
2164 l_Line_Adj_rec.arithmetic_operator :=
2165 p_old_Line_Adj_rec.arithmetic_operator;
2166 END IF;
2167
2168 IF l_Line_Adj_rec.cost_id = FND_API.G_MISS_NUM THEN
2169 l_Line_Adj_rec.cost_id := p_old_Line_Adj_rec.cost_id;
2170 END IF;
2171
2172 IF l_Line_Adj_rec.tax_code = FND_API.G_MISS_CHAR THEN
2173 l_Line_Adj_rec.tax_code := p_old_Line_Adj_rec.tax_code;
2174 END IF;
2175
2176 IF l_Line_Adj_rec.tax_exempt_flag = FND_API.G_MISS_CHAR THEN
2177 l_Line_Adj_rec.tax_exempt_flag :=
2178 p_old_Line_Adj_rec.tax_exempt_flag;
2179 END IF;
2180
2181 IF l_Line_Adj_rec.tax_exempt_number = FND_API.G_MISS_CHAR THEN
2182 l_Line_Adj_rec.tax_exempt_number :=
2183 p_old_Line_Adj_rec.tax_exempt_number;
2184 END IF;
2185
2186 IF l_Line_Adj_rec.tax_exempt_reason_code = FND_API.G_MISS_CHAR THEN
2187 l_Line_Adj_rec.tax_exempt_reason_code :=
2188 p_old_Line_Adj_rec.tax_exempt_reason_code;
2189 END IF;
2190
2191 IF l_Line_Adj_rec.parent_adjustment_id = FND_API.G_MISS_NUM THEN
2192 l_Line_Adj_rec.parent_adjustment_id :=
2193 p_old_Line_Adj_rec.parent_adjustment_id;
2194 END IF;
2195
2196 IF l_Line_Adj_rec.invoiced_flag = FND_API.G_MISS_CHAR THEN
2197 l_Line_Adj_rec.invoiced_flag :=
2198 p_old_Line_Adj_rec.invoiced_flag;
2199 END IF;
2200
2201 IF l_Line_Adj_rec.estimated_flag = FND_API.G_MISS_CHAR THEN
2202 l_Line_Adj_rec.estimated_flag :=
2203 p_old_Line_Adj_rec.estimated_flag;
2204 END IF;
2205
2206 IF l_Line_Adj_rec.inc_in_sales_performance = FND_API.G_MISS_CHAR THEN
2207 l_Line_Adj_rec.inc_in_sales_performance :=
2208 p_old_Line_Adj_rec.inc_in_sales_performance;
2209 END IF;
2210
2211 IF l_Line_Adj_rec.split_action_code = FND_API.G_MISS_CHAR THEN
2212 l_Line_Adj_rec.split_action_code :=
2213 p_old_Line_Adj_rec.split_action_code;
2214 END IF;
2215
2216 IF l_Line_Adj_rec.charge_type_code = FND_API.G_MISS_CHAR THEN
2217 l_Line_Adj_rec.charge_type_code :=
2218 p_old_Line_Adj_rec.charge_type_code;
2219 END IF;
2220
2221 IF l_Line_Adj_rec.charge_subtype_code = FND_API.G_MISS_CHAR THEN
2222 l_Line_Adj_rec.charge_subtype_code :=
2223 p_old_Line_Adj_rec.charge_subtype_code;
2224 END IF;
2225
2226 IF l_Line_Adj_rec.list_line_no = FND_API.G_MISS_CHAR THEN
2227 l_Line_Adj_rec.list_line_no :=
2228 p_old_Line_Adj_rec.list_line_no;
2229 END IF;
2230
2231 IF l_Line_Adj_rec.source_system_code = FND_API.G_MISS_CHAR THEN
2232 l_Line_Adj_rec.source_system_code :=
2233 p_old_Line_Adj_rec.source_system_code;
2234 END IF;
2235
2236 IF l_Line_Adj_rec.benefit_qty = FND_API.G_MISS_NUM THEN
2237 l_Line_Adj_rec.benefit_qty :=
2238 p_old_Line_Adj_rec.benefit_qty;
2239 END IF;
2240
2241 IF l_Line_Adj_rec.benefit_uom_code = FND_API.G_MISS_CHAR THEN
2242 l_Line_Adj_rec.benefit_uom_code :=
2243 p_old_Line_Adj_rec.benefit_uom_code;
2244 END IF;
2245
2246 IF l_Line_Adj_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
2247 l_Line_Adj_rec.print_on_invoice_flag :=
2248 p_old_Line_Adj_rec.print_on_invoice_flag;
2249 END IF;
2250
2251 IF l_Line_Adj_rec.expiration_date = FND_API.G_MISS_DATE THEN
2252 l_Line_Adj_rec.expiration_date :=
2253 p_old_Line_Adj_rec.expiration_date;
2254 END IF;
2255
2256 IF l_Line_Adj_rec.rebate_transaction_type_code = FND_API.G_MISS_CHAR THEN
2257 l_Line_Adj_rec.rebate_transaction_type_code :=
2258 p_old_Line_Adj_rec.rebate_transaction_type_code;
2259 END IF;
2260
2261 IF l_Line_Adj_rec.rebate_transaction_reference = FND_API.G_MISS_CHAR THEN
2262 l_Line_Adj_rec.rebate_transaction_reference :=
2263 p_old_Line_Adj_rec.rebate_transaction_reference;
2264 END IF;
2265
2266 IF l_Line_Adj_rec.rebate_payment_system_code = FND_API.G_MISS_CHAR THEN
2267 l_Line_Adj_rec.rebate_payment_system_code :=
2268 p_old_Line_Adj_rec.rebate_payment_system_code;
2269 END IF;
2270
2271 IF l_Line_Adj_rec.redeemed_date = FND_API.G_MISS_DATE THEN
2272 l_Line_Adj_rec.redeemed_date :=
2273 p_old_Line_Adj_rec.redeemed_date;
2274 END IF;
2275
2276 IF l_Line_Adj_rec.redeemed_flag = FND_API.G_MISS_CHAR THEN
2277 l_Line_Adj_rec.redeemed_flag :=
2278 p_old_Line_Adj_rec.redeemed_flag;
2279 END IF;
2280
2281 IF l_Line_Adj_rec.accrual_flag = FND_API.G_MISS_CHAR THEN
2282 l_Line_Adj_rec.accrual_flag :=
2283 p_old_Line_Adj_rec.accrual_flag;
2284 END IF;
2285
2286 IF l_Line_Adj_rec.range_break_quantity = FND_API.G_MISS_NUM THEN
2287 l_Line_Adj_rec.range_break_quantity := p_old_Line_Adj_rec.range_break_quantity;
2288 END IF;
2289
2290 IF l_Line_Adj_rec.accrual_conversion_rate = FND_API.G_MISS_NUM THEN
2291 l_Line_Adj_rec.accrual_conversion_rate := p_old_Line_Adj_rec.accrual_conversion_rate;
2292 END IF;
2293
2294 IF l_Line_Adj_rec.pricing_group_sequence = FND_API.G_MISS_NUM THEN
2295 l_Line_Adj_rec.pricing_group_sequence := p_old_Line_Adj_rec.pricing_group_sequence;
2296 END IF;
2297
2298 IF l_Line_Adj_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
2299 l_Line_Adj_rec.modifier_level_code := p_old_Line_Adj_rec.modifier_level_code;
2300 END IF;
2301
2302 IF l_Line_Adj_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
2303 l_Line_Adj_rec.price_break_type_code := p_old_Line_Adj_rec.price_break_type_code;
2304 END IF;
2305
2306 IF l_Line_Adj_rec.substitution_attribute = FND_API.G_MISS_CHAR THEN
2307 l_Line_Adj_rec.substitution_attribute := p_old_Line_Adj_rec.substitution_attribute;
2308 END IF;
2309
2310 IF l_Line_Adj_rec.proration_type_code = FND_API.G_MISS_CHAR THEN
2311 l_Line_Adj_rec.proration_type_code := p_old_Line_Adj_rec.proration_type_code;
2312 END IF;
2313
2314 IF l_Line_Adj_rec.credit_or_charge_flag = FND_API.G_MISS_CHAR THEN
2315 l_Line_Adj_rec.credit_or_charge_flag := p_old_Line_Adj_rec.credit_or_charge_flag;
2316 END IF;
2317
2318 IF l_Line_Adj_rec.include_on_returns_flag = FND_API.G_MISS_CHAR THEN
2319 l_Line_Adj_rec.include_on_returns_flag := p_old_Line_Adj_rec.include_on_returns_flag;
2320 END IF;
2321
2322 IF l_Line_Adj_rec.ac_context = FND_API.G_MISS_CHAR THEN
2323 l_Line_Adj_rec.ac_context := p_old_Line_Adj_rec.ac_context;
2324 END IF;
2325
2326 IF l_Line_Adj_rec.ac_attribute1 = FND_API.G_MISS_CHAR THEN
2327 l_Line_Adj_rec.ac_attribute1 := p_old_Line_Adj_rec.ac_attribute1;
2328 END IF;
2329
2330 IF l_Line_Adj_rec.ac_attribute2 = FND_API.G_MISS_CHAR THEN
2331 l_Line_Adj_rec.ac_attribute2 := p_old_Line_Adj_rec.ac_attribute2;
2332 END IF;
2333
2334 IF l_Line_Adj_rec.ac_attribute3 = FND_API.G_MISS_CHAR THEN
2335 l_Line_Adj_rec.ac_attribute3 := p_old_Line_Adj_rec.ac_attribute3;
2336 END IF;
2337
2338 IF l_Line_Adj_rec.ac_attribute4 = FND_API.G_MISS_CHAR THEN
2339 l_Line_Adj_rec.ac_attribute4 := p_old_Line_Adj_rec.ac_attribute4;
2340 END IF;
2341
2342 IF l_Line_Adj_rec.ac_attribute5 = FND_API.G_MISS_CHAR THEN
2343 l_Line_Adj_rec.ac_attribute5 := p_old_Line_Adj_rec.ac_attribute5;
2344 END IF;
2345
2346 IF l_Line_Adj_rec.ac_attribute6 = FND_API.G_MISS_CHAR THEN
2347 l_Line_Adj_rec.ac_attribute6 := p_old_Line_Adj_rec.ac_attribute6;
2348 END IF;
2349
2350 IF l_Line_Adj_rec.ac_attribute7 = FND_API.G_MISS_CHAR THEN
2351 l_Line_Adj_rec.ac_attribute7 := p_old_Line_Adj_rec.ac_attribute7;
2352 END IF;
2353
2354 IF l_Line_Adj_rec.ac_attribute8 = FND_API.G_MISS_CHAR THEN
2355 l_Line_Adj_rec.ac_attribute8 := p_old_Line_Adj_rec.ac_attribute8;
2356 END IF;
2357
2358 IF l_Line_Adj_rec.ac_attribute9 = FND_API.G_MISS_CHAR THEN
2359 l_Line_Adj_rec.ac_attribute9 := p_old_Line_Adj_rec.ac_attribute9;
2360 END IF;
2361
2362 IF l_Line_Adj_rec.ac_attribute10 = FND_API.G_MISS_CHAR THEN
2363 l_Line_Adj_rec.ac_attribute10 := p_old_Line_Adj_rec.ac_attribute10;
2364 END IF;
2365
2366 IF l_Line_Adj_rec.ac_attribute11 = FND_API.G_MISS_CHAR THEN
2367 l_Line_Adj_rec.ac_attribute11 := p_old_Line_Adj_rec.ac_attribute11;
2368 END IF;
2369
2370 IF l_Line_Adj_rec.ac_attribute12 = FND_API.G_MISS_CHAR THEN
2371 l_Line_Adj_rec.ac_attribute12 := p_old_Line_Adj_rec.ac_attribute12;
2372 END IF;
2373
2374 IF l_Line_Adj_rec.ac_attribute13 = FND_API.G_MISS_CHAR THEN
2375 l_Line_Adj_rec.ac_attribute13 := p_old_Line_Adj_rec.ac_attribute13;
2376 END IF;
2377
2378 IF l_Line_Adj_rec.ac_attribute14 = FND_API.G_MISS_CHAR THEN
2379 l_Line_Adj_rec.ac_attribute14 := p_old_Line_Adj_rec.ac_attribute14;
2380 END IF;
2381
2382 IF l_Line_Adj_rec.ac_attribute15 = FND_API.G_MISS_CHAR THEN
2383 l_Line_Adj_rec.ac_attribute15 := p_old_Line_Adj_rec.ac_attribute15;
2384 END IF;
2385
2386 --uom begin
2387 IF l_Line_Adj_rec.operand_per_pqty = FND_API.G_MISS_NUM THEN
2388 --bug 3063549
2389 --l_Line_Adj_rec.operand_per_pqty := p_old_Line_Adj_rec.operand_per_pqty;
2390 l_Line_Adj_rec.operand_per_pqty := NULL;
2391 END IF;
2392
2393 IF l_Line_Adj_rec.adjusted_amount_per_pqty = FND_API.G_MISS_NUM THEN
2394 l_Line_Adj_rec.adjusted_amount_per_pqty := p_old_Line_Adj_rec.adjusted_amount_per_pqty;
2395 END IF;
2396 --uom end
2397
2398 IF l_Line_Adj_rec.invoiced_amount = FND_API.G_MISS_NUM THEN
2399 l_Line_Adj_rec.invoiced_amount := p_old_Line_Adj_rec.invoiced_amount;
2400 END IF;
2401
2402 -- eBTax Changes
2403 IF p_x_line_adj_rec.tax_rate_id = FND_API.G_MISS_NUM THEN
2404 p_x_line_adj_rec.tax_rate_id := p_old_line_adj_rec.tax_rate_id;
2405 END IF;
2406 -- end eBTax changes
2407
2408
2409 -- RETURN l_Line_Adj_rec;
2410 p_x_Line_Adj_rec := l_Line_Adj_rec;
2411
2412 END Complete_Record;
2413
2414 -- Procedure Convert_Miss_To_Null
2415
2416 PROCEDURE Convert_Miss_To_Null
2417 ( p_x_Line_Adj_rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
2418 )
2419 IS
2420 l_Line_Adj_rec OE_Order_PUB.Line_Adj_Rec_Type := p_x_Line_Adj_rec;
2421 --
2422 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2423 --
2424 BEGIN
2425
2426 IF l_Line_Adj_rec.adjusted_amount = FND_API.G_MISS_NUM THEN
2427 l_Line_Adj_rec.adjusted_amount := NULL;
2428 END IF;
2429
2430 IF l_Line_Adj_rec.pricing_phase_id = FND_API.G_MISS_NUM THEN
2431 l_Line_Adj_rec.pricing_phase_id := NULL;
2432 END IF;
2433
2434 IF l_Line_Adj_rec.price_adjustment_id = FND_API.G_MISS_NUM THEN
2435 l_Line_Adj_rec.price_adjustment_id := NULL;
2436 END IF;
2437
2438 IF l_Line_Adj_rec.creation_date = FND_API.G_MISS_DATE THEN
2439 l_Line_Adj_rec.creation_date := NULL;
2440 END IF;
2441
2442 IF l_Line_Adj_rec.created_by = FND_API.G_MISS_NUM THEN
2443 l_Line_Adj_rec.created_by := NULL;
2444 END IF;
2445
2446 IF l_Line_Adj_rec.last_update_date = FND_API.G_MISS_DATE THEN
2447 l_Line_Adj_rec.last_update_date := NULL;
2448 END IF;
2449
2450 IF l_Line_Adj_rec.last_updated_by = FND_API.G_MISS_NUM THEN
2451 l_Line_Adj_rec.last_updated_by := NULL;
2452 END IF;
2453
2454 IF l_Line_Adj_rec.last_update_login = FND_API.G_MISS_NUM THEN
2455 l_Line_Adj_rec.last_update_login := NULL;
2456 END IF;
2457
2458 IF l_Line_Adj_rec.program_application_id = FND_API.G_MISS_NUM THEN
2459 l_Line_Adj_rec.program_application_id := NULL;
2460 END IF;
2461
2462 IF l_Line_Adj_rec.program_id = FND_API.G_MISS_NUM THEN
2463 l_Line_Adj_rec.program_id := NULL;
2464 END IF;
2465
2466 IF l_Line_Adj_rec.program_update_date = FND_API.G_MISS_DATE THEN
2467 l_Line_Adj_rec.program_update_date := NULL;
2468 END IF;
2469
2470 IF l_Line_Adj_rec.request_id = FND_API.G_MISS_NUM THEN
2471 l_Line_Adj_rec.request_id := NULL;
2472 END IF;
2473
2474 IF l_Line_Adj_rec.header_id = FND_API.G_MISS_NUM THEN
2475 l_Line_Adj_rec.header_id := NULL;
2476 END IF;
2477
2478 IF l_Line_Adj_rec.discount_id = FND_API.G_MISS_NUM THEN
2479 l_Line_Adj_rec.discount_id := NULL;
2480 END IF;
2481
2482 IF l_Line_Adj_rec.discount_line_id = FND_API.G_MISS_NUM THEN
2483 l_Line_Adj_rec.discount_line_id := NULL;
2484 END IF;
2485
2486 IF l_Line_Adj_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
2487 l_Line_Adj_rec.automatic_flag := NULL;
2488 END IF;
2489
2490 IF l_Line_Adj_rec.percent = FND_API.G_MISS_NUM THEN
2491 l_Line_Adj_rec.percent := NULL;
2492 END IF;
2493
2494 IF l_Line_Adj_rec.line_id = FND_API.G_MISS_NUM THEN
2495 l_Line_Adj_rec.line_id := NULL;
2496 END IF;
2497
2498 IF l_Line_Adj_rec.context = FND_API.G_MISS_CHAR THEN
2499 l_Line_Adj_rec.context := NULL;
2500 END IF;
2501
2502 IF l_Line_Adj_rec.attribute1 = FND_API.G_MISS_CHAR THEN
2503 l_Line_Adj_rec.attribute1 := NULL;
2504 END IF;
2505
2506 IF l_Line_Adj_rec.attribute2 = FND_API.G_MISS_CHAR THEN
2507 l_Line_Adj_rec.attribute2 := NULL;
2508 END IF;
2509
2510 IF l_Line_Adj_rec.attribute3 = FND_API.G_MISS_CHAR THEN
2511 l_Line_Adj_rec.attribute3 := NULL;
2512 END IF;
2513
2514 IF l_Line_Adj_rec.attribute4 = FND_API.G_MISS_CHAR THEN
2515 l_Line_Adj_rec.attribute4 := NULL;
2516 END IF;
2517
2518 IF l_Line_Adj_rec.attribute5 = FND_API.G_MISS_CHAR THEN
2519 l_Line_Adj_rec.attribute5 := NULL;
2520 END IF;
2521
2522 IF l_Line_Adj_rec.attribute6 = FND_API.G_MISS_CHAR THEN
2523 l_Line_Adj_rec.attribute6 := NULL;
2524 END IF;
2525
2526 IF l_Line_Adj_rec.attribute7 = FND_API.G_MISS_CHAR THEN
2527 l_Line_Adj_rec.attribute7 := NULL;
2528 END IF;
2529
2530 IF l_Line_Adj_rec.attribute8 = FND_API.G_MISS_CHAR THEN
2531 l_Line_Adj_rec.attribute8 := NULL;
2532 END IF;
2533
2534 IF l_Line_Adj_rec.attribute9 = FND_API.G_MISS_CHAR THEN
2535 l_Line_Adj_rec.attribute9 := NULL;
2536 END IF;
2537
2538 IF l_Line_Adj_rec.attribute10 = FND_API.G_MISS_CHAR THEN
2539 l_Line_Adj_rec.attribute10 := NULL;
2540 END IF;
2541
2542 IF l_Line_Adj_rec.attribute11 = FND_API.G_MISS_CHAR THEN
2543 l_Line_Adj_rec.attribute11 := NULL;
2544 END IF;
2545
2546 IF l_Line_Adj_rec.attribute12 = FND_API.G_MISS_CHAR THEN
2547 l_Line_Adj_rec.attribute12 := NULL;
2548 END IF;
2549
2550 IF l_Line_Adj_rec.attribute13 = FND_API.G_MISS_CHAR THEN
2551 l_Line_Adj_rec.attribute13 := NULL;
2552 END IF;
2553
2554 IF l_Line_Adj_rec.attribute14 = FND_API.G_MISS_CHAR THEN
2555 l_Line_Adj_rec.attribute14 := NULL;
2556 END IF;
2557
2558 IF l_Line_Adj_rec.attribute15 = FND_API.G_MISS_CHAR THEN
2559 l_Line_Adj_rec.attribute15 := NULL;
2560 END IF;
2561
2562 IF l_Line_Adj_rec.list_header_id = FND_API.G_MISS_NUM THEN
2563 l_Line_Adj_rec.list_header_id := NULL;
2564 END IF;
2565
2566 IF l_Line_Adj_rec.list_line_id = FND_API.G_MISS_NUM THEN
2567 l_Line_Adj_rec.list_line_id := NULL;
2568 END IF;
2569
2570 IF l_Line_Adj_rec.modified_from = FND_API.G_MISS_CHAR THEN
2571 l_Line_Adj_rec.modified_from := NULL;
2572 END IF;
2573 IF l_Line_Adj_rec.modified_to = FND_API.G_MISS_CHAR THEN
2574 l_Line_Adj_rec.modified_to := NULL;
2575 END IF;
2576
2577 IF l_Line_Adj_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
2578 l_Line_Adj_rec.list_line_type_code := NULL;
2579 END IF;
2580
2581 IF l_Line_Adj_rec.updated_flag = FND_API.G_MISS_CHAR THEN
2582 l_Line_Adj_rec.updated_flag := NULL;
2583 END IF;
2584
2585 IF l_Line_Adj_rec.update_allowed = FND_API.G_MISS_CHAR THEN
2586 l_Line_Adj_rec.update_allowed := NULL;
2587 END IF;
2588
2589 IF l_Line_Adj_rec.applied_flag = FND_API.G_MISS_CHAR THEN
2590 l_Line_Adj_rec.applied_flag := NULL;
2591 END IF;
2592
2593 IF l_Line_Adj_rec.modifier_mechanism_type_code = FND_API.G_MISS_CHAR THEN
2594 l_Line_Adj_rec.modifier_mechanism_type_code := NULL;
2595 END IF;
2596
2597 IF l_Line_Adj_rec.change_reason_code = FND_API.G_MISS_CHAR THEN
2598 l_Line_Adj_rec.change_reason_code := NULL;
2599 END IF;
2600
2601 IF l_Line_Adj_rec.change_reason_text = FND_API.G_MISS_CHAR THEN
2602 l_Line_Adj_rec.change_reason_text := NULL ;
2603 END IF;
2604
2605 IF l_Line_Adj_rec.arithmetic_operator = FND_API.G_MISS_CHAR THEN
2606 l_Line_Adj_rec.arithmetic_operator := NULL ;
2607 END IF;
2608
2609 IF l_Line_Adj_rec.operand = FND_API.G_MISS_NUM THEN
2610 l_Line_Adj_rec.operand := NULL ;
2611 END IF;
2612
2613 IF l_Line_Adj_rec.cost_id = FND_API.G_MISS_NUM THEN
2614 l_Line_Adj_rec.cost_id := NULL ;
2615 END IF;
2616
2617 IF l_Line_Adj_rec.tax_code = FND_API.G_MISS_CHAR THEN
2618 l_Line_Adj_rec.tax_code := NULL ;
2619 END IF;
2620
2621 IF l_Line_Adj_rec.tax_exempt_flag = FND_API.G_MISS_CHAR THEN
2622 l_Line_Adj_rec.tax_exempt_flag := NULL ;
2623 END IF;
2624
2625 IF l_Line_Adj_rec.tax_exempt_number = FND_API.G_MISS_CHAR THEN
2626 l_Line_Adj_rec.tax_exempt_number := NULL ;
2627 END IF;
2628
2629 IF l_Line_Adj_rec.tax_exempt_reason_code = FND_API.G_MISS_CHAR THEN
2630 l_Line_Adj_rec.tax_exempt_reason_code := NULL ;
2631 END IF;
2632
2633 IF l_Line_Adj_rec.parent_adjustment_id = FND_API.G_MISS_NUM THEN
2634 l_Line_Adj_rec.parent_adjustment_id := NULL ;
2635 END IF;
2636
2637 IF l_Line_Adj_rec.invoiced_flag = FND_API.G_MISS_CHAR THEN
2638 l_Line_Adj_rec.invoiced_flag := NULL ;
2639 END IF;
2640
2641 IF l_Line_Adj_rec.estimated_flag = FND_API.G_MISS_CHAR THEN
2642 l_Line_Adj_rec.estimated_flag := NULL ;
2643 END IF;
2644
2645 IF l_Line_Adj_rec.inc_in_sales_performance = FND_API.G_MISS_CHAR THEN
2646 l_Line_Adj_rec.inc_in_sales_performance := NULL ;
2647 END IF;
2648
2649 IF l_Line_Adj_rec.split_action_code = FND_API.G_MISS_CHAR THEN
2650 l_Line_Adj_rec.split_action_code := NULL ;
2651 END IF;
2652
2653 IF l_Line_Adj_rec.charge_type_code = FND_API.G_MISS_CHAR THEN
2654 l_Line_Adj_rec.charge_type_code := NULL ;
2655 END IF;
2656
2657 IF l_Line_Adj_rec.charge_subtype_code = FND_API.G_MISS_CHAR THEN
2658 l_Line_Adj_rec.charge_subtype_code := NULL ;
2659 END IF;
2660
2661 IF l_Line_Adj_rec.list_line_no = FND_API.G_MISS_CHAR THEN
2662 l_Line_Adj_rec.list_line_no := NULL ;
2663 END IF;
2664
2665 IF l_Line_Adj_rec.source_system_code = FND_API.G_MISS_CHAR THEN
2666 l_Line_Adj_rec.source_system_code := NULL ;
2667 END IF;
2668
2669 IF l_Line_Adj_rec.benefit_qty = FND_API.G_MISS_NUM THEN
2670 l_Line_Adj_rec.benefit_qty := NULL ;
2671 END IF;
2672
2673 IF l_Line_Adj_rec.benefit_uom_code = FND_API.G_MISS_CHAR THEN
2674 l_Line_Adj_rec.benefit_uom_code := NULL ;
2675 END IF;
2676
2677 IF l_Line_Adj_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
2678 l_Line_Adj_rec.print_on_invoice_flag := NULL ;
2679 END IF;
2680
2681 IF l_Line_Adj_rec.expiration_date = FND_API.G_MISS_DATE THEN
2682 l_Line_Adj_rec.expiration_date := NULL ;
2683 END IF;
2684
2685 IF l_Line_Adj_rec.rebate_transaction_type_code = FND_API.G_MISS_CHAR THEN
2686 l_Line_Adj_rec.rebate_transaction_type_code := NULL ;
2687 END IF;
2688
2689 IF l_Line_Adj_rec.rebate_transaction_reference = FND_API.G_MISS_CHAR THEN
2690 l_Line_Adj_rec.rebate_transaction_reference := NULL ;
2691 END IF;
2692
2693 IF l_Line_Adj_rec.rebate_payment_system_code = FND_API.G_MISS_CHAR THEN
2694 l_Line_Adj_rec.rebate_payment_system_code := NULL ;
2695 END IF;
2696
2697 IF l_Line_Adj_rec.redeemed_date = FND_API.G_MISS_DATE THEN
2698 l_Line_Adj_rec.redeemed_date := NULL ;
2699 END IF;
2700
2701 IF l_Line_Adj_rec.redeemed_flag = FND_API.G_MISS_CHAR THEN
2702 l_Line_Adj_rec.redeemed_flag := NULL ;
2703 END IF;
2704
2705 IF l_Line_Adj_rec.accrual_flag = FND_API.G_MISS_CHAR THEN
2706 l_Line_Adj_rec.accrual_flag := NULL ;
2707 END IF;
2708
2709 IF l_Line_Adj_rec.range_break_quantity = FND_API.G_MISS_NUM THEN
2710 l_Line_Adj_rec.range_break_quantity := NULL ;
2711 END IF;
2712
2713 IF l_Line_Adj_rec.accrual_conversion_rate = FND_API.G_MISS_NUM THEN
2714 l_Line_Adj_rec.accrual_conversion_rate := NULL ;
2715 END IF;
2716
2717 IF l_Line_Adj_rec.pricing_group_sequence = FND_API.G_MISS_NUM THEN
2718 l_Line_Adj_rec.pricing_group_sequence := NULL ;
2719 END IF;
2720
2721 IF l_Line_Adj_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
2722 l_Line_Adj_rec.modifier_level_code := NULL ;
2723 END IF;
2724
2725 IF l_Line_Adj_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
2726 l_Line_Adj_rec.price_break_type_code := NULL ;
2727 END IF;
2728
2729 IF l_Line_Adj_rec.substitution_attribute = FND_API.G_MISS_CHAR THEN
2730 l_Line_Adj_rec.substitution_attribute := NULL ;
2731 END IF;
2732
2733 IF l_Line_Adj_rec.proration_type_code = FND_API.G_MISS_CHAR THEN
2734 l_Line_Adj_rec.proration_type_code := NULL ;
2735 END IF;
2736
2737 IF l_Line_Adj_rec.credit_or_charge_flag = FND_API.G_MISS_CHAR THEN
2738 l_Line_Adj_rec.credit_or_charge_flag := NULL ;
2739 END IF;
2740
2741 IF l_Line_Adj_rec.include_on_returns_flag = FND_API.G_MISS_CHAR THEN
2742 l_Line_Adj_rec.include_on_returns_flag := NULL ;
2743 END IF;
2744
2745 IF l_Line_Adj_rec.ac_context = FND_API.G_MISS_CHAR THEN
2746 l_Line_Adj_rec.ac_context := NULL;
2747 END IF;
2748
2749 IF l_Line_Adj_rec.ac_attribute1 = FND_API.G_MISS_CHAR THEN
2750 l_Line_Adj_rec.ac_attribute1 := NULL;
2751 END IF;
2752
2753 IF l_Line_Adj_rec.ac_attribute2 = FND_API.G_MISS_CHAR THEN
2754 l_Line_Adj_rec.ac_attribute2 := NULL;
2755 END IF;
2756
2757 IF l_Line_Adj_rec.ac_attribute3 = FND_API.G_MISS_CHAR THEN
2758 l_Line_Adj_rec.ac_attribute3 := NULL;
2759 END IF;
2760
2761 IF l_Line_Adj_rec.ac_attribute4 = FND_API.G_MISS_CHAR THEN
2762 l_Line_Adj_rec.ac_attribute4 := NULL;
2763 END IF;
2764
2765 IF l_Line_Adj_rec.ac_attribute5 = FND_API.G_MISS_CHAR THEN
2766 l_Line_Adj_rec.ac_attribute5 := NULL;
2767 END IF;
2768
2769 IF l_Line_Adj_rec.ac_attribute6 = FND_API.G_MISS_CHAR THEN
2770 l_Line_Adj_rec.ac_attribute6 := NULL;
2771 END IF;
2772
2773 IF l_Line_Adj_rec.ac_attribute7 = FND_API.G_MISS_CHAR THEN
2774 l_Line_Adj_rec.ac_attribute7 := NULL;
2775 END IF;
2776
2777 IF l_Line_Adj_rec.ac_attribute8 = FND_API.G_MISS_CHAR THEN
2778 l_Line_Adj_rec.ac_attribute8 := NULL;
2779 END IF;
2780
2781 IF l_Line_Adj_rec.ac_attribute9 = FND_API.G_MISS_CHAR THEN
2782 l_Line_Adj_rec.ac_attribute9 := NULL;
2783 END IF;
2784
2785 IF l_Line_Adj_rec.ac_attribute10 = FND_API.G_MISS_CHAR THEN
2786 l_Line_Adj_rec.ac_attribute10 := NULL;
2787 END IF;
2788
2789 IF l_Line_Adj_rec.ac_attribute11 = FND_API.G_MISS_CHAR THEN
2790 l_Line_Adj_rec.ac_attribute11 := NULL;
2791 END IF;
2792
2793 IF l_Line_Adj_rec.ac_attribute12 = FND_API.G_MISS_CHAR THEN
2794 l_Line_Adj_rec.ac_attribute12 := NULL;
2795 END IF;
2796
2797 IF l_Line_Adj_rec.ac_attribute13 = FND_API.G_MISS_CHAR THEN
2798 l_Line_Adj_rec.ac_attribute13 := NULL;
2799 END IF;
2800
2801 IF l_Line_Adj_rec.ac_attribute14 = FND_API.G_MISS_CHAR THEN
2802 l_Line_Adj_rec.ac_attribute14 := NULL;
2803 END IF;
2804
2805 IF l_Line_Adj_rec.ac_attribute15 = FND_API.G_MISS_CHAR THEN
2806 l_Line_Adj_rec.ac_attribute15 := NULL;
2807 END IF;
2808
2809 --uom begin
2810 IF l_Line_Adj_rec.operand_per_pqty = FND_API.G_MISS_NUM THEN
2811 l_Line_Adj_rec.operand_per_pqty := NULL;
2812 END IF;
2813
2814 IF l_Line_Adj_rec.adjusted_amount_per_pqty = FND_API.G_MISS_NUM THEN
2815 l_Line_Adj_rec.adjusted_amount_per_pqty := NULL;
2816 END IF;
2817
2818 --uom end
2819
2820 IF l_Line_Adj_rec.invoiced_amount = FND_API.G_MISS_NUM THEN
2821 l_Line_Adj_rec.invoiced_amount := NULL ;
2822 END IF;
2823
2824 -- eBTax Changes
2825 IF p_x_line_adj_rec.tax_rate_id = FND_API.G_MISS_NUM THEN
2826 p_x_line_adj_rec.tax_rate_id := NULL;
2827 END IF;
2828
2829
2830 -- end eBTax changes
2831
2832 IF l_debug_level > 0 THEN
2833 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.CONVERT_MISS_TO_NULL' , 1 ) ;
2834 END IF;
2835
2836 -- RETURN l_Line_Adj_rec;
2837 p_x_Line_Adj_rec := l_Line_Adj_rec;
2838
2839 END Convert_Miss_To_Null;
2840
2841 -- Procedure Update_Row
2842
2843 PROCEDURE Update_Row
2844 ( p_Line_Adj_rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
2845 )
2846 IS
2847 l_lock_control NUMBER;
2848 l_index NUMBER;
2849 l_return_status VARCHAR2(1);
2850 --
2851 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2852 --
2853 BEGIN
2854 IF l_debug_level > 0 THEN
2855 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2856 END IF;
2857
2858 -- increment lock_control by 1 whenever the record is updated
2859 SELECT lock_control
2860 INTO l_lock_control
2861 FROM OE_PRICE_ADJUSTMENTS
2862 WHERE price_adjustment_id = p_Line_Adj_rec.price_adjustment_id;
2863
2864 l_lock_control := l_lock_control + 1;
2865
2866 --calling notification framework to update global picture
2867 --check code release level first. Notification framework is at Pack H level
2868 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
2869 IF l_debug_level > 0 THEN
2870 oe_debug_pub.add( 'JFC: LINE_PRICE_ADJ_ID=' || P_LINE_ADJ_REC.PRICE_ADJUSTMENT_ID ) ;
2871 END IF;
2872 OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
2873 p_Line_adj_rec =>p_line_adj_rec,
2874 p_line_adj_id => p_line_adj_rec.price_adjustment_id,
2875 x_index => l_index,
2876 x_return_status => l_return_status);
2877 IF l_debug_level > 0 THEN
2878 oe_debug_pub.add( 'UPDATE_GLOBAL RETURN STATUS FROM OE_LINE_ADJ_UTIL.UPDATE_ROW IS: ' || L_RETURN_STATUS ) ;
2879 END IF;
2880 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2881 IF l_debug_level > 0 THEN
2882 oe_debug_pub.add( 'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
2883 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2884 END IF;
2885 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2886 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2887 IF l_debug_level > 0 THEN
2888 oe_debug_pub.add( 'UPDATE_GLOBAL_PICTURE ERROR IN OE_LINE_ADJ_UTIL.UPDATE_ROW' ) ;
2889 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2890 END IF;
2891 RAISE FND_API.G_EXC_ERROR;
2892 END IF;
2893 END IF; /* code_release_level*/
2894 -- notification framework end
2895
2896 UPDATE OE_PRICE_ADJUSTMENTS
2897 SET PRICE_ADJUSTMENT_ID = p_Line_Adj_rec.price_adjustment_id
2898 , CREATION_DATE = p_Line_Adj_rec.creation_date
2899 , CREATED_BY = p_Line_Adj_rec.created_by
2900 , LAST_UPDATE_DATE = p_Line_Adj_rec.last_update_date
2901 , LAST_UPDATED_BY = p_Line_Adj_rec.last_updated_by
2902 , LAST_UPDATE_LOGIN = p_Line_Adj_rec.last_update_login
2903 , PROGRAM_APPLICATION_ID = p_Line_Adj_rec.program_application_id
2904 , PROGRAM_ID = p_Line_Adj_rec.program_id
2905 , PROGRAM_UPDATE_DATE = p_Line_Adj_rec.program_update_date
2906 , REQUEST_ID = p_Line_Adj_rec.request_id
2907 , HEADER_ID = p_Line_Adj_rec.header_id
2908 , DISCOUNT_ID = p_Line_Adj_rec.discount_id
2909 , DISCOUNT_LINE_ID = p_Line_Adj_rec.discount_line_id
2910 , AUTOMATIC_FLAG = p_Line_Adj_rec.automatic_flag
2911 , PERCENT = p_Line_Adj_rec.percent
2912 , LINE_ID = p_Line_Adj_rec.line_id
2913 , CONTEXT = p_Line_Adj_rec.context
2914 , ATTRIBUTE1 = p_Line_Adj_rec.attribute1
2915 , ATTRIBUTE2 = p_Line_Adj_rec.attribute2
2916 , ATTRIBUTE3 = p_Line_Adj_rec.attribute3
2917 , ATTRIBUTE4 = p_Line_Adj_rec.attribute4
2918 , ATTRIBUTE5 = p_Line_Adj_rec.attribute5
2919 , ATTRIBUTE6 = p_Line_Adj_rec.attribute6
2920 , ATTRIBUTE7 = p_Line_Adj_rec.attribute7
2921 , ATTRIBUTE8 = p_Line_Adj_rec.attribute8
2922 , ATTRIBUTE9 = p_Line_Adj_rec.attribute9
2923 , ATTRIBUTE10 = p_Line_Adj_rec.attribute10
2924 , ATTRIBUTE11 = p_Line_Adj_rec.attribute11
2925 , ATTRIBUTE12 = p_Line_Adj_rec.attribute12
2926 , ATTRIBUTE13 = p_Line_Adj_rec.attribute13
2927 , ATTRIBUTE14 = p_Line_Adj_rec.attribute14
2928 , ATTRIBUTE15 = p_Line_Adj_rec.attribute15
2929 , ORIG_SYS_DISCOUNT_REF = p_Line_Adj_rec.orig_sys_discount_ref
2930 , LIST_HEADER_ID = p_Line_Adj_rec.list_header_id
2931 , LIST_LINE_ID = p_Line_Adj_rec.list_line_id
2932 , LIST_LINE_TYPE_CODE = p_Line_Adj_rec.list_line_type_code
2933 , MODIFIER_MECHANISM_TYPE_CODE = p_Line_Adj_rec.modifier_mechanism_type_code
2934 , MODIFIED_FROM = p_Line_Adj_rec.modified_from
2935 , MODIFIED_TO = p_Line_Adj_rec.modified_to
2936 , UPDATED_FLAG = p_Line_Adj_rec.updated_flag
2937 , UPDATE_ALLOWED = p_Line_Adj_rec.update_allowed
2938 , APPLIED_FLAG = p_Line_Adj_rec.applied_flag
2939 , CHANGE_REASON_CODE = p_Line_Adj_rec.change_reason_code
2940 , CHANGE_REASON_TEXT = p_Line_Adj_rec.change_reason_text
2941 , operand = p_Line_Adj_rec.operand
2942 , Arithmetic_operator = p_Line_Adj_rec.arithmetic_operator
2943 , COST_ID = p_Line_Adj_rec.cost_id
2944 , TAX_CODE = p_Line_Adj_rec.tax_code
2945 , TAX_EXEMPT_FLAG = p_Line_Adj_rec.tax_exempt_flag
2946 , TAX_EXEMPT_NUMBER = p_Line_Adj_rec.tax_exempt_number
2947 , TAX_EXEMPT_REASON_CODE = p_Line_Adj_rec.tax_exempt_reason_code
2948 , PARENT_ADJUSTMENT_ID = p_Line_Adj_rec.parent_adjustment_id
2949 , INVOICED_FLAG = p_Line_Adj_rec.invoiced_flag
2950 , ESTIMATED_FLAG = p_Line_Adj_rec.estimated_flag
2951 , INC_IN_SALES_PERFORMANCE = p_Line_Adj_rec.inc_in_sales_performance
2952 , SPLIT_ACTION_CODE = p_Line_Adj_rec.split_action_code
2953 , ADJUSTED_AMOUNT = p_Line_Adj_rec.adjusted_amount
2954 , PRICING_PHASE_ID = p_Line_Adj_rec.pricing_phase_id
2955 , CHARGE_TYPE_CODE = p_Line_Adj_rec.charge_type_code
2956 , CHARGE_SUBTYPE_CODE = p_Line_Adj_rec.charge_subtype_code
2957 , LIST_LINE_NO = p_Line_Adj_rec.list_line_no
2958 , SOURCE_SYSTEM_CODE = p_Line_Adj_rec.source_system_code
2959 , BENEFIT_QTY = p_Line_Adj_rec.benefit_qty
2960 , BENEFIT_UOM_CODE = p_Line_Adj_rec.benefit_uom_code
2961 , PRINT_ON_INVOICE_FLAG = p_Line_Adj_rec.print_on_invoice_flag
2962 , EXPIRATION_DATE = p_Line_Adj_rec.expiration_date
2963 , REBATE_TRANSACTION_TYPE_CODE = p_Line_Adj_rec.rebate_transaction_type_code
2964 , REBATE_TRANSACTION_REFERENCE = p_Line_Adj_rec.rebate_transaction_reference
2965 , REBATE_PAYMENT_SYSTEM_CODE = p_Line_Adj_rec.rebate_payment_system_code
2966 , REDEEMED_DATE = p_Line_Adj_rec.redeemed_date
2967 , REDEEMED_FLAG = p_Line_Adj_rec.redeemed_flag
2968 , ACCRUAL_FLAG = p_Line_Adj_rec.accrual_flag
2969 , range_break_quantity = p_Line_Adj_rec.range_break_quantity
2970 , accrual_conversion_rate = p_Line_Adj_rec.accrual_conversion_rate
2971 , pricing_group_sequence = p_Line_Adj_rec.pricing_group_sequence
2972 , modifier_level_code = p_Line_Adj_rec.modifier_level_code
2973 , price_break_type_code = p_Line_Adj_rec.price_break_type_code
2974 , substitution_attribute = p_Line_Adj_rec.substitution_attribute
2975 , proration_type_code = p_Line_Adj_rec.proration_type_code
2976 , CREDIT_OR_CHARGE_FLAG = p_Line_Adj_rec.credit_or_charge_flag
2977 , INCLUDE_ON_RETURNS_FLAG = p_Line_Adj_rec.include_on_returns_flag
2978 , AC_CONTEXT = p_Line_Adj_rec.ac_context
2979 , AC_ATTRIBUTE1 = p_Line_Adj_rec.ac_attribute1
2980 , AC_ATTRIBUTE2 = p_Line_Adj_rec.ac_attribute2
2981 , AC_ATTRIBUTE3 = p_Line_Adj_rec.ac_attribute3
2982 , AC_ATTRIBUTE4 = p_Line_Adj_rec.ac_attribute4
2983 , AC_ATTRIBUTE5 = p_Line_Adj_rec.ac_attribute5
2984 , AC_ATTRIBUTE6 = p_Line_Adj_rec.ac_attribute6
2985 , AC_ATTRIBUTE7 = p_Line_Adj_rec.ac_attribute7
2986 , AC_ATTRIBUTE8 = p_Line_Adj_rec.ac_attribute8
2987 , AC_ATTRIBUTE9 = p_Line_Adj_rec.ac_attribute9
2988 , AC_ATTRIBUTE10 = p_Line_Adj_rec.ac_attribute10
2989 , AC_ATTRIBUTE11 = p_Line_Adj_rec.ac_attribute11
2990 , AC_ATTRIBUTE12 = p_Line_Adj_rec.ac_attribute12
2991 , AC_ATTRIBUTE13 = p_Line_Adj_rec.ac_attribute13
2992 , AC_ATTRIBUTE14 = p_Line_Adj_rec.ac_attribute14
2993 , AC_ATTRIBUTE15 = p_Line_Adj_rec.ac_attribute15
2994 , LOCK_CONTROL = l_lock_control
2995 --uom begin
2996 , OPERAND_PER_PQTY = p_line_adj_rec.operand_per_pqty
2997 , ADJUSTED_AMOUNT_PER_PQTY = p_line_adj_rec.adjusted_amount_per_pqty
2998 --uom end
2999 , INVOICED_AMOUNT = p_Line_Adj_rec.invoiced_amount
3000 -- eBTax changes
3001 , TAX_RATE_ID = p_Line_Adj_rec.tax_rate_id
3002
3003 WHERE PRICE_ADJUSTMENT_ID = p_Line_Adj_rec.price_adjustment_id
3004 ;
3005
3006 p_Line_Adj_rec.lock_control := l_lock_control;
3007 IF l_debug_level > 0 THEN
3008 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.UPDATE_ROW.' , 1 ) ;
3009 END IF;
3010
3011 EXCEPTION
3012
3013 WHEN OTHERS THEN
3014
3015 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3016 THEN
3017 OE_MSG_PUB.Add_Exc_Msg
3018 ( G_PKG_NAME
3019 , 'Update_Row'
3020 );
3021 END IF;
3022 IF l_debug_level > 0 THEN
3023 oe_debug_pub.add( 'EXCEPTION IN UPDATE_ROW'||SQLERRM , 2 ) ;
3024 END IF;
3025 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3026
3027 END Update_Row;
3028
3029 --To prevent unique key violation on price_adjustment_table next time
3030 Procedure Reset_Sequence Is
3031 h number;
3032 i number;
3033 k number;
3034 j number;
3035 l number;
3036 begin
3037 select max(price_adjustment_id)
3038 into j
3039 from oe_price_adjustments;
3040
3041 Select oe_price_adjustments_s.nextval
3042 Into h
3043 From dual;
3044
3045 If j > h and j <> fnd_api.g_miss_num Then
3046 l:=j-h+10;
3047 for i in 1..l loop
3048 select oe_price_adjustments_s.nextval into k from dual;
3049 end loop;
3050 End If;
3051
3052 end;
3053
3054 -- Procedure Insert_Row
3055
3056 PROCEDURE Insert_Row
3057 ( p_Line_Adj_rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
3058 )
3059 IS
3060 l_lock_control NUMBER := 1;
3061 l_index NUMBER;
3062 l_return_status VARCHAR2(1);
3063 --
3064 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3065 --
3066 BEGIN
3067 IF l_debug_level > 0 THEN
3068 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.INSERT_ROW' , 1 ) ;
3069 oe_debug_pub.add(' list_line_id insert:'|| p_Line_Adj_rec.list_line_id||
3070 ' ,operand insert:'||p_line_adj_rec.operand||
3071 ' ,operand pqty insert:'||p_line_adj_rec.operand_per_pqty||
3072 ' ,applied_flag insert:'||p_line_adj_rec.applied_flag||
3073 ' ,list_line_type_code:'||p_line_adj_rec.list_line_type_code||
3074 ' ,operator:'||p_line_adj_rec.arithmetic_operator);
3075 END IF;
3076
3077 INSERT INTO OE_PRICE_ADJUSTMENTS
3078 ( PRICE_ADJUSTMENT_ID
3079 , CREATION_DATE
3080 , CREATED_BY
3081 , LAST_UPDATE_DATE
3082 , LAST_UPDATED_BY
3083 , LAST_UPDATE_LOGIN
3084 , PROGRAM_APPLICATION_ID
3085 , PROGRAM_ID
3086 , PROGRAM_UPDATE_DATE
3087 , REQUEST_ID
3088 , HEADER_ID
3089 , DISCOUNT_ID
3090 , DISCOUNT_LINE_ID
3091 , AUTOMATIC_FLAG
3092 , PERCENT
3093 , LINE_ID
3094 , CONTEXT
3095 , ATTRIBUTE1
3096 , ATTRIBUTE2
3097 , ATTRIBUTE3
3098 , ATTRIBUTE4
3099 , ATTRIBUTE5
3100 , ATTRIBUTE6
3101 , ATTRIBUTE7
3102 , ATTRIBUTE8
3103 , ATTRIBUTE9
3104 , ATTRIBUTE10
3105 , ATTRIBUTE11
3106 , ATTRIBUTE12
3107 , ATTRIBUTE13
3108 , ATTRIBUTE14
3109 , ATTRIBUTE15
3110 , ORIG_SYS_DISCOUNT_REF
3111 , LIST_HEADER_ID
3112 , LIST_LINE_ID
3113 , LIST_LINE_TYPE_CODE
3114 , MODIFIER_MECHANISM_TYPE_CODE
3115 , MODIFIED_FROM
3116 , MODIFIED_TO
3117 , UPDATED_FLAG
3118 , UPDATE_ALLOWED
3119 , APPLIED_FLAG
3120 , CHANGE_REASON_CODE
3121 , CHANGE_REASON_TEXT
3122 , operand
3123 , Arithmetic_operator
3124 , COST_ID
3125 , TAX_CODE
3126 , TAX_EXEMPT_FLAG
3127 , TAX_EXEMPT_NUMBER
3128 , TAX_EXEMPT_REASON_CODE
3129 , PARENT_ADJUSTMENT_ID
3130 , INVOICED_FLAG
3131 , ESTIMATED_FLAG
3132 , INC_IN_SALES_PERFORMANCE
3133 , SPLIT_ACTION_CODE
3134 , ADJUSTED_AMOUNT
3135 , PRICING_PHASE_ID
3136 , CHARGE_TYPE_CODE
3137 , CHARGE_SUBTYPE_CODE
3138 , list_line_no
3139 , source_system_code
3140 , benefit_qty
3141 , benefit_uom_code
3142 , print_on_invoice_flag
3143 , expiration_date
3144 , rebate_transaction_type_code
3145 , rebate_transaction_reference
3146 , rebate_payment_system_code
3147 , redeemed_date
3148 , redeemed_flag
3149 , accrual_flag
3150 , range_break_quantity
3151 , accrual_conversion_rate
3152 , pricing_group_sequence
3153 , modifier_level_code
3154 , price_break_type_code
3155 , substitution_attribute
3156 , proration_type_code
3157 , CREDIT_OR_CHARGE_FLAG
3158 , INCLUDE_ON_RETURNS_FLAG
3159 , AC_CONTEXT
3160 , AC_ATTRIBUTE1
3161 , AC_ATTRIBUTE2
3162 , AC_ATTRIBUTE3
3163 , AC_ATTRIBUTE4
3164 , AC_ATTRIBUTE5
3165 , AC_ATTRIBUTE6
3166 , AC_ATTRIBUTE7
3167 , AC_ATTRIBUTE8
3168 , AC_ATTRIBUTE9
3169 , AC_ATTRIBUTE10
3170 , AC_ATTRIBUTE11
3171 , AC_ATTRIBUTE12
3172 , AC_ATTRIBUTE13
3173 , AC_ATTRIBUTE14
3174 , AC_ATTRIBUTE15
3175 --uom begin
3176 , OPERAND_PER_PQTY
3177 , ADJUSTED_AMOUNT_PER_PQTY
3178 --uom end
3179 --RETRO{
3180 , retrobill_request_id
3181 --RETRO}
3182 , INVOICED_AMOUNT
3183 , LOCK_CONTROL
3184 -- eBTax Changes
3185 , TAX_RATE_ID
3186 )
3187 VALUES
3188 ( p_Line_Adj_rec.price_adjustment_id
3189 , p_Line_Adj_rec.creation_date
3190 , p_Line_Adj_rec.created_by
3191 , p_Line_Adj_rec.last_update_date
3192 , p_Line_Adj_rec.last_updated_by
3193 , p_Line_Adj_rec.last_update_login
3194 , p_Line_Adj_rec.program_application_id
3195 , p_Line_Adj_rec.program_id
3196 , p_Line_Adj_rec.program_update_date
3197 , p_Line_Adj_rec.request_id
3198 , p_Line_Adj_rec.header_id
3199 , p_Line_Adj_rec.discount_id
3200 , p_Line_Adj_rec.discount_line_id
3201 , p_Line_Adj_rec.automatic_flag
3202 , p_Line_Adj_rec.percent
3203 , p_Line_Adj_rec.line_id
3204 , p_Line_Adj_rec.context
3205 , p_Line_Adj_rec.attribute1
3206 , p_Line_Adj_rec.attribute2
3207 , p_Line_Adj_rec.attribute3
3208 , p_Line_Adj_rec.attribute4
3209 , p_Line_Adj_rec.attribute5
3210 , p_Line_Adj_rec.attribute6
3211 , p_Line_Adj_rec.attribute7
3212 , p_Line_Adj_rec.attribute8
3213 , p_Line_Adj_rec.attribute9
3214 , p_Line_Adj_rec.attribute10
3215 , p_Line_Adj_rec.attribute11
3216 , p_Line_Adj_rec.attribute12
3217 , p_Line_Adj_rec.attribute13
3218 , p_Line_Adj_rec.attribute14
3219 , p_Line_Adj_rec.attribute15
3220 , p_Line_Adj_rec.orig_sys_discount_ref
3221 , p_Line_Adj_rec.LIST_HEADER_ID
3222 , p_Line_Adj_rec.LIST_LINE_ID
3223 , p_Line_Adj_rec.LIST_LINE_TYPE_CODE
3224 , p_Line_Adj_rec.MODIFIER_MECHANISM_TYPE_CODE
3225 , p_Line_Adj_rec.MODIFIED_FROM
3226 , p_Line_Adj_rec.MODIFIED_TO
3227 , p_Line_Adj_rec.UPDATED_FLAG
3228 , p_Line_Adj_rec.UPDATE_ALLOWED
3229 , p_Line_Adj_rec.APPLIED_FLAG
3230 , p_Line_Adj_rec.CHANGE_REASON_CODE
3231 , p_Line_Adj_rec.CHANGE_REASON_TEXT
3232 , p_Line_Adj_rec.operand
3233 , p_Line_Adj_rec.arithmetic_operator
3234 , p_line_Adj_rec.COST_ID
3235 , p_line_Adj_rec.TAX_CODE
3236 , p_line_Adj_rec.TAX_EXEMPT_FLAG
3237 , p_line_Adj_rec.TAX_EXEMPT_NUMBER
3238 , p_line_Adj_rec.TAX_EXEMPT_REASON_CODE
3239 , p_line_Adj_rec.PARENT_ADJUSTMENT_ID
3240 , p_line_Adj_rec.INVOICED_FLAG
3241 , p_line_Adj_rec.ESTIMATED_FLAG
3242 , p_line_Adj_rec.INC_IN_SALES_PERFORMANCE
3243 , p_line_Adj_rec.SPLIT_ACTION_CODE
3244 , p_line_Adj_rec.ADJUSTED_AMOUNT
3245 , p_line_Adj_rec.PRICING_PHASE_ID
3246 , p_line_Adj_rec.CHARGE_TYPE_CODE
3247 , p_line_Adj_rec.CHARGE_SUBTYPE_CODE
3248 , p_Line_Adj_rec.list_line_no
3249 , p_Line_Adj_rec.source_system_code
3250 , p_Line_Adj_rec.benefit_qty
3251 , p_Line_Adj_rec.benefit_uom_code
3252 , p_Line_Adj_rec.print_on_invoice_flag
3253 , p_Line_Adj_rec.expiration_date
3254 , p_Line_Adj_rec.rebate_transaction_type_code
3255 , p_Line_Adj_rec.rebate_transaction_reference
3256 , p_Line_Adj_rec.rebate_payment_system_code
3257 , p_Line_Adj_rec.redeemed_date
3258 , p_Line_Adj_rec.redeemed_flag
3259 , p_Line_Adj_rec.accrual_flag
3260 , p_Line_Adj_rec.range_break_quantity
3261 , p_Line_Adj_rec.accrual_conversion_rate
3262 , p_Line_Adj_rec.pricing_group_sequence
3263 , p_Line_Adj_rec.modifier_level_code
3264 , p_Line_Adj_rec.price_break_type_code
3265 , p_Line_Adj_rec.substitution_attribute
3266 , p_Line_Adj_rec.proration_type_code
3267 , p_Line_Adj_rec.credit_or_charge_flag
3268 , p_Line_Adj_rec.include_on_returns_flag
3269 , p_Line_Adj_rec.ac_context
3270 , p_Line_Adj_rec.ac_attribute1
3271 , p_Line_Adj_rec.ac_attribute2
3272 , p_Line_Adj_rec.ac_attribute3
3273 , p_Line_Adj_rec.ac_attribute4
3274 , p_Line_Adj_rec.ac_attribute5
3275 , p_Line_Adj_rec.ac_attribute6
3276 , p_Line_Adj_rec.ac_attribute7
3277 , p_Line_Adj_rec.ac_attribute8
3278 , p_Line_Adj_rec.ac_attribute9
3279 , p_Line_Adj_rec.ac_attribute10
3280 , p_Line_Adj_rec.ac_attribute11
3281 , p_Line_Adj_rec.ac_attribute12
3282 , p_Line_Adj_rec.ac_attribute13
3283 , p_Line_Adj_rec.ac_attribute14
3284 , p_Line_Adj_rec.ac_attribute15
3285 --uom begin
3286 , p_line_adj_rec.OPERAND_PER_PQTY
3287 , p_line_adj_rec.ADJUSTED_AMOUNT_PER_PQTY
3288 --uom end
3289 --RETRO{
3290 , p_line_adj_rec.retrobill_request_id
3291 --RETRO}
3292 , p_line_Adj_rec.INVOICED_AMOUNT
3293 , l_lock_control
3294 -- eBTax changes
3295 , p_line_adj_rec.tax_rate_id
3296 );
3297
3298 p_Line_Adj_rec.lock_control := l_lock_control;
3299
3300 --calling notification framework to update_global picture
3301 --check code release level first. Notification framework is at Pack H level
3302 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
3303 OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
3304 p_old_line_adj_rec => NULL,
3305 p_line_adj_rec =>p_line_adj_rec,
3306 p_line_adj_id => p_line_adj_rec.price_adjustment_id,
3307 x_index => l_index,
3308 x_return_status => l_return_status);
3309 IF l_debug_level > 0 THEN
3310 oe_debug_pub.add( 'UPDATE_GLOBAL RETURN STATUS FROM OE_LINE_ADJ_UTIL.INSERT_RO IS: ' || L_RETURN_STATUS ) ;
3311 oe_debug_pub.add( 'RETURNED INDEX IS: ' || L_INDEX , 1 ) ;
3312 END IF;
3313
3314 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3315 IF l_debug_level > 0 THEN
3316 oe_debug_pub.add( 'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
3317 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.INSERT_ROW' , 1 ) ;
3318 END IF;
3319 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3320 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3321 IF l_debug_level > 0 THEN
3322 oe_debug_pub.add( 'UPDATE_GLOBAL_PICTURE ERROR IN OE_LINE_ADJ_UTIL.INSERT_ROW' ) ;
3323 oe_debug_pub.add( 'EXITINGOE_LINE_ADJ_UTIL.INSERT_ROW' , 1 ) ;
3324 END IF;
3325 RAISE FND_API.G_EXC_ERROR;
3326 END IF;
3327 END IF; /*code_release_level*/
3328 -- notification framework end
3329
3330 IF l_debug_level > 0 THEN
3331 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.INSERT_ROW.' , 1 ) ;
3332 END IF;
3333
3334 EXCEPTION
3335
3336 WHEN DUP_VAL_ON_INDEX Then
3337 Reset_Sequence;
3338 IF l_debug_level > 0 THEN
3339 oe_debug_pub.add( G_PKG_NAME||':INSER_ROW:'||SQLERRM ) ;
3340 END IF;
3341 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3342 THEN
3343 OE_MSG_PUB.Add_Exc_Msg
3344 ( G_PKG_NAME
3345 , 'Insert_Row'
3346 );
3347 END IF;
3348
3349 --FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,'Insert_Row:'||SQLERRM);
3350
3351 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3352
3353 WHEN OTHERS THEN
3354 IF l_debug_level > 0 THEN
3355 oe_debug_pub.add( G_PKG_NAME||':INSER_ROW:'||SQLERRM ) ;
3356 END IF;
3357 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3358 THEN
3359 OE_MSG_PUB.Add_Exc_Msg
3360 ( G_PKG_NAME
3361 , 'Insert_Row'
3362 );
3363 END IF;
3364
3365 --FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,'Insert_Row:'||SQLERRM);
3366
3367 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3368
3369 END Insert_Row;
3370
3371 -- Procedure Delete_Row
3372
3373 PROCEDURE Delete_Row
3374 ( p_price_adjustment_id IN NUMBER :=
3375 FND_API.G_MISS_NUM
3376 , p_line_id IN NUMBER :=
3377 FND_API.G_MISS_NUM
3378 )
3379 IS
3380 l_return_status VARCHAR2(30);
3381 CURSOR price_adj IS
3382 SELECT price_adjustment_id
3383 FROM OE_PRICE_ADJUSTMENTS
3384 WHERE LINE_ID = p_line_id;
3385
3386 -- added for notification framework
3387 l_new_line_adj_rec OE_Order_PUB.Line_Adj_Rec_Type;
3388 l_index NUMBER;
3389
3390 --
3391 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3392 --
3393 BEGIN
3394 IF l_debug_level > 0 THEN
3395 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.DELETE_ROW' ) ;
3396 END IF;
3397 IF p_line_id <> FND_API.G_MISS_NUM
3398 THEN
3399 IF l_debug_level > 0 THEN
3400 oe_debug_pub.add( ' P_LINE_ID <> G_MISS_NUM' ) ;
3401 END IF;
3402 FOR l_adj IN price_adj LOOP
3403
3404 --added for notification framework
3405 --check code release level first. Notification framework is at Pack H level
3406 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
3407 IF l_debug_level > 0 THEN
3408 oe_debug_pub.add( 'JFC: IN DELETE ROW , PRICE_ADJUSTMENT_ID'||L_ADJ.PRICE_ADJUSTMENT_ID , 1 ) ;
3409 END IF;
3410 /* Set the operation on the record so that globals are updated as well */
3411 l_new_line_adj_rec.operation := OE_GLOBALS.G_OPR_DELETE;
3412 l_new_line_adj_rec.price_adjustment_id := l_adj.price_adjustment_id;
3413 OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
3414 p_line_adj_rec =>l_new_line_adj_rec,
3415 p_line_adj_id => l_adj.price_adjustment_id,
3416 x_index => l_index,
3417 x_return_status => l_return_status);
3418 IF l_debug_level > 0 THEN
3419 oe_debug_pub.add( 'UPDATE_GLOBAL RETURN STATUS FROM OE_LINE_ADJ_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
3420 END IF;
3421
3422 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3423 IF l_debug_level > 0 THEN
3424 oe_debug_pub.add( 'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
3425 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3426 END IF;
3427 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3428 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3429 IF l_debug_level > 0 THEN
3430 oe_debug_pub.add( 'UPDATE_GLOBAL_PICTURE ERROR IN OE_LINE_ADJ_UTIL.DELETE_ROW' ) ;
3431 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3432 END IF;
3433 RAISE FND_API.G_EXC_ERROR;
3434 END IF;
3435 END IF; /*code_release_level*/
3436 -- end notification framework
3437
3438 OE_Delayed_Requests_Pvt.Delete_Reqs_for_deleted_entity(
3439 p_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
3440 p_entity_id => l_adj.price_adjustment_id,
3441 x_return_status => l_return_status
3442 );
3443 OE_Line_Price_Aattr_Util.delete_row(
3444 p_price_adjustment_id=>l_adj.price_adjustment_id);
3445
3446 -- fixed bug 1658300
3447 /***
3448 OE_Line_Adj_Assocs_Util.delete_row(
3449 p_price_adjustment_id=>l_adj.price_adjustment_id);
3450 ***/
3451
3452 END LOOP;
3453 DELETE FROM OE_PRICE_ADJUSTMENTS
3454 WHERE LINE_ID = p_line_id;
3455 ELSE
3456 IF l_debug_level > 0 THEN
3457 oe_debug_pub.add( ' P_LINE_ID = G_MISS_NUM' ) ;
3458 END IF;
3459
3460 --added for notification framework
3461 --check code release level first. Notification framework is at Pack H level
3462 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
3463 IF l_debug_level > 0 THEN
3464 oe_debug_pub.add( 'JFC: IN DELETE ROW , LINE_ID IS G_MISS_NUM , PRICE_ADJUSTMENT_ID'||P_PRICE_ADJUSTMENT_ID , 1 ) ;
3465 END IF;
3466 /* Set the operation on the record so that globals are updated as well */
3467 l_new_line_adj_rec.operation := OE_GLOBALS.G_OPR_DELETE;
3468 l_new_line_adj_rec.price_adjustment_id := p_price_adjustment_id;
3469 OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
3470 p_line_adj_rec =>l_new_line_adj_rec,
3471 p_line_adj_id => p_price_adjustment_id,
3472 x_index => l_index,
3473 x_return_status => l_return_status);
3474 IF l_debug_level > 0 THEN
3475 oe_debug_pub.add( 'UPDATE_GLOBAL RETURN STATUS FROM OE_LINE_ADJ_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
3476 END IF;
3477 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3478 IF l_debug_level > 0 THEN
3479 oe_debug_pub.add( 'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
3480 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3481 END IF;
3482 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3483 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3484 IF l_debug_level > 0 THEN
3485 oe_debug_pub.add( 'UPDATE_GLOBAL_PICTURE ERROR IN OE_LINE_ADJ_UTIL.DELETE_ROW' ) ;
3486 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3487 END IF;
3488 RAISE FND_API.G_EXC_ERROR;
3489 END IF;
3490 END IF; /*code_release_level*/
3491 -- end notification framework
3492
3493 OE_Delayed_Requests_Pvt.Delete_Reqs_for_deleted_entity
3494 (p_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
3495 p_entity_id => p_price_adjustment_id,
3496 x_return_status => l_return_status
3497 );
3498
3499 OE_Line_Price_Aattr_Util.delete_row(
3500 p_price_adjustment_id=>p_price_adjustment_id);
3501
3502 -- fixed bug 1658300
3503 /***
3504 OE_Line_Adj_Assocs_Util.delete_row(
3505 p_price_adjustment_id=>p_price_adjustment_id);
3506 ***/
3507
3508 --bug3528335 moving the following DELETE statement before deletion of the parent and checking for PBH.
3509 --bug3405372 deleting the child lines of PBH modifiers as well
3510 DELETE FROM OE_PRICE_ADJUSTMENTS
3511 WHERE PRICE_ADJUSTMENT_ID IN (SELECT RLTD_PRICE_ADJ_ID
3512 FROM OE_PRICE_ADJ_ASSOCS ASSOCS,
3513 OE_PRICE_ADJUSTMENTS PARENT
3514 WHERE ASSOCS.PRICE_ADJUSTMENT_ID=PARENT.PRICE_ADJUSTMENT_ID
3515 AND PARENT.PRICE_ADJUSTMENT_ID=p_price_adjustment_id
3516 AND PARENT.LIST_LINE_TYPE_CODE='PBH');
3517 IF l_debug_level > 0 THEN
3518 oe_debug_pub.add('pviprana: Deleted '|| SQL%ROWCOUNT || ' Child Lines');
3519 END IF;
3520 --bug3528335 end
3521
3522
3523
3524 DELETE FROM OE_PRICE_ADJUSTMENTS
3525 WHERE PRICE_ADJUSTMENT_ID = p_price_adjustment_id;
3526
3527 END IF;
3528 IF l_debug_level > 0 THEN
3529 oe_debug_pub.add( 'LEAVING OE_LINE_ADJ_UTIL.DELETE_ROW' ) ;
3530 END IF;
3531 EXCEPTION
3532
3533 WHEN OTHERS THEN
3534 IF l_debug_level > 0 THEN
3535 oe_debug_pub.add( G_PKG_NAME||':DELETE_ROW:'||SQLERRM ) ;
3536 END IF;
3537 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3538 THEN
3539 OE_MSG_PUB.Add_Exc_Msg
3540 ( G_PKG_NAME
3541 , 'Delete_Row'
3542 );
3543 END IF;
3544
3545 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3546
3547 END Delete_Row;
3548
3549 -- Procedure Query_Row
3550
3551 PROCEDURE Query_Row
3552 ( p_price_adjustment_id IN NUMBER
3553 , x_Line_Adj_Rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
3554 )
3555 IS
3556 l_Line_Adj_Tbl OE_Order_PUB.Line_Adj_Tbl_Type;
3557 BEGIN
3558
3559 Query_Rows
3560 ( p_price_adjustment_id => p_price_adjustment_id
3561 , x_Line_Adj_Tbl => l_Line_Adj_Tbl
3562 );
3563 x_Line_Adj_Rec := l_Line_Adj_Tbl(1);
3564
3565 END Query_Row;
3566
3567 -- Procedure Query_Rows
3568
3569 PROCEDURE Query_Rows
3570 ( p_price_adjustment_id IN NUMBER :=
3571 FND_API.G_MISS_NUM
3572 , p_line_id IN NUMBER :=
3573 FND_API.G_MISS_NUM
3574 , p_Header_id IN NUMBER :=
3575 FND_API.G_MISS_NUM
3576 , p_Line_Level_Header_id IN NUMBER :=
3577 FND_API.G_MISS_NUM
3578 , x_Line_Adj_Tbl IN OUT NOCOPY OE_Order_PUB.Line_Adj_Tbl_Type
3579 )
3580 IS
3581 l_count NUMBER;
3582
3583 CURSOR l_Line_Adj_csr IS
3584 SELECT ATTRIBUTE1
3585 , ATTRIBUTE10
3586 , ATTRIBUTE11
3587 , ATTRIBUTE12
3588 , ATTRIBUTE13
3589 , ATTRIBUTE14
3590 , ATTRIBUTE15
3591 , ATTRIBUTE2
3592 , ATTRIBUTE3
3593 , ATTRIBUTE4
3594 , ATTRIBUTE5
3595 , ATTRIBUTE6
3596 , ATTRIBUTE7
3597 , ATTRIBUTE8
3598 , ATTRIBUTE9
3599 , AUTOMATIC_FLAG
3600 , CONTEXT
3601 , CREATED_BY
3602 , CREATION_DATE
3603 , DISCOUNT_ID
3604 , DISCOUNT_LINE_ID
3605 , HEADER_ID
3606 , LAST_UPDATED_BY
3607 , LAST_UPDATE_DATE
3608 , LAST_UPDATE_LOGIN
3609 , LINE_ID
3610 , PERCENT
3611 , PRICE_ADJUSTMENT_ID
3612 , PROGRAM_APPLICATION_ID
3613 , PROGRAM_ID
3614 , PROGRAM_UPDATE_DATE
3615 , REQUEST_ID
3616 , LIST_HEADER_ID
3617 , LIST_LINE_ID
3618 , LIST_LINE_TYPE_CODE
3619 , MODIFIER_MECHANISM_TYPE_CODE
3620 , MODIFIED_FROM
3621 , MODIFIED_TO
3622 , UPDATED_FLAG
3623 , UPDATE_ALLOWED
3624 , APPLIED_FLAG
3625 , CHANGE_REASON_CODE
3626 , CHANGE_REASON_TEXT
3627 , operand
3628 , Arithmetic_operator
3629 , COST_ID
3630 , TAX_CODE
3631 , TAX_EXEMPT_FLAG
3632 , TAX_EXEMPT_NUMBER
3633 , TAX_EXEMPT_REASON_CODE
3634 , PARENT_ADJUSTMENT_ID
3635 , INVOICED_FLAG
3636 , ESTIMATED_FLAG
3637 , INC_IN_SALES_PERFORMANCE
3638 , SPLIT_ACTION_CODE
3639 , ADJUSTED_AMOUNT
3640 , PRICING_PHASE_ID
3641 , CHARGE_TYPE_CODE
3642 , CHARGE_SUBTYPE_CODE
3643 , list_line_no
3644 , source_system_code
3645 , benefit_qty
3646 , benefit_uom_code
3647 , print_on_invoice_flag
3648 , expiration_date
3649 , rebate_transaction_type_code
3650 , rebate_transaction_reference
3651 , rebate_payment_system_code
3652 , redeemed_date
3653 , redeemed_flag
3654 , accrual_flag
3655 , range_break_quantity
3656 , accrual_conversion_rate
3657 , pricing_group_sequence
3658 , modifier_level_code
3659 , price_break_type_code
3660 , substitution_attribute
3661 , proration_type_code
3662 , credit_or_charge_flag
3663 , include_on_returns_flag
3664 , AC_ATTRIBUTE1
3665 , AC_ATTRIBUTE10
3666 , AC_ATTRIBUTE11
3667 , AC_ATTRIBUTE12
3668 , AC_ATTRIBUTE13
3669 , AC_ATTRIBUTE14
3670 , AC_ATTRIBUTE15
3671 , AC_ATTRIBUTE2
3672 , AC_ATTRIBUTE3
3673 , AC_ATTRIBUTE4
3674 , AC_ATTRIBUTE5
3675 , AC_ATTRIBUTE6
3676 , AC_ATTRIBUTE7
3677 , AC_ATTRIBUTE8
3678 , AC_ATTRIBUTE9
3679 , AC_CONTEXT
3680 --uom begin
3681 , OPERAND_PER_PQTY
3682 , ADJUSTED_AMOUNT_PER_PQTY
3683 --uom end
3684 , INVOICED_AMOUNT
3685 , orig_sys_discount_ref
3686 --RETRO{
3687 , retrobill_request_id
3688 --RETRO}
3689 , LOCK_CONTROL
3690 -- eBTax changes
3691 , TAX_RATE_ID
3692 FROM OE_PRICE_ADJUSTMENTS
3693 WHERE PRICE_ADJUSTMENT_ID = p_price_adjustment_id;
3694
3695 CURSOR l_Line_Adj_csr2 IS
3696 SELECT ATTRIBUTE1
3697 , ATTRIBUTE10
3698 , ATTRIBUTE11
3699 , ATTRIBUTE12
3700 , ATTRIBUTE13
3701 , ATTRIBUTE14
3702 , ATTRIBUTE15
3703 , ATTRIBUTE2
3704 , ATTRIBUTE3
3705 , ATTRIBUTE4
3706 , ATTRIBUTE5
3707 , ATTRIBUTE6
3708 , ATTRIBUTE7
3709 , ATTRIBUTE8
3710 , ATTRIBUTE9
3711 , AUTOMATIC_FLAG
3712 , CONTEXT
3713 , CREATED_BY
3714 , CREATION_DATE
3715 , DISCOUNT_ID
3716 , DISCOUNT_LINE_ID
3717 , HEADER_ID
3718 , LAST_UPDATED_BY
3719 , LAST_UPDATE_DATE
3720 , LAST_UPDATE_LOGIN
3721 , LINE_ID
3722 , PERCENT
3723 , PRICE_ADJUSTMENT_ID
3724 , PROGRAM_APPLICATION_ID
3725 , PROGRAM_ID
3726 , PROGRAM_UPDATE_DATE
3727 , REQUEST_ID
3728 , LIST_HEADER_ID
3729 , LIST_LINE_ID
3730 , LIST_LINE_TYPE_CODE
3731 , MODIFIER_MECHANISM_TYPE_CODE
3732 , MODIFIED_FROM
3733 , MODIFIED_TO
3734 , UPDATED_FLAG
3735 , UPDATE_ALLOWED
3736 , APPLIED_FLAG
3737 , CHANGE_REASON_CODE
3738 , CHANGE_REASON_TEXT
3739 , operand
3740 , Arithmetic_operator
3741 , COST_ID
3742 , TAX_CODE
3743 , TAX_EXEMPT_FLAG
3744 , TAX_EXEMPT_NUMBER
3745 , TAX_EXEMPT_REASON_CODE
3746 , PARENT_ADJUSTMENT_ID
3747 , INVOICED_FLAG
3748 , ESTIMATED_FLAG
3749 , INC_IN_SALES_PERFORMANCE
3750 , SPLIT_ACTION_CODE
3751 , ADJUSTED_AMOUNT
3752 , PRICING_PHASE_ID
3753 , CHARGE_TYPE_CODE
3754 , CHARGE_SUBTYPE_CODE
3755 , list_line_no
3756 , source_system_code
3757 , benefit_qty
3758 , benefit_uom_code
3759 , print_on_invoice_flag
3760 , expiration_date
3761 , rebate_transaction_type_code
3762 , rebate_transaction_reference
3763 , rebate_payment_system_code
3764 , redeemed_date
3765 , redeemed_flag
3766 , accrual_flag
3767 , range_break_quantity
3768 , accrual_conversion_rate
3769 , pricing_group_sequence
3770 , modifier_level_code
3771 , price_break_type_code
3772 , substitution_attribute
3773 , proration_type_code
3774 , credit_or_charge_flag
3775 , include_on_returns_flag
3776 , AC_ATTRIBUTE1
3777 , AC_ATTRIBUTE10
3778 , AC_ATTRIBUTE11
3779 , AC_ATTRIBUTE12
3780 , AC_ATTRIBUTE13
3781 , AC_ATTRIBUTE14
3782 , AC_ATTRIBUTE15
3783 , AC_ATTRIBUTE2
3784 , AC_ATTRIBUTE3
3785 , AC_ATTRIBUTE4
3786 , AC_ATTRIBUTE5
3787 , AC_ATTRIBUTE6
3788 , AC_ATTRIBUTE7
3789 , AC_ATTRIBUTE8
3790 , AC_ATTRIBUTE9
3791 , AC_CONTEXT
3792 --uom begin
3793 , OPERAND_PER_PQTY
3794 , ADJUSTED_AMOUNT_PER_PQTY
3795 --uom end
3796 , INVOICED_AMOUNT
3797 , orig_sys_discount_ref
3798 --RETRO{
3799 , retrobill_request_id
3800 --RETRO}
3801 , LOCK_CONTROL
3802 -- eBTax changes
3803 , TAX_RATE_ID
3804 FROM OE_PRICE_ADJUSTMENTS
3805 WHERE line_id = p_line_id;
3806
3807 CURSOR l_Line_Adj_csr3 IS
3808 SELECT ATTRIBUTE1
3809 , ATTRIBUTE10
3810 , ATTRIBUTE11
3811 , ATTRIBUTE12
3812 , ATTRIBUTE13
3813 , ATTRIBUTE14
3814 , ATTRIBUTE15
3815 , ATTRIBUTE2
3816 , ATTRIBUTE3
3817 , ATTRIBUTE4
3818 , ATTRIBUTE5
3819 , ATTRIBUTE6
3820 , ATTRIBUTE7
3821 , ATTRIBUTE8
3822 , ATTRIBUTE9
3823 , AUTOMATIC_FLAG
3824 , CONTEXT
3825 , CREATED_BY
3826 , CREATION_DATE
3827 , DISCOUNT_ID
3828 , DISCOUNT_LINE_ID
3829 , HEADER_ID
3830 , LAST_UPDATED_BY
3831 , LAST_UPDATE_DATE
3832 , LAST_UPDATE_LOGIN
3833 , LINE_ID
3834 , PERCENT
3835 , PRICE_ADJUSTMENT_ID
3836 , PROGRAM_APPLICATION_ID
3837 , PROGRAM_ID
3838 , PROGRAM_UPDATE_DATE
3839 , REQUEST_ID
3840 , LIST_HEADER_ID
3841 , LIST_LINE_ID
3842 , LIST_LINE_TYPE_CODE
3843 , MODIFIER_MECHANISM_TYPE_CODE
3844 , MODIFIED_FROM
3845 , MODIFIED_TO
3846 , UPDATED_FLAG
3847 , UPDATE_ALLOWED
3848 , APPLIED_FLAG
3849 , CHANGE_REASON_CODE
3850 , CHANGE_REASON_TEXT
3851 , operand
3852 , Arithmetic_operator
3853 , COST_ID
3854 , TAX_CODE
3855 , TAX_EXEMPT_FLAG
3856 , TAX_EXEMPT_NUMBER
3857 , TAX_EXEMPT_REASON_CODE
3858 , PARENT_ADJUSTMENT_ID
3859 , INVOICED_FLAG
3860 , ESTIMATED_FLAG
3861 , INC_IN_SALES_PERFORMANCE
3862 , SPLIT_ACTION_CODE
3863 , ADJUSTED_AMOUNT
3864 , PRICING_PHASE_ID
3865 , CHARGE_TYPE_CODE
3866 , CHARGE_SUBTYPE_CODE
3867 , list_line_no
3868 , source_system_code
3869 , benefit_qty
3870 , benefit_uom_code
3871 , print_on_invoice_flag
3872 , expiration_date
3873 , rebate_transaction_type_code
3874 , rebate_transaction_reference
3875 , rebate_payment_system_code
3876 , redeemed_date
3877 , redeemed_flag
3878 , accrual_flag
3879 , range_break_quantity
3880 , accrual_conversion_rate
3881 , pricing_group_sequence
3882 , modifier_level_code
3883 , price_break_type_code
3884 , substitution_attribute
3885 , proration_type_code
3886 , credit_or_charge_flag
3887 , include_on_returns_flag
3888 , AC_ATTRIBUTE1
3889 , AC_ATTRIBUTE10
3890 , AC_ATTRIBUTE11
3891 , AC_ATTRIBUTE12
3892 , AC_ATTRIBUTE13
3893 , AC_ATTRIBUTE14
3894 , AC_ATTRIBUTE15
3895 , AC_ATTRIBUTE2
3896 , AC_ATTRIBUTE3
3897 , AC_ATTRIBUTE4
3898 , AC_ATTRIBUTE5
3899 , AC_ATTRIBUTE6
3900 , AC_ATTRIBUTE7
3901 , AC_ATTRIBUTE8
3902 , AC_ATTRIBUTE9
3903 , AC_CONTEXT
3904 --uom begin
3905 , OPERAND_PER_PQTY
3906 , ADJUSTED_AMOUNT_PER_PQTY
3907 --uom end
3908 , INVOICED_AMOUNT
3909 , orig_sys_discount_ref
3910 --RETRO{
3911 , retrobill_request_id
3912 --RETRO}
3913 , LOCK_CONTROL
3914 -- eBTax changes
3915 , TAX_RATE_ID
3916 FROM OE_PRICE_ADJUSTMENTS
3917 WHERE header_id = p_header_id
3918 and line_id is null;
3919
3920 --Line-level adjustments based on header_id
3921 CURSOR l_Line_Adj_csr4 IS
3922 SELECT ATTRIBUTE1
3923 , ATTRIBUTE10
3924 , ATTRIBUTE11
3925 , ATTRIBUTE12
3926 , ATTRIBUTE13
3927 , ATTRIBUTE14
3928 , ATTRIBUTE15
3929 , ATTRIBUTE2
3930 , ATTRIBUTE3
3931 , ATTRIBUTE4
3932 , ATTRIBUTE5
3933 , ATTRIBUTE6
3934 , ATTRIBUTE7
3935 , ATTRIBUTE8
3936 , ATTRIBUTE9
3937 , AUTOMATIC_FLAG
3938 , CONTEXT
3939 , CREATED_BY
3940 , CREATION_DATE
3941 , DISCOUNT_ID
3942 , DISCOUNT_LINE_ID
3943 , HEADER_ID
3944 , LAST_UPDATED_BY
3945 , LAST_UPDATE_DATE
3946 , LAST_UPDATE_LOGIN
3947 , LINE_ID
3948 , PERCENT
3949 , PRICE_ADJUSTMENT_ID
3950 , PROGRAM_APPLICATION_ID
3951 , PROGRAM_ID
3952 , PROGRAM_UPDATE_DATE
3953 , REQUEST_ID
3954 , LIST_HEADER_ID
3955 , LIST_LINE_ID
3956 , LIST_LINE_TYPE_CODE
3957 , MODIFIER_MECHANISM_TYPE_CODE
3958 , MODIFIED_FROM
3959 , MODIFIED_TO
3960 , UPDATED_FLAG
3961 , UPDATE_ALLOWED
3962 , APPLIED_FLAG
3963 , CHANGE_REASON_CODE
3964 , CHANGE_REASON_TEXT
3965 , operand
3966 , Arithmetic_operator
3967 , COST_ID
3968 , TAX_CODE
3969 , TAX_EXEMPT_FLAG
3970 , TAX_EXEMPT_NUMBER
3971 , TAX_EXEMPT_REASON_CODE
3972 , PARENT_ADJUSTMENT_ID
3973 , INVOICED_FLAG
3974 , ESTIMATED_FLAG
3975 , INC_IN_SALES_PERFORMANCE
3976 , SPLIT_ACTION_CODE
3977 , ADJUSTED_AMOUNT
3978 , PRICING_PHASE_ID
3979 , CHARGE_TYPE_CODE
3980 , CHARGE_SUBTYPE_CODE
3981 , list_line_no
3982 , source_system_code
3983 , benefit_qty
3984 , benefit_uom_code
3985 , print_on_invoice_flag
3986 , expiration_date
3987 , rebate_transaction_type_code
3988 , rebate_transaction_reference
3989 , rebate_payment_system_code
3990 , redeemed_date
3991 , redeemed_flag
3992 , accrual_flag
3993 , range_break_quantity
3994 , accrual_conversion_rate
3995 , pricing_group_sequence
3996 , modifier_level_code
3997 , price_break_type_code
3998 , substitution_attribute
3999 , proration_type_code
4000 , credit_or_charge_flag
4001 , include_on_returns_flag
4002 , AC_ATTRIBUTE1
4003 , AC_ATTRIBUTE10
4004 , AC_ATTRIBUTE11
4005 , AC_ATTRIBUTE12
4006 , AC_ATTRIBUTE13
4007 , AC_ATTRIBUTE14
4008 , AC_ATTRIBUTE15
4009 , AC_ATTRIBUTE2
4010 , AC_ATTRIBUTE3
4011 , AC_ATTRIBUTE4
4012 , AC_ATTRIBUTE5
4013 , AC_ATTRIBUTE6
4014 , AC_ATTRIBUTE7
4015 , AC_ATTRIBUTE8
4016 , AC_ATTRIBUTE9
4017 , AC_CONTEXT
4018 --uom begin
4019 , OPERAND_PER_PQTY
4020 , ADJUSTED_AMOUNT_PER_PQTY
4021 --uom end
4022 , INVOICED_AMOUNT
4023 , orig_sys_discount_ref
4024 --RETRO{
4025 , retrobill_request_id
4026 --RETRO}
4027 , LOCK_CONTROL
4028 -- eBTax changes
4029 , TAX_RATE_ID
4030 FROM OE_PRICE_ADJUSTMENTS
4031 WHERE header_id = p_line_level_header_id
4032 and line_id is not null;
4033
4034 l_implicit_rec l_line_adj_csr%ROWTYPE;
4035 l_entity NUMBER;
4036 --
4037 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4038 --
4039 BEGIN
4040
4041 IF
4042 (p_price_adjustment_id IS NOT NULL
4043 AND
4044 p_price_adjustment_id <> FND_API.G_MISS_NUM)
4045 AND
4046 (p_line_id IS NOT NULL
4047 AND
4048 p_line_id <> FND_API.G_MISS_NUM)
4049 THEN
4050 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4051 THEN
4052 OE_MSG_PUB.Add_Exc_Msg
4053 ( G_PKG_NAME
4054 , 'Query Rows'
4055 , 'Keys are mutually exclusive: price_adjustment_id = '|| p_price_adjustment_id || ', line_id = '|| p_line_id
4056 );
4057 END IF;
4058
4059 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4060
4061 END IF;
4062
4063 IF nvl(p_price_adjustment_id,-1) <> FND_API.G_MISS_NUM THEN
4064 l_entity := 1;
4065 OPEN l_line_adj_csr;
4066 ELSIF nvl(p_line_id,-1) <> FND_API.G_MISS_NUM THEN
4067 l_entity := 2;
4068 OPEN l_line_adj_csr2;
4069 ELSIF nvl(p_header_id,-1) <> FND_API.G_MISS_NUM THEN
4070 l_entity := 3;
4071 OPEN l_line_adj_csr3;
4072 ELSIF nvl(p_line_level_header_id,-1) <> FND_API.G_MISS_NUM THEN
4073 l_entity := 4;
4074 OPEN l_line_adj_csr4;
4075 END IF;
4076
4077 l_count := 1;
4078
4079 -- Loop over fetched records
4080 LOOP
4081
4082 IF l_entity = 1 THEN
4083 FETCH l_line_adj_csr INTO l_implicit_rec;
4084 EXIT WHEN l_line_adj_csr%NOTFOUND;
4085 ELSIF l_entity = 2 THEN
4086 FETCH l_line_adj_csr2 INTO l_implicit_rec;
4087 EXIT WHEN l_line_adj_csr2%NOTFOUND;
4088 ELSIF l_entity = 3 THEN
4089 FETCH l_line_adj_csr3 INTO l_implicit_rec;
4090 EXIT WHEN l_line_adj_csr3%NOTFOUND;
4091 --bug3392650 (the condition l_entity=3 was being checked twice)
4092 ELSIF l_entity = 4 THEN
4093 FETCH l_line_adj_csr4 INTO l_implicit_rec;
4094 EXIT WHEN l_line_adj_csr4%NOTFOUND;
4095 ELSE
4096 EXIT;
4097 END IF;
4098
4099 x_Line_Adj_tbl(l_count).attribute1 := l_implicit_rec.ATTRIBUTE1;
4100 x_Line_Adj_tbl(l_count).attribute10 := l_implicit_rec.ATTRIBUTE10;
4101 x_Line_Adj_tbl(l_count).attribute11 := l_implicit_rec.ATTRIBUTE11;
4102 x_Line_Adj_tbl(l_count).attribute12 := l_implicit_rec.ATTRIBUTE12;
4103 x_Line_Adj_tbl(l_count).attribute13 := l_implicit_rec.ATTRIBUTE13;
4104 x_Line_Adj_tbl(l_count).attribute14 := l_implicit_rec.ATTRIBUTE14;
4105 x_Line_Adj_tbl(l_count).attribute15 := l_implicit_rec.ATTRIBUTE15;
4106 x_Line_Adj_tbl(l_count).attribute2 := l_implicit_rec.ATTRIBUTE2;
4107 x_Line_Adj_tbl(l_count).attribute3 := l_implicit_rec.ATTRIBUTE3;
4108 x_Line_Adj_tbl(l_count).attribute4 := l_implicit_rec.ATTRIBUTE4;
4109 x_Line_Adj_tbl(l_count).attribute5 := l_implicit_rec.ATTRIBUTE5;
4110 x_Line_Adj_tbl(l_count).attribute6 := l_implicit_rec.ATTRIBUTE6;
4111 x_Line_Adj_tbl(l_count).attribute7 := l_implicit_rec.ATTRIBUTE7;
4112 x_Line_Adj_tbl(l_count).attribute8 := l_implicit_rec.ATTRIBUTE8;
4113 x_Line_Adj_tbl(l_count).attribute9 := l_implicit_rec.ATTRIBUTE9;
4114 x_Line_Adj_tbl(l_count).automatic_flag := l_implicit_rec.AUTOMATIC_FLAG;
4115 x_Line_Adj_tbl(l_count).context := l_implicit_rec.CONTEXT;
4116 x_Line_Adj_tbl(l_count).created_by := l_implicit_rec.CREATED_BY;
4117 x_Line_Adj_tbl(l_count).creation_date := l_implicit_rec.CREATION_DATE;
4118 x_Line_Adj_tbl(l_count).discount_id := l_implicit_rec.DISCOUNT_ID;
4119 x_Line_Adj_tbl(l_count).discount_line_id := l_implicit_rec.DISCOUNT_LINE_ID;
4120 x_Line_Adj_tbl(l_count).header_id := l_implicit_rec.HEADER_ID;
4121 x_Line_Adj_tbl(l_count).last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
4122 x_Line_Adj_tbl(l_count).last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
4123 x_Line_Adj_tbl(l_count).last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
4124 x_Line_Adj_tbl(l_count).line_id := l_implicit_rec.LINE_ID;
4125 x_Line_Adj_tbl(l_count).percent := l_implicit_rec.PERCENT;
4126 x_Line_Adj_tbl(l_count).price_adjustment_id := l_implicit_rec.PRICE_ADJUSTMENT_ID;
4127 x_Line_Adj_tbl(l_count).program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
4128 x_Line_Adj_tbl(l_count).program_id := l_implicit_rec.PROGRAM_ID;
4129 x_Line_Adj_tbl(l_count).program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
4130 x_Line_Adj_tbl(l_count).request_id := l_implicit_rec.REQUEST_ID;
4131 x_Line_Adj_tbl(l_count).list_header_id := l_implicit_rec.list_header_id;
4132 x_Line_Adj_tbl(l_count).list_line_id := l_implicit_rec.list_line_id;
4133 x_Line_Adj_tbl(l_count).list_line_type_code := l_implicit_rec.list_line_type_code;
4134 x_Line_Adj_tbl(l_count).modifier_mechanism_type_code := l_implicit_rec.modifier_mechanism_type_code;
4135 x_Line_Adj_tbl(l_count).modified_from := l_implicit_rec.modified_from;
4136 x_Line_Adj_tbl(l_count).modified_to := l_implicit_rec.modified_to;
4137 x_Line_Adj_tbl(l_count).updated_flag := l_implicit_rec.updated_flag;
4138 x_Line_Adj_tbl(l_count).update_allowed := l_implicit_rec.update_allowed;
4139 x_Line_Adj_tbl(l_count).applied_flag := l_implicit_rec.applied_flag;
4140 x_Line_Adj_tbl(l_count).change_reason_code := l_implicit_rec.change_reason_code;
4141 x_Line_Adj_tbl(l_count).change_reason_text := l_implicit_rec.change_reason_text;
4142 x_Line_Adj_tbl(l_count).operand := l_implicit_rec.operand;
4143 x_Line_Adj_tbl(l_count).arithmetic_operator := l_implicit_rec.arithmetic_operator;
4144 x_Line_Adj_tbl(l_count).adjusted_amount := l_implicit_rec.adjusted_amount;
4145 x_Line_Adj_tbl(l_count).pricing_phase_id := l_implicit_rec.pricing_phase_id;
4146 x_Line_Adj_tbl(l_count).cost_id := l_implicit_rec.cost_id;
4147 x_Line_Adj_tbl(l_count).tax_code := l_implicit_rec.tax_code;
4148 x_Line_Adj_tbl(l_count).tax_exempt_flag := l_implicit_rec.tax_exempt_flag;
4149 x_Line_Adj_tbl(l_count).tax_exempt_number := l_implicit_rec.tax_exempt_number;
4150 x_Line_Adj_tbl(l_count).tax_exempt_reason_code := l_implicit_rec.tax_exempt_reason_code;
4151 x_Line_Adj_tbl(l_count).parent_adjustment_id := l_implicit_rec.parent_adjustment_id;
4152 x_Line_Adj_tbl(l_count).invoiced_flag := l_implicit_rec.invoiced_flag;
4153 x_Line_Adj_tbl(l_count).estimated_flag := l_implicit_rec.estimated_flag;
4154 x_Line_Adj_tbl(l_count).inc_in_sales_performance := l_implicit_rec.inc_in_sales_performance;
4155 x_Line_Adj_tbl(l_count).split_action_code := l_implicit_rec.split_action_code;
4156 x_Line_Adj_tbl(l_count).charge_type_code := l_implicit_rec.charge_type_code;
4157 x_Line_Adj_tbl(l_count).charge_subtype_code := l_implicit_rec.charge_subtype_code;
4158 x_Line_Adj_tbl(l_count).list_line_no := l_implicit_rec.list_line_no;
4159 x_Line_Adj_tbl(l_count).source_system_code := l_implicit_rec.source_system_code;
4160 x_Line_Adj_tbl(l_count).benefit_qty := l_implicit_rec.benefit_qty;
4161 x_Line_Adj_tbl(l_count).benefit_uom_code := l_implicit_rec.benefit_uom_code;
4162 x_Line_Adj_tbl(l_count).print_on_invoice_flag := l_implicit_rec.print_on_invoice_flag;
4163 x_Line_Adj_tbl(l_count).expiration_date := l_implicit_rec.expiration_date;
4164 x_Line_Adj_tbl(l_count).rebate_transaction_type_code := l_implicit_rec.rebate_transaction_type_code;
4165 x_Line_Adj_tbl(l_count).rebate_transaction_reference := l_implicit_rec.rebate_transaction_reference;
4166 x_Line_Adj_tbl(l_count).rebate_payment_system_code := l_implicit_rec.rebate_payment_system_code;
4167 x_Line_Adj_tbl(l_count).redeemed_date := l_implicit_rec.redeemed_date;
4168 x_Line_Adj_tbl(l_count).redeemed_flag := l_implicit_rec.redeemed_flag;
4169 x_Line_Adj_tbl(l_count).accrual_flag := l_implicit_rec.accrual_flag;
4170 x_Line_Adj_tbl(l_count).range_break_quantity := l_implicit_rec.range_break_quantity;
4171 x_Line_Adj_tbl(l_count).accrual_conversion_rate := l_implicit_rec.accrual_conversion_rate;
4172 x_Line_Adj_tbl(l_count).pricing_group_sequence := l_implicit_rec.pricing_group_sequence;
4173 x_Line_Adj_tbl(l_count).modifier_level_code := l_implicit_rec.modifier_level_code;
4174 x_Line_Adj_tbl(l_count).price_break_type_code := l_implicit_rec.price_break_type_code;
4175 x_Line_Adj_tbl(l_count).substitution_attribute := l_implicit_rec.substitution_attribute;
4176 x_Line_Adj_tbl(l_count).proration_type_code := l_implicit_rec.proration_type_code;
4177 x_Line_Adj_tbl(l_count).credit_or_charge_flag := l_implicit_rec.credit_or_charge_flag;
4178 x_Line_Adj_tbl(l_count).include_on_returns_flag := l_implicit_rec.include_on_returns_flag;
4179 x_Line_Adj_tbl(l_count).ac_attribute1 := l_implicit_rec.AC_ATTRIBUTE1;
4180 x_Line_Adj_tbl(l_count).ac_attribute10 := l_implicit_rec.AC_ATTRIBUTE10;
4181 x_Line_Adj_tbl(l_count).ac_attribute11 := l_implicit_rec.AC_ATTRIBUTE11;
4182 x_Line_Adj_tbl(l_count).ac_attribute12 := l_implicit_rec.AC_ATTRIBUTE12;
4183 x_Line_Adj_tbl(l_count).ac_attribute13 := l_implicit_rec.AC_ATTRIBUTE13;
4184 x_Line_Adj_tbl(l_count).ac_attribute14 := l_implicit_rec.AC_ATTRIBUTE14;
4185 x_Line_Adj_tbl(l_count).ac_attribute15 := l_implicit_rec.AC_ATTRIBUTE15;
4186 x_Line_Adj_tbl(l_count).ac_attribute2 := l_implicit_rec.AC_ATTRIBUTE2;
4187 x_Line_Adj_tbl(l_count).ac_attribute3 := l_implicit_rec.AC_ATTRIBUTE3;
4188 x_Line_Adj_tbl(l_count).ac_attribute4 := l_implicit_rec.AC_ATTRIBUTE4;
4189 x_Line_Adj_tbl(l_count).ac_attribute5 := l_implicit_rec.AC_ATTRIBUTE5;
4190 x_Line_Adj_tbl(l_count).ac_attribute6 := l_implicit_rec.AC_ATTRIBUTE6;
4191 x_Line_Adj_tbl(l_count).ac_attribute7 := l_implicit_rec.AC_ATTRIBUTE7;
4192 x_Line_Adj_tbl(l_count).ac_attribute8 := l_implicit_rec.AC_ATTRIBUTE8;
4193 x_Line_Adj_tbl(l_count).ac_attribute9 := l_implicit_rec.AC_ATTRIBUTE9;
4194 x_Line_Adj_tbl(l_count).ac_context := l_implicit_rec.AC_CONTEXT;
4195 --uom begin
4196 x_Line_Adj_tbl(l_count).operand_per_pqty := l_implicit_rec.operand_per_pqty;
4197 x_Line_Adj_tbl(l_count).adjusted_amount_per_pqty := l_implicit_rec.adjusted_amount_per_pqty;
4198 --uom end
4199 x_Line_Adj_tbl(l_count).invoiced_amount := l_implicit_rec.invoiced_amount;
4200 x_Line_Adj_tbl(l_count).orig_sys_discount_ref := l_implicit_rec.orig_sys_discount_ref;
4201 x_Line_Adj_tbl(l_count).lock_control := l_implicit_rec.LOCK_CONTROL;
4202 -- eBTax Changes
4203 x_Line_Adj_tbl(l_count).tax_rate_id := l_implicit_rec.tax_Rate_id;
4204
4205 -- set values for non-DB fields
4206 x_Line_Adj_tbl(l_count).db_flag := FND_API.G_TRUE;
4207 x_Line_Adj_tbl(l_count).operation := FND_API.G_MISS_CHAR;
4208 x_Line_Adj_tbl(l_count).return_status := FND_API.G_MISS_CHAR;
4209
4210 -- bug 2209746 begin
4211 if (l_entity = 2) then
4212 if nvl(l_implicit_rec.adjusted_amount,0) <> 0 then
4213 x_line_Adj_tbl(l_count).group_value := abs(l_implicit_rec.operand/l_implicit_rec.adjusted_amount);
4214 end if;
4215 end if;
4216 --bug 2209746 end
4217 --RT{
4218 x_Line_Adj_tbl(l_count).retrobill_request_id:=l_implicit_rec.retrobill_request_id;
4219 --RT}
4220 l_count := l_count + 1;
4221
4222 END LOOP;
4223
4224 IF l_entity = 1 THEN
4225 CLOSE l_line_adj_csr;
4226 ELSIF l_entity = 2 THEN
4227 CLOSE l_line_adj_csr2;
4228 ELSIF l_entity = 3 THEN
4229 CLOSE l_line_adj_csr3;
4230 ELSIF l_entity = 4 THEN
4231 CLOSE l_line_adj_csr4;
4232 END IF;
4233
4234 -- PK sent and no rows found
4235
4236 IF
4237 (p_price_adjustment_id IS NOT NULL
4238 AND
4239 p_price_adjustment_id <> FND_API.G_MISS_NUM)
4240 AND
4241 (x_Line_Adj_tbl.COUNT = 0)
4242 THEN
4243 RAISE NO_DATA_FOUND;
4244 END IF;
4245
4246
4247 -- Return fetched table
4248
4249 EXCEPTION
4250
4251 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4252 IF l_debug_level > 0 THEN
4253 oe_debug_pub.add( G_PKG_NAME||':QUERY_ROW:'||SQLERRM ) ;
4254 END IF;
4255 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4256
4257 WHEN OTHERS THEN
4258 IF l_debug_level > 0 THEN
4259 oe_debug_pub.add( G_PKG_NAME||':QUERY_ROW:'||SQLERRM ) ;
4260 END IF;
4261 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4262 THEN
4263 OE_MSG_PUB.Add_Exc_Msg
4264 ( G_PKG_NAME
4265 , 'Query_Rows'
4266 );
4267 END IF;
4268
4269 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4270
4271 END Query_Rows;
4272
4273 -- Procedure lock_Row
4274
4275 PROCEDURE Lock_Row
4276 ( x_return_status OUT NOCOPY VARCHAR2
4277
4278 , p_x_Line_Adj_rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
4279 -- := OE_Order_PUB.G_MISS_LINE_ADJ_REC
4280 , p_price_adjustment_id IN NUMBER
4281 := FND_API.G_MISS_NUM
4282 -- , x_Line_Adj_rec OUT OE_Order_PUB.Line_Adj_Rec_Type
4283 )
4284 IS
4285 l_price_adjustment_id NUMBER;
4286 l_Line_Adj_rec OE_Order_PUB.Line_Adj_Rec_Type;
4287 l_lock_control NUMBER;
4288
4289 --
4290 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4291 --
4292 BEGIN
4293
4294 IF l_debug_level > 0 THEN
4295 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.LOCK_ROW' , 1 ) ;
4296 END IF;
4297
4298 SAVEPOINT Lock_Row;
4299
4300 l_lock_control := NULL;
4301
4302 -- Retrieve the primary key.
4303 IF p_price_adjustment_id <> FND_API.G_MISS_NUM THEN
4304 l_price_adjustment_id := p_price_adjustment_id;
4305 ELSE
4306 l_price_adjustment_id := p_x_line_adj_rec.price_adjustment_id;
4307 l_lock_control := p_x_Line_Adj_rec.lock_control;
4308 END IF;
4309
4310
4311 -- added for performance change
4312 SELECT price_adjustment_id
4313 INTO l_price_adjustment_id
4314 FROM oe_price_adjustments
4315 WHERE price_adjustment_id = l_price_adjustment_id
4316 FOR UPDATE NOWAIT;
4317
4318 IF l_debug_level > 0 THEN
4319 oe_debug_pub.add( 'SELECTING FOR UPDATE.' , 1 ) ;
4320 END IF;
4321
4322 OE_Line_Adj_Util.Query_Row
4323 (p_price_adjustment_id => l_price_adjustment_id
4324 ,x_Line_Adj_rec => p_x_Line_Adj_rec
4325 );
4326 -- If lock_control is not passed(is null or missing), then return the locked record.
4327
4328
4329 IF l_lock_control is null OR
4330 l_lock_control = FND_API.G_MISS_NUM
4331 THEN
4332
4333 -- Set return status
4334 x_return_status := FND_API.G_RET_STS_SUCCESS;
4335 p_x_line_adj_rec.return_status := FND_API.G_RET_STS_SUCCESS;
4336
4337 -- return for lock by ID.
4338 RETURN;
4339
4340 END IF;
4341
4342 -- Row locked. If the whole record is passed, then
4343 -- Compare lock_control.
4344
4345 IF l_debug_level > 0 THEN
4346 oe_debug_pub.add( 'COMPARE ' , 1 ) ;
4347 END IF;
4348
4349 IF OE_GLOBALS.Equal(p_x_line_adj_rec.lock_control,
4350 l_lock_control)
4351 THEN
4352
4353 -- Row has not changed. Set out parameter.
4354
4355 IF l_debug_level > 0 THEN
4356 oe_debug_pub.add( 'LOCKED ROW' , 1 ) ;
4357 END IF;
4358
4359 -- Set return status
4360
4361 x_return_status := FND_API.G_RET_STS_SUCCESS;
4362 p_x_line_adj_rec.return_status := FND_API.G_RET_STS_SUCCESS;
4363
4364 ELSE
4365
4366 -- Row has changed by another user.
4367 IF l_debug_level > 0 THEN
4368 oe_debug_pub.add( 'ROW CHANGED BY OTHER USER' , 1 ) ;
4369 END IF;
4370
4371 x_return_status := FND_API.G_RET_STS_ERROR;
4372 p_x_line_adj_rec.return_status := FND_API.G_RET_STS_ERROR;
4373
4374 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
4375 THEN
4376
4377 -- Release the lock
4378 ROLLBACK TO Lock_Row;
4379
4380 fnd_message.set_name('ONT','OE_LOCK_ROW_CHANGED');
4381 OE_MSG_PUB.Add;
4382
4383 END IF;
4384
4385 END IF;
4386
4387 EXCEPTION
4388
4389 WHEN NO_DATA_FOUND THEN
4390
4391 x_return_status := FND_API.G_RET_STS_ERROR;
4392 p_x_Line_Adj_rec.return_status := FND_API.G_RET_STS_ERROR;
4393
4394 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
4395 THEN
4396
4397 FND_MESSAGE.SET_NAME('ONT','OE_LOCK_ROW_DELETED');
4398 FND_MSG_PUB.Add;
4399
4400 END IF;
4401 WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
4402
4403 x_return_status := FND_API.G_RET_STS_ERROR;
4404 p_x_Line_Adj_rec.return_status := FND_API.G_RET_STS_ERROR;
4405
4406 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
4407 THEN
4408
4409 FND_MESSAGE.SET_NAME('ONT','OE_LOCK_ROW_ALREADY_LOCKED');
4410 FND_MSG_PUB.Add;
4411
4412 END IF;
4413 WHEN OTHERS THEN
4414
4415 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4416 p_x_Line_Adj_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4417
4418 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4419 THEN
4420 OE_MSG_PUB.Add_Exc_Msg
4421 ( G_PKG_NAME
4422 , 'Lock_Row'
4423 );
4424 END IF;
4425
4426 END Lock_Row;
4427
4428 -- Procedure lock_Rows
4429
4430 PROCEDURE Lock_Rows
4431 ( p_price_adjustment_id IN NUMBER
4432 := FND_API.G_MISS_NUM
4433 , p_line_id IN NUMBER
4434 := FND_API.G_MISS_NUM
4435 , x_Line_Adj_tbl OUT NOCOPY OE_Order_PUB.Line_Adj_Tbl_Type
4436 , x_return_status OUT NOCOPY VARCHAR2
4437
4438 )
4439 IS
4440
4441 CURSOR lock_adj_lines(p_line_id IN NUMBER) IS
4442 SELECT price_adjustment_id
4443 FROM oe_price_adjustments
4444 WHERE line_id = p_line_id
4445 FOR UPDATE NOWAIT;
4446
4447 l_price_adjustment_id NUMBER;
4448 l_Line_Adj_tbl OE_Order_PUB.Line_Adj_Tbl_Type;
4449 l_lock_control NUMBER;
4450
4451 --
4452 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4453 --
4454 BEGIN
4455
4456 IF l_debug_level > 0 THEN
4457 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.LOCK_ROWS.' , 1 ) ;
4458 END IF;
4459
4460 IF (p_price_adjustment_id IS NOT NULL AND
4461 p_price_adjustment_id <> FND_API.G_MISS_NUM) AND
4462 (p_line_id IS NOT NULL AND
4463 p_line_id <> FND_API.G_MISS_NUM)
4464 THEN
4465 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4466 OE_MSG_PUB.Add_Exc_Msg
4467 ( G_PKG_NAME
4468 , 'Lock_Rows'
4469 , 'Keys are mutually exclusive: price_adjustment_id = ' ||
4470 p_price_adjustment_id || ', line_id = ' || p_line_id );
4471 END IF;
4472
4473 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4474 END IF;
4475
4476 IF p_price_adjustment_id <> FND_API.G_MISS_NUM THEN
4477
4478 SELECT price_adjustment_id
4479 INTO l_price_adjustment_id
4480 FROM oe_price_adjustments
4481 WHERE price_adjustment_id = p_price_adjustment_id
4482 FOR UPDATE NOWAIT;
4483 END IF;
4484
4485 -- null line_id shouldn't be passed in unnecessarily if
4486 -- price_adjustment_id is passed in already.
4487 BEGIN
4488 IF p_line_id <> FND_API.G_MISS_NUM THEN
4489 SAVEPOINT LOCK_ROWS;
4490 OPEN lock_adj_lines(p_line_id);
4491
4492 LOOP
4493 FETCH lock_adj_lines INTO l_price_adjustment_id;
4494 EXIT WHEN lock_adj_lines%NOTFOUND;
4495 END LOOP;
4496 CLOSE lock_adj_lines;
4497 END IF;
4498 EXCEPTION
4499 WHEN OTHERS THEN
4500 ROLLBACK TO LOCK_ROWS;
4501
4502 IF lock_adj_lines%ISOPEN THEN
4503 CLOSE lock_adj_lines;
4504 END IF;
4505
4506 RAISE;
4507 END;
4508
4509 OE_Line_Adj_Util.Query_Rows
4510 ( p_price_adjustment_id => p_price_adjustment_id
4511 , p_line_id => p_line_id
4512 , x_Line_Adj_tbl => x_Line_Adj_tbl
4513 );
4514
4515 x_return_status := FND_API.G_RET_STS_SUCCESS;
4516
4517 EXCEPTION
4518 WHEN NO_DATA_FOUND THEN
4519 x_return_status := FND_API.G_RET_STS_ERROR;
4520 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
4521 THEN
4522 fnd_message.set_name('ONT','OE_LOCK_ROW_DELETED');
4523 OE_MSG_PUB.Add;
4524 END IF;
4525
4526 WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
4527 x_return_status := FND_API.G_RET_STS_ERROR;
4528 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
4529 THEN
4530 fnd_message.set_name('ONT','OE_LOCK_ROW_ALREADY_LOCKED');
4531 OE_MSG_PUB.Add;
4532 END IF;
4533
4534 WHEN OTHERS THEN
4535 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4536 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4537 THEN
4538 OE_MSG_PUB.Add_Exc_Msg
4539 ( G_PKG_NAME
4540 , 'Lock_Row'
4541 );
4542 END IF;
4543
4544 IF l_debug_level > 0 THEN
4545 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.LOCK_ROWS.' , 1 ) ;
4546 END IF;
4547
4548 END Lock_Rows;
4549
4550 PROCEDURE Log_Adj_Requests
4551 ( x_return_status OUT NOCOPY VARCHAR2
4552
4553 , p_adj_rec IN OE_order_pub.Line_Adj_Rec_Type
4554 , p_old_adj_rec IN OE_order_pub.Line_Adj_Rec_Type
4555 , p_delete_flag IN BOOLEAN DEFAULT FALSE
4556 ) IS
4557 BEGIN
4558
4559 x_return_status := FND_API.G_RET_STS_SUCCESS;
4560
4561 -- if the adjustment_id changed or the percent changed
4562 -- or discount or discount_line has changed
4563
4564 IF ( (p_adj_rec.price_adjustment_id <> p_old_adj_rec.price_adjustment_id
4565 OR
4566 p_old_adj_rec.price_adjustment_id IS NULL)
4567 OR
4568 (p_adj_rec.operand <> p_old_adj_rec.operand
4569 OR
4570 p_old_adj_rec.operand IS NULL)
4571 OR
4572 (p_adj_rec.list_line_id <> p_old_adj_rec.list_line_id
4573 OR
4574 p_old_adj_rec.list_line_id IS NULL)
4575 OR
4576 (p_adj_rec.list_header_id <> p_old_adj_rec.list_header_id
4577 OR
4578 p_old_adj_rec.list_header_id IS NULL)
4579 OR
4580 p_delete_flag)
4581 THEN
4582
4583 /*
4584 oe_delayed_requests_pvt.log_request(p_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
4585 p_entity_id => p_adj_rec.line_id,
4586 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
4587 p_requesting_entity_id => p_adj_rec.price_adjustment_id,
4588 p_request_type => OE_GLOBALS.G_PRICE_ADJ,
4589 x_return_status => x_return_status);
4590 */
4591 null;
4592
4593 END IF;
4594
4595 END Log_Adj_Requests;
4596
4597 -- Function Get_Values
4598
4599 FUNCTION Get_Values
4600 ( p_Line_Adj_rec IN OE_Order_PUB.Line_Adj_Rec_Type
4601 , p_old_Line_Adj_rec IN OE_Order_PUB.Line_Adj_Rec_Type :=
4602 OE_Order_PUB.G_MISS_LINE_ADJ_REC
4603 ) RETURN OE_Order_PUB.Line_Adj_Val_Rec_Type
4604 IS
4605 l_Line_Adj_val_rec OE_Order_PUB.Line_Adj_Val_Rec_Type;
4606 BEGIN
4607
4608 IF (p_Line_Adj_rec.discount_id IS NULL OR
4609 p_Line_Adj_rec.discount_id <> FND_API.G_MISS_NUM) AND
4610 NOT OE_GLOBALS.Equal(p_Line_Adj_rec.discount_id,
4611 p_old_Line_Adj_rec.discount_id)
4612 THEN
4613 l_Line_Adj_val_rec.discount := OE_Id_To_Value.Discount
4614 ( p_discount_id => p_Line_Adj_rec.discount_id
4615 );
4616 END IF;
4617
4618 RETURN l_Line_Adj_val_rec;
4619
4620 END Get_Values;
4621
4622 -- Procedure Get_Ids
4623
4624 PROCEDURE Get_Ids
4625 ( p_x_Line_Adj_rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
4626 , p_Line_Adj_val_rec IN OE_Order_PUB.Line_Adj_Val_Rec_Type
4627 )
4628 IS
4629 l_Line_Adj_rec OE_Order_PUB.Line_Adj_Rec_Type;
4630 BEGIN
4631
4632 -- initialize return_status.
4633
4634 l_Line_Adj_rec.return_status := FND_API.G_RET_STS_SUCCESS;
4635
4636 -- initialize l_Line_Adj_rec.
4637
4638 l_Line_Adj_rec := p_x_Line_Adj_rec;
4639
4640 IF p_Line_Adj_val_rec.discount <> FND_API.G_MISS_CHAR
4641 THEN
4642
4643 IF p_x_Line_Adj_rec.discount_id <> FND_API.G_MISS_NUM THEN
4644
4645 l_Line_Adj_rec.discount_id := p_x_Line_Adj_rec.discount_id;
4646
4647 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
4648 THEN
4649
4650 FND_MESSAGE.SET_NAME('ONT','OE_BOTH_VAL_AND_ID_EXIST');
4651 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','discount');
4652 FND_MSG_PUB.Add;
4653
4654 END IF;
4655
4656 ELSE
4657
4658 l_Line_Adj_rec.discount_id := OE_Value_To_Id.discount
4659 ( p_discount => p_Line_Adj_val_rec.discount
4660 );
4661
4662 IF l_Line_Adj_rec.discount_id = FND_API.G_MISS_NUM THEN
4663 l_Line_Adj_rec.return_status := FND_API.G_RET_STS_ERROR;
4664 END IF;
4665
4666 END IF;
4667
4668 END IF;
4669
4670
4671 -- RETURN l_Line_Adj_rec;
4672 p_x_Line_Adj_rec := l_Line_Adj_rec;
4673
4674 END Get_Ids;
4675
4676 -- This function converts a Header adj record to a Line Adjustment record
4677 Function Convert_Hdr_Adj_To_Line_Adj
4678 ( p_header_adj_rec IN OE_Order_PUB.Header_adj_rec_type)
4679 RETURN OE_Order_PUB.Line_Adj_Rec_Type
4680 IS
4681 l_line_adj_rec OE_Order_PUB.Line_Adj_Rec_Type;
4682 BEGIN
4683
4684 l_line_adj_rec.attribute1 := p_header_adj_rec.attribute1;
4685 l_line_adj_rec.attribute10 := p_header_adj_rec.attribute10;
4686 l_line_adj_rec.attribute11 := p_header_adj_rec.attribute11;
4687 l_line_adj_rec.attribute12 := p_header_adj_rec.attribute12;
4688 l_line_adj_rec.attribute13 := p_header_adj_rec.attribute13;
4689 l_line_adj_rec.attribute14 := p_header_adj_rec.attribute14;
4690 l_line_adj_rec.attribute15 := p_header_adj_rec.attribute15;
4691 l_line_adj_rec.attribute2 := p_header_adj_rec.attribute2;
4692 l_line_adj_rec.attribute3 := p_header_adj_rec.attribute3;
4693 l_line_adj_rec.attribute4 := p_header_adj_rec.attribute4;
4694 l_line_adj_rec.attribute5 := p_header_adj_rec.attribute5;
4695 l_line_adj_rec.attribute6 := p_header_adj_rec.attribute6;
4696 l_line_adj_rec.attribute7 := p_header_adj_rec.attribute7;
4697 l_line_adj_rec.attribute8 := p_header_adj_rec.attribute8;
4698 l_line_adj_rec.attribute9 := p_header_adj_rec.attribute9;
4699 l_line_adj_rec.automatic_flag :=p_header_adj_rec.automatic_flag;
4700 l_line_adj_rec.context := p_header_adj_rec.context;
4701 l_line_adj_rec.created_by := p_header_adj_rec.created_by;
4702 l_line_adj_rec.creation_date := p_header_adj_rec.creation_date;
4703 l_line_adj_rec.discount_id := p_header_adj_rec.discount_id;
4704 l_line_adj_rec.discount_line_id:=p_header_adj_rec.discount_line_id;
4705 l_line_adj_rec.header_id := p_header_adj_rec.header_id;
4706 l_line_adj_rec.last_updated_by := p_header_adj_rec.last_updated_by;
4707 l_line_adj_rec.last_update_date:= p_header_adj_rec.last_update_date;
4708 l_line_adj_rec.last_update_login:= p_header_adj_rec.last_update_login;
4709 l_line_adj_rec.line_id := p_header_adj_rec.line_id;
4710 l_line_adj_rec.percent := p_header_adj_rec.percent;
4711 l_line_adj_rec.price_adjustment_id := p_header_adj_rec.price_adjustment_id;
4712 l_line_adj_rec.program_application_id := p_header_adj_rec.program_application_id;
4713 l_line_adj_rec.program_id := p_header_adj_rec.program_id;
4714 l_line_adj_rec.program_update_date := p_header_adj_rec.program_update_date;
4715 l_line_adj_rec.request_id := p_header_adj_rec.request_id;
4716 l_line_adj_rec.return_status := p_header_adj_rec.return_status;
4717 l_line_adj_rec.db_flag := p_header_adj_rec.db_flag;
4718 l_line_adj_rec.operation := p_header_adj_rec.operation;
4719 l_line_adj_rec.list_header_id := p_header_adj_rec.list_header_id;
4720 l_line_adj_rec.list_line_id := p_header_adj_rec.list_line_id;
4721 l_line_adj_rec.list_line_type_code := p_header_adj_rec.list_line_type_code;
4722 l_line_adj_rec.modifier_mechanism_type_code := p_header_adj_rec.modifier_mechanism_type_code;
4723 l_line_adj_rec.modified_from := p_header_adj_rec.modified_from;
4724 l_line_adj_rec.modified_to := p_header_adj_rec.modified_to;
4725 l_line_adj_rec.updated_flag := p_header_adj_rec.updated_flag;
4726 l_line_adj_rec.update_allowed := p_header_adj_rec.update_allowed;
4727 l_line_adj_rec.applied_flag := p_header_adj_rec.applied_flag;
4728 l_line_adj_rec.change_reason_code := p_header_adj_rec.change_reason_code;
4729 l_line_adj_rec.change_reason_text := p_header_adj_rec.change_reason_text;
4730 l_line_adj_rec.operand := p_header_adj_rec.operand;
4731 l_line_adj_rec.operand_per_pqty := p_header_adj_rec.operand_per_pqty;
4732 l_line_adj_rec.arithmetic_operator := p_header_adj_rec.arithmetic_operator;
4733 l_line_adj_rec.adjusted_amount := p_header_adj_rec.adjusted_amount;
4734 l_line_adj_rec.adjusted_amount_per_pqty := p_header_adj_rec.adjusted_amount_per_pqty;
4735 l_line_adj_rec.pricing_phase_id := p_header_adj_rec.pricing_phase_id;
4736 l_line_adj_rec.cost_id := p_header_adj_rec.cost_id;
4737 l_line_adj_rec.tax_code := p_header_adj_rec.tax_code;
4738 l_line_adj_rec.tax_exempt_flag := p_header_adj_rec.tax_exempt_flag;
4739 l_line_adj_rec.tax_exempt_number := p_header_adj_rec.tax_exempt_number;
4740 l_line_adj_rec.tax_exempt_reason_code := p_header_adj_rec.tax_exempt_reason_code;
4741 l_line_adj_rec.parent_adjustment_id := p_header_adj_rec.parent_adjustment_id;
4742 l_line_adj_rec.invoiced_flag := p_header_adj_rec.invoiced_flag;
4743 l_line_adj_rec.estimated_flag := p_header_adj_rec.estimated_flag;
4744 l_line_adj_rec.inc_in_sales_performance := p_header_adj_rec.inc_in_sales_performance;
4745 l_line_adj_rec.split_action_code := p_header_adj_rec.split_action_code;
4746 l_line_adj_rec.charge_type_code := p_header_adj_rec.charge_type_code;
4747 l_line_adj_rec.charge_subtype_code := p_header_adj_rec.charge_subtype_code;
4748
4749 l_line_adj_rec.adjusted_amount := p_header_adj_rec.adjusted_amount;
4750 l_line_adj_rec.pricing_phase_id := p_header_adj_rec.pricing_phase_id;
4751 l_line_adj_rec.list_line_no := p_header_adj_rec.list_line_no;
4752 l_line_adj_rec.source_system_code := p_header_adj_rec.source_system_code;
4753 l_line_adj_rec.benefit_qty := p_header_adj_rec.benefit_qty;
4754 l_line_adj_rec.benefit_uom_code := p_header_adj_rec.benefit_uom_code;
4755 l_line_adj_rec.print_on_invoice_flag := p_header_adj_rec.print_on_invoice_flag;
4756 l_line_adj_rec.expiration_date := p_header_adj_rec.expiration_date;
4757 l_line_adj_rec.rebate_transaction_type_code := p_header_adj_rec.rebate_transaction_type_code;
4758 l_line_adj_rec.rebate_transaction_reference := p_header_adj_rec.rebate_transaction_reference;
4759 l_line_adj_rec.rebate_payment_system_code := p_header_adj_rec.rebate_payment_system_code;
4760 l_line_adj_rec.redeemed_date := p_header_adj_rec.redeemed_date;
4761 l_line_adj_rec.redeemed_flag := p_header_adj_rec.redeemed_flag;
4762 l_line_adj_rec.accrual_flag := p_header_adj_rec.accrual_flag;
4763 l_line_adj_rec.range_break_quantity := p_header_adj_rec.range_break_quantity;
4764 l_line_adj_rec.accrual_conversion_rate := p_header_adj_rec.accrual_conversion_rate;
4765 l_line_adj_rec.pricing_group_sequence := p_header_adj_rec.pricing_group_sequence;
4766 l_line_adj_rec.modifier_level_code := p_header_adj_rec.modifier_level_code;
4767 l_line_adj_rec.price_break_type_code := p_header_adj_rec.price_break_type_code;
4768 l_line_adj_rec.substitution_attribute := p_header_adj_rec.substitution_attribute;
4769 l_line_adj_rec.proration_type_code := p_header_adj_rec.proration_type_code;
4770 l_line_adj_rec.credit_or_charge_flag := p_header_adj_rec.credit_or_charge_flag;
4771 l_line_adj_rec.include_on_returns_flag := p_header_adj_rec.include_on_returns_flag;
4772 l_line_adj_rec.ac_attribute1 := p_header_adj_rec.ac_attribute1;
4773 l_line_adj_rec.ac_attribute10 := p_header_adj_rec.ac_attribute10;
4774 l_line_adj_rec.ac_attribute11 := p_header_adj_rec.ac_attribute11;
4775 l_line_adj_rec.ac_attribute12 := p_header_adj_rec.ac_attribute12;
4776 l_line_adj_rec.ac_attribute13 := p_header_adj_rec.ac_attribute13;
4777 l_line_adj_rec.ac_attribute14 := p_header_adj_rec.ac_attribute14;
4778 l_line_adj_rec.ac_attribute15 := p_header_adj_rec.ac_attribute15;
4779 l_line_adj_rec.ac_attribute2 := p_header_adj_rec.ac_attribute2;
4780 l_line_adj_rec.ac_attribute3 := p_header_adj_rec.ac_attribute3;
4781 l_line_adj_rec.ac_attribute4 := p_header_adj_rec.ac_attribute4;
4782 l_line_adj_rec.ac_attribute5 := p_header_adj_rec.ac_attribute5;
4783 l_line_adj_rec.ac_attribute6 := p_header_adj_rec.ac_attribute6;
4784 l_line_adj_rec.ac_attribute7 := p_header_adj_rec.ac_attribute7;
4785 l_line_adj_rec.ac_attribute8 := p_header_adj_rec.ac_attribute8;
4786 l_line_adj_rec.ac_attribute9 := p_header_adj_rec.ac_attribute9;
4787 l_line_adj_rec.ac_context := p_header_adj_rec.ac_context;
4788 l_line_adj_rec.invoiced_amount := p_header_adj_rec.invoiced_amount;
4789
4790 RETURN l_line_adj_rec;
4791
4792 END Convert_Hdr_Adj_To_Line_Adj;
4793
4794 Procedure Append_Adjustment_Attribs(
4795 px_Line_Adj_Att_Tbl in out nocopy OE_Order_Pub.line_adj_att_tbl_Type
4796 ,p_price_adjustment_id number
4797 ,p_adj_index pls_integer
4798 )
4799 is
4800 l_Line_Adj_Att_Tbl OE_Order_Pub.line_adj_att_tbl_Type;
4801 i pls_integer;
4802 begin
4803
4804 Oe_Line_Price_Aattr_util.Query_Rows(
4805 p_price_adjustment_id => p_price_adjustment_id
4806 , x_Line_Adj_Att_Tbl => l_Line_Adj_Att_Tbl
4807 );
4808
4809 i:= L_Line_Adj_Att_Tbl.First;
4810 While i is not null loop
4811
4812 L_Line_Adj_Att_Tbl(i).operation := OE_GLOBALS.G_OPR_CREATE;
4813 L_Line_Adj_Att_Tbl(i).price_adjustment_id := fnd_api.g_miss_num;
4814 L_Line_Adj_Att_Tbl(i).adj_index := p_adj_index;
4815 L_Line_Adj_Att_Tbl(i).price_adj_attrib_id := fnd_api.g_miss_num;
4816
4817 px_Line_Adj_Att_Tbl(px_Line_Adj_Att_Tbl.count+1) := L_Line_Adj_Att_Tbl(i);
4818
4819 i:= L_Line_Adj_Att_Tbl.Next(i);
4820
4821 end loop;
4822
4823 end Append_Adjustment_Attribs;
4824
4825 Procedure Prorate_Lumpsum (
4826 px_line_adj_rec IN OUT NOCOPY OE_Order_Pub.Line_AdJ_Rec_Type
4827 , p_to_line_id IN NUMBER
4828 , x_copy_from_line_adj_rec OUT NOCOPY OE_Order_Pub.Line_Adj_Rec_Type
4829
4830 )
4831 IS
4832 l_ordered_quantity NUMBER;
4833 l_sign NUMBER;
4834 l_pricing_quantity NUMBER;
4835 --
4836 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4837 --
4838 Begin
4839 IF l_debug_level > 0 THEN
4840 oe_debug_pub.add( 'ENTERING PROCEDURE PRORATE_LUMPSUM' ) ;
4841 END IF;
4842
4843 If px_line_adj_rec.operand = 0 or px_line_adj_rec.operand is null Then
4844 IF l_debug_level > 0 THEN
4845 oe_debug_pub.add( ' NOTHING TO PRORATE , OPERAND IS 0' ) ;
4846 END IF;
4847 x_copy_from_line_adj_rec.operation := OE_GLOBALS.G_OPR_NONE;
4848 Return;
4849 End If;
4850
4851 IF (px_line_adj_rec.list_line_type_code='DIS') THEN
4852 l_sign := -1;
4853 ELSE
4854 l_sign := 1;
4855 END IF;
4856
4857 -- First correct the copy_from line adj record
4858 SELECT ordered_quantity,pricing_quantity
4859 INTO l_ordered_quantity,
4860 l_pricing_quantity
4861 FROM oe_order_lines_all
4862 WHERE line_id = px_line_adj_rec.line_id;
4863
4864 If (round(abs(px_line_adj_rec.operand) -
4865 abs(l_ordered_quantity * px_line_adj_rec.adjusted_amount/ px_line_adj_rec.operand),20))
4866 <> 0
4867 THEN
4868 IF l_debug_level > 0 THEN
4869 oe_debug_pub.add( 'OPERAND'||PX_LINE_ADJ_REC.OPERAND ||'<>'||L_ORDERED_QUANTITY||'*'||PX_LINE_ADJ_REC.ADJUSTED_AMOUNT ) ;
4870 END IF;
4871
4872 x_copy_from_line_adj_rec := px_line_adj_rec;
4873 x_copy_from_line_adj_rec.operation := oe_globals.g_opr_update;
4874 x_copy_from_line_adj_rec.operand := l_ordered_quantity
4875 * x_copy_from_line_adj_rec.adjusted_amount * l_sign;
4876
4877
4878 x_copy_from_line_adj_rec.operand_per_pqty := l_pricing_quantity
4879 *x_copy_from_line_adj_rec.adjusted_amount_per_pqty*l_sign;
4880
4881 x_copy_from_line_adj_rec.operand_per_pqty:=nvl(x_copy_from_line_adj_rec.operand_per_pqty,
4882 x_copy_from_line_adj_rec.operand);
4883
4884 IF l_debug_level > 0 THEN
4885 oe_debug_pub.add( ' PRORATED ADJUSTED_AMOUNT_PER_PQTY:'||X_COPY_FROM_LINE_ADJ_REC.ADJUSTED_AMOUNT_PER_PQTY ) ;
4886 oe_debug_pub.add( ' PRORATED ADJUSTED_AMOUNT:'||X_COPY_FROM_LINE_ADJ_REC.ADJUSTED_AMOUNT ) ;
4887 END IF;
4888
4889 ELSE
4890 x_copy_from_line_adj_rec.operation := OE_GLOBALS.G_OPR_NONE;
4891 END IF;
4892
4893 -- Then correct the copy_to line adj record
4894 SELECT ordered_quantity
4895 INTO l_ordered_quantity
4896 FROM oe_order_lines_all
4897 WHERE line_id = p_to_line_id;
4898
4899 IF (round(abs(px_line_adj_rec.operand) -
4900 abs(l_ordered_quantity * px_line_adj_rec.adjusted_amount/ px_line_adj_rec.operand),20))
4901 <> 0
4902
4903 THEN
4904
4905 px_line_adj_rec.operand := l_ordered_quantity
4906 * px_line_adj_rec.adjusted_amount
4907 * l_sign;
4908
4909 px_line_adj_rec.operand_per_pqty := NULL;
4910
4911 END IF;
4912
4913 IF l_debug_level > 0 THEN
4914 oe_debug_pub.add( 'LEAVING PROCEDURE PRORATE_LUMPSUM' ) ;
4915 END IF;
4916 EXCEPTION
4917
4918 WHEN OTHERS THEN
4919
4920 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4921 THEN
4922 OE_MSG_PUB.Add_Exc_Msg
4923 ( G_PKG_NAME
4924 , 'Update_Row'
4925 );
4926 END IF;
4927 IF l_debug_level > 0 THEN
4928 oe_debug_pub.add( 'EXCEPTION IN PRORATE_LUMPSUM'||SQLERRM , 2 ) ;
4929 END IF;
4930 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4931
4932 End Prorate_Lumpsum;
4933
4934 Procedure Append_Adjustment_Lines(
4935 p_header_id Number default null,
4936 p_line_id Number default null,
4937 p_to_line_id Number default null,
4938 p_to_header_id Number default null,
4939 p_operation varchar2,
4940 p_line_category_code varchar2,
4941 p_split_by varchar2 default null,
4942 px_Line_Adj_Att_Tbl in out nocopy OE_Order_Pub.line_adj_att_tbl_Type,
4943 px_Line_Adj_Tbl in out nocopy OE_Order_Pub.Line_Adj_Tbl_Type,
4944 px_line_adj_assoc_tbl in out nocopy OE_Order_PUB.Line_Adj_Assoc_tbl_type,
4945 --RT{
4946 p_mode varchar2 default null,
4947 p_retrobill_request_id in Varchar2 default null,
4948 p_key_line_id in Number default null
4949 --RT}
4950 )
4951 is
4952 l_Line_Adj_Tbl OE_Order_Pub.Line_Adj_Tbl_Type;
4953 i pls_integer;
4954 l_has_pbh VARCHAR2(1):='N';
4955 l_pbh_tbl Pbh_Tbl_Type;
4956 cnt Pls_Integer:=0;
4957 l_copy_from_line_adj_rec OE_Order_pub.Line_Adj_Rec_Type;
4958 --
4959 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4960 --
4961 l_from_line_category VARCHAR2(100);
4962 --RT{
4963 l_ulp NUMBER;
4964 cursor get_ulp(p_line_id IN NUMBER) IS
4965 SELECT UNIT_LIST_PRICE
4966 FROM OE_ORDER_LINES_ALL
4967 WHERE LINE_ID = p_line_id;
4968 l_sign PLS_INTEGER:=1;
4969 l_line_id NUMBER;
4970 l_header_id NUMBER;
4971 l_has_retrobilled_before Varchar2(1):='N';
4972 --RT}
4973 l_charges_for_backorders VARCHAR2(1):=NVL(FND_PROFILE.VALUE('ONT_CHARGES_FOR_BACKORDERS'),'N');
4974 begin
4975
4976 IF l_debug_level > 0 THEN
4977 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.APPEND_ADJUSTMENT_LINES' , 1 ) ;
4978 oe_debug_pub.add(' operation:'|| p_operation);
4979 END IF;
4980
4981
4982 -- Manish Changes
4983 if p_line_id is not null then
4984
4985 IF OE_CODE_CONTROL.Get_Code_Release_Level >= '110510' and
4986 p_operation <> OE_GLOBALS.G_OPR_DELETE THEN
4987 --RT{
4988 --we need to retrieve the latest adjustments if it is a retrobilled line
4989 --call retrobill api to get the retrobill line id, if none l_line_id will
4990 --set to the same value as p_line_id
4991
4992 Oe_Retrobill_Pvt.Get_Last_Retro_LinID(p_line_id=>p_line_id,
4993 x_line_id=>l_line_id);
4994
4995 if nvl(p_line_id,-1) <> nvl(l_line_id,-1) then
4996 --Old id and new id difference, line has been retrobilled multiple times
4997 --new id is actullay a retrobill line, not a regular line.
4998 --we just need to copy adjustment with retrobill_request_id is not null
4999 --from this retrobill line over.
5000 l_has_retrobilled_before:='Y';
5001 end if;
5002
5003 --RT}
5004 OE_Version_History_Util.Query_Rows
5005 ( p_line_id => l_line_id
5006 , p_version_number => OE_ORDER_COPY_UTIL.G_LN_VER_NUMBER
5007 , p_phase_change_flag => OE_ORDER_COPY_UTIL.G_LN_PHASE_CHANGE_FLAG
5008 , x_Line_Adj_Tbl => l_Line_Adj_Tbl);
5009
5010 If l_debug_level > 0 Then
5011 oe_debug_pub.add(' input line id to retro api:'||p_line_id||' output line id:'|| l_line_id);
5012 oe_debug_pub.add(' l_line_adj_tbl.count from versioning:'|| l_Line_Adj_Tbl.count);
5013 End If;
5014
5015 ELSE
5016 oe_debug_pub.add('pre 11510, using old query row');
5017 OE_Line_Adj_Util.Query_Rows(p_Line_Id => p_line_id
5018 , x_Line_Adj_Tbl => l_Line_Adj_Tbl);
5019 END IF;
5020
5021 else
5022 -- l_Line_Adj_Tbl := OE_Line_Adj_Util.Query_Rows(p_header_Id => p_header_id);
5023 IF OE_CODE_CONTROL.Get_Code_Release_Level >= '110510' and
5024 p_operation <> OE_GLOBALS.G_OPR_DELETE THEN
5025 --RT{
5026 Oe_Retrobill_Pvt.Get_Last_Retro_HdrID(p_header_id=>p_header_id,
5027 x_header_id=>l_header_id);
5028 if nvl(p_header_id,-1) <> nvl(l_header_id,-1) then
5029 l_has_retrobilled_before:='Y';
5030 end if;
5031 --RT}
5032
5033 OE_Version_History_Util.Query_Rows
5034 ( p_header_id => l_header_id
5035 , p_version_number => OE_ORDER_COPY_UTIL.G_LN_VER_NUMBER
5036 , p_phase_change_flag => OE_ORDER_COPY_UTIL.G_LN_PHASE_CHANGE_FLAG
5037 , x_Line_Adj_Tbl => l_Line_Adj_Tbl);
5038
5039 If l_debug_level > 0 Then
5040 oe_debug_pub.add(' input Header id to retro api:'||p_header_id||' output Header id:'|| l_header_id);
5041 oe_debug_pub.add(' l_line_adj_tbl.count from versioning:'|| l_Line_Adj_Tbl.count);
5042 End If;
5043
5044 ELSE
5045 OE_Line_Adj_Util.Query_Rows(p_header_Id => p_header_id
5046 , x_Line_Adj_Tbl => l_Line_Adj_Tbl);
5047 END IF;
5048 End If;
5049
5050 i:= l_Line_Adj_Tbl.First;
5051 While i is not Null Loop
5052
5053
5054 If p_operation = OE_GLOBALS.G_OPR_DELETE then
5055
5056 l_Line_Adj_Tbl(i).operation := p_operation;
5057 px_line_adj_tbl(px_line_adj_tbl.count+1) := L_Line_Adj_Tbl(i);
5058
5059 Else
5060
5061 /* Modified IF condition to process only Line Level Freight Charges for Bug # 1559906 */
5062 -- bug 1937110, added type 'IUE'.
5063 oe_debug_pub.add('Retro:list line type code:'||l_Line_Adj_Tbl(i).list_line_type_code);
5064
5065 --RT{
5066 IF NOT(nvl(p_mode,'xx-') = 'RETROBILL' and l_Line_Adj_Tbl(i).list_line_type_code = 'FREIGHT_CHARGE') AND
5067 NOT (l_has_retrobilled_before = 'Y' and l_line_adj_tbl(i).retrobill_request_id IS NULL)
5068 THEN
5069 --skip processing, freigh charge is not supported for retrobilling
5070 --skip processing if we copy adjustment from a retrobill order and retrobill request id is null
5071 --we just want to copy over where retrobill request id is not null if it is a retrobill line
5072 --RT}
5073 If (l_Line_Adj_Tbl(i).list_line_type_code in ('DIS','SUR', 'PBH', 'IUE'))
5074 or (l_Line_Adj_Tbl(i).list_line_type_code = 'FREIGHT_CHARGE' and l_Line_Adj_Tbl(i).line_id is not null) then
5075 If l_line_adj_tbl(i).list_line_type_code = 'PBH' Then
5076 l_has_pbh := 'Y';
5077 --l_pbh_tbl store the index that has pbh adj line
5078 cnt := cnt + 1;
5079 l_pbh_tbl(cnt):=px_line_adj_tbl.count+1;
5080 End If;
5081 -- FP bug3337324
5082 -- changed for the bug 3479388
5083 If l_Line_Adj_Tbl(i).list_line_type_code ='FREIGHT_CHARGE' and
5084 (p_line_category_code = 'RETURN' and
5085 (NVL(l_Line_Adj_Tbl(i).include_on_returns_flag,'N') <> 'Y' OR
5086 NVL(l_Line_Adj_Tbl(i).applied_flag,'N') = 'N' )) OR
5087 (p_split_by = 'SYSTEM' and l_charges_for_backorders = 'N' and
5088 l_line_adj_tbl(i).arithmetic_operator = 'LUMPSUM') then
5089 oe_debug_pub.add('No Charges are Copied');
5090 Null;
5091 Else
5092
5093 -- prorate lumpsum
5094 IF (l_line_adj_tbl(i).modifier_level_code='LINE'
5095 and l_line_adj_tbl(i).arithmetic_operator = 'LUMPSUM')
5096 THEN
5097 IF l_debug_level > 0 THEN
5098 oe_debug_pub.add( ' P_HEADER_ID:'||P_HEADER_ID|| 'P_TO_HEADER_ID:'||P_TO_HEADER_ID ) ;
5099 oe_debug_pub.add( ' P_SPLIT_BY:'||P_SPLIT_BY ) ;
5100 END IF;
5101 --BTEA
5102 --Only when split we need to do this.
5103 --during split we will have same to_ and from_ header_id
5104 --and split_by column is not null
5105 If p_to_header_id = p_header_id
5106 AND p_split_by is Not NULL
5107 Then
5108 -- added for the bug 3479388
5109 IF NOT (p_split_by = 'SYSTEM' and l_charges_for_backorders = 'Y'
5110 and l_Line_Adj_Tbl(i).list_line_type_code = 'FREIGHT_CHARGE') THEN -- 7363214
5111 Prorate_Lumpsum(l_line_adj_tbl(i),
5112 p_to_line_id,
5113 l_copy_from_line_adj_rec);
5114
5115 IF l_copy_from_line_adj_rec.operation
5116 = OE_GLOBALS.G_OPR_UPDATE THEN
5117 IF l_debug_level > 0 THEN
5118 oe_debug_pub.add( ' UPDATING OPERAND FOR LINE ID:'||L_COPY_FROM_LINE_ADJ_REC.LINE_ID ) ;
5119 END IF;
5120 px_line_adj_tbl(px_line_adj_tbl.count+1)
5121 := l_copy_from_line_adj_rec;
5122 END IF;
5123 END IF;
5124 End If;
5125 End If;
5126
5127 Append_Adjustment_Attribs(
5128 px_Line_Adj_Att_Tbl => px_Line_Adj_Att_Tbl
5129 ,p_price_adjustment_id => l_Line_Adj_Tbl(i).price_adjustment_id
5130 ,p_adj_index => px_line_adj_tbl.count+1
5131 );
5132
5133 l_Line_Adj_Tbl(i).operation := p_operation;
5134
5135 -- lkxu, fix bug 1623316
5136 -- don't populate line_id field if it is a HEADER level adjustment
5137
5138 --removed if condn.
5139 l_Line_Adj_Tbl(i).line_id := p_to_line_id;
5140
5141 /* Fixing Bug 2075878 */
5142 IF l_line_adj_tbl(i).modifier_level_code = 'ORDER' THEN
5143 l_Line_Adj_Tbl(i).modifier_level_code := 'LINE';
5144 --RT{
5145 IF l_Line_Adj_Tbl(i).arithmetic_operator = '%' THEN
5146 open get_ulp(p_key_line_id);
5147 fetch get_ulp INTO l_ulp;
5148 close get_ulp;
5149 oe_debug_pub.add('pviprana: l_ulp :' || l_ulp);
5150 --bug3392650 ( Changed the condition l_Line_Adj_Tbl(i).adjusted_amount < 0)
5151 IF (l_Line_Adj_Tbl(i).list_line_type_code = 'DIS') THEN
5152 l_sign := -1;
5153 ELSE
5154 l_sign := 1;
5155 END IF;
5156 --bug3392650 Calculating adjusted amount only if l_ulp is not null
5157 oe_debug_pub.add('pviprana: adjusted amt'||l_Line_Adj_Tbl(i).adjusted_amount);
5158 IF(l_ulp IS NOT NULL ) THEN
5159 l_Line_Adj_Tbl(i).adjusted_amount:= (l_Line_Adj_Tbl(i).operand/100) * l_ulp *l_sign;
5160 END IF;
5161 oe_debug_pub.add('Converting Order level to line, unit list price:'|| l_ulp);
5162 oe_debug_pub.add('Adjusted amount:'||l_Line_Adj_Tbl(i).adjusted_amount);
5163 END IF;
5164 --RT}
5165 END IF;
5166
5167 -- l_Line_Adj_Tbl(i).line_id := p_to_line_id;
5168 l_Line_Adj_Tbl(i).Header_id := p_to_Header_id;
5169 l_Line_Adj_Tbl(i).invoiced_flag := 'N';
5170 l_Line_Adj_Tbl(i).invoiced_amount := null; --bug 5241848
5171 -- l_Line_Adj_Tbl(i).price_adjustment_id := fnd_api.g_miss_num;
5172
5173 -- Check for refndable charges on return lines. If the charge is
5174 -- refundable then it should be created as a credit.
5175
5176 -- Commented for 7683779 Start
5177 /*
5178 --Added for bug 7328969 Start
5179 select line_category_code into l_from_line_category
5180 from oe_order_lines_all
5181 where line_id = p_line_id ;
5182
5183 oe_debug_pub.add('p_line_category_code :'||p_line_category_code);
5184 oe_debug_pub.add('l_from_line_category :'||l_from_line_category);
5185 oe_debug_pub.add('l_Line_Adj_Tbl(i).credit_or_charge_flag :'||l_Line_Adj_Tbl(i).credit_or_charge_flag);
5186
5187 --Added for bug 7328969 End
5188 */
5189 -- Commented for 7683779 End
5190
5191 If l_Line_Adj_Tbl(i).list_line_type_code ='FREIGHT_CHARGE'
5192 THEN
5193 --Added for bug 7683779 Start
5194 select line_category_code into l_from_line_category
5195 from oe_order_lines_all
5196 where line_id = p_line_id ;
5197
5198 IF l_debug_level > 0 THEN
5199 oe_debug_pub.add('p_line_category_code :'||p_line_category_code);
5200 oe_debug_pub.add('l_from_line_category :'||l_from_line_category);
5201 oe_debug_pub.add('l_Line_Adj_Tbl(i).credit_or_charge_flag :'||l_Line_Adj_Tbl(i).credit_or_charge_flag);
5202 END IF;
5203
5204 --Added for bug 7683779 End
5205
5206 --Modified for bug 7328969 Start
5207 --IF p_line_category_code = 'RETURN' THEN
5208 IF (p_line_category_code = 'RETURN' AND l_from_line_category= 'ORDER' ) OR
5209 ( l_from_line_category = 'RETURN' and p_line_category_code = 'ORDER') THEN
5210
5211 --Modified for bug 7328969 End
5212
5213 If l_Line_Adj_Tbl(i).credit_or_charge_flag = 'C' THEN
5214 l_Line_Adj_Tbl(i).credit_or_charge_flag := 'D';
5215 ELSE
5216 l_Line_Adj_Tbl(i).credit_or_charge_flag := 'C';
5217 END IF;
5218
5219 oe_debug_pub.add('l_Line_Adj_Tbl(i).credit_or_charge_flag :'||l_Line_Adj_Tbl(i).credit_or_charge_flag);
5220
5221 l_Line_Adj_Tbl(i).updated_flag := 'Y';
5222 l_Line_Adj_Tbl(i).change_reason_code := 'MISC';
5223 l_Line_Adj_Tbl(i).change_reason_text := 'Reversing Credit';
5224 ELSE
5225 /* commented out nocopy the following 3 lines to fix the bug 2594720
5226
5227
5228 l_Line_Adj_Tbl(i).updated_flag := 'N';
5229 l_Line_Adj_Tbl(i).change_reason_code := NULL;
5230 l_Line_Adj_Tbl(i).change_reason_text := NULL;
5231 */
5232 NULL;
5233
5234 /* Added the following code to fix the bug 2888990 */
5235 --Commented for bug 7328969 Start
5236 /*select line_category_code into l_from_line_category
5237 from oe_order_lines_all
5238 where line_id = p_line_id ;*/
5239 --Commented for bug 7328969 End
5240
5241 if l_from_line_category = 'RETURN' and p_line_category_code = 'ORDER' THEN
5242 If l_Line_Adj_Tbl(i).credit_or_charge_flag = 'C' THEN
5243 l_Line_Adj_Tbl(i).credit_or_charge_flag := 'D';
5244 ELSE
5245 l_Line_Adj_Tbl(i).credit_or_charge_flag := 'C';
5246 END IF;
5247
5248 l_Line_Adj_Tbl(i).updated_flag := 'Y';
5249 l_Line_Adj_Tbl(i).change_reason_code := 'MISC';
5250 l_Line_Adj_Tbl(i).change_reason_text := 'Reversing Credit';
5251 end if;
5252 /* End of code for the bug 2888990 */
5253
5254
5255 END IF;
5256 END IF;
5257
5258 px_line_adj_tbl(px_line_adj_tbl.count+1) := L_Line_Adj_Tbl(i);
5259
5260 end if; -- For Freight charges
5261
5262 End If; -- Copy only certain list line types
5263 --RT{
5264 END IF; --check Retrobill and freight
5265 --RT}
5266 End if; -- operation=g_opr_delete
5267
5268 i:= l_Line_Adj_Tbl.Next(i);
5269
5270 end loop;
5271
5272 If l_has_pbh = 'Y' Then
5273 Append_Association(p_line_adj_tbl => px_line_adj_tbl,
5274 px_line_adj_assoc_tbl => px_line_adj_assoc_tbl,
5275 p_pbh_tbl => l_pbh_tbl);
5276 End If;
5277
5278 IF (p_operation = OE_GLOBALS.G_OPR_CREATE) and l_Line_Adj_Tbl.count > 0 THEN
5279 I:=px_line_adj_tbl.first;
5280 while I is not null loop
5281 IF (px_line_adj_tbl(i).operation = OE_GLOBALS.G_OPR_CREATE) THEN
5282 px_line_adj_tbl(i).price_adjustment_id:=fnd_api.g_miss_num;
5283 --RT{
5284 oe_debug_pub.add('operand:'||px_line_adj_tbl(i).operand);
5285 oe_debug_pub.add('operand per pqty:'||px_line_adj_tbl(i).operand_per_pqty);
5286 oe_debug_pub.add('Retro:p_mode:'||p_mode);
5287 IF nvl(p_mode,'NULLMODE') = 'RETROBILL' THEN
5288 IF px_line_adj_tbl(i).retrobill_request_id IS NOT NULL
5289 and px_line_adj_tbl(i).applied_flag = 'N' THEN
5290 --applied flag needs to remain 'Y'. Becomes 'N' only after
5291 --the pricing engine call
5292 px_line_adj_tbl(i).applied_flag := 'Y';
5293 END IF;
5294
5295 --replace with new retrobill request id.
5296 px_line_adj_tbl(i).retrobill_request_id:= p_retrobill_request_id;
5297
5298 --px_line_adj_tbl(i).applied_flag:='N';
5299 oe_debug_pub.add('RETRO:ADJ:Copied list line id:'|| px_line_adj_tbl(i).list_line_id);
5300 oe_debug_pub.add('RETRO:ADJ:Operand:'|| px_line_adj_tbl(i).operand);
5301 oe_debug_pub.add('RETRO:ADJ:Operand pqty:'||px_line_adj_tbl(i).operand_per_pqty);
5302 END IF;
5303 --RT}
5304 END IF;
5305 I:=px_line_adj_tbl.next(I);
5306 end loop;
5307 END IF;
5308
5309 IF l_debug_level > 0 THEN
5310 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.APPEND_ADJUSTMENT_LINES' , 1 ) ;
5311 END IF;
5312
5313 end Append_Adjustment_Lines;
5314
5315 Procedure copy_adjustment_lines(
5316 p_from_line_id number
5317 ,p_to_line_id number
5318 ,p_from_Header_id number
5319 ,p_to_Header_id number
5320 ,p_line_category_code varchar2
5321 ,p_split_by varchar2 default null
5322 ,p_booked_flag varchar2 default null
5323 ,p_mode varchar2 default null
5324 --RT{
5325 ,p_retrobill_request_id Number default null
5326 --RT}
5327 ,x_return_status out nocopy varchar2
5328
5329 )
5330 is
5331 l_Header_Adj_tbl oe_order_pub.Header_adj_tbl_type;
5332 l_Line_Adj_tbl oe_order_pub.Line_adj_tbl_type;
5333 l_control_rec Oe_Globals.Control_rec_type;
5334 l_Line_Adj_Att_tbl OE_Order_PUB.Line_Adj_Att_tbl_type;
5335 l_Line_Adj_Assoc_tbl OE_Order_PUB.Line_Adj_Assoc_tbl_type;
5336 -- l_x_header_rec OE_Order_PUB.Header_Rec_Type;
5337 l_header_rec OE_Order_PUB.Header_Rec_Type;
5338 l_x_Header_Adj_tbl OE_Order_PUB.Header_Adj_Tbl_Type;
5339 l_x_Header_Scredit_tbl OE_Order_PUB.Header_Scredit_Tbl_Type;
5340 l_x_line_tbl OE_Order_PUB.Line_Tbl_Type;
5341 l_line_tbl OE_Order_PUB.Line_Tbl_Type;
5342 l_x_Line_Adj_tbl OE_Order_PUB.Line_Adj_Tbl_Type;
5343 l_x_Line_Scredit_tbl OE_Order_PUB.Line_Scredit_Tbl_Type;
5344 l_x_action_request_tbl OE_Order_PUB.request_tbl_type;
5345 l_x_lot_serial_tbl OE_Order_PUB.lot_serial_tbl_type;
5346 l_x_Header_price_Att_tbl OE_Order_PUB.Header_price_Att_tbl_type;
5347 l_x_Header_Adj_Att_tbl OE_Order_PUB.Header_Adj_Att_tbl_type;
5348 l_x_Header_Adj_Assoc_tbl OE_Order_PUB.Header_Adj_Assoc_tbl_type;
5349 l_x_Line_price_Att_tbl OE_Order_PUB.Line_price_Att_tbl_type;
5350 l_x_Line_Adj_Att_tbl OE_Order_PUB.Line_Adj_Att_tbl_type;
5351 l_x_Line_Adj_Assoc_tbl OE_Order_PUB.Line_Adj_Assoc_tbl_type;
5352 l_x_msg_count number;
5353 l_x_msg_data Varchar2(2000);
5354 i pls_integer;
5355 --serla begin
5356 l_x_Header_Payment_tbl OE_Order_PUB.Header_Payment_Tbl_Type;
5357 l_x_Line_Payment_tbl OE_Order_PUB.Line_Payment_Tbl_Type;
5358 --serla end
5359 --
5360 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5361 --
5362 begin
5363 IF l_debug_level > 0 THEN
5364 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.COPY_ADJUSTMENT_LINES' , 1 ) ;
5365 oe_debug_pub.add( 'SPLIT BY:'||P_SPLIT_BY ) ;
5366 END IF;
5367 -- Set the existing rows to delete
5368 Append_Adjustment_Lines(
5369 p_line_id => p_to_line_id
5370 ,p_operation => OE_GLOBALS.G_OPR_DELETE
5371 ,p_line_category_code => p_line_category_code
5372 ,px_Line_Adj_Att_Tbl => l_Line_Adj_Att_Tbl
5373 ,px_Line_Adj_Tbl => l_Line_Adj_tbl
5374 ,px_line_adj_assoc_tbl => l_line_adj_assoc_tbl);
5375
5376 Append_Adjustment_Lines(p_header_id => p_from_header_id
5377 ,p_line_id => p_from_line_id
5378 ,p_to_line_id => p_to_line_id
5379 ,p_to_Header_id => p_to_Header_id
5380 ,p_line_category_code => p_line_category_code
5381 ,p_operation => OE_GLOBALS.G_OPR_CREATE
5382 ,p_split_by => p_split_by
5383 ,px_Line_Adj_Att_Tbl => l_Line_Adj_Att_Tbl
5384 ,px_Line_Adj_Tbl => l_Line_Adj_tbl
5385 ,px_line_adj_assoc_tbl => l_line_adj_assoc_tbl
5386 --RT{
5387 ,p_mode =>p_mode
5388 ,p_retrobill_request_id=>p_retrobill_request_id);
5389 --RT});
5390 --RT{
5391 IF nvl(p_mode,'xx-') = 'RETROBILL' THEN
5392 OE_ORDER_COPY_UTIL.G_ORDER_LEVEL_COPY :=0;
5393 END IF;
5394 --RT}
5395 -- Append Header level adjustments only if the order is different
5396 /* Modified the following if condition to fix the bug 2170086 */
5397 oe_debug_pub.add('pviprana: p_from_header_id'||p_from_header_id);
5398 oe_debug_pub.add('pviprana: p_to_header_id'||p_to_header_id);
5399 oe_debug_pub.add('pviprana: p_from_line_id'||p_from_line_id);
5400 oe_debug_pub.add('pviprana: p_to_line_id'||p_to_line_id);
5401 If p_from_Header_id <> p_to_Header_id and
5402 OE_ORDER_COPY_UTIL.G_ORDER_LEVEL_COPY = 0 then
5403 --bug3392650 passing an extra parameter p_key_line_id if the mode is 'RETROBILL' so that l_ulp is obtained properly in
5404 --append_adjustment_lines when the order level modifier is being converted to line level.
5405 IF nvl(p_mode,'xx-') = 'RETROBILL' THEN
5406 Append_Adjustment_Lines(
5407 p_Header_id => p_from_Header_id
5408 ,p_to_line_id => p_to_line_id
5409 ,p_to_Header_id => p_to_Header_id
5410 ,p_line_category_code => p_line_category_code
5411 ,p_operation => OE_GLOBALS.G_OPR_CREATE
5412 ,px_Line_Adj_Att_Tbl => l_Line_Adj_Att_Tbl
5413 ,px_Line_Adj_Tbl => l_Line_Adj_tbl
5414 ,px_line_adj_assoc_tbl => l_line_adj_assoc_tbl
5415 --RT{
5416 ,p_key_line_id => p_from_line_id
5417 ,p_mode =>p_mode
5418 ,p_retrobill_request_id=>p_retrobill_request_id
5419 --RT}
5420 );
5421 ELSE
5422 Append_Adjustment_Lines(
5423 p_Header_id => p_from_Header_id
5424 ,p_to_line_id => p_to_line_id
5425 ,p_to_Header_id => p_to_Header_id
5426 ,p_line_category_code => p_line_category_code
5427 ,p_operation => OE_GLOBALS.G_OPR_CREATE
5428 ,px_Line_Adj_Att_Tbl => l_Line_Adj_Att_Tbl
5429 ,px_Line_Adj_Tbl => l_Line_Adj_tbl
5430 ,px_line_adj_assoc_tbl => l_line_adj_assoc_tbl
5431 );
5432 END IF;
5433
5434
5435
5436 End If;
5437 If
5438 l_Line_Adj_tbl.count > 0 or
5439 l_Line_Adj_att_tbl.count > 0
5440 Then
5441
5442 -- set control record
5443 l_control_rec.controlled_operation := TRUE;
5444 l_control_rec.write_to_DB := TRUE;
5445 l_control_rec.change_attributes := TRUE;
5446 l_control_rec.default_attributes := TRUE;
5447 l_control_rec.validate_entity := TRUE;
5448 l_control_rec.clear_dependents := TRUE;
5449
5450 l_control_rec.process := FALSE;
5451 l_control_rec.clear_api_cache := FALSE;
5452 l_control_rec.clear_api_requests := FALSE;
5453
5454
5455 -- Call OE_Order_PVT.Process_order
5456
5457 IF l_debug_level > 0 THEN
5458 oe_debug_pub.add( 'BEFORE OE_ORDER_PVT.PROCESS_ORDER'||L_LINE_ADJ_TBL.COUNT , 1 ) ;
5459 END IF ;
5460
5461 OE_Globals.G_PRICING_RECURSION := 'Y';
5462
5463 OE_Order_PVT.Process_order
5464 ( p_api_version_number => 1.0
5465 , x_return_status => x_return_status
5466 , x_msg_count => l_x_msg_count
5467 , x_msg_data => l_x_msg_data
5468 , p_control_rec => l_control_rec
5469 , p_x_Line_Adj_tbl => l_Line_Adj_tbl
5470 , p_x_Line_Adj_att_tbl => l_Line_Adj_att_tbl
5471 -- , x_header_rec => l_x_header_rec
5472 , p_x_header_rec => l_header_rec
5473 , p_x_Header_Adj_tbl => l_x_Header_Adj_tbl
5474 , p_x_header_price_att_tbl => l_x_header_price_att_tbl
5475 , p_x_Header_Adj_att_tbl => l_x_Header_Adj_att_tbl
5476 , p_x_Header_Adj_Assoc_tbl => l_x_Header_Adj_Assoc_tbl
5477 , p_x_Header_Scredit_tbl => l_x_Header_Scredit_tbl
5478 --serla begin
5479 , p_x_Header_Payment_tbl => l_x_Header_Payment_tbl
5480 --serla end
5481 -- , p_x_line_tbl => l_x_line_tbl
5482 , p_x_line_tbl => l_line_tbl
5483 -- , x_Line_Adj_tbl => l_x_Line_Adj_tbl
5484 , p_x_Line_Price_att_tbl => l_x_Line_Price_att_tbl
5485 -- , x_Line_Adj_att_tbl => l_x_Line_Adj_att_tbl
5486 -- , x_Line_Adj_Assoc_tbl => l_x_Line_Adj_Assoc_tbl
5487 , p_x_Line_Adj_Assoc_tbl => l_Line_Adj_Assoc_tbl
5488 , p_x_Line_Scredit_tbl => l_x_Line_Scredit_tbl
5489 --serla begin
5490 , p_x_Line_Payment_tbl => l_x_Line_Payment_tbl
5491 --serla end
5492 , p_x_Lot_Serial_tbl => l_x_Lot_Serial_Tbl
5493 , p_x_action_request_tbl => l_x_Action_Request_tbl
5494 );
5495
5496 OE_Globals.G_PRICING_RECURSION := 'N';
5497
5498
5499 End If;
5500
5501 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5502 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5503 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
5504 RAISE FND_API.G_EXC_ERROR;
5505 END IF;
5506
5507 IF l_debug_level > 0 THEN
5508 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.COPY_ADJUSTMENT_LINES' , 1 ) ;
5509 END IF;
5510
5511 Exception
5512 WHEN FND_API.G_EXC_ERROR THEN
5513 x_return_status := FND_API.G_RET_STS_ERROR;
5514
5515 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5516
5517 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5518 IF l_debug_level > 0 THEN
5519 oe_debug_pub.add( G_PKG_NAME||':COPY_ADJUSTMENT_LINES:'||SQLERRM ) ;
5520 END IF;
5521
5522 end copy_adjustment_lines;
5523
5524 /* Start AuditTrail */
5525 PROCEDURE Pre_Write_Process
5526 ( p_x_line_adj_rec IN OUT NOCOPY OE_ORDER_PUB.line_adj_rec_type,
5527 p_old_line_adj_rec IN OE_ORDER_PUB.line_adj_rec_type := OE_ORDER_PUB.G_MISS_LINE_ADJ_REC) IS
5528 /*local */
5529 l_return_status varchar2(30);
5530 --
5531 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5532 --
5533 BEGIN
5534
5535 --11.5.10 Versioning/Audit Trail updates
5536 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' AND
5537 OE_GLOBALS.G_ROLL_VERSION <> 'N' AND
5538 NOT OE_GLOBALS.G_HEADER_CREATED THEN
5539 IF OE_GLOBALS.G_REASON_CODE IS NULL AND
5540 OE_GLOBALS.G_CAPTURED_REASON IN ('V','A') THEN
5541 IF p_x_line_adj_rec.change_reason_code <> FND_API.G_MISS_CHAR THEN
5542 OE_GLOBALS.G_REASON_TYPE := 'CHANGE_CODE';
5543 OE_GLOBALS.G_REASON_CODE := p_x_line_adj_rec.change_reason_code;
5544 OE_GLOBALS.G_REASON_COMMENTS := p_x_line_adj_rec.change_reason_text;
5545 OE_GLOBALS.G_CAPTURED_REASON := 'Y';
5546 ELSE
5547 if l_debug_level > 0 then
5548 OE_DEBUG_PUB.add('Reason code for versioning is missing or invalid', 1);
5549 end if;
5550 --bug 3775971
5551 if OE_GLOBALS.G_UI_FLAG AND
5552 (OE_GLOBALS.G_PRICING_RECURSION = 'Y' OR
5553 OE_GLOBALS.G_RECURSION_MODE = 'Y') then
5554 raise FND_API.G_EXC_ERROR;
5555 end if;
5556 END IF;
5557 END IF;
5558
5559 --log delayed request
5560 oe_debug_pub.add('log versioning request',1);
5561 OE_Delayed_Requests_Pvt.Log_Request(p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
5562 p_entity_id => p_x_line_adj_rec.header_id,
5563 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
5564 p_requesting_entity_id => p_x_line_adj_rec.price_adjustment_id,
5565 p_request_type => OE_GLOBALS.G_VERSION_AUDIT,
5566 x_return_status => l_return_status);
5567 END IF;
5568
5569 if (p_x_line_adj_rec.operation = OE_GLOBALS.G_OPR_UPDATE) then
5570
5571 IF OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG = 'Y' OR
5572 OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG = 'Y' THEN
5573
5574 IF l_debug_level > 0 THEN
5575 oe_debug_pub.add( 'CALL TO RECORD LINE PRICE ADJ HISTORY' , 5 ) ;
5576 END IF;
5577 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' THEN
5578 OE_Versioning_Util.Capture_Audit_Info(p_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
5579 p_entity_id => p_x_line_adj_rec.price_adjustment_id,
5580 p_hist_type_code => 'UPDATE');
5581 --log delayed request
5582 OE_Delayed_Requests_Pvt.Log_Request(p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
5583 p_entity_id => p_x_line_adj_rec.header_id,
5584 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
5585 p_requesting_entity_id => p_x_line_adj_rec.price_adjustment_id,
5586 p_request_type => OE_GLOBALS.G_VERSION_AUDIT,
5587 x_return_status => l_return_status);
5588 OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
5589 ELSE
5590 OE_CHG_ORDER_PVT.RecordLPAdjHist
5591 ( p_line_adj_id => p_x_line_adj_rec.price_adjustment_id,
5592 p_line_adj_rec => null,
5593 p_hist_type_code => 'UPDATE',
5594 p_reason_code => p_x_line_adj_rec.change_reason_code,
5595 p_comments => p_x_line_adj_rec.change_reason_text,
5596 p_wf_activity_code => null,
5597 p_wf_result_code => null,
5598 x_return_status => l_return_status );
5599 END IF;
5600
5601 END IF;
5602
5603 IF l_return_status <> FND_API.G_RET_STS_SUCCESS then
5604 IF l_debug_level > 0 THEN
5605 oe_debug_pub.add( 'INSERT INTO LINE PRICE ADJUSTMENTS AUDIT HISTORY CAUSED ERROR' , 1 ) ;
5606 END IF;
5607 IF l_return_status = FND_API.G_RET_STS_ERROR then
5608 raise FND_API.G_EXC_ERROR;
5609 ELSE
5610 raise FND_API.G_EXC_UNEXPECTED_ERROR;
5611 END IF;
5612 END IF;
5613 END IF;
5614
5615 END Pre_Write_Process;
5616 /* End AuditTrail */
5617
5618 Function Is_Pricing_Related_Change(p_new_line_rec In Oe_Order_Pub.Line_Rec_Type,
5619 p_old_line_rec In Oe_Order_Pub.Line_Rec_Type) Return Boolean As
5620 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5621 Begin
5622
5623 IF l_debug_level > 0 THEN
5624 oe_debug_pub.add( ' Check if any pricing related changes has occured' ) ;
5625 END IF;
5626
5627 IF NOT OE_GLOBALS.Equal(p_new_line_rec.agreement_id,p_old_line_rec.agreement_id)
5628 OR NOT OE_GLOBALS.Equal(p_new_line_rec.cust_po_number,p_old_line_rec.cust_po_number)
5629 OR NOT OE_GLOBALS.Equal(p_new_line_rec.inventory_item_id,p_old_line_rec.inventory_item_id)
5630 OR NOT OE_GLOBALS.Equal(p_new_line_rec.invoice_to_org_id,p_old_line_rec.invoice_to_org_id)
5631 OR NOT OE_GLOBALS.Equal(p_new_line_rec.ordered_item_id,p_old_line_rec.ordered_item_id)
5632 OR NOT OE_GLOBALS.Equal(p_new_line_rec.ordered_item,p_old_line_rec.ordered_item)
5633 OR NOT OE_GLOBALS.Equal(p_new_line_rec.line_category_code,p_old_line_rec.line_category_code)
5634 OR NOT OE_GLOBALS.Equal(p_new_line_rec.line_type_id,p_old_line_rec.line_type_id)
5635 OR NOT OE_GLOBALS.Equal(p_new_line_rec.ordered_quantity,p_old_line_rec.ordered_quantity)
5636 OR NOT OE_GLOBALS.Equal(p_new_line_rec.order_quantity_uom,p_old_line_rec.order_quantity_uom)
5637 OR NOT OE_GLOBALS.Equal(p_new_line_rec.payment_term_id,p_old_line_rec.payment_term_id)
5638 OR NOT OE_GLOBALS.Equal(p_new_line_rec.price_list_id,p_old_line_rec.price_list_id)
5639 OR NOT OE_GLOBALS.Equal(p_new_line_rec.pricing_date,p_old_line_rec.pricing_date)
5640 OR NOT OE_GLOBALS.Equal(p_new_line_rec.pricing_quantity,p_old_line_rec.pricing_quantity)
5641 OR NOT OE_GLOBALS.Equal(p_new_line_rec.pricing_quantity_uom,p_old_line_rec.pricing_quantity_uom)
5642 OR NOT OE_GLOBALS.Equal(p_new_line_rec.request_date,p_old_line_rec.request_date)
5643 OR NOT OE_GLOBALS.Equal(p_new_line_rec.ship_to_org_id,p_old_line_rec.ship_to_org_id)
5644 OR NOT OE_GLOBALS.Equal(p_new_line_rec.sold_to_org_id,p_old_line_rec.sold_to_org_id)
5645 OR NOT OE_GLOBALS.Equal(p_new_line_rec.unit_selling_price,p_old_line_rec.unit_selling_price)
5646 OR NOT OE_GLOBALS.Equal(p_new_line_rec.service_start_date,p_old_line_rec.service_start_date)
5647 OR NOT OE_GLOBALS.Equal(p_new_line_rec.service_end_date,p_old_line_rec.service_end_date)
5648 OR NOT OE_GLOBALS.Equal(p_new_line_rec.service_duration,p_old_line_rec.service_duration)
5649 OR NOT OE_GLOBALS.Equal(p_new_line_rec.service_period,p_old_line_rec.service_period)
5650 --Bug 4332307
5651 OR (
5652 ((p_new_line_rec.unit_list_price IS NOT NULL AND
5653 p_new_line_rec.unit_list_price <> FND_API.G_MISS_NUM AND
5654 p_new_line_rec.unit_list_price <> p_old_line_rec.unit_list_price)
5655 OR
5656 (p_new_line_rec.unit_list_price IS NULL))
5657 AND
5658 p_old_line_rec.unit_list_price IS NOT NULL AND
5659 p_old_line_rec.unit_list_price <> FND_API.G_MISS_NUM AND
5660 p_new_line_rec.original_list_price IS NOT NULL AND
5661 p_new_line_rec.original_list_price <> FND_API.G_MISS_NUM AND
5662 p_new_line_rec.Ordered_Quantity <> fnd_api.g_miss_num and
5663 p_new_line_rec.order_quantity_uom is not null and
5664 p_new_line_rec.order_quantity_uom <> fnd_api.g_miss_char
5665 AND oe_code_control.code_release_level >= '110510'
5666 AND nvl(fnd_profile.value('ONT_LIST_PRICE_OVERRIDE_PRIV'), 'NONE') = 'UNLIMITED'
5667 AND OE_GLOBALS.G_UI_FLAG
5668 AND OE_Globals.G_PRICING_RECURSION = 'N'
5669 )
5670 --Bug 4332307
5671
5672 Then
5673 IF l_debug_level > 0 THEN
5674 oe_debug_pub.add( ' PRICING RELATED FIELDS HAS CHANGED' ) ;
5675 END IF;
5676 Return True;
5677
5678 Else
5679 IF l_debug_level > 0 THEN
5680 oe_debug_pub.add( ' NO pricing related Fields Has Changed' ) ;
5681 END IF;
5682 Return False;
5683 End If;
5684
5685
5686 End;
5687
5688 /* 1503357 - Delete all PRG lines associated with a particular line */
5689 Procedure Delete_PRG_Lines(p_line_id In Number, p_operation In Varchar2) Is
5690
5691 -- Get all PRG lines
5692 Cursor prg_lines is
5693 select adj1.line_id, assoc.rltd_price_adj_id
5694 from oe_price_adjustments adj1,
5695 oe_price_adj_assocs assoc,
5696 oe_price_adjustments adj2,
5697 oe_order_lines_all line
5698 where adj1.price_adjustment_id = assoc.rltd_price_adj_id AND
5699 assoc.price_adjustment_id = adj2.price_adjustment_id AND
5700 adj2.list_line_type_code = 'PRG' AND
5701 adj1.line_id = line.line_id AND /*Added for bug 4018279*/
5702 line.open_flag = 'Y' AND
5703 adj2.line_id = p_line_id;
5704
5705
5706 Cursor prg_adjs is
5707 select price_adjustment_id
5708 from oe_price_adjustments
5709 where line_id = p_line_id AND list_line_type_code = 'PRG';
5710
5711 /* Variables to call process order */
5712 l_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
5713 l_old_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
5714 l_control_rec OE_GLOBALS.Control_Rec_Type;
5715 l_line_rec OE_Order_PUB.Line_Rec_Type;
5716 x_return_status Varchar2(1);
5717 l_prg_line_id NUMBER;
5718 l_price_adj_id NUMBER;
5719 l_delete_prg varchar2(1);
5720 l_dummy NUMBER;
5721 l_rltd_price_adj_id NUMBER;
5722 --
5723 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5724 --
5725 l_reason_code VARCHAR2(30);
5726 l_reason_comments VARCHAR2(2000);
5727 l_captured_reason varchar2(1);
5728
5729 Begin
5730 IF l_debug_level > 0 THEN
5731 oe_debug_pub.add( 'ENTERING OEXULADB.DELETE_PRG_LINES WITH LINE_ID = ' || P_LINE_ID ) ;
5732 END IF;
5733 if l_debug_level > 0 then
5734 oe_debug_pub.add('reason:'||OE_GLOBALS.G_REASON_CODE,3);
5735 oe_debug_pub.add('captured:'||OE_GLOBALS.G_captured_reason,3);
5736 oe_debug_pub.add('audit:'||OE_GLOBALS.G_version_audit,3);
5737 end if;
5738 l_reason_code := OE_GLOBALS.G_REASON_CODE;
5739 l_reason_comments := OE_GLOBALS.G_REASON_COMMENTS;
5740 l_captured_reason := OE_GLOBALS.G_CAPTURED_REASON;
5741 OPEN prg_lines;
5742 FETCH prg_lines into l_prg_line_id, l_rltd_price_adj_id;
5743 WHILE prg_lines%FOUND Loop
5744 IF l_debug_level > 0 THEN
5745 oe_debug_pub.add( 'PRG LINE ID = ' || L_PRG_LINE_ID ) ;
5746 END IF;
5747 OE_LINE_UTIL.QUERY_ROW(p_line_id => l_prg_line_id,
5748 x_line_rec => l_line_rec);
5749
5750 l_old_line_tbl(1) := l_line_rec;
5751
5752 if (l_line_rec.booked_flag <> 'Y') Then
5753
5754 IF l_debug_level > 0 THEN
5755 oe_debug_pub.add( 'ORDER NOT BOOKED' ) ;
5756 END IF;
5757 l_line_rec.operation := OE_GLOBALS.G_OPR_DELETE;
5758
5759 else
5760 if (l_line_rec.shipped_quantity is NULL) Then
5761 IF l_debug_level > 0 THEN
5762 oe_debug_pub.add( 'BOOKED ORDER , LINE NOT SHIPPED' ) ;
5763 END IF;
5764 if (p_operation = OE_GLOBALS.G_OPR_DELETE) Then
5765 -- bug 2756288, if buy line can be deleted, so can get line
5766 l_line_rec.operation := OE_GLOBALS.G_OPR_DELETE;
5767 else
5768 l_line_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
5769 l_line_rec.ordered_quantity := 0;
5770 l_line_rec.pricing_quantity := 0;
5771 end if;
5772 else
5773 IF l_debug_level > 0 THEN
5774 oe_debug_pub.add( 'BOOKED ORDER , SHIPPED LINE' ) ;
5775 END IF;
5776 l_line_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
5777 l_line_rec.calculate_price_flag := 'Y';
5778 end if;
5779 end if;
5780 l_line_rec.change_reason := 'SYSTEM';
5781 l_line_rec.change_comments := 'REPRICING';
5782
5783 for i in prg_adjs LOOP
5784 -- Delete PRG adjustment record and the association
5785 -- between the buy line and the get line
5786 IF l_debug_level > 0 THEN
5787 oe_debug_pub.add( 'PRICE ADJ ID = ' || I.PRICE_ADJUSTMENT_ID ) ;
5788 END IF;
5789 OE_LINE_ADJ_UTIL.DELETE_ROW(p_price_adjustment_id => i.price_adjustment_id);
5790
5791 DELETE FROM OE_PRICE_ADJ_ASSOCS WHERE PRICE_ADJUSTMENT_ID = i.price_adjustment_id;
5792 END LOOP;
5793 BEGIN
5794 l_delete_prg := 'N';
5795 SELECT price_adj_assoc_id INTO l_dummy from oe_price_adj_assocs
5796 WHERE rltd_price_adj_id = l_rltd_price_adj_id and rownum < 2;
5797 exception
5798 WHEN NO_DATA_FOUND THEN
5799 l_delete_prg := 'Y';
5800 END;
5801 IF l_debug_level > 0 THEN
5802 oe_debug_pub.add( 'ASSOC ID:'||L_DUMMY ) ;
5803 END IF;
5804
5805 IF (l_delete_prg = 'Y') THEN
5806 -- Call Process Order
5807 l_control_rec.controlled_operation := TRUE;
5808 l_control_rec.check_security := TRUE;
5809 l_control_rec.clear_dependents := TRUE;
5810 l_control_rec.default_attributes := TRUE;
5811 l_control_rec.change_attributes := TRUE;
5812 l_control_rec.validate_entity := TRUE;
5813 l_control_rec.write_to_DB := TRUE;
5814 l_control_rec.process := FALSE;
5815
5816 l_line_tbl(1) := l_line_rec;
5817
5818 Oe_Order_Pvt.Lines
5819 ( p_validation_level => FND_API.G_VALID_LEVEL_NONE
5820 , p_control_rec => l_control_rec
5821 , p_x_line_tbl => l_line_tbl
5822 , p_x_old_line_tbl => l_old_line_tbl
5823 , x_return_status => x_return_status
5824 );
5825
5826 OE_GLOBALS.G_CASCADING_REQUEST_LOGGED := TRUE;
5827 END IF;
5828 FETCH prg_lines into l_prg_line_id, l_rltd_price_adj_id;
5829 End Loop;
5830 CLOSE prg_lines;
5831 if l_debug_level > 0 then
5832 oe_debug_pub.add('reason:'||OE_GLOBALS.G_REASON_CODE,3);
5833 oe_debug_pub.add('captured:'||OE_GLOBALS.G_captured_reason,3);
5834 oe_debug_pub.add('audit:'||OE_GLOBALS.G_version_audit,3);
5835 end if;
5836 OE_GLOBALS.G_REASON_CODE := l_reason_code;
5837 OE_GLOBALS.G_REASON_COMMENTS := l_reason_comments;
5838 OE_GLOBALS.G_CAPTURED_REASON := l_captured_reason;
5839
5840 IF l_debug_level > 0 THEN
5841 oe_debug_pub.add( 'EXITING OEXULADB.DELETE_PRG_LINES' ) ;
5842 END IF;
5843 EXCEPTION
5844 WHEN OTHERS THEN
5845 IF l_debug_level > 0 THEN
5846 oe_debug_pub.add( 'EXCEPTION IN DELETE_PRG_LINES'||SQLERRM , 3 ) ;
5847 END IF;
5848 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5849 End Delete_PRG_Lines;
5850
5851 Procedure Check_Canceled_PRG(p_old_line_rec in Oe_Order_Pub.line_rec_type,
5852 p_new_line_rec in Oe_Order_Pub.line_rec_type) Is
5853 --
5854 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5855 --
5856 Begin
5857
5858 IF p_new_line_rec.operation = OE_GLOBALS.G_OPR_DELETE OR NOT OE_GLOBALS.EQUAL(p_new_line_rec.ordered_quantity, p_old_line_rec.ordered_quantity) Then
5859 IF (nvl(p_new_line_rec.booked_flag, 'X') <> 'Y') Then
5860 IF (p_new_line_rec.operation = OE_GLOBALS.G_OPR_DELETE OR p_new_line_rec.ordered_quantity = 0) Then
5861 IF l_debug_level > 0 THEN
5862 oe_debug_pub.add( 'OPEN ORDER , ORDERED QTY CHANGED TO ZERO , DELETE ALL PRG LINES' ) ;
5863 END IF;
5864 Delete_PRG_Lines(p_new_line_rec.line_id, p_new_line_rec.operation);
5865 END IF;
5866 ELSE
5867 IF (p_new_line_rec.ordered_quantity = 0 AND
5868 (p_new_line_rec.change_reason is NOT NULL OR
5869 p_new_line_rec.change_reason <> FND_API.G_MISS_CHAR))
5870 OR p_new_line_rec.operation = OE_GLOBALS.G_OPR_DELETE Then
5871 IF l_debug_level > 0 THEN
5872 oe_debug_pub.add( 'BOOKED ORDER , ORDERED QTY CHANGED TO ZERO , DELETE ALL PRG LINES' ) ;
5873 END IF;
5874 Delete_PRG_Lines(p_new_line_rec.line_id, p_new_line_rec.operation);
5875 END IF;
5876 END IF;
5877 End if;
5878 EXCEPTION
5879 WHEN OTHERS THEN
5880 IF l_debug_level > 0 THEN
5881 oe_debug_pub.add( 'EXCEPTION IN CHECK_CANCELED_PRG'||SQLERRM , 3 ) ;
5882 END IF;
5883 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5884 End Check_Canceled_PRG;
5885
5886 ------------------------------------------------------------------------------------
5887 --Called from OEXULINB.pls apply_attribute_changes to check is a repricing is required
5888 --Not yet fully implemented. Will work in when getting the lock of OEXULINB.pls
5889 ------------------------------------------------------------------------------------
5890 Procedure Process_Pricing (p_x_new_line_rec In OUT Nocopy Oe_Order_Pub.Line_Rec_Type,
5891 p_old_line_rec In Oe_Order_Pub.Line_Rec_Type,
5892 p_no_price_flag In Boolean) Is
5893
5894 l_price_flag Varchar2(1):='Y';
5895 l_charges_for_included_item VARCHAR2(1):=NVL(FND_PROFILE.VALUE('ONT_CHARGES_FOR_INCLUDED_ITEM'),'N');
5896 l_return_status VARCHAR2(10);
5897 l_pricing_related_changes Boolean :=False;
5898 l_margin_related_changes Boolean :=False;
5899
5900 --
5901 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5902 --
5903 Begin
5904 IF l_debug_level > 0 THEN
5905 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.PROCESS_PRICING CALLED FROM ULINB' ) ;
5906 END IF;
5907
5908 IF NOT OE_GLOBALS.Equal(p_x_new_line_rec.cancelled_quantity,p_old_line_rec.cancelled_quantity)
5909 and p_x_new_line_rec.cancelled_quantity > 0
5910 Then
5911 IF l_debug_level > 0 THEN
5912 oe_debug_pub.add( ' USER CANCELS LINE , CANCELLED QUANTITY:'||P_X_NEW_LINE_REC.CANCELLED_QUANTITY ) ;
5913 END IF;
5914
5915 --bug7491829 added p_ordered_quantity
5916 Process_Cancelled_Lines(p_x_new_line_rec=>p_x_new_line_rec,
5917 p_ordered_quantity => p_old_line_rec.ordered_quantity);
5918 End If;
5919
5920 IF Is_Pricing_Related_Change(p_new_line_rec => p_x_new_line_rec,
5921 p_old_line_rec => p_old_line_rec)
5922 THEN
5923 l_pricing_related_changes := True;
5924 End If;
5925
5926
5927 IF NOT OE_GLOBALS.Equal(p_x_new_line_rec.unit_cost,p_old_line_rec.unit_cost)
5928 Then
5929 IF l_debug_level > 0 THEN
5930 oe_debug_pub.add( ' BOOKED FLAG OR UNIT COST CHANGES' ) ;
5931 END IF;
5932 l_margin_related_changes := True;
5933 End If;
5934
5935
5936 IF l_pricing_related_changes THEN
5937 Register_Changed_Lines(p_line_id => p_x_new_line_rec.line_id,
5938 p_header_id => p_x_new_line_rec.header_id,
5939 p_operation => p_x_new_line_rec.operation);
5940
5941 --bug 2965218
5942 If G_GROUP_PRICING_DSP IS NULL and p_x_new_line_rec.source_document_type_id = 5 Then
5943 G_GROUP_PRICING_DSP := nvl(fnd_profile.value('ONT_GRP_PRICE_FOR_DSP'),'N');
5944 End If;
5945 if p_x_new_line_rec.source_document_type_id = 5 and G_GROUP_PRICING_DSP = 'N' Then
5946 If nvl(G_SEND_ALL_LINES_FOR_DSP,'N') <> 'Y' Then
5947 G_SEND_ALL_LINES_FOR_DSP := 'N';
5948 End If;
5949 else
5950 G_SEND_ALL_LINES_FOR_DSP := 'Y';
5951 end if;
5952 If l_debug_level > 0 Then
5953 oe_debug_pub.add('G_GROUP_PRICING_DSP = '||G_GROUP_PRICING_DSP);
5954 End If;
5955
5956 If G_CODE_RELEASE_LEVEL IS NULL THEN
5957 G_CODE_RELEASE_LEVEL := OE_CODE_CONTROL.CODE_RELEASE_LEVEL;
5958 End If;
5959
5960 If l_debug_level > 0 Then
5961 oe_debug_pub.add('G_CODE_RELEASE_LEVEL = '||G_CODE_RELEASE_LEVEL);
5962 End If;
5963
5964 if p_x_new_line_rec.ordered_quantity2 is not null and G_CODE_RELEASE_LEVEL < '110509' Then
5965 G_OPM_ITEM_CATCHWEIGHT_USED := 'Y';
5966 End If;
5967 END IF;
5968
5969
5970 IF (l_margin_related_changes or l_pricing_related_changes)
5971 AND p_x_new_line_rec.booked_flag = 'Y' THEN
5972 IF OE_FEATURES_PVT.Is_Margin_Avail THEN
5973 --attributes affect selling price changes, we log a delayed request to
5974 --evaluate margin, margin_hold procedure will hold the order if
5975 --margin falls below a intended setup margin
5976 IF Oe_Sys_Parameters.Value('COMPUTE_MARGIN') <> 'N' Then
5977 IF l_debug_level > 0 THEN
5978 oe_debug_pub.add( 'LOGGING DELAYED REQUEST FOR MARGIN HOLD FOR BOOKED LINE_ID:'||P_X_NEW_LINE_REC.LINE_ID ) ;
5979 END IF;
5980 oe_delayed_requests_pvt.log_request(
5981 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
5982 p_entity_id => p_x_new_line_rec.header_id,
5983
5984 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
5985 p_requesting_entity_id => p_x_new_line_rec.header_id,
5986
5987 p_request_type => 'MARGIN_HOLD',
5988 x_return_status => l_return_status);
5989 END IF;
5990 END IF;
5991 END IF;
5992
5993
5994
5995 --MRG BGN, performance bug 4580260 (fp of bug 4273309)
5996 IF OE_FEATURES_PVT.Is_Margin_Avail
5997 AND p_x_new_line_rec.item_type_code NOT IN ('KIT','MODEL','INCLUDED','CLASS','CONFIG','OPTION') THEN
5998 IF l_debug_level > 0 THEN
5999 oe_debug_pub.add( 'NEW INV ITEM ID = '||P_X_NEW_LINE_REC.INVENTORY_ITEM_ID , 1 ) ;
6000 oe_debug_pub.add( 'OLD INV ITEM ID = '||P_OLD_LINE_REC.INVENTORY_ITEM_ID , 1 ) ;
6001 oe_debug_pub.add( 'NEW SHIP_FROM_ORG_ID = '||P_X_NEW_LINE_REC.SHIP_FROM_ORG_ID , 1 ) ;
6002 oe_debug_pub.add( 'OLD SHIP_FROM_ORG_ID = '||P_OLD_LINE_REC.SHIP_FROM_ORG_ID , 1 ) ;
6003 oe_debug_pub.add( 'NEW PROJECT_ID = '||P_X_NEW_LINE_REC.PROJECT_ID , 1 ) ;
6004 oe_debug_pub.add( 'OLD PROJECT_ID = '||P_OLD_LINE_REC.PROJECT_ID , 1 ) ;
6005 oe_debug_pub.add( 'NEW ACTUAL_SHIPMENT_DATE = '||P_X_NEW_LINE_REC.ACTUAL_SHIPMENT_DATE , 1 ) ;
6006 oe_debug_pub.add( 'OLD ACTUAL_SHIPMENT_DATE = '||P_OLD_LINE_REC.ACTUAL_SHIPMENT_DATE , 1 ) ;
6007 oe_debug_pub.add( 'NEW FULFILLMENT_DATE = '||P_X_NEW_LINE_REC.FULFILLMENT_DATE , 1 ) ;
6008 oe_debug_pub.add( 'OLD FULFILLMENT_DATE = '||P_OLD_LINE_REC.FULFILLMENT_DATE , 1 ) ;
6009 oe_debug_pub.add( 'NEW PRICING_DATE = '||P_X_NEW_LINE_REC.PRICING_DATE , 1 ) ;
6010 oe_debug_pub.add( 'OLD PRICING_DATE = '||P_OLD_LINE_REC.PRICING_DATE , 1 ) ;
6011 END IF;
6012
6013 IF NOT OE_GLOBALS.Equal(p_x_new_line_rec.inventory_item_id,p_old_line_rec.inventory_item_id)
6014 OR NOT OE_GLOBALS.Equal(p_x_new_line_rec.ship_from_org_id,p_old_line_rec.ship_from_org_id)
6015 OR NOT OE_GLOBALS.Equal(p_x_new_line_rec.project_id,p_old_line_rec.project_id)
6016 OR NOT OE_GLOBALS.Equal(p_x_new_line_rec.actual_shipment_date,p_old_line_rec.actual_shipment_date)
6017 OR NOT OE_GLOBALS.Equal(p_x_new_line_rec.fulfillment_date,p_old_line_rec.fulfillment_date)
6018 OR NOT OE_GLOBALS.Equal(p_x_new_line_rec.pricing_date,p_old_line_rec.pricing_date)
6019 THEN
6020 IF Oe_Sys_Parameters.Value('COMPUTE_MARGIN') <> 'N' Then
6021 IF l_debug_level > 0 THEN
6022 oe_debug_pub.add( 'BEFORE OE_DELAYED_REQUESTS_PVT.LOG_REQUEST CALL' ) ;
6023 oe_debug_pub.add( 'IN PROCESS_PRICING OEXULADB.PLS' ) ;
6024 END IF;
6025
6026 oe_delayed_requests_pvt.log_request(
6027 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6028 p_entity_id => p_x_new_line_rec.line_id,
6029 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6030
6031 p_requesting_entity_id => p_x_new_line_rec.line_id,
6032 p_request_type => 'GET_COST',
6033 x_return_status => l_return_status);
6034 END IF;
6035 END IF;
6036
6037 END IF;
6038 --MRG END
6039
6040 l_pricing_related_changes :=False;
6041 l_margin_related_changes :=False;
6042 IF l_debug_level > 0 THEN
6043 oe_debug_pub.add( 'LEAVING OE_LINE_ADJ_UTIL.PROCESS_PRICING' ) ;
6044 END IF;
6045 End Process_Pricing;
6046
6047 Procedure Log_Pricing_Requests (p_x_new_line_rec in Out Nocopy Oe_Order_Pub.Line_Rec_Type,
6048 p_old_line_rec in Oe_Order_Pub.Line_Rec_Type,
6049 p_no_price_flag Boolean Default False,
6050 p_price_flag Varchar2 Default 'Y') Is
6051
6052 l_zero_line_qty Boolean :=FALSE;
6053 l_price_control_rec QP_PREQ_GRP.control_record_type;
6054 l_x_line_tbl Oe_Order_Pub.Line_Tbl_Type;
6055 l_return_status Varchar2(5);
6056 i PLS_INTEGER;
6057 l_x_result_out Varchar2(5);
6058 --
6059 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6060 --
6061 Begin
6062
6063 IF p_price_flag = 'Y' and
6064 not p_no_price_flag and
6065 nvl(oe_globals.g_pricing_recursion,'N') <> 'Y' and
6066 p_x_new_line_rec.Ordered_Quantity <> fnd_api.g_miss_num and
6067 p_x_new_line_rec.order_quantity_uom is not null and
6068 p_x_new_line_rec.order_quantity_uom <> fnd_api.g_miss_char
6069 THEN
6070 --bsadri for cancelled lines l_zero_line_qty is true
6071
6072 IF nvl(p_x_new_line_rec.ordered_quantity,0) = 0 THEN
6073 l_zero_line_qty := TRUE;
6074 ELSE
6075 l_zero_line_qty := FALSE;
6076 END IF;
6077 If
6078 ( (p_x_new_line_rec.unit_list_price is null or
6079 p_x_new_line_rec.Unit_List_Price = fnd_api.g_miss_num or
6080 NOT OE_GLOBALS.Equal(p_x_new_line_rec.ordered_quantity,p_old_line_rec.ordered_quantity) or
6081 NOT OE_GLOBALS.Equal(p_x_new_line_rec.cancelled_Quantity,p_old_line_rec.cancelled_Quantity) or
6082 NOT OE_GLOBALS.Equal(p_x_new_line_rec.order_quantity_uom,p_old_line_rec.order_quantity_uom) or
6083 NOT OE_GLOBALS.Equal(p_x_new_line_rec.inventory_item_id,p_old_line_rec.inventory_item_id) ) --fix bug 1388503 btea
6084 and p_x_new_line_rec.item_type_code <> OE_GLOBALS.G_ITEM_SERVICE
6085 )
6086 then
6087
6088
6089 IF ((OE_GLOBALS.G_UI_FLAG) and (nvl(Oe_Config_Pvt.oecfg_configuration_pricing,'N')='N'))
6090 THEN
6091
6092 l_Price_Control_Rec.pricing_event := 'PRICE';
6093 l_Price_Control_Rec.calculate_flag := QP_PREQ_GRP.G_SEARCH_N_CALCULATE;
6094 l_Price_Control_Rec.Simulation_Flag := 'N';
6095
6096 l_x_line_tbl(1) := p_x_new_line_rec;
6097 IF NOT l_zero_line_qty THEN
6098 --bsadri call the Price_line for non-cancelled lines
6099 oe_order_adj_pvt.Price_line(
6100 X_Return_Status => l_Return_Status
6101 ,p_Line_id => p_x_new_line_rec.line_id
6102 ,p_Request_Type_code=> 'ONT'
6103 ,p_Control_rec => l_Price_Control_Rec
6104 ,p_Write_To_Db => FALSE
6105 ,x_Line_Tbl => l_x_Line_Tbl
6106 );
6107
6108 -- Populate Line_rec
6109 i:= l_x_Line_Tbl.First;
6110 While i is not null loop
6111 p_x_new_line_rec := l_x_Line_Tbl(i);
6112 i:= l_x_Line_Tbl.Next(i);
6113 End Loop;
6114 END IF;
6115 End If;
6116 End If; --end if for UI Flag Check
6117
6118 IF l_debug_level > 0 THEN
6119 oe_debug_pub.add( 'LOGGING DELAYED REQUEST FOR PRICING' ) ;
6120 END IF;
6121
6122 IF ((OE_GLOBALS.G_UI_FLAG) and (nvl(Oe_Config_Pvt.oecfg_configuration_pricing,'N')='N')) OR
6123 p_x_new_line_rec.item_type_code = 'INCLUDED' THEN
6124 IF l_debug_level > 0 THEN
6125 oe_debug_pub.add( 'UI MODE OR CONFIG , INCLUDED ITEM'||P_X_NEW_LINE_REC.LINE_ID ) ;
6126 END IF;
6127 IF NOT l_zero_line_qty THEN
6128 --bsadri don't call this for a cancelled line
6129 OE_delayed_requests_Pvt.log_request(
6130 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6131 p_entity_id => p_x_new_line_rec.line_id,
6132 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6133 p_requesting_entity_id => p_x_new_line_rec.line_id,
6134 p_request_unique_key1 => 'LINE',
6135 p_param1 => p_x_new_line_rec.header_id,
6136 p_param2 => 'LINE',
6137 p_request_type => OE_GLOBALS.G_PRICE_LINE,
6138 x_return_status => l_return_status);
6139
6140 END IF;
6141 IF p_x_new_line_rec.item_type_code <> 'INCLUDED' THEN
6142 OE_delayed_requests_Pvt.log_request(
6143 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6144 p_entity_id => p_x_new_line_rec.Header_Id,
6145 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6146 p_requesting_entity_id => p_x_new_line_rec.Header_Id,
6147 p_request_unique_key1 => 'ORDER',
6148 p_param1 => p_x_new_line_rec.header_id,
6149 p_param2 => 'ORDER',
6150 p_request_type => OE_GLOBALS.G_PRICE_ORDER,
6151 x_return_status => l_return_status);
6152 END IF;
6153 ELSE
6154 IF l_debug_level > 0 THEN
6155 oe_debug_pub.add( 'BATCH MODE' ) ;
6156 END IF;
6157
6158 OE_delayed_requests_Pvt.log_request(
6159 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6160 p_entity_id => p_x_new_line_rec.Header_Id,
6161 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6162 p_requesting_entity_id => p_x_new_line_rec.Header_Id,
6163 p_request_unique_key1 => 'BATCH',
6164 p_param1 => p_x_new_line_rec.header_id,
6165 p_param2 => 'BATCH',
6166 p_request_type => OE_GLOBALS.G_PRICE_ORDER,
6167 x_return_status => l_return_status);
6168 END IF;
6169
6170 If p_x_new_line_rec.booked_flag='Y' and p_x_new_line_rec.item_type_code <> 'INCLUDED' Then
6171 OE_delayed_requests_Pvt.log_request(
6172 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6173 p_entity_id => p_x_new_line_rec.Header_Id,
6174 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6175 p_requesting_entity_id => p_x_new_line_rec.Header_Id,
6176 p_request_unique_key1 => 'BOOK',
6177 p_param1 => p_x_new_line_rec.header_id,
6178 p_param2 => 'BOOK',
6179 p_request_type => OE_GLOBALS.G_PRICE_ORDER,
6180 x_return_status => l_return_status);
6181 End If;
6182
6183 END IF;
6184
6185 /* rlanka: Fix for Bug 1729372
6186
6187 For the new line that is created by Promotional modifier
6188 need to log a delayed request to PRICE_LINE again to apply
6189 freight charges.
6190
6191 */
6192
6193 IF l_debug_level > 0 THEN
6194 oe_debug_pub.add( 'PRICE_FLAG = ' || P_PRICE_FLAG ) ;
6195 oe_debug_pub.add( 'G_PRICING_RECURSION = ' || OE_GLOBALS.G_PRICING_RECURSION ) ;
6196 oe_debug_pub.add( 'ORDERED QUANTITY = '|| TO_CHAR ( P_X_NEW_LINE_REC.ORDERED_QUANTITY ) ) ;
6197 oe_debug_pub.add( 'ORDERED QTY UOM = ' || P_X_NEW_LINE_REC.ORDER_QUANTITY_UOM ) ;
6198 oe_debug_pub.add( 'CALCULATE_PRICE_FLAG = '|| P_X_NEW_LINE_REC.CALCULATE_PRICE_FLAG ) ;
6199 END IF;
6200
6201
6202 if (p_price_flag = 'Y' and
6203 not p_no_price_flag and
6204 oe_globals.g_pricing_recursion = 'Y' and
6205 nvl(p_x_new_line_rec.ordered_quantity,0) <> 0 and
6206 p_x_new_line_rec.Ordered_Quantity <> fnd_api.g_miss_num and
6207 p_x_new_line_rec.order_quantity_uom is not null and
6208 p_x_new_line_rec.order_quantity_uom <> fnd_api.g_miss_char and
6209 p_x_new_line_rec.calculate_price_flag = 'R')
6210 then
6211
6212 IF l_debug_level > 0 THEN
6213 oe_debug_pub.add( 'NEW LINE CREATED BY PROMOTIONAL MODIFIER' ) ;
6214 oe_debug_pub.add( 'RESETTING CALC. PRICE. FLAG TO P' ) ;
6215 END IF;
6216 p_x_new_line_rec.calculate_price_flag := 'P';
6217 IF l_debug_level > 0 THEN
6218 oe_debug_pub.add( 'LOGGING A REQUEST TO PRICE_LINE IN BATCH MODE' ) ;
6219 END IF;
6220 OE_delayed_requests_Pvt.log_request(
6221 p_entity_code =>OE_GLOBALS.G_ENTITY_ALL,
6222 p_entity_id => p_x_new_line_rec.line_Id,
6223 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6224 p_requesting_entity_id => p_x_new_line_rec.line_Id,
6225 p_request_unique_key1 => 'BATCH',
6226 p_param1 => p_x_new_line_rec.header_id,
6227 p_param2 => 'BATCH',
6228 p_request_type => OE_GLOBALS.G_PRICE_LINE,
6229 x_return_status => l_return_status);
6230
6231 if (p_x_new_line_rec.booked_flag = 'Y')
6232 then
6233 IF l_debug_level > 0 THEN
6234 oe_debug_pub.add( 'BOOKED ORDER -- LOG A REQUEST TO PRICE LINE' ) ;
6235 END IF;
6236 OE_delayed_requests_Pvt.log_request(
6237 p_entity_code =>OE_GLOBALS.G_ENTITY_ALL,
6238 p_entity_id => p_x_new_line_rec.line_Id,
6239 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6240 p_requesting_entity_id => p_x_new_line_rec.line_Id,
6241 p_request_unique_key1 => 'BOOK',
6242 p_param1 => p_x_new_line_rec.header_id,
6243 p_param2 => 'BOOK',
6244 p_request_type => OE_GLOBALS.G_PRICE_LINE,
6245 x_return_status => l_return_status);
6246 end if; -- if order is BOOKED
6247
6248 end if; -- if new line created by Promotional modifier needs to be re-priced.
6249
6250 -- end of fix for bug 1729372
6251
6252 If NOT OE_GLOBALS.Equal(p_x_new_line_rec.Shipped_Quantity,p_old_line_rec.Shipped_Quantity)
6253 Then
6254 --btea
6255 IF p_x_new_line_rec.line_category_code <> 'RETURN' Then
6256 OE_Shipping_Integration_PVT.Check_Shipment_Line(
6257 p_line_rec => p_old_line_rec
6258 , p_shipped_quantity => p_x_new_line_rec.Shipped_Quantity
6259 , x_result_out => l_x_result_out
6260 );
6261
6262 IF l_x_result_out = OE_GLOBALS.G_PARTIALLY_SHIPPED THEN
6263 -- This line will split, set the calculate_price_flag to 'P' if 'Y'
6264 IF (p_x_new_line_rec.calculate_price_flag = 'Y') THEN
6265 p_x_new_line_rec.calculate_price_flag := 'P';
6266 END IF;
6267
6268
6269 END IF;
6270
6271 Elsif p_x_new_line_rec.operation = OE_GLOBALS.G_OPR_UPDATE
6272 and p_x_new_line_rec.split_by = 'SYSTEM'
6273 and p_x_new_line_rec.split_action_code = 'SPLIT'
6274 and p_x_new_line_rec.calculate_price_flag = 'Y' Then
6275 p_x_new_line_rec.calculate_price_flag :='P';
6276 End If;
6277
6278 OE_delayed_requests_Pvt.log_request(
6279 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6280 p_entity_id => p_x_new_line_rec.line_id,
6281 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6282 p_requesting_entity_id => p_x_new_line_rec.line_id,
6283 p_request_unique_key1 => 'SHIP',
6284 p_param1 => p_x_new_line_rec.header_id,
6285 p_param2 => 'SHIP',
6286 p_request_type => OE_GLOBALS.G_PRICE_LINE,
6287 x_return_status => l_return_status);
6288 End If;
6289
6290 End;
6291
6292
6293 /*---------------------------------------------------------------------*/
6294 --Will be called by delayed request to reset cache changed line tbl
6295 /*---------------------------------------------------------------------*/
6296 Procedure Delete_Changed_Lines_Tbl Is
6297 Begin
6298 G_CHANGED_LINE_TBL.delete;
6299 G_SEND_ALL_LINES_FOR_DSP := NULL;
6300 G_OPM_ITEM_CATCHWEIGHT_USED := NULL;
6301 End;
6302
6303
6304 /*----------------------------------------------------------------------*/
6305 --Process_Cancelled_Lines. This is performance fix on cancel line
6306 --in which we either combine all events to call pricing engine once
6307 --or not calling at all depending on the output of QP_UTIL_PUB.Get_Order_Lines_Status
6308 /*----------------------------------------------------------------------*/
6309
6310 Procedure Process_Cancelled_Lines(p_x_new_line_rec In Oe_Order_Pub.line_rec_type, p_ordered_quantity In Number) Is
6311 --bug7491829 added p_ordered_quantity
6312
6313 l_order_status_rec QP_UTIL_PUB.ORDER_LINES_STATUS_REC_TYPE;
6314 l_return_status Varchar2(5);
6315 l_event_str Varchar2(25);
6316 --
6317 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6318 --
6319 Begin
6320
6321 --User trying to cancle line, different processing for cancelation due to performance
6322 --considerations
6323 IF l_debug_level > 0 THEN
6324 oe_debug_pub.add( ' ENTERING PROCESS_CANCELLED_LINES' ) ;
6325 END IF;
6326
6327 ------------------------------------------------------
6328 --Special case, bypass regular pricing path
6329 --we log performant version of pricing delayed request
6330 ------------------------------------------------------
6331 OE_GLOBALS.G_PRICE_FLAG := 'N';
6332
6333
6334 QP_UTIL_PUB.Get_Order_Lines_Status('BATCH,BOOK',l_order_status_rec);
6335 ----------------------------------------------------------------------
6336 --User has totally cancelled a line, price changes pertaining to this
6337 --line has no effect since the quantity is 0. Therefore, only pass
6338 --all the lines to pricing engine when all_lines_flag = 'Y'
6339 ----------------------------------------------------------------------
6340 IF l_debug_level > 0 THEN
6341 oe_debug_pub.add( ' ALL LINES FLAG RETURNED FROM QP_UTIL_PUB:'||L_ORDER_STATUS_REC.ALL_LINES_FLAG ) ;
6342 oe_debug_pub.add( ' CHANGED LINES FLAG RETURNED FROM QP_UTIL_PUB:'||L_ORDER_STATUS_REC.CHANGED_LINES_FLAG ) ;
6343 oe_debug_pub.add( ' SUMMARY LINE FLAG RETURNED FROM QP_UTIL_PUB:'||L_ORDER_STATUS_REC.SUMMARY_LINE_FLAG ) ;
6344 END IF;
6345
6346
6347
6348 If p_x_new_line_rec.ordered_quantity = 0 Then
6349 IF l_debug_level > 0 THEN
6350 oe_debug_pub.add( ' USER HAS TOTALLY CANCELLED THE LINE' ) ;
6351 END IF;
6352
6353 If p_x_new_line_rec.booked_flag = 'Y' Then
6354 l_event_str:= 'ORDER,BOOK';
6355 Else
6356 l_event_str:='ORDER';
6357 End If;
6358
6359 --FP bug 3335024 included summary line flag condition below
6360 If l_order_status_rec.ALL_LINES_FLAG = 'Y' or l_order_status_rec.summary_line_flag = 'Y' Then
6361 IF p_x_new_line_rec.item_type_code not in ('INCLUDED','CONFIG') THEN
6362 OE_delayed_requests_Pvt.log_request(
6363 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6364 p_entity_id => p_x_new_line_rec.Header_Id,
6365 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6366 p_requesting_entity_id => p_x_new_line_rec.Header_Id,
6367 p_request_unique_key1 => 'ORDER,BOOK',
6368 p_param1 => p_x_new_line_rec.header_id,
6369 p_param2 => l_event_str,
6370 p_request_type => OE_GLOBALS.G_PRICE_ORDER,
6371 x_return_status => l_return_status);
6372
6373 End If;
6374 End If;
6375 /* BUG 2013611 BEGIN */
6376 IF l_debug_level > 0 THEN
6377 oe_debug_pub.add( 'LOG REVERSE_LIMITS DELAYED REQUEST FROM PROCESS_CANCELLED_LINES ' , 1 ) ;
6378 END IF;
6379 OE_delayed_requests_Pvt.log_request(
6380 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6381 p_entity_id => p_x_new_line_rec.line_id,
6382 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6383 p_requesting_entity_id => p_x_new_line_rec.line_id,
6384 p_request_unique_key1 => 'LINE',
6385 p_param1 => 'CANCEL',
6386 p_param2 => p_x_new_line_rec.price_request_code,
6387 p_param3 => NULL,
6388 p_param4 => NULL,
6389 p_param5 => NULL,
6390 p_param6 => NULL,
6391 p_request_type => OE_GLOBALS.G_REVERSE_LIMITS,
6392 x_return_status => l_return_status);
6393 IF l_debug_level > 0 THEN
6394 oe_debug_pub.add( 'REVERSE_LIMITS DELAYED REQUEST HAS BEEN LOGGED' , 1 ) ;
6395 END IF;
6396 /* BUG 2013611 END */
6397 Else --User partially cancel the line
6398 IF l_debug_level > 0 THEN
6399 oe_debug_pub.add( ' USER HAS PARTIALLY CANCELLED THE LINE' ) ;
6400 END IF;
6401
6402
6403 If p_x_new_line_rec.booked_flag = 'Y' Then
6404 -- l_event_str:= 'LINE,ORDER,BOOK';
6405 -- changed 'LINE,ORDER' to 'BATCH'.
6406 l_event_str:= 'BATCH,BOOK';
6407 Else
6408 -- l_event_str:='LINE,ORDER';
6409 l_event_str:='BATCH';
6410 End If;
6411
6412 If l_order_status_rec.ALL_LINES_FLAG = 'Y' or
6413 l_order_status_rec.Changed_Lines_Flag = 'Y'
6414 Then
6415 --treat changed_lines as all_lines for now, will to
6416 --differential this 2 type in the future
6417 IF p_x_new_line_rec.item_type_code not in ('INCLUDED','CONFIG') THEN
6418 OE_delayed_requests_Pvt.log_request(
6419 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6420 p_entity_id => p_x_new_line_rec.Header_Id,
6421 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6422 p_requesting_entity_id => p_x_new_line_rec.Header_Id,
6423 p_request_unique_key1 => 'BATCH,BOOK',
6424 p_param1 => p_x_new_line_rec.header_id,
6425 p_param2 => l_event_str,
6426 p_request_type => OE_GLOBALS.G_PRICE_ORDER,
6427 x_return_status => l_return_status);
6428
6429 End If; --not in ('INCLUDED','CONFIG')
6430 End If; --ALL_LINES or Change_lines flag
6431
6432 --bug7491829
6433
6434 IF l_debug_level > 0 THEN
6435 oe_debug_pub.add( 'LOG REVERSE_LIMITS DELAYED REQUEST FROM
6436 PROCESS_CANCELLED_LINES FOR PARTIAL CANCEL CASE' , 1 ) ;
6437 END IF;
6438
6439 OE_delayed_requests_Pvt.log_request(
6440 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6441 p_entity_id => p_x_new_line_rec.line_id,
6442 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6443 p_requesting_entity_id => p_x_new_line_rec.line_id,
6444 p_request_unique_key1 => 'LINE',
6445 p_param1 => 'AMEND',
6446 p_param2 => p_x_new_line_rec.price_request_code,
6447 p_param3 => p_ordered_quantity,
6448 p_param4 => p_x_new_line_rec.ordered_quantity,
6449 p_param5 => NULL,
6450 p_param6 => NULL,
6451 p_request_type =>OE_GLOBALS.G_REVERSE_LIMITS,
6452 x_return_status => l_return_status);
6453
6454 IF l_debug_level > 0 THEN
6455 oe_debug_pub.add( 'REVERSE_LIMITS DELAYED REQUEST HAS BEEN LOGGED' , 1 ) ;
6456 END IF;
6457
6458 --bug7491829
6459
6460 End If;
6461
6462 IF l_debug_level > 0 THEN
6463 oe_debug_pub.add( ' LEAVING PROCESS_CANCELLED_LINES' ) ;
6464 END IF;
6465 End;
6466
6467 /*----------------------------------------------------------------------------*/
6468 --Register Changed lines in cache for performance
6469 /*----------------------------------------------------------------------------*/
6470 Procedure Register_Changed_Lines(p_line_id in Number,
6471 p_header_id in Number,
6472 p_operation in Varchar2) Is
6473 l_return_status Varchar2(15);
6474 --
6475 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6476 --
6477 Begin
6478 IF l_debug_level > 0 THEN
6479 oe_debug_pub.add( ' ENTERING OE_LINE_ADJ_UTIL.REGISTER_CHANGED_LINES' ) ;
6480 oe_debug_pub.add( ' P_LINE_ID:'||P_LINE_ID||'+P_HEADER_ID:'||P_HEADER_ID ) ;
6481 END IF;
6482
6483 -----------------------------------------------------------------------------------
6484 --For performance reason, we only need to log delay request to reset the cache once
6485 --per saving.
6486 --When G_CHANGED_LINE_TBL has records, we know that the delayed request for reseting
6487 --the cahce has been logged; therefore, I need not log it.
6488 ------------------------------------------------------------------------------------
6489 If G_CHANGED_LINE_TBL.Count = 0 Then
6490 IF l_debug_level > 0 THEN
6491 oe_debug_pub.add( ' LOGGING DELAYED REQUEST TO RESET G_CHANGED_LINE_TBL' ) ;
6492 END IF;
6493 oe_delayed_requests_pvt.log_request(
6494 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6495 p_entity_id => p_header_id,
6496 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6497 p_requesting_entity_id => p_header_id,
6498 p_request_type => OE_GLOBALS.G_DEL_CHG_LINES,
6499 x_return_status => l_return_status);
6500 IF l_debug_level > 0 THEN
6501 oe_debug_pub.add( ' RETURN STATUS FROM THE DELAYED REQUEST:'||L_RETURN_STATUS ) ;
6502 END IF;
6503 End If;
6504
6505 If p_operation In (OE_GLOBALS.G_OPR_CREATE,OE_GLOBALS.G_OPR_UPDATE) Then
6506 --bug 3020702 begin
6507 G_CHANGED_LINE_TBL(mod(p_line_id,G_BINARY_LIMIT)).line_id :=p_line_id;
6508 G_CHANGED_LINE_TBL(mod(p_line_id,G_BINARY_LIMIT)).header_id :=p_header_id;
6509 --bug 3020702 end
6510 Elsif p_operation = OE_GLOBALS.G_OPR_DELETE Then
6511 If G_CHANGED_LINE_TBL.exists(mod(p_line_id,G_BINARY_LIMIT)) Then
6512 G_CHANGED_LINE_TBL.delete(mod(p_line_id,G_BINARY_LIMIT));
6513 End If;
6514 End If;
6515
6516 IF l_debug_level > 0 THEN
6517 oe_debug_pub.add( ' LEAVING OE_LINE_ADJ_UTIL.REGISTER_CHANGED_LINES' ) ;
6518 END IF;
6519 End;
6520
6521 Procedure Get_Service_Lines(p_header_id IN NUMBER,
6522 x_line_id_tbl OUT NOCOPY OE_ORDER_ADJ_PVT.Index_TBL_TYPE) IS
6523 Cursor get_service_cur IS
6524 Select line_id,
6525 service_reference_line_id
6526 From oe_order_lines_all
6527 Where header_id = p_header_id
6528 And service_reference_line_id IS NOT NULL;
6529
6530 Begin
6531 For J in get_service_cur Loop
6532 x_line_id_tbl(J.service_reference_line_id):=J.line_id;
6533 End Loop;
6534 End;
6535
6536 /* Added the following procedure to fix the bug 2917690 */
6537
6538 Procedure Change_adj_for_uom_change(p_x_line_rec IN OUT NOCOPY OE_Order_PUB.Line_Rec_Type
6539 ) Is
6540 l_return_status Varchar2(15);
6541 l_old_pricing_qty NUMBER;
6542 l_new_pricing_qty NUMBER;
6543
6544 Begin
6545 Oe_Debug_Pub.add(' Entering OE_LINE_ADJ_UTIL.Change_adj_for_uom_change');
6546
6547 IF p_x_line_rec.Pricing_quantity is not null and
6548 p_x_line_rec.Pricing_quantity <> FND_API.G_MISS_NUM and
6549 p_x_line_rec.Pricing_quantity <> 0 THEN
6550
6551 l_old_pricing_qty := p_x_line_rec.Pricing_quantity ;
6552 l_new_pricing_qty :=
6553 OE_Order_Misc_Util.convert_uom(
6554 p_x_line_rec.inventory_item_id,
6555 p_x_line_rec.order_quantity_uom,
6556 p_x_line_rec.pricing_quantity_uom,
6557 p_x_line_rec.ordered_quantity
6558 );
6559 update oe_price_adjustments
6560 set adjusted_amount = adjusted_amount * l_new_pricing_qty / l_old_pricing_qty
6561 where line_id = p_x_Line_rec.line_id
6562 and list_line_type_code in ('DIS','SUR')
6563 and applied_flag = 'Y'
6564 and updated_flag = 'Y'
6565 and arithmetic_operator in ('AMT' , '%' , 'NEWPRICE');
6566
6567 update oe_price_adjustments
6568 set operand = operand * l_new_pricing_qty / l_old_pricing_qty
6569 where line_id = p_x_Line_rec.line_id
6570 and list_line_type_code in ('DIS','SUR')
6571 and applied_flag = 'Y'
6572 and updated_flag = 'Y'
6573 and arithmetic_operator in ('AMT' , 'NEWPRICE');
6574 END IF;
6575
6576 Oe_Debug_Pub.add(' Leaving OE_LINE_ADJ_UTIL.Change_adj_for_uom_change');
6577 End;
6578
6579 /* End of the procedure added to fix the bug 2917690 */
6580
6581 Function has_service_lines(p_header_id IN NUMBER) Return Boolean
6582 IS
6583 l_dummy NUMBER;
6584 Begin
6585 Select line_id
6586 INTO l_dummy
6587 From OE_ORDER_LINES_ALL
6588 Where header_id = p_header_id
6589 AND service_reference_line_id IS NOT NULL
6590 AND rownum = 1;
6591
6592 RETURN True;
6593 Exception
6594 When NO_DATA_FOUND Then
6595 Return False;
6596 End;
6597
6598 Procedure Set_PRG_Cache(p_header_id IN NUMBER) AS
6599 Cursor prg_cur is
6600 select adj1.line_id line_id
6601 from oe_price_adjustments adj1,
6602 oe_price_adj_assocs assoc,
6603 oe_price_adjustments adj2
6604 where adj1.price_adjustment_id = assoc.rltd_price_adj_id AND
6605 assoc.price_adjustment_id = adj2.price_adjustment_id AND
6606 adj2.list_line_type_code = 'PRG' AND
6607 adj2.header_id = p_header_id;
6608 Begin
6609 /*open prg_cur;
6610 fetch prg_cur BULK COLLECT INTO G_PRG_TBL;
6611 close prg_cur;*/
6612
6613 FOR prg IN prg_cur LOOP
6614 G_PRG_TBL(MOD(prg.line_id,G_BINARY_LIMIT)):= prg.line_id;
6615 END LOOP;
6616 End;
6617
6618 Procedure Reset_PRG_Cache As
6619 Begin
6620 G_PRG_TBL.DELETE;
6621 End;
6622
6623 Function IS_PRG_LINE(p_line_id IN NUMBER) RETURN BOOLEAN AS
6624 Begin
6625 IF G_PRG_TBL.EXISTS(MOD(p_line_id,G_BINARY_LIMIT)) THEN
6626 Return TRUE;
6627 ELSE
6628 Return FALSE;
6629 END IF;
6630 End;
6631
6632 END OE_Line_Adj_Util;