DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_RELATED_ITEMS_PVT

Source


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