[Home] [Help]
PACKAGE BODY: APPS.OE_RELATED_ITEMS_PVT
Source
1 PACKAGE BODY Oe_Related_Items_Pvt AS
2 /* $Header: OEXFRELB.pls 120.5.12020000.2 2012/07/03 09:55:07 amallik ship $ */
3
4 -- Global variables
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'Oe_Related_Items_Pvt';
7 G_ATP_TBL OE_ATP.atp_tbl_type;
8 G_line_id CONSTANT NUMBER := 1237;
9 G_atp_line_id CONSTANT NUMBER := -9987;
10 --g_header_id CONSTANT NUMBER :=2345;
11 g_header_id NUMBER;
12 g_hsecs NUMBER;
13 g_place varchar2(100);
14 g_total number :=0;
15 g_total2 number ;
16 g_inventory_item_id number;
17 g_related_item_id number ;
18 g_qty number ;
19 g_uom varchar2(20);
20 g_request_date date ;
21 /*
22 g_related_item_id number := 149;
23 g_qty number := 1;
24 g_uom varchar2(20) := 'Ea';
25 g_request_date date := '10-OCT-2002';
26 */
27 g_customer_id number;
28 g_item_identifier_type varchar2(40);
29 g_agreement_id number;
30 g_price_list_id number;
31 g_ship_to_org_id number;
32 g_invoice_to_org_id number;
33 g_ship_from_org_id number;
34 g_org_id NUMBER; --Bug#10353197
35 g_pricing_date date;
36 g_order_type_id number;
37 g_currency varchar2(20);
38
39 g_pricing_context varchar2(30);
40 g_pricing_attribute1 varchar2(240);
41 g_pricing_attribute2 varchar2(240);
42 g_pricing_attribute3 varchar2(240);
43 g_pricing_attribute4 varchar2(240);
44 g_pricing_attribute5 varchar2(240);
45 g_pricing_attribute6 varchar2(240);
46 g_pricing_attribute7 varchar2(240);
47 g_pricing_attribute8 varchar2(240);
48 g_pricing_attribute9 varchar2(240);
49 g_pricing_attribute10 varchar2(240);
50 g_pricing_attribute11 varchar2(240);
51 g_pricing_attribute12 varchar2(240);
52 g_pricing_attribute13 varchar2(240);
53 g_pricing_attribute14 varchar2(240);
54 g_pricing_attribute15 varchar2(240);
55 g_pricing_attribute16 varchar2(240);
56 g_pricing_attribute17 varchar2(240);
57 g_pricing_attribute18 varchar2(240);
58 g_pricing_attribute19 varchar2(240);
59 g_pricing_attribute20 varchar2(240);
60 g_pricing_attribute21 varchar2(240);
61 g_pricing_attribute22 varchar2(240);
62 g_pricing_attribute23 varchar2(240);
63 g_pricing_attribute24 varchar2(240);
64 g_pricing_attribute25 varchar2(240);
65 g_pricing_attribute26 varchar2(240);
66 g_pricing_attribute27 varchar2(240);
67 g_pricing_attribute28 varchar2(240);
68 g_pricing_attribute29 varchar2(240);
69 g_pricing_attribute30 varchar2(240);
70 g_pricing_attribute31 varchar2(240);
71 g_pricing_attribute32 varchar2(240);
72 g_pricing_attribute33 varchar2(240);
73 g_pricing_attribute34 varchar2(240);
74 g_pricing_attribute35 varchar2(240);
75 g_pricing_attribute36 varchar2(240);
76 g_pricing_attribute37 varchar2(240);
77 g_pricing_attribute38 varchar2(240);
78 g_pricing_attribute39 varchar2(240);
79 g_pricing_attribute40 varchar2(240);
80 g_pricing_attribute41 varchar2(240);
81 g_pricing_attribute42 varchar2(240);
82 g_pricing_attribute43 varchar2(240);
83 g_pricing_attribute44 varchar2(240);
84 g_pricing_attribute45 varchar2(240);
85 g_pricing_attribute46 varchar2(240);
86 g_pricing_attribute47 varchar2(240);
87 g_pricing_attribute48 varchar2(240);
88 g_pricing_attribute49 varchar2(240);
89 g_pricing_attribute50 varchar2(240);
90 g_pricing_attribute51 varchar2(240);
91 g_pricing_attribute52 varchar2(240);
92 g_pricing_attribute53 varchar2(240);
93 g_pricing_attribute54 varchar2(240);
94 g_pricing_attribute55 varchar2(240);
95 g_pricing_attribute56 varchar2(240);
96 g_pricing_attribute57 varchar2(240);
97 g_pricing_attribute58 varchar2(240);
98 g_pricing_attribute59 varchar2(240);
99 g_pricing_attribute60 varchar2(240);
100 g_pricing_attribute61 varchar2(240);
101 g_pricing_attribute62 varchar2(240);
102 g_pricing_attribute63 varchar2(240);
103 g_pricing_attribute64 varchar2(240);
104 g_pricing_attribute65 varchar2(240);
105 g_pricing_attribute66 varchar2(240);
106 g_pricing_attribute67 varchar2(240);
107 g_pricing_attribute68 varchar2(240);
108 g_pricing_attribute69 varchar2(240);
109 g_pricing_attribute70 varchar2(240);
110 g_pricing_attribute71 varchar2(240);
111 g_pricing_attribute72 varchar2(240);
112 g_pricing_attribute73 varchar2(240);
113 g_pricing_attribute74 varchar2(240);
114 g_pricing_attribute75 varchar2(240);
115 g_pricing_attribute76 varchar2(240);
116 g_pricing_attribute77 varchar2(240);
117 g_pricing_attribute78 varchar2(240);
118 g_pricing_attribute79 varchar2(240);
119 g_pricing_attribute80 varchar2(240);
120 g_pricing_attribute81 varchar2(240);
121 g_pricing_attribute82 varchar2(240);
122 g_pricing_attribute83 varchar2(240);
123 g_pricing_attribute84 varchar2(240);
124 g_pricing_attribute85 varchar2(240);
125 g_pricing_attribute86 varchar2(240);
126 g_pricing_attribute87 varchar2(240);
127 g_pricing_attribute88 varchar2(240);
128 g_pricing_attribute89 varchar2(240);
129 g_pricing_attribute90 varchar2(240);
130 g_pricing_attribute91 varchar2(240);
131 g_pricing_attribute92 varchar2(240);
132 g_pricing_attribute93 varchar2(240);
133 g_pricing_attribute94 varchar2(240);
134 g_pricing_attribute95 varchar2(240);
135 g_pricing_attribute96 varchar2(240);
136 g_pricing_attribute97 varchar2(240);
137 g_pricing_attribute98 varchar2(240);
138 g_pricing_attribute99 varchar2(240);
139 g_pricing_attribute100 varchar2(240);
140
141 PROCEDURE get_upgrade_item_details(l_inv_item_id in number,
142 out_inv_item_name out nocopy varchar2,
143 out_inv_desc out nocopy varchar2,
144 out_inv_item_type out nocopy varchar2
145 )
146 IS
147 l_org_id number := OE_Sys_Parameters.VALUE('MASTER_ORGANIZATION_ID');
148 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
149 BEGIN
150 SELECT concatenated_segments,description,item_type
151 INTO out_inv_item_name,out_inv_desc,out_inv_item_type
152 FROM mtl_system_items_kfv
153 WHERE inventory_item_id = l_inv_item_id
154 AND organization_id = l_org_id;
155
156
157 EXCEPTION
158 when no_data_found then
159 IF l_debug_level > 0 THEN
160 oe_debug_pub.add( 'OE_OE_RELATED_ITEMS.GET_item_upgrade_details NO DATA FOUND' ) ;
161 END IF;
162 when others then
163 IF l_debug_level > 0 THEN
164 oe_debug_pub.add( 'OE_OE_RELATED_ITEMS.GET_item_NAME WHEN OTHERS '|| SQLERRM||SQLCODE ) ;
165 END IF;
166
167 END get_upgrade_item_details;
168
169
170
171 PROCEDURE defaulting(
172 p_org_id in varchar2
173 ,p_cust_account_id in number
174 ,p_related_item_id in number
175 ,p_ship_to_org_id in number
176 ,p_line_set_id in number
177 ,p_ship_set_id in number
178 ,p_line_type_id in number
179 ,p_deliver_to_org_id in number
180 ,p_accounting_rule_id in number
181 ,p_accounting_rule_duration in number
182 ,p_actual_arrival_date in date
183 ,p_actual_shipment_date in date
184 ,p_cancelled_flag in varchar2
185 ,p_fob_point_code in varchar2
186 ,p_invoicing_rule_id in number
187 ,p_item_type_code in varchar2
188 ,p_line_category_code in varchar2
189 ,p_open_flag in varchar2
190 ,p_promise_date in date
191 ,p_salesrep_id in number
192 ,p_schedule_ship_date in date
193 ,p_schedule_arrival_date in date
194 ,p_customer_shipment_number in number
195 ,p_agreement_id in number
196 ,p_header_id in number
197 ,p_invoice_to_org_id in number
198 ,p_price_list_id in number
199 ,p_request_date in date
200 ,p_arrival_set_id in number
201 ,x_wsh_id out NOCOPY /* file.sql.39 change */ number
202 ,x_uom out NOCOPY /* file.sql.39 change */ varchar2
203 ) IS
204
205 x_msg_count number;
206 x_msg_data varchar2(2000);
207 x_return_status varchar2(2000);
208
209 l_old_line_rec oe_ak_order_lines_v%ROWTYPE;
210 l_line_rec oe_ak_order_lines_v%ROWTYPE;
211 l_out_line_rec oe_ak_order_lines_v%ROWTYPE;
212
213 --
214 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
215 --
216 BEGIN
217
218 IF l_debug_level > 0 THEN
219 oe_debug_pub.add( 'ENTERING OE_RELATED_ITEMS_PVT.DEFAULTING '||
220 'ITEM_ID='||P_RELATED_ITEM_ID||
221 'ORG ID TYPE ='||P_ORG_ID||
222 'CUSTOMER_ID ='||P_CUST_ACCOUNT_ID||
223 'SHIP_TO_ORG_ID ='||P_SHIP_TO_ORG_ID||
224 'P_ACCOUNTING_RULE_ID'|| p_accounting_rule_id ||
225 'P_ACCOUNTING_RULE_DURATION'||p_accounting_rule_duration ||
226 'P_ACTUAL_ARRIVAL_DATE'||p_actual_arrival_date ||
227 'P_ACTUAL_SHIPMENT_DATE'||p_actual_shipment_date||
228 'P_CANCELLED_FLAG'||p_cancelled_flag ||
229 'P_FOB_POINT_CODE'||p_fob_point_code ||
230 'P_INVOICING_RULE_ID'||p_invoicing_rule_id||
231 'P_ITEM_TYPE_CODE'||p_item_type_code||
232 'P_LINE_CATEGORY_CODE'||p_line_category_code||
233 'P_OPEN_FLAG'||p_open_flag ||
234 'P_PROMISE_DATE'||p_promise_date||
235 'P_SALESREP_ID'||p_salesrep_id ||
236 'P_SCHEDULE_SHIP_DATE'||p_schedule_ship_date ||
237 'P_SCHEDULE_ARRIVAL_DATE'||p_schedule_arrival_date ||
238 'P_CUSTOMER_SHIPMENT_NUMBER'||p_customer_shipment_number||
239 'P_AGREEMENT_ID'||p_agreement_id ||
240 'P_HEADER_ID'||p_header_id ||
241 'P_INVOICE_TO_ORG_ID'||p_invoice_to_org_id ||
242 'P_PRICE_LIST_ID'||p_price_list_id||
243 'P_REQUEST_DATE'||p_request_date||
244 'P_ARRIVAL_SET_ID'||p_arrival_set_id ) ;
245 END IF;
246
247 l_line_rec.inventory_item_id := p_related_item_id;
248 l_line_rec.org_id := p_org_id;
249 g_org_id := p_org_id; --Bug#10353197
250 l_line_rec.sold_to_org_id := p_cust_account_id;
251 l_line_rec.ship_to_org_id := p_ship_to_org_id;
252 ---Bug 2992459
253 l_line_rec.accounting_rule_id := p_accounting_rule_id;
254 l_line_rec.accounting_rule_duration := p_accounting_rule_duration;
255 l_line_rec.actual_arrival_date := p_actual_arrival_date;
256 l_line_rec.actual_shipment_date := p_actual_shipment_date;
257 l_line_rec.cancelled_flag := p_cancelled_flag;
258 l_line_rec.fob_point_code := p_fob_point_code;
259 l_line_rec.invoicing_rule_id := p_invoicing_rule_id;
260 l_line_rec.item_type_code := p_item_type_code;
261 l_line_rec.line_category_code := p_line_category_code;
262 l_line_rec.open_flag := p_open_flag;
263 l_line_rec.promise_date := p_promise_date;
264 l_line_rec.salesrep_id := p_salesrep_id;
265 l_line_rec.schedule_ship_date := p_schedule_ship_date;
266 l_line_rec.schedule_arrival_date := p_schedule_arrival_date;
267 l_line_rec.customer_shipment_number:= p_customer_shipment_number;
268 l_line_rec.agreement_id := p_agreement_id;
269 l_line_rec.header_id := p_header_id;
270 l_line_rec.invoice_to_org_id := p_invoice_to_org_id;
271 l_line_rec.price_list_id := p_price_list_id;
272 l_line_rec.request_date := p_request_date;
273 l_line_rec.arrival_set_id := p_arrival_set_id;
274 --Bug 2992459
275 l_line_rec.ship_from_org_id := FND_API.G_MISS_NUM;
276 l_line_rec.order_quantity_uom := FND_API.G_MISS_CHAR;
277
278 l_out_line_rec := l_line_rec;
279
280 ONT_LINE_DEF_HDLR.Default_record(
281 p_x_rec => l_out_line_rec,
282 p_initial_rec =>l_line_rec,
283 p_in_old_rec => l_old_line_rec
284 );
285 x_wsh_id := l_out_line_rec.ship_from_org_id;
286 x_uom := l_out_line_rec.order_quantity_uom;
287
288 IF l_debug_level > 0 THEN
289 oe_debug_pub.add( 'WSH_ID='||X_WSH_ID|| ' X_UOM=' || X_UOM ) ;
290 END IF;
291
292
293 IF l_debug_level > 0 THEN
294 oe_debug_pub.add( 'EXITING OE_RELATED_ITEMS_PVT.DEFAULTING' ) ;
295 END IF;
296
297 EXCEPTION
298
299 WHEN FND_API.G_EXC_ERROR THEN
300
301 x_return_status := FND_API.G_RET_STS_ERROR;
302
303 -- Get message count and data
304
305 OE_MSG_PUB.Count_And_Get
306 ( p_count => x_msg_count
307 , p_data => x_msg_data
308 );
309
310 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
311
312 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
313
314 -- Get message count and data
315
316 OE_MSG_PUB.Count_And_Get
317 ( p_count => x_msg_count
318 , p_data => x_msg_data
319 );
320
321 WHEN OTHERS THEN
322
323 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
324
325 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
326 THEN
327 OE_MSG_PUB.Add_Exc_Msg
328 ( G_PKG_NAME
329 , 'defaulting'
330 );
331 END IF;
332
333 -- Get message count and data
334
335 OE_MSG_PUB.Count_And_Get
336 ( p_count => x_msg_count
337 , p_data => x_msg_data
338 );
339
340 END defaulting;
341
342
343 Procedure Call_MRP_ATP(
344 p_global_orgs in varchar2,
345 p_ship_from_org_id in number,
346 p_related_item_id in number,
347 p_related_uom in VARCHAR2,
348 p_request_date in DATE,
349 p_ordered_qty in NUMBER,
350 p_cust_account_id in NUMBER,
351 p_ship_to_org_id in NUMBER,
352 p_demand_class_code in varchar2,--13686470
353 p_date_type_code in varchar2, --13686470
354 x_available_qty out NOCOPY /* file.sql.39 change */ varchar2,
355 x_ship_from_org_id out NOCOPY /* file.sql.39 change */ number,
356 x_available_date out NOCOPY /* file.sql.39 change */ date,
357 x_qty_uom out NOCOPY /* file.sql.39 change */ varchar2,
358 x_out_message out NOCOPY /* file.sql.39 change */ varchar2,
359 x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
360 x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER,
361 x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
362 x_error_message out NOCOPY /* file.sql.39 change */ varchar2
363 ) IS
364
365 l_session_id NUMBER := 0;
366 l_mrp_atp_rec MRP_ATP_PUB.ATP_Rec_Typ;
367 l_atp_supply_demand MRP_ATP_PUB.ATP_Supply_Demand_Typ;
368 l_atp_period MRP_ATP_PUB.ATP_Period_Typ;
369 l_atp_details MRP_ATP_PUB.ATP_Details_Typ;
370 x_atp_rec MRP_ATP_PUB.ATP_Rec_Typ;
371 l_atp_rec MRP_ATP_PUB.ATP_Rec_Typ;
372 I NUMBER := 1;
373 l_mrp_calc_sd VARCHAR2(240);--bug14222176
374
375
376 --
377 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
378 --
379 BEGIN
380
381 IF l_debug_level > 0 THEN
382 oe_debug_pub.add( 'ENTERING CALL ATP' ) ;
383 END IF;
384
385 Initialize_mrp_record
386 ( p_x_atp_rec => l_atp_rec
387 ,l_count =>1 );
388
389
390 IF l_debug_level > 0 THEN
391 oe_debug_pub.add( 'INVENTORY_ITEM_ID='||P_RELATED_ITEM_ID||
392 ' SHIP_FORM_ORG_ID='||P_SHIP_FROM_ORG_ID|| ' P_GLOBAL_ORGS='||
393 P_GLOBAL_ORGS|| ' CUST_ID='||P_CUST_ACCOUNT_ID|| ' SHIP_TO_ORG_ID='||
394 P_SHIP_TO_ORG_ID||' QTY='||P_ORDERED_QTY|| ' UOM='||P_RELATED_UOM||' REQ DATE='||P_REQUEST_DATE ) ;
395 END IF;
396 /*
397 --if the call is made for GA then the org_id is passed
398 IF p_global_orgs = 'Y' and
399 in_ship_from_org_id is not null then
400
401 lin_atp_rec_atp_rec.Source_Organization_Id(1) := in_ship_from_org_id;
402 ELSE
403
404 l_atp_rec.Source_Organization_Id(1) := g_ship_from_org_id;
405 END IF;
406 */
407 IF l_debug_level > 0 THEN
408 oe_debug_pub.add( 'LINE_ID='||G_ATP_LINE_ID ) ;
409 END IF;
410
411 l_atp_rec.Source_Organization_Id(1) := p_ship_from_org_id;
412 l_atp_rec.Identifier(I) := g_atp_line_id;
413 l_atp_rec.Action(I) := 100;
414 l_atp_rec.calling_module(I) := 660;
415 l_atp_rec.customer_id(I) := p_cust_account_id;
416 l_atp_rec.customer_site_id(I) := p_ship_to_org_id;
417 l_atp_rec.inventory_item_id(I) := p_related_item_id;
418 l_atp_rec.quantity_ordered(I) := p_ordered_qty;
419 l_atp_rec.quantity_uom(I) := p_related_uom;
420 l_atp_rec.Earliest_Acceptable_Date(I):= null;
421 l_atp_rec.Requested_Arrival_Date(I) := null;
422 -- 13686470
423 if p_date_type_code is null or p_date_type_code = 'SHIP' then
424
425 if l_debug_level > 0 then
426 oe_debug_pub.add('date type code is ship:'||p_date_type_code);
427 end if ;
428 l_atp_rec.Requested_Ship_Date(I) := p_request_date;
429 elsif p_date_type_code='ARRIVAL' then
430
431 if l_debug_level > 0 then
432 oe_debug_pub.add('date type code is arrival:'||p_date_type_code);
433 end if ;
434
435 l_atp_rec.Requested_arrival_Date(I) := p_request_date;
436 end if ;
437 --13686470
438 l_atp_rec.Delivery_Lead_Time(I) := Null;
439 l_atp_rec.Freight_Carrier(I) := null;
440 l_atp_rec.Ship_Method(I) := null;
441 l_atp_rec.Demand_Class(I) := p_demand_class_code; --13686470 null;
442 l_atp_rec.Ship_Set_Name(I) := null;
443 l_atp_rec.Arrival_Set_Name(I) := null;
444 l_atp_rec.Override_Flag(I) := 'N';
445 l_atp_rec.Ship_Date(I) := null;
446 l_atp_rec.Available_Quantity(I) := null;
447 l_atp_rec.Requested_Date_Quantity(I) := null;
448 l_atp_rec.Group_Ship_Date(I) := null;
449 l_atp_rec.Group_Arrival_Date(I) := null;
450 l_atp_rec.Vendor_Id(I) := null;
451 l_atp_rec.Vendor_Site_Id(I) := null;
452 -- l_atp_rec.Insert_Flag(I) := 1; -- it can be 0 or 1
453 -- commented for bug14222176
454 l_atp_rec.Error_Code(I) := null;
455 l_atp_rec.Message(I) := null;
456 l_atp_rec.atp_lead_time(I) := 0;
457
458
459 --bug14222176
460 l_mrp_calc_sd := fnd_profile.value('MRP_ATP_CALC_SD');
461 IF nvl(l_mrp_calc_sd,'N') = 'Y' THEN
462 oe_debug_pub.add('in OEXFRELB, MRP_ATP_CALC_SD profile set to yes ' );
463 l_atp_rec.Insert_Flag(I):= 1;
464 ELSE
465 oe_debug_pub.add('in OEXFRELB, MRP_ATP_CALC_SD profile set to No ' );
466 l_atp_rec.Insert_Flag(I):= 0;
467 END IF;
468 --end bug14222176
469
470 SELECT mrp_atp_schedule_temp_s.nextval
471 INTO l_session_id
472 FROM dual;
473
474 -- Call ATP
475
476 IF l_debug_level > 0 THEN
477 oe_debug_pub.add( '1. CALLING MRP API WITH SESSION ID '||L_SESSION_ID , 1 ) ;
478 END IF;
479
480 IF l_debug_level > 0 THEN
481 print_time('Calling MRP');
482 END IF;
483
484 MRP_ATP_PUB.Call_ATP (
485 p_session_id => l_session_id
486 , p_atp_rec => l_atp_rec
487 , x_atp_rec => x_atp_rec
488 , x_atp_supply_demand => l_atp_supply_demand
489 , x_atp_period => l_atp_period
490 , x_atp_details => l_atp_details
491 , x_return_status => x_return_status
492 , x_msg_data => x_msg_data
493 , x_msg_count => x_msg_count
494 );
495
496 IF l_debug_level > 0 THEN
497 print_time('After Calling MRP');
498 END IF;
499 IF l_debug_level > 0 THEN
500 oe_debug_pub.add( 'AFTER CALL MRP_ATP_PUB.CALL_ATP STS='||
501 X_RETURN_STATUS|| ' MSG COUNT='||X_MSG_COUNT|| ' MSG DATA='||X_MSG_DATA||
502 'AVL QTY='|| X_ATP_REC.AVAILABLE_QUANTITY ( 1 ) || 'SHIP_FROM_ORG_ID =' ||
503 X_ATP_REC.SOURCE_ORGANIZATION_ID ( 1 ) ) ;
504 END IF;
505
506 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
507 IF l_debug_level > 0 THEN
508 oe_debug_pub.add( 'ERROR IS' || X_MSG_DATA , 1 ) ;
509 END IF;
510 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
511 END IF;
512
513
514 Check_Results_from_rec(
515 p_global_orgs =>'Y'
516 ,p_atp_rec => x_atp_rec
517 ,x_return_status => x_return_status
518 ,x_msg_count =>x_msg_count
519 ,x_msg_data =>x_msg_data
520 ,x_error_message =>x_error_message
521 );
522
523 IF l_debug_level > 0 THEN
524 oe_debug_pub.add( 'STATUS='||X_RETURN_STATUS|| ' X_ERROR_MESSAGE ='||X_ERROR_MESSAGE|| ' MSG DATA='||X_MSG_DATA ) ;
525 END IF;
526
527 IF x_return_status <> 'P' then
528
529 IF l_debug_level > 0 THEN
530 oe_debug_pub.add( 'RETURN_STATUS<>P' ) ;
531 END IF;
532
533 IF nvl(x_atp_rec.available_quantity(1),0) = 0 then
534
535 IF l_debug_level > 0 THEN
536 oe_debug_pub.add( 'AVAILABLE QUANTITY IS 0' ) ;
537 END IF;
538 x_available_date := null;
539 x_available_qty := 0;
540
541 ELSE
542 x_available_qty := x_atp_rec.available_quantity(1);
543 x_available_date := x_atp_rec.ship_date(1);
544 IF x_atp_rec.group_ship_date(1) is not null THEN
545 x_available_date := x_atp_rec.group_ship_date(1);
546 END IF;
547
548 END IF;
549
550 ELSE
551 IF l_debug_level > 0 THEN
552 oe_debug_pub.add( 'RETURN_STATUS=P MESG='||X_ERROR_MESSAGE ) ;
553 END IF;
554 x_available_qty := x_error_message;
555 x_available_date := null;
556 x_error_message := null;
557
558 END IF;
559
560
561 x_ship_from_org_id := x_atp_rec.source_organization_id(1);
562 x_qty_uom := x_atp_rec.quantity_uom(1);
563
564
565 IF l_debug_level > 0 THEN
566 oe_debug_pub.add( 'OUT_AVAL_QTY='||X_AVAILABLE_QTY||
567 ' SHIP_FORM_ORG_ID='||X_SHIP_FROM_ORG_ID|| ' UOM='||X_QTY_UOM||
568 ' OUT SHIP DATE='||X_ATP_REC.SHIP_DATE ( 1 ) || ' OUT GRP SHIP DATE='||
569 X_ATP_REC.GROUP_SHIP_DATE ( 1 ) || ' OUT ARRIVAL DATE='||
570 X_ATP_REC.ARRIVAL_DATE ( 1 ) || ' OUT GRP ARRIVAL DATE='||
571 X_ATP_REC.ARRIVAL_DATE ( 1 ) || ' REQ DATE QTY='||
572 X_ATP_REC.REQUESTED_DATE_QUANTITY ( 1 ) ||
573 ' AVAILABLE QTY='||X_ATP_REC.AVAILABLE_QUANTITY ( 1 ) ) ;
574 END IF;
575
576
577 IF l_debug_level > 0 THEN
578 oe_debug_pub.add( 'EXITING CALL ATP' , 1 ) ;
579 END IF;
580
581
582 EXCEPTION
583
584 WHEN OTHERS THEN
585
586 IF l_debug_level > 0 THEN
587 oe_debug_pub.add( 'WHEN OTHERS OF CALL_MRP_ATP' ) ;
588 END IF;
589 IF l_debug_level > 0 THEN
590 oe_debug_pub.add( 'CODE='||SQLCODE||' MSG='||SQLERRM ) ;
591 END IF;
592 x_return_status := 'E';
593 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
594 -- Get message count and data
595 OE_MSG_PUB.Count_And_Get
596 ( p_count => x_msg_count
597 , p_data => x_msg_data
598 );
599
600 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
601 OE_MSG_PUB.Add_Exc_Msg
602 ( G_PKG_NAME,
603 'Call_MRP_ATP');
604 END IF;
605
606 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
607
608 END Call_MRP_ATP;
609
610
611 Procedure Initialize_mrp_record
612 ( p_x_atp_rec IN OUT NOCOPY MRP_ATP_PUB.ATP_Rec_Typ
613 ,l_count IN NUMBER) IS
614
615 l_return_status varchar2(10);
616
617 --
618 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
619 --
620 BEGIN
621
622 IF l_debug_level > 0 THEN
623 oe_debug_pub.add( 'EXTENDING THE TABLE BY ' || L_COUNT , 5 ) ;
624 END IF;
625
626 MSC_SATP_FUNC.Extend_ATP
627 (p_atp_tab => p_x_atp_rec,
628 p_index => l_count,
629 x_return_status => l_return_status);
630
631 EXCEPTION
632
633 WHEN OTHERS THEN
634
635 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
636 OE_MSG_PUB.Add_Exc_Msg
637 ( G_PKG_NAME,
638 'Initialize_mrp_record');
639 END IF;
640
641 END Initialize_mrp_record;
642
643 Procedure Check_Results_from_rec (
644 p_global_orgs in varchar2
645 ,p_atp_rec IN MRP_ATP_PUB.ATP_Rec_Typ
646 ,x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
647 ,x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
648 ,x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
649 ,x_error_message OUT NOCOPY /* file.sql.39 change */ varchar2
650 )IS
651
652 atp_count NUMBER := 1;
653 J NUMBER := 1;
654 l_explanation VARCHAR2(80);
655 l_type_code VARCHAR2(30);
656 l_ship_set_name VARCHAR2(30);
657 l_arrival_set_name VARCHAR2(30);
658 l_arrival_date DATE := NULL;
659 l_sch_action varchar2(100) := 'OESCH_ACT_ATP_CHECK';
660 --
661 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
662 --
663 BEGIN
664
665 x_return_status := 'S';
666 IF l_debug_level > 0 THEN
667 oe_debug_pub.add( '2. ENTERING CHECK_RESULTS ERROR_CODE='|| P_ATP_REC.ERROR_CODE ( J ) || ' P_GLOBAL_ORGS='||P_GLOBAL_ORGS ) ;
668 END IF;
669
670 IF p_atp_rec.error_code(J) <> 0 AND
671 p_atp_rec.error_code(J) <> -99 AND -- Multi org changes.
672 p_atp_rec.error_code(J) <> 150 -- to fix bug 1880166
673
674 THEN
675
676 IF l_debug_level > 0 THEN
677 oe_debug_pub.add( 'ERROR FROM MRP: ' || P_ATP_REC.ERROR_CODE ( J ) , 1 ) ;
678 END IF;
679
680 IF p_atp_rec.error_code(J) = 80 THEN
681
682 l_explanation := null;
683
684 select meaning
685 into l_explanation
686 from mfg_lookups
687 where lookup_type = 'MTL_DEMAND_INTERFACE_ERRORS'
688 and lookup_code = 80;
689
690 IF l_debug_level > 0 THEN
691 oe_debug_pub.add( 'SETTING THE MESSAGE FOR OE_SCH_NO_SOURCE' ) ;
692 END IF;
693 --FND_MESSAGE.SET_NAME('ONT','OE_SCH_NO_SOURCE');
694 IF p_global_orgs = 'N' then
695
696 FND_MESSAGE.SET_NAME('ONT','ONT_AVAIL_NO_SOURCES');
697 OE_MSG_PUB.Add;
698 ELSE
699 x_error_message := l_explanation;
700 END IF;
701
702 ELSE
703
704 IF l_debug_level > 0 THEN
705 oe_debug_pub.add( 'SCH FAILED ERROR CODE='||P_ATP_REC.ERROR_CODE ( J ) ) ;
706 END IF;
707
708 l_explanation := null;
709
710 select meaning
711 into l_explanation
712 from mfg_lookups
713 where lookup_type = 'MTL_DEMAND_INTERFACE_ERRORS'
714 and lookup_code = p_atp_rec.error_code(J) ;
715
716 IF p_atp_rec.error_code(J) = 19 THEN
717 -- This error code is given for those lines which are
718 -- in a group and whose scheduling failed due to some other lines.
719 -- We do not want to give this out as a message.
720 null;
721
722 ELSIF p_atp_rec.error_code(J) = 61 THEN
723
724 -- setting the status flag to partial for ATP not applicable
725 IF l_debug_level > 0 THEN
726 oe_debug_pub.add( 'ERROR CODE = 61' ) ;
727 END IF;
728
729 x_return_status := 'P';
730 x_error_message := l_explanation;
731
732 ELSIF p_atp_rec.Ship_Set_Name(J) is not null OR
733 p_atp_rec.Arrival_Set_Name(J) is not null THEN
734
735 -- This line belongs to a scheduling group. We do not want
736 -- to give out individual messages for each line.
737 null;
738
739 ELSE
740 IF l_debug_level > 0 THEN
741 oe_debug_pub.add( 'ADDING MESSAGE TO THE STACK' , 1 ) ;
742 END IF;
743 --FND_MESSAGE.SET_NAME('ONT','OE_SCH_OE_ORDER_FAILED');
744 --FND_MESSAGE.SET_TOKEN('EXPLANATION',l_explanation);
745
746 IF p_global_orgs = 'N' then
747 FND_MESSAGE.SET_NAME('ONT','ONT_INLNE_CUSTOMER');
748 FND_MESSAGE.SET_TOKEN('TEXT',l_explanation);
749 OE_MSG_PUB.Add;
750 ELSE
751 x_error_message := l_explanation;
752 END IF;
753
754 END IF;
755
756 END IF; -- 80
757
758 IF l_debug_level > 0 THEN
759 oe_debug_pub.add( 'SETTING ERROR' , 1 ) ;
760 END IF;
761 IF x_return_status <> 'P' then
762 x_return_status := 'E';
763 END IF;
764
765 ELSE
766
767 IF l_debug_level > 0 THEN
768 oe_debug_pub.add( ' ELSE '||P_ATP_REC.SOURCE_ORGANIZATION_ID ( 1 ) || ' ERROR CODE : ' || P_ATP_REC.ERROR_CODE ( J ) ) ;
769 END IF;
770
771 -- Muti org changes.
772 IF (p_atp_rec.error_code(J) <> -99 ) THEN
773
774 IF l_debug_level > 0 THEN
775 oe_debug_pub.add( 'ERROR CODE : ' ||
776 P_ATP_REC.ERROR_CODE ( J ) || 'IDENTIFIER : ' ||
777 P_ATP_REC.IDENTIFIER ( J ) || 'ITEM : ' ||
778 P_ATP_REC.INVENTORY_ITEM_ID ( J ) || 'REQUEST SHIP DATE :' ||
779 TO_CHAR ( P_ATP_REC.REQUESTED_SHIP_DATE ( J ) , 'DD-MON-RR:HH:MM:SS' ) ||
780 'REQUEST ARRIVAL DATE :' ||
781 P_ATP_REC.REQUESTED_ARRIVAL_DATE ( J ) ||
782 'ARRIVAL DATE :' || TO_CHAR ( P_ATP_REC.ARRIVAL_DATE ( J ) , 'DD-MON-RR:HH:MM:SS' ) ||
783 'SHIP DATE :' ||
784 TO_CHAR ( P_ATP_REC.SHIP_DATE ( J ) , 'DD-MON-RR:HH:MM:SS' ) ||
785 'LEAD TIME :' ||P_ATP_REC.DELIVERY_LEAD_TIME ( J ) ||
786 'GROUP SHIP DATE :'||P_ATP_REC.GROUP_SHIP_DATE ( J ) ||
787 'GROUP ARR DATE :'||P_ATP_REC.GROUP_ARRIVAL_DATE ( J ) ) ;
788 END IF;
789
790 l_explanation := null;
791
792 IF (p_atp_rec.error_code(J) <> 0) THEN
793
794 BEGIN
795 select meaning
796 into l_explanation
797 from mfg_lookups
798 where lookup_type = 'MTL_DEMAND_INTERFACE_ERRORS'
799 and lookup_code = p_atp_rec.error_code(J) ;
800
801 g_atp_tbl(atp_count).error_message := l_explanation;
802 IF l_debug_level > 0 THEN
803 oe_debug_pub.add( 'EXPLANATION IS : ' || L_EXPLANATION , 1 ) ;
804 END IF;
805 x_error_message := l_explanation;
806
807 IF p_atp_rec.error_code(J) = 150 THEN
808 OE_MSG_PUB.add_text(l_explanation);
809 END IF;
810
811 EXCEPTION
812 WHEN OTHERS THEN
813 Null;
814 END;
815
816 END IF;
817
818 END IF; --Check for -99.
819
820 END IF; -- Main If;
821
822 -- umcomment for testing the error handling
823 --x_return_status := 'E';
824 --FND_MESSAGE.SET_NAME('ONT','OE_SCH_NO_SOURCE');
825 --OE_MSG_PUB.Add;
826
827 IF x_return_status ='E' and p_global_orgs = 'N' then
828 IF l_debug_level > 0 THEN
829 oe_debug_pub.add( 'DOING COUNT_AND_GET' ) ;
830 END IF;
831 oe_msg_pub.count_and_get(p_encoded=>fnd_api.G_TRUE,
832 p_count => x_msg_count,
833 p_data=>x_msg_data
834 );
835 IF l_debug_level > 0 THEN
836 oe_debug_pub.add( 'COUNT = '||X_MSG_COUNT||' MSG='||X_MSG_DATA ) ;
837 END IF;
838 END IF;
839
840 IF l_debug_level > 0 THEN
841 oe_debug_pub.add( 'EXITING CHECK_RESULTS: ' || X_RETURN_STATUS , 1 ) ;
842 END IF;
843
844 EXCEPTION
845 WHEN OTHERS THEN
846 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
847 THEN
848 OE_MSG_PUB.Add_Exc_Msg
849 ( G_PKG_NAME
850 , 'Check_Results'
851 );
852 END IF;
853 IF l_debug_level > 0 THEN
854 oe_debug_pub.add( 'UNEXPECTED ERROR IN CHECK_RESULTS' ) ;
855 END IF;
856 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
857
858 END Check_Results_from_rec;
859
860 PROCEDURE get_ship_from_org(in_org_id in number,
861 out_code out NOCOPY /* file.sql.39 change */ varchar2,
862 out_name out NOCOPY /* file.sql.39 change */ varchar2
863 )IS
864
865 --
866 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
867 --
868 BEGIN
869 SELECT organization_code,
870 name
871 INTO out_code,
872 out_name
873 FROM oe_ship_from_orgs_v
874 WHERE organization_id = in_org_id;
875
876 EXCEPTION
877
878 WHEN OTHERS THEN
879 IF l_debug_level > 0 THEN
880 oe_debug_pub.add( 'GET_SHIP_FROM_ORG WHEN OTHERS '|| SQLCODE||SQLERRM ) ;
881 END IF;
882
883 END get_ship_From_org;
884
885 procedure copy_Header_to_request(
886 p_request_type_code in varchar2
887 ,p_calculate_price_flag in varchar2
888 ,px_req_line_tbl in out nocopy QP_PREQ_GRP.LINE_TBL_TYPE
889 ) is
890
891 l_line_index pls_integer := 0;
892
893 --
894 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
895 --
896 BEGIN
897
898 IF l_debug_level > 0 THEN
899 oe_debug_pub.add( 'ENTERING OE_RELATED_ITEMS_PVT.COPY_HEADER_TO_REQUEST' , 1 ) ;
900 oe_debug_pub.add( ' line index in copy header to request'||l_line_index);
901 END IF;
902
903 l_line_index := l_line_index+1;
904 px_req_line_tbl(l_line_index).REQUEST_TYPE_CODE :=p_Request_Type_Code;
905 px_req_line_tbl(l_line_index).LINE_INDEX := l_line_index;
906 px_req_line_tbl(l_line_index).LINE_TYPE_CODE := 'ORDER';
907 -- Hold the header_id in line_id for 'HEADER' Records
908
909 px_req_line_tbl(l_line_index).line_id := g_line_id;
910
911 if g_pricing_date is null or g_pricing_date = fnd_api.g_miss_date then
912 px_req_line_tbl(l_line_index).PRICING_EFFECTIVE_DATE := trunc(sysdate);
913 Else
914 px_req_line_tbl(l_line_index).PRICING_EFFECTIVE_DATE := g_pricing_date;
915 End If;
916
917 px_req_line_tbl(l_line_index).CURRENCY_CODE := g_currency;
918 px_req_line_tbl(l_line_index).PRICE_FLAG := p_calculate_price_flag;
919 px_req_line_tbl(l_line_index).Active_date_first_type := 'ORD';
920 px_req_line_tbl(l_line_index).Active_date_first := g_request_date;
921
922
923 --If G_ROUNDING_FLAG = 'Y' Then
924 IF g_price_list_id is not null then
925 px_req_line_tbl(l_line_index).Rounding_factor := Get_Rounding_factor(g_price_list_id);
926 END IF;
927 --End If;
928 IF l_debug_level > 0 THEN
929 oe_debug_pub.add( 'CURR='||G_CURRENCY||' REQ DATE='||G_REQUEST_DATE||' ROUNDING_FACTOR='||PX_REQ_LINE_TBL ( L_LINE_INDEX ) .ROUNDING_FACTOR ) ;
930 END IF;
931
932 --px_req_line_tbl(l_line_index).price_request_code := p_header_rec.price_request_code; -- PROMOTIONS SEP/01
933
934 IF l_debug_level > 0 THEN
935 oe_debug_pub.add( 'EXITING OE_OE_RELATED_ITEMS_PVT.COPY_HEADER_TO_REQUEST' ) ;
936 END IF;
937
938 END copy_Header_to_request;
939
940 PROCEDURE copy_Line_to_request(
941 px_req_line_tbl in out nocopy QP_PREQ_GRP.LINE_TBL_TYPE
942 ,p_pricing_event in varchar2
943 ,p_Request_Type_Code in varchar2
944 ,p_honor_price_flag in VARCHAR2 Default 'Y'
945 ) IS
946
947 l_line_index pls_integer := nvl(px_req_line_tbl.count,0);
948 v_discounting_privilege VARCHAR2(30);
949 l_item_type_code VARCHAR2(30);
950
951 --
952 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
953 --
954 begin
955
956 IF l_debug_level > 0 THEN
957 oe_debug_pub.add( 'ENTERING OE_RELATED_ITEMS_PVT.COPY_LINE_TO_REQUEST' , 1 ) ;
958 oe_debug_pub.add( 'line index in copy line to request'||l_line_index);
959 END IF;
960
961 l_line_index := l_line_index+1;
962 px_req_line_tbl(l_line_index).Line_id := g_line_id;
963 px_req_line_tbl(l_line_index).REQUEST_TYPE_CODE := p_Request_Type_Code;
964 px_req_line_tbl(l_line_index).LINE_INDEX := l_line_index;
965 px_req_line_tbl(l_line_index).LINE_TYPE_CODE := 'LINE';
966
967 IF g_pricing_date is null or g_pricing_date = fnd_api.g_miss_date then
968 px_req_line_tbl(l_line_index).PRICING_EFFECTIVE_DATE := trunc(sysdate);
969 ELSE
970 px_req_line_tbl(l_line_index).PRICING_EFFECTIVE_DATE := g_pricing_date;
971 END IF;
972
973 px_req_line_tbl(l_line_index).LINE_QUANTITY := g_qty ;
974 px_req_line_tbl(l_line_index).LINE_UOM_CODE := g_uom;
975 px_req_line_tbl(l_line_index).PRICED_QUANTITY := g_qty;
976 px_req_line_tbl(l_line_index).PRICED_UOM_CODE := g_uom;
977 px_req_line_tbl(l_line_index).CURRENCY_CODE :=g_currency;
978 px_req_line_tbl(l_line_index).UNIT_PRICE := Null;
979 --px_req_line_tbl(l_line_index).PERCENT_PRICE := p_Line_rec.unit_list_percent;
980 IF l_debug_level > 0 THEN
981 oe_debug_pub.add( 'QTY='||G_QTY||' UOM ='||G_UOM||' CURR='||G_CURRENCY ) ;
982 END IF;
983
984 /*If (p_Line_rec.service_period = p_Line_rec.Order_quantity_uom) Then
985 px_req_line_tbl(l_line_index).UOM_QUANTITY := p_Line_rec.service_duration;
986 Else
987 INV_CONVERT.INV_UM_CONVERSION(From_Unit => p_Line_rec.service_period
988 ,To_Unit => p_Line_rec.Order_quantity_uom
989 ,Item_ID => p_Line_rec.Inventory_item_id
990 ,Uom_Rate => l_Uom_rate);
991 px_req_line_tbl(l_line_index).UOM_QUANTITY := p_Line_rec.service_duration * l_uom_rate;
992 End If; */
993
994 --If G_ROUNDING_FLAG = 'Y' Then
995 px_req_line_tbl(l_line_index).Rounding_factor :=
996 Get_Rounding_factor(g_price_list_id);
997 --End If;
998
999 px_req_line_tbl(l_line_index).PRICE_FLAG := 'Y';
1000
1001
1002 -- Get Discounting Privilege Profile Option value
1003 fnd_profile.get('ONT_DISCOUNTING_PRIVILEGE', v_discounting_privilege);
1004
1005 -- Execute the pricing phase if the list price is null
1006
1007 IF p_pricing_event = 'PRICE' and
1008 px_req_line_tbl(l_line_index).UNIT_PRICE is null then
1009
1010 px_req_line_tbl(l_line_index).PRICE_FLAG := 'Y' ;
1011
1012 END IF;
1013
1014 --l_item_type_code := oe_line_util.Get_Return_Item_Type_Code(p_Line_rec);
1015 l_item_type_code := 'STANDARD';
1016
1017 px_req_line_tbl(l_line_index).Active_date_first_type := 'ORD';
1018 px_req_line_tbl(l_line_index).Active_date_first := g_request_date;
1019
1020 IF g_request_date is not null then
1021 px_req_line_tbl(l_line_index).Active_date_Second_type := 'SHIP';
1022 px_req_line_tbl(l_line_index).Active_date_Second := g_request_date;
1023 End If;
1024
1025 --px_req_line_tbl(l_line_index).price_request_code := p_line_rec.price_request_code; -- PROMOTIONS SEP/01
1026 --px_req_line_tbl(l_line_index).line_category :=p_line_rec.line_category_code;
1027
1028 IF l_debug_level > 0 THEN
1029 oe_debug_pub.add( 'EXITING OE_RELATED_ITEMS_PVT.COPY_LINE_TO_REQUEST' , 1 ) ;
1030 END IF;
1031
1032 END copy_Line_to_request;
1033
1034 PROCEDURE set_pricing_control_record (
1035 l_Control_Rec in out NOCOPY /* file.sql.39 change */ QP_PREQ_GRP.CONTROL_RECORD_TYPE
1036 ,in_pricing_event in varchar2)IS
1037
1038 --
1039 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1040 --
1041
1042 l_set_of_books Oe_Order_Cache.Set_Of_Books_Rec_Type;
1043 BEGIN
1044 l_control_rec.gsa_check_flag := 'Y';
1045 l_control_rec.gsa_dup_check_flag := 'Y';
1046
1047
1048 l_control_rec.calculate_flag := QP_PREQ_GRP.G_SEARCH_N_CALCULATE;
1049 l_control_rec.simulation_flag :='Y';
1050 l_control_rec.pricing_event := in_pricing_Event;
1051 -- l_control_rec.temp_table_insert_flag := 'N';
1052 l_control_rec.check_cust_view_flag := 'Y';
1053 l_control_rec.request_type_code := 'ONT';
1054 l_control_rec.rounding_flag := 'Q';
1055 --For multi_currency price list
1056 l_control_rec.use_multi_currency:='Y';
1057 l_control_rec.USER_CONVERSION_RATE:= OE_ORDER_PUB.G_HDR.CONVERSION_RATE;
1058 l_control_rec.USER_CONVERSION_TYPE:= OE_ORDER_PUB.G_HDR.CONVERSION_TYPE_CODE;
1059 l_set_of_books := Oe_Order_Cache.Load_Set_Of_Books;
1060 l_control_rec.FUNCTION_CURRENCY := l_set_of_books.currency_code;
1061
1062 END set_pricing_control_record;
1063
1064 PROCEDURE build_context_for_line(
1065 p_req_line_tbl_count in number,
1066 p_price_request_code in varchar2,
1067 p_item_type_code in varchar2,
1068 p_Req_line_attr_tbl in out nocopy QP_PREQ_GRP.LINE_ATTR_TBL_TYPE,
1069 p_Req_qual_tbl in out nocopy QP_PREQ_GRP.QUAL_TBL_TYPE
1070 )IS
1071
1072 qp_attr_mapping_error exception;
1073 l_org_id Number:= OE_Sys_Parameters.VALUE('MASTER_ORGANIZATION_ID');
1074 p_pricing_contexts_Tbl QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type;
1075 p_qualifier_contexts_Tbl QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type;
1076
1077 --
1078 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1079 --
1080 BEGIN
1081
1082 IF l_debug_level > 0 THEN
1083 oe_debug_pub.add( 'BEFORE OE_RELATED_ITEMS_PVT.BUILD_CONTEXTS FOR LINE' , 1 ) ;
1084 END IF;
1085
1086 IF l_debug_level > 0 THEN
1087 oe_debug_pub.add( 'ORG_ID='||L_ORG_ID|| ' PRICING_DATE='||
1088 G_PRICING_DATE|| ' INV ITEM_IE='||G_RELATED_ITEM_ID|| ' AGREEMENT_ID='||
1089 G_AGREEMENT_ID|| ' REQ DATE='||G_REQUEST_DATE|| ' SHIP_TO_ORG_ID='||
1090 G_SHIP_TO_ORG_ID|| ' INVOICE_TO_ORG_ID='||G_INVOICE_TO_ORG_ID ) ;
1091 END IF;
1092
1093 IF l_debug_level > 0 THEN
1094 oe_debug_pub.add( 'QTY='||G_QTY|| ' ITEM_TYPE_CODE='||P_ITEM_TYPE_CODE|| ' PRICE_LIST_ID='||G_PRICE_LIST_ID|| ' CUST_ID='||G_CUSTOMER_ID|| ' PRICE REQ CODE='||P_PRICE_REQUEST_CODE|| ' UOM='||G_UOM ) ;
1095 END IF;
1096
1097 --oe_order_pub.g_line.org_id := l_org_id; --commented for Bug#10353197
1098 oe_order_pub.g_line.org_id := g_org_id; --Bug#10353197
1099 oe_order_pub.g_line.pricing_date := g_pricing_date;
1100 oe_order_pub.g_line.inventory_item_id := g_related_item_id;
1101 oe_order_pub.g_line.agreement_id := g_agreement_id;
1102 --oe_order_pub.g_line.ordered_date := g_request_date;
1103 oe_order_pub.g_line.ship_to_org_id := g_ship_to_org_id;
1104 oe_order_pub.g_line.invoice_to_org_id := g_invoice_to_org_id;
1105 oe_order_pub.g_line.ordered_quantity := g_qty;
1106 oe_order_pub.g_line.line_id := g_line_id;
1107 oe_order_pub.g_line.header_id := g_header_id;
1108 oe_order_pub.g_line.item_type_code := p_item_type_code;
1109 oe_order_pub.g_line.price_list_id := g_price_list_id;
1110 oe_order_pub.g_line.sold_to_org_id := g_customer_id;
1111 oe_order_pub.g_line.price_request_code := p_price_request_code;
1112 oe_order_pub.g_line.order_quantity_uom := g_uom;
1113
1114
1115 IF g_item_identifier_type ='INT' then
1116
1117 SELECT concatenated_segments
1118 INTO oe_order_pub.g_line.ordered_item
1119 FROM mtl_system_items_kfv
1120 WHERE inventory_item_id = g_related_item_id
1121 AND organization_id = l_org_id;
1122
1123 End IF;
1124
1125 QP_Attr_Mapping_PUB.Build_Contexts(
1126 p_request_type_code => 'ONT',
1127 p_pricing_type =>'L',
1128 x_price_contexts_result_tbl => p_pricing_contexts_Tbl,
1129 x_qual_contexts_result_tbl => p_qualifier_Contexts_Tbl
1130 );
1131
1132 copy_attribs_to_Req(
1133 p_line_index => p_req_line_tbl_count
1134 ,px_Req_line_attr_tbl =>p_Req_line_attr_tbl
1135 ,px_Req_qual_tbl =>p_Req_qual_tbl
1136 ,p_pricing_contexts_tbl => p_pricing_contexts_Tbl
1137 ,p_qualifier_contexts_tbl => p_qualifier_Contexts_Tbl
1138 );
1139
1140 IF l_debug_level > 0 THEN
1141 oe_debug_pub.add( 'EXIT OE_RELATED_ITEMS_PVT.BUILD_CONTEXTS FOR LINE' , 1 ) ;
1142 END IF;
1143
1144 EXCEPTION
1145 when no_data_found then
1146 Null;
1147 when others then
1148 Raise QP_ATTR_MAPPING_ERROR;
1149
1150 END build_context_for_line;
1151
1152 PROCEDURE copy_attribs_to_Req(
1153 p_line_index number
1154 ,px_Req_line_attr_tbl in out nocopy QP_PREQ_GRP.LINE_ATTR_TBL_TYPE
1155 ,px_Req_qual_tbl in out nocopy QP_PREQ_GRP.QUAL_TBL_TYPE
1156 ,p_pricing_contexts_Tbl in out nocopy QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type
1157 ,p_qualifier_contexts_Tbl in out nocopy QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type
1158 ) IS
1159
1160 i pls_integer := 0;
1161 l_attr_index pls_integer := nvl(px_Req_line_attr_tbl.last,0);
1162 l_qual_index pls_integer := nvl(px_Req_qual_tbl.last,0);
1163
1164 --
1165 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1166 --
1167 BEGIN
1168
1169 IF l_debug_level > 0 THEN
1170 oe_debug_pub.add( 'ENTERING OE_RELATED_ITEMS_PVT.COPY_ATTRIBS_TO_REQ' , 1 ) ;
1171 END IF;
1172 i := p_pricing_contexts_Tbl.First;
1173 While i is not null loop
1174 l_attr_index := l_attr_index +1;
1175 px_Req_line_attr_tbl(l_attr_index).VALIDATED_FLAG := 'N';
1176 px_Req_line_attr_tbl(l_attr_index).line_index := p_line_index;
1177
1178 -- Product and Pricing Contexts go into pricing contexts...
1179 px_Req_line_attr_tbl(l_attr_index).PRICING_CONTEXT :=
1180 p_pricing_contexts_Tbl(i).context_name;
1181 px_Req_line_attr_tbl(l_attr_index).PRICING_ATTRIBUTE :=
1182 p_pricing_contexts_Tbl(i).Attribute_Name;
1183 px_Req_line_attr_tbl(l_attr_index).PRICING_ATTR_VALUE_FROM :=
1184 p_pricing_contexts_Tbl(i).attribute_value;
1185
1186 i := p_pricing_contexts_Tbl.Next(i);
1187 end loop;
1188
1189 -- Copy the qualifiers
1190 i := p_qualifier_contexts_Tbl.First;
1191 While i is not null loop
1192 l_qual_index := l_qual_index +1;
1193
1194 If p_qualifier_contexts_Tbl(i).context_name ='MODLIST' and
1195 p_qualifier_contexts_Tbl(i).Attribute_Name ='QUALIFIER_ATTRIBUTE4' then
1196
1197 If OE_Order_PUB.G_Line.agreement_id is not null and
1198 OE_Order_PUB.G_Line.agreement_id <> fnd_api.g_miss_num then
1199 px_Req_Qual_Tbl(l_qual_index).Validated_Flag := 'Y';
1200 Else
1201 px_Req_Qual_Tbl(l_qual_index).Validated_Flag := 'N';
1202 End If;
1203
1204 Else
1205 px_Req_Qual_Tbl(l_qual_index).Validated_Flag := 'N';
1206 End If;
1207
1208 px_Req_qual_tbl(l_qual_index).line_index := p_line_index;
1209
1210 px_Req_qual_tbl(l_qual_index).QUALIFIER_CONTEXT :=
1211 p_qualifier_contexts_Tbl(i).context_name;
1212 px_Req_qual_tbl(l_qual_index).QUALIFIER_ATTRIBUTE :=
1213 p_qualifier_contexts_Tbl(i).Attribute_Name;
1214 px_Req_qual_tbl(l_qual_index).QUALIFIER_ATTR_VALUE_FROM :=
1215 p_qualifier_contexts_Tbl(i).attribute_value;
1216
1217 i := p_qualifier_contexts_Tbl.Next(i);
1218 end loop;
1219
1220 IF l_debug_level > 0 THEN
1221 oe_debug_pub.add( 'EXITING OE_RELATED_ITEMS_PVT.COPY_ATTRIBS_TO_REQ' , 1 ) ;
1222 END IF;
1223
1224 END copy_attribs_to_Req;
1225
1226 PROCEDURE build_context_for_header(
1227 p_req_line_tbl_count in number,
1228 p_price_request_code in varchar2,
1229 p_item_type_code in varchar2,
1230 p_Req_line_attr_tbl in out nocopy QP_PREQ_GRP.LINE_ATTR_TBL_TYPE,
1231 p_Req_qual_tbl in out nocopy QP_PREQ_GRP.QUAL_TBL_TYPE
1232 )IS
1233
1234 qp_attr_mapping_error exception;
1235 l_org_id Number:= OE_Sys_Parameters.VALUE('MASTER_ORGANIZATION_ID');
1236 p_pricing_contexts_Tbl QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type;
1237 p_qualifier_contexts_Tbl QP_Attr_Mapping_PUB.Contexts_Result_Tbl_Type;
1238
1239 --
1240 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1241 --
1242 /*4163551*/
1243 l_header_rec OE_ORDER_PUB.header_rec_type;
1244 /*4163551*/
1245 BEGIN
1246
1247 IF l_debug_level > 0 THEN
1248 oe_debug_pub.add( 'BEFORE QP_ATTR_MAPPING_PUB.BUILD_CONTEXTS FOR HEADER' , 1 ) ;
1249 END IF;
1250
1251
1252 IF l_debug_level > 0 THEN
1253 oe_debug_pub.add( 'ORG_ID='||L_ORG_ID|| ' PRICING_DATE='||G_PRICING_DATE|| ' AGREEMENT_ID='||G_AGREEMENT_ID|| ' REQ DATE='||G_REQUEST_DATE|| ' SHIP_TO_ORG_ID='||G_SHIP_TO_ORG_ID|| ' INVOICE_TO_ORG_ID='||G_INVOICE_TO_ORG_ID ) ;
1254 END IF;
1255
1256 IF l_debug_level > 0 THEN
1257 oe_debug_pub.add( 'QTY='||G_QTY|| ' PRICE_LIST_ID='||G_PRICE_LIST_ID|| ' CUST_ID='||G_CUSTOMER_ID|| ' PRICE REQ CODE='||P_PRICE_REQUEST_CODE ) ;
1258 END IF;
1259 /*4163551*/
1260 IF l_debug_level > 0 THEN
1261 oe_debug_pub.add( ' 1 Related Items-Header_ID='||g_header_id);
1262 END IF;
1263 IF g_header_id is NOT NULL THEN
1264 OE_Header_Util.Query_Row
1265 ( p_header_id => g_header_id,
1266 x_header_rec =>l_header_rec
1267 );
1268 IF l_debug_level > 0 THEN
1269 oe_debug_pub.add( ' Queried -Related Items-Header_ID='||g_header_id);
1270 END IF;
1271 END IF;
1272
1273 IF l_header_rec.header_id IS NOT NULL AND
1274 l_header_rec.header_id<>FND_API.G_MISS_NUM THEN
1275 oe_order_pub.g_hdr:=l_header_rec;
1276 IF l_debug_level > 0 THEN
1277 oe_debug_pub.add( 'Header_ID='||oe_order_pub.g_hdr.header_id);
1278 oe_debug_pub.add( 'sdatti Related Items-Price List='||oe_order_pub.g_hdr.price_list_id);
1279 END IF;
1280 /*4163551*/
1281 ELSE
1282 oe_order_pub.g_hdr.agreement_id := g_agreement_id;
1283 oe_order_pub.g_hdr.invoice_to_org_id := g_invoice_to_org_id;
1284 oe_order_pub.g_hdr.ordered_date := g_request_date;
1285 oe_order_pub.g_hdr.header_id := g_header_id;
1286 oe_order_pub.g_hdr.org_id := l_org_id;
1287 oe_order_pub.g_hdr.price_list_id := g_price_list_id;
1288 oe_order_pub.g_hdr.price_request_code := p_price_request_code;
1289 oe_order_pub.g_hdr.pricing_date := g_pricing_date;
1290 oe_order_pub.g_hdr.request_date := g_request_date;
1291 oe_order_pub.g_hdr.ship_to_org_id := g_ship_to_org_id;
1292 oe_order_pub.g_hdr.sold_to_org_id := g_customer_id;
1293 oe_order_pub.g_hdr.order_type_id := g_order_type_id;
1294 oe_order_pub.g_hdr.ship_from_org_id := g_ship_from_org_id;
1295 END IF;
1296 --oe_order_pub.g_line.inventory_item_id := p_inventory_item_id;
1297 --oe_order_pub.g_line.ordered_quantity := p_ordered_quantity;
1298 --oe_order_pub.g_line.line_id := g_line_id;
1299 --oe_order_pub.g_line.item_type_code := p_item_type_code;
1300 --oe_order_pub.g_line.order_quantity_uom := p_uom;
1301
1302
1303 /*If p_item_identifier_type ='INT' then
1304
1305 SELECT concatenated_segments
1306 INTO oe_order_pub.g_line.ordered_item
1307 FROM mtl_system_items_kfv
1308 WHERE inventory_item_id = g_inventory_item_id
1309 AND organization_id = l_org_id;
1310
1311 End If;*/
1312
1313 QP_Attr_Mapping_PUB.Build_Contexts(
1314 p_request_type_code => 'ONT',
1315 p_pricing_type =>'H',
1316 x_price_contexts_result_tbl => p_pricing_contexts_Tbl,
1317 x_qual_contexts_result_tbl => p_qualifier_Contexts_Tbl
1318 );
1319
1320
1321 copy_attribs_to_Req(
1322 p_line_index => p_req_line_tbl_count
1323 ,px_Req_line_attr_tbl =>p_Req_line_attr_tbl
1324 ,px_Req_qual_tbl =>p_Req_qual_tbl
1325 ,p_pricing_contexts_tbl => p_pricing_contexts_Tbl
1326 ,p_qualifier_contexts_tbl => p_qualifier_Contexts_Tbl
1327 );
1328
1329 IF l_debug_level > 0 THEN
1330 oe_debug_pub.add( 'EXIT QP_ATTR_MAPPING_PUB.BUILD_CONTEXTS FOR HEADER' , 1 ) ;
1331 END IF;
1332
1333 EXCEPTION
1334 when no_data_found then
1335 Null;
1336 when others then
1337 Raise QP_ATTR_MAPPING_ERROR;
1338
1339 END build_context_for_header;
1340
1341 procedure Append_attributes(
1342 p_header_id number default null
1343 ,p_Line_id number default null
1344 ,p_line_index number
1345 ,px_Req_line_attr_tbl in out nocopy QP_PREQ_GRP.LINE_ATTR_TBL_TYPE
1346 ,px_Req_qual_tbl in out nocopy QP_PREQ_GRP.QUAL_TBL_TYPE
1347 ) is
1348
1349 i pls_integer;
1350
1351 --
1352 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1353 --
1354 BEGIN
1355
1356 IF l_debug_level > 0 THEN
1357 oe_debug_pub.add( 'ENTERING OE_RELATED_ITEMS_PVT.APPEND_ATTRIBUTES' , 1 ) ;
1358 END IF;
1359
1360 IF g_PRICING_ATTRIBUTE1 is not null then
1361 i := px_Req_line_attr_tbl.count+1;
1362 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1363 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1364 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1365 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE1';
1366 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE1;
1367 END IF;
1368
1369 IF g_PRICING_ATTRIBUTE2 is not null then
1370 i := px_Req_line_attr_tbl.count+1;
1371 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1372 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1373 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1374 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE2';
1375 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE2;
1376 END IF;
1377
1378 IF g_PRICING_ATTRIBUTE3 is not null then
1379 i := px_Req_line_attr_tbl.count+1;
1380 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1381 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1382 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1383 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE3';
1384 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE3;
1385 END IF;
1386
1387 IF g_PRICING_ATTRIBUTE4 is not null then
1388 i := px_Req_line_attr_tbl.count+1;
1389 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1390 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1391 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1392 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE4';
1393 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE4;
1394 END IF;
1395
1396 if g_PRICING_ATTRIBUTE5 is not null then
1397 i := px_Req_line_attr_tbl.count+1;
1398 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1399 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1400 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1401 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE5';
1402 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE5;
1403 end if;
1404
1405 if g_PRICING_ATTRIBUTE6 is not null then
1406 i := px_Req_line_attr_tbl.count+1;
1407 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1408 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1409 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1410 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE6';
1411 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE6;
1412 end if;
1413
1414 if g_PRICING_ATTRIBUTE7 is not null then
1415 i := px_Req_line_attr_tbl.count+1;
1416 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1417 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1418 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1419 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE7';
1420 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE7;
1421 end if;
1422
1423 if g_PRICING_ATTRIBUTE8 is not null then
1424 i := px_Req_line_attr_tbl.count+1;
1425 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1426 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1427 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1428 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE8';
1429 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE8;
1430 end if;
1431
1432 if g_PRICING_ATTRIBUTE9 is not null then
1433 i := px_Req_line_attr_tbl.count+1;
1434 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1435 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1436 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1437 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE9';
1438 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE9;
1439 end if;
1440
1441 if g_PRICING_ATTRIBUTE10 is not null then
1442 i := px_Req_line_attr_tbl.count+1;
1443 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1444 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1445 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1446 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE10';
1447 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE10;
1448 end if;
1449
1450 if g_PRICING_ATTRIBUTE11 is not null then
1451 i := px_Req_line_attr_tbl.count+1;
1452 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1453 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1454 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1455 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE11';
1456 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE11;
1457 end if;
1458
1459 if g_PRICING_ATTRIBUTE12 is not null then
1460 i := px_Req_line_attr_tbl.count+1;
1461 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1462 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1463 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1464 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE12';
1465 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE12;
1466 end if;
1467
1468 if g_PRICING_ATTRIBUTE13 is not null then
1469 i := px_Req_line_attr_tbl.count+1;
1470 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1471 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1472 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1473 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE13';
1474 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE13;
1475 end if;
1476
1477 if g_PRICING_ATTRIBUTE14 is not null then
1478 i := px_Req_line_attr_tbl.count+1;
1479 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1480 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1481 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1482 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE14';
1483 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE14;
1484 end if;
1485
1486 if g_PRICING_ATTRIBUTE15 is not null then
1487 i := px_Req_line_attr_tbl.count+1;
1488 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1489 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1490 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1491 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE15';
1492 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE15;
1493 end if;
1494
1495 if g_PRICING_ATTRIBUTE16 is not null then
1496 i := px_Req_line_attr_tbl.count+1;
1497 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1498 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1499 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1500 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE16';
1501 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE16;
1502 end if;
1503
1504 if g_PRICING_ATTRIBUTE17 is not null then
1505 i := px_Req_line_attr_tbl.count+1;
1506 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1507 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1508 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1509 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE17';
1510 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE17;
1511 end if;
1512
1513 if g_PRICING_ATTRIBUTE18 is not null then
1514 i := px_Req_line_attr_tbl.count+1;
1515 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1516 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1517 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1518 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE18';
1519 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE18;
1520 end if;
1521
1522 if g_PRICING_ATTRIBUTE19 is not null then
1523 i := px_Req_line_attr_tbl.count+1;
1524 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1525 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1526 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1527 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE19';
1528 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE19;
1529 end if;
1530
1531 if g_PRICING_ATTRIBUTE20 is not null then
1532 i := px_Req_line_attr_tbl.count+1;
1533 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1534 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1535 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1536 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE20';
1537 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE20;
1538 end if;
1539
1540 if g_PRICING_ATTRIBUTE21 is not null then
1541 i := px_Req_line_attr_tbl.count+1;
1542 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1543 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1544 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1545 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE21';
1546 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE21;
1547 end if;
1548
1549 if g_PRICING_ATTRIBUTE22 is not null then
1550 i := px_Req_line_attr_tbl.count+1;
1551 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1552 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1553 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1554 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE22';
1555 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE22;
1556 end if;
1557
1558 if g_PRICING_ATTRIBUTE23 is not null then
1559 i := px_Req_line_attr_tbl.count+1;
1560 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1561 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1562 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1563 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE23';
1564 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE23;
1565 end if;
1566
1567 if g_PRICING_ATTRIBUTE24 is not null then
1568 i := px_Req_line_attr_tbl.count+1;
1569 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1570 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1571 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1572 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE24';
1573 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE24;
1574 end if;
1575
1576 if g_PRICING_ATTRIBUTE25 is not null then
1577 i := px_Req_line_attr_tbl.count+1;
1578 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1579 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1580 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1581 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE25';
1582 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE25;
1583 end if;
1584
1585 if g_PRICING_ATTRIBUTE26 is not null then
1586 i := px_Req_line_attr_tbl.count+1;
1587 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1588 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1589 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1590 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE26';
1591 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE26;
1592 end if;
1593
1594 if g_PRICING_ATTRIBUTE27 is not null then
1595 i := px_Req_line_attr_tbl.count+1;
1596 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1597 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1598 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1599 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE27';
1600 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE27;
1601 end if;
1602
1603 if g_PRICING_ATTRIBUTE28 is not null then
1604 i := px_Req_line_attr_tbl.count+1;
1605 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1606 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1607 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1608 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE28';
1609 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE28;
1610 end if;
1611
1612 if g_PRICING_ATTRIBUTE29 is not null then
1613 i := px_Req_line_attr_tbl.count+1;
1614 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1615 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1616 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1617 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE29';
1618 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE29;
1619 end if;
1620
1621 if g_PRICING_ATTRIBUTE30 is not null then
1622 i := px_Req_line_attr_tbl.count+1;
1623 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1624 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1625 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1626 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE30';
1627 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE30;
1628 end if;
1629
1630 if g_PRICING_ATTRIBUTE31 is not null then
1631 i := px_Req_line_attr_tbl.count+1;
1632 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1633 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1634 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1635 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE31';
1636 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE31;
1637 end if;
1638
1639 if g_PRICING_ATTRIBUTE32 is not null then
1640 i := px_Req_line_attr_tbl.count+1;
1641 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1642 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1643 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1644 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE32';
1645 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE32;
1646 end if;
1647
1648 if g_PRICING_ATTRIBUTE33 is not null then
1649 i := px_Req_line_attr_tbl.count+1;
1650 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1651 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1652 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1653 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE33';
1654 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE33;
1655 end if;
1656
1657 if g_PRICING_ATTRIBUTE34 is not null then
1658 i := px_Req_line_attr_tbl.count+1;
1659 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1660 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1661 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1662 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE34';
1663 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE34;
1664 end if;
1665
1666 if g_PRICING_ATTRIBUTE35 is not null then
1667 i := px_Req_line_attr_tbl.count+1;
1668 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1669 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1670 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1671 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE35';
1672 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE35;
1673 end if;
1674
1675 if g_PRICING_ATTRIBUTE36 is not null then
1676 i := px_Req_line_attr_tbl.count+1;
1677 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1678 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1679 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1680 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE36';
1681 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE36;
1682 end if;
1683
1684 if g_PRICING_ATTRIBUTE37 is not null then
1685 i := px_Req_line_attr_tbl.count+1;
1686 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1687 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1688 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1689 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE37';
1690 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE37;
1691 end if;
1692
1693 if g_PRICING_ATTRIBUTE38 is not null then
1694 i := px_Req_line_attr_tbl.count+1;
1695 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1696 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1697 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1698 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE38';
1699 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE38;
1700 end if;
1701
1702 if g_PRICING_ATTRIBUTE39 is not null then
1703 i := px_Req_line_attr_tbl.count+1;
1704 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1705 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1706 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1707 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE39';
1708 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE39;
1709 end if;
1710
1711 if g_PRICING_ATTRIBUTE40 is not null then
1712 i := px_Req_line_attr_tbl.count+1;
1713 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1714 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1715 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1716 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE40';
1717 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE40;
1718 end if;
1719
1720 if g_PRICING_ATTRIBUTE41 is not null then
1721 i := px_Req_line_attr_tbl.count+1;
1722 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1723 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1724 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1725 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE41';
1726 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE41;
1727 end if;
1728
1729 if g_PRICING_ATTRIBUTE42 is not null then
1730 i := px_Req_line_attr_tbl.count+1;
1731 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1732 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1733 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1734 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE42';
1735 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE42;
1736 end if;
1737
1738 if g_PRICING_ATTRIBUTE43 is not null then
1739 i := px_Req_line_attr_tbl.count+1;
1740 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1741 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1742 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1743 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE43';
1744 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE43;
1745 end if;
1746
1747 if g_PRICING_ATTRIBUTE44 is not null then
1748 i := px_Req_line_attr_tbl.count+1;
1749 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1750 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1751 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1752 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE44';
1753 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE44;
1754 end if;
1755
1756 if g_PRICING_ATTRIBUTE45 is not null then
1757 i := px_Req_line_attr_tbl.count+1;
1758 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1759 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1760 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1761 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE45';
1762 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE45;
1763 end if;
1764
1765 if g_PRICING_ATTRIBUTE46 is not null then
1766 i := px_Req_line_attr_tbl.count+1;
1767 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1768 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1769 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1770 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE46';
1771 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE46;
1772 end if;
1773
1774 if g_PRICING_ATTRIBUTE47 is not null then
1775 i := px_Req_line_attr_tbl.count+1;
1776 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1777 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1778 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1779 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE47';
1780 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE47;
1781 end if;
1782
1783 if g_PRICING_ATTRIBUTE48 is not null then
1784 i := px_Req_line_attr_tbl.count+1;
1785 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1786 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1787 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1788 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE48';
1789 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE48;
1790 end if;
1791
1792 if g_PRICING_ATTRIBUTE49 is not null then
1793 i := px_Req_line_attr_tbl.count+1;
1794 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1795 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1796 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1797 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE49';
1798 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE49;
1799 end if;
1800
1801
1802 if g_PRICING_ATTRIBUTE50 is not null then
1803 i := px_Req_line_attr_tbl.count+1;
1804 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1805 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1806 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1807 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE20';
1808 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE20;
1809 end if;
1810
1811 if g_PRICING_ATTRIBUTE51 is not null then
1812 i := px_Req_line_attr_tbl.count+1;
1813 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1814 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1815 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1816 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE51';
1817 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE51;
1818 end if;
1819
1820 if g_PRICING_ATTRIBUTE52 is not null then
1821 i := px_Req_line_attr_tbl.count+1;
1822 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1823 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1824 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1825 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE52';
1826 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE52;
1827 end if;
1828
1829 if g_PRICING_ATTRIBUTE53 is not null then
1830 i := px_Req_line_attr_tbl.count+1;
1831 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1832 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1833 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1834 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE53';
1835 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE53;
1836 end if;
1837
1838 if g_PRICING_ATTRIBUTE54 is not null then
1839 i := px_Req_line_attr_tbl.count+1;
1840 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1841 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1842 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1843 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE54';
1844 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE54;
1845 end if;
1846
1847 if g_PRICING_ATTRIBUTE55 is not null then
1848 i := px_Req_line_attr_tbl.count+1;
1849 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1850 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1851 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1852 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE55';
1853 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE55;
1854 end if;
1855
1856 if g_PRICING_ATTRIBUTE56 is not null then
1857 i := px_Req_line_attr_tbl.count+1;
1858 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1859 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1860 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1861 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE56';
1862 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE56;
1863 end if;
1864
1865 if g_PRICING_ATTRIBUTE57 is not null then
1866 i := px_Req_line_attr_tbl.count+1;
1867 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1868 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1869 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1870 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE57';
1871 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE57;
1872 end if;
1873
1874 if g_PRICING_ATTRIBUTE58 is not null then
1875 i := px_Req_line_attr_tbl.count+1;
1876 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1877 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1878 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1879 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE58';
1880 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE58;
1881 end if;
1882
1883 if g_PRICING_ATTRIBUTE59 is not null then
1884 i := px_Req_line_attr_tbl.count+1;
1885 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1886 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1887 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1888 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE59';
1889 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE59;
1890 end if;
1891
1892
1893 if g_PRICING_ATTRIBUTE60 is not null then
1894 i := px_Req_line_attr_tbl.count+1;
1895 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1896 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1897 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1898 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE60';
1899 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE60;
1900 end if;
1901
1902 if g_PRICING_ATTRIBUTE61 is not null then
1903 i := px_Req_line_attr_tbl.count+1;
1904 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1905 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1906 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1907 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE61';
1908 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE61;
1909 end if;
1910
1911 if g_PRICING_ATTRIBUTE62 is not null then
1912 i := px_Req_line_attr_tbl.count+1;
1913 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1914 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1915 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1916 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE62';
1917 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE62;
1918 end if;
1919
1920 if g_PRICING_ATTRIBUTE63 is not null then
1921 i := px_Req_line_attr_tbl.count+1;
1922 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1923 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1924 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1925 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE63';
1926 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE63;
1927 end if;
1928
1929 if g_PRICING_ATTRIBUTE64 is not null then
1930 i := px_Req_line_attr_tbl.count+1;
1931 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1932 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1933 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1934 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE64';
1935 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE64;
1936 end if;
1937
1938 if g_PRICING_ATTRIBUTE65 is not null then
1939 i := px_Req_line_attr_tbl.count+1;
1940 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1941 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1942 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1943 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE65';
1944 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE65;
1945 end if;
1946
1947 if g_PRICING_ATTRIBUTE66 is not null then
1948 i := px_Req_line_attr_tbl.count+1;
1949 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1950 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1951 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1952 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE66';
1953 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE66;
1954 end if;
1955
1956 if g_PRICING_ATTRIBUTE67 is not null then
1957 i := px_Req_line_attr_tbl.count+1;
1958 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1959 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1960 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1961 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE67';
1962 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE67;
1963 end if;
1964
1965 if g_PRICING_ATTRIBUTE68 is not null then
1966 i := px_Req_line_attr_tbl.count+1;
1967 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1968 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1969 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1970 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE68';
1971 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE68;
1972 end if;
1973
1974 if g_PRICING_ATTRIBUTE69 is not null then
1975 i := px_Req_line_attr_tbl.count+1;
1976 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1977 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1978 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1979 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE69';
1980 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE69;
1981 end if;
1982
1983
1984 if g_PRICING_ATTRIBUTE70 is not null then
1985 i := px_Req_line_attr_tbl.count+1;
1986 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1987 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1988 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1989 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE70';
1990 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE70;
1991 end if;
1992
1993 if g_PRICING_ATTRIBUTE71 is not null then
1994 i := px_Req_line_attr_tbl.count+1;
1995 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
1996 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
1997 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
1998 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE71';
1999 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE71;
2000 end if;
2001
2002 if g_PRICING_ATTRIBUTE72 is not null then
2003 i := px_Req_line_attr_tbl.count+1;
2004 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2005 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2006 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2007 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE72';
2008 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE72;
2009 end if;
2010
2011 if g_PRICING_ATTRIBUTE73 is not null then
2012 i := px_Req_line_attr_tbl.count+1;
2013 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2014 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2015 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2016 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE73';
2017 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE73;
2018 end if;
2019
2020 if g_PRICING_ATTRIBUTE74 is not null then
2021 i := px_Req_line_attr_tbl.count+1;
2022 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2023 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2024 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2025 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE74';
2026 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE74;
2027 end if;
2028
2029 if g_PRICING_ATTRIBUTE75 is not null then
2030 i := px_Req_line_attr_tbl.count+1;
2031 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2032 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2033 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2034 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE75';
2035 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE75;
2036 end if;
2037
2038 if g_PRICING_ATTRIBUTE76 is not null then
2039 i := px_Req_line_attr_tbl.count+1;
2040 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2041 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2042 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2043 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE76';
2044 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE76;
2045 end if;
2046
2047 if g_PRICING_ATTRIBUTE77 is not null then
2048 i := px_Req_line_attr_tbl.count+1;
2049 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2050 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2051 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2052 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE77';
2053 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE77;
2054 end if;
2055
2056 if g_PRICING_ATTRIBUTE78 is not null then
2057 i := px_Req_line_attr_tbl.count+1;
2058 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2059 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2060 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2061 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE78';
2062 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE27;
2063 end if;
2064
2065 if g_PRICING_ATTRIBUTE79 is not null then
2066 i := px_Req_line_attr_tbl.count+1;
2067 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2068 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2069 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2070 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE79';
2071 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE27;
2072 end if;
2073
2074
2075 if g_PRICING_ATTRIBUTE80 is not null then
2076 i := px_Req_line_attr_tbl.count+1;
2077 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2078 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2079 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2080 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE80';
2081 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE80;
2082 end if;
2083
2084 if g_PRICING_ATTRIBUTE81 is not null then
2085 i := px_Req_line_attr_tbl.count+1;
2086 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2087 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2088 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2089 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE81';
2090 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE81;
2091 end if;
2092
2093 if g_PRICING_ATTRIBUTE82 is not null then
2094 i := px_Req_line_attr_tbl.count+1;
2095 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2096 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2097 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2098 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE82';
2099 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE82;
2100 end if;
2101
2102 if g_PRICING_ATTRIBUTE83 is not null then
2103 i := px_Req_line_attr_tbl.count+1;
2104 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2105 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2106 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2107 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE83';
2108 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE83;
2109 end if;
2110
2111 if g_PRICING_ATTRIBUTE84 is not null then
2112 i := px_Req_line_attr_tbl.count+1;
2113 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2114 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2115 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2116 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE84';
2117 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE84;
2118 end if;
2119
2120 if g_PRICING_ATTRIBUTE85 is not null then
2121 i := px_Req_line_attr_tbl.count+1;
2122 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2123 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2124 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2125 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE85';
2126 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE85;
2127 end if;
2128
2129 if g_PRICING_ATTRIBUTE86 is not null then
2130 i := px_Req_line_attr_tbl.count+1;
2131 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2132 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2133 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2134 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE86';
2135 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE86;
2136 end if;
2137
2138 if g_PRICING_ATTRIBUTE87 is not null then
2139 i := px_Req_line_attr_tbl.count+1;
2140 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2141 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2142 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2143 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE87';
2144 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE87;
2145 end if;
2146
2147 if g_PRICING_ATTRIBUTE88 is not null then
2148 i := px_Req_line_attr_tbl.count+1;
2149 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2150 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2151 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2152 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE88';
2153 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE88;
2154 end if;
2155
2156 if g_PRICING_ATTRIBUTE89 is not null then
2157 i := px_Req_line_attr_tbl.count+1;
2158 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2159 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2160 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2161 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE89';
2162 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE89;
2163 end if;
2164
2165
2166 if g_PRICING_ATTRIBUTE90 is not null then
2167 i := px_Req_line_attr_tbl.count+1;
2168 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2169 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2170 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2171 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE90';
2172 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE90;
2173 end if;
2174
2175 if g_PRICING_ATTRIBUTE91 is not null then
2176 i := px_Req_line_attr_tbl.count+1;
2177 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2178 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2179 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2180 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE91';
2181 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE91;
2182 end if;
2183
2184 if g_PRICING_ATTRIBUTE92 is not null then
2185 i := px_Req_line_attr_tbl.count+1;
2186 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2187 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2188 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2189 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE92';
2190 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE92;
2191 end if;
2192
2193 if g_PRICING_ATTRIBUTE93 is not null then
2194 i := px_Req_line_attr_tbl.count+1;
2195 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2196 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2197 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2198 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE93';
2199 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From :=g_PRICING_ATTRIBUTE93;
2200 end if;
2201
2202 if g_PRICING_ATTRIBUTE94 is not null then
2203 i := px_Req_line_attr_tbl.count+1;
2204 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2205 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2206 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2207 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE94';
2208 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE94;
2209 end if;
2210
2211 if g_PRICING_ATTRIBUTE95 is not null then
2212 i := px_Req_line_attr_tbl.count+1;
2213 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2214 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2215 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2216 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE95';
2217 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE95;
2218 end if;
2219
2220 if g_PRICING_ATTRIBUTE96 is not null then
2221 i := px_Req_line_attr_tbl.count+1;
2222 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2223 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2224 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2225 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE96';
2226 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE96;
2227 end if;
2228
2229 if g_PRICING_ATTRIBUTE97 is not null then
2230 i := px_Req_line_attr_tbl.count+1;
2231 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2232 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2233 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2234 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE97';
2235 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE97;
2236 end if;
2237
2238 if g_PRICING_ATTRIBUTE98 is not null then
2239 i := px_Req_line_attr_tbl.count+1;
2240 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2241 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2242 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2243 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE98';
2244 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE98;
2245 end if;
2246
2247 if g_PRICING_ATTRIBUTE99 is not null then
2248 i := px_Req_line_attr_tbl.count+1;
2249 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2250 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2251 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2252 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE99';
2253 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From := g_PRICING_ATTRIBUTE99;
2254 end if;
2255
2256 if g_PRICING_ATTRIBUTE100 is not null then
2257 i := px_Req_line_attr_tbl.count+1;
2258 px_Req_line_attr_tbl(i).Line_Index := p_Line_Index;
2259 px_Req_line_attr_tbl(i).Validated_Flag := 'N';
2260 px_Req_line_attr_tbl(i).pricing_context := g_pricing_context;
2261 px_Req_line_attr_tbl(i).Pricing_Attribute := 'PRICING_ATTRIBUTE100';
2262 px_Req_line_attr_tbl(i).Pricing_Attr_Value_From:=g_PRICING_ATTRIBUTE100;
2263 end if;
2264
2265 IF l_debug_level > 0 THEN
2266 oe_debug_pub.add( 'EXITING OE_RELATED_ITEMS_PVT.APPEND_ATTRIBUTES' , 1 ) ;
2267 END IF;
2268
2269 END Append_attributes;
2270
2271 PROCEDURE price_item(
2272 out_req_line_tbl in out NOCOPY /* file.sql.39 change */ QP_PREQ_GRP.LINE_TBL_TYPE,
2273 out_Req_line_attr_tbl in out nocopy QP_PREQ_GRP.LINE_ATTR_TBL_TYPE,
2274 out_Req_LINE_DETAIL_attr_tbl in out nocopy QP_PREQ_GRP.LINE_DETAIL_ATTR_TBL_TYPE,
2275 out_Req_LINE_DETAIL_tbl in out nocopy QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
2276 out_Req_related_lines_tbl in out nocopy QP_PREQ_GRP.RELATED_LINES_TBL_TYPE,
2277 out_Req_qual_tbl in out nocopy QP_PREQ_GRP.QUAL_TBL_TYPE,
2278 out_Req_LINE_DETAIL_qual_tbl in out nocopy QP_PREQ_GRP.LINE_DETAIL_QUAL_TBL_TYPE,
2279 out_child_detail_type out NOCOPY /* file.sql.39 change */ varchar2,
2280 in_related_item_id in number,
2281 in_qty in number,
2282 in_uom in varchar2,
2283 in_request_date in date,
2284 in_customer_id in number,
2285 in_item_identifier_type in varchar2,
2286 in_agreement_id in number,
2287 in_price_list_id in number,
2288 in_ship_to_org_id in number,
2289 in_invoice_to_org_id in number,
2290 in_ship_from_org_id in number,
2291 in_pricing_date in date,
2292 in_order_type_id in number,
2293 in_currency in varchar2,
2294 in_pricing_context in varchar2,
2295 in_pricing_attribute1 in varchar2,
2296 in_pricing_attribute2 in varchar2,
2297 in_pricing_attribute3 in varchar2,
2298 in_pricing_attribute4 in varchar2,
2299 in_pricing_attribute5 in varchar2,
2300 in_pricing_attribute6 in varchar2,
2301 in_pricing_attribute7 in varchar2,
2302 in_pricing_attribute8 in varchar2,
2303 in_pricing_attribute9 in varchar2,
2304 in_pricing_attribute10 in varchar2,
2305 in_pricing_attribute11 in varchar2,
2306 in_pricing_attribute12 in varchar2,
2307 in_pricing_attribute13 in varchar2,
2308 in_pricing_attribute14 in varchar2,
2309 in_pricing_attribute15 in varchar2,
2310 in_pricing_attribute16 in varchar2,
2311 in_pricing_attribute17 in varchar2,
2312 in_pricing_attribute18 in varchar2,
2313 in_pricing_attribute19 in varchar2,
2314 in_pricing_attribute20 in varchar2,
2315 in_pricing_attribute21 in varchar2,
2316 in_pricing_attribute22 in varchar2,
2317 in_pricing_attribute23 in varchar2,
2318 in_pricing_attribute24 in varchar2,
2319 in_pricing_attribute25 in varchar2,
2320 in_pricing_attribute26 in varchar2,
2321 in_pricing_attribute27 in varchar2,
2322 in_pricing_attribute28 in varchar2,
2323 in_pricing_attribute29 in varchar2,
2324 in_pricing_attribute30 in varchar2,
2325 in_pricing_attribute31 in varchar2,
2326 in_pricing_attribute32 in varchar2,
2327 in_pricing_attribute33 in varchar2,
2328 in_pricing_attribute34 in varchar2,
2329 in_pricing_attribute35 in varchar2,
2330 in_pricing_attribute36 in varchar2,
2331 in_pricing_attribute37 in varchar2,
2332 in_pricing_attribute38 in varchar2,
2333 in_pricing_attribute39 in varchar2,
2334 in_pricing_attribute40 in varchar2,
2335 in_pricing_attribute41 in varchar2,
2336 in_pricing_attribute42 in varchar2,
2337 in_pricing_attribute43 in varchar2,
2338 in_pricing_attribute44 in varchar2,
2339 in_pricing_attribute45 in varchar2,
2340 in_pricing_attribute46 in varchar2,
2341 in_pricing_attribute47 in varchar2,
2342 in_pricing_attribute48 in varchar2,
2343 in_pricing_attribute49 in varchar2,
2344 in_pricing_attribute50 in varchar2,
2345 in_pricing_attribute51 in varchar2,
2346 in_pricing_attribute52 in varchar2,
2347 in_pricing_attribute53 in varchar2,
2348 in_pricing_attribute54 in varchar2,
2349 in_pricing_attribute55 in varchar2,
2350 in_pricing_attribute56 in varchar2,
2351 in_pricing_attribute57 in varchar2,
2352 in_pricing_attribute58 in varchar2,
2353 in_pricing_attribute59 in varchar2,
2354 in_pricing_attribute60 in varchar2,
2355 in_pricing_attribute61 in varchar2,
2356 in_pricing_attribute62 in varchar2,
2357 in_pricing_attribute63 in varchar2,
2358 in_pricing_attribute64 in varchar2,
2359 in_pricing_attribute65 in varchar2,
2360 in_pricing_attribute66 in varchar2,
2361 in_pricing_attribute67 in varchar2,
2362 in_pricing_attribute68 in varchar2,
2363 in_pricing_attribute69 in varchar2,
2364 in_pricing_attribute70 in varchar2,
2365 in_pricing_attribute71 in varchar2,
2366 in_pricing_attribute72 in varchar2,
2367 in_pricing_attribute73 in varchar2,
2368 in_pricing_attribute74 in varchar2,
2369 in_pricing_attribute75 in varchar2,
2370 in_pricing_attribute76 in varchar2,
2371 in_pricing_attribute77 in varchar2,
2372 in_pricing_attribute78 in varchar2,
2373 in_pricing_attribute79 in varchar2,
2374 in_pricing_attribute80 in varchar2,
2375 in_pricing_attribute81 in varchar2,
2376 in_pricing_attribute82 in varchar2,
2377 in_pricing_attribute83 in varchar2,
2378 in_pricing_attribute84 in varchar2,
2379 in_pricing_attribute85 in varchar2,
2380 in_pricing_attribute86 in varchar2,
2381 in_pricing_attribute87 in varchar2,
2382 in_pricing_attribute88 in varchar2,
2383 in_pricing_attribute89 in varchar2,
2384 in_pricing_attribute90 in varchar2,
2385 in_pricing_attribute91 in varchar2,
2386 in_pricing_attribute92 in varchar2,
2387 in_pricing_attribute93 in varchar2,
2388 in_pricing_attribute94 in varchar2,
2389 in_pricing_attribute95 in varchar2,
2390 in_pricing_attribute96 in varchar2,
2391 in_pricing_attribute97 in varchar2,
2392 in_pricing_attribute98 in varchar2,
2393 in_pricing_attribute99 in varchar2,
2394 in_pricing_attribute100 in varchar2,
2395 in_header_id in NUMBER
2396 ) IS
2397
2398 l_return_status varchar2(10);
2399 l_return_status_Text varchar2(240) ;
2400 l_Control_Rec QP_PREQ_GRP.CONTROL_RECORD_TYPE;
2401 l_req_line_tbl QP_PREQ_GRP.LINE_TBL_TYPE;
2402 l_Req_qual_tbl QP_PREQ_GRP.QUAL_TBL_TYPE;
2403 l_Req_line_attr_tbl QP_PREQ_GRP.LINE_ATTR_TBL_TYPE;
2404 l_Req_LINE_DETAIL_tbl QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE;
2405 l_Req_LINE_DETAIL_qual_tbl QP_PREQ_GRP.LINE_DETAIL_QUAL_TBL_TYPE;
2406 l_Req_LINE_DETAIL_attr_tbl QP_PREQ_GRP.LINE_DETAIL_ATTR_TBL_TYPE;
2407 l_Req_related_lines_tbl QP_PREQ_GRP.RELATED_LINES_TBL_TYPE;
2408
2409 --
2410 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2411 --
2412 BEGIN
2413 /*4163551*/
2414 oe_order_pub.g_hdr:=null;
2415 oe_order_pub.g_line:=null;
2416 /*4163551*/
2417
2418 --copy_fields_to_globals;
2419 g_related_item_id := in_related_item_id;
2420 g_qty := in_qty;
2421 g_uom := in_uom;
2422 g_request_date := in_request_date;
2423 g_customer_id := in_customer_id;
2424 g_item_identifier_type := in_item_identifier_type;
2425 g_agreement_id := in_agreement_id;
2426 g_price_list_id := in_price_list_id;
2427 g_ship_to_org_id := in_ship_to_org_id;
2428 g_invoice_to_org_id := in_invoice_to_org_id;
2429 g_ship_from_org_id := in_ship_from_org_id;
2430 g_pricing_date := in_pricing_date;
2431 g_order_type_id := in_order_type_id;
2432 g_currency := in_currency;
2433 g_pricing_context := in_pricing_context;
2434 g_pricing_attribute1 := in_pricing_attribute1;
2435 g_pricing_attribute2 := in_pricing_attribute2;
2436 g_pricing_attribute3 := in_pricing_attribute3;
2437 g_pricing_attribute4 := in_pricing_attribute4;
2438 g_pricing_attribute5 := in_pricing_attribute5;
2439 g_pricing_attribute6 := in_pricing_attribute6;
2440 g_pricing_attribute7 := in_pricing_attribute7;
2441 g_pricing_attribute8 := in_pricing_attribute8;
2442 g_pricing_attribute9 := in_pricing_attribute9;
2443 g_pricing_attribute10 := in_pricing_attribute10;
2444 g_pricing_attribute11 := in_pricing_attribute11;
2445 g_pricing_attribute12 := in_pricing_attribute12;
2446 g_pricing_attribute13 := in_pricing_attribute13;
2447 g_pricing_attribute14 := in_pricing_attribute14;
2448 g_pricing_attribute15 := in_pricing_attribute15;
2449 g_pricing_attribute16 := in_pricing_attribute16;
2450 g_pricing_attribute17 := in_pricing_attribute17;
2451 g_pricing_attribute18 := in_pricing_attribute18;
2452 g_pricing_attribute19 := in_pricing_attribute19;
2453 g_pricing_attribute20 := in_pricing_attribute20;
2454 g_pricing_attribute21 := in_pricing_attribute21;
2455 g_pricing_attribute22 := in_pricing_attribute22;
2456 g_pricing_attribute23 := in_pricing_attribute23;
2457 g_pricing_attribute24 := in_pricing_attribute24;
2458 g_pricing_attribute25 := in_pricing_attribute25;
2459 g_pricing_attribute26 := in_pricing_attribute26;
2460 g_pricing_attribute27 := in_pricing_attribute27;
2461 g_pricing_attribute28 := in_pricing_attribute28;
2462 g_pricing_attribute29 := in_pricing_attribute29;
2463 g_pricing_attribute30 := in_pricing_attribute30;
2464 g_pricing_attribute31 := in_pricing_attribute31;
2465 g_pricing_attribute32 := in_pricing_attribute32;
2466 g_pricing_attribute33 := in_pricing_attribute33;
2467 g_pricing_attribute34 := in_pricing_attribute34;
2468 g_pricing_attribute35 := in_pricing_attribute35;
2469 g_pricing_attribute36 := in_pricing_attribute36;
2470 g_pricing_attribute37 := in_pricing_attribute37;
2471 g_pricing_attribute38 := in_pricing_attribute38;
2472 g_pricing_attribute39 := in_pricing_attribute39;
2473 g_pricing_attribute40 := in_pricing_attribute40;
2474 g_pricing_attribute41 := in_pricing_attribute41;
2475 g_pricing_attribute42 := in_pricing_attribute42;
2476 g_pricing_attribute43 := in_pricing_attribute43;
2477 g_pricing_attribute44 := in_pricing_attribute44;
2478 g_pricing_attribute45 := in_pricing_attribute45;
2479 g_pricing_attribute46 := in_pricing_attribute46;
2480 g_pricing_attribute47 := in_pricing_attribute47;
2481 g_pricing_attribute48 := in_pricing_attribute48;
2482 g_pricing_attribute49 := in_pricing_attribute49;
2483 g_pricing_attribute50 := in_pricing_attribute50;
2484 g_pricing_attribute51 := in_pricing_attribute51;
2485 g_pricing_attribute52 := in_pricing_attribute52;
2486 g_pricing_attribute53 := in_pricing_attribute53;
2487 g_pricing_attribute54 := in_pricing_attribute54;
2488 g_pricing_attribute55 := in_pricing_attribute55;
2489 g_pricing_attribute56 := in_pricing_attribute56;
2490 g_pricing_attribute57 := in_pricing_attribute57;
2491 g_pricing_attribute58 := in_pricing_attribute58;
2492 g_pricing_attribute59 := in_pricing_attribute59;
2493 g_pricing_attribute60 := in_pricing_attribute60;
2494 g_pricing_attribute61 := in_pricing_attribute61;
2495 g_pricing_attribute62 := in_pricing_attribute62;
2496 g_pricing_attribute63 := in_pricing_attribute63;
2497 g_pricing_attribute64 := in_pricing_attribute64;
2498 g_pricing_attribute65 := in_pricing_attribute65;
2499 g_pricing_attribute66 := in_pricing_attribute66;
2500 g_pricing_attribute67 := in_pricing_attribute67;
2501 g_pricing_attribute68 := in_pricing_attribute68;
2502 g_pricing_attribute69 := in_pricing_attribute69;
2503 g_pricing_attribute70 := in_pricing_attribute70;
2504 g_pricing_attribute71 := in_pricing_attribute71;
2505 g_pricing_attribute72 := in_pricing_attribute72;
2506 g_pricing_attribute73 := in_pricing_attribute73;
2507 g_pricing_attribute74 := in_pricing_attribute74;
2508 g_pricing_attribute75 := in_pricing_attribute75;
2509 g_pricing_attribute76 := in_pricing_attribute76;
2510 g_pricing_attribute77 := in_pricing_attribute77;
2511 g_pricing_attribute78 := in_pricing_attribute78;
2512 g_pricing_attribute79 := in_pricing_attribute79;
2513 g_pricing_attribute80 := in_pricing_attribute80;
2514 g_pricing_attribute81 := in_pricing_attribute81;
2515 g_pricing_attribute82 := in_pricing_attribute82;
2516 g_pricing_attribute83 := in_pricing_attribute83;
2517 g_pricing_attribute84 := in_pricing_attribute84;
2518 g_pricing_attribute85 := in_pricing_attribute85;
2519 g_pricing_attribute86 := in_pricing_attribute86;
2520 g_pricing_attribute87 := in_pricing_attribute87;
2521 g_pricing_attribute88 := in_pricing_attribute88;
2522 g_pricing_attribute89 := in_pricing_attribute89;
2523 g_pricing_attribute90 := in_pricing_attribute90;
2524 g_pricing_attribute91 := in_pricing_attribute91;
2525 g_pricing_attribute92 := in_pricing_attribute92;
2526 g_pricing_attribute93 := in_pricing_attribute93;
2527 g_pricing_attribute94 := in_pricing_attribute94;
2528 g_pricing_attribute95 := in_pricing_attribute95;
2529 g_pricing_attribute96 := in_pricing_attribute96;
2530 g_pricing_attribute97 := in_pricing_attribute97;
2531 g_pricing_attribute98 := in_pricing_attribute98;
2532 g_pricing_attribute99 := in_pricing_attribute99;
2533 g_pricing_attribute100 := in_pricing_attribute100;
2534 /*4163551*/
2535 g_header_id := in_header_id;
2536 /*4163551*/
2537
2538 out_child_detail_type := qp_preq_grp.G_CHILD_DETAIL_TYPE;
2539
2540 /*4163551*/
2541 set_pricing_control_record (
2542 l_Control_Rec => l_control_rec
2543 ,in_pricing_event => 'LINE'
2544 );
2545 copy_Header_to_request(
2546 p_request_type_code => 'ONT'
2547 ,p_calculate_price_flag => 'Y'
2548 ,px_req_line_tbl => l_req_line_tbl
2549 );
2550
2551 build_context_for_header(
2552 p_req_line_tbl_count =>l_req_line_tbl.count,
2553 p_price_request_code => null,
2554 p_item_type_code => null,
2555 p_Req_line_attr_tbl =>l_req_line_attr_tbl,
2556 p_Req_qual_tbl =>l_req_qual_tbl
2557 );
2558
2559 Append_attributes(
2560 p_header_id => g_header_id
2561 ,p_Line_id => g_line_id
2562 ,p_line_index =>l_req_line_tbl.count
2563 ,px_Req_line_attr_tbl => l_req_line_attr_tbl
2564 ,px_Req_qual_tbl => l_req_qual_tbl
2565 );
2566
2567 copy_Line_to_request(
2568 px_req_line_tbl => l_req_line_tbl
2569 ,p_pricing_event => 'LINE'
2570 ,p_Request_Type_Code => 'ONT'
2571 ,p_honor_price_flag => 'Y'
2572 );
2573
2574 build_context_for_line(
2575 p_req_line_tbl_count =>l_req_line_tbl.count,
2576 p_price_request_code => null,
2577 p_item_type_code => null,
2578 p_Req_line_attr_tbl =>l_req_line_attr_tbl,
2579 p_Req_qual_tbl =>l_req_qual_tbl
2580 );
2581
2582 Append_attributes(
2583 p_header_id => g_header_id
2584 ,p_Line_id => g_line_id
2585 ,p_line_index =>l_req_line_tbl.count
2586 ,px_Req_line_attr_tbl => l_req_line_attr_tbl
2587 ,px_Req_qual_tbl => l_req_qual_tbl
2588 );
2589
2590 out_req_line_tbl(1).status_Code := null;
2591 out_req_line_tbl(1).status_text := null;
2592
2593 IF l_debug_level > 0 THEN
2594 print_time('Calling PE');
2595 END IF;
2596 QP_PREQ_GRP.PRICE_REQUEST
2597 (p_control_rec =>l_control_rec
2598 ,p_line_tbl =>l_Req_line_tbl
2599 ,p_qual_tbl =>l_Req_qual_tbl
2600 ,p_line_attr_tbl =>l_Req_line_attr_tbl
2601 ,p_line_detail_tbl =>l_req_line_detail_tbl
2602 ,p_line_detail_qual_tbl =>l_req_line_detail_qual_tbl
2603 ,p_line_detail_attr_tbl =>l_req_line_detail_attr_tbl
2604 ,p_related_lines_tbl =>l_req_related_lines_tbl
2605 ,x_line_tbl =>out_req_line_tbl
2606 ,x_line_qual =>out_Req_qual_tbl
2607 ,x_line_attr_tbl =>out_Req_line_attr_tbl
2608 ,x_line_detail_tbl =>out_req_line_detail_tbl
2609 ,x_line_detail_qual_tbl =>out_req_line_detail_qual_tbl
2610 ,x_line_detail_attr_tbl =>out_req_line_detail_attr_tbl
2611 ,x_related_lines_tbl =>out_req_related_lines_tbl
2612 ,x_return_status =>l_return_status
2613 ,x_return_status_Text =>l_return_status_Text
2614 );
2615
2616 IF l_debug_level > 0 THEN
2617 print_time('After Calling PE');
2618 END IF;
2619 IF l_debug_level > 0 THEN
2620 oe_debug_pub.add( '******AFTER CALLING PRICING ENGINE' ) ;
2621 oe_debug_pub.add( 'MAIN STATUS ='||L_RETURN_STATUS ) ;
2622 oe_debug_pub.add( 'MAIN TEXT ='||L_RETURN_STATUS_TEXT ) ;
2623 oe_debug_pub.add( 'COUNT LINE TABLE='||OUT_REQ_LINE_TBL.COUNT ) ;
2624 END IF;
2625 if out_req_line_tbl.count > 0 then
2626 for i in out_req_line_tbl.first..out_req_line_tbl.last
2627 loop
2628 IF l_debug_level > 0 THEN
2629 oe_debug_pub.add( '*******************************' ) ;
2630 oe_debug_pub.add( 'REQUEST_TYPE_CODE ='|| OUT_REQ_LINE_TBL ( I ) .REQUEST_TYPE_CODE ) ;
2631 oe_debug_pub.add( 'PRICING_EVENT ='||OUT_REQ_LINE_TBL ( I ) .PRICING_EVENT ) ;
2632 oe_debug_pub.add( 'HEADER_ID ='||OUT_REQ_LINE_TBL ( I ) .HEADER_ID ) ;
2633 oe_debug_pub.add( 'LINE_TYPE_CODE='||OUT_REQ_LINE_TBL ( I ) .LINE_TYPE_CODE ) ;
2634 oe_debug_pub.add( 'LINE_QUANTITY ='||OUT_REQ_LINE_TBL ( I ) .LINE_QUANTITY ) ;
2635 oe_debug_pub.add( 'LINE_UOM_CODE ='||OUT_REQ_LINE_TBL ( I ) .LINE_UOM_CODE ) ;
2636 oe_debug_pub.add( 'UOM_QUANTITY ='||OUT_REQ_LINE_TBL ( I ) .UOM_QUANTITY ) ;
2637 oe_debug_pub.add( 'PRI_QUANTITY='||OUT_REQ_LINE_TBL ( I ) .PRICED_QUANTITY ) ;
2638 oe_debug_pub.add( 'PR_UOM_CODE ='||OUT_REQ_LINE_TBL ( I ) .PRICED_UOM_CODE ) ;
2639 oe_debug_pub.add( 'CURRENCY_CODE ='||OUT_REQ_LINE_TBL ( I ) .CURRENCY_CODE ) ;
2640 oe_debug_pub.add( 'UNIT_PRICE ='||OUT_REQ_LINE_TBL ( I ) .UNIT_PRICE ) ;
2641 oe_debug_pub.add( 'PERCENT_PRICE ='||OUT_REQ_LINE_TBL ( I ) .PERCENT_PRICE ) ;
2642 oe_debug_pub.add( 'ADJ_UNIT_PRICE='|| OUT_REQ_LINE_TBL ( I ) .ADJUSTED_UNIT_PRICE ) ;
2643 oe_debug_pub.add( 'UPDATED_ADJUSTED_UNIT_PRICE ='|| OUT_REQ_LINE_TBL ( I ) .UPDATED_ADJUSTED_UNIT_PRICE ) ;
2644 oe_debug_pub.add( 'ROUNDING_FAC='||OUT_REQ_LINE_TBL ( I ) .ROUNDING_FACTOR ) ;
2645 oe_debug_pub.add( 'PRICE_FLAG ='||OUT_REQ_LINE_TBL ( I ) .PRICE_FLAG ) ;
2646 oe_debug_pub.add( 'PRICE_REQUEST_CODE ='|| OUT_REQ_LINE_TBL ( I ) .PRICE_REQUEST_CODE ) ;
2647 oe_debug_pub.add( 'HOLD_CODE ='||OUT_REQ_LINE_TBL ( I ) .HOLD_CODE ) ;
2648 oe_debug_pub.add( 'HOLD_TEXT ='||OUT_REQ_LINE_TBL ( I ) .HOLD_TEXT ) ;
2649 oe_debug_pub.add( 'STATUS_CODE ='||OUT_REQ_LINE_TBL ( I ) .STATUS_CODE ) ;
2650 oe_debug_pub.add( 'STATUS_TEXT ='||OUT_REQ_LINE_TBL ( I ) .STATUS_TEXT ) ;
2651 oe_debug_pub.add( 'USAGE_PRICING_TYPE ='|| OUT_REQ_LINE_TBL ( I ) .USAGE_PRICING_TYPE ) ;
2652 oe_debug_pub.add( 'LINE_CATEGORY ='||OUT_REQ_LINE_TBL ( I ) .LINE_CATEGORY ) ;
2653 oe_debug_pub.add( 'PRICING EFFECTIVE DATE='|| OUT_REQ_LINE_TBL ( I ) .PRICING_EFFECTIVE_DATE ) ;
2654 oe_debug_pub.add( 'ACTIVE_DATE_FIRST ='|| OUT_REQ_LINE_TBL ( I ) .ACTIVE_DATE_FIRST ) ;
2655 oe_debug_pub.add( 'ACTIVE_DATE_FIRST_TYPE ='|| OUT_REQ_LINE_TBL ( I ) .ACTIVE_DATE_FIRST_TYPE ) ;
2656 oe_debug_pub.add( 'ACTIVE_DATE_SECOND ='|| OUT_REQ_LINE_TBL ( I ) .ACTIVE_DATE_SECOND ) ;
2657 oe_debug_pub.add( 'ACTIVE_DATE_SECOND_TYPE ='|| OUT_REQ_LINE_TBL ( I ) .ACTIVE_DATE_SECOND_TYPE ) ;
2658 END IF;
2659 end loop;
2660 end if;
2661
2662 IF l_debug_level > 0 THEN
2663 oe_debug_pub.add( 'COUNT LINE DETAIL TABLE='||OUT_REQ_LINE_DETAIL_TBL.COUNT ) ;
2664 END IF;
2665 if out_req_line_detail_tbl.count > 0 then
2666 for i in out_req_line_detail_tbl.first..out_req_line_detail_tbl.last
2667 loop
2668 IF l_debug_level > 0 THEN
2669 oe_debug_pub.add( 'LINE DETAIL TABLE RECORD='||I ) ;
2670 END IF;
2671 if out_req_line_detail_tbl.exists(i) then
2672 IF l_debug_level > 0 THEN
2673 oe_debug_pub.add( '*******************************' ) ;
2674 oe_debug_pub.add( 'LIN_INDEX='||OUT_REQ_LINE_DETAIL_TBL ( I ) .LINE_INDEX ) ;
2675 oe_debug_pub.add( 'LIST_LINE_TYPE_CODE='|| OUT_REQ_LINE_DETAIL_TBL ( I ) .LIST_LINE_TYPE_CODE ) ;
2676 oe_debug_pub.add( 'LINE_DETAIL_TYPE_CODE='|| OUT_REQ_LINE_DETAIL_TBL ( I ) .LINE_DETAIL_TYPE_CODE ) ;
2677 oe_debug_pub.add( 'CREATED_FROM_LIST_TYPE_CODE='|| OUT_REQ_LINE_DETAIL_TBL ( I ) .CREATED_FROM_LIST_TYPE_CODE ) ;
2678 oe_debug_pub.add( 'AUTOMATIC_FLAG='|| OUT_REQ_LINE_DETAIL_TBL ( I ) .AUTOMATIC_FLAG ) ;
2679 oe_debug_pub.add( 'ACCRUAL='||OUT_REQ_LINE_DETAIL_TBL ( I ) .ACCRUAL_FLAG ) ;
2680 oe_debug_pub.add( 'STATUS='||OUT_REQ_LINE_DETAIL_TBL ( I ) .STATUS_CODE ) ;
2681 oe_debug_pub.add( 'STS_TEXT='||OUT_REQ_LINE_DETAIL_TBL ( I ) .STATUS_TEXT ) ;
2682 oe_debug_pub.add( 'LIST_HEADER_ID='|| OUT_REQ_LINE_DETAIL_TBL ( I ) .LIST_HEADER_ID ) ;
2683 oe_debug_pub.add( 'LIST_LINE_ID='|| OUT_REQ_LINE_DETAIL_TBL ( I ) .LIST_LINE_ID ) ;
2684 oe_debug_pub.add( 'PRICE_BREAK_TYPE_CODE='|| OUT_REQ_LINE_DETAIL_TBL ( I ) .PRICE_BREAK_TYPE_CODE ) ;
2685 oe_debug_pub.add( 'LST_PRICE='||OUT_REQ_LINE_DETAIL_TBL ( I ) .LIST_PRICE ) ;
2686 oe_debug_pub.add( 'ADJUSTMENT_AMOUNT='|| OUT_REQ_LINE_DETAIL_TBL ( I ) .ADJUSTMENT_AMOUNT ) ;
2687 oe_debug_pub.add( 'LINE_QUANTITY='|| OUT_REQ_LINE_DETAIL_TBL ( I ) .LINE_QUANTITY ) ;
2688 oe_debug_pub.add( 'MODIFIER_LEVEL_CODE='|| OUT_REQ_LINE_DETAIL_TBL ( I ) .MODIFIER_LEVEL_CODE ) ;
2689 oe_debug_pub.add( 'INVENTORY_ITEM_ID='|| OUT_REQ_LINE_DETAIL_TBL ( I ) .INVENTORY_ITEM_ID ) ;
2690 END IF;
2691 end if;
2692
2693 end loop;
2694 end if;
2695
2696
2697 IF l_debug_level > 0 THEN
2698 oe_debug_pub.add( 'COUNT LINE DETAIL ATTR TBL='|| OUT_REQ_LINE_DETAIL_ATTR_TBL.COUNT ) ;
2699 END IF;
2700 if out_req_line_detail_attr_tbl.count > 0 then
2701 for i in out_req_line_detail_attr_tbl.first..out_req_line_detail_attr_tbl.last
2702 loop
2703 IF l_debug_level > 0 THEN
2704 oe_debug_pub.add( '*******************************' ) ;
2705 oe_debug_pub.add( 'LINE DETAIL ATTR_TABLE RECORD='||I ) ;
2706 oe_debug_pub.add( 'LINE_DETAIL_INDEX='|| OUT_REQ_LINE_DETAIL_ATTR_TBL ( I ) .LINE_DETAIL_INDEX ) ;
2707 oe_debug_pub.add( 'PRICING_CONTEXT='|| OUT_REQ_LINE_DETAIL_ATTR_TBL ( I ) .PRICING_CONTEXT ) ;
2708 oe_debug_pub.add( 'PRICING_ATTRIBUTE='|| OUT_REQ_LINE_DETAIL_ATTR_TBL ( I ) .PRICING_ATTRIBUTE ) ;
2709 oe_debug_pub.add( 'PRICING_ATTR_VALUE_FROM='|| OUT_REQ_LINE_DETAIL_ATTR_TBL ( I ) .PRICING_ATTR_VALUE_FROM ) ;
2710 oe_debug_pub.add( 'PRICING_ATTR_VALUE_TO='|| OUT_REQ_LINE_DETAIL_ATTR_TBL ( I ) .PRICING_ATTR_VALUE_TO ) ;
2711 END IF;
2712
2713 end loop;
2714 end if;
2715
2716
2717 IF l_debug_level > 0 THEN
2718 oe_debug_pub.add( 'COUNT LINE ATTR TBL='||OUT_REQ_LINE_ATTR_TBL.COUNT ) ;
2719 END IF;
2720 if out_req_line_attr_tbl.count > 0 then
2721 for i in out_req_line_attr_tbl.first..out_req_line_attr_tbl.last
2722 loop
2723 IF l_debug_level > 0 THEN
2724 oe_debug_pub.add( '*******************************' ) ;
2725 oe_debug_pub.add( 'LINE ATTR_TABLE RECORD='||I ) ;
2726 oe_debug_pub.add( 'LINE_INDEX='||OUT_REQ_LINE_ATTR_TBL ( I ) .LINE_INDEX ) ;
2727 oe_debug_pub.add( 'PRICING_CONTEXT='|| OUT_REQ_LINE_ATTR_TBL ( I ) .PRICING_CONTEXT ) ;
2728 oe_debug_pub.add( 'PRICING_ATTRIBUTE='|| OUT_REQ_LINE_ATTR_TBL ( I ) .PRICING_ATTRIBUTE ) ;
2729 oe_debug_pub.add( 'PRICING_ATTR_VALUE_FROM='|| OUT_REQ_LINE_ATTR_TBL ( I ) .PRICING_ATTR_VALUE_FROM ) ;
2730 oe_debug_pub.add( 'PRICING_ATTR_VALUE_TO='|| OUT_REQ_LINE_ATTR_TBL ( I ) .PRICING_ATTR_VALUE_TO ) ;
2731 END IF;
2732
2733 end loop;
2734 end if;
2735
2736
2737 IF l_debug_level > 0 THEN
2738 oe_debug_pub.add( 'COUNT RELATED LINES TBL='|| OUT_REQ_RELATED_LINES_TBL.COUNT ) ;
2739 END IF;
2740 if out_req_related_lines_tbl.count > 0 then
2741 for i in out_req_related_lines_tbl.first..out_req_related_lines_tbl.last
2742 loop
2743 IF l_debug_level > 0 THEN
2744 oe_debug_pub.add( '*******************************' ) ;
2745 oe_debug_pub.add( 'RELATD LINES RECORD='||I ) ;
2746 oe_debug_pub.add( 'LIN_INDEX='||OUT_REQ_RELATED_LINES_TBL ( I ) .LINE_INDEX ) ;
2747 oe_debug_pub.add( 'LINE_DETAIL_INDEX='|| OUT_REQ_RELATED_LINES_TBL ( I ) .LINE_DETAIL_INDEX ) ;
2748 oe_debug_pub.add( 'RELATIONSHIP_TYPE_CODE='|| OUT_REQ_RELATED_LINES_TBL ( I ) .RELATIONSHIP_TYPE_CODE ) ;
2749 oe_debug_pub.add( 'RELATED_LINE_INDEX='|| OUT_REQ_RELATED_LINES_TBL ( I ) .RELATED_LINE_INDEX ) ;
2750 oe_debug_pub.add( 'RELATED_LINE_DETAIL_INDEX='|| OUT_REQ_RELATED_LINES_TBL ( I ) .RELATED_LINE_DETAIL_INDEX ) ;
2751 END IF;
2752
2753 end loop;
2754 end if;
2755
2756
2757 IF l_debug_level > 0 THEN
2758 oe_debug_pub.add( 'COUNT LINE QUAL TBL='||OUT_REQ_QUAL_TBL.COUNT ) ;
2759 END IF;
2760 if out_req_qual_tbl.count > 0 then
2761 for i in out_req_qual_tbl.first..out_req_qual_tbl.last
2762 loop
2763 IF l_debug_level > 0 THEN
2764 oe_debug_pub.add( '*******************************' ) ;
2765 oe_debug_pub.add( 'QUAL TABLE RECORD='||I ) ;
2766 oe_debug_pub.add( 'LINE_INDEX='||OUT_REQ_QUAL_TBL ( I ) .LINE_INDEX ) ;
2767 oe_debug_pub.add( 'QUALIFIER_CONTEXT='|| OUT_REQ_QUAL_TBL ( I ) .QUALIFIER_CONTEXT ) ;
2768 oe_debug_pub.add( 'QUALIFIER_ATTRIBUTE='|| OUT_REQ_QUAL_TBL ( I ) .QUALIFIER_ATTRIBUTE ) ;
2769 oe_debug_pub.add( 'QUALIFIER_ATTR_VALUE_FROM='|| OUT_REQ_QUAL_TBL ( I ) .QUALIFIER_ATTR_VALUE_FROM ) ;
2770 oe_debug_pub.add( 'QUALIFIER_ATTR_VALUE_TO='|| OUT_REQ_QUAL_TBL ( I ) .QUALIFIER_ATTR_VALUE_TO ) ;
2771 oe_debug_pub.add( 'COMPARISON_OPERATOR_CODE='|| OUT_REQ_QUAL_TBL ( I ) .COMPARISON_OPERATOR_CODE ) ;
2772 oe_debug_pub.add( 'VALIDATED_FLAG='||OUT_REQ_QUAL_TBL ( I ) .VALIDATED_FLAG ) ;
2773 END IF;
2774
2775 end loop;
2776 end if;
2777
2778
2779 IF l_debug_level > 0 THEN
2780 oe_debug_pub.add( 'COUNT LINE DETAIL QUAL TBL='|| OUT_REQ_LINE_DETAIL_QUAL_TBL.COUNT ) ;
2781 END IF;
2782 if out_req_line_detail_qual_tbl.count > 0 then
2783 for i in out_req_line_detail_qual_tbl.first..out_req_line_detail_qual_tbl.last
2784 loop
2785 IF l_debug_level > 0 THEN
2786 oe_debug_pub.add( '*******************************' ) ;
2787 oe_debug_pub.add( 'LINE DETAIL QUAL TABLE RECORD='||I ) ;
2788 oe_debug_pub.add( 'LINE_DETAIL_INDEX='|| OUT_REQ_LINE_DETAIL_QUAL_TBL ( I ) .LINE_DETAIL_INDEX ) ;
2789 oe_debug_pub.add( 'QUALIFIER_CONTEXT='|| OUT_REQ_LINE_DETAIL_QUAL_TBL ( I ) .QUALIFIER_CONTEXT ) ;
2790 oe_debug_pub.add( 'QUALIFIER_ATTRIBUTE='|| OUT_REQ_LINE_DETAIL_QUAL_TBL ( I ) .QUALIFIER_ATTRIBUTE ) ;
2791 oe_debug_pub.add( 'QUALIFIER_ATTR_VALUE_FROM='|| OUT_REQ_LINE_DETAIL_QUAL_TBL ( I ) .QUALIFIER_ATTR_VALUE_FROM ) ;
2792 oe_debug_pub.add( 'QUALIFIER_ATTR_VALUE_TO='|| OUT_REQ_LINE_DETAIL_QUAL_TBL ( I ) .QUALIFIER_ATTR_VALUE_TO ) ;
2793 oe_debug_pub.add( 'COMPARISON_OPERATOR_CODE='|| OUT_REQ_LINE_DETAIL_QUAL_TBL ( I ) .COMPARISON_OPERATOR_CODE ) ;
2794 oe_debug_pub.add( 'VALIDATED_FLAG='|| OUT_REQ_LINE_DETAIL_QUAL_TBL ( I ) .VALIDATED_FLAG ) ;
2795 END IF;
2796
2797 end loop;
2798 end if;
2799
2800
2801 IF l_debug_level > 0 THEN
2802 oe_debug_pub.add( ' EXITING PRICE_ITEM*******************************' ) ;
2803 END IF;
2804
2805 EXCEPTION
2806 when others then
2807
2808 IF l_debug_level > 0 THEN
2809 oe_debug_pub.add( 'PRICE ITEM EXCEPTION WHEN OTHERS CODE='|| SQLCODE||' MESSAGE='||SQLERRM ) ;
2810 END IF;
2811
2812 END price_item;
2813
2814 PROCEDURE copy_fields_to_globals(
2815 in_related_item_id in number,
2816 in_qty in number,
2817 in_uom in varchar2,
2818 in_request_date in date,
2819 in_customer_id in number,
2820 in_item_identifier_type in varchar2,
2821 in_agreement_id in number,
2822 in_price_list_id in number,
2823 in_ship_to_org_id in number,
2824 in_invoice_to_org_id in number,
2825 in_ship_from_org_id in number,
2826 in_pricing_date in date,
2827 in_order_type_id in number,
2828 in_currency in varchar2,
2829 in_pricing_context in varchar2,
2830 in_pricing_attribute1 in varchar2,
2831 in_pricing_attribute2 in varchar2,
2832 in_pricing_attribute3 in varchar2,
2833 in_pricing_attribute4 in varchar2,
2834 in_pricing_attribute5 in varchar2,
2835 in_pricing_attribute6 in varchar2,
2836 in_pricing_attribute7 in varchar2,
2837 in_pricing_attribute8 in varchar2,
2838 in_pricing_attribute9 in varchar2,
2839 in_pricing_attribute10 in varchar2,
2840 in_pricing_attribute11 in varchar2,
2841 in_pricing_attribute12 in varchar2,
2842 in_pricing_attribute13 in varchar2,
2843 in_pricing_attribute14 in varchar2,
2844 in_pricing_attribute15 in varchar2,
2845 in_pricing_attribute16 in varchar2,
2846 in_pricing_attribute17 in varchar2,
2847 in_pricing_attribute18 in varchar2,
2848 in_pricing_attribute19 in varchar2,
2849 in_pricing_attribute20 in varchar2,
2850 in_pricing_attribute21 in varchar2,
2851 in_pricing_attribute22 in varchar2,
2852 in_pricing_attribute23 in varchar2,
2853 in_pricing_attribute24 in varchar2,
2854 in_pricing_attribute25 in varchar2,
2855 in_pricing_attribute26 in varchar2,
2856 in_pricing_attribute27 in varchar2,
2857 in_pricing_attribute28 in varchar2,
2858 in_pricing_attribute29 in varchar2,
2859 in_pricing_attribute30 in varchar2,
2860 in_pricing_attribute31 in varchar2,
2861 in_pricing_attribute32 in varchar2,
2862 in_pricing_attribute33 in varchar2,
2863 in_pricing_attribute34 in varchar2,
2864 in_pricing_attribute35 in varchar2,
2865 in_pricing_attribute36 in varchar2,
2866 in_pricing_attribute37 in varchar2,
2867 in_pricing_attribute38 in varchar2,
2868 in_pricing_attribute39 in varchar2,
2869 in_pricing_attribute40 in varchar2,
2870 in_pricing_attribute41 in varchar2,
2871 in_pricing_attribute42 in varchar2,
2872 in_pricing_attribute43 in varchar2,
2873 in_pricing_attribute44 in varchar2,
2874 in_pricing_attribute45 in varchar2,
2875 in_pricing_attribute46 in varchar2,
2876 in_pricing_attribute47 in varchar2,
2877 in_pricing_attribute48 in varchar2,
2878 in_pricing_attribute49 in varchar2,
2879 in_pricing_attribute50 in varchar2,
2880 in_pricing_attribute51 in varchar2,
2881 in_pricing_attribute52 in varchar2,
2882 in_pricing_attribute53 in varchar2,
2883 in_pricing_attribute54 in varchar2,
2884 in_pricing_attribute55 in varchar2,
2885 in_pricing_attribute56 in varchar2,
2886 in_pricing_attribute57 in varchar2,
2887 in_pricing_attribute58 in varchar2,
2888 in_pricing_attribute59 in varchar2,
2889 in_pricing_attribute60 in varchar2,
2890 in_pricing_attribute61 in varchar2,
2891 in_pricing_attribute62 in varchar2,
2892 in_pricing_attribute63 in varchar2,
2893 in_pricing_attribute64 in varchar2,
2894 in_pricing_attribute65 in varchar2,
2895 in_pricing_attribute66 in varchar2,
2896 in_pricing_attribute67 in varchar2,
2897 in_pricing_attribute68 in varchar2,
2898 in_pricing_attribute69 in varchar2,
2899 in_pricing_attribute70 in varchar2,
2900 in_pricing_attribute71 in varchar2,
2901 in_pricing_attribute72 in varchar2,
2902 in_pricing_attribute73 in varchar2,
2903 in_pricing_attribute74 in varchar2,
2904 in_pricing_attribute75 in varchar2,
2905 in_pricing_attribute76 in varchar2,
2906 in_pricing_attribute77 in varchar2,
2907 in_pricing_attribute78 in varchar2,
2908 in_pricing_attribute79 in varchar2,
2909 in_pricing_attribute80 in varchar2,
2910 in_pricing_attribute81 in varchar2,
2911 in_pricing_attribute82 in varchar2,
2912 in_pricing_attribute83 in varchar2,
2913 in_pricing_attribute84 in varchar2,
2914 in_pricing_attribute85 in varchar2,
2915 in_pricing_attribute86 in varchar2,
2916 in_pricing_attribute87 in varchar2,
2917 in_pricing_attribute88 in varchar2,
2918 in_pricing_attribute89 in varchar2,
2919 in_pricing_attribute90 in varchar2,
2920 in_pricing_attribute91 in varchar2,
2921 in_pricing_attribute92 in varchar2,
2922 in_pricing_attribute93 in varchar2,
2923 in_pricing_attribute94 in varchar2,
2924 in_pricing_attribute95 in varchar2,
2925 in_pricing_attribute96 in varchar2,
2926 in_pricing_attribute97 in varchar2,
2927 in_pricing_attribute98 in varchar2,
2928 in_pricing_attribute99 in varchar2,
2929 in_pricing_attribute100 in varchar2
2930 ) IS
2931
2932 --
2933 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2934 --
2935 BEGIN
2936
2937 g_related_item_id := in_related_item_id;
2938 g_qty := in_qty;
2939 g_uom := in_uom;
2940 g_request_date := in_request_date;
2941 g_customer_id := in_customer_id;
2942 g_item_identifier_type := in_item_identifier_type;
2943 g_agreement_id := in_agreement_id;
2944 g_price_list_id := in_price_list_id;
2945 g_ship_to_org_id := in_ship_to_org_id;
2946 g_invoice_to_org_id := in_invoice_to_org_id;
2947 g_ship_from_org_id := in_ship_from_org_id;
2948 g_pricing_date := in_pricing_date;
2949 g_order_type_id := in_order_type_id;
2950 g_currency := in_currency;
2951 g_pricing_context := in_pricing_context;
2952 g_pricing_attribute1 := in_pricing_attribute1;
2953 g_pricing_attribute2 := in_pricing_attribute2;
2954 g_pricing_attribute3 := in_pricing_attribute3;
2955 g_pricing_attribute4 := in_pricing_attribute4;
2956 g_pricing_attribute5 := in_pricing_attribute5;
2957 g_pricing_attribute6 := in_pricing_attribute6;
2958 g_pricing_attribute7 := in_pricing_attribute7;
2959 g_pricing_attribute8 := in_pricing_attribute8;
2960 g_pricing_attribute9 := in_pricing_attribute9;
2961 g_pricing_attribute10 := in_pricing_attribute10;
2962 g_pricing_attribute11 := in_pricing_attribute11;
2963 g_pricing_attribute12 := in_pricing_attribute12;
2964 g_pricing_attribute13 := in_pricing_attribute13;
2965 g_pricing_attribute14 := in_pricing_attribute14;
2966 g_pricing_attribute15 := in_pricing_attribute15;
2967 g_pricing_attribute16 := in_pricing_attribute16;
2968 g_pricing_attribute17 := in_pricing_attribute17;
2969 g_pricing_attribute18 := in_pricing_attribute18;
2970 g_pricing_attribute19 := in_pricing_attribute19;
2971 g_pricing_attribute20 := in_pricing_attribute20;
2972 g_pricing_attribute21 := in_pricing_attribute21;
2973 g_pricing_attribute22 := in_pricing_attribute22;
2974 g_pricing_attribute23 := in_pricing_attribute23;
2975 g_pricing_attribute24 := in_pricing_attribute24;
2976 g_pricing_attribute25 := in_pricing_attribute25;
2977 g_pricing_attribute26 := in_pricing_attribute26;
2978 g_pricing_attribute27 := in_pricing_attribute27;
2979 g_pricing_attribute28 := in_pricing_attribute28;
2980 g_pricing_attribute29 := in_pricing_attribute29;
2981 g_pricing_attribute30 := in_pricing_attribute30;
2982 g_pricing_attribute31 := in_pricing_attribute31;
2983 g_pricing_attribute32 := in_pricing_attribute32;
2984 g_pricing_attribute33 := in_pricing_attribute33;
2985 g_pricing_attribute34 := in_pricing_attribute34;
2986 g_pricing_attribute35 := in_pricing_attribute35;
2987 g_pricing_attribute36 := in_pricing_attribute36;
2988 g_pricing_attribute37 := in_pricing_attribute37;
2989 g_pricing_attribute38 := in_pricing_attribute38;
2990 g_pricing_attribute39 := in_pricing_attribute39;
2991 g_pricing_attribute40 := in_pricing_attribute40;
2992 g_pricing_attribute41 := in_pricing_attribute41;
2993 g_pricing_attribute42 := in_pricing_attribute42;
2994 g_pricing_attribute43 := in_pricing_attribute43;
2995 g_pricing_attribute44 := in_pricing_attribute44;
2996 g_pricing_attribute45 := in_pricing_attribute45;
2997 g_pricing_attribute46 := in_pricing_attribute46;
2998 g_pricing_attribute47 := in_pricing_attribute47;
2999 g_pricing_attribute48 := in_pricing_attribute48;
3000 g_pricing_attribute49 := in_pricing_attribute49;
3001 g_pricing_attribute50 := in_pricing_attribute50;
3002 g_pricing_attribute51 := in_pricing_attribute51;
3003 g_pricing_attribute52 := in_pricing_attribute52;
3004 g_pricing_attribute53 := in_pricing_attribute53;
3005 g_pricing_attribute54 := in_pricing_attribute54;
3006 g_pricing_attribute55 := in_pricing_attribute55;
3007 g_pricing_attribute56 := in_pricing_attribute56;
3008 g_pricing_attribute57 := in_pricing_attribute57;
3009 g_pricing_attribute58 := in_pricing_attribute58;
3010 g_pricing_attribute59 := in_pricing_attribute59;
3011 g_pricing_attribute60 := in_pricing_attribute60;
3012 g_pricing_attribute61 := in_pricing_attribute61;
3013 g_pricing_attribute62 := in_pricing_attribute62;
3014 g_pricing_attribute63 := in_pricing_attribute63;
3015 g_pricing_attribute64 := in_pricing_attribute64;
3016 g_pricing_attribute65 := in_pricing_attribute65;
3017 g_pricing_attribute66 := in_pricing_attribute66;
3018 g_pricing_attribute67 := in_pricing_attribute67;
3019 g_pricing_attribute68 := in_pricing_attribute68;
3020 g_pricing_attribute69 := in_pricing_attribute69;
3021 g_pricing_attribute70 := in_pricing_attribute70;
3022 g_pricing_attribute71 := in_pricing_attribute71;
3023 g_pricing_attribute72 := in_pricing_attribute72;
3024 g_pricing_attribute73 := in_pricing_attribute73;
3025 g_pricing_attribute74 := in_pricing_attribute74;
3026 g_pricing_attribute75 := in_pricing_attribute75;
3027 g_pricing_attribute76 := in_pricing_attribute76;
3028 g_pricing_attribute77 := in_pricing_attribute77;
3029 g_pricing_attribute78 := in_pricing_attribute78;
3030 g_pricing_attribute79 := in_pricing_attribute79;
3031 g_pricing_attribute80 := in_pricing_attribute80;
3032 g_pricing_attribute81 := in_pricing_attribute81;
3033 g_pricing_attribute82 := in_pricing_attribute82;
3034 g_pricing_attribute83 := in_pricing_attribute83;
3035 g_pricing_attribute84 := in_pricing_attribute84;
3036 g_pricing_attribute85 := in_pricing_attribute85;
3037 g_pricing_attribute86 := in_pricing_attribute86;
3038 g_pricing_attribute87 := in_pricing_attribute87;
3039 g_pricing_attribute88 := in_pricing_attribute88;
3040 g_pricing_attribute89 := in_pricing_attribute89;
3041 g_pricing_attribute90 := in_pricing_attribute90;
3042 g_pricing_attribute91 := in_pricing_attribute91;
3043 g_pricing_attribute92 := in_pricing_attribute92;
3044 g_pricing_attribute93 := in_pricing_attribute93;
3045 g_pricing_attribute94 := in_pricing_attribute94;
3046 g_pricing_attribute95 := in_pricing_attribute95;
3047 g_pricing_attribute96 := in_pricing_attribute96;
3048 g_pricing_attribute97 := in_pricing_attribute97;
3049 g_pricing_attribute98 := in_pricing_attribute98;
3050 g_pricing_attribute99 := in_pricing_attribute99;
3051 g_pricing_attribute100 := in_pricing_attribute100;
3052
3053 END copy_fields_to_globals;
3054 PROCEDURE process_pricing_errors(in_line_type_code in varchar2,
3055 in_status_code in varchar2,
3056 in_status_text in varchar2,
3057 in_ordered_item in varchar2,
3058 in_uom in varchar2,
3059 in_unit_price in number,
3060 in_adjusted_unit_price in number,
3061 in_process_code in varchar2 ,
3062 in_price_flag in varchar2,
3063 in_price_list_id in number,
3064 l_return_status out NOCOPY /* file.sql.39 change */ varchar2,
3065 l_msg_count out NOCOPY /* file.sql.39 change */ number,
3066 l_msg_data out NOCOPY /* file.sql.39 change */ varchar2
3067 ) IS
3068
3069 l_price_list varchar2(200);
3070 l_allow_negative_price varchar2(10):= nvl(OE_Sys_Parameters.VALUE('ONT_NEGATIVE_PRICING'),'N');
3071 l_gsa_violation_action Varchar2(30) :=fnd_profile.value('ONT_GSA_VIOLATION_ACTION');
3072 l_org_id Number:= OE_Sys_Parameters.VALUE('MASTER_ORGANIZATION_ID');
3073
3074
3075 Cursor get_gsa_list_lines is
3076 Select/*+ ordered use_nl(qpq qppa qpll qplh) */ min(qpll.operand)
3077 From
3078 qp_qualifiers qpq
3079 , qp_pricing_attributes qppa
3080 , qp_list_lines qpll
3081 , qp_list_headers_b qplh
3082 , qp_price_req_sources qpprs
3083 where
3084 qpq.qualifier_context='CUSTOMER'
3085 and qpq.qualifier_attribute='QUALIFIER_ATTRIBUTE15'
3086 and qpq.qualifier_attr_value='Y'
3087 and qppa.list_header_id=qplh.list_header_id
3088 and qplh.Active_flag='Y'
3089 and qpprs.request_type_code = 'ONT'
3090 and qpprs.source_system_code=qplh.source_system_code
3091 and qppa.pricing_phase_id = 2
3092 and qppa.qualification_ind = 6
3093 and qppa.product_attribute_context ='ITEM'
3094 and qppa.product_attribute='PRICING_ATTRIBUTE1'
3095 and qppa.product_attr_value= g_related_item_id
3096 and qppa.excluder_flag = 'N'
3097 and qppa.list_header_id=qpq.list_header_id
3098 and qppa.list_line_id=qpll.list_line_id
3099 and g_pricing_date between nvl(trunc(qplh.start_date_active),g_pricing_date)
3100 and nvl(trunc(qplh.End_date_active),g_pricing_date);
3101
3102 l_operand number;
3103 l_msg_text Varchar2(2000);
3104
3105 --
3106 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3107 --
3108 BEGIN
3109
3110 IF l_debug_level > 0 THEN
3111 oe_debug_pub.add( 'ENTERING PROCESS_PRICING_ERRORS' ) ;
3112 END IF;
3113 IF l_debug_level > 0 THEN
3114 oe_debug_pub.add( 'LINE_TYPE_CODE='||IN_LINE_TYPE_CODE|| ' STATUS CODE='||IN_STATUS_CODE|| ' NEGATIVE PRICE ='||L_ALLOW_NEGATIVE_PRICE|| ' IN_UNIT_PRICE ='||IN_UNIT_PRICE|| ' IN_ADJUSTED_UNIT_PRICE ='||IN_ADJUSTED_UNIT_PRICE ) ;
3115 END IF;
3116
3117
3118 IF in_line_Type_code ='LINE' and
3119 in_status_code in ( QP_PREQ_GRP.G_STATUS_INVALID_PRICE_LIST,
3120 QP_PREQ_GRP.G_STS_LHS_NOT_FOUND,
3121 QP_PREQ_GRP.G_STATUS_FORMULA_ERROR,
3122 QP_PREQ_GRP.G_STATUS_OTHER_ERRORS,
3123 FND_API.G_RET_STS_UNEXP_ERROR,
3124 FND_API.G_RET_STS_ERROR,
3125 QP_PREQ_GRP.G_STATUS_CALC_ERROR,
3126 QP_PREQ_GRP.G_STATUS_UOM_FAILURE,
3127 QP_PREQ_GRP.G_STATUS_INVALID_UOM,
3128 QP_PREQ_GRP.G_STATUS_DUP_PRICE_LIST,
3129 QP_PREQ_GRP.G_STATUS_INVALID_UOM_CONV,
3130 QP_PREQ_GRP.G_STATUS_INVALID_INCOMP,
3131 QP_PREQ_GRP.G_STATUS_BEST_PRICE_EVAL_ERROR)
3132 then
3133
3134 l_return_status := 'E';
3135
3136 IF in_price_list_id is not null then
3137 Begin
3138 Select name into l_price_list
3139 from qp_list_headers_vl
3140 where list_header_id = in_price_list_id;
3141 Exception When No_data_found then
3142 l_price_list := in_price_list_id;
3143 End;
3144 END IF;
3145
3146 IF in_status_code = QP_PREQ_GRP.G_STATUS_INVALID_PRICE_LIST then
3147
3148 IF l_debug_level > 0 THEN
3149 oe_debug_pub.add( 'INVALID PRICE LIST'|| ' PRICE_LIST_ID='||G_PRICE_LIST_ID ) ;
3150 END IF;
3151 IF g_price_list_id is null then
3152
3153 FND_MESSAGE.SET_NAME('ONT','ONT_AVAIL_GENERIC');
3154 FND_MESSAGE.SET_TOKEN('TEXT',in_status_text);
3155 IF l_debug_level > 0 THEN
3156 oe_debug_pub.add( 'INVALID PL ERR TXT='||IN_STATUS_TEXT ) ;
3157 END IF;
3158 OE_MSG_PUB.Add;
3159
3160 ELSE
3161 IF l_debug_level > 0 THEN
3162 oe_debug_pub.add( 'INVALID PRICE LIST' ) ;
3163 END IF;
3164 FND_MESSAGE.SET_NAME('ONT','OE_PRC_NO_LIST_PRICE');
3165 FND_MESSAGE.SET_TOKEN('ITEM',in_Ordered_Item);
3166 FND_MESSAGE.SET_TOKEN('UNIT',in_uom);
3167 FND_MESSAGE.SET_TOKEN('PRICE_LIST',l_Price_List);
3168 OE_MSG_PUB.Add;
3169
3170 END IF;
3171
3172 ELSIF in_status_code = QP_PREQ_GRP.G_STS_LHS_NOT_FOUND Then
3173
3174 FND_MESSAGE.SET_NAME('ONT','ONT_NO_PRICE_LIST_FOUND');
3175 FND_MESSAGE.SET_TOKEN('ITEM',in_Ordered_Item);
3176 FND_MESSAGE.SET_TOKEN('UOM',in_uom);
3177 OE_MSG_PUB.Add;
3178
3179 ELSIF in_status_code = QP_PREQ_GRP.G_STATUS_FORMULA_ERROR then
3180 FND_MESSAGE.SET_NAME('ONT','ONT_PRC_ERROR_IN_FORMULA');
3181 OE_MSG_PUB.Add;
3182
3183 ELSIF in_status_code in
3184 ( QP_PREQ_GRP.G_STATUS_OTHER_ERRORS , FND_API.G_RET_STS_UNEXP_ERROR,
3185 FND_API.G_RET_STS_ERROR) then
3186 FND_MESSAGE.SET_NAME('ONT','ONT_PRICING_ERRORS');
3187 FND_MESSAGE.SET_TOKEN('ERR_TEXT',in_status_text);
3188 OE_MSG_PUB.Add;
3189
3190 ELSIF in_status_code = QP_PREQ_GRP.G_STATUS_INVALID_UOM then
3191 FND_MESSAGE.SET_NAME('ONT','ONT_PRC_INVALID_UOM');
3192 FND_MESSAGE.SET_TOKEN('ITEM',in_Ordered_Item);
3193 FND_MESSAGE.SET_TOKEN('UOM',in_uom);
3194 OE_MSG_PUB.Add;
3195
3196 ElSIF in_status_code = QP_PREQ_GRP.G_STATUS_DUP_PRICE_LIST then
3197 FND_MESSAGE.SET_NAME('ONT','ONT_PRC_DUPLICATE_PRICE_LIST');
3198
3199 IF l_debug_level > 0 THEN
3200 oe_debug_pub.add( 'DUPLICATE PRICE LIST ERROR' ) ;
3201 END IF;
3202 Begin
3203 Select name into l_price_list
3204 from qp_list_headers_vl a,qp_list_lines b where
3205 b.list_line_id = to_number(substr(in_status_text,1,
3206 instr(in_status_text,',')-1))
3207 and a.list_header_id=b.list_header_id ;
3208 Exception When No_data_found then
3209 l_price_list := to_number(substr(in_status_text,1,
3210 instr(in_status_text,',')-1));
3211 When invalid_number then
3212 l_price_list := substr(in_status_text,1,
3213 instr(in_status_text,',')-1);
3214 End;
3215
3216 IF l_debug_level > 0 THEN
3217 oe_debug_pub.add( 'PRICE LIST 1='||L_PRICE_LIST ) ;
3218 END IF;
3219 FND_MESSAGE.SET_TOKEN('PRICE_LIST1','( '||in_Ordered_Item||' ) '|| l_price_list);
3220 Begin
3221 Select name into l_price_list
3222 from qp_list_headers_vl a,qp_list_lines b where
3223 b.list_line_id = to_number(substr(in_status_text,
3224 instr(in_status_text,',')+1))
3225 and a.list_header_id=b.list_header_id ;
3226 Exception When No_data_found then
3227 l_price_list := to_number(substr(in_status_text,
3228 instr(in_status_text,',')+1));
3229 When invalid_number then
3230 l_price_list := substr(in_status_text,
3231 instr(in_status_text,',')+1);
3232 End;
3233 IF l_debug_level > 0 THEN
3234 oe_debug_pub.add( 'PRICE LIST 2='||L_PRICE_LIST ) ;
3235 END IF;
3236
3237 FND_MESSAGE.SET_TOKEN('PRICE_LIST2',l_price_list);
3238 OE_MSG_PUB.Add;
3239
3240 ELSIF in_status_code = QP_PREQ_GRP.G_STATUS_INVALID_UOM_CONV then
3241 FND_MESSAGE.SET_NAME('ONT','ONT_PRC_INVALID_UOM_CONVERSION');
3242 FND_MESSAGE.SET_TOKEN('UOM_TEXT','( '||in_Ordered_Item||' ) '||
3243 in_status_text);
3244 OE_MSG_PUB.Add;
3245
3246 ElSIF in_status_code = QP_PREQ_GRP.G_STATUS_INVALID_INCOMP then
3247 FND_MESSAGE.SET_NAME('ONT','ONT_PRC_INVALID_INCOMP');
3248 FND_MESSAGE.SET_TOKEN('ERR_TEXT','( '||in_Ordered_Item||' ) '||
3249 in_status_text);
3250 OE_MSG_PUB.Add;
3251
3252 ELSIF in_status_code = QP_PREQ_GRP.G_STATUS_BEST_PRICE_EVAL_ERROR then
3253 FND_MESSAGE.SET_NAME('ONT','ONT_PRC_BEST_PRICE_ERROR');
3254 FND_MESSAGE.SET_TOKEN('ITEM',in_Ordered_Item);
3255 FND_MESSAGE.SET_TOKEN('ERR_TEXT',in_status_text);
3256 OE_MSG_PUB.Add;
3257 END IF;
3258
3259
3260 /*elsif ( in_unit_price < 0 or in_Adjusted_unit_price < 0) and
3261 l_allow_negative_price = 'N' then
3262
3263 oe_debug_pub.add('Error as Negative Pricing is not Allowed');
3264 FND_MESSAGE.SET_NAME('ONT','ONT_NEGATIVE_PRICE');
3265 FND_MESSAGE.SET_TOKEN('ITEM',in_Ordered_Item);
3266 FND_MESSAGE.SET_TOKEN('LIST_PRICE',in_unit_price);
3267 FND_MESSAGE.SET_TOKEN('SELLING_PRICE',in_Adjusted_unit_price);
3268 OE_MSG_PUB.Add;
3269 --FND_MESSAGE.SET_NAME('ONT','ONT_NEGATIVE_MODIFIERS');
3270 --FND_MESSAGE.SET_TOKEN('LIST_LINE_NO',get_list_lines(g_line_id));
3271 --OE_MSG_PUB.Add;
3272 l_return_status := 'E';
3273 --RAISE FND_API.G_EXC_ERROR;*/
3274
3275 ELSIF in_line_Type_code ='LINE' and
3276 in_status_code = QP_PREQ_GRP.G_STATUS_OTHER_ERRORS Then
3277
3278 IF l_debug_level > 0 THEN
3279 oe_debug_pub.add( 'OE_PRICING_ERROR' ) ;
3280 END IF;
3281 FND_MESSAGE.SET_NAME('ONT','OE_PRICING_ERROR');
3282 FND_MESSAGE.SET_TOKEN('ERR_TEXT','( '||in_Ordered_Item||' ) '||in_STATUS_TEXT);
3283 OE_MSG_PUB.Add;
3284
3285 ELSIF in_line_Type_code ='LINE' and in_status_code in
3286 --( QP_PREQ_GRP.G_STATUS_UPDATED,
3287 (QP_PREQ_GRP.G_STATUS_GSA_VIOLATION) and
3288 -- QP_PREQ_GRP.G_STATUS_UNCHANGED) and
3289 nvl(in_process_code,'0') <> QP_PREQ_GRP.G_BY_ENGINE
3290 and in_price_flag IN ('Y','P')
3291 --we do not want to go in this loop if price_flag is set up 'N' because
3292 --engine doesn't look at the line and will not return adjustments. In this
3293 --case we DON't want to remove the adjustments that engine doesn't return.
3294 then
3295 IF l_debug_level > 0 THEN
3296 oe_debug_pub.add( 'OE_PRICING_ERROR 2' ) ;
3297 END IF;
3298
3299 IF in_status_text is not null then
3300 l_return_status := 'E';
3301 FND_MESSAGE.SET_NAME('ONT','OE_PRICING_ERROR');
3302 FND_MESSAGE.SET_TOKEN('ERR_TEXT','( '||in_Ordered_Item||' ) '||in_STATUS_TEXT);
3303 --FND_MESSAGE.SET_NAME('ONT','ONT_PRICING_ERRORS');
3304 --FND_MESSAGE.SET_TOKEN('ERR_TEXT',in_status_text);
3305 OE_MSG_PUB.Add;
3306 END IF;
3307
3308 -- we need to do this check in UPDATED code or do the gsa check through
3309 -- the control record of Pricing
3310 /*OPEN get_gsa_list_lines;
3311 FETCH get_gsa_list_lines
3312 INTO l_operand;
3313 CLOSE get_gsa_list_lines;
3314 oe_debug_pub.add('After select OE_PRICING_ERROR 2');
3315 oe_debug_pub.add('Adj price='||in_adjusted_unit_price||
3316 ' Operand='||l_operand);
3317
3318 IF in_adjusted_unit_price <= l_operand then
3319 oe_debug_pub.add('If unit price less than operand violation='||
3320 l_gsa_violation_action);
3321 --Check if the GSA check needs to be done.
3322 If l_gsa_violation_action in ('WARNING','ERROR') then
3323
3324 oe_debug_pub.add('GSA warning or error');
3325 Begin
3326 SELECT concatenated_segments
3327 INTO l_msg_text
3328 FROM mtl_system_items_kfv
3329 WHERE inventory_item_id = g_related_item_id
3330 AND organization_id = l_org_id;
3331 Exception
3332 when no_data_found then
3333 Null;
3334 End;
3335
3336 l_return_status := 'E';
3337 oe_debug_pub.add('GSA warning or error 2 msg_Text='||l_msg_text);
3338 FND_MESSAGE.SET_NAME('ONT','OE_GSA_VIOLATION');
3339 l_msg_text := l_operand||' ( '||l_msg_text||' )';
3340 FND_MESSAGE.SET_TOKEN('GSA_PRICE',l_msg_text);
3341 OE_MSG_PUB.Add;
3342 END IF;
3343 END IF; */
3344
3345
3346 ELSIF -- Process header level adjustments
3347 in_line_type_code ='ORDER' and
3348 (in_status_code in ( QP_PREQ_GRP.G_STATUS_UPDATED ,
3349 QP_PREQ_GRP.G_STATUS_GSA_VIOLATION)
3350 --In this case even engine doesn't update the order (status = UNCHANGED)
3351 --because of one of the lined is frozen,
3352 --there can be some order level adjustments in database which
3353 --need to be pulled out by append_adjustment_lines routine
3354 or (in_status_code = QP_PREQ_GRP.G_STATUS_UNCHANGED))
3355 Then
3356 IF l_debug_level > 0 THEN
3357 oe_debug_pub.add( 'OE_PRICING_ERROR 3' ) ;
3358 END IF;
3359 null;
3360
3361 ELSIF in_line_Type_code ='LINE' and in_status_code = 'UPDATED' then
3362
3363 IF l_debug_level > 0 THEN
3364 oe_debug_pub.add( 'STATUS = UPDATED' ) ;
3365 END IF;
3366
3367 END IF;-- Status_Code
3368
3369
3370 IF l_debug_level > 0 THEN
3371 oe_debug_pub.add( 'PROCESS PRICING ERROR AFTER ERR CHK ST='||L_RETURN_STATUS ) ;
3372 END IF;
3373
3374 IF l_return_status ='E' then
3375 IF l_debug_level > 0 THEN
3376 oe_debug_pub.add( 'DOING COUNT_AND_GET' ) ;
3377 END IF;
3378 oe_msg_pub.count_and_get(p_encoded=>fnd_api.G_TRUE,
3379 p_count => l_msg_count,
3380 p_data=>l_msg_data
3381 );
3382 END IF;
3383
3384 IF l_debug_level > 0 THEN
3385 oe_debug_pub.add( 'EXITING PROCESS_PRICING_ERRORS' ) ;
3386 END IF;
3387
3388 EXCEPTION
3389
3390 when others then
3391 IF l_debug_level > 0 THEN
3392 oe_debug_pub.add( 'PROCESS PRICING ERRORS WHEN OTHERS EXCEPTION CODE='|| SQLCODE||' MESSAGE='||SQLERRM ) ;
3393 END IF;
3394
3395 END process_pricing_errors;
3396 FUNCTION Get_Rounding_factor(p_list_header_id number) return number is
3397
3398 l_rounding_factor number;
3399
3400 --
3401 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3402 --
3403 BEGIN
3404
3405 select rounding_factor
3406 into l_rounding_factor
3407 from qp_list_headers_b
3408 where list_header_id = p_list_header_id;
3409
3410 If l_rounding_factor = fnd_api.g_miss_num then
3411 l_rounding_factor:= Null;
3412 End If;
3413
3414 Return l_rounding_factor;
3415
3416
3417 EXCEPTION
3418 when no_data_found then
3419 Return Null;
3420 END Get_Rounding_factor;
3421
3422
3423 PROCEDURE get_Price_List_info(
3424 p_price_list_id IN NUMBER,
3425 out_name out NOCOPY /* file.sql.39 change */ varchar2,
3426 out_end_date out NOCOPY /* file.sql.39 change */ date,
3427 out_start_date out NOCOPY /* file.sql.39 change */ date,
3428 out_automatic_flag out NOCOPY /* file.sql.39 change */ varchar2,
3429 out_rounding_factor out NOCOPY /* file.sql.39 change */ varchar2,
3430 out_terms_id out NOCOPY /* file.sql.39 change */ number,
3431 out_gsa_indicator out NOCOPY /* file.sql.39 change */ varchar2,
3432 out_currency out NOCOPY /* file.sql.39 change */ varchar2,
3433 out_freight_terms_code out NOCOPY /* file.sql.39 change */ varchar2
3434 ) IS
3435
3436 --
3437 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3438 --
3439 BEGIN
3440
3441 IF l_debug_level > 0 THEN
3442 oe_debug_pub.add( 'GET PRICE_LIST ID='||P_PRICE_LIST_ID ) ;
3443 END IF;
3444
3445 IF p_price_list_id IS NOT NULL THEN
3446
3447 SELECT NAME,
3448 end_date_active,
3449 start_date_active,
3450 automatic_flag,
3451 rounding_factor,
3452 terms_id,
3453 gsa_indicator,
3454 currency_code,
3455 freight_terms_code
3456 INTO out_name,
3457 out_end_date,
3458 out_start_date,
3459 out_automatic_flag,
3460 out_rounding_factor,
3461 out_terms_id,
3462 out_gsa_indicator,
3463 out_currency,
3464 out_freight_terms_code
3465
3466 FROM qp_list_headers_vl
3467 WHERE list_header_id = p_price_list_id
3468 and list_type_code in ('PRL', 'AGR');
3469
3470 END IF;
3471
3472 IF l_debug_level > 0 THEN
3473 oe_debug_pub.add( 'END_DATE='||OUT_END_DATE|| ' START_DATE='||OUT_START_DATE ) ;
3474 END IF;
3475
3476 EXCEPTION
3477
3478 WHEN NO_DATA_FOUND THEN
3479 IF l_debug_level > 0 THEN
3480 oe_debug_pub.add( 'NO DATA FOUND GET PRICE LIST_INFO' ) ;
3481 END IF;
3482
3483 WHEN OTHERS THEN
3484 IF l_debug_level > 0 THEN
3485 oe_debug_pub.add( 'WHEN OTHERS GET PRICE LIST_INFO'|| SQLCODE||SQLERRM ) ;
3486 END IF;
3487
3488 END get_Price_List_info;
3489
3490 PROCEDURE different_uom(
3491 in_org_id in number
3492 ,in_ordered_uom in varchar2
3493 ,in_pricing_uom in varchar2
3494 ,out_conversion_rate out NOCOPY /* file.sql.39 change */ number
3495 )IS
3496
3497 CURSOR c_items IS
3498 SELECT primary_uom_code
3499 FROM mtl_system_items_b
3500 WHERE organization_id = in_org_id
3501 AND inventory_item_id = g_Inventory_item_id;
3502
3503 CURSOR c_class(in_ordered_uom in varchar2) is
3504 SELECT uom_Class
3505 FROM mtl_units_of_measure_tl
3506 WHERE uom_code = in_ordered_uom;
3507
3508 CURSOR c_base_uom(in_class in varchar2) IS
3509 SELECT uom_code
3510 FROM mtl_units_of_measure_tl
3511 WHERE uom_class = in_class
3512 AND base_uom_flag = 'Y';
3513
3514 l_primary_Uom varchar2(100);
3515 l_uom_class varchar2(50);
3516 l_base_uom varchar2(50);
3517 l_conversion_rate number;
3518 l_ordered_conversion number;
3519 l_pricing_conversion number;
3520
3521 --
3522 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3523 --
3524 BEGIN
3525
3526 IF l_debug_level > 0 THEN
3527 oe_debug_pub.add( 'ENTERING OE_AVAILABILITY.DIFFERENT_UOM'|| ' ORDERED_UOM ='||IN_ORDERED_UOM|| ' PRICING_UOM='||IN_PRICING_UOM|| ' IN_INV_ITEM_ID='||G_INVENTORY_ITEM_ID|| ' IN_ORG_ID='||IN_ORG_ID ) ;
3528 END IF;
3529
3530 OPEN c_items;
3531 FETCH c_items
3532 INTO l_primary_uom;
3533
3534 IF c_items%FOUND then
3535
3536 OPEN c_class(l_primary_uom);
3537 FETCH c_class
3538 INTO l_uom_class;
3539
3540 IF c_class%FOUND then
3541
3542 OPEN c_base_uom(l_uom_class);
3543 FETCH c_base_Uom
3544 INTO l_base_uom;
3545
3546 IF c_base_uom%FOUND then
3547
3548 -- Both Ordered and Pricing are not Base UOM
3549 IF in_ordered_uom <> l_base_uom AND
3550 in_pricing_uom <> l_base_uom THEN
3551
3552 IF l_debug_level > 0 THEN
3553 oe_debug_pub.add( 'NEITHER THE ORDERED OR PRICING UOM IS BASE UOM' ) ;
3554 END IF;
3555
3556 l_ordered_conversion := get_conversion_rate(
3557 in_uom_code => in_ordered_uom,
3558 in_base_uom => l_base_uom
3559 );
3560 IF l_debug_level > 0 THEN
3561 oe_debug_pub.add( 'THE ORD RATE ='||L_ORDERED_CONVERSION ) ;
3562 END IF;
3563 l_pricing_conversion := get_conversion_rate(
3564 in_uom_code => in_pricing_uom,
3565 in_base_uom => l_base_uom
3566 );
3567 IF l_debug_level > 0 THEN
3568 oe_debug_pub.add( 'THE PRICING RATE ='||L_PRICING_CONVERSION ) ;
3569 END IF;
3570
3571 out_conversion_rate := l_ordered_conversion/l_pricing_conversion;
3572 IF l_debug_level > 0 THEN
3573 oe_debug_pub.add( 'THE RATE ='||OUT_CONVERSION_RATE ) ;
3574 END IF;
3575
3576 -- Ordered Uom is the Base Uom,sending the pricing uom for conversion
3577 ELSIF in_ordered_uom = l_base_uom then
3578
3579 IF l_debug_level > 0 THEN
3580 oe_debug_pub.add( 'THE ORDERED UOM IS BASE UOM' ) ;
3581 END IF;
3582
3583 l_ordered_conversion := get_conversion_rate(
3584 in_uom_code => in_pricing_uom,
3585 in_base_uom => l_base_uom
3586 );
3587 out_conversion_rate := l_ordered_conversion;
3588 IF l_debug_level > 0 THEN
3589 oe_debug_pub.add( 'THE RATE ='||OUT_CONVERSION_RATE ) ;
3590 END IF;
3591
3592 -- Pricing Uom is the Base Uom
3593 ELSIF in_pricing_uom = l_base_uom then
3594
3595 IF l_debug_level > 0 THEN
3596 oe_debug_pub.add( 'THE PRICING UOM IS BASE UOM' ) ;
3597 END IF;
3598 l_pricing_conversion := get_conversion_rate(
3599 in_uom_code => in_ordered_uom,
3600 in_base_uom => l_base_uom
3601 );
3602 out_conversion_rate := l_pricing_conversion;
3603 IF l_debug_level > 0 THEN
3604 oe_debug_pub.add( 'THE RATE ='||OUT_CONVERSION_RATE ) ;
3605 END IF;
3606
3607 END IF;
3608
3609 END IF;
3610
3611 CLOSE c_base_uom;
3612
3613 END IF;
3614
3615 CLOSE c_class;
3616
3617 END IF;
3618 CLOSE c_items;
3619
3620 EXCEPTION
3621
3622 WHEN NO_DATA_FOUND THEN
3623 IF l_debug_level > 0 THEN
3624 oe_debug_pub.add( 'NO DATA FONUNG DIFFERENT_UOM ' ) ;
3625 END IF;
3626
3627 WHEN OTHERS THEN
3628 IF c_items%ISOPEN then
3629 CLOSE c_items;
3630 END IF;
3631 IF c_class%ISOPEN then
3632 CLOSE c_class;
3633 END IF;
3634 IF c_base_uom%ISOPEN then
3635 CLOSE c_base_uom;
3636 END IF;
3637 IF l_debug_level > 0 THEN
3638 oe_debug_pub.add( 'ERROR IN DIFFERENT_UOM '|| SQLCODE||SQLERRM ) ;
3639 END IF;
3640
3641 END different_uom;
3642
3643
3644
3645 FUNCTION get_conversion_rate (in_uom_code in varchar2,
3646 in_base_uom in varchar2
3647 ) RETURN number is
3648
3649
3650 CURSOR c_item_conversion IS
3651 SELECT round(1/conversion_rate,6)
3652 FROM mtl_uom_conversions
3653 WHERE uom_code = in_uom_code
3654 AND inventory_item_id = g_inventory_item_id;
3655
3656 CURSOR c_conversion IS
3657 SELECT round(1/conversion_rate,6)
3658 FROM mtl_uom_conversions
3659 WHERE uom_Code = in_uom_code
3660 AND inventory_item_id = 0;
3661
3662 CURSOR c_inter_class IS
3663 SELECT round(1/conversion_rate,6)
3664 FROM mtl_uom_class_conversions
3665 WHERE to_uom_code = in_uom_code
3666 AND from_uom_code = in_base_uom
3667 AND inventory_item_id = g_inventory_item_id;
3668
3669 l_conversion_rate number;
3670 l_uom_code varchar2(50);
3671
3672 --
3673 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3674 --
3675 BEGIN
3676
3677 IF l_debug_level > 0 THEN
3678 oe_debug_pub.add( 'INSIDE GET_CONVERSION_RATE '|| ' IN_UOM_CODE='||IN_UOM_CODE|| ' IN_BASE_UOM='||IN_BASE_UOM ) ;
3679 END IF;
3680
3681 OPEN c_item_conversion;
3682 FETCH c_item_conversion
3683 INTO l_conversion_rate;
3684
3685 IF c_item_conversion%NOTFOUND THEN
3686
3687 IF l_debug_level > 0 THEN
3688 oe_debug_pub.add( 'ITEM SPECIFIC CONVERSION RATE NOT FOUND' ) ;
3689 END IF;
3690
3691 OPEN c_conversion;
3692 FETCH c_conversion
3693 INTO l_conversion_rate;
3694
3695 IF c_conversion%NOTFOUND THEN
3696
3697 IF l_debug_level > 0 THEN
3698 oe_debug_pub.add( 'GENERIC CONVERSION NOT FOUND' ) ;
3699 END IF;
3700 OPEN c_inter_class;
3701 FETCH c_inter_class
3702 INTO l_conversion_rate;
3703
3704 IF c_inter_class%NOTFOUND THEN
3705 IF l_debug_level > 0 THEN
3706 oe_debug_pub.add( 'INTER CLASS RETURN RATE NOT FOUND= 1' ) ;
3707 END IF;
3708 l_conversion_rate := 1;
3709
3710 ELSE
3711 IF l_debug_level > 0 THEN
3712 oe_debug_pub.add( 'INTER CLASS RETURN RATE = '||L_CONVERSION_RATE ) ;
3713 END IF;
3714
3715 END IF;
3716 CLOSE c_inter_class;
3717
3718 ELSIF c_conversion%FOUND then
3719
3720 IF l_debug_level > 0 THEN
3721 oe_debug_pub.add( 'RETURN RATE GENERIC= '||L_CONVERSION_RATE ) ;
3722 END IF;
3723
3724 END IF;
3725 CLOSE c_conversion;
3726
3727 ELSIF c_item_conversion%FOUND THEN
3728
3729 IF l_debug_level > 0 THEN
3730 oe_debug_pub.add( 'ITEM SPECIFIC CONVERSION RATE='||L_CONVERSION_RATE ) ;
3731 END IF;
3732
3733 END IF;
3734 CLOSE c_item_conversion;
3735
3736 return l_conversion_rate;
3737
3738 EXCEPTION
3739
3740 WHEN ZERO_DIVIDE THEN
3741 IF l_debug_level > 0 THEN
3742 oe_debug_pub.add( 'DIVIDE BY ZERO ERROR IN_UOM_CODE='||IN_UOM_CODE|| ' BASE UOM='||IN_BASE_UOM ) ;
3743 END IF;
3744
3745 IF c_item_conversion%ISOPEN then
3746 CLOSE c_item_conversion;
3747 END IF;
3748 IF c_conversion%ISOPEN then
3749 CLOSE c_conversion;
3750 END IF;
3751 IF c_inter_class%ISOPEN then
3752 CLOSE c_inter_class;
3753 END IF;
3754
3755 WHEN OTHERS THEN
3756
3757 IF c_item_conversion%ISOPEN then
3758 CLOSE c_item_conversion;
3759 END IF;
3760 IF c_conversion%ISOPEN then
3761 CLOSE c_conversion;
3762 END IF;
3763 IF c_inter_class%ISOPEN then
3764 CLOSE c_inter_class;
3765 END IF;
3766 IF l_debug_level > 0 THEN
3767 oe_debug_pub.add( 'ERROR IN GET_CONVERSION_RATE '|| SQLCODE||SQLERRM ) ;
3768 END IF;
3769 return 1;
3770 END get_conversion_rate;
3771 PROCEDURE print_time(in_place in varchar2) IS
3772
3773 cursor c_hsecs is
3774 select hsecs
3775 from v$timer;
3776
3777 l_hsecs number;
3778 l_total number;
3779
3780 --
3781 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3782 --
3783 BEGIN
3784
3785 --print_time2;
3786 OPEN c_hsecs;
3787 FETCH c_hsecs
3788 INTO l_hsecs;
3789 CLOSE c_hsecs;
3790
3791 IF g_hsecs is null then
3792
3793 g_hsecs := l_hsecs;
3794 g_place := in_place;
3795 IF l_debug_level > 0 THEN
3796 oe_debug_pub.add( 'TIME STARTING AT PLACE '||G_PLACE||' TIME='||G_HSECS ) ;
3797 END IF;
3798
3799 ELSE
3800 l_total := (l_hsecs - g_hsecs)/100;
3801 g_total := g_total + l_total;
3802 IF l_debug_level > 0 THEN
3803 oe_debug_pub.add( 'TIME FROM ' ||G_PLACE||' TO '||IN_PLACE||' TIME DIFF='|| L_TOTAL||' SECONDS'||' TOTAL SO FAR='||G_TOTAL ) ;
3804 END IF;
3805 g_hsecs := l_hsecs;
3806 g_place := in_place;
3807
3808 END IF;
3809 --print_time2;
3810
3811 END print_time;
3812
3813
3814 PROCEDURE print_time2 IS
3815
3816 cursor c2_hsecs is
3817 select hsecs
3818 from v$timer;
3819
3820 l_hsecs number;
3821 l_total number;
3822
3823 --
3824 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3825 --
3826 BEGIN
3827
3828 OPEN c2_hsecs;
3829 FETCH c2_hsecs
3830 INTO l_hsecs;
3831 CLOSE c2_hsecs;
3832
3833 IF g_total2 is null then
3834 IF l_debug_level > 0 THEN
3835 oe_debug_pub.add( 'G_TOTAL2 IS NULL L_HSECS='||L_HSECS ) ;
3836 END IF;
3837 g_total2 := l_hsecs;
3838 ELSE
3839 IF l_debug_level > 0 THEN
3840 oe_debug_pub.add( 'L_HSECS='||L_HSECS||' TOTAL2='||G_TOTAL2 ) ;
3841 END IF;
3842 l_total := (l_hsecs - g_total2)/100;
3843 IF l_debug_level > 0 THEN
3844 oe_debug_pub.add( 'G_TOTAL2='||L_TOTAL ) ;
3845 END IF;
3846 g_total2 := l_hsecs;
3847 END IF;
3848
3849 END print_time2;
3850 END Oe_Related_Items_Pvt;