[Home] [Help]
PACKAGE BODY: APPS.QP_UPG_OE_PVT
Source
1 PACKAGE BODY QP_Upg_OE_PVT as
2 /* $Header: QPXIUOEB.pls 120.4 2005/09/20 12:41:41 hwong noship $ */
3
4 PROCEDURE Upg_Price_Adj_OE_to_QP( p_discount_id IN NUMBER,
5 p_discount_line_id IN NUMBER,
6 p_percent IN NUMBER,
7 p_unit_list_price IN NUMBER,
8 p_pricing_context IN VARCHAR2,
9 p_line_id IN NUMBER,
10 x_output OUT NOCOPY /* file.sql.39 change */ PRICE_ADJ_REC_TYPE )
11 IS
12
13 cursor oepadj is
14 select /* + Ordered index(dmap QP_DISCOUNT_MAPPING_T1) */
15 dmap.new_list_header_id,
16 dmap.new_list_line_id,
17 dmap.new_type,
18 dmap.old_price_break_lines_low,
19 dmap.old_price_break_lines_high,
20 dmap.old_method_type_code,
21 lh.source_system_code,
22 ll.modifier_level_code,
23 ll.pricing_group_sequence,
24 ll.list_line_type_code,
25 ll.override_flag,
26 ll.pricing_phase_id,
27 ll.charge_type_code,
28 ll.charge_subtype_code,
29 ll.list_line_no,
30 ll.benefit_qty,
31 ll.benefit_uom_code,
32 ll.print_on_invoice_flag,
33 ll.expiration_date
34 from
35 qp_discount_mapping dmap, qp_list_lines ll, qp_list_headers_b lh
36 where p_discount_id = dmap.old_discount_id
37 and (p_discount_line_id = dmap.old_discount_line_id or
38 p_discount_line_id is null or p_discount_line_id = -1)
39 and dmap.new_list_header_id = ll.list_header_id
40 and dmap.new_list_line_id = ll.list_line_id
41 and dmap.new_list_header_id = lh.list_header_id
42 and (p_pricing_context = dmap.pricing_context
43 or dmap.pricing_context is null);
44
45 cursor price_breaks(p_line_id NUMBER, p_discount_id NUMBER) is
46 select
47 dmap.old_discount_id,
48 dmap.new_list_header_id,
49 dmap.new_list_line_id,
50 dmap.old_price_break_lines_low,
51 dmap.old_price_break_lines_high,
52 dmap.old_method_type_code,
53 dmap.new_type,
54 ll.list_line_type_code,
55 ll.override_flag,
56 oeordl.ordered_quantity
57 from
58 qp_discount_mapping dmap, oe_order_lines_all oeordl, qp_list_lines ll
59 where
60 ( dmap.old_discount_id = p_discount_id and
61 oeordl.line_id = p_line_id and
62 dmap.new_list_line_id = ll.list_line_id and
63 dmap.new_type = 'B' and
64 decode( dmap.old_method_type_code,
65 'UNITS', oeordl.ordered_quantity,
66 'DOLLARS', oeordl.ordered_quantity * oeordl.unit_list_price,
67 0)
68 between nvl( dmap.old_price_break_lines_low,
69 decode( dmap.old_method_type_code,
70 'UNITS', oeordl.ordered_quantity,
71 'DOLLARS', oeordl.ordered_quantity * oeordl.unit_list_price,
72 0)) and
73 nvl( dmap.old_price_break_lines_high,
74 decode( dmap.old_method_type_code,
75 'UNITS', oeordl.ordered_quantity,
76 'DOLLARS', oeordl.ordered_quantity * oeordl.unit_list_price,
77 0))
78 );
79
80
81 v_modified_from number;
82 v_updated_flag varchar2(1);
83 v_applied_flag varchar2(1);
84 v_operator varchar2(30);
85 v_id1 number;
86 v_err_msg varchar2(2000);
87 qppadj oepadj%ROWTYPE;
88 qpprice_breaks price_breaks%ROWTYPE;
89
90
91 BEGIN
92
93 v_modified_from := 0;
94 v_updated_flag := 'N';
95 v_applied_flag := 'Y';
96
97 OPEN oepadj;
98
99 FETCH oepadj INTO qppadj;
100
101
102 IF qppadj.new_type = 'B' THEN
103 open price_breaks( p_line_id, p_discount_id);
104 fetch price_breaks into qpprice_breaks;
105
106 qppadj.new_list_line_id := qpprice_breaks.new_list_line_id;
107 qppadj.list_line_type_code := qpprice_breaks.list_line_type_code;
108 qppadj.override_flag := qpprice_breaks.override_flag;
109
110 close price_breaks;
111 END IF;
112
113 x_output.list_header_id := qppadj.new_list_header_id;
114 x_output.list_line_id := qppadj.new_list_line_id;
115 x_output.list_line_type_code := qppadj.list_line_type_code;
116 x_output.modified_from := v_modified_from;
117 x_output.modified_to := p_percent;
118 x_output.update_allowed := qppadj.override_flag;
119 x_output.operand := p_percent;
120 x_output.updated_flag := v_updated_flag;
121 x_output.applied_flag := v_applied_flag;
122 x_output.arithmetic_operator := '%';
123 x_output.price_break_type_code := 'POINT';
124 x_output.adjusted_amount := p_percent * p_unit_list_price / 100;
125 x_output.pricing_phase_id := qppadj.pricing_phase_id;
126 x_output.charge_type_code := qppadj.charge_type_code;
127 x_output.charge_subtype_code := qppadj.charge_subtype_code;
128 x_output.list_line_no := qppadj.list_line_no;
129 x_output.source_system_code := qppadj.source_system_code;
130 x_output.benefit_qty := qppadj.benefit_qty;
131 x_output.benefit_uom_code := qppadj.benefit_uom_code;
132 x_output.print_on_invoice_flag := qppadj.print_on_invoice_flag;
133 x_output.modifier_level_code := qppadj.modifier_level_code;
134 x_output.pricing_group_sequence := qppadj.pricing_group_sequence;
135 x_output.expiration_date := qppadj.expiration_date;
136
137
138 EXCEPTION
139 WHEN OTHERS THEN
140 v_err_msg := SQLERRM;
141 rollback;
142 QP_Util.Log_Error(p_id1 => p_line_id,
143 p_error_type =>'PRICE_ADJUSTMENT',
144 p_error_desc => v_err_msg,
145 p_error_module => 'Upg_Price_Adj_OE_to_QP');
146 raise;
147
148 end Upg_Price_Adj_OE_to_QP;
149
150
151 PROCEDURE Upg_Pricing_Attribs
152 IS
153
154 v_order_price_attrib_id NUMBER;
155 v_err_msg varchar2(2000);
156
157 begin
158
159 IF (OE_Upg_SO_NEW.g_line_rec.pricing_attribute1 IS NOT NULL) OR
160 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute2 IS NOT NULL) OR
161 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute3 IS NOT NULL) OR
162 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute4 IS NOT NULL) OR
163 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute5 IS NOT NULL) OR
164 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute6 IS NOT NULL) OR
165 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute7 IS NOT NULL) OR
166 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute8 IS NOT NULL) OR
167 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute9 IS NOT NULL) OR
168 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute10 IS NOT NULL) OR
169 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute11 IS NOT NULL) OR
170 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute12 IS NOT NULL) OR
171 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute13 IS NOT NULL) OR
172 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute14 IS NOT NULL) OR
173 (OE_Upg_SO_NEW.g_line_rec.pricing_attribute15 IS NOT NULL)
174
175 THEN
176 SELECT OE_ORDER_PRICE_ATTRIBS_S.nextval
177 INTO v_order_price_attrib_id
178 FROM dual;
179
180 insert into oe_order_price_attribs
181 ( header_id,
182 line_id,
183 creation_date,
184 created_by,
185 last_update_date,
186 last_updated_by,
187 last_update_login,
188 program_application_id,
189 program_id,
190 program_update_date,
191 request_id,
192 pricing_context,
193 pricing_attribute1,
194 pricing_attribute2,
195 pricing_attribute3,
196 pricing_attribute4,
197 pricing_attribute5,
198 pricing_attribute6,
199 pricing_attribute7,
200 pricing_attribute8,
201 pricing_attribute9,
202 pricing_attribute10,
203 pricing_attribute11,
204 pricing_attribute12,
205 pricing_attribute13,
206 pricing_attribute14,
207 pricing_attribute15,
208 flex_title,
209 order_price_attrib_id,
210 override_flag ,
211 lock_control)
212 values
213 ( OE_Upg_SO_NEW.g_line_rec.header_id,
214 OE_Upg_SO_NEW.g_line_rec.line_id,
215 SYSDATE,
216 FND_GLOBAL.USER_ID,
217 SYSDATE,
218 FND_GLOBAL.USER_ID,
219 FND_GLOBAL.LOGIN_ID,
220 OE_Upg_SO_NEW.g_line_rec.program_application_id,
221 OE_Upg_SO_NEW.g_line_rec.program_id,
222 OE_Upg_SO_NEW.g_line_rec.program_update_date,
223 OE_Upg_SO_NEW.g_line_rec.request_id,
224 NVL(OE_Upg_SO_NEW.g_line_rec.pricing_context,'Upgrade Context'),
225 OE_Upg_SO_NEW.g_line_rec.pricing_attribute1,
226 OE_Upg_SO_NEW.g_line_rec.pricing_attribute2,
227 OE_Upg_SO_NEW.g_line_rec.pricing_attribute3,
228 OE_Upg_SO_NEW.g_line_rec.pricing_attribute4,
229 OE_Upg_SO_NEW.g_line_rec.pricing_attribute5,
230 OE_Upg_SO_NEW.g_line_rec.pricing_attribute6,
231 OE_Upg_SO_NEW.g_line_rec.pricing_attribute7,
232 OE_Upg_SO_NEW.g_line_rec.pricing_attribute8,
233 OE_Upg_SO_NEW.g_line_rec.pricing_attribute9,
234 OE_Upg_SO_NEW.g_line_rec.pricing_attribute10,
235 OE_Upg_SO_NEW.g_line_rec.pricing_attribute11,
236 OE_Upg_SO_NEW.g_line_rec.pricing_attribute12,
237 OE_Upg_SO_NEW.g_line_rec.pricing_attribute13,
238 OE_Upg_SO_NEW.g_line_rec.pricing_attribute14,
239 OE_Upg_SO_NEW.g_line_rec.pricing_attribute15,
240 'QP_ATTR_DEFNS_PRICING',
241 v_order_price_attrib_id,
242 'N',
243 1);
244 END IF;
245
246 EXCEPTION
247 WHEN OTHERS THEN
248 v_err_msg := SQLERRM;
249 rollback;
250 QP_Util.Log_Error(p_id1 => v_order_price_attrib_id,
251 p_error_type =>'PRICE_ATTRIBUTES',
252 p_error_desc => v_err_msg,
253 p_error_module => 'Upg_Pricing_Attribs');
254 raise;
255
256
257 end Upg_Pricing_Attribs;
258
259 PROCEDURE Upg_Pricing_Attribs(p_line_rec IN OE_Order_PUB.Line_Rec_Type)
260 IS
261
262 v_order_price_attrib_id NUMBER;
263 v_err_msg varchar2(2000);
264
265 begin
266
267 IF (p_line_rec.pricing_attribute1 IS NOT NULL) OR
268 (p_line_rec.pricing_attribute2 IS NOT NULL) OR
269 (p_line_rec.pricing_attribute3 IS NOT NULL) OR
270 (p_line_rec.pricing_attribute4 IS NOT NULL) OR
271 (p_line_rec.pricing_attribute5 IS NOT NULL) OR
272 (p_line_rec.pricing_attribute6 IS NOT NULL) OR
273 (p_line_rec.pricing_attribute7 IS NOT NULL) OR
274 (p_line_rec.pricing_attribute8 IS NOT NULL) OR
275 (p_line_rec.pricing_attribute9 IS NOT NULL) OR
276 (p_line_rec.pricing_attribute10 IS NOT NULL) OR
277 (oe_upg_so_new.g_line_rec.pricing_attribute11 IS NOT NULL) OR
278 (oe_upg_so_new.g_line_rec.pricing_attribute12 IS NOT NULL) OR
279 (oe_upg_so_new.g_line_rec.pricing_attribute13 IS NOT NULL) OR
280 (oe_upg_so_new.g_line_rec.pricing_attribute14 IS NOT NULL) OR
281 (oe_upg_so_new.g_line_rec.pricing_attribute15 IS NOT NULL)
282
283 THEN
284
285 SELECT OE_ORDER_PRICE_ATTRIBS_S.nextval
286 INTO v_order_price_attrib_id
287 FROM dual;
288
289 insert into oe_order_price_attribs
290 ( header_id,
291 line_id,
292 creation_date,
293 created_by,
294 last_update_date,
295 last_updated_by,
296 last_update_login,
297 program_application_id,
298 program_id,
299 program_update_date,
300 request_id,
301 pricing_context,
302 pricing_attribute1,
303 pricing_attribute2,
304 pricing_attribute3,
305 pricing_attribute4,
306 pricing_attribute5,
307 pricing_attribute6,
308 pricing_attribute7,
309 pricing_attribute8,
310 pricing_attribute9,
311 pricing_attribute10,
312 pricing_attribute11,
313 pricing_attribute12,
314 pricing_attribute13,
315 pricing_attribute14,
316 pricing_attribute15,
317 flex_title,
318 order_price_attrib_id,
319 override_flag ,
320 lock_control)
321 values
322 ( p_line_rec.header_id,
323 p_line_rec.line_id,
324 SYSDATE,
325 FND_GLOBAL.USER_ID,
326 SYSDATE,
327 FND_GLOBAL.USER_ID,
328 FND_GLOBAL.LOGIN_ID,
329 p_line_rec.program_application_id,
330 p_line_rec.program_id,
331 p_line_rec.program_update_date,
332 p_line_rec.request_id,
333 NVL(p_line_rec.pricing_context,'Upgrade Context'),
334 p_line_rec.pricing_attribute1,
335 p_line_rec.pricing_attribute2,
336 p_line_rec.pricing_attribute3,
337 p_line_rec.pricing_attribute4,
338 p_line_rec.pricing_attribute5,
339 p_line_rec.pricing_attribute6,
340 p_line_rec.pricing_attribute7,
341 p_line_rec.pricing_attribute8,
342 p_line_rec.pricing_attribute9,
343 p_line_rec.pricing_attribute10,
344 oe_upg_so_new.g_line_rec.pricing_attribute11,
345 oe_upg_so_new.g_line_rec.pricing_attribute12,
346 oe_upg_so_new.g_line_rec.pricing_attribute13,
347 oe_upg_so_new.g_line_rec.pricing_attribute14,
348 oe_upg_so_new.g_line_rec.pricing_attribute15,
349 'QP_ATTR_DEFNS_PRICING',
350 v_order_price_attrib_id,
351 'N',
352 1);
353 END IF;
354
355 EXCEPTION
356 WHEN OTHERS THEN
357 v_err_msg := SQLERRM;
358 rollback;
359 QP_Util.Log_Error(p_id1 => v_order_price_attrib_id,
360 p_error_type =>'PRICE_ATTRIBUTES',
361 p_error_desc => v_err_msg,
362 p_error_module => 'Upg_Pricing_Attribs');
363 raise;
364
365
366 end Upg_Pricing_Attribs;
367
368
369
370 PROCEDURE Upg_Pricing_Attribs (p_upg_line_rec IN OE_UPG_SO_NEW.LINE_REC_TYPE)
371 IS
372
373 v_order_price_attrib_id NUMBER;
374 v_err_msg varchar2(2000);
375
376 begin
377
378 IF (p_upg_line_rec.pricing_attribute1 IS NOT NULL) OR
379 (p_upg_line_rec.pricing_attribute2 IS NOT NULL) OR
380 (p_upg_line_rec.pricing_attribute3 IS NOT NULL) OR
381 (p_upg_line_rec.pricing_attribute4 IS NOT NULL) OR
382 (p_upg_line_rec.pricing_attribute5 IS NOT NULL) OR
383 (p_upg_line_rec.pricing_attribute6 IS NOT NULL) OR
384 (p_upg_line_rec.pricing_attribute7 IS NOT NULL) OR
385 (p_upg_line_rec.pricing_attribute8 IS NOT NULL) OR
386 (p_upg_line_rec.pricing_attribute9 IS NOT NULL) OR
387 (p_upg_line_rec.pricing_attribute10 IS NOT NULL) OR
388 (p_upg_line_rec.pricing_attribute11 IS NOT NULL) OR
389 (p_upg_line_rec.pricing_attribute12 IS NOT NULL) OR
390 (p_upg_line_rec.pricing_attribute13 IS NOT NULL) OR
391 (p_upg_line_rec.pricing_attribute14 IS NOT NULL) OR
392 (p_upg_line_rec.pricing_attribute15 IS NOT NULL)
393
394 THEN
395 SELECT OE_ORDER_PRICE_ATTRIBS_S.nextval
396 INTO v_order_price_attrib_id
397 FROM dual;
398
399 insert into oe_order_price_attribs
400 ( header_id,
401 line_id,
402 creation_date,
403 created_by,
404 last_update_date,
405 last_updated_by,
406 last_update_login,
407 program_application_id,
408 program_id,
409 program_update_date,
410 request_id,
411 pricing_context,
412 pricing_attribute1,
413 pricing_attribute2,
414 pricing_attribute3,
415 pricing_attribute4,
416 pricing_attribute5,
417 pricing_attribute6,
418 pricing_attribute7,
419 pricing_attribute8,
420 pricing_attribute9,
421 pricing_attribute10,
422 pricing_attribute11,
423 pricing_attribute12,
424 pricing_attribute13,
425 pricing_attribute14,
426 pricing_attribute15,
427 flex_title,
428 order_price_attrib_id,
429 override_flag ,
430 lock_control)
431 values
432 ( p_upg_line_rec.header_id,
433 p_upg_line_rec.line_id,
434 SYSDATE,
435 FND_GLOBAL.USER_ID,
436 SYSDATE,
437 FND_GLOBAL.USER_ID,
438 FND_GLOBAL.LOGIN_ID,
439 p_upg_line_rec.program_application_id,
440 p_upg_line_rec.program_id,
441 p_upg_line_rec.program_update_date,
442 p_upg_line_rec.request_id,
443 NVL(p_upg_line_rec.pricing_context,'Upgrade Context'),
444 p_upg_line_rec.pricing_attribute1,
445 p_upg_line_rec.pricing_attribute2,
446 p_upg_line_rec.pricing_attribute3,
447 p_upg_line_rec.pricing_attribute4,
448 p_upg_line_rec.pricing_attribute5,
449 p_upg_line_rec.pricing_attribute6,
450 p_upg_line_rec.pricing_attribute7,
451 p_upg_line_rec.pricing_attribute8,
452 p_upg_line_rec.pricing_attribute9,
453 p_upg_line_rec.pricing_attribute10,
454 p_upg_line_rec.pricing_attribute11,
455 p_upg_line_rec.pricing_attribute12,
456 p_upg_line_rec.pricing_attribute13,
457 p_upg_line_rec.pricing_attribute14,
458 p_upg_line_rec.pricing_attribute15,
459 'QP_ATTR_DEFNS_PRICING',
460 v_order_price_attrib_id,
461 'N',
462 1);
463 END IF;
464
465 EXCEPTION
466 WHEN OTHERS THEN
467 v_err_msg := SQLERRM;
468 rollback;
469 QP_Util.Log_Error(p_id1 => v_order_price_attrib_id,
470 p_error_type =>'PRICE_ATTRIBUTES',
471 p_error_desc => v_err_msg,
472 p_error_module => 'Upg_Pricing_Attribs');
473 raise;
474
475
476 end Upg_Pricing_Attribs;
477
478
479 END QP_Upg_OE_PVT;