[Home] [Help]
PACKAGE BODY: APPS.OE_LINE_ADJ_UTIL
Source
1 PACKAGE BODY OE_Line_Adj_Util AS
2 /* $Header: OEXULADB.pls 120.27.12020000.5 2013/02/13 10:13:14 nilegupt 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 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1271 --
1272 BEGIN
1273
1274 -- Load out record
1275
1276 --x_Line_Adj_rec := p_Line_Adj_rec;
1277 IF l_debug_level > 0 THEN
1278 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.APPLY ATTRIBUTE CHANGES' ) ;
1279 END IF;
1280 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.adjusted_amount,p_old_Line_Adj_rec.adjusted_amount)
1281 THEN
1282 NULL;
1283 END IF;
1284
1285 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.adjusted_amount_per_pqty,p_old_Line_Adj_rec.adjusted_amount_per_pqty)
1286 THEN
1287 NULL;
1288 END IF;
1289
1290 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.pricing_phase_id,p_old_Line_Adj_rec.pricing_phase_id)
1291 THEN
1292 l_price_flag := TRUE;
1293 END IF;
1294
1295 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.price_adjustment_id,p_old_Line_Adj_rec.price_adjustment_id)
1296 THEN
1297 NULL;
1298 END IF;
1299
1300 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.creation_date,p_old_Line_Adj_rec.creation_date)
1301 THEN
1302 NULL;
1303 END IF;
1304
1305 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.created_by,p_old_Line_Adj_rec.created_by)
1306 THEN
1307 NULL;
1308 END IF;
1309
1310 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.last_update_date,p_old_Line_Adj_rec.last_update_date)
1311 THEN
1312 NULL;
1313 END IF;
1314
1315 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.last_updated_by,p_old_Line_Adj_rec.last_updated_by)
1316 THEN
1317 NULL;
1318 END IF;
1319
1320 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.last_update_login,p_old_Line_Adj_rec.last_update_login)
1321 THEN
1322 NULL;
1323 END IF;
1324
1325 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.program_application_id,p_old_Line_Adj_rec.program_application_id)
1326 THEN
1327 NULL;
1328 END IF;
1329
1330 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.program_id,p_old_Line_Adj_rec.program_id)
1331 THEN
1332 NULL;
1333 END IF;
1334
1335 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.program_update_date,p_old_Line_Adj_rec.program_update_date)
1336 THEN
1337 NULL;
1338 END IF;
1339
1340 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.request_id,p_old_Line_Adj_rec.request_id)
1341 THEN
1342 NULL;
1343 END IF;
1344
1345 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.header_id,p_old_Line_Adj_rec.header_id)
1346 THEN
1347 NULL;
1348 END IF;
1349
1350
1351 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.discount_id,
1352 p_old_Line_Adj_rec.discount_id)
1353 THEN
1354 Null;
1355 END IF;
1356
1357 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.discount_line_id,
1358 p_old_Line_Adj_rec.discount_line_id)
1359 THEN
1360 null;
1361 END IF;
1362
1363 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.automatic_flag,p_old_Line_Adj_rec.automatic_flag)
1364 THEN
1365 NULL;
1366 END IF;
1367
1368 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.percent,p_old_Line_Adj_rec.percent)
1369 THEN
1370 NULL;
1371 END IF;
1372
1373 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.line_id,p_old_Line_Adj_rec.line_id)
1374 THEN
1375 NULL;
1376 END IF;
1377
1378 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.context,p_old_Line_Adj_rec.context)
1379 THEN
1380 NULL;
1381 END IF;
1382
1383 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute1,p_old_Line_Adj_rec.attribute1)
1384 THEN
1385 NULL;
1386 END IF;
1387
1388 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute2,p_old_Line_Adj_rec.attribute2)
1389 THEN
1390 NULL;
1391 END IF;
1392
1393 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute3,p_old_Line_Adj_rec.attribute3)
1394 THEN
1395 NULL;
1396 END IF;
1397
1398 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute4,p_old_Line_Adj_rec.attribute4)
1399 THEN
1400 NULL;
1401 END IF;
1402
1403 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute5,p_old_Line_Adj_rec.attribute5)
1404 THEN
1405 NULL;
1406 END IF;
1407
1408 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute6,p_old_Line_Adj_rec.attribute6)
1409 THEN
1410 NULL;
1411 END IF;
1412
1413 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute7,p_old_Line_Adj_rec.attribute7)
1414 THEN
1415 NULL;
1416 END IF;
1417
1418 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute8,p_old_Line_Adj_rec.attribute8)
1419 THEN
1420 NULL;
1421 END IF;
1422
1423 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute9,p_old_Line_Adj_rec.attribute9)
1424 THEN
1425 NULL;
1426 END IF;
1427
1428 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute10,p_old_Line_Adj_rec.attribute10)
1429 THEN
1430 NULL;
1431 END IF;
1432
1433 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute11,p_old_Line_Adj_rec.attribute11)
1434 THEN
1435 NULL;
1436 END IF;
1437
1438 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute12,p_old_Line_Adj_rec.attribute12)
1439 THEN
1440 NULL;
1441 END IF;
1442
1443 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute13,p_old_Line_Adj_rec.attribute13)
1444 THEN
1445 NULL;
1446 END IF;
1447
1448 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute14,p_old_Line_Adj_rec.attribute14)
1449 THEN
1450 NULL;
1451 END IF;
1452
1453 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.attribute15,p_old_Line_Adj_rec.attribute15)
1454 THEN
1455 NULL;
1456 END IF;
1457
1458 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.list_header_id,
1459 p_old_Line_Adj_rec.list_header_id)
1460 THEN
1461 NULL;
1462 END IF;
1463
1464 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.list_line_id,
1465 p_old_Line_Adj_rec.list_line_id)
1466 THEN
1467 NULL;
1468 END IF;
1469
1470 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.list_line_type_code,
1471 p_old_Line_Adj_rec.list_line_type_code)
1472 THEN
1473 NULL;
1474 END IF;
1475
1476 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.modifier_mechanism_type_code,
1477 p_old_Line_Adj_rec.modifier_mechanism_type_code)
1478 THEN
1479 NULL;
1480 END IF;
1481
1482 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.update_allowed,
1483 p_old_Line_Adj_rec.update_allowed)
1484 THEN
1485 NULL;
1486 END IF;
1487
1488 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.updated_flag,
1489 p_old_Line_Adj_rec.updated_flag)
1490 THEN
1491 l_price_flag := TRUE;
1492 IF p_x_line_Adj_rec.ESTIMATED_FLAG = 'Y' AND
1493 p_x_line_Adj_rec.updated_flag = 'Y'
1494 THEN
1495 p_x_line_adj_rec.estimated_flag := 'N';
1496 END IF;
1497 IF p_x_line_Adj_rec.ESTIMATED_FLAG = 'N' AND
1498 p_x_line_Adj_rec.updated_flag = 'N'
1499 THEN
1500 p_x_line_adj_rec.estimated_flag := 'Y';
1501 END IF;
1502 END IF;
1503
1504 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.applied_flag,
1505 p_old_Line_Adj_rec.applied_flag)
1506 THEN
1507 l_price_flag := TRUE;
1508 --added by ksurendr
1509 --bug 4060297
1510 --Delayed request to compute margin
1511 oe_header_Adj_util.log_request_for_margin(p_x_Line_Adj_rec.header_id);
1512 END IF;
1513
1514 -- added by lkxu: populate the change reason when manual adjustment
1515 -- is applied by user.
1516 IF p_x_Line_Adj_rec.applied_flag = 'Y'
1517 AND p_x_Line_Adj_rec.automatic_flag = 'N'
1518 AND p_x_Line_Adj_rec.change_reason_code IS NULL THEN
1519 BEGIN
1520 SELECT lookup_code, meaning
1521 INTO p_x_Line_Adj_rec.change_reason_code,
1522 p_x_Line_Adj_rec.change_reason_text
1523 FROM oe_lookups
1524 WHERE lookup_type = 'CHANGE_CODE'
1525 AND lookup_code = 'MANUAL';
1526
1527 EXCEPTION WHEN NO_DATA_FOUND THEN
1528 null;
1529 END;
1530 END IF;
1531
1532 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.modified_from,
1533 p_old_Line_Adj_rec.modified_from)
1534 THEN
1535 NULL;
1536 END IF;
1537
1538 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.modified_to,
1539 p_old_Line_Adj_rec.modified_to)
1540 THEN
1541 NULL;
1542 END IF;
1543
1544
1545 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.change_reason_code,
1546 p_old_Line_Adj_rec.change_reason_code)
1547 THEN
1548 NULL;
1549 END IF;
1550
1551 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.change_reason_text,
1552 p_old_Line_Adj_rec.change_reason_text)
1553 THEN
1554 NULL;
1555 END IF;
1556
1557 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.operand,
1558 p_old_Line_Adj_rec.operand)
1559 THEN
1560 l_price_flag := TRUE;
1561 l_calculate_commitment_flag := 'Y';
1562
1563 --bug 4060297
1564 oe_header_Adj_util.log_request_for_margin(p_x_Line_Adj_rec.header_id);
1565
1566 -- fixed bug 3271297, to log Verify Payment delayed request
1567 -- when freight charge changes.
1568 IF p_x_Line_Adj_rec.list_line_type_code='FREIGHT_CHARGE' THEN
1569 l_verify_payment_flag := 'Y';
1570 END IF;
1571 END IF;
1572
1573 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.operand_per_pqty,
1574 p_old_Line_Adj_rec.operand_per_pqty)
1575 THEN
1576 l_price_flag := TRUE;
1577 END IF;
1578
1579 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.arithmetic_operator,
1580 p_old_Line_Adj_rec.arithmetic_operator)
1581 THEN
1582 l_price_flag := TRUE;
1583 END IF;
1584
1585 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.COST_ID, p_old_Line_Adj_rec.COST_ID)
1586 THEN
1587 NULL;
1588 END IF;
1589
1590 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.TAX_CODE, p_old_Line_Adj_rec.TAX_CODE)
1591 THEN
1592 NULL;
1593 END IF;
1594
1595 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.TAX_EXEMPT_FLAG, p_old_Line_Adj_rec.TAX_EXEMPT_FLAG)
1596 THEN
1597 NULL;
1598 END IF;
1599
1600 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.TAX_EXEMPT_NUMBER, p_old_Line_Adj_rec.TAX_EXEMPT_NUMBER)
1601 THEN
1602 NULL;
1603 END IF;
1604
1605 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.TAX_EXEMPT_REASON_CODE, p_old_Line_Adj_rec.TAX_EXEMPT_REASON_CODE)
1606 THEN
1607 NULL;
1608 END IF;
1609
1610 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.PARENT_ADJUSTMENT_ID, p_old_Line_Adj_rec.PARENT_ADJUSTMENT_ID)
1611 THEN
1612 NULL;
1613 END IF;
1614
1615 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.INVOICED_FLAG, p_old_Line_Adj_rec.INVOICED_FLAG)
1616 THEN
1617 NULL;
1618 END IF;
1619
1620 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.ESTIMATED_FLAG, p_old_Line_Adj_rec.ESTIMATED_FLAG)
1621 THEN
1622 NULL;
1623 END IF;
1624
1625 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.INC_IN_SALES_PERFORMANCE, p_old_Line_Adj_rec.INC_IN_SALES_PERFORMANCE)
1626 THEN
1627 NULL;
1628 END IF;
1629
1630 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.SPLIT_ACTION_CODE, p_old_Line_Adj_rec.SPLIT_ACTION_CODE)
1631 THEN
1632 NULL;
1633 END IF;
1634
1635 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.CHARGE_TYPE_CODE, p_old_Line_Adj_rec.CHARGE_TYPE_CODE)
1636 THEN
1637 NULL;
1638 END IF;
1639
1640 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.CHARGE_SUBTYPE_CODE, p_old_Line_Adj_rec.CHARGE_SUBTYPE_CODE)
1641 THEN
1642 NULL;
1643 END IF;
1644
1645 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.list_line_no, p_old_Line_Adj_rec.list_line_no)
1646 THEN
1647 NULL;
1648 END IF;
1649
1650 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.source_system_code, p_old_Line_Adj_rec.source_system_code)
1651 THEN
1652 NULL;
1653 END IF;
1654
1655 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.benefit_qty, p_old_Line_Adj_rec.benefit_qty)
1656 THEN
1657 NULL;
1658 END IF;
1659
1660 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.benefit_uom_code, p_old_Line_Adj_rec.benefit_uom_code)
1661 THEN
1662 NULL;
1663 END IF;
1664
1665 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.print_on_invoice_flag, p_old_Line_Adj_rec.print_on_invoice_flag)
1666 THEN
1667 NULL;
1668 END IF;
1669
1670 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.expiration_date, p_old_Line_Adj_rec.expiration_date)
1671 THEN
1672 NULL;
1673 END IF;
1674
1675 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.rebate_transaction_type_code, p_old_Line_Adj_rec.rebate_transaction_type_code)
1676 THEN
1677 NULL;
1678 END IF;
1679
1680 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.rebate_transaction_reference, p_old_Line_Adj_rec.rebate_transaction_reference)
1681 THEN
1682 NULL;
1683 END IF;
1684
1685 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.rebate_payment_system_code, p_old_Line_Adj_rec.rebate_payment_system_code)
1686 THEN
1687 NULL;
1688 END IF;
1689
1690 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.redeemed_date, p_old_Line_Adj_rec.redeemed_date)
1691 THEN
1692 NULL;
1693 END IF;
1694
1695 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.redeemed_flag, p_old_Line_Adj_rec.redeemed_flag)
1696 THEN
1697 NULL;
1698 END IF;
1699
1700 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.accrual_flag, p_old_Line_Adj_rec.accrual_flag)
1701 THEN
1702 NULL;
1703 END IF;
1704
1705 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.range_break_quantity, p_old_Line_Adj_rec.range_break_quantity)
1706 THEN
1707 NULL;
1708 END IF;
1709
1710 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.accrual_conversion_rate, p_old_Line_Adj_rec.accrual_conversion_rate)
1711 THEN
1712 NULL;
1713 END IF;
1714
1715 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.pricing_group_sequence, p_old_Line_Adj_rec.pricing_group_sequence)
1716 THEN
1717 l_price_flag := TRUE;
1718 END IF;
1719
1720 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.modifier_level_code, p_old_Line_Adj_rec.modifier_level_code)
1721 THEN
1722 NULL;
1723 END IF;
1724
1725 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.price_break_type_code, p_old_Line_Adj_rec.price_break_type_code)
1726 THEN
1727 NULL;
1728 END IF;
1729
1730 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.substitution_attribute, p_old_Line_Adj_rec.substitution_attribute)
1731 THEN
1732 NULL;
1733 END IF;
1734
1735 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.proration_type_code, p_old_Line_Adj_rec.proration_type_code)
1736 THEN
1737 NULL;
1738 END IF;
1739
1740 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.credit_or_charge_flag, p_old_Line_Adj_rec.credit_or_charge_flag)
1741 THEN
1742 NULL;
1743 END IF;
1744
1745 IF NOT OE_GLOBALS.Equal(p_x_Line_Adj_rec.include_on_returns_flag, p_old_Line_Adj_rec.include_on_returns_flag)
1746 THEN
1747 NULL;
1748 END IF;
1749
1750 IF NOT OE_GLOBALS.Equal(p_x_line_Adj_rec.INVOICED_AMOUNT, p_old_Line_Adj_rec.INVOICED_AMOUNT)
1751 THEN
1752 NULL;
1753 END IF;
1754
1755 IF l_debug_level > 0 THEN
1756 oe_debug_pub.add( 'RECURSION_MODE'||OE_GLOBALS.G_RECURSION_MODE||' PRICING:'||OE_GLOBALS.G_PRICING_RECURSION , 1 ) ;
1757 oe_debug_pub.add( 'HEADER_ID'||P_X_LINE_ADJ_REC.HEADER_ID , 1 ) ;
1758 oe_debug_pub.add( 'LINE_ID'||P_X_LINE_ADJ_REC.LINE_ID , 1 ) ;
1759 END IF;
1760 if (l_price_flag) then
1761 IF l_debug_level > 0 THEN
1762 oe_debug_pub.add( 'PRICE FLAG:Y' , 1 ) ;
1763 END IF;
1764 else
1765 IF l_debug_level > 0 THEN
1766 oe_debug_pub.add( 'PRICE FLAG:N' , 1 ) ;
1767 END IF;
1768 end if;
1769
1770 -- bug 2378843: don't log request when g_pricing_recursion is set
1771 IF l_price_flag and OE_Globals.G_RECURSION_MODE <> 'Y' AND
1772 OE_GLOBALS.G_PRICING_RECURSION <> 'Y' AND
1773 p_x_line_adj_rec.list_line_type_code NOT IN ('TAX','COST')
1774 Then
1775
1776 IF (p_x_Line_adj_rec.line_id IS NOT NULL) THEN
1777
1778 /* 1905650
1779 G_PRICE_ADJ request should be logged against LINE entity,
1780 not against LINE_ADJ entity
1781 */
1782 If OE_GLOBALS.G_UI_FLAG and nvl(p_x_Line_adj_rec.automatic_flag,'Y') = 'N' Then
1783 --we need to log different delayed request for manual adjustments.
1784 IF l_debug_level > 0 THEN
1785 oe_debug_pub.add( ' UI FLAG IS TRUE , LOGGING UI DELAYED REQUEST FOR ADJ' ) ;
1786 END IF;
1787 oe_delayed_requests_pvt.log_request(
1788 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
1789 p_entity_id => p_x_Line_adj_rec.Line_id,
1790 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
1791 p_requesting_entity_id => p_x_Line_adj_rec.Line_id,
1792 p_request_type => OE_GLOBALS.G_PRICE_ADJ,
1793 p_param1 => 'UI',
1794 x_return_status => l_return_status);
1795 Else
1796 oe_delayed_requests_pvt.log_request(
1797 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
1798 p_entity_id => p_x_Line_adj_rec.Line_id,
1799 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
1800 p_requesting_entity_id => p_x_Line_adj_rec.Line_id,
1801 p_request_type => OE_GLOBALS.G_PRICE_ADJ,
1802 x_return_status => l_return_status);
1803 End If;
1804 -- sol_ord_er #16014165
1805 oe_delayed_requests_pvt.log_request(
1806 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
1807 p_entity_id => p_x_Line_adj_rec.line_id,
1808 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
1809 p_requesting_entity_id => p_x_Line_adj_rec.line_id,
1810 p_request_type => OE_GLOBALS.G_SERVICE_FIRST_PERIOD_BILL,
1811 p_request_unique_key1 => 'LINE',
1812 p_param1 => p_x_Line_adj_rec.line_id,
1813 x_return_status => l_return_status);
1814 -- sol_ord_er #16014165 end
1815 ELSE
1816 oe_delayed_requests_pvt.log_request(
1817 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
1818 p_entity_id => p_x_Line_adj_rec.header_id,
1819 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
1820 p_requesting_entity_id => p_x_Line_adj_rec.header_id,
1821 p_request_type => OE_GLOBALS.G_PRICE_ADJ,
1822 x_return_status => l_return_status);
1823 -- sol_ord_er #16014165
1824 oe_delayed_requests_pvt.log_request(
1825 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
1826 p_entity_id => p_x_Line_adj_rec.Header_Id,
1827 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
1828 p_requesting_entity_id => p_x_Line_adj_rec.Header_Id,
1829 p_request_type => OE_GLOBALS.G_SERVICE_FIRST_PERIOD_BILL,
1830 p_request_unique_key1 => 'ORDER',
1831 p_param1 => p_x_Line_adj_rec.Header_Id,
1832 x_return_status => l_return_status);
1833 -- sol_ord_er #16014165 end
1834 END IF;
1835 l_price_flag := FALSE;
1836 End If;
1837
1838 IF l_calculate_commitment_flag = 'Y' THEN
1839 l_class := NULL;
1840 l_so_source_code := FND_PROFILE.VALUE('ONT_SOURCE_CODE');
1841 l_oe_installed_flag := 'I';
1842 BEGIN
1843 SELECT commitment_id
1844 INTO l_commitment_id
1845 FROM oe_order_lines
1846 WHERE line_id = p_old_line_adj_rec.line_id;
1847
1848 EXCEPTION
1849 WHEN NO_DATA_FOUND THEN
1850 NULL;
1851 END;
1852
1853 IF l_commitment_id IS NOT NULL
1854 AND OE_Commitment_Pvt.Do_Commitment_Sequencing THEN
1855 oe_globals.g_commitment_balance := ARP_BAL_UTIL.GET_COMMITMENT_BALANCE(
1856 l_commitment_id
1857 ,l_class
1858 ,l_so_source_code
1859 ,l_oe_installed_flag );
1860
1861 OE_Delayed_Requests_Pvt.Log_Request(
1862 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
1863 p_entity_id => p_x_line_adj_rec.line_id,
1864 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
1865 p_requesting_entity_id => p_x_line_adj_rec.line_id,
1866 p_request_type => OE_GLOBALS.G_CALCULATE_COMMITMENT,
1867 x_return_status => l_return_status);
1868 END IF;
1869 END IF;
1870
1871 IF (l_verify_payment_flag = 'Y') THEN
1872 --Start bug# 5961160
1873 -- Query the Order Header
1874 IF l_debug_level > 0 THEN
1875 oe_debug_pub.add( 'OEXULADB: BEFORE QUERYING HEADER ID : '|| p_x_line_adj_rec.header_id ) ;
1876 END IF;
1877
1878 OE_Header_UTIL.Query_Row
1879 (p_header_id => p_x_line_adj_rec.header_id
1880 ,x_header_rec => l_header_rec
1881 );
1882
1883 IF l_debug_level > 0
1884 THEN
1885 OE_DEBUG_PUB.ADD('after query header ');
1886 OE_DEBUG_PUB.ADD(' ');
1887 OE_DEBUG_PUB.ADD('================================================');
1888 OE_DEBUG_PUB.ADD('Header ID = '|| l_header_rec.header_id );
1889 OE_DEBUG_PUB.ADD('order_category_code = '|| l_header_rec.order_category_code );
1890 OE_DEBUG_PUB.ADD('Booked flag = '|| l_header_rec.booked_flag );
1891 OE_DEBUG_PUB.ADD('Order number = '|| l_header_rec.order_number );
1892 OE_DEBUG_PUB.ADD('payment_term_id = '|| l_header_rec.payment_term_id );
1893 OE_DEBUG_PUB.ADD('order_type_id = '|| l_header_rec.order_type_id );
1894 OE_DEBUG_PUB.ADD(' ');
1895 OE_DEBUG_PUB.ADD('================================================');
1896 END IF;
1897
1898 -- Call Which_Rule function to find out Which Rule to Apply
1899 IF l_debug_level > 0 THEN
1900 oe_debug_pub.add( 'OEXULADB: BEFORE CALLING WHICH RULE ' ) ;
1901 END IF;
1902
1903 l_calling_action := OE_Verify_Payment_PUB.Which_Rule(p_header_id => p_x_line_adj_rec.header_id);
1904
1905 IF l_debug_level > 0 THEN
1906 oe_debug_pub.add( 'OEXULADB: RULE TO BE USED IS : '|| l_calling_action ) ;
1907 END IF;
1908
1909 IF l_debug_level > 0 THEN
1910 oe_debug_pub.add( 'OEXULADB: BEFORE CHECKING IF THE RULE IS DEFINED OR NOT' ) ;
1911 END IF;
1912
1913 l_rule_defined := OE_Verify_Payment_PUB.Check_Rule_Defined
1914 ( p_header_rec => l_header_rec
1915 , p_calling_action => l_calling_action
1916 ) ;
1917
1918 IF l_debug_level > 0 THEN
1919 oe_debug_pub.add( 'OEXULADB: OUT OF RULE DEFINED : '|| l_rule_defined);
1920 END IF;
1921
1922 IF l_rule_defined = 'Y' THEN
1923 l_credit_check_rule_id := NULL ;
1924
1925 -- Check the Rule to Apply
1926 IF l_debug_level > 0 THEN
1927 oe_debug_pub.add( 'Before L_CREDIT_CHECK_RULE_ID => '|| l_credit_check_rule_id ) ;
1928 END IF;
1929
1930 OE_CREDIT_CHECK_UTIL.Get_Credit_Check_Rule_ID
1931 ( p_calling_action => l_calling_action
1932 , p_order_type_id => l_header_rec.order_type_id
1933 , x_credit_rule_id => l_credit_check_rule_id
1934 );
1935
1936 IF l_debug_level > 0 THEN
1937 oe_debug_pub.add( 'After L_CREDIT_CHECK_RULE_ID => '|| l_credit_check_rule_id ) ;
1938 END IF;
1939
1940 OE_CREDIT_CHECK_UTIL.GET_credit_check_rule
1941 ( p_credit_check_rule_id => l_credit_check_rule_id
1942 , x_credit_check_rules_rec => l_credit_check_rule_rec
1943 );
1944
1945 IF l_debug_level > 0 THEN
1946 oe_debug_pub.add( 'OEXULADB: INCL FREIGHT CHARGE FLAG : '|| l_credit_check_rule_rec.incl_freight_charges_flag);
1947 END IF;
1948
1949 IF NVL(l_credit_check_rule_rec.incl_freight_charges_flag,'N') = 'Y' THEN
1950 BEGIN
1951 SELECT line_category_code
1952 INTO l_line_category_code
1953 FROM oe_order_lines_all
1954 WHERE line_id = p_x_line_adj_rec.line_id;
1955 EXCEPTION WHEN NO_DATA_FOUND THEN
1956 null;
1957 END;
1958 IF l_line_category_code <> 'RETURN' THEN
1959 oe_debug_pub.ADD('OEXULADB: Logging delayed request for Verify Payment');
1960 OE_delayed_requests_Pvt.log_request
1961 (p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
1962 p_entity_id => p_x_line_adj_rec.header_id,
1963 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
1964 p_requesting_entity_id => p_x_line_adj_rec.line_id,
1965 p_request_type => OE_GLOBALS.G_VERIFY_PAYMENT,
1966 x_return_status => l_return_status);
1967 END IF;
1968 --CC Reversal ER#16014135 Start
1969 ELSIF OE_VERIFY_PAYMENT_PUB.Get_CC_Rev_Reauth_Code( p_x_line_adj_rec.header_id) IS NOT NULL THEN
1970 BEGIN
1971 SELECT line_category_code
1972 INTO l_line_category_code
1973 FROM oe_order_lines_all
1974 WHERE line_id = p_x_line_adj_rec.line_id;
1975 EXCEPTION WHEN NO_DATA_FOUND THEN
1976 null;
1977 END;
1978 IF l_line_category_code <> 'RETURN' THEN
1979 IF l_debug_level > 0 THEN
1980 oe_debug_pub.ADD('OEXULADB: Logging delayed request for Verify Payment CC Reversal',5);
1981 END IF;
1982 oe_verify_payment_pub.G_credit_check_flag := 'N' ;
1983
1984 OE_delayed_requests_Pvt.log_request
1985 (p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
1986 p_entity_id => p_x_line_adj_rec.header_id,
1987 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
1988 p_requesting_entity_id => p_x_line_adj_rec.line_id,
1989 p_request_type => OE_GLOBALS.G_VERIFY_PAYMENT,
1990 x_return_status => l_return_status);
1991 END IF;
1992 --CC Reversal ER#16014135 End
1993 END IF;
1994 --CC Reversal ER#16014135 Start
1995 --ELSEIF for rule defined
1996 ELSIF OE_VERIFY_PAYMENT_PUB.Get_CC_Rev_Reauth_Code( p_x_line_adj_rec.header_id) IS NOT NULL THEN
1997 -- if no rule defined .. Need to log verify payment request for processing authorization.
1998 IF l_debug_level > 0 THEN
1999 oe_debug_pub.ADD('OEXULADB: Logging delayed request for Verify Payment CC Reversal when rule not exists',5);
2000 END IF;
2001 BEGIN
2002 SELECT line_category_code
2003 INTO l_line_category_code
2004 FROM oe_order_lines_all
2005 WHERE line_id = p_x_line_adj_rec.line_id;
2006 EXCEPTION WHEN NO_DATA_FOUND THEN
2007 null;
2008 END;
2009 IF l_debug_level > 0 THEN
2010 oe_debug_pub.ADD('OEXULADB:l_line_category_code '||l_line_category_code);
2011 END IF;
2012 IF l_line_category_code <> 'RETURN' THEN
2013 IF l_debug_level > 0 THEN
2014 oe_debug_pub.ADD('OEXULADB: Logging delayed request for Verify Payment CC Reversal',5);
2015 END IF;
2016 oe_verify_payment_pub.G_credit_check_flag := 'N' ;
2017 OE_delayed_requests_Pvt.log_request
2018 (p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
2019 p_entity_id => p_x_line_adj_rec.header_id,
2020 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
2021 p_requesting_entity_id => p_x_line_adj_rec.line_id,
2022 p_request_type => OE_GLOBALS.G_VERIFY_PAYMENT,
2023 x_return_status => l_return_status);
2024 END IF;
2025 --CC Reversal ER#16014135 End
2026 END IF;
2027 --End bug#5961160
2028 END IF;
2029
2030 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
2031 THEN
2032 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2033 END IF;
2034 IF l_debug_level > 0 THEN
2035 oe_debug_pub.add( 'OE_LINE_ADJ_UTIL.LEAVING APPLY_ATTRIBUTE_CHANGES' ) ;
2036 END IF;
2037 END Apply_Attribute_Changes;
2038
2039 -- Procedure Complete_Record
2040
2041 PROCEDURE Complete_Record
2042 ( p_x_Line_Adj_rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
2043 , p_old_Line_Adj_rec IN OE_Order_PUB.Line_Adj_Rec_Type
2044 )
2045 IS
2046 l_Line_Adj_rec OE_Order_PUB.Line_Adj_Rec_Type := p_x_Line_Adj_rec;
2047 BEGIN
2048
2049 IF l_Line_Adj_rec.adjusted_amount = FND_API.G_MISS_NUM THEN
2050 l_Line_Adj_rec.adjusted_amount := p_old_Line_Adj_rec.adjusted_amount;
2051 END IF;
2052
2053 IF l_Line_Adj_rec.pricing_phase_id = FND_API.G_MISS_NUM THEN
2054 l_Line_Adj_rec.pricing_phase_id := p_old_Line_Adj_rec.pricing_phase_id;
2055 END IF;
2056
2057
2058
2059 IF l_Line_Adj_rec.price_adjustment_id = FND_API.G_MISS_NUM THEN
2060 l_Line_Adj_rec.price_adjustment_id := p_old_Line_Adj_rec.price_adjustment_id;
2061 END IF;
2062
2063 IF l_Line_Adj_rec.creation_date = FND_API.G_MISS_DATE THEN
2064 l_Line_Adj_rec.creation_date := p_old_Line_Adj_rec.creation_date;
2065 END IF;
2066
2067 IF l_Line_Adj_rec.created_by = FND_API.G_MISS_NUM THEN
2068 l_Line_Adj_rec.created_by := p_old_Line_Adj_rec.created_by;
2069 END IF;
2070
2071 IF l_Line_Adj_rec.last_update_date = FND_API.G_MISS_DATE THEN
2072 l_Line_Adj_rec.last_update_date := p_old_Line_Adj_rec.last_update_date;
2073 END IF;
2074
2075 IF l_Line_Adj_rec.last_updated_by = FND_API.G_MISS_NUM THEN
2076 l_Line_Adj_rec.last_updated_by := p_old_Line_Adj_rec.last_updated_by;
2077 END IF;
2078
2079 IF l_Line_Adj_rec.last_update_login = FND_API.G_MISS_NUM THEN
2080 l_Line_Adj_rec.last_update_login := p_old_Line_Adj_rec.last_update_login;
2081 END IF;
2082
2083 IF l_Line_Adj_rec.program_application_id = FND_API.G_MISS_NUM THEN
2084 l_Line_Adj_rec.program_application_id := p_old_Line_Adj_rec.program_application_id;
2085 END IF;
2086
2087 IF l_Line_Adj_rec.program_id = FND_API.G_MISS_NUM THEN
2088 l_Line_Adj_rec.program_id := p_old_Line_Adj_rec.program_id;
2089 END IF;
2090
2091 IF l_Line_Adj_rec.program_update_date = FND_API.G_MISS_DATE THEN
2092 l_Line_Adj_rec.program_update_date := p_old_Line_Adj_rec.program_update_date;
2093 END IF;
2094
2095 IF l_Line_Adj_rec.request_id = FND_API.G_MISS_NUM THEN
2096 l_Line_Adj_rec.request_id := p_old_Line_Adj_rec.request_id;
2097 END IF;
2098
2099 IF l_Line_Adj_rec.header_id = FND_API.G_MISS_NUM THEN
2100 l_Line_Adj_rec.header_id := p_old_Line_Adj_rec.header_id;
2101 END IF;
2102
2103 IF l_Line_Adj_rec.discount_id = FND_API.G_MISS_NUM THEN
2104 l_Line_Adj_rec.discount_id := p_old_Line_Adj_rec.discount_id;
2105 END IF;
2106
2107 IF l_Line_Adj_rec.discount_line_id = FND_API.G_MISS_NUM THEN
2108 l_Line_Adj_rec.discount_line_id := p_old_Line_Adj_rec.discount_line_id;
2109 END IF;
2110
2111 IF l_Line_Adj_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
2112 l_Line_Adj_rec.automatic_flag := p_old_Line_Adj_rec.automatic_flag;
2113 END IF;
2114
2115 IF l_Line_Adj_rec.percent = FND_API.G_MISS_NUM THEN
2116 l_Line_Adj_rec.percent := p_old_Line_Adj_rec.percent;
2117 END IF;
2118
2119 IF l_Line_Adj_rec.line_id = FND_API.G_MISS_NUM THEN
2120 l_Line_Adj_rec.line_id := p_old_Line_Adj_rec.line_id;
2121 END IF;
2122
2123 IF l_Line_Adj_rec.context = FND_API.G_MISS_CHAR THEN
2124 l_Line_Adj_rec.context := p_old_Line_Adj_rec.context;
2125 END IF;
2126
2127 IF l_Line_Adj_rec.attribute1 = FND_API.G_MISS_CHAR THEN
2128 l_Line_Adj_rec.attribute1 := p_old_Line_Adj_rec.attribute1;
2129 END IF;
2130
2131 IF l_Line_Adj_rec.attribute2 = FND_API.G_MISS_CHAR THEN
2132 l_Line_Adj_rec.attribute2 := p_old_Line_Adj_rec.attribute2;
2133 END IF;
2134
2135 IF l_Line_Adj_rec.attribute3 = FND_API.G_MISS_CHAR THEN
2136 l_Line_Adj_rec.attribute3 := p_old_Line_Adj_rec.attribute3;
2137 END IF;
2138
2139 IF l_Line_Adj_rec.attribute4 = FND_API.G_MISS_CHAR THEN
2140 l_Line_Adj_rec.attribute4 := p_old_Line_Adj_rec.attribute4;
2141 END IF;
2142
2143 IF l_Line_Adj_rec.attribute5 = FND_API.G_MISS_CHAR THEN
2144 l_Line_Adj_rec.attribute5 := p_old_Line_Adj_rec.attribute5;
2145 END IF;
2146
2147 IF l_Line_Adj_rec.attribute6 = FND_API.G_MISS_CHAR THEN
2148 l_Line_Adj_rec.attribute6 := p_old_Line_Adj_rec.attribute6;
2149 END IF;
2150
2151 IF l_Line_Adj_rec.attribute7 = FND_API.G_MISS_CHAR THEN
2152 l_Line_Adj_rec.attribute7 := p_old_Line_Adj_rec.attribute7;
2153 END IF;
2154
2155 IF l_Line_Adj_rec.attribute8 = FND_API.G_MISS_CHAR THEN
2156 l_Line_Adj_rec.attribute8 := p_old_Line_Adj_rec.attribute8;
2157 END IF;
2158
2159 IF l_Line_Adj_rec.attribute9 = FND_API.G_MISS_CHAR THEN
2160 l_Line_Adj_rec.attribute9 := p_old_Line_Adj_rec.attribute9;
2161 END IF;
2162
2163 IF l_Line_Adj_rec.attribute10 = FND_API.G_MISS_CHAR THEN
2164 l_Line_Adj_rec.attribute10 := p_old_Line_Adj_rec.attribute10;
2165 END IF;
2166
2167 IF l_Line_Adj_rec.attribute11 = FND_API.G_MISS_CHAR THEN
2168 l_Line_Adj_rec.attribute11 := p_old_Line_Adj_rec.attribute11;
2169 END IF;
2170
2171 IF l_Line_Adj_rec.attribute12 = FND_API.G_MISS_CHAR THEN
2172 l_Line_Adj_rec.attribute12 := p_old_Line_Adj_rec.attribute12;
2173 END IF;
2174
2175 IF l_Line_Adj_rec.attribute13 = FND_API.G_MISS_CHAR THEN
2176 l_Line_Adj_rec.attribute13 := p_old_Line_Adj_rec.attribute13;
2177 END IF;
2178
2179 IF l_Line_Adj_rec.attribute14 = FND_API.G_MISS_CHAR THEN
2180 l_Line_Adj_rec.attribute14 := p_old_Line_Adj_rec.attribute14;
2181 END IF;
2182
2183 IF l_Line_Adj_rec.attribute15 = FND_API.G_MISS_CHAR THEN
2184 l_Line_Adj_rec.attribute15 := p_old_Line_Adj_rec.attribute15;
2185 END IF;
2186
2187 -- new code
2188 IF l_Line_Adj_rec.list_header_id = FND_API.G_MISS_NUM THEN
2189 l_Line_Adj_rec.list_header_id := p_old_Line_Adj_rec.list_header_id;
2190 END IF;
2191
2192 IF l_Line_Adj_rec.list_line_id = FND_API.G_MISS_NUM THEN
2193 l_Line_Adj_rec.list_line_id := p_old_Line_Adj_rec.list_line_id;
2194 END IF;
2195
2196 IF l_Line_Adj_rec.modified_from = FND_API.G_MISS_CHAR THEN
2197 l_Line_Adj_rec.modified_from := p_old_Line_Adj_rec.modified_from;
2198 END IF;
2199
2200 IF l_Line_Adj_rec.modified_to = FND_API.G_MISS_CHAR THEN
2201 l_Line_Adj_rec.modified_to := p_old_Line_Adj_rec.modified_to;
2202 END IF;
2203
2204 IF l_Line_Adj_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
2205 l_Line_Adj_rec.list_line_type_code :=
2206 p_old_Line_Adj_rec.list_line_type_code;
2207 END IF;
2208
2209 IF l_Line_Adj_rec.updated_flag = FND_API.G_MISS_CHAR THEN
2210 l_Line_Adj_rec.updated_flag := p_old_Line_Adj_rec.updated_flag;
2211 END IF;
2212
2213 IF l_Line_Adj_rec.update_allowed = FND_API.G_MISS_CHAR THEN
2214 l_Line_Adj_rec.update_allowed := p_old_Line_Adj_rec.update_allowed;
2215 END IF;
2216
2217 IF l_Line_Adj_rec.applied_flag = FND_API.G_MISS_CHAR THEN
2218 l_Line_Adj_rec.applied_flag := p_old_Line_Adj_rec.applied_flag;
2219 END IF;
2220
2221 IF l_Line_Adj_rec.modifier_mechanism_type_code = FND_API.G_MISS_CHAR THEN
2222 l_Line_Adj_rec.modifier_mechanism_type_code :=
2223 p_old_Line_Adj_rec.modifier_mechanism_type_code;
2224 END IF;
2225
2226 IF l_Line_Adj_rec.change_reason_code = FND_API.G_MISS_CHAR THEN
2227 l_Line_Adj_rec.change_reason_code :=
2228 p_old_Line_Adj_rec.change_reason_code;
2229 END IF;
2230
2231 IF l_Line_Adj_rec.change_reason_text = FND_API.G_MISS_CHAR THEN
2232 l_Line_Adj_rec.change_reason_text :=
2233 p_old_Line_Adj_rec.change_reason_text;
2234 END IF;
2235
2236 IF l_Line_Adj_rec.operand = FND_API.G_MISS_NUM THEN
2237 l_Line_Adj_rec.operand :=
2238 p_old_Line_Adj_rec.operand;
2239 END IF;
2240
2241 IF l_Line_Adj_rec.arithmetic_operator = FND_API.G_MISS_CHAR THEN
2242 l_Line_Adj_rec.arithmetic_operator :=
2243 p_old_Line_Adj_rec.arithmetic_operator;
2244 END IF;
2245
2246 IF l_Line_Adj_rec.cost_id = FND_API.G_MISS_NUM THEN
2247 l_Line_Adj_rec.cost_id := p_old_Line_Adj_rec.cost_id;
2248 END IF;
2249
2250 IF l_Line_Adj_rec.tax_code = FND_API.G_MISS_CHAR THEN
2251 l_Line_Adj_rec.tax_code := p_old_Line_Adj_rec.tax_code;
2252 END IF;
2253
2254 IF l_Line_Adj_rec.tax_exempt_flag = FND_API.G_MISS_CHAR THEN
2255 l_Line_Adj_rec.tax_exempt_flag :=
2256 p_old_Line_Adj_rec.tax_exempt_flag;
2257 END IF;
2258
2259 IF l_Line_Adj_rec.tax_exempt_number = FND_API.G_MISS_CHAR THEN
2260 l_Line_Adj_rec.tax_exempt_number :=
2261 p_old_Line_Adj_rec.tax_exempt_number;
2262 END IF;
2263
2264 IF l_Line_Adj_rec.tax_exempt_reason_code = FND_API.G_MISS_CHAR THEN
2265 l_Line_Adj_rec.tax_exempt_reason_code :=
2266 p_old_Line_Adj_rec.tax_exempt_reason_code;
2267 END IF;
2268
2269 IF l_Line_Adj_rec.parent_adjustment_id = FND_API.G_MISS_NUM THEN
2270 l_Line_Adj_rec.parent_adjustment_id :=
2271 p_old_Line_Adj_rec.parent_adjustment_id;
2272 END IF;
2273
2274 IF l_Line_Adj_rec.invoiced_flag = FND_API.G_MISS_CHAR THEN
2275 l_Line_Adj_rec.invoiced_flag :=
2276 p_old_Line_Adj_rec.invoiced_flag;
2277 END IF;
2278
2279 IF l_Line_Adj_rec.estimated_flag = FND_API.G_MISS_CHAR THEN
2280 l_Line_Adj_rec.estimated_flag :=
2281 p_old_Line_Adj_rec.estimated_flag;
2282 END IF;
2283
2284 IF l_Line_Adj_rec.inc_in_sales_performance = FND_API.G_MISS_CHAR THEN
2285 l_Line_Adj_rec.inc_in_sales_performance :=
2286 p_old_Line_Adj_rec.inc_in_sales_performance;
2287 END IF;
2288
2289 IF l_Line_Adj_rec.split_action_code = FND_API.G_MISS_CHAR THEN
2290 l_Line_Adj_rec.split_action_code :=
2291 p_old_Line_Adj_rec.split_action_code;
2292 END IF;
2293
2294 IF l_Line_Adj_rec.charge_type_code = FND_API.G_MISS_CHAR THEN
2295 l_Line_Adj_rec.charge_type_code :=
2296 p_old_Line_Adj_rec.charge_type_code;
2297 END IF;
2298
2299 IF l_Line_Adj_rec.charge_subtype_code = FND_API.G_MISS_CHAR THEN
2300 l_Line_Adj_rec.charge_subtype_code :=
2301 p_old_Line_Adj_rec.charge_subtype_code;
2302 END IF;
2303
2304 IF l_Line_Adj_rec.list_line_no = FND_API.G_MISS_CHAR THEN
2305 l_Line_Adj_rec.list_line_no :=
2306 p_old_Line_Adj_rec.list_line_no;
2307 END IF;
2308
2309 IF l_Line_Adj_rec.source_system_code = FND_API.G_MISS_CHAR THEN
2310 l_Line_Adj_rec.source_system_code :=
2311 p_old_Line_Adj_rec.source_system_code;
2312 END IF;
2313
2314 IF l_Line_Adj_rec.benefit_qty = FND_API.G_MISS_NUM THEN
2315 l_Line_Adj_rec.benefit_qty :=
2316 p_old_Line_Adj_rec.benefit_qty;
2317 END IF;
2318
2319 IF l_Line_Adj_rec.benefit_uom_code = FND_API.G_MISS_CHAR THEN
2320 l_Line_Adj_rec.benefit_uom_code :=
2321 p_old_Line_Adj_rec.benefit_uom_code;
2322 END IF;
2323
2324 IF l_Line_Adj_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
2325 l_Line_Adj_rec.print_on_invoice_flag :=
2326 p_old_Line_Adj_rec.print_on_invoice_flag;
2327 END IF;
2328
2329 IF l_Line_Adj_rec.expiration_date = FND_API.G_MISS_DATE THEN
2330 l_Line_Adj_rec.expiration_date :=
2331 p_old_Line_Adj_rec.expiration_date;
2332 END IF;
2333
2334 IF l_Line_Adj_rec.rebate_transaction_type_code = FND_API.G_MISS_CHAR THEN
2335 l_Line_Adj_rec.rebate_transaction_type_code :=
2336 p_old_Line_Adj_rec.rebate_transaction_type_code;
2337 END IF;
2338
2339 IF l_Line_Adj_rec.rebate_transaction_reference = FND_API.G_MISS_CHAR THEN
2340 l_Line_Adj_rec.rebate_transaction_reference :=
2341 p_old_Line_Adj_rec.rebate_transaction_reference;
2342 END IF;
2343
2344 IF l_Line_Adj_rec.rebate_payment_system_code = FND_API.G_MISS_CHAR THEN
2345 l_Line_Adj_rec.rebate_payment_system_code :=
2346 p_old_Line_Adj_rec.rebate_payment_system_code;
2347 END IF;
2348
2349 IF l_Line_Adj_rec.redeemed_date = FND_API.G_MISS_DATE THEN
2350 l_Line_Adj_rec.redeemed_date :=
2351 p_old_Line_Adj_rec.redeemed_date;
2352 END IF;
2353
2354 IF l_Line_Adj_rec.redeemed_flag = FND_API.G_MISS_CHAR THEN
2355 l_Line_Adj_rec.redeemed_flag :=
2356 p_old_Line_Adj_rec.redeemed_flag;
2357 END IF;
2358
2359 IF l_Line_Adj_rec.accrual_flag = FND_API.G_MISS_CHAR THEN
2360 l_Line_Adj_rec.accrual_flag :=
2361 p_old_Line_Adj_rec.accrual_flag;
2362 END IF;
2363
2364 IF l_Line_Adj_rec.range_break_quantity = FND_API.G_MISS_NUM THEN
2365 l_Line_Adj_rec.range_break_quantity := p_old_Line_Adj_rec.range_break_quantity;
2366 END IF;
2367
2368 IF l_Line_Adj_rec.accrual_conversion_rate = FND_API.G_MISS_NUM THEN
2369 l_Line_Adj_rec.accrual_conversion_rate := p_old_Line_Adj_rec.accrual_conversion_rate;
2370 END IF;
2371
2372 IF l_Line_Adj_rec.pricing_group_sequence = FND_API.G_MISS_NUM THEN
2373 l_Line_Adj_rec.pricing_group_sequence := p_old_Line_Adj_rec.pricing_group_sequence;
2374 END IF;
2375
2376 IF l_Line_Adj_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
2377 l_Line_Adj_rec.modifier_level_code := p_old_Line_Adj_rec.modifier_level_code;
2378 END IF;
2379
2380 IF l_Line_Adj_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
2381 l_Line_Adj_rec.price_break_type_code := p_old_Line_Adj_rec.price_break_type_code;
2382 END IF;
2383
2384 IF l_Line_Adj_rec.substitution_attribute = FND_API.G_MISS_CHAR THEN
2385 l_Line_Adj_rec.substitution_attribute := p_old_Line_Adj_rec.substitution_attribute;
2386 END IF;
2387
2388 IF l_Line_Adj_rec.proration_type_code = FND_API.G_MISS_CHAR THEN
2389 l_Line_Adj_rec.proration_type_code := p_old_Line_Adj_rec.proration_type_code;
2390 END IF;
2391
2392 IF l_Line_Adj_rec.credit_or_charge_flag = FND_API.G_MISS_CHAR THEN
2393 l_Line_Adj_rec.credit_or_charge_flag := p_old_Line_Adj_rec.credit_or_charge_flag;
2394 END IF;
2395
2396 IF l_Line_Adj_rec.include_on_returns_flag = FND_API.G_MISS_CHAR THEN
2397 l_Line_Adj_rec.include_on_returns_flag := p_old_Line_Adj_rec.include_on_returns_flag;
2398 END IF;
2399
2400 IF l_Line_Adj_rec.ac_context = FND_API.G_MISS_CHAR THEN
2401 l_Line_Adj_rec.ac_context := p_old_Line_Adj_rec.ac_context;
2402 END IF;
2403
2404 IF l_Line_Adj_rec.ac_attribute1 = FND_API.G_MISS_CHAR THEN
2405 l_Line_Adj_rec.ac_attribute1 := p_old_Line_Adj_rec.ac_attribute1;
2406 END IF;
2407
2408 IF l_Line_Adj_rec.ac_attribute2 = FND_API.G_MISS_CHAR THEN
2409 l_Line_Adj_rec.ac_attribute2 := p_old_Line_Adj_rec.ac_attribute2;
2410 END IF;
2411
2412 IF l_Line_Adj_rec.ac_attribute3 = FND_API.G_MISS_CHAR THEN
2413 l_Line_Adj_rec.ac_attribute3 := p_old_Line_Adj_rec.ac_attribute3;
2414 END IF;
2415
2416 IF l_Line_Adj_rec.ac_attribute4 = FND_API.G_MISS_CHAR THEN
2417 l_Line_Adj_rec.ac_attribute4 := p_old_Line_Adj_rec.ac_attribute4;
2418 END IF;
2419
2420 IF l_Line_Adj_rec.ac_attribute5 = FND_API.G_MISS_CHAR THEN
2421 l_Line_Adj_rec.ac_attribute5 := p_old_Line_Adj_rec.ac_attribute5;
2422 END IF;
2423
2424 IF l_Line_Adj_rec.ac_attribute6 = FND_API.G_MISS_CHAR THEN
2425 l_Line_Adj_rec.ac_attribute6 := p_old_Line_Adj_rec.ac_attribute6;
2426 END IF;
2427
2428 IF l_Line_Adj_rec.ac_attribute7 = FND_API.G_MISS_CHAR THEN
2429 l_Line_Adj_rec.ac_attribute7 := p_old_Line_Adj_rec.ac_attribute7;
2430 END IF;
2431
2432 IF l_Line_Adj_rec.ac_attribute8 = FND_API.G_MISS_CHAR THEN
2433 l_Line_Adj_rec.ac_attribute8 := p_old_Line_Adj_rec.ac_attribute8;
2434 END IF;
2435
2436 IF l_Line_Adj_rec.ac_attribute9 = FND_API.G_MISS_CHAR THEN
2437 l_Line_Adj_rec.ac_attribute9 := p_old_Line_Adj_rec.ac_attribute9;
2438 END IF;
2439
2440 IF l_Line_Adj_rec.ac_attribute10 = FND_API.G_MISS_CHAR THEN
2441 l_Line_Adj_rec.ac_attribute10 := p_old_Line_Adj_rec.ac_attribute10;
2442 END IF;
2443
2444 IF l_Line_Adj_rec.ac_attribute11 = FND_API.G_MISS_CHAR THEN
2445 l_Line_Adj_rec.ac_attribute11 := p_old_Line_Adj_rec.ac_attribute11;
2446 END IF;
2447
2448 IF l_Line_Adj_rec.ac_attribute12 = FND_API.G_MISS_CHAR THEN
2449 l_Line_Adj_rec.ac_attribute12 := p_old_Line_Adj_rec.ac_attribute12;
2450 END IF;
2451
2452 IF l_Line_Adj_rec.ac_attribute13 = FND_API.G_MISS_CHAR THEN
2453 l_Line_Adj_rec.ac_attribute13 := p_old_Line_Adj_rec.ac_attribute13;
2454 END IF;
2455
2456 IF l_Line_Adj_rec.ac_attribute14 = FND_API.G_MISS_CHAR THEN
2457 l_Line_Adj_rec.ac_attribute14 := p_old_Line_Adj_rec.ac_attribute14;
2458 END IF;
2459
2460 IF l_Line_Adj_rec.ac_attribute15 = FND_API.G_MISS_CHAR THEN
2461 l_Line_Adj_rec.ac_attribute15 := p_old_Line_Adj_rec.ac_attribute15;
2462 END IF;
2463
2464 --uom begin
2465 IF l_Line_Adj_rec.operand_per_pqty = FND_API.G_MISS_NUM THEN
2466 --bug 3063549
2467 --l_Line_Adj_rec.operand_per_pqty := p_old_Line_Adj_rec.operand_per_pqty;
2468 l_Line_Adj_rec.operand_per_pqty := NULL;
2469 END IF;
2470
2471 IF l_Line_Adj_rec.adjusted_amount_per_pqty = FND_API.G_MISS_NUM THEN
2472 l_Line_Adj_rec.adjusted_amount_per_pqty := p_old_Line_Adj_rec.adjusted_amount_per_pqty;
2473 END IF;
2474 --uom end
2475
2476 IF l_Line_Adj_rec.invoiced_amount = FND_API.G_MISS_NUM THEN
2477 l_Line_Adj_rec.invoiced_amount := p_old_Line_Adj_rec.invoiced_amount;
2478 END IF;
2479
2480 -- eBTax Changes
2481 IF p_x_line_adj_rec.tax_rate_id = FND_API.G_MISS_NUM THEN
2482 p_x_line_adj_rec.tax_rate_id := p_old_line_adj_rec.tax_rate_id;
2483 END IF;
2484 -- end eBTax changes
2485
2486
2487 -- RETURN l_Line_Adj_rec;
2488 p_x_Line_Adj_rec := l_Line_Adj_rec;
2489
2490 END Complete_Record;
2491
2492 -- Procedure Convert_Miss_To_Null
2493
2494 PROCEDURE Convert_Miss_To_Null
2495 ( p_x_Line_Adj_rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
2496 )
2497 IS
2498 l_Line_Adj_rec OE_Order_PUB.Line_Adj_Rec_Type := p_x_Line_Adj_rec;
2499 --
2500 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2501 --
2502 BEGIN
2503
2504 IF l_Line_Adj_rec.adjusted_amount = FND_API.G_MISS_NUM THEN
2505 l_Line_Adj_rec.adjusted_amount := NULL;
2506 END IF;
2507
2508 IF l_Line_Adj_rec.pricing_phase_id = FND_API.G_MISS_NUM THEN
2509 l_Line_Adj_rec.pricing_phase_id := NULL;
2510 END IF;
2511
2512 IF l_Line_Adj_rec.price_adjustment_id = FND_API.G_MISS_NUM THEN
2513 l_Line_Adj_rec.price_adjustment_id := NULL;
2514 END IF;
2515
2516 IF l_Line_Adj_rec.creation_date = FND_API.G_MISS_DATE THEN
2517 l_Line_Adj_rec.creation_date := NULL;
2518 END IF;
2519
2520 IF l_Line_Adj_rec.created_by = FND_API.G_MISS_NUM THEN
2521 l_Line_Adj_rec.created_by := NULL;
2522 END IF;
2523
2524 IF l_Line_Adj_rec.last_update_date = FND_API.G_MISS_DATE THEN
2525 l_Line_Adj_rec.last_update_date := NULL;
2526 END IF;
2527
2528 IF l_Line_Adj_rec.last_updated_by = FND_API.G_MISS_NUM THEN
2529 l_Line_Adj_rec.last_updated_by := NULL;
2530 END IF;
2531
2532 IF l_Line_Adj_rec.last_update_login = FND_API.G_MISS_NUM THEN
2533 l_Line_Adj_rec.last_update_login := NULL;
2534 END IF;
2535
2536 IF l_Line_Adj_rec.program_application_id = FND_API.G_MISS_NUM THEN
2537 l_Line_Adj_rec.program_application_id := NULL;
2538 END IF;
2539
2540 IF l_Line_Adj_rec.program_id = FND_API.G_MISS_NUM THEN
2541 l_Line_Adj_rec.program_id := NULL;
2542 END IF;
2543
2544 IF l_Line_Adj_rec.program_update_date = FND_API.G_MISS_DATE THEN
2545 l_Line_Adj_rec.program_update_date := NULL;
2546 END IF;
2547
2548 IF l_Line_Adj_rec.request_id = FND_API.G_MISS_NUM THEN
2549 l_Line_Adj_rec.request_id := NULL;
2550 END IF;
2551
2552 IF l_Line_Adj_rec.header_id = FND_API.G_MISS_NUM THEN
2553 l_Line_Adj_rec.header_id := NULL;
2554 END IF;
2555
2556 IF l_Line_Adj_rec.discount_id = FND_API.G_MISS_NUM THEN
2557 l_Line_Adj_rec.discount_id := NULL;
2558 END IF;
2559
2560 IF l_Line_Adj_rec.discount_line_id = FND_API.G_MISS_NUM THEN
2561 l_Line_Adj_rec.discount_line_id := NULL;
2562 END IF;
2563
2564 IF l_Line_Adj_rec.automatic_flag = FND_API.G_MISS_CHAR THEN
2565 l_Line_Adj_rec.automatic_flag := NULL;
2566 END IF;
2567
2568 IF l_Line_Adj_rec.percent = FND_API.G_MISS_NUM THEN
2569 l_Line_Adj_rec.percent := NULL;
2570 END IF;
2571
2572 IF l_Line_Adj_rec.line_id = FND_API.G_MISS_NUM THEN
2573 l_Line_Adj_rec.line_id := NULL;
2574 END IF;
2575
2576 IF l_Line_Adj_rec.context = FND_API.G_MISS_CHAR THEN
2577 l_Line_Adj_rec.context := NULL;
2578 END IF;
2579
2580 IF l_Line_Adj_rec.attribute1 = FND_API.G_MISS_CHAR THEN
2581 l_Line_Adj_rec.attribute1 := NULL;
2582 END IF;
2583
2584 IF l_Line_Adj_rec.attribute2 = FND_API.G_MISS_CHAR THEN
2585 l_Line_Adj_rec.attribute2 := NULL;
2586 END IF;
2587
2588 IF l_Line_Adj_rec.attribute3 = FND_API.G_MISS_CHAR THEN
2589 l_Line_Adj_rec.attribute3 := NULL;
2590 END IF;
2591
2592 IF l_Line_Adj_rec.attribute4 = FND_API.G_MISS_CHAR THEN
2593 l_Line_Adj_rec.attribute4 := NULL;
2594 END IF;
2595
2596 IF l_Line_Adj_rec.attribute5 = FND_API.G_MISS_CHAR THEN
2597 l_Line_Adj_rec.attribute5 := NULL;
2598 END IF;
2599
2600 IF l_Line_Adj_rec.attribute6 = FND_API.G_MISS_CHAR THEN
2601 l_Line_Adj_rec.attribute6 := NULL;
2602 END IF;
2603
2604 IF l_Line_Adj_rec.attribute7 = FND_API.G_MISS_CHAR THEN
2605 l_Line_Adj_rec.attribute7 := NULL;
2606 END IF;
2607
2608 IF l_Line_Adj_rec.attribute8 = FND_API.G_MISS_CHAR THEN
2609 l_Line_Adj_rec.attribute8 := NULL;
2610 END IF;
2611
2612 IF l_Line_Adj_rec.attribute9 = FND_API.G_MISS_CHAR THEN
2613 l_Line_Adj_rec.attribute9 := NULL;
2614 END IF;
2615
2616 IF l_Line_Adj_rec.attribute10 = FND_API.G_MISS_CHAR THEN
2617 l_Line_Adj_rec.attribute10 := NULL;
2618 END IF;
2619
2620 IF l_Line_Adj_rec.attribute11 = FND_API.G_MISS_CHAR THEN
2621 l_Line_Adj_rec.attribute11 := NULL;
2622 END IF;
2623
2624 IF l_Line_Adj_rec.attribute12 = FND_API.G_MISS_CHAR THEN
2625 l_Line_Adj_rec.attribute12 := NULL;
2626 END IF;
2627
2628 IF l_Line_Adj_rec.attribute13 = FND_API.G_MISS_CHAR THEN
2629 l_Line_Adj_rec.attribute13 := NULL;
2630 END IF;
2631
2632 IF l_Line_Adj_rec.attribute14 = FND_API.G_MISS_CHAR THEN
2633 l_Line_Adj_rec.attribute14 := NULL;
2634 END IF;
2635
2636 IF l_Line_Adj_rec.attribute15 = FND_API.G_MISS_CHAR THEN
2637 l_Line_Adj_rec.attribute15 := NULL;
2638 END IF;
2639
2640 IF l_Line_Adj_rec.list_header_id = FND_API.G_MISS_NUM THEN
2641 l_Line_Adj_rec.list_header_id := NULL;
2642 END IF;
2643
2644 IF l_Line_Adj_rec.list_line_id = FND_API.G_MISS_NUM THEN
2645 l_Line_Adj_rec.list_line_id := NULL;
2646 END IF;
2647
2648 IF l_Line_Adj_rec.modified_from = FND_API.G_MISS_CHAR THEN
2649 l_Line_Adj_rec.modified_from := NULL;
2650 END IF;
2651 IF l_Line_Adj_rec.modified_to = FND_API.G_MISS_CHAR THEN
2652 l_Line_Adj_rec.modified_to := NULL;
2653 END IF;
2654
2655 IF l_Line_Adj_rec.list_line_type_code = FND_API.G_MISS_CHAR THEN
2656 l_Line_Adj_rec.list_line_type_code := NULL;
2657 END IF;
2658
2659 IF l_Line_Adj_rec.updated_flag = FND_API.G_MISS_CHAR THEN
2660 l_Line_Adj_rec.updated_flag := NULL;
2661 END IF;
2662
2663 IF l_Line_Adj_rec.update_allowed = FND_API.G_MISS_CHAR THEN
2664 l_Line_Adj_rec.update_allowed := NULL;
2665 END IF;
2666
2667 IF l_Line_Adj_rec.applied_flag = FND_API.G_MISS_CHAR THEN
2668 l_Line_Adj_rec.applied_flag := NULL;
2669 END IF;
2670
2671 IF l_Line_Adj_rec.modifier_mechanism_type_code = FND_API.G_MISS_CHAR THEN
2672 l_Line_Adj_rec.modifier_mechanism_type_code := NULL;
2673 END IF;
2674
2675 IF l_Line_Adj_rec.change_reason_code = FND_API.G_MISS_CHAR THEN
2676 l_Line_Adj_rec.change_reason_code := NULL;
2677 END IF;
2678
2679 IF l_Line_Adj_rec.change_reason_text = FND_API.G_MISS_CHAR THEN
2680 l_Line_Adj_rec.change_reason_text := NULL ;
2681 END IF;
2682
2683 IF l_Line_Adj_rec.arithmetic_operator = FND_API.G_MISS_CHAR THEN
2684 l_Line_Adj_rec.arithmetic_operator := NULL ;
2685 END IF;
2686
2687 IF l_Line_Adj_rec.operand = FND_API.G_MISS_NUM THEN
2688 l_Line_Adj_rec.operand := NULL ;
2689 END IF;
2690
2691 IF l_Line_Adj_rec.cost_id = FND_API.G_MISS_NUM THEN
2692 l_Line_Adj_rec.cost_id := NULL ;
2693 END IF;
2694
2695 IF l_Line_Adj_rec.tax_code = FND_API.G_MISS_CHAR THEN
2696 l_Line_Adj_rec.tax_code := NULL ;
2697 END IF;
2698
2699 IF l_Line_Adj_rec.tax_exempt_flag = FND_API.G_MISS_CHAR THEN
2700 l_Line_Adj_rec.tax_exempt_flag := NULL ;
2701 END IF;
2702
2703 IF l_Line_Adj_rec.tax_exempt_number = FND_API.G_MISS_CHAR THEN
2704 l_Line_Adj_rec.tax_exempt_number := NULL ;
2705 END IF;
2706
2707 IF l_Line_Adj_rec.tax_exempt_reason_code = FND_API.G_MISS_CHAR THEN
2708 l_Line_Adj_rec.tax_exempt_reason_code := NULL ;
2709 END IF;
2710
2711 IF l_Line_Adj_rec.parent_adjustment_id = FND_API.G_MISS_NUM THEN
2712 l_Line_Adj_rec.parent_adjustment_id := NULL ;
2713 END IF;
2714
2715 IF l_Line_Adj_rec.invoiced_flag = FND_API.G_MISS_CHAR THEN
2716 l_Line_Adj_rec.invoiced_flag := NULL ;
2717 END IF;
2718
2719 IF l_Line_Adj_rec.estimated_flag = FND_API.G_MISS_CHAR THEN
2720 l_Line_Adj_rec.estimated_flag := NULL ;
2721 END IF;
2722
2723 IF l_Line_Adj_rec.inc_in_sales_performance = FND_API.G_MISS_CHAR THEN
2724 l_Line_Adj_rec.inc_in_sales_performance := NULL ;
2725 END IF;
2726
2727 IF l_Line_Adj_rec.split_action_code = FND_API.G_MISS_CHAR THEN
2728 l_Line_Adj_rec.split_action_code := NULL ;
2729 END IF;
2730
2731 IF l_Line_Adj_rec.charge_type_code = FND_API.G_MISS_CHAR THEN
2732 l_Line_Adj_rec.charge_type_code := NULL ;
2733 END IF;
2734
2735 IF l_Line_Adj_rec.charge_subtype_code = FND_API.G_MISS_CHAR THEN
2736 l_Line_Adj_rec.charge_subtype_code := NULL ;
2737 END IF;
2738
2739 IF l_Line_Adj_rec.list_line_no = FND_API.G_MISS_CHAR THEN
2740 l_Line_Adj_rec.list_line_no := NULL ;
2741 END IF;
2742
2743 IF l_Line_Adj_rec.source_system_code = FND_API.G_MISS_CHAR THEN
2744 l_Line_Adj_rec.source_system_code := NULL ;
2745 END IF;
2746
2747 IF l_Line_Adj_rec.benefit_qty = FND_API.G_MISS_NUM THEN
2748 l_Line_Adj_rec.benefit_qty := NULL ;
2749 END IF;
2750
2751 IF l_Line_Adj_rec.benefit_uom_code = FND_API.G_MISS_CHAR THEN
2752 l_Line_Adj_rec.benefit_uom_code := NULL ;
2753 END IF;
2754
2755 IF l_Line_Adj_rec.print_on_invoice_flag = FND_API.G_MISS_CHAR THEN
2756 l_Line_Adj_rec.print_on_invoice_flag := NULL ;
2757 END IF;
2758
2759 IF l_Line_Adj_rec.expiration_date = FND_API.G_MISS_DATE THEN
2760 l_Line_Adj_rec.expiration_date := NULL ;
2761 END IF;
2762
2763 IF l_Line_Adj_rec.rebate_transaction_type_code = FND_API.G_MISS_CHAR THEN
2764 l_Line_Adj_rec.rebate_transaction_type_code := NULL ;
2765 END IF;
2766
2767 IF l_Line_Adj_rec.rebate_transaction_reference = FND_API.G_MISS_CHAR THEN
2768 l_Line_Adj_rec.rebate_transaction_reference := NULL ;
2769 END IF;
2770
2771 IF l_Line_Adj_rec.rebate_payment_system_code = FND_API.G_MISS_CHAR THEN
2772 l_Line_Adj_rec.rebate_payment_system_code := NULL ;
2773 END IF;
2774
2775 IF l_Line_Adj_rec.redeemed_date = FND_API.G_MISS_DATE THEN
2776 l_Line_Adj_rec.redeemed_date := NULL ;
2777 END IF;
2778
2779 IF l_Line_Adj_rec.redeemed_flag = FND_API.G_MISS_CHAR THEN
2780 l_Line_Adj_rec.redeemed_flag := NULL ;
2781 END IF;
2782
2783 IF l_Line_Adj_rec.accrual_flag = FND_API.G_MISS_CHAR THEN
2784 l_Line_Adj_rec.accrual_flag := NULL ;
2785 END IF;
2786
2787 IF l_Line_Adj_rec.range_break_quantity = FND_API.G_MISS_NUM THEN
2788 l_Line_Adj_rec.range_break_quantity := NULL ;
2789 END IF;
2790
2791 IF l_Line_Adj_rec.accrual_conversion_rate = FND_API.G_MISS_NUM THEN
2792 l_Line_Adj_rec.accrual_conversion_rate := NULL ;
2793 END IF;
2794
2795 IF l_Line_Adj_rec.pricing_group_sequence = FND_API.G_MISS_NUM THEN
2796 l_Line_Adj_rec.pricing_group_sequence := NULL ;
2797 END IF;
2798
2799 IF l_Line_Adj_rec.modifier_level_code = FND_API.G_MISS_CHAR THEN
2800 l_Line_Adj_rec.modifier_level_code := NULL ;
2801 END IF;
2802
2803 IF l_Line_Adj_rec.price_break_type_code = FND_API.G_MISS_CHAR THEN
2804 l_Line_Adj_rec.price_break_type_code := NULL ;
2805 END IF;
2806
2807 IF l_Line_Adj_rec.substitution_attribute = FND_API.G_MISS_CHAR THEN
2808 l_Line_Adj_rec.substitution_attribute := NULL ;
2809 END IF;
2810
2811 IF l_Line_Adj_rec.proration_type_code = FND_API.G_MISS_CHAR THEN
2812 l_Line_Adj_rec.proration_type_code := NULL ;
2813 END IF;
2814
2815 IF l_Line_Adj_rec.credit_or_charge_flag = FND_API.G_MISS_CHAR THEN
2816 l_Line_Adj_rec.credit_or_charge_flag := NULL ;
2817 END IF;
2818
2819 IF l_Line_Adj_rec.include_on_returns_flag = FND_API.G_MISS_CHAR THEN
2820 l_Line_Adj_rec.include_on_returns_flag := NULL ;
2821 END IF;
2822
2823 IF l_Line_Adj_rec.ac_context = FND_API.G_MISS_CHAR THEN
2824 l_Line_Adj_rec.ac_context := NULL;
2825 END IF;
2826
2827 IF l_Line_Adj_rec.ac_attribute1 = FND_API.G_MISS_CHAR THEN
2828 l_Line_Adj_rec.ac_attribute1 := NULL;
2829 END IF;
2830
2831 IF l_Line_Adj_rec.ac_attribute2 = FND_API.G_MISS_CHAR THEN
2832 l_Line_Adj_rec.ac_attribute2 := NULL;
2833 END IF;
2834
2835 IF l_Line_Adj_rec.ac_attribute3 = FND_API.G_MISS_CHAR THEN
2836 l_Line_Adj_rec.ac_attribute3 := NULL;
2837 END IF;
2838
2839 IF l_Line_Adj_rec.ac_attribute4 = FND_API.G_MISS_CHAR THEN
2840 l_Line_Adj_rec.ac_attribute4 := NULL;
2841 END IF;
2842
2843 IF l_Line_Adj_rec.ac_attribute5 = FND_API.G_MISS_CHAR THEN
2844 l_Line_Adj_rec.ac_attribute5 := NULL;
2845 END IF;
2846
2847 IF l_Line_Adj_rec.ac_attribute6 = FND_API.G_MISS_CHAR THEN
2848 l_Line_Adj_rec.ac_attribute6 := NULL;
2849 END IF;
2850
2851 IF l_Line_Adj_rec.ac_attribute7 = FND_API.G_MISS_CHAR THEN
2852 l_Line_Adj_rec.ac_attribute7 := NULL;
2853 END IF;
2854
2855 IF l_Line_Adj_rec.ac_attribute8 = FND_API.G_MISS_CHAR THEN
2856 l_Line_Adj_rec.ac_attribute8 := NULL;
2857 END IF;
2858
2859 IF l_Line_Adj_rec.ac_attribute9 = FND_API.G_MISS_CHAR THEN
2860 l_Line_Adj_rec.ac_attribute9 := NULL;
2861 END IF;
2862
2863 IF l_Line_Adj_rec.ac_attribute10 = FND_API.G_MISS_CHAR THEN
2864 l_Line_Adj_rec.ac_attribute10 := NULL;
2865 END IF;
2866
2867 IF l_Line_Adj_rec.ac_attribute11 = FND_API.G_MISS_CHAR THEN
2868 l_Line_Adj_rec.ac_attribute11 := NULL;
2869 END IF;
2870
2871 IF l_Line_Adj_rec.ac_attribute12 = FND_API.G_MISS_CHAR THEN
2872 l_Line_Adj_rec.ac_attribute12 := NULL;
2873 END IF;
2874
2875 IF l_Line_Adj_rec.ac_attribute13 = FND_API.G_MISS_CHAR THEN
2876 l_Line_Adj_rec.ac_attribute13 := NULL;
2877 END IF;
2878
2879 IF l_Line_Adj_rec.ac_attribute14 = FND_API.G_MISS_CHAR THEN
2880 l_Line_Adj_rec.ac_attribute14 := NULL;
2881 END IF;
2882
2883 IF l_Line_Adj_rec.ac_attribute15 = FND_API.G_MISS_CHAR THEN
2884 l_Line_Adj_rec.ac_attribute15 := NULL;
2885 END IF;
2886
2887 --uom begin
2888 IF l_Line_Adj_rec.operand_per_pqty = FND_API.G_MISS_NUM THEN
2889 l_Line_Adj_rec.operand_per_pqty := NULL;
2890 END IF;
2891
2892 IF l_Line_Adj_rec.adjusted_amount_per_pqty = FND_API.G_MISS_NUM THEN
2893 l_Line_Adj_rec.adjusted_amount_per_pqty := NULL;
2894 END IF;
2895
2896 --uom end
2897
2898 IF l_Line_Adj_rec.invoiced_amount = FND_API.G_MISS_NUM THEN
2899 l_Line_Adj_rec.invoiced_amount := NULL ;
2900 END IF;
2901
2902 -- eBTax Changes
2903 IF p_x_line_adj_rec.tax_rate_id = FND_API.G_MISS_NUM THEN
2904 p_x_line_adj_rec.tax_rate_id := NULL;
2905 END IF;
2906
2907
2908 -- end eBTax changes
2909
2910 IF l_debug_level > 0 THEN
2911 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.CONVERT_MISS_TO_NULL' , 1 ) ;
2912 END IF;
2913
2914 -- RETURN l_Line_Adj_rec;
2915 p_x_Line_Adj_rec := l_Line_Adj_rec;
2916
2917 END Convert_Miss_To_Null;
2918
2919 -- Procedure Update_Row
2920
2921 PROCEDURE Update_Row
2922 ( p_Line_Adj_rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
2923 )
2924 IS
2925 l_lock_control NUMBER;
2926 l_index NUMBER;
2927 l_return_status VARCHAR2(1);
2928 --
2929 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2930 --
2931 BEGIN
2932 IF l_debug_level > 0 THEN
2933 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2934 END IF;
2935
2936 -- increment lock_control by 1 whenever the record is updated
2937 SELECT lock_control
2938 INTO l_lock_control
2939 FROM OE_PRICE_ADJUSTMENTS
2940 WHERE price_adjustment_id = p_Line_Adj_rec.price_adjustment_id;
2941
2942 l_lock_control := l_lock_control + 1;
2943
2944 --calling notification framework to update global picture
2945 --check code release level first. Notification framework is at Pack H level
2946 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
2947 IF l_debug_level > 0 THEN
2948 oe_debug_pub.add( 'JFC: LINE_PRICE_ADJ_ID=' || P_LINE_ADJ_REC.PRICE_ADJUSTMENT_ID ) ;
2949 END IF;
2950 OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
2951 p_Line_adj_rec =>p_line_adj_rec,
2952 p_line_adj_id => p_line_adj_rec.price_adjustment_id,
2953 x_index => l_index,
2954 x_return_status => l_return_status);
2955 IF l_debug_level > 0 THEN
2956 oe_debug_pub.add( 'UPDATE_GLOBAL RETURN STATUS FROM OE_LINE_ADJ_UTIL.UPDATE_ROW IS: ' || L_RETURN_STATUS ) ;
2957 END IF;
2958 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2959 IF l_debug_level > 0 THEN
2960 oe_debug_pub.add( 'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
2961 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2962 END IF;
2963 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2964 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2965 IF l_debug_level > 0 THEN
2966 oe_debug_pub.add( 'UPDATE_GLOBAL_PICTURE ERROR IN OE_LINE_ADJ_UTIL.UPDATE_ROW' ) ;
2967 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.UPDATE_ROW' , 1 ) ;
2968 END IF;
2969 RAISE FND_API.G_EXC_ERROR;
2970 END IF;
2971 END IF; /* code_release_level*/
2972 -- notification framework end
2973
2974 UPDATE OE_PRICE_ADJUSTMENTS
2975 SET PRICE_ADJUSTMENT_ID = p_Line_Adj_rec.price_adjustment_id
2976 , CREATION_DATE = p_Line_Adj_rec.creation_date
2977 , CREATED_BY = p_Line_Adj_rec.created_by
2978 , LAST_UPDATE_DATE = p_Line_Adj_rec.last_update_date
2979 , LAST_UPDATED_BY = p_Line_Adj_rec.last_updated_by
2980 , LAST_UPDATE_LOGIN = p_Line_Adj_rec.last_update_login
2981 , PROGRAM_APPLICATION_ID = p_Line_Adj_rec.program_application_id
2982 , PROGRAM_ID = p_Line_Adj_rec.program_id
2983 , PROGRAM_UPDATE_DATE = p_Line_Adj_rec.program_update_date
2984 , REQUEST_ID = p_Line_Adj_rec.request_id
2985 , HEADER_ID = p_Line_Adj_rec.header_id
2986 , DISCOUNT_ID = p_Line_Adj_rec.discount_id
2987 , DISCOUNT_LINE_ID = p_Line_Adj_rec.discount_line_id
2988 , AUTOMATIC_FLAG = p_Line_Adj_rec.automatic_flag
2989 , PERCENT = p_Line_Adj_rec.percent
2990 , LINE_ID = p_Line_Adj_rec.line_id
2991 , CONTEXT = p_Line_Adj_rec.context
2992 , ATTRIBUTE1 = p_Line_Adj_rec.attribute1
2993 , ATTRIBUTE2 = p_Line_Adj_rec.attribute2
2994 , ATTRIBUTE3 = p_Line_Adj_rec.attribute3
2995 , ATTRIBUTE4 = p_Line_Adj_rec.attribute4
2996 , ATTRIBUTE5 = p_Line_Adj_rec.attribute5
2997 , ATTRIBUTE6 = p_Line_Adj_rec.attribute6
2998 , ATTRIBUTE7 = p_Line_Adj_rec.attribute7
2999 , ATTRIBUTE8 = p_Line_Adj_rec.attribute8
3000 , ATTRIBUTE9 = p_Line_Adj_rec.attribute9
3001 , ATTRIBUTE10 = p_Line_Adj_rec.attribute10
3002 , ATTRIBUTE11 = p_Line_Adj_rec.attribute11
3003 , ATTRIBUTE12 = p_Line_Adj_rec.attribute12
3004 , ATTRIBUTE13 = p_Line_Adj_rec.attribute13
3005 , ATTRIBUTE14 = p_Line_Adj_rec.attribute14
3006 , ATTRIBUTE15 = p_Line_Adj_rec.attribute15
3007 , ORIG_SYS_DISCOUNT_REF = p_Line_Adj_rec.orig_sys_discount_ref
3008 , LIST_HEADER_ID = p_Line_Adj_rec.list_header_id
3009 , LIST_LINE_ID = p_Line_Adj_rec.list_line_id
3010 , LIST_LINE_TYPE_CODE = p_Line_Adj_rec.list_line_type_code
3011 , MODIFIER_MECHANISM_TYPE_CODE = p_Line_Adj_rec.modifier_mechanism_type_code
3012 , MODIFIED_FROM = p_Line_Adj_rec.modified_from
3013 , MODIFIED_TO = p_Line_Adj_rec.modified_to
3014 , UPDATED_FLAG = p_Line_Adj_rec.updated_flag
3015 , UPDATE_ALLOWED = p_Line_Adj_rec.update_allowed
3016 , APPLIED_FLAG = p_Line_Adj_rec.applied_flag
3017 , CHANGE_REASON_CODE = p_Line_Adj_rec.change_reason_code
3018 , CHANGE_REASON_TEXT = p_Line_Adj_rec.change_reason_text
3019 , operand = p_Line_Adj_rec.operand
3020 , Arithmetic_operator = p_Line_Adj_rec.arithmetic_operator
3021 , COST_ID = p_Line_Adj_rec.cost_id
3022 , TAX_CODE = p_Line_Adj_rec.tax_code
3023 , TAX_EXEMPT_FLAG = p_Line_Adj_rec.tax_exempt_flag
3024 , TAX_EXEMPT_NUMBER = p_Line_Adj_rec.tax_exempt_number
3025 , TAX_EXEMPT_REASON_CODE = p_Line_Adj_rec.tax_exempt_reason_code
3026 , PARENT_ADJUSTMENT_ID = p_Line_Adj_rec.parent_adjustment_id
3027 , INVOICED_FLAG = p_Line_Adj_rec.invoiced_flag
3028 , ESTIMATED_FLAG = p_Line_Adj_rec.estimated_flag
3029 , INC_IN_SALES_PERFORMANCE = p_Line_Adj_rec.inc_in_sales_performance
3030 , SPLIT_ACTION_CODE = p_Line_Adj_rec.split_action_code
3031 , ADJUSTED_AMOUNT = p_Line_Adj_rec.adjusted_amount
3032 , PRICING_PHASE_ID = p_Line_Adj_rec.pricing_phase_id
3033 , CHARGE_TYPE_CODE = p_Line_Adj_rec.charge_type_code
3034 , CHARGE_SUBTYPE_CODE = p_Line_Adj_rec.charge_subtype_code
3035 , LIST_LINE_NO = p_Line_Adj_rec.list_line_no
3036 , SOURCE_SYSTEM_CODE = p_Line_Adj_rec.source_system_code
3037 , BENEFIT_QTY = p_Line_Adj_rec.benefit_qty
3038 , BENEFIT_UOM_CODE = p_Line_Adj_rec.benefit_uom_code
3039 , PRINT_ON_INVOICE_FLAG = p_Line_Adj_rec.print_on_invoice_flag
3040 , EXPIRATION_DATE = p_Line_Adj_rec.expiration_date
3041 , REBATE_TRANSACTION_TYPE_CODE = p_Line_Adj_rec.rebate_transaction_type_code
3042 , REBATE_TRANSACTION_REFERENCE = p_Line_Adj_rec.rebate_transaction_reference
3043 , REBATE_PAYMENT_SYSTEM_CODE = p_Line_Adj_rec.rebate_payment_system_code
3044 , REDEEMED_DATE = p_Line_Adj_rec.redeemed_date
3045 , REDEEMED_FLAG = p_Line_Adj_rec.redeemed_flag
3046 , ACCRUAL_FLAG = p_Line_Adj_rec.accrual_flag
3047 , range_break_quantity = p_Line_Adj_rec.range_break_quantity
3048 , accrual_conversion_rate = p_Line_Adj_rec.accrual_conversion_rate
3049 , pricing_group_sequence = p_Line_Adj_rec.pricing_group_sequence
3050 , modifier_level_code = p_Line_Adj_rec.modifier_level_code
3051 , price_break_type_code = p_Line_Adj_rec.price_break_type_code
3052 , substitution_attribute = p_Line_Adj_rec.substitution_attribute
3053 , proration_type_code = p_Line_Adj_rec.proration_type_code
3054 , CREDIT_OR_CHARGE_FLAG = p_Line_Adj_rec.credit_or_charge_flag
3055 , INCLUDE_ON_RETURNS_FLAG = p_Line_Adj_rec.include_on_returns_flag
3056 , AC_CONTEXT = p_Line_Adj_rec.ac_context
3057 , AC_ATTRIBUTE1 = p_Line_Adj_rec.ac_attribute1
3058 , AC_ATTRIBUTE2 = p_Line_Adj_rec.ac_attribute2
3059 , AC_ATTRIBUTE3 = p_Line_Adj_rec.ac_attribute3
3060 , AC_ATTRIBUTE4 = p_Line_Adj_rec.ac_attribute4
3061 , AC_ATTRIBUTE5 = p_Line_Adj_rec.ac_attribute5
3062 , AC_ATTRIBUTE6 = p_Line_Adj_rec.ac_attribute6
3063 , AC_ATTRIBUTE7 = p_Line_Adj_rec.ac_attribute7
3064 , AC_ATTRIBUTE8 = p_Line_Adj_rec.ac_attribute8
3065 , AC_ATTRIBUTE9 = p_Line_Adj_rec.ac_attribute9
3066 , AC_ATTRIBUTE10 = p_Line_Adj_rec.ac_attribute10
3067 , AC_ATTRIBUTE11 = p_Line_Adj_rec.ac_attribute11
3068 , AC_ATTRIBUTE12 = p_Line_Adj_rec.ac_attribute12
3069 , AC_ATTRIBUTE13 = p_Line_Adj_rec.ac_attribute13
3070 , AC_ATTRIBUTE14 = p_Line_Adj_rec.ac_attribute14
3071 , AC_ATTRIBUTE15 = p_Line_Adj_rec.ac_attribute15
3072 , LOCK_CONTROL = l_lock_control
3073 --uom begin
3074 , OPERAND_PER_PQTY = p_line_adj_rec.operand_per_pqty
3075 , ADJUSTED_AMOUNT_PER_PQTY = p_line_adj_rec.adjusted_amount_per_pqty
3076 --uom end
3077 , INVOICED_AMOUNT = p_Line_Adj_rec.invoiced_amount
3078 -- eBTax changes
3079 , TAX_RATE_ID = p_Line_Adj_rec.tax_rate_id
3080
3081 WHERE PRICE_ADJUSTMENT_ID = p_Line_Adj_rec.price_adjustment_id
3082 ;
3083
3084 p_Line_Adj_rec.lock_control := l_lock_control;
3085 IF l_debug_level > 0 THEN
3086 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.UPDATE_ROW.' , 1 ) ;
3087 END IF;
3088
3089 EXCEPTION
3090
3091 WHEN OTHERS THEN
3092
3093 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3094 THEN
3095 OE_MSG_PUB.Add_Exc_Msg
3096 ( G_PKG_NAME
3097 , 'Update_Row'
3098 );
3099 END IF;
3100 IF l_debug_level > 0 THEN
3101 oe_debug_pub.add( 'EXCEPTION IN UPDATE_ROW'||SQLERRM , 2 ) ;
3102 END IF;
3103 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3104
3105 END Update_Row;
3106
3107 --To prevent unique key violation on price_adjustment_table next time
3108 Procedure Reset_Sequence Is
3109 h number;
3110 i number;
3111 k number;
3112 j number;
3113 l number;
3114 begin
3115 select max(price_adjustment_id)
3116 into j
3117 from oe_price_adjustments;
3118
3119 Select oe_price_adjustments_s.nextval
3120 Into h
3121 From dual;
3122
3123 If j > h and j <> fnd_api.g_miss_num Then
3124 l:=j-h+10;
3125 for i in 1..l loop
3126 select oe_price_adjustments_s.nextval into k from dual;
3127 end loop;
3128 End If;
3129
3130 end;
3131
3132 -- Procedure Insert_Row
3133
3134 PROCEDURE Insert_Row
3135 ( p_Line_Adj_rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
3136 )
3137 IS
3138 l_lock_control NUMBER := 1;
3139 l_index NUMBER;
3140 l_return_status VARCHAR2(1);
3141 --
3142 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3143 --
3144 BEGIN
3145 IF l_debug_level > 0 THEN
3146 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.INSERT_ROW' , 1 ) ;
3147 oe_debug_pub.add(' list_line_id insert:'|| p_Line_Adj_rec.list_line_id||
3148 ' ,operand insert:'||p_line_adj_rec.operand||
3149 ' ,operand pqty insert:'||p_line_adj_rec.operand_per_pqty||
3150 ' ,applied_flag insert:'||p_line_adj_rec.applied_flag||
3151 ' ,list_line_type_code:'||p_line_adj_rec.list_line_type_code||
3152 ' ,operator:'||p_line_adj_rec.arithmetic_operator);
3153 END IF;
3154
3155 INSERT INTO OE_PRICE_ADJUSTMENTS
3156 ( PRICE_ADJUSTMENT_ID
3157 , CREATION_DATE
3158 , CREATED_BY
3159 , LAST_UPDATE_DATE
3160 , LAST_UPDATED_BY
3161 , LAST_UPDATE_LOGIN
3162 , PROGRAM_APPLICATION_ID
3163 , PROGRAM_ID
3164 , PROGRAM_UPDATE_DATE
3165 , REQUEST_ID
3166 , HEADER_ID
3167 , DISCOUNT_ID
3168 , DISCOUNT_LINE_ID
3169 , AUTOMATIC_FLAG
3170 , PERCENT
3171 , LINE_ID
3172 , CONTEXT
3173 , ATTRIBUTE1
3174 , ATTRIBUTE2
3175 , ATTRIBUTE3
3176 , ATTRIBUTE4
3177 , ATTRIBUTE5
3178 , ATTRIBUTE6
3179 , ATTRIBUTE7
3180 , ATTRIBUTE8
3181 , ATTRIBUTE9
3182 , ATTRIBUTE10
3183 , ATTRIBUTE11
3184 , ATTRIBUTE12
3185 , ATTRIBUTE13
3186 , ATTRIBUTE14
3187 , ATTRIBUTE15
3188 , ORIG_SYS_DISCOUNT_REF
3189 , LIST_HEADER_ID
3190 , LIST_LINE_ID
3191 , LIST_LINE_TYPE_CODE
3192 , MODIFIER_MECHANISM_TYPE_CODE
3193 , MODIFIED_FROM
3194 , MODIFIED_TO
3195 , UPDATED_FLAG
3196 , UPDATE_ALLOWED
3197 , APPLIED_FLAG
3198 , CHANGE_REASON_CODE
3199 , CHANGE_REASON_TEXT
3200 , operand
3201 , Arithmetic_operator
3202 , COST_ID
3203 , TAX_CODE
3204 , TAX_EXEMPT_FLAG
3205 , TAX_EXEMPT_NUMBER
3206 , TAX_EXEMPT_REASON_CODE
3207 , PARENT_ADJUSTMENT_ID
3208 , INVOICED_FLAG
3209 , ESTIMATED_FLAG
3210 , INC_IN_SALES_PERFORMANCE
3211 , SPLIT_ACTION_CODE
3212 , ADJUSTED_AMOUNT
3213 , PRICING_PHASE_ID
3214 , CHARGE_TYPE_CODE
3215 , CHARGE_SUBTYPE_CODE
3216 , list_line_no
3217 , source_system_code
3218 , benefit_qty
3219 , benefit_uom_code
3220 , print_on_invoice_flag
3221 , expiration_date
3222 , rebate_transaction_type_code
3223 , rebate_transaction_reference
3224 , rebate_payment_system_code
3225 , redeemed_date
3226 , redeemed_flag
3227 , accrual_flag
3228 , range_break_quantity
3229 , accrual_conversion_rate
3230 , pricing_group_sequence
3231 , modifier_level_code
3232 , price_break_type_code
3233 , substitution_attribute
3234 , proration_type_code
3235 , CREDIT_OR_CHARGE_FLAG
3236 , INCLUDE_ON_RETURNS_FLAG
3237 , AC_CONTEXT
3238 , AC_ATTRIBUTE1
3239 , AC_ATTRIBUTE2
3240 , AC_ATTRIBUTE3
3241 , AC_ATTRIBUTE4
3242 , AC_ATTRIBUTE5
3243 , AC_ATTRIBUTE6
3244 , AC_ATTRIBUTE7
3245 , AC_ATTRIBUTE8
3246 , AC_ATTRIBUTE9
3247 , AC_ATTRIBUTE10
3248 , AC_ATTRIBUTE11
3249 , AC_ATTRIBUTE12
3250 , AC_ATTRIBUTE13
3251 , AC_ATTRIBUTE14
3252 , AC_ATTRIBUTE15
3253 --uom begin
3254 , OPERAND_PER_PQTY
3255 , ADJUSTED_AMOUNT_PER_PQTY
3256 --uom end
3257 --RETRO{
3258 , retrobill_request_id
3259 --RETRO}
3260 , INVOICED_AMOUNT
3261 , LOCK_CONTROL
3262 -- eBTax Changes
3263 , TAX_RATE_ID
3264 )
3265 VALUES
3266 ( p_Line_Adj_rec.price_adjustment_id
3267 , p_Line_Adj_rec.creation_date
3268 , p_Line_Adj_rec.created_by
3269 , p_Line_Adj_rec.last_update_date
3270 , p_Line_Adj_rec.last_updated_by
3271 , p_Line_Adj_rec.last_update_login
3272 , p_Line_Adj_rec.program_application_id
3273 , p_Line_Adj_rec.program_id
3274 , p_Line_Adj_rec.program_update_date
3275 , p_Line_Adj_rec.request_id
3276 , p_Line_Adj_rec.header_id
3277 , p_Line_Adj_rec.discount_id
3278 , p_Line_Adj_rec.discount_line_id
3279 , p_Line_Adj_rec.automatic_flag
3280 , p_Line_Adj_rec.percent
3281 , p_Line_Adj_rec.line_id
3282 , p_Line_Adj_rec.context
3283 , p_Line_Adj_rec.attribute1
3284 , p_Line_Adj_rec.attribute2
3285 , p_Line_Adj_rec.attribute3
3286 , p_Line_Adj_rec.attribute4
3287 , p_Line_Adj_rec.attribute5
3288 , p_Line_Adj_rec.attribute6
3289 , p_Line_Adj_rec.attribute7
3290 , p_Line_Adj_rec.attribute8
3291 , p_Line_Adj_rec.attribute9
3292 , p_Line_Adj_rec.attribute10
3293 , p_Line_Adj_rec.attribute11
3294 , p_Line_Adj_rec.attribute12
3295 , p_Line_Adj_rec.attribute13
3296 , p_Line_Adj_rec.attribute14
3297 , p_Line_Adj_rec.attribute15
3298 , p_Line_Adj_rec.orig_sys_discount_ref
3299 , p_Line_Adj_rec.LIST_HEADER_ID
3300 , p_Line_Adj_rec.LIST_LINE_ID
3301 , p_Line_Adj_rec.LIST_LINE_TYPE_CODE
3302 , p_Line_Adj_rec.MODIFIER_MECHANISM_TYPE_CODE
3303 , p_Line_Adj_rec.MODIFIED_FROM
3304 , p_Line_Adj_rec.MODIFIED_TO
3305 , p_Line_Adj_rec.UPDATED_FLAG
3306 , p_Line_Adj_rec.UPDATE_ALLOWED
3307 , p_Line_Adj_rec.APPLIED_FLAG
3308 , p_Line_Adj_rec.CHANGE_REASON_CODE
3309 , p_Line_Adj_rec.CHANGE_REASON_TEXT
3310 , p_Line_Adj_rec.operand
3311 , p_Line_Adj_rec.arithmetic_operator
3312 , p_line_Adj_rec.COST_ID
3313 , p_line_Adj_rec.TAX_CODE
3314 , p_line_Adj_rec.TAX_EXEMPT_FLAG
3315 , p_line_Adj_rec.TAX_EXEMPT_NUMBER
3316 , p_line_Adj_rec.TAX_EXEMPT_REASON_CODE
3317 , p_line_Adj_rec.PARENT_ADJUSTMENT_ID
3318 , p_line_Adj_rec.INVOICED_FLAG
3319 , p_line_Adj_rec.ESTIMATED_FLAG
3320 , p_line_Adj_rec.INC_IN_SALES_PERFORMANCE
3321 , p_line_Adj_rec.SPLIT_ACTION_CODE
3322 , p_line_Adj_rec.ADJUSTED_AMOUNT
3323 , p_line_Adj_rec.PRICING_PHASE_ID
3324 , p_line_Adj_rec.CHARGE_TYPE_CODE
3325 , p_line_Adj_rec.CHARGE_SUBTYPE_CODE
3326 , p_Line_Adj_rec.list_line_no
3327 , p_Line_Adj_rec.source_system_code
3328 , p_Line_Adj_rec.benefit_qty
3329 , p_Line_Adj_rec.benefit_uom_code
3330 , p_Line_Adj_rec.print_on_invoice_flag
3331 , p_Line_Adj_rec.expiration_date
3332 , p_Line_Adj_rec.rebate_transaction_type_code
3333 , p_Line_Adj_rec.rebate_transaction_reference
3334 , p_Line_Adj_rec.rebate_payment_system_code
3335 , p_Line_Adj_rec.redeemed_date
3336 , p_Line_Adj_rec.redeemed_flag
3337 , p_Line_Adj_rec.accrual_flag
3338 , p_Line_Adj_rec.range_break_quantity
3339 , p_Line_Adj_rec.accrual_conversion_rate
3340 , p_Line_Adj_rec.pricing_group_sequence
3341 , p_Line_Adj_rec.modifier_level_code
3342 , p_Line_Adj_rec.price_break_type_code
3343 , p_Line_Adj_rec.substitution_attribute
3344 , p_Line_Adj_rec.proration_type_code
3345 , p_Line_Adj_rec.credit_or_charge_flag
3346 , p_Line_Adj_rec.include_on_returns_flag
3347 , p_Line_Adj_rec.ac_context
3348 , p_Line_Adj_rec.ac_attribute1
3349 , p_Line_Adj_rec.ac_attribute2
3350 , p_Line_Adj_rec.ac_attribute3
3351 , p_Line_Adj_rec.ac_attribute4
3352 , p_Line_Adj_rec.ac_attribute5
3353 , p_Line_Adj_rec.ac_attribute6
3354 , p_Line_Adj_rec.ac_attribute7
3355 , p_Line_Adj_rec.ac_attribute8
3356 , p_Line_Adj_rec.ac_attribute9
3357 , p_Line_Adj_rec.ac_attribute10
3358 , p_Line_Adj_rec.ac_attribute11
3359 , p_Line_Adj_rec.ac_attribute12
3360 , p_Line_Adj_rec.ac_attribute13
3361 , p_Line_Adj_rec.ac_attribute14
3362 , p_Line_Adj_rec.ac_attribute15
3363 --uom begin
3364 , p_line_adj_rec.OPERAND_PER_PQTY
3365 , p_line_adj_rec.ADJUSTED_AMOUNT_PER_PQTY
3366 --uom end
3367 --RETRO{
3368 , p_line_adj_rec.retrobill_request_id
3369 --RETRO}
3370 , p_line_Adj_rec.INVOICED_AMOUNT
3371 , l_lock_control
3372 -- eBTax changes
3373 , p_line_adj_rec.tax_rate_id
3374 );
3375
3376 p_Line_Adj_rec.lock_control := l_lock_control;
3377
3378 --calling notification framework to update_global picture
3379 --check code release level first. Notification framework is at Pack H level
3380 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
3381 OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
3382 p_old_line_adj_rec => NULL,
3383 p_line_adj_rec =>p_line_adj_rec,
3384 p_line_adj_id => p_line_adj_rec.price_adjustment_id,
3385 x_index => l_index,
3386 x_return_status => l_return_status);
3387 IF l_debug_level > 0 THEN
3388 oe_debug_pub.add( 'UPDATE_GLOBAL RETURN STATUS FROM OE_LINE_ADJ_UTIL.INSERT_RO IS: ' || L_RETURN_STATUS ) ;
3389 oe_debug_pub.add( 'RETURNED INDEX IS: ' || L_INDEX , 1 ) ;
3390 END IF;
3391
3392 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3393 IF l_debug_level > 0 THEN
3394 oe_debug_pub.add( 'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
3395 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.INSERT_ROW' , 1 ) ;
3396 END IF;
3397 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3398 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3399 IF l_debug_level > 0 THEN
3400 oe_debug_pub.add( 'UPDATE_GLOBAL_PICTURE ERROR IN OE_LINE_ADJ_UTIL.INSERT_ROW' ) ;
3401 oe_debug_pub.add( 'EXITINGOE_LINE_ADJ_UTIL.INSERT_ROW' , 1 ) ;
3402 END IF;
3403 RAISE FND_API.G_EXC_ERROR;
3404 END IF;
3405 END IF; /*code_release_level*/
3406 -- notification framework end
3407
3408 IF l_debug_level > 0 THEN
3409 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.INSERT_ROW.' , 1 ) ;
3410 END IF;
3411
3412 EXCEPTION
3413
3414 WHEN DUP_VAL_ON_INDEX Then
3415 Reset_Sequence;
3416 IF l_debug_level > 0 THEN
3417 oe_debug_pub.add( G_PKG_NAME||':INSER_ROW:'||SQLERRM ) ;
3418 END IF;
3419 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3420 THEN
3421 OE_MSG_PUB.Add_Exc_Msg
3422 ( G_PKG_NAME
3423 , 'Insert_Row'
3424 );
3425 END IF;
3426
3427 --FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,'Insert_Row:'||SQLERRM);
3428
3429 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3430
3431 WHEN OTHERS THEN
3432 IF l_debug_level > 0 THEN
3433 oe_debug_pub.add( G_PKG_NAME||':INSER_ROW:'||SQLERRM ) ;
3434 END IF;
3435 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3436 THEN
3437 OE_MSG_PUB.Add_Exc_Msg
3438 ( G_PKG_NAME
3439 , 'Insert_Row'
3440 );
3441 END IF;
3442
3443 --FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,'Insert_Row:'||SQLERRM);
3444
3445 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3446
3447 END Insert_Row;
3448
3449 -- Procedure Delete_Row
3450
3451 PROCEDURE Delete_Row
3452 ( p_price_adjustment_id IN NUMBER :=
3453 FND_API.G_MISS_NUM
3454 , p_line_id IN NUMBER :=
3455 FND_API.G_MISS_NUM
3456 )
3457 IS
3458 l_return_status VARCHAR2(30);
3459 CURSOR price_adj IS
3460 SELECT price_adjustment_id
3461 FROM OE_PRICE_ADJUSTMENTS
3462 WHERE LINE_ID = p_line_id;
3463
3464 -- added for notification framework
3465 l_new_line_adj_rec OE_Order_PUB.Line_Adj_Rec_Type;
3466 l_index NUMBER;
3467
3468 --
3469 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3470 --
3471 BEGIN
3472 IF l_debug_level > 0 THEN
3473 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.DELETE_ROW' ) ;
3474 END IF;
3475 IF p_line_id <> FND_API.G_MISS_NUM
3476 THEN
3477 IF l_debug_level > 0 THEN
3478 oe_debug_pub.add( ' P_LINE_ID <> G_MISS_NUM' ) ;
3479 END IF;
3480 FOR l_adj IN price_adj LOOP
3481
3482 --added for notification framework
3483 --check code release level first. Notification framework is at Pack H level
3484 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
3485 IF l_debug_level > 0 THEN
3486 oe_debug_pub.add( 'JFC: IN DELETE ROW , PRICE_ADJUSTMENT_ID'||L_ADJ.PRICE_ADJUSTMENT_ID , 1 ) ;
3487 END IF;
3488 /* Set the operation on the record so that globals are updated as well */
3489 l_new_line_adj_rec.operation := OE_GLOBALS.G_OPR_DELETE;
3490 l_new_line_adj_rec.price_adjustment_id := l_adj.price_adjustment_id;
3491 OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
3492 p_line_adj_rec =>l_new_line_adj_rec,
3493 p_line_adj_id => l_adj.price_adjustment_id,
3494 x_index => l_index,
3495 x_return_status => l_return_status);
3496 IF l_debug_level > 0 THEN
3497 oe_debug_pub.add( 'UPDATE_GLOBAL RETURN STATUS FROM OE_LINE_ADJ_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
3498 END IF;
3499
3500 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3501 IF l_debug_level > 0 THEN
3502 oe_debug_pub.add( 'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
3503 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3504 END IF;
3505 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3506 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3507 IF l_debug_level > 0 THEN
3508 oe_debug_pub.add( 'UPDATE_GLOBAL_PICTURE ERROR IN OE_LINE_ADJ_UTIL.DELETE_ROW' ) ;
3509 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3510 END IF;
3511 RAISE FND_API.G_EXC_ERROR;
3512 END IF;
3513 END IF; /*code_release_level*/
3514 -- end notification framework
3515
3516 OE_Delayed_Requests_Pvt.Delete_Reqs_for_deleted_entity(
3517 p_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
3518 p_entity_id => l_adj.price_adjustment_id,
3519 x_return_status => l_return_status
3520 );
3521 OE_Line_Price_Aattr_Util.delete_row(
3522 p_price_adjustment_id=>l_adj.price_adjustment_id);
3523
3524 -- fixed bug 1658300
3525 /***
3526 OE_Line_Adj_Assocs_Util.delete_row(
3527 p_price_adjustment_id=>l_adj.price_adjustment_id);
3528 ***/
3529
3530 END LOOP;
3531 DELETE FROM OE_PRICE_ADJUSTMENTS
3532 WHERE LINE_ID = p_line_id;
3533 ELSE
3534 IF l_debug_level > 0 THEN
3535 oe_debug_pub.add( ' P_LINE_ID = G_MISS_NUM' ) ;
3536 END IF;
3537
3538 --added for notification framework
3539 --check code release level first. Notification framework is at Pack H level
3540 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
3541 IF l_debug_level > 0 THEN
3542 oe_debug_pub.add( 'JFC: IN DELETE ROW , LINE_ID IS G_MISS_NUM , PRICE_ADJUSTMENT_ID'||P_PRICE_ADJUSTMENT_ID , 1 ) ;
3543 END IF;
3544 /* Set the operation on the record so that globals are updated as well */
3545 l_new_line_adj_rec.operation := OE_GLOBALS.G_OPR_DELETE;
3546 l_new_line_adj_rec.price_adjustment_id := p_price_adjustment_id;
3547 OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
3548 p_line_adj_rec =>l_new_line_adj_rec,
3549 p_line_adj_id => p_price_adjustment_id,
3550 x_index => l_index,
3551 x_return_status => l_return_status);
3552 IF l_debug_level > 0 THEN
3553 oe_debug_pub.add( 'UPDATE_GLOBAL RETURN STATUS FROM OE_LINE_ADJ_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
3554 END IF;
3555 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3556 IF l_debug_level > 0 THEN
3557 oe_debug_pub.add( 'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
3558 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3559 END IF;
3560 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3561 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3562 IF l_debug_level > 0 THEN
3563 oe_debug_pub.add( 'UPDATE_GLOBAL_PICTURE ERROR IN OE_LINE_ADJ_UTIL.DELETE_ROW' ) ;
3564 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.DELETE_ROW' , 1 ) ;
3565 END IF;
3566 RAISE FND_API.G_EXC_ERROR;
3567 END IF;
3568 END IF; /*code_release_level*/
3569 -- end notification framework
3570
3571 OE_Delayed_Requests_Pvt.Delete_Reqs_for_deleted_entity
3572 (p_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
3573 p_entity_id => p_price_adjustment_id,
3574 x_return_status => l_return_status
3575 );
3576
3577 OE_Line_Price_Aattr_Util.delete_row(
3578 p_price_adjustment_id=>p_price_adjustment_id);
3579
3580 -- fixed bug 1658300
3581 /***
3582 OE_Line_Adj_Assocs_Util.delete_row(
3583 p_price_adjustment_id=>p_price_adjustment_id);
3584 ***/
3585
3586 --bug3528335 moving the following DELETE statement before deletion of the parent and checking for PBH.
3587 --bug3405372 deleting the child lines of PBH modifiers as well
3588 DELETE FROM OE_PRICE_ADJUSTMENTS
3589 WHERE PRICE_ADJUSTMENT_ID IN (SELECT RLTD_PRICE_ADJ_ID
3590 FROM OE_PRICE_ADJ_ASSOCS ASSOCS,
3591 OE_PRICE_ADJUSTMENTS PARENT
3592 WHERE ASSOCS.PRICE_ADJUSTMENT_ID=PARENT.PRICE_ADJUSTMENT_ID
3593 AND PARENT.PRICE_ADJUSTMENT_ID=p_price_adjustment_id
3594 AND PARENT.LIST_LINE_TYPE_CODE='PBH');
3595 IF l_debug_level > 0 THEN
3596 oe_debug_pub.add('pviprana: Deleted '|| SQL%ROWCOUNT || ' Child Lines');
3597 END IF;
3598 --bug3528335 end
3599
3600
3601
3602 DELETE FROM OE_PRICE_ADJUSTMENTS
3603 WHERE PRICE_ADJUSTMENT_ID = p_price_adjustment_id;
3604
3605 END IF;
3606 IF l_debug_level > 0 THEN
3607 oe_debug_pub.add( 'LEAVING OE_LINE_ADJ_UTIL.DELETE_ROW' ) ;
3608 END IF;
3609 EXCEPTION
3610
3611 WHEN OTHERS THEN
3612 IF l_debug_level > 0 THEN
3613 oe_debug_pub.add( G_PKG_NAME||':DELETE_ROW:'||SQLERRM ) ;
3614 END IF;
3615 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3616 THEN
3617 OE_MSG_PUB.Add_Exc_Msg
3618 ( G_PKG_NAME
3619 , 'Delete_Row'
3620 );
3621 END IF;
3622
3623 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3624
3625 END Delete_Row;
3626
3627 -- Procedure Query_Row
3628
3629 PROCEDURE Query_Row
3630 ( p_price_adjustment_id IN NUMBER
3631 , x_Line_Adj_Rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
3632 )
3633 IS
3634 l_Line_Adj_Tbl OE_Order_PUB.Line_Adj_Tbl_Type;
3635 BEGIN
3636
3637 Query_Rows
3638 ( p_price_adjustment_id => p_price_adjustment_id
3639 , x_Line_Adj_Tbl => l_Line_Adj_Tbl
3640 );
3641 x_Line_Adj_Rec := l_Line_Adj_Tbl(1);
3642
3643 END Query_Row;
3644
3645 -- Procedure Query_Rows
3646
3647 PROCEDURE Query_Rows
3648 ( p_price_adjustment_id IN NUMBER :=
3649 FND_API.G_MISS_NUM
3650 , p_line_id IN NUMBER :=
3651 FND_API.G_MISS_NUM
3652 , p_Header_id IN NUMBER :=
3653 FND_API.G_MISS_NUM
3654 , p_Line_Level_Header_id IN NUMBER :=
3655 FND_API.G_MISS_NUM
3656 , x_Line_Adj_Tbl IN OUT NOCOPY OE_Order_PUB.Line_Adj_Tbl_Type
3657 )
3658 IS
3659 l_count NUMBER;
3660
3661 CURSOR l_Line_Adj_csr IS
3662 SELECT ATTRIBUTE1
3663 , ATTRIBUTE10
3664 , ATTRIBUTE11
3665 , ATTRIBUTE12
3666 , ATTRIBUTE13
3667 , ATTRIBUTE14
3668 , ATTRIBUTE15
3669 , ATTRIBUTE2
3670 , ATTRIBUTE3
3671 , ATTRIBUTE4
3672 , ATTRIBUTE5
3673 , ATTRIBUTE6
3674 , ATTRIBUTE7
3675 , ATTRIBUTE8
3676 , ATTRIBUTE9
3677 , AUTOMATIC_FLAG
3678 , CONTEXT
3679 , CREATED_BY
3680 , CREATION_DATE
3681 , DISCOUNT_ID
3682 , DISCOUNT_LINE_ID
3683 , HEADER_ID
3684 , LAST_UPDATED_BY
3685 , LAST_UPDATE_DATE
3686 , LAST_UPDATE_LOGIN
3687 , LINE_ID
3688 , PERCENT
3689 , PRICE_ADJUSTMENT_ID
3690 , PROGRAM_APPLICATION_ID
3691 , PROGRAM_ID
3692 , PROGRAM_UPDATE_DATE
3693 , REQUEST_ID
3694 , LIST_HEADER_ID
3695 , LIST_LINE_ID
3696 , LIST_LINE_TYPE_CODE
3697 , MODIFIER_MECHANISM_TYPE_CODE
3698 , MODIFIED_FROM
3699 , MODIFIED_TO
3700 , UPDATED_FLAG
3701 , UPDATE_ALLOWED
3702 , APPLIED_FLAG
3703 , CHANGE_REASON_CODE
3704 , CHANGE_REASON_TEXT
3705 , operand
3706 , Arithmetic_operator
3707 , COST_ID
3708 , TAX_CODE
3709 , TAX_EXEMPT_FLAG
3710 , TAX_EXEMPT_NUMBER
3711 , TAX_EXEMPT_REASON_CODE
3712 , PARENT_ADJUSTMENT_ID
3713 , INVOICED_FLAG
3714 , ESTIMATED_FLAG
3715 , INC_IN_SALES_PERFORMANCE
3716 , SPLIT_ACTION_CODE
3717 , ADJUSTED_AMOUNT
3718 , PRICING_PHASE_ID
3719 , CHARGE_TYPE_CODE
3720 , CHARGE_SUBTYPE_CODE
3721 , list_line_no
3722 , source_system_code
3723 , benefit_qty
3724 , benefit_uom_code
3725 , print_on_invoice_flag
3726 , expiration_date
3727 , rebate_transaction_type_code
3728 , rebate_transaction_reference
3729 , rebate_payment_system_code
3730 , redeemed_date
3731 , redeemed_flag
3732 , accrual_flag
3733 , range_break_quantity
3734 , accrual_conversion_rate
3735 , pricing_group_sequence
3736 , modifier_level_code
3737 , price_break_type_code
3738 , substitution_attribute
3739 , proration_type_code
3740 , credit_or_charge_flag
3741 , include_on_returns_flag
3742 , AC_ATTRIBUTE1
3743 , AC_ATTRIBUTE10
3744 , AC_ATTRIBUTE11
3745 , AC_ATTRIBUTE12
3746 , AC_ATTRIBUTE13
3747 , AC_ATTRIBUTE14
3748 , AC_ATTRIBUTE15
3749 , AC_ATTRIBUTE2
3750 , AC_ATTRIBUTE3
3751 , AC_ATTRIBUTE4
3752 , AC_ATTRIBUTE5
3753 , AC_ATTRIBUTE6
3754 , AC_ATTRIBUTE7
3755 , AC_ATTRIBUTE8
3756 , AC_ATTRIBUTE9
3757 , AC_CONTEXT
3758 --uom begin
3759 , OPERAND_PER_PQTY
3760 , ADJUSTED_AMOUNT_PER_PQTY
3761 --uom end
3762 , INVOICED_AMOUNT
3763 , orig_sys_discount_ref
3764 --RETRO{
3765 , retrobill_request_id
3766 --RETRO}
3767 , LOCK_CONTROL
3768 -- eBTax changes
3769 , TAX_RATE_ID
3770 FROM OE_PRICE_ADJUSTMENTS
3771 WHERE PRICE_ADJUSTMENT_ID = p_price_adjustment_id;
3772
3773 CURSOR l_Line_Adj_csr2 IS
3774 SELECT ATTRIBUTE1
3775 , ATTRIBUTE10
3776 , ATTRIBUTE11
3777 , ATTRIBUTE12
3778 , ATTRIBUTE13
3779 , ATTRIBUTE14
3780 , ATTRIBUTE15
3781 , ATTRIBUTE2
3782 , ATTRIBUTE3
3783 , ATTRIBUTE4
3784 , ATTRIBUTE5
3785 , ATTRIBUTE6
3786 , ATTRIBUTE7
3787 , ATTRIBUTE8
3788 , ATTRIBUTE9
3789 , AUTOMATIC_FLAG
3790 , CONTEXT
3791 , CREATED_BY
3792 , CREATION_DATE
3793 , DISCOUNT_ID
3794 , DISCOUNT_LINE_ID
3795 , HEADER_ID
3796 , LAST_UPDATED_BY
3797 , LAST_UPDATE_DATE
3798 , LAST_UPDATE_LOGIN
3799 , LINE_ID
3800 , PERCENT
3801 , PRICE_ADJUSTMENT_ID
3802 , PROGRAM_APPLICATION_ID
3803 , PROGRAM_ID
3804 , PROGRAM_UPDATE_DATE
3805 , REQUEST_ID
3806 , LIST_HEADER_ID
3807 , LIST_LINE_ID
3808 , LIST_LINE_TYPE_CODE
3809 , MODIFIER_MECHANISM_TYPE_CODE
3810 , MODIFIED_FROM
3811 , MODIFIED_TO
3812 , UPDATED_FLAG
3813 , UPDATE_ALLOWED
3814 , APPLIED_FLAG
3815 , CHANGE_REASON_CODE
3816 , CHANGE_REASON_TEXT
3817 , operand
3818 , Arithmetic_operator
3819 , COST_ID
3820 , TAX_CODE
3821 , TAX_EXEMPT_FLAG
3822 , TAX_EXEMPT_NUMBER
3823 , TAX_EXEMPT_REASON_CODE
3824 , PARENT_ADJUSTMENT_ID
3825 , INVOICED_FLAG
3826 , ESTIMATED_FLAG
3827 , INC_IN_SALES_PERFORMANCE
3828 , SPLIT_ACTION_CODE
3829 , ADJUSTED_AMOUNT
3830 , PRICING_PHASE_ID
3831 , CHARGE_TYPE_CODE
3832 , CHARGE_SUBTYPE_CODE
3833 , list_line_no
3834 , source_system_code
3835 , benefit_qty
3836 , benefit_uom_code
3837 , print_on_invoice_flag
3838 , expiration_date
3839 , rebate_transaction_type_code
3840 , rebate_transaction_reference
3841 , rebate_payment_system_code
3842 , redeemed_date
3843 , redeemed_flag
3844 , accrual_flag
3845 , range_break_quantity
3846 , accrual_conversion_rate
3847 , pricing_group_sequence
3848 , modifier_level_code
3849 , price_break_type_code
3850 , substitution_attribute
3851 , proration_type_code
3852 , credit_or_charge_flag
3853 , include_on_returns_flag
3854 , AC_ATTRIBUTE1
3855 , AC_ATTRIBUTE10
3856 , AC_ATTRIBUTE11
3857 , AC_ATTRIBUTE12
3858 , AC_ATTRIBUTE13
3859 , AC_ATTRIBUTE14
3860 , AC_ATTRIBUTE15
3861 , AC_ATTRIBUTE2
3862 , AC_ATTRIBUTE3
3863 , AC_ATTRIBUTE4
3864 , AC_ATTRIBUTE5
3865 , AC_ATTRIBUTE6
3866 , AC_ATTRIBUTE7
3867 , AC_ATTRIBUTE8
3868 , AC_ATTRIBUTE9
3869 , AC_CONTEXT
3870 --uom begin
3871 , OPERAND_PER_PQTY
3872 , ADJUSTED_AMOUNT_PER_PQTY
3873 --uom end
3874 , INVOICED_AMOUNT
3875 , orig_sys_discount_ref
3876 --RETRO{
3877 , retrobill_request_id
3878 --RETRO}
3879 , LOCK_CONTROL
3880 -- eBTax changes
3881 , TAX_RATE_ID
3882 FROM OE_PRICE_ADJUSTMENTS
3883 WHERE line_id = p_line_id;
3884
3885 CURSOR l_Line_Adj_csr3 IS
3886 SELECT ATTRIBUTE1
3887 , ATTRIBUTE10
3888 , ATTRIBUTE11
3889 , ATTRIBUTE12
3890 , ATTRIBUTE13
3891 , ATTRIBUTE14
3892 , ATTRIBUTE15
3893 , ATTRIBUTE2
3894 , ATTRIBUTE3
3895 , ATTRIBUTE4
3896 , ATTRIBUTE5
3897 , ATTRIBUTE6
3898 , ATTRIBUTE7
3899 , ATTRIBUTE8
3900 , ATTRIBUTE9
3901 , AUTOMATIC_FLAG
3902 , CONTEXT
3903 , CREATED_BY
3904 , CREATION_DATE
3905 , DISCOUNT_ID
3906 , DISCOUNT_LINE_ID
3907 , HEADER_ID
3908 , LAST_UPDATED_BY
3909 , LAST_UPDATE_DATE
3910 , LAST_UPDATE_LOGIN
3911 , LINE_ID
3912 , PERCENT
3913 , PRICE_ADJUSTMENT_ID
3914 , PROGRAM_APPLICATION_ID
3915 , PROGRAM_ID
3916 , PROGRAM_UPDATE_DATE
3917 , REQUEST_ID
3918 , LIST_HEADER_ID
3919 , LIST_LINE_ID
3920 , LIST_LINE_TYPE_CODE
3921 , MODIFIER_MECHANISM_TYPE_CODE
3922 , MODIFIED_FROM
3923 , MODIFIED_TO
3924 , UPDATED_FLAG
3925 , UPDATE_ALLOWED
3926 , APPLIED_FLAG
3927 , CHANGE_REASON_CODE
3928 , CHANGE_REASON_TEXT
3929 , operand
3930 , Arithmetic_operator
3931 , COST_ID
3932 , TAX_CODE
3933 , TAX_EXEMPT_FLAG
3934 , TAX_EXEMPT_NUMBER
3935 , TAX_EXEMPT_REASON_CODE
3936 , PARENT_ADJUSTMENT_ID
3937 , INVOICED_FLAG
3938 , ESTIMATED_FLAG
3939 , INC_IN_SALES_PERFORMANCE
3940 , SPLIT_ACTION_CODE
3941 , ADJUSTED_AMOUNT
3942 , PRICING_PHASE_ID
3943 , CHARGE_TYPE_CODE
3944 , CHARGE_SUBTYPE_CODE
3945 , list_line_no
3946 , source_system_code
3947 , benefit_qty
3948 , benefit_uom_code
3949 , print_on_invoice_flag
3950 , expiration_date
3951 , rebate_transaction_type_code
3952 , rebate_transaction_reference
3953 , rebate_payment_system_code
3954 , redeemed_date
3955 , redeemed_flag
3956 , accrual_flag
3957 , range_break_quantity
3958 , accrual_conversion_rate
3959 , pricing_group_sequence
3960 , modifier_level_code
3961 , price_break_type_code
3962 , substitution_attribute
3963 , proration_type_code
3964 , credit_or_charge_flag
3965 , include_on_returns_flag
3966 , AC_ATTRIBUTE1
3967 , AC_ATTRIBUTE10
3968 , AC_ATTRIBUTE11
3969 , AC_ATTRIBUTE12
3970 , AC_ATTRIBUTE13
3971 , AC_ATTRIBUTE14
3972 , AC_ATTRIBUTE15
3973 , AC_ATTRIBUTE2
3974 , AC_ATTRIBUTE3
3975 , AC_ATTRIBUTE4
3976 , AC_ATTRIBUTE5
3977 , AC_ATTRIBUTE6
3978 , AC_ATTRIBUTE7
3979 , AC_ATTRIBUTE8
3980 , AC_ATTRIBUTE9
3981 , AC_CONTEXT
3982 --uom begin
3983 , OPERAND_PER_PQTY
3984 , ADJUSTED_AMOUNT_PER_PQTY
3985 --uom end
3986 , INVOICED_AMOUNT
3987 , orig_sys_discount_ref
3988 --RETRO{
3989 , retrobill_request_id
3990 --RETRO}
3991 , LOCK_CONTROL
3992 -- eBTax changes
3993 , TAX_RATE_ID
3994 FROM OE_PRICE_ADJUSTMENTS
3995 WHERE header_id = p_header_id
3996 and line_id is null;
3997
3998 --Line-level adjustments based on header_id
3999 CURSOR l_Line_Adj_csr4 IS
4000 SELECT ATTRIBUTE1
4001 , ATTRIBUTE10
4002 , ATTRIBUTE11
4003 , ATTRIBUTE12
4004 , ATTRIBUTE13
4005 , ATTRIBUTE14
4006 , ATTRIBUTE15
4007 , ATTRIBUTE2
4008 , ATTRIBUTE3
4009 , ATTRIBUTE4
4010 , ATTRIBUTE5
4011 , ATTRIBUTE6
4012 , ATTRIBUTE7
4013 , ATTRIBUTE8
4014 , ATTRIBUTE9
4015 , AUTOMATIC_FLAG
4016 , CONTEXT
4017 , CREATED_BY
4018 , CREATION_DATE
4019 , DISCOUNT_ID
4020 , DISCOUNT_LINE_ID
4021 , HEADER_ID
4022 , LAST_UPDATED_BY
4023 , LAST_UPDATE_DATE
4024 , LAST_UPDATE_LOGIN
4025 , LINE_ID
4026 , PERCENT
4027 , PRICE_ADJUSTMENT_ID
4028 , PROGRAM_APPLICATION_ID
4029 , PROGRAM_ID
4030 , PROGRAM_UPDATE_DATE
4031 , REQUEST_ID
4032 , LIST_HEADER_ID
4033 , LIST_LINE_ID
4034 , LIST_LINE_TYPE_CODE
4035 , MODIFIER_MECHANISM_TYPE_CODE
4036 , MODIFIED_FROM
4037 , MODIFIED_TO
4038 , UPDATED_FLAG
4039 , UPDATE_ALLOWED
4040 , APPLIED_FLAG
4041 , CHANGE_REASON_CODE
4042 , CHANGE_REASON_TEXT
4043 , operand
4044 , Arithmetic_operator
4045 , COST_ID
4046 , TAX_CODE
4047 , TAX_EXEMPT_FLAG
4048 , TAX_EXEMPT_NUMBER
4049 , TAX_EXEMPT_REASON_CODE
4050 , PARENT_ADJUSTMENT_ID
4051 , INVOICED_FLAG
4052 , ESTIMATED_FLAG
4053 , INC_IN_SALES_PERFORMANCE
4054 , SPLIT_ACTION_CODE
4055 , ADJUSTED_AMOUNT
4056 , PRICING_PHASE_ID
4057 , CHARGE_TYPE_CODE
4058 , CHARGE_SUBTYPE_CODE
4059 , list_line_no
4060 , source_system_code
4061 , benefit_qty
4062 , benefit_uom_code
4063 , print_on_invoice_flag
4064 , expiration_date
4065 , rebate_transaction_type_code
4066 , rebate_transaction_reference
4067 , rebate_payment_system_code
4068 , redeemed_date
4069 , redeemed_flag
4070 , accrual_flag
4071 , range_break_quantity
4072 , accrual_conversion_rate
4073 , pricing_group_sequence
4074 , modifier_level_code
4075 , price_break_type_code
4076 , substitution_attribute
4077 , proration_type_code
4078 , credit_or_charge_flag
4079 , include_on_returns_flag
4080 , AC_ATTRIBUTE1
4081 , AC_ATTRIBUTE10
4082 , AC_ATTRIBUTE11
4083 , AC_ATTRIBUTE12
4084 , AC_ATTRIBUTE13
4085 , AC_ATTRIBUTE14
4086 , AC_ATTRIBUTE15
4087 , AC_ATTRIBUTE2
4088 , AC_ATTRIBUTE3
4089 , AC_ATTRIBUTE4
4090 , AC_ATTRIBUTE5
4091 , AC_ATTRIBUTE6
4092 , AC_ATTRIBUTE7
4093 , AC_ATTRIBUTE8
4094 , AC_ATTRIBUTE9
4095 , AC_CONTEXT
4096 --uom begin
4097 , OPERAND_PER_PQTY
4098 , ADJUSTED_AMOUNT_PER_PQTY
4099 --uom end
4100 , INVOICED_AMOUNT
4101 , orig_sys_discount_ref
4102 --RETRO{
4103 , retrobill_request_id
4104 --RETRO}
4105 , LOCK_CONTROL
4106 -- eBTax changes
4107 , TAX_RATE_ID
4108 FROM OE_PRICE_ADJUSTMENTS
4109 WHERE header_id = p_line_level_header_id
4110 and line_id is not null;
4111
4112 l_implicit_rec l_line_adj_csr%ROWTYPE;
4113 l_entity NUMBER;
4114 --
4115 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4116 --
4117 BEGIN
4118
4119 IF
4120 (p_price_adjustment_id IS NOT NULL
4121 AND
4122 p_price_adjustment_id <> FND_API.G_MISS_NUM)
4123 AND
4124 (p_line_id IS NOT NULL
4125 AND
4126 p_line_id <> FND_API.G_MISS_NUM)
4127 THEN
4128 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4129 THEN
4130 OE_MSG_PUB.Add_Exc_Msg
4131 ( G_PKG_NAME
4132 , 'Query Rows'
4133 , 'Keys are mutually exclusive: price_adjustment_id = '|| p_price_adjustment_id || ', line_id = '|| p_line_id
4134 );
4135 END IF;
4136
4137 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4138
4139 END IF;
4140
4141 IF nvl(p_price_adjustment_id,-1) <> FND_API.G_MISS_NUM THEN
4142 l_entity := 1;
4143 OPEN l_line_adj_csr;
4144 ELSIF nvl(p_line_id,-1) <> FND_API.G_MISS_NUM THEN
4145 l_entity := 2;
4146 OPEN l_line_adj_csr2;
4147 ELSIF nvl(p_header_id,-1) <> FND_API.G_MISS_NUM THEN
4148 l_entity := 3;
4149 OPEN l_line_adj_csr3;
4150 ELSIF nvl(p_line_level_header_id,-1) <> FND_API.G_MISS_NUM THEN
4151 l_entity := 4;
4152 OPEN l_line_adj_csr4;
4153 END IF;
4154
4155 l_count := 1;
4156
4157 -- Loop over fetched records
4158 LOOP
4159
4160 IF l_entity = 1 THEN
4161 FETCH l_line_adj_csr INTO l_implicit_rec;
4162 EXIT WHEN l_line_adj_csr%NOTFOUND;
4163 ELSIF l_entity = 2 THEN
4164 FETCH l_line_adj_csr2 INTO l_implicit_rec;
4165 EXIT WHEN l_line_adj_csr2%NOTFOUND;
4166 ELSIF l_entity = 3 THEN
4167 FETCH l_line_adj_csr3 INTO l_implicit_rec;
4168 EXIT WHEN l_line_adj_csr3%NOTFOUND;
4169 --bug3392650 (the condition l_entity=3 was being checked twice)
4170 ELSIF l_entity = 4 THEN
4171 FETCH l_line_adj_csr4 INTO l_implicit_rec;
4172 EXIT WHEN l_line_adj_csr4%NOTFOUND;
4173 ELSE
4174 EXIT;
4175 END IF;
4176
4177 x_Line_Adj_tbl(l_count).attribute1 := l_implicit_rec.ATTRIBUTE1;
4178 x_Line_Adj_tbl(l_count).attribute10 := l_implicit_rec.ATTRIBUTE10;
4179 x_Line_Adj_tbl(l_count).attribute11 := l_implicit_rec.ATTRIBUTE11;
4180 x_Line_Adj_tbl(l_count).attribute12 := l_implicit_rec.ATTRIBUTE12;
4181 x_Line_Adj_tbl(l_count).attribute13 := l_implicit_rec.ATTRIBUTE13;
4182 x_Line_Adj_tbl(l_count).attribute14 := l_implicit_rec.ATTRIBUTE14;
4183 x_Line_Adj_tbl(l_count).attribute15 := l_implicit_rec.ATTRIBUTE15;
4184 x_Line_Adj_tbl(l_count).attribute2 := l_implicit_rec.ATTRIBUTE2;
4185 x_Line_Adj_tbl(l_count).attribute3 := l_implicit_rec.ATTRIBUTE3;
4186 x_Line_Adj_tbl(l_count).attribute4 := l_implicit_rec.ATTRIBUTE4;
4187 x_Line_Adj_tbl(l_count).attribute5 := l_implicit_rec.ATTRIBUTE5;
4188 x_Line_Adj_tbl(l_count).attribute6 := l_implicit_rec.ATTRIBUTE6;
4189 x_Line_Adj_tbl(l_count).attribute7 := l_implicit_rec.ATTRIBUTE7;
4190 x_Line_Adj_tbl(l_count).attribute8 := l_implicit_rec.ATTRIBUTE8;
4191 x_Line_Adj_tbl(l_count).attribute9 := l_implicit_rec.ATTRIBUTE9;
4192 x_Line_Adj_tbl(l_count).automatic_flag := l_implicit_rec.AUTOMATIC_FLAG;
4193 x_Line_Adj_tbl(l_count).context := l_implicit_rec.CONTEXT;
4194 x_Line_Adj_tbl(l_count).created_by := l_implicit_rec.CREATED_BY;
4195 x_Line_Adj_tbl(l_count).creation_date := l_implicit_rec.CREATION_DATE;
4196 x_Line_Adj_tbl(l_count).discount_id := l_implicit_rec.DISCOUNT_ID;
4197 x_Line_Adj_tbl(l_count).discount_line_id := l_implicit_rec.DISCOUNT_LINE_ID;
4198 x_Line_Adj_tbl(l_count).header_id := l_implicit_rec.HEADER_ID;
4199 x_Line_Adj_tbl(l_count).last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
4200 x_Line_Adj_tbl(l_count).last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
4201 x_Line_Adj_tbl(l_count).last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
4202 x_Line_Adj_tbl(l_count).line_id := l_implicit_rec.LINE_ID;
4203 x_Line_Adj_tbl(l_count).percent := l_implicit_rec.PERCENT;
4204 x_Line_Adj_tbl(l_count).price_adjustment_id := l_implicit_rec.PRICE_ADJUSTMENT_ID;
4205 x_Line_Adj_tbl(l_count).program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
4206 x_Line_Adj_tbl(l_count).program_id := l_implicit_rec.PROGRAM_ID;
4207 x_Line_Adj_tbl(l_count).program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
4208 x_Line_Adj_tbl(l_count).request_id := l_implicit_rec.REQUEST_ID;
4209 x_Line_Adj_tbl(l_count).list_header_id := l_implicit_rec.list_header_id;
4210 x_Line_Adj_tbl(l_count).list_line_id := l_implicit_rec.list_line_id;
4211 x_Line_Adj_tbl(l_count).list_line_type_code := l_implicit_rec.list_line_type_code;
4212 x_Line_Adj_tbl(l_count).modifier_mechanism_type_code := l_implicit_rec.modifier_mechanism_type_code;
4213 x_Line_Adj_tbl(l_count).modified_from := l_implicit_rec.modified_from;
4214 x_Line_Adj_tbl(l_count).modified_to := l_implicit_rec.modified_to;
4215 x_Line_Adj_tbl(l_count).updated_flag := l_implicit_rec.updated_flag;
4216 x_Line_Adj_tbl(l_count).update_allowed := l_implicit_rec.update_allowed;
4217 x_Line_Adj_tbl(l_count).applied_flag := l_implicit_rec.applied_flag;
4218 x_Line_Adj_tbl(l_count).change_reason_code := l_implicit_rec.change_reason_code;
4219 x_Line_Adj_tbl(l_count).change_reason_text := l_implicit_rec.change_reason_text;
4220 x_Line_Adj_tbl(l_count).operand := l_implicit_rec.operand;
4221 x_Line_Adj_tbl(l_count).arithmetic_operator := l_implicit_rec.arithmetic_operator;
4222 x_Line_Adj_tbl(l_count).adjusted_amount := l_implicit_rec.adjusted_amount;
4223 x_Line_Adj_tbl(l_count).pricing_phase_id := l_implicit_rec.pricing_phase_id;
4224 x_Line_Adj_tbl(l_count).cost_id := l_implicit_rec.cost_id;
4225 x_Line_Adj_tbl(l_count).tax_code := l_implicit_rec.tax_code;
4226 x_Line_Adj_tbl(l_count).tax_exempt_flag := l_implicit_rec.tax_exempt_flag;
4227 x_Line_Adj_tbl(l_count).tax_exempt_number := l_implicit_rec.tax_exempt_number;
4228 x_Line_Adj_tbl(l_count).tax_exempt_reason_code := l_implicit_rec.tax_exempt_reason_code;
4229 x_Line_Adj_tbl(l_count).parent_adjustment_id := l_implicit_rec.parent_adjustment_id;
4230 x_Line_Adj_tbl(l_count).invoiced_flag := l_implicit_rec.invoiced_flag;
4231 x_Line_Adj_tbl(l_count).estimated_flag := l_implicit_rec.estimated_flag;
4232 x_Line_Adj_tbl(l_count).inc_in_sales_performance := l_implicit_rec.inc_in_sales_performance;
4233 x_Line_Adj_tbl(l_count).split_action_code := l_implicit_rec.split_action_code;
4234 x_Line_Adj_tbl(l_count).charge_type_code := l_implicit_rec.charge_type_code;
4235 x_Line_Adj_tbl(l_count).charge_subtype_code := l_implicit_rec.charge_subtype_code;
4236 x_Line_Adj_tbl(l_count).list_line_no := l_implicit_rec.list_line_no;
4237 x_Line_Adj_tbl(l_count).source_system_code := l_implicit_rec.source_system_code;
4238 x_Line_Adj_tbl(l_count).benefit_qty := l_implicit_rec.benefit_qty;
4239 x_Line_Adj_tbl(l_count).benefit_uom_code := l_implicit_rec.benefit_uom_code;
4240 x_Line_Adj_tbl(l_count).print_on_invoice_flag := l_implicit_rec.print_on_invoice_flag;
4241 x_Line_Adj_tbl(l_count).expiration_date := l_implicit_rec.expiration_date;
4242 x_Line_Adj_tbl(l_count).rebate_transaction_type_code := l_implicit_rec.rebate_transaction_type_code;
4243 x_Line_Adj_tbl(l_count).rebate_transaction_reference := l_implicit_rec.rebate_transaction_reference;
4244 x_Line_Adj_tbl(l_count).rebate_payment_system_code := l_implicit_rec.rebate_payment_system_code;
4245 x_Line_Adj_tbl(l_count).redeemed_date := l_implicit_rec.redeemed_date;
4246 x_Line_Adj_tbl(l_count).redeemed_flag := l_implicit_rec.redeemed_flag;
4247 x_Line_Adj_tbl(l_count).accrual_flag := l_implicit_rec.accrual_flag;
4248 x_Line_Adj_tbl(l_count).range_break_quantity := l_implicit_rec.range_break_quantity;
4249 x_Line_Adj_tbl(l_count).accrual_conversion_rate := l_implicit_rec.accrual_conversion_rate;
4250 x_Line_Adj_tbl(l_count).pricing_group_sequence := l_implicit_rec.pricing_group_sequence;
4251 x_Line_Adj_tbl(l_count).modifier_level_code := l_implicit_rec.modifier_level_code;
4252 x_Line_Adj_tbl(l_count).price_break_type_code := l_implicit_rec.price_break_type_code;
4253 x_Line_Adj_tbl(l_count).substitution_attribute := l_implicit_rec.substitution_attribute;
4254 x_Line_Adj_tbl(l_count).proration_type_code := l_implicit_rec.proration_type_code;
4255 x_Line_Adj_tbl(l_count).credit_or_charge_flag := l_implicit_rec.credit_or_charge_flag;
4256 x_Line_Adj_tbl(l_count).include_on_returns_flag := l_implicit_rec.include_on_returns_flag;
4257 x_Line_Adj_tbl(l_count).ac_attribute1 := l_implicit_rec.AC_ATTRIBUTE1;
4258 x_Line_Adj_tbl(l_count).ac_attribute10 := l_implicit_rec.AC_ATTRIBUTE10;
4259 x_Line_Adj_tbl(l_count).ac_attribute11 := l_implicit_rec.AC_ATTRIBUTE11;
4260 x_Line_Adj_tbl(l_count).ac_attribute12 := l_implicit_rec.AC_ATTRIBUTE12;
4261 x_Line_Adj_tbl(l_count).ac_attribute13 := l_implicit_rec.AC_ATTRIBUTE13;
4262 x_Line_Adj_tbl(l_count).ac_attribute14 := l_implicit_rec.AC_ATTRIBUTE14;
4263 x_Line_Adj_tbl(l_count).ac_attribute15 := l_implicit_rec.AC_ATTRIBUTE15;
4264 x_Line_Adj_tbl(l_count).ac_attribute2 := l_implicit_rec.AC_ATTRIBUTE2;
4265 x_Line_Adj_tbl(l_count).ac_attribute3 := l_implicit_rec.AC_ATTRIBUTE3;
4266 x_Line_Adj_tbl(l_count).ac_attribute4 := l_implicit_rec.AC_ATTRIBUTE4;
4267 x_Line_Adj_tbl(l_count).ac_attribute5 := l_implicit_rec.AC_ATTRIBUTE5;
4268 x_Line_Adj_tbl(l_count).ac_attribute6 := l_implicit_rec.AC_ATTRIBUTE6;
4269 x_Line_Adj_tbl(l_count).ac_attribute7 := l_implicit_rec.AC_ATTRIBUTE7;
4270 x_Line_Adj_tbl(l_count).ac_attribute8 := l_implicit_rec.AC_ATTRIBUTE8;
4271 x_Line_Adj_tbl(l_count).ac_attribute9 := l_implicit_rec.AC_ATTRIBUTE9;
4272 x_Line_Adj_tbl(l_count).ac_context := l_implicit_rec.AC_CONTEXT;
4273 --uom begin
4274 x_Line_Adj_tbl(l_count).operand_per_pqty := l_implicit_rec.operand_per_pqty;
4275 x_Line_Adj_tbl(l_count).adjusted_amount_per_pqty := l_implicit_rec.adjusted_amount_per_pqty;
4276 --uom end
4277 x_Line_Adj_tbl(l_count).invoiced_amount := l_implicit_rec.invoiced_amount;
4278 x_Line_Adj_tbl(l_count).orig_sys_discount_ref := l_implicit_rec.orig_sys_discount_ref;
4279 x_Line_Adj_tbl(l_count).lock_control := l_implicit_rec.LOCK_CONTROL;
4280 -- eBTax Changes
4281 x_Line_Adj_tbl(l_count).tax_rate_id := l_implicit_rec.tax_Rate_id;
4282
4283 -- set values for non-DB fields
4284 x_Line_Adj_tbl(l_count).db_flag := FND_API.G_TRUE;
4285 x_Line_Adj_tbl(l_count).operation := FND_API.G_MISS_CHAR;
4286 x_Line_Adj_tbl(l_count).return_status := FND_API.G_MISS_CHAR;
4287
4288 -- bug 2209746 begin
4289 if (l_entity = 2) then
4290 if nvl(l_implicit_rec.adjusted_amount,0) <> 0 then
4291 x_line_Adj_tbl(l_count).group_value := abs(l_implicit_rec.operand/l_implicit_rec.adjusted_amount);
4292 end if;
4293 end if;
4294 --bug 2209746 end
4295 --RT{
4296 x_Line_Adj_tbl(l_count).retrobill_request_id:=l_implicit_rec.retrobill_request_id;
4297 --RT}
4298 l_count := l_count + 1;
4299
4300 END LOOP;
4301
4302 IF l_entity = 1 THEN
4303 CLOSE l_line_adj_csr;
4304 ELSIF l_entity = 2 THEN
4305 CLOSE l_line_adj_csr2;
4306 ELSIF l_entity = 3 THEN
4307 CLOSE l_line_adj_csr3;
4308 ELSIF l_entity = 4 THEN
4309 CLOSE l_line_adj_csr4;
4310 END IF;
4311
4312 -- PK sent and no rows found
4313
4314 IF
4315 (p_price_adjustment_id IS NOT NULL
4316 AND
4317 p_price_adjustment_id <> FND_API.G_MISS_NUM)
4318 AND
4319 (x_Line_Adj_tbl.COUNT = 0)
4320 THEN
4321 RAISE NO_DATA_FOUND;
4322 END IF;
4323
4324
4325 -- Return fetched table
4326
4327 EXCEPTION
4328
4329 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4330 IF l_debug_level > 0 THEN
4331 oe_debug_pub.add( G_PKG_NAME||':QUERY_ROW:'||SQLERRM ) ;
4332 END IF;
4333 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4334
4335 WHEN OTHERS THEN
4336 IF l_debug_level > 0 THEN
4337 oe_debug_pub.add( G_PKG_NAME||':QUERY_ROW:'||SQLERRM ) ;
4338 END IF;
4339 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4340 THEN
4341 OE_MSG_PUB.Add_Exc_Msg
4342 ( G_PKG_NAME
4343 , 'Query_Rows'
4344 );
4345 END IF;
4346
4347 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4348
4349 END Query_Rows;
4350
4351 -- Procedure lock_Row
4352
4353 PROCEDURE Lock_Row
4354 ( x_return_status OUT NOCOPY VARCHAR2
4355
4356 , p_x_Line_Adj_rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
4357 -- := OE_Order_PUB.G_MISS_LINE_ADJ_REC
4358 , p_price_adjustment_id IN NUMBER
4359 := FND_API.G_MISS_NUM
4360 -- , x_Line_Adj_rec OUT OE_Order_PUB.Line_Adj_Rec_Type
4361 )
4362 IS
4363 l_price_adjustment_id NUMBER;
4364 l_Line_Adj_rec OE_Order_PUB.Line_Adj_Rec_Type;
4365 l_lock_control NUMBER;
4366
4367 --
4368 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4369 --
4370 BEGIN
4371
4372 IF l_debug_level > 0 THEN
4373 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.LOCK_ROW' , 1 ) ;
4374 END IF;
4375
4376 SAVEPOINT Lock_Row;
4377
4378 l_lock_control := NULL;
4379
4380 -- Retrieve the primary key.
4381 IF p_price_adjustment_id <> FND_API.G_MISS_NUM THEN
4382 l_price_adjustment_id := p_price_adjustment_id;
4383 ELSE
4384 l_price_adjustment_id := p_x_line_adj_rec.price_adjustment_id;
4385 l_lock_control := p_x_Line_Adj_rec.lock_control;
4386 END IF;
4387
4388
4389 -- added for performance change
4390 SELECT price_adjustment_id
4391 INTO l_price_adjustment_id
4392 FROM oe_price_adjustments
4393 WHERE price_adjustment_id = l_price_adjustment_id
4394 FOR UPDATE NOWAIT;
4395
4396 IF l_debug_level > 0 THEN
4397 oe_debug_pub.add( 'SELECTING FOR UPDATE.' , 1 ) ;
4398 END IF;
4399
4400 OE_Line_Adj_Util.Query_Row
4401 (p_price_adjustment_id => l_price_adjustment_id
4402 ,x_Line_Adj_rec => p_x_Line_Adj_rec
4403 );
4404 -- If lock_control is not passed(is null or missing), then return the locked record.
4405
4406
4407 IF l_lock_control is null OR
4408 l_lock_control = FND_API.G_MISS_NUM
4409 THEN
4410
4411 -- Set return status
4412 x_return_status := FND_API.G_RET_STS_SUCCESS;
4413 p_x_line_adj_rec.return_status := FND_API.G_RET_STS_SUCCESS;
4414
4415 -- return for lock by ID.
4416 RETURN;
4417
4418 END IF;
4419
4420 -- Row locked. If the whole record is passed, then
4421 -- Compare lock_control.
4422
4423 IF l_debug_level > 0 THEN
4424 oe_debug_pub.add( 'COMPARE ' , 1 ) ;
4425 END IF;
4426
4427 IF OE_GLOBALS.Equal(p_x_line_adj_rec.lock_control,
4428 l_lock_control)
4429 THEN
4430
4431 -- Row has not changed. Set out parameter.
4432
4433 IF l_debug_level > 0 THEN
4434 oe_debug_pub.add( 'LOCKED ROW' , 1 ) ;
4435 END IF;
4436
4437 -- Set return status
4438
4439 x_return_status := FND_API.G_RET_STS_SUCCESS;
4440 p_x_line_adj_rec.return_status := FND_API.G_RET_STS_SUCCESS;
4441
4442 ELSE
4443
4444 -- Row has changed by another user.
4445 IF l_debug_level > 0 THEN
4446 oe_debug_pub.add( 'ROW CHANGED BY OTHER USER' , 1 ) ;
4447 END IF;
4448
4449 x_return_status := FND_API.G_RET_STS_ERROR;
4450 p_x_line_adj_rec.return_status := FND_API.G_RET_STS_ERROR;
4451
4452 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
4453 THEN
4454
4455 -- Release the lock
4456 ROLLBACK TO Lock_Row;
4457
4458 fnd_message.set_name('ONT','OE_LOCK_ROW_CHANGED');
4459 OE_MSG_PUB.Add;
4460
4461 END IF;
4462
4463 END IF;
4464
4465 EXCEPTION
4466
4467 WHEN NO_DATA_FOUND THEN
4468
4469 x_return_status := FND_API.G_RET_STS_ERROR;
4470 p_x_Line_Adj_rec.return_status := FND_API.G_RET_STS_ERROR;
4471
4472 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
4473 THEN
4474
4475 FND_MESSAGE.SET_NAME('ONT','OE_LOCK_ROW_DELETED');
4476 FND_MSG_PUB.Add;
4477
4478 END IF;
4479 WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
4480
4481 x_return_status := FND_API.G_RET_STS_ERROR;
4482 p_x_Line_Adj_rec.return_status := FND_API.G_RET_STS_ERROR;
4483
4484 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
4485 THEN
4486
4487 FND_MESSAGE.SET_NAME('ONT','OE_LOCK_ROW_ALREADY_LOCKED');
4488 FND_MSG_PUB.Add;
4489
4490 END IF;
4491 WHEN OTHERS THEN
4492
4493 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4494 p_x_Line_Adj_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4495
4496 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4497 THEN
4498 OE_MSG_PUB.Add_Exc_Msg
4499 ( G_PKG_NAME
4500 , 'Lock_Row'
4501 );
4502 END IF;
4503
4504 END Lock_Row;
4505
4506 -- Procedure lock_Rows
4507
4508 PROCEDURE Lock_Rows
4509 ( p_price_adjustment_id IN NUMBER
4510 := FND_API.G_MISS_NUM
4511 , p_line_id IN NUMBER
4512 := FND_API.G_MISS_NUM
4513 , x_Line_Adj_tbl OUT NOCOPY OE_Order_PUB.Line_Adj_Tbl_Type
4514 , x_return_status OUT NOCOPY VARCHAR2
4515
4516 )
4517 IS
4518
4519 CURSOR lock_adj_lines(p_line_id IN NUMBER) IS
4520 SELECT price_adjustment_id
4521 FROM oe_price_adjustments
4522 WHERE line_id = p_line_id
4523 FOR UPDATE NOWAIT;
4524
4525 l_price_adjustment_id NUMBER;
4526 l_Line_Adj_tbl OE_Order_PUB.Line_Adj_Tbl_Type;
4527 l_lock_control NUMBER;
4528
4529 --
4530 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4531 --
4532 BEGIN
4533
4534 IF l_debug_level > 0 THEN
4535 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.LOCK_ROWS.' , 1 ) ;
4536 END IF;
4537
4538 IF (p_price_adjustment_id IS NOT NULL AND
4539 p_price_adjustment_id <> FND_API.G_MISS_NUM) AND
4540 (p_line_id IS NOT NULL AND
4541 p_line_id <> FND_API.G_MISS_NUM)
4542 THEN
4543 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
4544 OE_MSG_PUB.Add_Exc_Msg
4545 ( G_PKG_NAME
4546 , 'Lock_Rows'
4547 , 'Keys are mutually exclusive: price_adjustment_id = ' ||
4548 p_price_adjustment_id || ', line_id = ' || p_line_id );
4549 END IF;
4550
4551 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4552 END IF;
4553
4554 IF p_price_adjustment_id <> FND_API.G_MISS_NUM THEN
4555
4556 SELECT price_adjustment_id
4557 INTO l_price_adjustment_id
4558 FROM oe_price_adjustments
4559 WHERE price_adjustment_id = p_price_adjustment_id
4560 FOR UPDATE NOWAIT;
4561 END IF;
4562
4563 -- null line_id shouldn't be passed in unnecessarily if
4564 -- price_adjustment_id is passed in already.
4565 BEGIN
4566 IF p_line_id <> FND_API.G_MISS_NUM THEN
4567 SAVEPOINT LOCK_ROWS;
4568 OPEN lock_adj_lines(p_line_id);
4569
4570 LOOP
4571 FETCH lock_adj_lines INTO l_price_adjustment_id;
4572 EXIT WHEN lock_adj_lines%NOTFOUND;
4573 END LOOP;
4574 CLOSE lock_adj_lines;
4575 END IF;
4576 EXCEPTION
4577 WHEN OTHERS THEN
4578 ROLLBACK TO LOCK_ROWS;
4579
4580 IF lock_adj_lines%ISOPEN THEN
4581 CLOSE lock_adj_lines;
4582 END IF;
4583
4584 RAISE;
4585 END;
4586
4587 OE_Line_Adj_Util.Query_Rows
4588 ( p_price_adjustment_id => p_price_adjustment_id
4589 , p_line_id => p_line_id
4590 , x_Line_Adj_tbl => x_Line_Adj_tbl
4591 );
4592
4593 x_return_status := FND_API.G_RET_STS_SUCCESS;
4594
4595 EXCEPTION
4596 WHEN NO_DATA_FOUND THEN
4597 x_return_status := FND_API.G_RET_STS_ERROR;
4598 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
4599 THEN
4600 fnd_message.set_name('ONT','OE_LOCK_ROW_DELETED');
4601 OE_MSG_PUB.Add;
4602 END IF;
4603
4604 WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
4605 x_return_status := FND_API.G_RET_STS_ERROR;
4606 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
4607 THEN
4608 fnd_message.set_name('ONT','OE_LOCK_ROW_ALREADY_LOCKED');
4609 OE_MSG_PUB.Add;
4610 END IF;
4611
4612 WHEN OTHERS THEN
4613 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4614 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4615 THEN
4616 OE_MSG_PUB.Add_Exc_Msg
4617 ( G_PKG_NAME
4618 , 'Lock_Row'
4619 );
4620 END IF;
4621
4622 IF l_debug_level > 0 THEN
4623 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.LOCK_ROWS.' , 1 ) ;
4624 END IF;
4625
4626 END Lock_Rows;
4627
4628 PROCEDURE Log_Adj_Requests
4629 ( x_return_status OUT NOCOPY VARCHAR2
4630
4631 , p_adj_rec IN OE_order_pub.Line_Adj_Rec_Type
4632 , p_old_adj_rec IN OE_order_pub.Line_Adj_Rec_Type
4633 , p_delete_flag IN BOOLEAN DEFAULT FALSE
4634 ) IS
4635 BEGIN
4636
4637 x_return_status := FND_API.G_RET_STS_SUCCESS;
4638
4639 -- if the adjustment_id changed or the percent changed
4640 -- or discount or discount_line has changed
4641
4642 IF ( (p_adj_rec.price_adjustment_id <> p_old_adj_rec.price_adjustment_id
4643 OR
4644 p_old_adj_rec.price_adjustment_id IS NULL)
4645 OR
4646 (p_adj_rec.operand <> p_old_adj_rec.operand
4647 OR
4648 p_old_adj_rec.operand IS NULL)
4649 OR
4650 (p_adj_rec.list_line_id <> p_old_adj_rec.list_line_id
4651 OR
4652 p_old_adj_rec.list_line_id IS NULL)
4653 OR
4654 (p_adj_rec.list_header_id <> p_old_adj_rec.list_header_id
4655 OR
4656 p_old_adj_rec.list_header_id IS NULL)
4657 OR
4658 p_delete_flag)
4659 THEN
4660
4661 /*
4662 oe_delayed_requests_pvt.log_request(p_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
4663 p_entity_id => p_adj_rec.line_id,
4664 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
4665 p_requesting_entity_id => p_adj_rec.price_adjustment_id,
4666 p_request_type => OE_GLOBALS.G_PRICE_ADJ,
4667 x_return_status => x_return_status);
4668 */
4669 null;
4670
4671 END IF;
4672
4673 END Log_Adj_Requests;
4674
4675 -- Function Get_Values
4676
4677 FUNCTION Get_Values
4678 ( p_Line_Adj_rec IN OE_Order_PUB.Line_Adj_Rec_Type
4679 , p_old_Line_Adj_rec IN OE_Order_PUB.Line_Adj_Rec_Type :=
4680 OE_Order_PUB.G_MISS_LINE_ADJ_REC
4681 ) RETURN OE_Order_PUB.Line_Adj_Val_Rec_Type
4682 IS
4683 l_Line_Adj_val_rec OE_Order_PUB.Line_Adj_Val_Rec_Type;
4684 BEGIN
4685
4686 IF (p_Line_Adj_rec.discount_id IS NULL OR
4687 p_Line_Adj_rec.discount_id <> FND_API.G_MISS_NUM) AND
4688 NOT OE_GLOBALS.Equal(p_Line_Adj_rec.discount_id,
4689 p_old_Line_Adj_rec.discount_id)
4690 THEN
4691 l_Line_Adj_val_rec.discount := OE_Id_To_Value.Discount
4692 ( p_discount_id => p_Line_Adj_rec.discount_id
4693 );
4694 END IF;
4695
4696 RETURN l_Line_Adj_val_rec;
4697
4698 END Get_Values;
4699
4700 -- Procedure Get_Ids
4701
4702 PROCEDURE Get_Ids
4703 ( p_x_Line_Adj_rec IN OUT NOCOPY OE_Order_PUB.Line_Adj_Rec_Type
4704 , p_Line_Adj_val_rec IN OE_Order_PUB.Line_Adj_Val_Rec_Type
4705 )
4706 IS
4707 l_Line_Adj_rec OE_Order_PUB.Line_Adj_Rec_Type;
4708 BEGIN
4709
4710 -- initialize return_status.
4711
4712 l_Line_Adj_rec.return_status := FND_API.G_RET_STS_SUCCESS;
4713
4714 -- initialize l_Line_Adj_rec.
4715
4716 l_Line_Adj_rec := p_x_Line_Adj_rec;
4717
4718 IF p_Line_Adj_val_rec.discount <> FND_API.G_MISS_CHAR
4719 THEN
4720
4721 IF p_x_Line_Adj_rec.discount_id <> FND_API.G_MISS_NUM THEN
4722
4723 l_Line_Adj_rec.discount_id := p_x_Line_Adj_rec.discount_id;
4724
4725 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
4726 THEN
4727
4728 FND_MESSAGE.SET_NAME('ONT','OE_BOTH_VAL_AND_ID_EXIST');
4729 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','discount');
4730 FND_MSG_PUB.Add;
4731
4732 END IF;
4733
4734 ELSE
4735
4736 l_Line_Adj_rec.discount_id := OE_Value_To_Id.discount
4737 ( p_discount => p_Line_Adj_val_rec.discount
4738 );
4739
4740 IF l_Line_Adj_rec.discount_id = FND_API.G_MISS_NUM THEN
4741 l_Line_Adj_rec.return_status := FND_API.G_RET_STS_ERROR;
4742 END IF;
4743
4744 END IF;
4745
4746 END IF;
4747
4748
4749 -- RETURN l_Line_Adj_rec;
4750 p_x_Line_Adj_rec := l_Line_Adj_rec;
4751
4752 END Get_Ids;
4753
4754 -- This function converts a Header adj record to a Line Adjustment record
4755 Function Convert_Hdr_Adj_To_Line_Adj
4756 ( p_header_adj_rec IN OE_Order_PUB.Header_adj_rec_type)
4757 RETURN OE_Order_PUB.Line_Adj_Rec_Type
4758 IS
4759 l_line_adj_rec OE_Order_PUB.Line_Adj_Rec_Type;
4760 BEGIN
4761
4762 l_line_adj_rec.attribute1 := p_header_adj_rec.attribute1;
4763 l_line_adj_rec.attribute10 := p_header_adj_rec.attribute10;
4764 l_line_adj_rec.attribute11 := p_header_adj_rec.attribute11;
4765 l_line_adj_rec.attribute12 := p_header_adj_rec.attribute12;
4766 l_line_adj_rec.attribute13 := p_header_adj_rec.attribute13;
4767 l_line_adj_rec.attribute14 := p_header_adj_rec.attribute14;
4768 l_line_adj_rec.attribute15 := p_header_adj_rec.attribute15;
4769 l_line_adj_rec.attribute2 := p_header_adj_rec.attribute2;
4770 l_line_adj_rec.attribute3 := p_header_adj_rec.attribute3;
4771 l_line_adj_rec.attribute4 := p_header_adj_rec.attribute4;
4772 l_line_adj_rec.attribute5 := p_header_adj_rec.attribute5;
4773 l_line_adj_rec.attribute6 := p_header_adj_rec.attribute6;
4774 l_line_adj_rec.attribute7 := p_header_adj_rec.attribute7;
4775 l_line_adj_rec.attribute8 := p_header_adj_rec.attribute8;
4776 l_line_adj_rec.attribute9 := p_header_adj_rec.attribute9;
4777 l_line_adj_rec.automatic_flag :=p_header_adj_rec.automatic_flag;
4778 l_line_adj_rec.context := p_header_adj_rec.context;
4779 l_line_adj_rec.created_by := p_header_adj_rec.created_by;
4780 l_line_adj_rec.creation_date := p_header_adj_rec.creation_date;
4781 l_line_adj_rec.discount_id := p_header_adj_rec.discount_id;
4782 l_line_adj_rec.discount_line_id:=p_header_adj_rec.discount_line_id;
4783 l_line_adj_rec.header_id := p_header_adj_rec.header_id;
4784 l_line_adj_rec.last_updated_by := p_header_adj_rec.last_updated_by;
4785 l_line_adj_rec.last_update_date:= p_header_adj_rec.last_update_date;
4786 l_line_adj_rec.last_update_login:= p_header_adj_rec.last_update_login;
4787 l_line_adj_rec.line_id := p_header_adj_rec.line_id;
4788 l_line_adj_rec.percent := p_header_adj_rec.percent;
4789 l_line_adj_rec.price_adjustment_id := p_header_adj_rec.price_adjustment_id;
4790 l_line_adj_rec.program_application_id := p_header_adj_rec.program_application_id;
4791 l_line_adj_rec.program_id := p_header_adj_rec.program_id;
4792 l_line_adj_rec.program_update_date := p_header_adj_rec.program_update_date;
4793 l_line_adj_rec.request_id := p_header_adj_rec.request_id;
4794 l_line_adj_rec.return_status := p_header_adj_rec.return_status;
4795 l_line_adj_rec.db_flag := p_header_adj_rec.db_flag;
4796 l_line_adj_rec.operation := p_header_adj_rec.operation;
4797 l_line_adj_rec.list_header_id := p_header_adj_rec.list_header_id;
4798 l_line_adj_rec.list_line_id := p_header_adj_rec.list_line_id;
4799 l_line_adj_rec.list_line_type_code := p_header_adj_rec.list_line_type_code;
4800 l_line_adj_rec.modifier_mechanism_type_code := p_header_adj_rec.modifier_mechanism_type_code;
4801 l_line_adj_rec.modified_from := p_header_adj_rec.modified_from;
4802 l_line_adj_rec.modified_to := p_header_adj_rec.modified_to;
4803 l_line_adj_rec.updated_flag := p_header_adj_rec.updated_flag;
4804 l_line_adj_rec.update_allowed := p_header_adj_rec.update_allowed;
4805 l_line_adj_rec.applied_flag := p_header_adj_rec.applied_flag;
4806 l_line_adj_rec.change_reason_code := p_header_adj_rec.change_reason_code;
4807 l_line_adj_rec.change_reason_text := p_header_adj_rec.change_reason_text;
4808 l_line_adj_rec.operand := p_header_adj_rec.operand;
4809 l_line_adj_rec.operand_per_pqty := p_header_adj_rec.operand_per_pqty;
4810 l_line_adj_rec.arithmetic_operator := p_header_adj_rec.arithmetic_operator;
4811 l_line_adj_rec.adjusted_amount := p_header_adj_rec.adjusted_amount;
4812 l_line_adj_rec.adjusted_amount_per_pqty := p_header_adj_rec.adjusted_amount_per_pqty;
4813 l_line_adj_rec.pricing_phase_id := p_header_adj_rec.pricing_phase_id;
4814 l_line_adj_rec.cost_id := p_header_adj_rec.cost_id;
4815 l_line_adj_rec.tax_code := p_header_adj_rec.tax_code;
4816 l_line_adj_rec.tax_exempt_flag := p_header_adj_rec.tax_exempt_flag;
4817 l_line_adj_rec.tax_exempt_number := p_header_adj_rec.tax_exempt_number;
4818 l_line_adj_rec.tax_exempt_reason_code := p_header_adj_rec.tax_exempt_reason_code;
4819 l_line_adj_rec.parent_adjustment_id := p_header_adj_rec.parent_adjustment_id;
4820 l_line_adj_rec.invoiced_flag := p_header_adj_rec.invoiced_flag;
4821 l_line_adj_rec.estimated_flag := p_header_adj_rec.estimated_flag;
4822 l_line_adj_rec.inc_in_sales_performance := p_header_adj_rec.inc_in_sales_performance;
4823 l_line_adj_rec.split_action_code := p_header_adj_rec.split_action_code;
4824 l_line_adj_rec.charge_type_code := p_header_adj_rec.charge_type_code;
4825 l_line_adj_rec.charge_subtype_code := p_header_adj_rec.charge_subtype_code;
4826
4827 l_line_adj_rec.adjusted_amount := p_header_adj_rec.adjusted_amount;
4828 l_line_adj_rec.pricing_phase_id := p_header_adj_rec.pricing_phase_id;
4829 l_line_adj_rec.list_line_no := p_header_adj_rec.list_line_no;
4830 l_line_adj_rec.source_system_code := p_header_adj_rec.source_system_code;
4831 l_line_adj_rec.benefit_qty := p_header_adj_rec.benefit_qty;
4832 l_line_adj_rec.benefit_uom_code := p_header_adj_rec.benefit_uom_code;
4833 l_line_adj_rec.print_on_invoice_flag := p_header_adj_rec.print_on_invoice_flag;
4834 l_line_adj_rec.expiration_date := p_header_adj_rec.expiration_date;
4835 l_line_adj_rec.rebate_transaction_type_code := p_header_adj_rec.rebate_transaction_type_code;
4836 l_line_adj_rec.rebate_transaction_reference := p_header_adj_rec.rebate_transaction_reference;
4837 l_line_adj_rec.rebate_payment_system_code := p_header_adj_rec.rebate_payment_system_code;
4838 l_line_adj_rec.redeemed_date := p_header_adj_rec.redeemed_date;
4839 l_line_adj_rec.redeemed_flag := p_header_adj_rec.redeemed_flag;
4840 l_line_adj_rec.accrual_flag := p_header_adj_rec.accrual_flag;
4841 l_line_adj_rec.range_break_quantity := p_header_adj_rec.range_break_quantity;
4842 l_line_adj_rec.accrual_conversion_rate := p_header_adj_rec.accrual_conversion_rate;
4843 l_line_adj_rec.pricing_group_sequence := p_header_adj_rec.pricing_group_sequence;
4844 l_line_adj_rec.modifier_level_code := p_header_adj_rec.modifier_level_code;
4845 l_line_adj_rec.price_break_type_code := p_header_adj_rec.price_break_type_code;
4846 l_line_adj_rec.substitution_attribute := p_header_adj_rec.substitution_attribute;
4847 l_line_adj_rec.proration_type_code := p_header_adj_rec.proration_type_code;
4848 l_line_adj_rec.credit_or_charge_flag := p_header_adj_rec.credit_or_charge_flag;
4849 l_line_adj_rec.include_on_returns_flag := p_header_adj_rec.include_on_returns_flag;
4850 l_line_adj_rec.ac_attribute1 := p_header_adj_rec.ac_attribute1;
4851 l_line_adj_rec.ac_attribute10 := p_header_adj_rec.ac_attribute10;
4852 l_line_adj_rec.ac_attribute11 := p_header_adj_rec.ac_attribute11;
4853 l_line_adj_rec.ac_attribute12 := p_header_adj_rec.ac_attribute12;
4854 l_line_adj_rec.ac_attribute13 := p_header_adj_rec.ac_attribute13;
4855 l_line_adj_rec.ac_attribute14 := p_header_adj_rec.ac_attribute14;
4856 l_line_adj_rec.ac_attribute15 := p_header_adj_rec.ac_attribute15;
4857 l_line_adj_rec.ac_attribute2 := p_header_adj_rec.ac_attribute2;
4858 l_line_adj_rec.ac_attribute3 := p_header_adj_rec.ac_attribute3;
4859 l_line_adj_rec.ac_attribute4 := p_header_adj_rec.ac_attribute4;
4860 l_line_adj_rec.ac_attribute5 := p_header_adj_rec.ac_attribute5;
4861 l_line_adj_rec.ac_attribute6 := p_header_adj_rec.ac_attribute6;
4862 l_line_adj_rec.ac_attribute7 := p_header_adj_rec.ac_attribute7;
4863 l_line_adj_rec.ac_attribute8 := p_header_adj_rec.ac_attribute8;
4864 l_line_adj_rec.ac_attribute9 := p_header_adj_rec.ac_attribute9;
4865 l_line_adj_rec.ac_context := p_header_adj_rec.ac_context;
4866 l_line_adj_rec.invoiced_amount := p_header_adj_rec.invoiced_amount;
4867
4868 RETURN l_line_adj_rec;
4869
4870 END Convert_Hdr_Adj_To_Line_Adj;
4871
4872 Procedure Append_Adjustment_Attribs(
4873 px_Line_Adj_Att_Tbl in out nocopy OE_Order_Pub.line_adj_att_tbl_Type
4874 ,p_price_adjustment_id number
4875 ,p_adj_index pls_integer
4876 )
4877 is
4878 l_Line_Adj_Att_Tbl OE_Order_Pub.line_adj_att_tbl_Type;
4879 i pls_integer;
4880 begin
4881
4882 Oe_Line_Price_Aattr_util.Query_Rows(
4883 p_price_adjustment_id => p_price_adjustment_id
4884 , x_Line_Adj_Att_Tbl => l_Line_Adj_Att_Tbl
4885 );
4886
4887 i:= L_Line_Adj_Att_Tbl.First;
4888 While i is not null loop
4889
4890 L_Line_Adj_Att_Tbl(i).operation := OE_GLOBALS.G_OPR_CREATE;
4891 L_Line_Adj_Att_Tbl(i).price_adjustment_id := fnd_api.g_miss_num;
4892 L_Line_Adj_Att_Tbl(i).adj_index := p_adj_index;
4893 L_Line_Adj_Att_Tbl(i).price_adj_attrib_id := fnd_api.g_miss_num;
4894
4895 px_Line_Adj_Att_Tbl(px_Line_Adj_Att_Tbl.count+1) := L_Line_Adj_Att_Tbl(i);
4896
4897 i:= L_Line_Adj_Att_Tbl.Next(i);
4898
4899 end loop;
4900
4901 end Append_Adjustment_Attribs;
4902
4903 Procedure Prorate_Lumpsum (
4904 px_line_adj_rec IN OUT NOCOPY OE_Order_Pub.Line_AdJ_Rec_Type
4905 , p_to_line_id IN NUMBER
4906 , x_copy_from_line_adj_rec OUT NOCOPY OE_Order_Pub.Line_Adj_Rec_Type
4907
4908 )
4909 IS
4910 l_ordered_quantity NUMBER;
4911 l_sign NUMBER;
4912 l_pricing_quantity NUMBER;
4913 --
4914 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
4915 --
4916 Begin
4917 IF l_debug_level > 0 THEN
4918 oe_debug_pub.add( 'ENTERING PROCEDURE PRORATE_LUMPSUM' ) ;
4919 END IF;
4920
4921 If px_line_adj_rec.operand = 0 or px_line_adj_rec.operand is null Then
4922 IF l_debug_level > 0 THEN
4923 oe_debug_pub.add( ' NOTHING TO PRORATE , OPERAND IS 0' ) ;
4924 END IF;
4925 x_copy_from_line_adj_rec.operation := OE_GLOBALS.G_OPR_NONE;
4926 Return;
4927 End If;
4928
4929 IF (px_line_adj_rec.list_line_type_code='DIS') THEN
4930 l_sign := -1;
4931 ELSE
4932 l_sign := 1;
4933 END IF;
4934
4935 -- First correct the copy_from line adj record
4936 SELECT ordered_quantity,pricing_quantity
4937 INTO l_ordered_quantity,
4938 l_pricing_quantity
4939 FROM oe_order_lines_all
4940 WHERE line_id = px_line_adj_rec.line_id;
4941
4942 If (round(abs(px_line_adj_rec.operand) -
4943 abs(l_ordered_quantity * px_line_adj_rec.adjusted_amount/ px_line_adj_rec.operand),20))
4944 <> 0
4945 THEN
4946 IF l_debug_level > 0 THEN
4947 oe_debug_pub.add( 'OPERAND'||PX_LINE_ADJ_REC.OPERAND ||'<>'||L_ORDERED_QUANTITY||'*'||PX_LINE_ADJ_REC.ADJUSTED_AMOUNT ) ;
4948 END IF;
4949
4950 x_copy_from_line_adj_rec := px_line_adj_rec;
4951 x_copy_from_line_adj_rec.operation := oe_globals.g_opr_update;
4952 x_copy_from_line_adj_rec.operand := l_ordered_quantity
4953 * x_copy_from_line_adj_rec.adjusted_amount * l_sign;
4954
4955
4956 x_copy_from_line_adj_rec.operand_per_pqty := l_pricing_quantity
4957 *x_copy_from_line_adj_rec.adjusted_amount_per_pqty*l_sign;
4958
4959 x_copy_from_line_adj_rec.operand_per_pqty:=nvl(x_copy_from_line_adj_rec.operand_per_pqty,
4960 x_copy_from_line_adj_rec.operand);
4961
4962 IF l_debug_level > 0 THEN
4963 oe_debug_pub.add( ' PRORATED ADJUSTED_AMOUNT_PER_PQTY:'||X_COPY_FROM_LINE_ADJ_REC.ADJUSTED_AMOUNT_PER_PQTY ) ;
4964 oe_debug_pub.add( ' PRORATED ADJUSTED_AMOUNT:'||X_COPY_FROM_LINE_ADJ_REC.ADJUSTED_AMOUNT ) ;
4965 END IF;
4966
4967 ELSE
4968 x_copy_from_line_adj_rec.operation := OE_GLOBALS.G_OPR_NONE;
4969 END IF;
4970
4971 -- Then correct the copy_to line adj record
4972 SELECT ordered_quantity
4973 INTO l_ordered_quantity
4974 FROM oe_order_lines_all
4975 WHERE line_id = p_to_line_id;
4976
4977 IF (round(abs(px_line_adj_rec.operand) -
4978 abs(l_ordered_quantity * px_line_adj_rec.adjusted_amount/ px_line_adj_rec.operand),20))
4979 <> 0
4980
4981 THEN
4982
4983 px_line_adj_rec.operand := l_ordered_quantity
4984 * px_line_adj_rec.adjusted_amount
4985 * l_sign;
4986
4987 px_line_adj_rec.operand_per_pqty := NULL;
4988
4989 END IF;
4990
4991 IF l_debug_level > 0 THEN
4992 oe_debug_pub.add( 'LEAVING PROCEDURE PRORATE_LUMPSUM' ) ;
4993 END IF;
4994 EXCEPTION
4995
4996 WHEN OTHERS THEN
4997
4998 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4999 THEN
5000 OE_MSG_PUB.Add_Exc_Msg
5001 ( G_PKG_NAME
5002 , 'Update_Row'
5003 );
5004 END IF;
5005 IF l_debug_level > 0 THEN
5006 oe_debug_pub.add( 'EXCEPTION IN PRORATE_LUMPSUM'||SQLERRM , 2 ) ;
5007 END IF;
5008 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5009
5010 End Prorate_Lumpsum;
5011
5012 Procedure Append_Adjustment_Lines(
5013 p_header_id Number default null,
5014 p_line_id Number default null,
5015 p_to_line_id Number default null,
5016 p_to_header_id Number default null,
5017 p_operation varchar2,
5018 p_line_category_code varchar2,
5019 p_split_by varchar2 default null,
5020 px_Line_Adj_Att_Tbl in out nocopy OE_Order_Pub.line_adj_att_tbl_Type,
5021 px_Line_Adj_Tbl in out nocopy OE_Order_Pub.Line_Adj_Tbl_Type,
5022 px_line_adj_assoc_tbl in out nocopy OE_Order_PUB.Line_Adj_Assoc_tbl_type,
5023 --RT{
5024 p_mode varchar2 default null,
5025 p_retrobill_request_id in Varchar2 default null,
5026 p_key_line_id in Number default null
5027 --RT}
5028 )
5029 is
5030 l_Line_Adj_Tbl OE_Order_Pub.Line_Adj_Tbl_Type;
5031 i pls_integer;
5032 l_has_pbh VARCHAR2(1):='N';
5033 l_pbh_tbl Pbh_Tbl_Type;
5034 cnt Pls_Integer:=0;
5035 l_copy_from_line_adj_rec OE_Order_pub.Line_Adj_Rec_Type;
5036 --
5037 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5038 --
5039 l_from_line_category VARCHAR2(100);
5040 --RT{
5041 l_ulp NUMBER;
5042 cursor get_ulp(p_line_id IN NUMBER) IS
5043 SELECT UNIT_LIST_PRICE
5044 FROM OE_ORDER_LINES_ALL
5045 WHERE LINE_ID = p_line_id;
5046 l_sign PLS_INTEGER:=1;
5047 l_line_id NUMBER;
5048 l_header_id NUMBER;
5049 l_has_retrobilled_before Varchar2(1):='N';
5050 --RT}
5051 l_charges_for_backorders VARCHAR2(1):=NVL(FND_PROFILE.VALUE('ONT_CHARGES_FOR_BACKORDERS'),'N');
5052 l_prg_exist VARCHAR2(1) := 'N'; --bug 16317238
5053 begin
5054
5055 IF l_debug_level > 0 THEN
5056 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.APPEND_ADJUSTMENT_LINES' , 1 ) ;
5057 oe_debug_pub.add(' operation:'|| p_operation);
5058 END IF;
5059
5060
5061 -- Manish Changes
5062 if p_line_id is not null then
5063
5064 IF OE_CODE_CONTROL.Get_Code_Release_Level >= '110510' and
5065 p_operation <> OE_GLOBALS.G_OPR_DELETE THEN
5066 --RT{
5067 --we need to retrieve the latest adjustments if it is a retrobilled line
5068 --call retrobill api to get the retrobill line id, if none l_line_id will
5069 --set to the same value as p_line_id
5070
5071 Oe_Retrobill_Pvt.Get_Last_Retro_LinID(p_line_id=>p_line_id,
5072 x_line_id=>l_line_id);
5073
5074 if nvl(p_line_id,-1) <> nvl(l_line_id,-1) then
5075 --Old id and new id difference, line has been retrobilled multiple times
5076 --new id is actullay a retrobill line, not a regular line.
5077 --we just need to copy adjustment with retrobill_request_id is not null
5078 --from this retrobill line over.
5079 l_has_retrobilled_before:='Y';
5080 end if;
5081
5082 --RT}
5083 OE_Version_History_Util.Query_Rows
5084 ( p_line_id => l_line_id
5085 , p_version_number => OE_ORDER_COPY_UTIL.G_LN_VER_NUMBER
5086 , p_phase_change_flag => OE_ORDER_COPY_UTIL.G_LN_PHASE_CHANGE_FLAG
5087 , x_Line_Adj_Tbl => l_Line_Adj_Tbl);
5088
5089 If l_debug_level > 0 Then
5090 oe_debug_pub.add(' input line id to retro api:'||p_line_id||' output line id:'|| l_line_id);
5091 oe_debug_pub.add(' l_line_adj_tbl.count from versioning:'|| l_Line_Adj_Tbl.count);
5092 End If;
5093
5094 ELSE
5095 oe_debug_pub.add('pre 11510, using old query row');
5096 OE_Line_Adj_Util.Query_Rows(p_Line_Id => p_line_id
5097 , x_Line_Adj_Tbl => l_Line_Adj_Tbl);
5098 END IF;
5099
5100 else
5101 -- l_Line_Adj_Tbl := OE_Line_Adj_Util.Query_Rows(p_header_Id => p_header_id);
5102 IF OE_CODE_CONTROL.Get_Code_Release_Level >= '110510' and
5103 p_operation <> OE_GLOBALS.G_OPR_DELETE THEN
5104 --RT{
5105 Oe_Retrobill_Pvt.Get_Last_Retro_HdrID(p_header_id=>p_header_id,
5106 x_header_id=>l_header_id);
5107 if nvl(p_header_id,-1) <> nvl(l_header_id,-1) then
5108 l_has_retrobilled_before:='Y';
5109 end if;
5110 --RT}
5111
5112 OE_Version_History_Util.Query_Rows
5113 ( p_header_id => l_header_id
5114 , p_version_number => OE_ORDER_COPY_UTIL.G_LN_VER_NUMBER
5115 , p_phase_change_flag => OE_ORDER_COPY_UTIL.G_LN_PHASE_CHANGE_FLAG
5116 , x_Line_Adj_Tbl => l_Line_Adj_Tbl);
5117
5118 If l_debug_level > 0 Then
5119 oe_debug_pub.add(' input Header id to retro api:'||p_header_id||' output Header id:'|| l_header_id);
5120 oe_debug_pub.add(' l_line_adj_tbl.count from versioning:'|| l_Line_Adj_Tbl.count);
5121 End If;
5122
5123 ELSE
5124 OE_Line_Adj_Util.Query_Rows(p_header_Id => p_header_id
5125 , x_Line_Adj_Tbl => l_Line_Adj_Tbl);
5126 END IF;
5127 End If;
5128
5129 i:= l_Line_Adj_Tbl.First;
5130 While i is not Null Loop
5131
5132
5133 If p_operation = OE_GLOBALS.G_OPR_DELETE then
5134
5135 l_Line_Adj_Tbl(i).operation := p_operation;
5136 px_line_adj_tbl(px_line_adj_tbl.count+1) := L_Line_Adj_Tbl(i);
5137
5138 Else
5139
5140 /* Modified IF condition to process only Line Level Freight Charges for Bug # 1559906 */
5141 -- bug 1937110, added type 'IUE'.
5142 oe_debug_pub.add('Retro:list line type code:'||l_Line_Adj_Tbl(i).list_line_type_code);
5143
5144 --RT{
5145 IF NOT(nvl(p_mode,'xx-') = 'RETROBILL' and l_Line_Adj_Tbl(i).list_line_type_code = 'FREIGHT_CHARGE') AND
5146 NOT (l_has_retrobilled_before = 'Y' and l_line_adj_tbl(i).retrobill_request_id IS NULL)
5147 THEN
5148 --skip processing, freigh charge is not supported for retrobilling
5149 --skip processing if we copy adjustment from a retrobill order and retrobill request id is null
5150 --we just want to copy over where retrobill request id is not null if it is a retrobill line
5151 --RT}
5152 --bug 16317238 checking if PRG needs to be copied only applicable if get item is service
5153 IF p_line_id is not NULL AND p_line_id <> fnd_api.g_miss_num AND l_Line_Adj_Tbl(i).list_line_type_code = 'PRG' THEN
5154 BEGIN
5155 oe_debug_pub.ADD('p_line_id :'||p_line_id,1);
5156
5157 SELECT 'Y'
5158 INTO l_prg_exist
5159 FROM oe_price_adjustments prg, oe_order_lines_all l,
5160 oe_price_adj_assocs a,oe_price_adjustments p
5161 WHERE prg.line_id = p_line_id
5162 AND prg.list_line_type_code = 'PRG'
5163 AND prg.price_adjustment_id = a.price_adjustment_id
5164 AND p.price_adjustment_id = a.rltd_price_adj_id
5165 AND p.line_id = l.line_id
5166 AND l.item_type_code = 'SERVICE' AND l.SUBSCRIPTION_ENABLE_FLAG <> 'Y'
5167 AND ROWNUM <2;
5168
5169 EXCEPTION
5170 WHEN NO_DATA_FOUND THEN
5171 oe_debug_pub.ADD('prg does not exist',1);
5172 l_prg_exist := 'N';
5173 END;
5174 END IF;
5175 --end bug 16317238
5176
5177 If (l_Line_Adj_Tbl(i).list_line_type_code in ('DIS','SUR', 'PBH', 'IUE') OR (l_Line_Adj_Tbl(i).list_line_type_code = 'PRG' AND l_prg_exist='Y')) -- 'PRG' condition added for bug 16317238
5178 or (l_Line_Adj_Tbl(i).list_line_type_code = 'FREIGHT_CHARGE' and l_Line_Adj_Tbl(i).line_id is not null) then
5179 If l_line_adj_tbl(i).list_line_type_code = 'PBH' Then
5180 l_has_pbh := 'Y';
5181 --l_pbh_tbl store the index that has pbh adj line
5182 cnt := cnt + 1;
5183 l_pbh_tbl(cnt):=px_line_adj_tbl.count+1;
5184 End If;
5185 -- FP bug3337324
5186 -- changed for the bug 3479388
5187 -- changed the below condition for the bug 9494742
5188 If l_Line_Adj_Tbl(i).list_line_type_code ='FREIGHT_CHARGE' and
5189 ((p_line_category_code = 'RETURN' and
5190 (NVL(l_Line_Adj_Tbl(i).include_on_returns_flag,'N') <> 'Y' OR
5191 NVL(l_Line_Adj_Tbl(i).applied_flag,'N') = 'N' )) OR
5192 (p_split_by = 'SYSTEM' and l_charges_for_backorders = 'N' and
5193 l_line_adj_tbl(i).arithmetic_operator = 'LUMPSUM')) then
5194 oe_debug_pub.add('No Charges are Copied');
5195 Null;
5196 Else
5197
5198 -- prorate lumpsum
5199 IF (l_line_adj_tbl(i).modifier_level_code='LINE'
5200 and l_line_adj_tbl(i).arithmetic_operator = 'LUMPSUM')
5201 THEN
5202 IF l_debug_level > 0 THEN
5203 oe_debug_pub.add( ' P_HEADER_ID:'||P_HEADER_ID|| 'P_TO_HEADER_ID:'||P_TO_HEADER_ID ) ;
5204 oe_debug_pub.add( ' P_SPLIT_BY:'||P_SPLIT_BY ) ;
5205 END IF;
5206 --BTEA
5207 --Only when split we need to do this.
5208 --during split we will have same to_ and from_ header_id
5209 --and split_by column is not null
5210 If p_to_header_id = p_header_id
5211 AND p_split_by is Not NULL
5212 Then
5213 -- added for the bug 3479388
5214 IF NOT (p_split_by = 'SYSTEM' and l_charges_for_backorders = 'Y'
5215 and l_Line_Adj_Tbl(i).list_line_type_code = 'FREIGHT_CHARGE') THEN -- 7363214
5216 Prorate_Lumpsum(l_line_adj_tbl(i),
5217 p_to_line_id,
5218 l_copy_from_line_adj_rec);
5219
5220 IF l_copy_from_line_adj_rec.operation
5221 = OE_GLOBALS.G_OPR_UPDATE THEN
5222 IF l_debug_level > 0 THEN
5223 oe_debug_pub.add( ' UPDATING OPERAND FOR LINE ID:'||L_COPY_FROM_LINE_ADJ_REC.LINE_ID ) ;
5224 END IF;
5225 px_line_adj_tbl(px_line_adj_tbl.count+1)
5226 := l_copy_from_line_adj_rec;
5227 END IF;
5228 END IF;
5229 End If;
5230 End If;
5231
5232 Append_Adjustment_Attribs(
5233 px_Line_Adj_Att_Tbl => px_Line_Adj_Att_Tbl
5234 ,p_price_adjustment_id => l_Line_Adj_Tbl(i).price_adjustment_id
5235 ,p_adj_index => px_line_adj_tbl.count+1
5236 );
5237
5238 l_Line_Adj_Tbl(i).operation := p_operation;
5239
5240 -- lkxu, fix bug 1623316
5241 -- don't populate line_id field if it is a HEADER level adjustment
5242
5243 --removed if condn.
5244 l_Line_Adj_Tbl(i).line_id := p_to_line_id;
5245
5246 /* Fixing Bug 2075878 */
5247 IF l_line_adj_tbl(i).modifier_level_code = 'ORDER' THEN
5248 l_Line_Adj_Tbl(i).modifier_level_code := 'LINE';
5249 --RT{
5250 IF l_Line_Adj_Tbl(i).arithmetic_operator = '%' THEN
5251 open get_ulp(p_key_line_id);
5252 fetch get_ulp INTO l_ulp;
5253 close get_ulp;
5254 oe_debug_pub.add('pviprana: l_ulp :' || l_ulp);
5255 --bug3392650 ( Changed the condition l_Line_Adj_Tbl(i).adjusted_amount < 0)
5256 IF (l_Line_Adj_Tbl(i).list_line_type_code = 'DIS') THEN
5257 l_sign := -1;
5258 ELSE
5259 l_sign := 1;
5260 END IF;
5261 --bug3392650 Calculating adjusted amount only if l_ulp is not null
5262 oe_debug_pub.add('pviprana: adjusted amt'||l_Line_Adj_Tbl(i).adjusted_amount);
5263 IF(l_ulp IS NOT NULL ) THEN
5264 l_Line_Adj_Tbl(i).adjusted_amount:= (l_Line_Adj_Tbl(i).operand/100) * l_ulp *l_sign;
5265 END IF;
5266 oe_debug_pub.add('Converting Order level to line, unit list price:'|| l_ulp);
5267 oe_debug_pub.add('Adjusted amount:'||l_Line_Adj_Tbl(i).adjusted_amount);
5268 END IF;
5269 --RT}
5270 END IF;
5271
5272 -- l_Line_Adj_Tbl(i).line_id := p_to_line_id;
5273 l_Line_Adj_Tbl(i).Header_id := p_to_Header_id;
5274 l_Line_Adj_Tbl(i).invoiced_flag := 'N';
5275 l_Line_Adj_Tbl(i).invoiced_amount := null; --bug 5241848
5276 -- l_Line_Adj_Tbl(i).price_adjustment_id := fnd_api.g_miss_num;
5277
5278 -- Check for refndable charges on return lines. If the charge is
5279 -- refundable then it should be created as a credit.
5280
5281 -- Commented for 7683779 Start
5282 /*
5283 --Added for bug 7328969 Start
5284 select line_category_code into l_from_line_category
5285 from oe_order_lines_all
5286 where line_id = p_line_id ;
5287
5288 oe_debug_pub.add('p_line_category_code :'||p_line_category_code);
5289 oe_debug_pub.add('l_from_line_category :'||l_from_line_category);
5290 oe_debug_pub.add('l_Line_Adj_Tbl(i).credit_or_charge_flag :'||l_Line_Adj_Tbl(i).credit_or_charge_flag);
5291
5292 --Added for bug 7328969 End
5293 */
5294 -- Commented for 7683779 End
5295
5296 If l_Line_Adj_Tbl(i).list_line_type_code ='FREIGHT_CHARGE'
5297 THEN
5298 --Added for bug 7683779 Start
5299 select line_category_code into l_from_line_category
5300 from oe_order_lines_all
5301 where line_id = p_line_id ;
5302
5303 IF l_debug_level > 0 THEN
5304 oe_debug_pub.add('p_line_category_code :'||p_line_category_code);
5305 oe_debug_pub.add('l_from_line_category :'||l_from_line_category);
5306 oe_debug_pub.add('l_Line_Adj_Tbl(i).credit_or_charge_flag :'||l_Line_Adj_Tbl(i).credit_or_charge_flag);
5307 END IF;
5308
5309 --Added for bug 7683779 End
5310
5311 --Modified for bug 7328969 Start
5312 --IF p_line_category_code = 'RETURN' THEN
5313 IF (p_line_category_code = 'RETURN' AND l_from_line_category= 'ORDER' ) OR
5314 ( l_from_line_category = 'RETURN' and p_line_category_code = 'ORDER') THEN
5315
5316 --Modified for bug 7328969 End
5317
5318 If l_Line_Adj_Tbl(i).credit_or_charge_flag = 'C' THEN
5319 l_Line_Adj_Tbl(i).credit_or_charge_flag := 'D';
5320 ELSE
5321 l_Line_Adj_Tbl(i).credit_or_charge_flag := 'C';
5322 END IF;
5323
5324 oe_debug_pub.add('l_Line_Adj_Tbl(i).credit_or_charge_flag :'||l_Line_Adj_Tbl(i).credit_or_charge_flag);
5325
5326 l_Line_Adj_Tbl(i).updated_flag := 'Y';
5327 l_Line_Adj_Tbl(i).change_reason_code := 'MISC';
5328 l_Line_Adj_Tbl(i).change_reason_text := 'Reversing Credit';
5329 ELSE
5330 /* commented out nocopy the following 3 lines to fix the bug 2594720
5331
5332
5333 l_Line_Adj_Tbl(i).updated_flag := 'N';
5334 l_Line_Adj_Tbl(i).change_reason_code := NULL;
5335 l_Line_Adj_Tbl(i).change_reason_text := NULL;
5336 */
5337 NULL;
5338
5339 /* Added the following code to fix the bug 2888990 */
5340 --Commented for bug 7328969 Start
5341 /*select line_category_code into l_from_line_category
5342 from oe_order_lines_all
5343 where line_id = p_line_id ;*/
5344 --Commented for bug 7328969 End
5345
5346 if l_from_line_category = 'RETURN' and p_line_category_code = 'ORDER' THEN
5347 If l_Line_Adj_Tbl(i).credit_or_charge_flag = 'C' THEN
5348 l_Line_Adj_Tbl(i).credit_or_charge_flag := 'D';
5349 ELSE
5350 l_Line_Adj_Tbl(i).credit_or_charge_flag := 'C';
5351 END IF;
5352
5353 l_Line_Adj_Tbl(i).updated_flag := 'Y';
5354 l_Line_Adj_Tbl(i).change_reason_code := 'MISC';
5355 l_Line_Adj_Tbl(i).change_reason_text := 'Reversing Credit';
5356 end if;
5357 /* End of code for the bug 2888990 */
5358
5359
5360 END IF;
5361 END IF;
5362
5363 px_line_adj_tbl(px_line_adj_tbl.count+1) := L_Line_Adj_Tbl(i);
5364
5365 end if; -- For Freight charges
5366
5367 End If; -- Copy only certain list line types
5368 --RT{
5369 END IF; --check Retrobill and freight
5370 --RT}
5371 End if; -- operation=g_opr_delete
5372
5373 i:= l_Line_Adj_Tbl.Next(i);
5374
5375 end loop;
5376
5377 If l_has_pbh = 'Y' Then
5378 Append_Association(p_line_adj_tbl => px_line_adj_tbl,
5379 px_line_adj_assoc_tbl => px_line_adj_assoc_tbl,
5380 p_pbh_tbl => l_pbh_tbl);
5381 End If;
5382
5383 IF (p_operation = OE_GLOBALS.G_OPR_CREATE) and l_Line_Adj_Tbl.count > 0 THEN
5384 I:=px_line_adj_tbl.first;
5385 while I is not null loop
5386 IF (px_line_adj_tbl(i).operation = OE_GLOBALS.G_OPR_CREATE) THEN
5387 px_line_adj_tbl(i).price_adjustment_id:=fnd_api.g_miss_num;
5388 --RT{
5389 oe_debug_pub.add('operand:'||px_line_adj_tbl(i).operand);
5390 oe_debug_pub.add('operand per pqty:'||px_line_adj_tbl(i).operand_per_pqty);
5391 oe_debug_pub.add('Retro:p_mode:'||p_mode);
5392 IF nvl(p_mode,'NULLMODE') = 'RETROBILL' THEN
5393 IF px_line_adj_tbl(i).retrobill_request_id IS NOT NULL
5394 and px_line_adj_tbl(i).applied_flag = 'N' THEN
5395 --applied flag needs to remain 'Y'. Becomes 'N' only after
5396 --the pricing engine call
5397 px_line_adj_tbl(i).applied_flag := 'Y';
5398 END IF;
5399
5400 --replace with new retrobill request id.
5401 px_line_adj_tbl(i).retrobill_request_id:= p_retrobill_request_id;
5402
5403 --px_line_adj_tbl(i).applied_flag:='N';
5404 oe_debug_pub.add('RETRO:ADJ:Copied list line id:'|| px_line_adj_tbl(i).list_line_id);
5405 oe_debug_pub.add('RETRO:ADJ:Operand:'|| px_line_adj_tbl(i).operand);
5406 oe_debug_pub.add('RETRO:ADJ:Operand pqty:'||px_line_adj_tbl(i).operand_per_pqty);
5407 END IF;
5408 --RT}
5409 END IF;
5410 I:=px_line_adj_tbl.next(I);
5411 end loop;
5412 END IF;
5413
5414 IF l_debug_level > 0 THEN
5415 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.APPEND_ADJUSTMENT_LINES' , 1 ) ;
5416 END IF;
5417
5418 end Append_Adjustment_Lines;
5419
5420 Procedure copy_adjustment_lines(
5421 p_from_line_id number
5422 ,p_to_line_id number
5423 ,p_from_Header_id number
5424 ,p_to_Header_id number
5425 ,p_line_category_code varchar2
5426 ,p_split_by varchar2 default null
5427 ,p_booked_flag varchar2 default null
5428 ,p_mode varchar2 default null
5429 --RT{
5430 ,p_retrobill_request_id Number default null
5431 --RT}
5432 ,x_return_status out nocopy varchar2
5433
5434 )
5435 is
5436 l_Header_Adj_tbl oe_order_pub.Header_adj_tbl_type;
5437 l_Line_Adj_tbl oe_order_pub.Line_adj_tbl_type;
5438 l_control_rec Oe_Globals.Control_rec_type;
5439 l_Line_Adj_Att_tbl OE_Order_PUB.Line_Adj_Att_tbl_type;
5440 l_Line_Adj_Assoc_tbl OE_Order_PUB.Line_Adj_Assoc_tbl_type;
5441 -- l_x_header_rec OE_Order_PUB.Header_Rec_Type;
5442 l_header_rec OE_Order_PUB.Header_Rec_Type;
5443 l_x_Header_Adj_tbl OE_Order_PUB.Header_Adj_Tbl_Type;
5444 l_x_Header_Scredit_tbl OE_Order_PUB.Header_Scredit_Tbl_Type;
5445 l_x_line_tbl OE_Order_PUB.Line_Tbl_Type;
5446 l_line_tbl OE_Order_PUB.Line_Tbl_Type;
5447 l_x_Line_Adj_tbl OE_Order_PUB.Line_Adj_Tbl_Type;
5448 l_x_Line_Scredit_tbl OE_Order_PUB.Line_Scredit_Tbl_Type;
5449 l_x_action_request_tbl OE_Order_PUB.request_tbl_type;
5450 l_x_lot_serial_tbl OE_Order_PUB.lot_serial_tbl_type;
5451 l_x_Header_price_Att_tbl OE_Order_PUB.Header_price_Att_tbl_type;
5452 l_x_Header_Adj_Att_tbl OE_Order_PUB.Header_Adj_Att_tbl_type;
5453 l_x_Header_Adj_Assoc_tbl OE_Order_PUB.Header_Adj_Assoc_tbl_type;
5454 l_x_Line_price_Att_tbl OE_Order_PUB.Line_price_Att_tbl_type;
5455 l_x_Line_Adj_Att_tbl OE_Order_PUB.Line_Adj_Att_tbl_type;
5456 l_x_Line_Adj_Assoc_tbl OE_Order_PUB.Line_Adj_Assoc_tbl_type;
5457 l_x_msg_count number;
5458 l_x_msg_data Varchar2(2000);
5459 i pls_integer;
5460 --serla begin
5461 l_x_Header_Payment_tbl OE_Order_PUB.Header_Payment_Tbl_Type;
5462 l_x_Line_Payment_tbl OE_Order_PUB.Line_Payment_Tbl_Type;
5463 --serla end
5464 --
5465 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5466 --
5467 begin
5468 IF l_debug_level > 0 THEN
5469 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.COPY_ADJUSTMENT_LINES' , 1 ) ;
5470 oe_debug_pub.add( 'SPLIT BY:'||P_SPLIT_BY ) ;
5471 END IF;
5472 -- Set the existing rows to delete
5473 Append_Adjustment_Lines(
5474 p_line_id => p_to_line_id
5475 ,p_operation => OE_GLOBALS.G_OPR_DELETE
5476 ,p_line_category_code => p_line_category_code
5477 ,px_Line_Adj_Att_Tbl => l_Line_Adj_Att_Tbl
5478 ,px_Line_Adj_Tbl => l_Line_Adj_tbl
5479 ,px_line_adj_assoc_tbl => l_line_adj_assoc_tbl);
5480
5481 Append_Adjustment_Lines(p_header_id => p_from_header_id
5482 ,p_line_id => p_from_line_id
5483 ,p_to_line_id => p_to_line_id
5484 ,p_to_Header_id => p_to_Header_id
5485 ,p_line_category_code => p_line_category_code
5486 ,p_operation => OE_GLOBALS.G_OPR_CREATE
5487 ,p_split_by => p_split_by
5488 ,px_Line_Adj_Att_Tbl => l_Line_Adj_Att_Tbl
5489 ,px_Line_Adj_Tbl => l_Line_Adj_tbl
5490 ,px_line_adj_assoc_tbl => l_line_adj_assoc_tbl
5491 --RT{
5492 ,p_mode =>p_mode
5493 ,p_retrobill_request_id=>p_retrobill_request_id);
5494 --RT});
5495 --RT{
5496 IF nvl(p_mode,'xx-') = 'RETROBILL' THEN
5497 OE_ORDER_COPY_UTIL.G_ORDER_LEVEL_COPY :=0;
5498 END IF;
5499 --RT}
5500 -- Append Header level adjustments only if the order is different
5501 /* Modified the following if condition to fix the bug 2170086 */
5502 oe_debug_pub.add('pviprana: p_from_header_id'||p_from_header_id);
5503 oe_debug_pub.add('pviprana: p_to_header_id'||p_to_header_id);
5504 oe_debug_pub.add('pviprana: p_from_line_id'||p_from_line_id);
5505 oe_debug_pub.add('pviprana: p_to_line_id'||p_to_line_id);
5506 If p_from_Header_id <> p_to_Header_id and
5507 OE_ORDER_COPY_UTIL.G_ORDER_LEVEL_COPY = 0 then
5508 --bug3392650 passing an extra parameter p_key_line_id if the mode is 'RETROBILL' so that l_ulp is obtained properly in
5509 --append_adjustment_lines when the order level modifier is being converted to line level.
5510 IF nvl(p_mode,'xx-') = 'RETROBILL' THEN
5511 Append_Adjustment_Lines(
5512 p_Header_id => p_from_Header_id
5513 ,p_to_line_id => p_to_line_id
5514 ,p_to_Header_id => p_to_Header_id
5515 ,p_line_category_code => p_line_category_code
5516 ,p_operation => OE_GLOBALS.G_OPR_CREATE
5517 ,px_Line_Adj_Att_Tbl => l_Line_Adj_Att_Tbl
5518 ,px_Line_Adj_Tbl => l_Line_Adj_tbl
5519 ,px_line_adj_assoc_tbl => l_line_adj_assoc_tbl
5520 --RT{
5521 ,p_key_line_id => p_from_line_id
5522 ,p_mode =>p_mode
5523 ,p_retrobill_request_id=>p_retrobill_request_id
5524 --RT}
5525 );
5526 ELSE
5527 Append_Adjustment_Lines(
5528 p_Header_id => p_from_Header_id
5529 ,p_to_line_id => p_to_line_id
5530 ,p_to_Header_id => p_to_Header_id
5531 ,p_line_category_code => p_line_category_code
5532 ,p_operation => OE_GLOBALS.G_OPR_CREATE
5533 ,px_Line_Adj_Att_Tbl => l_Line_Adj_Att_Tbl
5534 ,px_Line_Adj_Tbl => l_Line_Adj_tbl
5535 ,px_line_adj_assoc_tbl => l_line_adj_assoc_tbl
5536 );
5537 END IF;
5538
5539
5540
5541 End If;
5542 If
5543 l_Line_Adj_tbl.count > 0 or
5544 l_Line_Adj_att_tbl.count > 0
5545 Then
5546
5547 -- set control record
5548 l_control_rec.controlled_operation := TRUE;
5549 l_control_rec.write_to_DB := TRUE;
5550 l_control_rec.change_attributes := TRUE;
5551 l_control_rec.default_attributes := TRUE;
5552 l_control_rec.validate_entity := TRUE;
5553 l_control_rec.clear_dependents := TRUE;
5554
5555 l_control_rec.process := FALSE;
5556 l_control_rec.clear_api_cache := FALSE;
5557 l_control_rec.clear_api_requests := FALSE;
5558
5559
5560 -- Call OE_Order_PVT.Process_order
5561
5562 IF l_debug_level > 0 THEN
5563 oe_debug_pub.add( 'BEFORE OE_ORDER_PVT.PROCESS_ORDER'||L_LINE_ADJ_TBL.COUNT , 1 ) ;
5564 END IF ;
5565
5566 OE_Globals.G_PRICING_RECURSION := 'Y';
5567
5568 OE_Order_PVT.Process_order
5569 ( p_api_version_number => 1.0
5570 , x_return_status => x_return_status
5571 , x_msg_count => l_x_msg_count
5572 , x_msg_data => l_x_msg_data
5573 , p_control_rec => l_control_rec
5574 , p_x_Line_Adj_tbl => l_Line_Adj_tbl
5575 , p_x_Line_Adj_att_tbl => l_Line_Adj_att_tbl
5576 -- , x_header_rec => l_x_header_rec
5577 , p_x_header_rec => l_header_rec
5578 , p_x_Header_Adj_tbl => l_x_Header_Adj_tbl
5579 , p_x_header_price_att_tbl => l_x_header_price_att_tbl
5580 , p_x_Header_Adj_att_tbl => l_x_Header_Adj_att_tbl
5581 , p_x_Header_Adj_Assoc_tbl => l_x_Header_Adj_Assoc_tbl
5582 , p_x_Header_Scredit_tbl => l_x_Header_Scredit_tbl
5583 --serla begin
5584 , p_x_Header_Payment_tbl => l_x_Header_Payment_tbl
5585 --serla end
5586 -- , p_x_line_tbl => l_x_line_tbl
5587 , p_x_line_tbl => l_line_tbl
5588 -- , x_Line_Adj_tbl => l_x_Line_Adj_tbl
5589 , p_x_Line_Price_att_tbl => l_x_Line_Price_att_tbl
5590 -- , x_Line_Adj_att_tbl => l_x_Line_Adj_att_tbl
5591 -- , x_Line_Adj_Assoc_tbl => l_x_Line_Adj_Assoc_tbl
5592 , p_x_Line_Adj_Assoc_tbl => l_Line_Adj_Assoc_tbl
5593 , p_x_Line_Scredit_tbl => l_x_Line_Scredit_tbl
5594 --serla begin
5595 , p_x_Line_Payment_tbl => l_x_Line_Payment_tbl
5596 --serla end
5597 , p_x_Lot_Serial_tbl => l_x_Lot_Serial_Tbl
5598 , p_x_action_request_tbl => l_x_Action_Request_tbl
5599 );
5600
5601 OE_Globals.G_PRICING_RECURSION := 'N';
5602
5603
5604 End If;
5605
5606 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5607 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5608 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
5609 RAISE FND_API.G_EXC_ERROR;
5610 END IF;
5611
5612 IF l_debug_level > 0 THEN
5613 oe_debug_pub.add( 'EXITING OE_LINE_ADJ_UTIL.COPY_ADJUSTMENT_LINES' , 1 ) ;
5614 END IF;
5615
5616 Exception
5617 WHEN FND_API.G_EXC_ERROR THEN
5618 x_return_status := FND_API.G_RET_STS_ERROR;
5619
5620 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5621
5622 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5623 IF l_debug_level > 0 THEN
5624 oe_debug_pub.add( G_PKG_NAME||':COPY_ADJUSTMENT_LINES:'||SQLERRM ) ;
5625 END IF;
5626
5627 end copy_adjustment_lines;
5628
5629 /* Start AuditTrail */
5630 PROCEDURE Pre_Write_Process
5631 ( p_x_line_adj_rec IN OUT NOCOPY OE_ORDER_PUB.line_adj_rec_type,
5632 p_old_line_adj_rec IN OE_ORDER_PUB.line_adj_rec_type := OE_ORDER_PUB.G_MISS_LINE_ADJ_REC) IS
5633 /*local */
5634 l_return_status varchar2(30);
5635 --
5636 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5637 --
5638 l_org_id NUMBER(15):=MO_GLOBAL.Get_Current_Org_Id; --TaxER
5639 l_current_event number := 0; --TaxER
5640 l_tax_calculation_event_code number := 0; --TaxER
5641 l_line_rec OE_Order_PUB.Line_Rec_Type; --TaxER
5642 BEGIN
5643
5644 --11.5.10 Versioning/Audit Trail updates
5645 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' AND
5646 OE_GLOBALS.G_ROLL_VERSION <> 'N' AND
5647 NOT OE_GLOBALS.G_HEADER_CREATED THEN
5648 IF OE_GLOBALS.G_REASON_CODE IS NULL AND
5649 OE_GLOBALS.G_CAPTURED_REASON IN ('V','A') THEN
5650 IF p_x_line_adj_rec.change_reason_code <> FND_API.G_MISS_CHAR THEN
5651 Null; -- for bug 13343285
5652 /* OE_GLOBALS.G_REASON_TYPE := 'CHANGE_CODE';
5653 OE_GLOBALS.G_REASON_CODE := p_x_line_adj_rec.change_reason_code;
5654 OE_GLOBALS.G_REASON_COMMENTS := p_x_line_adj_rec.change_reason_text;
5655 OE_GLOBALS.G_CAPTURED_REASON := 'Y';*/
5656 ELSE
5657 if l_debug_level > 0 then
5658 OE_DEBUG_PUB.add('Reason code for versioning is missing or invalid', 1);
5659 end if;
5660 --bug 3775971
5661 if OE_GLOBALS.G_UI_FLAG AND
5662 (OE_GLOBALS.G_PRICING_RECURSION = 'Y' OR
5663 OE_GLOBALS.G_RECURSION_MODE = 'Y') then
5664 raise FND_API.G_EXC_ERROR;
5665 end if;
5666 END IF;
5667 END IF;
5668
5669 --log delayed request
5670 oe_debug_pub.add('log versioning request',1);
5671 OE_Delayed_Requests_Pvt.Log_Request(p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
5672 p_entity_id => p_x_line_adj_rec.header_id,
5673 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
5674 p_requesting_entity_id => p_x_line_adj_rec.price_adjustment_id,
5675 p_request_type => OE_GLOBALS.G_VERSION_AUDIT,
5676 x_return_status => l_return_status);
5677 END IF;
5678
5679 if (p_x_line_adj_rec.operation = OE_GLOBALS.G_OPR_UPDATE) then
5680
5681 IF OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG = 'Y' OR
5682 OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG = 'Y' THEN
5683
5684 IF l_debug_level > 0 THEN
5685 oe_debug_pub.add( 'CALL TO RECORD LINE PRICE ADJ HISTORY' , 5 ) ;
5686 END IF;
5687 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' THEN
5688 OE_Versioning_Util.Capture_Audit_Info(p_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
5689 p_entity_id => p_x_line_adj_rec.price_adjustment_id,
5690 p_hist_type_code => 'UPDATE');
5691 --log delayed request
5692 OE_Delayed_Requests_Pvt.Log_Request(p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
5693 p_entity_id => p_x_line_adj_rec.header_id,
5694 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE_ADJ,
5695 p_requesting_entity_id => p_x_line_adj_rec.price_adjustment_id,
5696 p_request_type => OE_GLOBALS.G_VERSION_AUDIT,
5697 x_return_status => l_return_status);
5698 OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
5699 ELSE
5700 OE_CHG_ORDER_PVT.RecordLPAdjHist
5701 ( p_line_adj_id => p_x_line_adj_rec.price_adjustment_id,
5702 p_line_adj_rec => null,
5703 p_hist_type_code => 'UPDATE',
5704 p_reason_code => p_x_line_adj_rec.change_reason_code,
5705 p_comments => p_x_line_adj_rec.change_reason_text,
5706 p_wf_activity_code => null,
5707 p_wf_result_code => null,
5708 x_return_status => l_return_status );
5709 END IF;
5710
5711 END IF;
5712 END IF; --TaxER
5713
5714 --TaxER start
5715 IF (NVL(oe_sys_parameters.value('OE_INVOICE_FREIGHT_AS_LINE',l_org_id), 'N') = 'Y')
5716 AND p_x_line_adj_rec.list_line_type_code = 'FREIGHT_CHARGE' THEN
5717
5718 BEGIN
5719
5720 IF OE_Order_Cache.g_header_rec.order_type_id is not null THEN
5721
5722 IF (OE_Order_Cache.g_order_type_rec.order_type_id = FND_API.G_MISS_NUM) OR (OE_Order_Cache.g_order_type_rec.order_type_id is null)
5723 OR (OE_Order_Cache.g_order_type_rec.order_type_id <> OE_Order_Cache.g_header_rec.Order_Type_id)
5724 THEN
5725 OE_Order_Cache.Load_Order_type(OE_Order_CACHE.g_header_rec.Order_Type_id) ;
5726 END IF ;
5727
5728 IF (OE_Order_Cache.g_order_type_rec.order_type_id = OE_Order_Cache.g_header_rec.Order_Type_id) THEN
5729 if (OE_Order_Cache.g_order_type_rec.tax_calculation_event_code = 'ENTERING') then
5730 l_tax_calculation_event_code := 0;
5731 elsif (OE_Order_Cache.g_order_type_rec.tax_calculation_event_code = 'BOOKING') then
5732 l_tax_calculation_event_code := 1;
5733 elsif (OE_Order_Cache.g_order_type_rec.tax_calculation_event_code = 'SHIPPING') then
5734 l_tax_calculation_event_code := 2;
5735 elsif (OE_Order_Cache.g_order_type_rec.tax_calculation_event_code = 'INVOICING') then
5736 l_tax_calculation_event_code := 3;
5737 else
5738 l_tax_calculation_event_code := -1;
5739 end if ;
5740 ELSE
5741 l_tax_calculation_event_code := 0 ;
5742 END IF ;
5743
5744
5745 END IF;
5746
5747 EXCEPTION
5748 WHEN NO_DATA_FOUND THEN
5749 l_tax_calculation_event_code := 0;
5750 WHEN OTHERS THEN
5751 IF l_debug_level > 0 THEN
5752 oe_debug_pub.add('OEXULADB:Failed while trying to query up tax_calcualtion_event for order_type_id ');
5753 END IF;
5754
5755 RAISE;
5756 END;
5757
5758 BEGIN
5759 l_line_rec := OE_line_UTIL.Query_Row(p_line_id=> p_x_line_adj_rec.line_id);
5760 EXCEPTION
5761 WHEN NO_DATA_FOUND THEN --bug12594800
5762 l_current_event := 0; /* current event is Entering */
5763 END;
5764 IF nvl(l_line_rec.booked_flag, 'N') = 'Y' THEN
5765 l_current_event := 1; /* current event is booking or higher */
5766 END IF;
5767
5768 IF (l_line_rec.shippable_flag = 'Y' and
5769 l_line_rec.shipped_quantity is not null ) THEN
5770 l_current_event := 2; /* current event is shipping or higher */
5771 END IF;
5772
5773
5774 IF ( l_tax_calculation_event_code = 2 and
5775 l_line_rec.shippable_flag = 'N' ) THEN
5776 l_current_event := l_tax_calculation_event_code;
5777 END IF;
5778
5779 IF l_debug_level > 0 THEN
5780 oe_debug_pub.add('OEXULADB:Tax Event Code :'||l_tax_calculation_event_code);
5781 oe_debug_pub.add('OEXULADB:Current Event :'||l_current_event);
5782 END IF;
5783
5784 IF l_current_event >= l_tax_calculation_event_code THEN
5785
5786 IF (OE_GLOBALS.G_UI_FLAG)
5787 AND nvl(FND_PROFILE.VALUE('ONT_DELAY_TAX_CALC'), 'N') = 'N'
5788 THEN
5789 OE_delayed_requests_Pvt.log_request(
5790 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
5791 p_entity_id => p_x_line_adj_rec.line_id,
5792 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
5793 p_requesting_entity_id => p_x_line_adj_rec.line_id,
5794 p_request_type => OE_GLOBALS.g_tax_line,
5795 x_return_status => l_return_status);
5796 ELSE
5797 OE_delayed_requests_Pvt.log_request(
5798 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
5799 p_entity_id => p_x_line_adj_rec.line_id,
5800 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
5801 p_requesting_entity_id => p_x_line_adj_rec.line_id,
5802 p_request_type => OE_GLOBALS.g_tax_line,
5803 p_param1 => NULL,
5804 x_return_status => l_return_status);
5805 END IF;
5806 END IF;
5807
5808 END IF;
5809 --TaxER end
5810
5811 IF l_return_status <> FND_API.G_RET_STS_SUCCESS then
5812 IF l_debug_level > 0 THEN
5813 oe_debug_pub.add( 'INSERT INTO LINE PRICE ADJUSTMENTS AUDIT HISTORY CAUSED ERROR' , 1 ) ;
5814 END IF;
5815 IF l_return_status = FND_API.G_RET_STS_ERROR then
5816 raise FND_API.G_EXC_ERROR;
5817 ELSE
5818 raise FND_API.G_EXC_UNEXPECTED_ERROR;
5819 END IF;
5820 END IF;
5821 --TaxER END IF;
5822
5823 END Pre_Write_Process;
5824 /* End AuditTrail */
5825
5826 Function Is_Pricing_Related_Change(p_new_line_rec In Oe_Order_Pub.Line_Rec_Type,
5827 p_old_line_rec In Oe_Order_Pub.Line_Rec_Type) Return Boolean As
5828 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5829 Begin
5830
5831 IF l_debug_level > 0 THEN
5832 oe_debug_pub.add( ' Check if any pricing related changes has occured' ) ;
5833 END IF;
5834
5835 IF NOT OE_GLOBALS.Equal(p_new_line_rec.agreement_id,p_old_line_rec.agreement_id)
5836 OR NOT OE_GLOBALS.Equal(p_new_line_rec.cust_po_number,p_old_line_rec.cust_po_number)
5837 OR NOT OE_GLOBALS.Equal(p_new_line_rec.inventory_item_id,p_old_line_rec.inventory_item_id)
5838 OR NOT OE_GLOBALS.Equal(p_new_line_rec.invoice_to_org_id,p_old_line_rec.invoice_to_org_id)
5839 OR NOT OE_GLOBALS.Equal(p_new_line_rec.ordered_item_id,p_old_line_rec.ordered_item_id)
5840 OR NOT OE_GLOBALS.Equal(p_new_line_rec.ordered_item,p_old_line_rec.ordered_item)
5841 OR NOT OE_GLOBALS.Equal(p_new_line_rec.line_category_code,p_old_line_rec.line_category_code)
5842 OR NOT OE_GLOBALS.Equal(p_new_line_rec.line_type_id,p_old_line_rec.line_type_id)
5843 OR NOT OE_GLOBALS.Equal(p_new_line_rec.ordered_quantity,p_old_line_rec.ordered_quantity)
5844 OR NOT OE_GLOBALS.Equal(p_new_line_rec.order_quantity_uom,p_old_line_rec.order_quantity_uom)
5845 OR NOT OE_GLOBALS.Equal(p_new_line_rec.payment_term_id,p_old_line_rec.payment_term_id)
5846 OR NOT OE_GLOBALS.Equal(p_new_line_rec.price_list_id,p_old_line_rec.price_list_id)
5847 OR NOT OE_GLOBALS.Equal(p_new_line_rec.pricing_date,p_old_line_rec.pricing_date)
5848 OR NOT OE_GLOBALS.Equal(p_new_line_rec.pricing_quantity,p_old_line_rec.pricing_quantity)
5849 OR NOT OE_GLOBALS.Equal(p_new_line_rec.pricing_quantity_uom,p_old_line_rec.pricing_quantity_uom)
5850 OR NOT OE_GLOBALS.Equal(p_new_line_rec.request_date,p_old_line_rec.request_date)
5851 OR NOT OE_GLOBALS.Equal(p_new_line_rec.ship_to_org_id,p_old_line_rec.ship_to_org_id)
5852 OR NOT OE_GLOBALS.Equal(p_new_line_rec.sold_to_org_id,p_old_line_rec.sold_to_org_id)
5853 OR NOT OE_GLOBALS.Equal(p_new_line_rec.unit_selling_price,p_old_line_rec.unit_selling_price)
5854 OR NOT OE_GLOBALS.Equal(p_new_line_rec.service_start_date,p_old_line_rec.service_start_date)
5855 OR NOT OE_GLOBALS.Equal(p_new_line_rec.service_end_date,p_old_line_rec.service_end_date)
5856 OR NOT OE_GLOBALS.Equal(p_new_line_rec.service_duration,p_old_line_rec.service_duration)
5857 OR NOT OE_GLOBALS.Equal(p_new_line_rec.service_period,p_old_line_rec.service_period)
5858 --Bug 4332307
5859 OR (
5860 ((p_new_line_rec.unit_list_price IS NOT NULL AND
5861 p_new_line_rec.unit_list_price <> FND_API.G_MISS_NUM AND
5862 p_new_line_rec.unit_list_price <> p_old_line_rec.unit_list_price)
5863 OR
5864 (p_new_line_rec.unit_list_price IS NULL))
5865 AND
5866 p_old_line_rec.unit_list_price IS NOT NULL AND
5867 p_old_line_rec.unit_list_price <> FND_API.G_MISS_NUM AND
5868 p_new_line_rec.original_list_price IS NOT NULL AND
5869 p_new_line_rec.original_list_price <> FND_API.G_MISS_NUM AND
5870 p_new_line_rec.Ordered_Quantity <> fnd_api.g_miss_num and
5871 p_new_line_rec.order_quantity_uom is not null and
5872 p_new_line_rec.order_quantity_uom <> fnd_api.g_miss_char
5873 AND oe_code_control.code_release_level >= '110510'
5874 AND nvl(fnd_profile.value('ONT_LIST_PRICE_OVERRIDE_PRIV'), 'NONE') = 'UNLIMITED'
5875 AND OE_GLOBALS.G_UI_FLAG
5876 AND OE_Globals.G_PRICING_RECURSION = 'N'
5877 )
5878 --Bug 4332307
5879
5880 Then
5881 IF l_debug_level > 0 THEN
5882 oe_debug_pub.add( ' PRICING RELATED FIELDS HAS CHANGED' ) ;
5883 END IF;
5884 Return True;
5885
5886 Else
5887 IF l_debug_level > 0 THEN
5888 oe_debug_pub.add( ' NO pricing related Fields Has Changed' ) ;
5889 END IF;
5890 Return False;
5891 End If;
5892
5893
5894 End;
5895
5896 /* 1503357 - Delete all PRG lines associated with a particular line */
5897 Procedure Delete_PRG_Lines(p_line_id In Number, p_operation In Varchar2) Is
5898
5899 -- Get all PRG lines
5900 Cursor prg_lines is
5901 select adj1.line_id, assoc.rltd_price_adj_id
5902 from oe_price_adjustments adj1,
5903 oe_price_adj_assocs assoc,
5904 oe_price_adjustments adj2,
5905 oe_order_lines_all line
5906 where adj1.price_adjustment_id = assoc.rltd_price_adj_id AND
5907 assoc.price_adjustment_id = adj2.price_adjustment_id AND
5908 adj2.list_line_type_code = 'PRG' AND
5909 adj1.line_id = line.line_id AND /*Added for bug 4018279*/
5910 line.open_flag = 'Y' AND
5911 adj2.line_id = p_line_id;
5912
5913
5914 Cursor prg_adjs is
5915 select price_adjustment_id
5916 from oe_price_adjustments
5917 where line_id = p_line_id AND list_line_type_code = 'PRG';
5918
5919 /* Variables to call process order */
5920 l_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
5921 l_old_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
5922 l_control_rec OE_GLOBALS.Control_Rec_Type;
5923 l_line_rec OE_Order_PUB.Line_Rec_Type;
5924 x_return_status Varchar2(1);
5925 l_prg_line_id NUMBER;
5926 l_price_adj_id NUMBER;
5927 l_delete_prg varchar2(1);
5928 l_dummy NUMBER;
5929 l_rltd_price_adj_id NUMBER;
5930 --
5931 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5932 --
5933 l_reason_code VARCHAR2(30);
5934 l_reason_comments VARCHAR2(2000);
5935 l_captured_reason varchar2(1);
5936
5937 Begin
5938 IF l_debug_level > 0 THEN
5939 oe_debug_pub.add( 'ENTERING OEXULADB.DELETE_PRG_LINES WITH LINE_ID = ' || P_LINE_ID ) ;
5940 END IF;
5941 if l_debug_level > 0 then
5942 oe_debug_pub.add('reason:'||OE_GLOBALS.G_REASON_CODE,3);
5943 oe_debug_pub.add('captured:'||OE_GLOBALS.G_captured_reason,3);
5944 oe_debug_pub.add('audit:'||OE_GLOBALS.G_version_audit,3);
5945 end if;
5946 l_reason_code := OE_GLOBALS.G_REASON_CODE;
5947 l_reason_comments := OE_GLOBALS.G_REASON_COMMENTS;
5948 l_captured_reason := OE_GLOBALS.G_CAPTURED_REASON;
5949 OPEN prg_lines;
5950 FETCH prg_lines into l_prg_line_id, l_rltd_price_adj_id;
5951 WHILE prg_lines%FOUND Loop
5952 IF l_debug_level > 0 THEN
5953 oe_debug_pub.add( 'PRG LINE ID = ' || L_PRG_LINE_ID ) ;
5954 END IF;
5955 OE_LINE_UTIL.QUERY_ROW(p_line_id => l_prg_line_id,
5956 x_line_rec => l_line_rec);
5957
5958 l_old_line_tbl(1) := l_line_rec;
5959
5960 if (l_line_rec.booked_flag <> 'Y') Then
5961
5962 IF l_debug_level > 0 THEN
5963 oe_debug_pub.add( 'ORDER NOT BOOKED' ) ;
5964 END IF;
5965 l_line_rec.operation := OE_GLOBALS.G_OPR_DELETE;
5966
5967 else
5968 if (l_line_rec.shipped_quantity is NULL) Then
5969 IF l_debug_level > 0 THEN
5970 oe_debug_pub.add( 'BOOKED ORDER , LINE NOT SHIPPED' ) ;
5971 END IF;
5972 if (p_operation = OE_GLOBALS.G_OPR_DELETE) Then
5973 -- bug 2756288, if buy line can be deleted, so can get line
5974 l_line_rec.operation := OE_GLOBALS.G_OPR_DELETE;
5975 else
5976 l_line_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
5977 l_line_rec.ordered_quantity := 0;
5978 l_line_rec.pricing_quantity := 0;
5979 end if;
5980 else
5981 IF l_debug_level > 0 THEN
5982 oe_debug_pub.add( 'BOOKED ORDER , SHIPPED LINE' ) ;
5983 END IF;
5984 l_line_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
5985 l_line_rec.calculate_price_flag := 'Y';
5986 end if;
5987 end if;
5988 l_line_rec.change_reason := 'SYSTEM';
5989 l_line_rec.change_comments := 'REPRICING';
5990
5991 for i in prg_adjs LOOP
5992 -- Delete PRG adjustment record and the association
5993 -- between the buy line and the get line
5994 IF l_debug_level > 0 THEN
5995 oe_debug_pub.add( 'PRICE ADJ ID = ' || I.PRICE_ADJUSTMENT_ID ) ;
5996 END IF;
5997 OE_LINE_ADJ_UTIL.DELETE_ROW(p_price_adjustment_id => i.price_adjustment_id);
5998
5999 DELETE FROM OE_PRICE_ADJ_ASSOCS WHERE PRICE_ADJUSTMENT_ID = i.price_adjustment_id;
6000 END LOOP;
6001 BEGIN
6002 l_delete_prg := 'N';
6003 SELECT price_adj_assoc_id INTO l_dummy from oe_price_adj_assocs
6004 WHERE rltd_price_adj_id = l_rltd_price_adj_id and rownum < 2;
6005 exception
6006 WHEN NO_DATA_FOUND THEN
6007 l_delete_prg := 'Y';
6008 END;
6009 IF l_debug_level > 0 THEN
6010 oe_debug_pub.add( 'ASSOC ID:'||L_DUMMY ) ;
6011 END IF;
6012
6013 IF (l_delete_prg = 'Y') THEN
6014 -- Call Process Order
6015 l_control_rec.controlled_operation := TRUE;
6016 l_control_rec.check_security := TRUE;
6017 l_control_rec.clear_dependents := TRUE;
6018 l_control_rec.default_attributes := TRUE;
6019 l_control_rec.change_attributes := TRUE;
6020 l_control_rec.validate_entity := TRUE;
6021 l_control_rec.write_to_DB := TRUE;
6022 l_control_rec.process := FALSE;
6023
6024 l_line_tbl(1) := l_line_rec;
6025
6026 Oe_Order_Pvt.Lines
6027 ( p_validation_level => FND_API.G_VALID_LEVEL_NONE
6028 , p_control_rec => l_control_rec
6029 , p_x_line_tbl => l_line_tbl
6030 , p_x_old_line_tbl => l_old_line_tbl
6031 , x_return_status => x_return_status
6032 );
6033
6034 OE_GLOBALS.G_CASCADING_REQUEST_LOGGED := TRUE;
6035 END IF;
6036 FETCH prg_lines into l_prg_line_id, l_rltd_price_adj_id;
6037 End Loop;
6038 CLOSE prg_lines;
6039 if l_debug_level > 0 then
6040 oe_debug_pub.add('reason:'||OE_GLOBALS.G_REASON_CODE,3);
6041 oe_debug_pub.add('captured:'||OE_GLOBALS.G_captured_reason,3);
6042 oe_debug_pub.add('audit:'||OE_GLOBALS.G_version_audit,3);
6043 end if;
6044 OE_GLOBALS.G_REASON_CODE := l_reason_code;
6045 OE_GLOBALS.G_REASON_COMMENTS := l_reason_comments;
6046 OE_GLOBALS.G_CAPTURED_REASON := l_captured_reason;
6047
6048 IF l_debug_level > 0 THEN
6049 oe_debug_pub.add( 'EXITING OEXULADB.DELETE_PRG_LINES' ) ;
6050 END IF;
6051 EXCEPTION
6052 WHEN OTHERS THEN
6053 IF l_debug_level > 0 THEN
6054 oe_debug_pub.add( 'EXCEPTION IN DELETE_PRG_LINES'||SQLERRM , 3 ) ;
6055 END IF;
6056 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6057 End Delete_PRG_Lines;
6058
6059 Procedure Check_Canceled_PRG(p_old_line_rec in Oe_Order_Pub.line_rec_type,
6060 p_new_line_rec in Oe_Order_Pub.line_rec_type) Is
6061 --
6062 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6063 --
6064 Begin
6065
6066 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
6067 IF (nvl(p_new_line_rec.booked_flag, 'X') <> 'Y') Then
6068 IF (p_new_line_rec.operation = OE_GLOBALS.G_OPR_DELETE OR p_new_line_rec.ordered_quantity = 0) Then
6069 IF l_debug_level > 0 THEN
6070 oe_debug_pub.add( 'OPEN ORDER , ORDERED QTY CHANGED TO ZERO , DELETE ALL PRG LINES' ) ;
6071 END IF;
6072 Delete_PRG_Lines(p_new_line_rec.line_id, p_new_line_rec.operation);
6073 END IF;
6074 ELSE
6075 IF (p_new_line_rec.ordered_quantity = 0 AND
6076 (p_new_line_rec.change_reason is NOT NULL OR
6077 p_new_line_rec.change_reason <> FND_API.G_MISS_CHAR))
6078 OR p_new_line_rec.operation = OE_GLOBALS.G_OPR_DELETE Then
6079 IF l_debug_level > 0 THEN
6080 oe_debug_pub.add( 'BOOKED ORDER , ORDERED QTY CHANGED TO ZERO , DELETE ALL PRG LINES' ) ;
6081 END IF;
6082 Delete_PRG_Lines(p_new_line_rec.line_id, p_new_line_rec.operation);
6083 END IF;
6084 END IF;
6085 End if;
6086 EXCEPTION
6087 WHEN OTHERS THEN
6088 IF l_debug_level > 0 THEN
6089 oe_debug_pub.add( 'EXCEPTION IN CHECK_CANCELED_PRG'||SQLERRM , 3 ) ;
6090 END IF;
6091 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6092 End Check_Canceled_PRG;
6093
6094 ------------------------------------------------------------------------------------
6095 --Called from OEXULINB.pls apply_attribute_changes to check is a repricing is required
6096 --Not yet fully implemented. Will work in when getting the lock of OEXULINB.pls
6097 ------------------------------------------------------------------------------------
6098 Procedure Process_Pricing (p_x_new_line_rec In OUT Nocopy Oe_Order_Pub.Line_Rec_Type,
6099 p_old_line_rec In Oe_Order_Pub.Line_Rec_Type,
6100 p_no_price_flag In Boolean) Is
6101
6102 l_price_flag Varchar2(1):='Y';
6103 l_charges_for_included_item VARCHAR2(1):=NVL(FND_PROFILE.VALUE('ONT_CHARGES_FOR_INCLUDED_ITEM'),'N');
6104 l_return_status VARCHAR2(10);
6105 l_pricing_related_changes Boolean :=False;
6106 l_margin_related_changes Boolean :=False;
6107
6108 --
6109 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6110 --
6111 Begin
6112 IF l_debug_level > 0 THEN
6113 oe_debug_pub.add( 'ENTERING OE_LINE_ADJ_UTIL.PROCESS_PRICING CALLED FROM ULINB' ) ;
6114 END IF;
6115
6116 IF NOT OE_GLOBALS.Equal(p_x_new_line_rec.cancelled_quantity,p_old_line_rec.cancelled_quantity)
6117 and p_x_new_line_rec.cancelled_quantity > 0
6118 Then
6119 IF l_debug_level > 0 THEN
6120 oe_debug_pub.add( ' USER CANCELS LINE , CANCELLED QUANTITY:'||P_X_NEW_LINE_REC.CANCELLED_QUANTITY ) ;
6121 END IF;
6122
6123 --bug7491829 added p_ordered_quantity
6124 Process_Cancelled_Lines(p_x_new_line_rec=>p_x_new_line_rec,
6125 p_ordered_quantity => p_old_line_rec.ordered_quantity);
6126 End If;
6127
6128 IF Is_Pricing_Related_Change(p_new_line_rec => p_x_new_line_rec,
6129 p_old_line_rec => p_old_line_rec)
6130 THEN
6131 l_pricing_related_changes := True;
6132 End If;
6133
6134
6135 IF NOT OE_GLOBALS.Equal(p_x_new_line_rec.unit_cost,p_old_line_rec.unit_cost)
6136 Then
6137 IF l_debug_level > 0 THEN
6138 oe_debug_pub.add( ' BOOKED FLAG OR UNIT COST CHANGES' ) ;
6139 END IF;
6140 l_margin_related_changes := True;
6141 End If;
6142
6143
6144 IF l_pricing_related_changes THEN
6145 Register_Changed_Lines(p_line_id => p_x_new_line_rec.line_id,
6146 p_header_id => p_x_new_line_rec.header_id,
6147 p_operation => p_x_new_line_rec.operation);
6148
6149 --bug 2965218
6150 If G_GROUP_PRICING_DSP IS NULL and p_x_new_line_rec.source_document_type_id = 5 Then
6151 G_GROUP_PRICING_DSP := nvl(fnd_profile.value('ONT_GRP_PRICE_FOR_DSP'),'N');
6152 End If;
6153 if p_x_new_line_rec.source_document_type_id = 5 and G_GROUP_PRICING_DSP = 'N' Then
6154 If nvl(G_SEND_ALL_LINES_FOR_DSP,'N') <> 'Y' Then
6155 G_SEND_ALL_LINES_FOR_DSP := 'N';
6156 End If;
6157 else
6158 G_SEND_ALL_LINES_FOR_DSP := 'Y';
6159 end if;
6160 If l_debug_level > 0 Then
6161 oe_debug_pub.add('G_GROUP_PRICING_DSP = '||G_GROUP_PRICING_DSP);
6162 End If;
6163
6164 If G_CODE_RELEASE_LEVEL IS NULL THEN
6165 G_CODE_RELEASE_LEVEL := OE_CODE_CONTROL.CODE_RELEASE_LEVEL;
6166 End If;
6167
6168 If l_debug_level > 0 Then
6169 oe_debug_pub.add('G_CODE_RELEASE_LEVEL = '||G_CODE_RELEASE_LEVEL);
6170 End If;
6171
6172 if p_x_new_line_rec.ordered_quantity2 is not null and G_CODE_RELEASE_LEVEL < '110509' Then
6173 G_OPM_ITEM_CATCHWEIGHT_USED := 'Y';
6174 End If;
6175 END IF;
6176
6177
6178 IF (l_margin_related_changes or l_pricing_related_changes)
6179 AND p_x_new_line_rec.booked_flag = 'Y' THEN
6180 IF OE_FEATURES_PVT.Is_Margin_Avail THEN
6181 --attributes affect selling price changes, we log a delayed request to
6182 --evaluate margin, margin_hold procedure will hold the order if
6183 --margin falls below a intended setup margin
6184 IF Oe_Sys_Parameters.Value('COMPUTE_MARGIN') <> 'N' Then
6185 IF l_debug_level > 0 THEN
6186 oe_debug_pub.add( 'LOGGING DELAYED REQUEST FOR MARGIN HOLD FOR BOOKED LINE_ID:'||P_X_NEW_LINE_REC.LINE_ID ) ;
6187 END IF;
6188 oe_delayed_requests_pvt.log_request(
6189 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6190 p_entity_id => p_x_new_line_rec.header_id,
6191
6192 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6193 p_requesting_entity_id => p_x_new_line_rec.header_id,
6194
6195 p_request_type => 'MARGIN_HOLD',
6196 x_return_status => l_return_status);
6197 END IF;
6198 END IF;
6199 END IF;
6200
6201
6202
6203 --MRG BGN, performance bug 4580260 (fp of bug 4273309)
6204 IF OE_FEATURES_PVT.Is_Margin_Avail
6205 AND p_x_new_line_rec.item_type_code NOT IN ('KIT','MODEL','INCLUDED','CLASS','CONFIG','OPTION') THEN
6206 IF l_debug_level > 0 THEN
6207 oe_debug_pub.add( 'NEW INV ITEM ID = '||P_X_NEW_LINE_REC.INVENTORY_ITEM_ID , 1 ) ;
6208 oe_debug_pub.add( 'OLD INV ITEM ID = '||P_OLD_LINE_REC.INVENTORY_ITEM_ID , 1 ) ;
6209 oe_debug_pub.add( 'NEW SHIP_FROM_ORG_ID = '||P_X_NEW_LINE_REC.SHIP_FROM_ORG_ID , 1 ) ;
6210 oe_debug_pub.add( 'OLD SHIP_FROM_ORG_ID = '||P_OLD_LINE_REC.SHIP_FROM_ORG_ID , 1 ) ;
6211 oe_debug_pub.add( 'NEW PROJECT_ID = '||P_X_NEW_LINE_REC.PROJECT_ID , 1 ) ;
6212 oe_debug_pub.add( 'OLD PROJECT_ID = '||P_OLD_LINE_REC.PROJECT_ID , 1 ) ;
6213 oe_debug_pub.add( 'NEW ACTUAL_SHIPMENT_DATE = '||P_X_NEW_LINE_REC.ACTUAL_SHIPMENT_DATE , 1 ) ;
6214 oe_debug_pub.add( 'OLD ACTUAL_SHIPMENT_DATE = '||P_OLD_LINE_REC.ACTUAL_SHIPMENT_DATE , 1 ) ;
6215 oe_debug_pub.add( 'NEW FULFILLMENT_DATE = '||P_X_NEW_LINE_REC.FULFILLMENT_DATE , 1 ) ;
6216 oe_debug_pub.add( 'OLD FULFILLMENT_DATE = '||P_OLD_LINE_REC.FULFILLMENT_DATE , 1 ) ;
6217 oe_debug_pub.add( 'NEW PRICING_DATE = '||P_X_NEW_LINE_REC.PRICING_DATE , 1 ) ;
6218 oe_debug_pub.add( 'OLD PRICING_DATE = '||P_OLD_LINE_REC.PRICING_DATE , 1 ) ;
6219 END IF;
6220
6221 IF NOT OE_GLOBALS.Equal(p_x_new_line_rec.inventory_item_id,p_old_line_rec.inventory_item_id)
6222 OR NOT OE_GLOBALS.Equal(p_x_new_line_rec.ship_from_org_id,p_old_line_rec.ship_from_org_id)
6223 OR NOT OE_GLOBALS.Equal(p_x_new_line_rec.project_id,p_old_line_rec.project_id)
6224 OR NOT OE_GLOBALS.Equal(p_x_new_line_rec.actual_shipment_date,p_old_line_rec.actual_shipment_date)
6225 OR NOT OE_GLOBALS.Equal(p_x_new_line_rec.fulfillment_date,p_old_line_rec.fulfillment_date)
6226 OR NOT OE_GLOBALS.Equal(p_x_new_line_rec.pricing_date,p_old_line_rec.pricing_date)
6227 THEN
6228 IF Oe_Sys_Parameters.Value('COMPUTE_MARGIN') <> 'N' Then
6229 IF l_debug_level > 0 THEN
6230 oe_debug_pub.add( 'BEFORE OE_DELAYED_REQUESTS_PVT.LOG_REQUEST CALL' ) ;
6231 oe_debug_pub.add( 'IN PROCESS_PRICING OEXULADB.PLS' ) ;
6232 END IF;
6233
6234 oe_delayed_requests_pvt.log_request(
6235 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6236 p_entity_id => p_x_new_line_rec.line_id,
6237 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6238
6239 p_requesting_entity_id => p_x_new_line_rec.line_id,
6240 p_request_type => 'GET_COST',
6241 x_return_status => l_return_status);
6242 END IF;
6243 END IF;
6244
6245 END IF;
6246 --MRG END
6247
6248 l_pricing_related_changes :=False;
6249 l_margin_related_changes :=False;
6250 IF l_debug_level > 0 THEN
6251 oe_debug_pub.add( 'LEAVING OE_LINE_ADJ_UTIL.PROCESS_PRICING' ) ;
6252 END IF;
6253 End Process_Pricing;
6254
6255 Procedure Log_Pricing_Requests (p_x_new_line_rec in Out Nocopy Oe_Order_Pub.Line_Rec_Type,
6256 p_old_line_rec in Oe_Order_Pub.Line_Rec_Type,
6257 p_no_price_flag Boolean Default False,
6258 p_price_flag Varchar2 Default 'Y') Is
6259
6260 l_zero_line_qty Boolean :=FALSE;
6261 l_price_control_rec QP_PREQ_GRP.control_record_type;
6262 l_x_line_tbl Oe_Order_Pub.Line_Tbl_Type;
6263 l_return_status Varchar2(5);
6264 i PLS_INTEGER;
6265 l_x_result_out Varchar2(5);
6266 --
6267 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6268 --
6269 -- sol_ord_er #16014165
6270 l_cnt_hdr_log NUMBER := 0;
6271 l_cnt_lin_log NUMBER := 0;
6272 Begin
6273
6274 IF p_price_flag = 'Y' and
6275 not p_no_price_flag and
6276 nvl(oe_globals.g_pricing_recursion,'N') <> 'Y' and
6277 p_x_new_line_rec.Ordered_Quantity <> fnd_api.g_miss_num and
6278 p_x_new_line_rec.order_quantity_uom is not null and
6279 p_x_new_line_rec.order_quantity_uom <> fnd_api.g_miss_char
6280 THEN
6281 --bsadri for cancelled lines l_zero_line_qty is true
6282
6283 IF nvl(p_x_new_line_rec.ordered_quantity,0) = 0 THEN
6284 l_zero_line_qty := TRUE;
6285 ELSE
6286 l_zero_line_qty := FALSE;
6287 END IF;
6288 If
6289 ( (p_x_new_line_rec.unit_list_price is null or
6290 p_x_new_line_rec.Unit_List_Price = fnd_api.g_miss_num or
6291 NOT OE_GLOBALS.Equal(p_x_new_line_rec.ordered_quantity,p_old_line_rec.ordered_quantity) or
6292 NOT OE_GLOBALS.Equal(p_x_new_line_rec.cancelled_Quantity,p_old_line_rec.cancelled_Quantity) or
6293 NOT OE_GLOBALS.Equal(p_x_new_line_rec.order_quantity_uom,p_old_line_rec.order_quantity_uom) or
6294 NOT OE_GLOBALS.Equal(p_x_new_line_rec.inventory_item_id,p_old_line_rec.inventory_item_id) ) --fix bug 1388503 btea
6295 and p_x_new_line_rec.item_type_code <> OE_GLOBALS.G_ITEM_SERVICE
6296 )
6297 then
6298
6299
6300 IF ((OE_GLOBALS.G_UI_FLAG) and (nvl(Oe_Config_Pvt.oecfg_configuration_pricing,'N')='N'))
6301 THEN
6302
6303 l_Price_Control_Rec.pricing_event := 'PRICE';
6304 l_Price_Control_Rec.calculate_flag := QP_PREQ_GRP.G_SEARCH_N_CALCULATE;
6305 l_Price_Control_Rec.Simulation_Flag := 'N';
6306
6307 l_x_line_tbl(1) := p_x_new_line_rec;
6308 IF NOT l_zero_line_qty THEN
6309 --bsadri call the Price_line for non-cancelled lines
6310 oe_order_adj_pvt.Price_line(
6311 X_Return_Status => l_Return_Status
6312 ,p_Line_id => p_x_new_line_rec.line_id
6313 ,p_Request_Type_code=> 'ONT'
6314 ,p_Control_rec => l_Price_Control_Rec
6315 ,p_Write_To_Db => FALSE
6316 ,x_Line_Tbl => l_x_Line_Tbl
6317 );
6318
6319 -- Populate Line_rec
6320 i:= l_x_Line_Tbl.First;
6321 While i is not null loop
6322 p_x_new_line_rec := l_x_Line_Tbl(i);
6323 i:= l_x_Line_Tbl.Next(i);
6324 End Loop;
6325 END IF;
6326 End If;
6327 End If; --end if for UI Flag Check
6328
6329 IF l_debug_level > 0 THEN
6330 oe_debug_pub.add( 'LOGGING DELAYED REQUEST FOR PRICING' ) ;
6331 END IF;
6332
6333 IF ((OE_GLOBALS.G_UI_FLAG) and (nvl(Oe_Config_Pvt.oecfg_configuration_pricing,'N')='N')) OR
6334 p_x_new_line_rec.item_type_code = 'INCLUDED' THEN
6335 IF l_debug_level > 0 THEN
6336 oe_debug_pub.add( 'UI MODE OR CONFIG , INCLUDED ITEM'||P_X_NEW_LINE_REC.LINE_ID ) ;
6337 END IF;
6338 IF NOT l_zero_line_qty THEN
6339 --bsadri don't call this for a cancelled line
6340 OE_delayed_requests_Pvt.log_request(
6341 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6342 p_entity_id => p_x_new_line_rec.line_id,
6343 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6344 p_requesting_entity_id => p_x_new_line_rec.line_id,
6345 p_request_unique_key1 => 'LINE',
6346 p_param1 => p_x_new_line_rec.header_id,
6347 p_param2 => 'LINE',
6348 p_request_type => OE_GLOBALS.G_PRICE_LINE,
6349 x_return_status => l_return_status);
6350 l_cnt_lin_log := 1; -- sol_ord_er #16014165
6351
6352 END IF;
6353 IF p_x_new_line_rec.item_type_code <> 'INCLUDED' THEN
6354 OE_delayed_requests_Pvt.log_request(
6355 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6356 p_entity_id => p_x_new_line_rec.Header_Id,
6357 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6358 p_requesting_entity_id => p_x_new_line_rec.Header_Id,
6359 p_request_unique_key1 => 'ORDER',
6360 p_param1 => p_x_new_line_rec.header_id,
6361 p_param2 => 'ORDER',
6362 p_request_type => OE_GLOBALS.G_PRICE_ORDER,
6363 x_return_status => l_return_status);
6364 l_cnt_hdr_log := 1; -- sol_ord_er #16014165
6365 END IF;
6366 ELSE
6367 IF l_debug_level > 0 THEN
6368 oe_debug_pub.add( 'BATCH MODE' ) ;
6369 END IF;
6370
6371 OE_delayed_requests_Pvt.log_request(
6372 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6373 p_entity_id => p_x_new_line_rec.Header_Id,
6374 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6375 p_requesting_entity_id => p_x_new_line_rec.Header_Id,
6376 p_request_unique_key1 => 'BATCH',
6377 p_param1 => p_x_new_line_rec.header_id,
6378 p_param2 => 'BATCH',
6379 p_request_type => OE_GLOBALS.G_PRICE_ORDER,
6380 x_return_status => l_return_status);
6381 l_cnt_hdr_log := 2; -- sol_ord_er #16014165
6382 END IF;
6383
6384 If p_x_new_line_rec.booked_flag='Y' and p_x_new_line_rec.item_type_code <> 'INCLUDED' Then
6385 OE_delayed_requests_Pvt.log_request(
6386 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6387 p_entity_id => p_x_new_line_rec.Header_Id,
6388 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6389 p_requesting_entity_id => p_x_new_line_rec.Header_Id,
6390 p_request_unique_key1 => 'BOOK',
6391 p_param1 => p_x_new_line_rec.header_id,
6392 p_param2 => 'BOOK',
6393 p_request_type => OE_GLOBALS.G_PRICE_ORDER,
6394 x_return_status => l_return_status);
6395 l_cnt_hdr_log := 3; -- sol_ord_er #16014165
6396 End If;
6397
6398 END IF;
6399
6400 /* rlanka: Fix for Bug 1729372
6401
6402 For the new line that is created by Promotional modifier
6403 need to log a delayed request to PRICE_LINE again to apply
6404 freight charges.
6405
6406 */
6407
6408 IF l_debug_level > 0 THEN
6409 oe_debug_pub.add( 'PRICE_FLAG = ' || P_PRICE_FLAG ) ;
6410 oe_debug_pub.add( 'G_PRICING_RECURSION = ' || OE_GLOBALS.G_PRICING_RECURSION ) ;
6411 oe_debug_pub.add( 'ORDERED QUANTITY = '|| TO_CHAR ( P_X_NEW_LINE_REC.ORDERED_QUANTITY ) ) ;
6412 oe_debug_pub.add( 'ORDERED QTY UOM = ' || P_X_NEW_LINE_REC.ORDER_QUANTITY_UOM ) ;
6413 oe_debug_pub.add( 'CALCULATE_PRICE_FLAG = '|| P_X_NEW_LINE_REC.CALCULATE_PRICE_FLAG ) ;
6414 END IF;
6415
6416
6417 if (p_price_flag = 'Y' and
6418 not p_no_price_flag and
6419 oe_globals.g_pricing_recursion = 'Y' and
6420 nvl(p_x_new_line_rec.ordered_quantity,0) <> 0 and
6421 p_x_new_line_rec.Ordered_Quantity <> fnd_api.g_miss_num and
6422 p_x_new_line_rec.order_quantity_uom is not null and
6423 p_x_new_line_rec.order_quantity_uom <> fnd_api.g_miss_char and
6424 p_x_new_line_rec.calculate_price_flag = 'R')
6425 then
6426
6427 IF l_debug_level > 0 THEN
6428 oe_debug_pub.add( 'NEW LINE CREATED BY PROMOTIONAL MODIFIER' ) ;
6429 oe_debug_pub.add( 'RESETTING CALC. PRICE. FLAG TO P' ) ;
6430 END IF;
6431 p_x_new_line_rec.calculate_price_flag := 'P';
6432 IF l_debug_level > 0 THEN
6433 oe_debug_pub.add( 'LOGGING A REQUEST TO PRICE_LINE IN BATCH MODE' ) ;
6434 END IF;
6435 OE_delayed_requests_Pvt.log_request(
6436 p_entity_code =>OE_GLOBALS.G_ENTITY_ALL,
6437 p_entity_id => p_x_new_line_rec.line_Id,
6438 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6439 p_requesting_entity_id => p_x_new_line_rec.line_Id,
6440 p_request_unique_key1 => 'BATCH',
6441 p_param1 => p_x_new_line_rec.header_id,
6442 p_param2 => 'BATCH',
6443 p_request_type => OE_GLOBALS.G_PRICE_LINE,
6444 x_return_status => l_return_status);
6445 l_cnt_lin_log := 2; -- sol_ord_er #16014165
6446
6447 if (p_x_new_line_rec.booked_flag = 'Y')
6448 then
6449 IF l_debug_level > 0 THEN
6450 oe_debug_pub.add( 'BOOKED ORDER -- LOG A REQUEST TO PRICE LINE' ) ;
6451 END IF;
6452 OE_delayed_requests_Pvt.log_request(
6453 p_entity_code =>OE_GLOBALS.G_ENTITY_ALL,
6454 p_entity_id => p_x_new_line_rec.line_Id,
6455 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6456 p_requesting_entity_id => p_x_new_line_rec.line_Id,
6457 p_request_unique_key1 => 'BOOK',
6458 p_param1 => p_x_new_line_rec.header_id,
6459 p_param2 => 'BOOK',
6460 p_request_type => OE_GLOBALS.G_PRICE_LINE,
6461 x_return_status => l_return_status);
6462 l_cnt_lin_log := 3; -- sol_ord_er #16014165
6463 end if; -- if order is BOOKED
6464
6465 end if; -- if new line created by Promotional modifier needs to be re-priced.
6466
6467 -- end of fix for bug 1729372
6468
6469 If NOT OE_GLOBALS.Equal(p_x_new_line_rec.Shipped_Quantity,p_old_line_rec.Shipped_Quantity)
6470 Then
6471 --btea
6472 IF p_x_new_line_rec.line_category_code <> 'RETURN' Then
6473 OE_Shipping_Integration_PVT.Check_Shipment_Line(
6474 p_line_rec => p_old_line_rec
6475 , p_shipped_quantity => p_x_new_line_rec.Shipped_Quantity
6476 , x_result_out => l_x_result_out
6477 );
6478
6479 IF l_x_result_out = OE_GLOBALS.G_PARTIALLY_SHIPPED THEN
6480 -- This line will split, set the calculate_price_flag to 'P' if 'Y'
6481 IF (p_x_new_line_rec.calculate_price_flag = 'Y') THEN
6482 p_x_new_line_rec.calculate_price_flag := 'P';
6483 END IF;
6484
6485
6486 END IF;
6487
6488 Elsif p_x_new_line_rec.operation = OE_GLOBALS.G_OPR_UPDATE
6489 and p_x_new_line_rec.split_by = 'SYSTEM'
6490 and p_x_new_line_rec.split_action_code = 'SPLIT'
6491 and p_x_new_line_rec.calculate_price_flag = 'Y' Then
6492 p_x_new_line_rec.calculate_price_flag :='P';
6493 End If;
6494
6495 OE_delayed_requests_Pvt.log_request(
6496 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6497 p_entity_id => p_x_new_line_rec.line_id,
6498 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6499 p_requesting_entity_id => p_x_new_line_rec.line_id,
6500 p_request_unique_key1 => 'SHIP',
6501 p_param1 => p_x_new_line_rec.header_id,
6502 p_param2 => 'SHIP',
6503 p_request_type => OE_GLOBALS.G_PRICE_LINE,
6504 x_return_status => l_return_status);
6505 End If;
6506 -- sol_ord_er #16014165
6507 IF l_debug_level > 0 THEN
6508 oe_debug_pub.add( 'l_cnt_lin_log= '||l_cnt_lin_log
6509 ||' l_cnt_hdr_log= '||l_cnt_hdr_log
6510 ||' Serv_Bill_Option Code='||p_x_new_line_rec.service_bill_option_code);
6511 END IF;
6512 If l_cnt_lin_log >0 and p_x_new_line_rec.service_bill_option_code = 'FPOM' then
6513 IF l_debug_level > 0 THEN
6514 oe_debug_pub.add('(1) Logging Line Level First Period Bill Amt Request, for line_id= '
6515 ||p_x_new_line_rec.line_id ) ;
6516 END IF;
6517 oe_delayed_requests_pvt.log_request(
6518 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6519 p_entity_id => p_x_new_line_rec.line_id,
6520 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6521 p_requesting_entity_id => p_x_new_line_rec.line_id,
6522 p_request_type => OE_GLOBALS.G_SERVICE_FIRST_PERIOD_BILL,
6523 p_request_unique_key1 => 'LINE',
6524 p_param1 => p_x_new_line_rec.line_id,
6525 x_return_status => l_return_status);
6526 End If;
6527 If l_cnt_hdr_log >0 then
6528 IF l_debug_level > 0 THEN
6529 oe_debug_pub.add('(2) Logging Line Level First Period Bill Amt Request, for header_id= '
6530 ||p_x_new_line_rec.header_id ) ;
6531 END IF;
6532 oe_delayed_requests_pvt.log_request(
6533 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6534 p_entity_id => p_x_new_line_rec.header_id,
6535 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6536 p_requesting_entity_id => p_x_new_line_rec.header_id,
6537 p_request_type => OE_GLOBALS.G_SERVICE_FIRST_PERIOD_BILL,
6538 p_request_unique_key1 => 'ORDER',
6539 p_param1 => p_x_new_line_rec.header_id,
6540 x_return_status => l_return_status);
6541 End If;
6542 -- sol_ord_er #16014165 end
6543
6544 End;
6545
6546
6547 /*---------------------------------------------------------------------*/
6548 --Will be called by delayed request to reset cache changed line tbl
6549 /*---------------------------------------------------------------------*/
6550 Procedure Delete_Changed_Lines_Tbl Is
6551 Begin
6552 G_CHANGED_LINE_TBL.delete;
6553 G_SEND_ALL_LINES_FOR_DSP := NULL;
6554 G_OPM_ITEM_CATCHWEIGHT_USED := NULL;
6555 End;
6556
6557
6558 /*----------------------------------------------------------------------*/
6559 --Process_Cancelled_Lines. This is performance fix on cancel line
6560 --in which we either combine all events to call pricing engine once
6561 --or not calling at all depending on the output of QP_UTIL_PUB.Get_Order_Lines_Status
6562 /*----------------------------------------------------------------------*/
6563
6564 Procedure Process_Cancelled_Lines(p_x_new_line_rec In Oe_Order_Pub.line_rec_type, p_ordered_quantity In Number) Is
6565 --bug7491829 added p_ordered_quantity
6566
6567 l_order_status_rec QP_UTIL_PUB.ORDER_LINES_STATUS_REC_TYPE;
6568 l_return_status Varchar2(5);
6569 l_event_str Varchar2(25);
6570 --
6571 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6572 --
6573 Begin
6574
6575 --User trying to cancle line, different processing for cancelation due to performance
6576 --considerations
6577 IF l_debug_level > 0 THEN
6578 oe_debug_pub.add( ' ENTERING PROCESS_CANCELLED_LINES' ) ;
6579 END IF;
6580
6581 ------------------------------------------------------
6582 --Special case, bypass regular pricing path
6583 --we log performant version of pricing delayed request
6584 ------------------------------------------------------
6585 OE_GLOBALS.G_PRICE_FLAG := 'N';
6586
6587
6588 -- bug 9728497 start
6589 -- modified below for p_x_new_line_rec.header_id and p_x_new_line_rec.line_id
6590 -- being passed on to call the overloaded function.
6591 -- QP_UTIL_PUB.Get_Order_Lines_Status('BATCH,BOOK',l_order_status_rec);
6592 QP_UTIL_PUB.Get_Order_Lines_Status(p_event_code => 'BATCH,BOOK',
6593 p_header_id => p_x_new_line_rec.header_id,
6594 p_line_id => p_x_new_line_rec.line_id,
6595 x_order_status_rec =>l_order_status_rec);
6596 -- bug 9728497 end
6597
6598 ----------------------------------------------------------------------
6599 --User has totally cancelled a line, price changes pertaining to this
6600 --line has no effect since the quantity is 0. Therefore, only pass
6601 --all the lines to pricing engine when all_lines_flag = 'Y'
6602 ----------------------------------------------------------------------
6603 IF l_debug_level > 0 THEN
6604 oe_debug_pub.add( ' ALL LINES FLAG RETURNED FROM QP_UTIL_PUB:'||L_ORDER_STATUS_REC.ALL_LINES_FLAG ) ;
6605 oe_debug_pub.add( ' CHANGED LINES FLAG RETURNED FROM QP_UTIL_PUB:'||L_ORDER_STATUS_REC.CHANGED_LINES_FLAG ) ;
6606 oe_debug_pub.add( ' SUMMARY LINE FLAG RETURNED FROM QP_UTIL_PUB:'||L_ORDER_STATUS_REC.SUMMARY_LINE_FLAG ) ;
6607 END IF;
6608
6609
6610
6611 If p_x_new_line_rec.ordered_quantity = 0 Then
6612 IF l_debug_level > 0 THEN
6613 oe_debug_pub.add( ' USER HAS TOTALLY CANCELLED THE LINE' ) ;
6614 END IF;
6615
6616 If p_x_new_line_rec.booked_flag = 'Y' Then
6617 l_event_str:= 'ORDER,BOOK';
6618 Else
6619 l_event_str:='ORDER';
6620 End If;
6621
6622 --FP bug 3335024 included summary line flag condition below
6623 If l_order_status_rec.ALL_LINES_FLAG = 'Y' or l_order_status_rec.summary_line_flag = 'Y' Then
6624 IF p_x_new_line_rec.item_type_code not in ('INCLUDED','CONFIG') THEN
6625 OE_delayed_requests_Pvt.log_request(
6626 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6627 p_entity_id => p_x_new_line_rec.Header_Id,
6628 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6629 p_requesting_entity_id => p_x_new_line_rec.Header_Id,
6630 p_request_unique_key1 => 'ORDER,BOOK',
6631 p_param1 => p_x_new_line_rec.header_id,
6632 p_param2 => l_event_str,
6633 p_request_type => OE_GLOBALS.G_PRICE_ORDER,
6634 x_return_status => l_return_status);
6635
6636 End If;
6637 End If;
6638 /* BUG 2013611 BEGIN */
6639 IF l_debug_level > 0 THEN
6640 oe_debug_pub.add( 'LOG REVERSE_LIMITS DELAYED REQUEST FROM PROCESS_CANCELLED_LINES ' , 1 ) ;
6641 END IF;
6642 OE_delayed_requests_Pvt.log_request(
6643 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6644 p_entity_id => p_x_new_line_rec.line_id,
6645 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6646 p_requesting_entity_id => p_x_new_line_rec.line_id,
6647 p_request_unique_key1 => 'LINE',
6648 p_param1 => 'CANCEL',
6649 p_param2 => p_x_new_line_rec.price_request_code,
6650 p_param3 => NULL,
6651 p_param4 => NULL,
6652 p_param5 => NULL,
6653 p_param6 => NULL,
6654 p_request_type => OE_GLOBALS.G_REVERSE_LIMITS,
6655 x_return_status => l_return_status);
6656 IF l_debug_level > 0 THEN
6657 oe_debug_pub.add( 'REVERSE_LIMITS DELAYED REQUEST HAS BEEN LOGGED' , 1 ) ;
6658 END IF;
6659 /* BUG 2013611 END */
6660 Else --User partially cancel the line
6661 IF l_debug_level > 0 THEN
6662 oe_debug_pub.add( ' USER HAS PARTIALLY CANCELLED THE LINE' ) ;
6663 END IF;
6664
6665
6666 If p_x_new_line_rec.booked_flag = 'Y' Then
6667 -- l_event_str:= 'LINE,ORDER,BOOK';
6668 -- changed 'LINE,ORDER' to 'BATCH'.
6669 l_event_str:= 'BATCH,BOOK';
6670 Else
6671 -- l_event_str:='LINE,ORDER';
6672 l_event_str:='BATCH';
6673 End If;
6674
6675 If l_order_status_rec.ALL_LINES_FLAG = 'Y' or
6676 l_order_status_rec.Changed_Lines_Flag = 'Y'
6677 Then
6678 --treat changed_lines as all_lines for now, will to
6679 --differential this 2 type in the future
6680 IF p_x_new_line_rec.item_type_code not in ('INCLUDED','CONFIG') THEN
6681 OE_delayed_requests_Pvt.log_request(
6682 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6683 p_entity_id => p_x_new_line_rec.Header_Id,
6684 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6685 p_requesting_entity_id => p_x_new_line_rec.Header_Id,
6686 p_request_unique_key1 => 'BATCH,BOOK',
6687 p_param1 => p_x_new_line_rec.header_id,
6688 p_param2 => l_event_str,
6689 p_request_type => OE_GLOBALS.G_PRICE_ORDER,
6690 x_return_status => l_return_status);
6691
6692 End If; --not in ('INCLUDED','CONFIG')
6693 End If; --ALL_LINES or Change_lines flag
6694
6695 --bug7491829
6696
6697 IF l_debug_level > 0 THEN
6698 oe_debug_pub.add( 'LOG REVERSE_LIMITS DELAYED REQUEST FROM
6699 PROCESS_CANCELLED_LINES FOR PARTIAL CANCEL CASE' , 1 ) ;
6700 END IF;
6701
6702 OE_delayed_requests_Pvt.log_request(
6703 p_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6704 p_entity_id => p_x_new_line_rec.line_id,
6705 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE,
6706 p_requesting_entity_id => p_x_new_line_rec.line_id,
6707 p_request_unique_key1 => 'LINE',
6708 p_param1 => 'AMEND',
6709 p_param2 => p_x_new_line_rec.price_request_code,
6710 p_param3 => p_ordered_quantity,
6711 p_param4 => p_x_new_line_rec.ordered_quantity,
6712 p_param5 => NULL,
6713 p_param6 => NULL,
6714 p_request_type =>OE_GLOBALS.G_REVERSE_LIMITS,
6715 x_return_status => l_return_status);
6716
6717 IF l_debug_level > 0 THEN
6718 oe_debug_pub.add( 'REVERSE_LIMITS DELAYED REQUEST HAS BEEN LOGGED' , 1 ) ;
6719 END IF;
6720
6721 --bug7491829
6722
6723 End If;
6724
6725 IF l_debug_level > 0 THEN
6726 oe_debug_pub.add( ' LEAVING PROCESS_CANCELLED_LINES' ) ;
6727 END IF;
6728 End;
6729
6730 /*----------------------------------------------------------------------------*/
6731 --Register Changed lines in cache for performance
6732 /*----------------------------------------------------------------------------*/
6733 Procedure Register_Changed_Lines(p_line_id in Number,
6734 p_header_id in Number,
6735 p_operation in Varchar2) Is
6736 l_return_status Varchar2(15);
6737 --
6738 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6739 --
6740 Begin
6741 IF l_debug_level > 0 THEN
6742 oe_debug_pub.add( ' ENTERING OE_LINE_ADJ_UTIL.REGISTER_CHANGED_LINES' ) ;
6743 oe_debug_pub.add( ' P_LINE_ID:'||P_LINE_ID||'+P_HEADER_ID:'||P_HEADER_ID ) ;
6744 END IF;
6745
6746 -----------------------------------------------------------------------------------
6747 --For performance reason, we only need to log delay request to reset the cache once
6748 --per saving.
6749 --When G_CHANGED_LINE_TBL has records, we know that the delayed request for reseting
6750 --the cahce has been logged; therefore, I need not log it.
6751 ------------------------------------------------------------------------------------
6752 -- If G_CHANGED_LINE_TBL.Count = 0 Then -- Commented out for bug 12673852
6753 IF l_debug_level > 0 THEN
6754 oe_debug_pub.add( ' LOGGING DELAYED REQUEST TO RESET G_CHANGED_LINE_TBL' ) ;
6755 END IF;
6756 oe_delayed_requests_pvt.log_request(
6757 p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6758 p_entity_id => p_header_id,
6759 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_ALL,
6760 p_requesting_entity_id => p_header_id,
6761 p_request_type => OE_GLOBALS.G_DEL_CHG_LINES,
6762 x_return_status => l_return_status);
6763 IF l_debug_level > 0 THEN
6764 oe_debug_pub.add( ' RETURN STATUS FROM THE DELAYED REQUEST:'||L_RETURN_STATUS ) ;
6765 END IF;
6766 -- End If; -- Commented out for bug 12673852
6767
6768 If p_operation In (OE_GLOBALS.G_OPR_CREATE,OE_GLOBALS.G_OPR_UPDATE) Then
6769 --bug 3020702 begin
6770 G_CHANGED_LINE_TBL(mod(p_line_id,G_BINARY_LIMIT)).line_id :=p_line_id;
6771 G_CHANGED_LINE_TBL(mod(p_line_id,G_BINARY_LIMIT)).header_id :=p_header_id;
6772 --bug 3020702 end
6773 Elsif p_operation = OE_GLOBALS.G_OPR_DELETE Then
6774 If G_CHANGED_LINE_TBL.exists(mod(p_line_id,G_BINARY_LIMIT)) Then
6775 G_CHANGED_LINE_TBL.delete(mod(p_line_id,G_BINARY_LIMIT));
6776 End If;
6777 End If;
6778
6779 IF l_debug_level > 0 THEN
6780 oe_debug_pub.add( ' LEAVING OE_LINE_ADJ_UTIL.REGISTER_CHANGED_LINES' ) ;
6781 END IF;
6782 End;
6783
6784 Procedure Get_Service_Lines(p_header_id IN NUMBER,
6785 x_line_id_tbl OUT NOCOPY OE_ORDER_ADJ_PVT.Index_TBL_TYPE) IS
6786 Cursor get_service_cur IS
6787 Select line_id,
6788 service_reference_line_id
6789 From oe_order_lines_all
6790 Where header_id = p_header_id
6791 And service_reference_line_id IS NOT NULL;
6792
6793 Begin
6794 For J in get_service_cur Loop
6795 x_line_id_tbl(MOD(J.service_reference_line_id,G_BINARY_LIMIT)):=J.line_id; -- Bug 8631297
6796 End Loop;
6797 End;
6798
6799 /* Added the following procedure to fix the bug 2917690 */
6800
6801 Procedure Change_adj_for_uom_change(p_x_line_rec IN OUT NOCOPY OE_Order_PUB.Line_Rec_Type
6802 ) Is
6803 l_return_status Varchar2(15);
6804 l_old_pricing_qty NUMBER;
6805 l_new_pricing_qty NUMBER;
6806
6807 Begin
6808 Oe_Debug_Pub.add(' Entering OE_LINE_ADJ_UTIL.Change_adj_for_uom_change');
6809
6810 IF p_x_line_rec.Pricing_quantity is not null and
6811 p_x_line_rec.Pricing_quantity <> FND_API.G_MISS_NUM and
6812 p_x_line_rec.Pricing_quantity <> 0 THEN
6813
6814 l_old_pricing_qty := p_x_line_rec.Pricing_quantity ;
6815 l_new_pricing_qty :=
6816 OE_Order_Misc_Util.convert_uom(
6817 p_x_line_rec.inventory_item_id,
6818 p_x_line_rec.order_quantity_uom,
6819 p_x_line_rec.pricing_quantity_uom,
6820 p_x_line_rec.ordered_quantity
6821 );
6822
6823 -- Code changes for bug 9014929
6824 Oe_Debug_Pub.add(' l_old_pricing_qty = ' || l_old_pricing_qty);
6825 Oe_Debug_Pub.add(' l_new_pricing_qty = ' || l_new_pricing_qty);
6826 p_x_line_rec.Pricing_quantity := l_new_pricing_qty;
6827 Oe_Debug_Pub.add(' p_x_line_rec.Pricing_quantity = ' || p_x_line_rec.Pricing_quantity);
6828 -- End of code changes for bug 9014929
6829
6830 update oe_price_adjustments
6831 set adjusted_amount = adjusted_amount * l_new_pricing_qty / l_old_pricing_qty
6832 where line_id = p_x_Line_rec.line_id
6833 and list_line_type_code in ('DIS','SUR')
6834 and applied_flag = 'Y'
6835 and updated_flag = 'Y'
6836 and arithmetic_operator in ('AMT' , '%' , 'NEWPRICE');
6837
6838 update oe_price_adjustments
6839 set operand = operand * l_new_pricing_qty / l_old_pricing_qty
6840 where line_id = p_x_Line_rec.line_id
6841 and list_line_type_code in ('DIS','SUR')
6842 and applied_flag = 'Y'
6843 and updated_flag = 'Y'
6844 and arithmetic_operator in ('AMT' , 'NEWPRICE');
6845 END IF;
6846
6847 Oe_Debug_Pub.add(' Leaving OE_LINE_ADJ_UTIL.Change_adj_for_uom_change');
6848 End;
6849
6850 /* End of the procedure added to fix the bug 2917690 */
6851
6852 Function has_service_lines(p_header_id IN NUMBER) Return Boolean
6853 IS
6854 l_dummy NUMBER;
6855 Begin
6856 Select line_id
6857 INTO l_dummy
6858 From OE_ORDER_LINES_ALL
6859 Where header_id = p_header_id
6860 AND service_reference_line_id IS NOT NULL
6861 AND rownum = 1;
6862
6863 RETURN True;
6864 Exception
6865 When NO_DATA_FOUND Then
6866 Return False;
6867 End;
6868
6869 Procedure Set_PRG_Cache(p_header_id IN NUMBER) AS
6870 Cursor prg_cur is
6871 select adj1.line_id line_id
6872 from oe_price_adjustments adj1,
6873 oe_price_adj_assocs assoc,
6874 oe_price_adjustments adj2
6875 where adj1.price_adjustment_id = assoc.rltd_price_adj_id AND
6876 assoc.price_adjustment_id = adj2.price_adjustment_id AND
6877 adj2.list_line_type_code = 'PRG' AND
6878 adj2.header_id = p_header_id;
6879 Begin
6880 /*open prg_cur;
6881 fetch prg_cur BULK COLLECT INTO G_PRG_TBL;
6882 close prg_cur;*/
6883
6884 FOR prg IN prg_cur LOOP
6885 G_PRG_TBL(MOD(prg.line_id,G_BINARY_LIMIT)):= prg.line_id;
6886 END LOOP;
6887 End;
6888
6889 Procedure Reset_PRG_Cache As
6890 Begin
6891 G_PRG_TBL.DELETE;
6892 End;
6893
6894 Function IS_PRG_LINE(p_line_id IN NUMBER) RETURN BOOLEAN AS
6895 Begin
6896 IF G_PRG_TBL.EXISTS(MOD(p_line_id,G_BINARY_LIMIT)) THEN
6897 Return TRUE;
6898 ELSE
6899 Return FALSE;
6900 END IF;
6901 End;
6902
6903 END OE_Line_Adj_Util;