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