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