DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_OE_FORM_LINE

Source


1 PACKAGE BODY oe_oe_form_line AS
2 /* $Header: OEXFLINB.pls 120.20.12010000.5 2009/01/22 09:10:35 cpati ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'Oe_Oe_Form_Line';
7 
8 --  Global variables holding cached record.
9 
10 g_line_rec                    OE_Order_PUB.Line_Rec_Type;
11 g_db_line_rec                 OE_Order_PUB.Line_Rec_Type;
12 g_current_header_id           NUMBER := 0;
13 --retro{Global variables for caching header_id and currency code
14 g_header_id                   NUMBER;
15 g_currency_code               VARCHAR2(15);
16 --retro}
17 
18 --  for 5331980 start
19 g_subtotal   NUMBER;
20 g_charges    NUMBER;
21 g_discount   NUMBER;
22 g_total_tax  NUMBER;
23 -- for 5331980 end
24 
25 --  Forward declaration of procedures maintaining entity record cache.
26 
27 PROCEDURE Write_line
28 (   p_line_rec                      IN  OE_Order_PUB.Line_Rec_Type
29 ,   p_db_record                     IN  BOOLEAN := FALSE
30 );
31 
32 -- Bug 1713035
33 -- Procedure Get_Line is now visible to other packages
34 /*
35 PROCEDURE Get_line
36 (   p_db_record                     IN  BOOLEAN := FALSE
37 ,   p_line_id                       IN  NUMBER
38 ,   x_line_rec                      OUT NOCOPY  OE_Order_PUB.Line_Rec_Type
39 );
40 */
41 
42 PROCEDURE Clear_line;
43 
44 PROCEDURE get_customer_details ( p_site_use_id IN NUMBER,
45                                  p_site_use_code IN VARCHAR2,
46 x_customer_id OUT NOCOPY NUMBER,
47 x_customer_name OUT NOCOPY VARCHAR2,
48 x_customer_number OUT NOCOPY VARCHAR2
49                                    );
50 
51 
52 FUNCTION Get_Date_Type(p_header_id IN NUMBER)
53 RETURN VARCHAR2;
54 
55 --  Global variable holding performed operations.
56 
57 g_opr__tbl                    OE_Order_PUB.Line_Tbl_Type;
58 
59 --  Procedure : Default_Attributes
60 --
61 
62 PROCEDURE Default_Attributes
63 ( x_return_status OUT NOCOPY VARCHAR2
64 , x_msg_count OUT NOCOPY NUMBER
65 , x_msg_data OUT NOCOPY VARCHAR2
66 ,   p_header_id                     IN  NUMBER
67 ,   x_line_tbl                      IN OUT NOCOPY OE_ORDER_PUB.Line_Tbl_Type
68 ,   x_old_line_tbl                  IN OUT NOCOPY OE_ORDER_PUB.Line_Tbl_Type
69 ,   x_line_val_tbl                  IN OUT NOCOPY OE_ORDER_PUB.Line_Val_Tbl_Type
70 
71 )
72 IS
73 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
74 l_return_status               VARCHAR2(1);
75 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
76 l_error NUMBER := 0;
77 --
78 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
79 --
80 BEGIN
81 
82     IF l_debug_level  > 0 THEN
83         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE.DEFAULT_ATTRIBUTES' , 1 ) ;
84     END IF;
85 
86   l_error := 1;
87     -- Set UI flag to TRUE
88     OE_GLOBALS.G_UI_FLAG := TRUE;
89 
90     --  Set control flags.
91 
92     l_control_rec.controlled_operation := TRUE;
93     l_control_rec.check_security        := TRUE;
94     l_control_rec.default_attributes   := TRUE;
95     l_control_rec.change_attributes    := TRUE;
96 
97     l_control_rec.clear_dependents     := FALSE;
98     l_control_rec.validate_entity      := FALSE;
99     l_control_rec.write_to_DB          := FALSE;
100     l_control_rec.process              := FALSE;
101 
102     --  Instruct API to retain its caches
103 
104     l_control_rec.clear_api_cache      := FALSE;
105     l_control_rec.clear_api_requests   := FALSE;
106 
107     --  Load IN parameters if any exist
108     x_old_line_tbl(1)     :=OE_ORDER_PUB.G_MISS_LINE_REC;
109     x_line_tbl(1)         :=OE_ORDER_PUB.G_MISS_LINE_REC;
110     x_line_tbl(1).header_id                := p_header_id;
111 
112     --  Defaulting of flex values is currently done by the form.
113     --  Set flex attributes to NULL in order to avoid defaulting them.
114 
115     x_line_tbl(1).attribute1                         := NULL;
116     x_line_tbl(1).attribute10                        := NULL;
117     x_line_tbl(1).attribute11                        := NULL;
118     x_line_tbl(1).attribute12                        := NULL;
119     x_line_tbl(1).attribute13                        := NULL;
120     x_line_tbl(1).attribute14                        := NULL;
121     x_line_tbl(1).attribute15                        := NULL;
122     x_line_tbl(1).attribute2                         := NULL;
123     x_line_tbl(1).attribute3                         := NULL;
124     x_line_tbl(1).attribute4                         := NULL;
125     x_line_tbl(1).attribute5                         := NULL;
126     x_line_tbl(1).attribute6                         := NULL;
127     x_line_tbl(1).attribute7                         := NULL;
128     x_line_tbl(1).attribute8                         := NULL;
129     x_line_tbl(1).attribute9                         := NULL;
130     x_line_tbl(1).context                            := NULL;
131     x_line_tbl(1).global_attribute1                  := NULL;
132     x_line_tbl(1).global_attribute10                 := NULL;
133     x_line_tbl(1).global_attribute11                 := NULL;
134     x_line_tbl(1).global_attribute12                 := NULL;
135     x_line_tbl(1).global_attribute13                 := NULL;
136     x_line_tbl(1).global_attribute14                 := NULL;
137     x_line_tbl(1).global_attribute15                 := NULL;
138     x_line_tbl(1).global_attribute16                 := NULL;
139     x_line_tbl(1).global_attribute17                 := NULL;
140     x_line_tbl(1).global_attribute18                 := NULL;
141     x_line_tbl(1).global_attribute19                 := NULL;
142     x_line_tbl(1).global_attribute2                  := NULL;
143     x_line_tbl(1).global_attribute20                 := NULL;
144     x_line_tbl(1).global_attribute3                  := NULL;
145     x_line_tbl(1).global_attribute4                  := NULL;
146     x_line_tbl(1).global_attribute5                  := NULL;
147     x_line_tbl(1).global_attribute6                  := NULL;
148     x_line_tbl(1).global_attribute7                  := NULL;
149     x_line_tbl(1).global_attribute8                  := NULL;
150     x_line_tbl(1).global_attribute9                  := NULL;
151     x_line_tbl(1).global_attribute_category          := NULL;
152     x_line_tbl(1).industry_attribute1                := NULL;
153     x_line_tbl(1).industry_attribute10               := NULL;
154     x_line_tbl(1).industry_attribute11               := NULL;
155     x_line_tbl(1).industry_attribute12               := NULL;
156     x_line_tbl(1).industry_attribute13               := NULL;
157     x_line_tbl(1).industry_attribute14               := NULL;
158     x_line_tbl(1).industry_attribute15               := NULL;
159     x_line_tbl(1).industry_attribute16               := NULL;
160     x_line_tbl(1).industry_attribute17               := NULL;
161     x_line_tbl(1).industry_attribute18               := NULL;
162     x_line_tbl(1).industry_attribute19               := NULL;
163     x_line_tbl(1).industry_attribute2                := NULL;
164     x_line_tbl(1).industry_attribute20               := NULL;
165     x_line_tbl(1).industry_attribute21               := NULL;
166     x_line_tbl(1).industry_attribute22               := NULL;
167     x_line_tbl(1).industry_attribute23               := NULL;
168     x_line_tbl(1).industry_attribute24               := NULL;
169     x_line_tbl(1).industry_attribute25               := NULL;
170     x_line_tbl(1).industry_attribute26               := NULL;
171     x_line_tbl(1).industry_attribute27               := NULL;
172     x_line_tbl(1).industry_attribute28               := NULL;
173     x_line_tbl(1).industry_attribute29               := NULL;
174     x_line_tbl(1).industry_attribute3                := NULL;
175     x_line_tbl(1).industry_attribute30               := NULL;
176     x_line_tbl(1).industry_attribute4                := NULL;
177     x_line_tbl(1).industry_attribute5                := NULL;
178     x_line_tbl(1).industry_attribute6                := NULL;
179     x_line_tbl(1).industry_attribute7                := NULL;
180     x_line_tbl(1).industry_attribute8                := NULL;
181     x_line_tbl(1).industry_attribute9                := NULL;
182     x_line_tbl(1).industry_context                   := NULL;
183     x_line_tbl(1).pricing_attribute1                 := NULL;
184     x_line_tbl(1).pricing_attribute10                := NULL;
185     x_line_tbl(1).pricing_attribute2                 := NULL;
186     x_line_tbl(1).pricing_attribute3                 := NULL;
187     x_line_tbl(1).pricing_attribute4                 := NULL;
188     x_line_tbl(1).pricing_attribute5                 := NULL;
189     x_line_tbl(1).pricing_attribute6                 := NULL;
190     x_line_tbl(1).pricing_attribute7                 := NULL;
191     x_line_tbl(1).pricing_attribute8                 := NULL;
192     x_line_tbl(1).pricing_attribute9                 := NULL;
193     x_line_tbl(1).pricing_context                    := NULL;
194     x_line_tbl(1).return_attribute1                  := NULL;
195     x_line_tbl(1).return_attribute10                 := NULL;
196     x_line_tbl(1).return_attribute11                 := NULL;
197     x_line_tbl(1).return_attribute12                 := NULL;
198     x_line_tbl(1).return_attribute13                 := NULL;
199     x_line_tbl(1).return_attribute14                 := NULL;
200     x_line_tbl(1).return_attribute15                 := NULL;
201     x_line_tbl(1).return_attribute2                  := NULL;
202     x_line_tbl(1).return_attribute3                  := NULL;
203     x_line_tbl(1).return_attribute4                  := NULL;
204     x_line_tbl(1).return_attribute5                  := NULL;
205     x_line_tbl(1).return_attribute6                  := NULL;
206     x_line_tbl(1).return_attribute7                  := NULL;
207     x_line_tbl(1).return_attribute8                  := NULL;
208     x_line_tbl(1).return_attribute9                  := NULL;
209     x_line_tbl(1).return_context                     := NULL;
210     x_line_tbl(1).tp_attribute1                         := NULL;
211     x_line_tbl(1).tp_attribute10                        := NULL;
212     x_line_tbl(1).tp_attribute11                        := NULL;
213     x_line_tbl(1).tp_attribute12                        := NULL;
214     x_line_tbl(1).tp_attribute13                        := NULL;
215     x_line_tbl(1).tp_attribute14                        := NULL;
216     x_line_tbl(1).tp_attribute15                        := NULL;
217     x_line_tbl(1).tp_attribute2                         := NULL;
218     x_line_tbl(1).tp_attribute3                         := NULL;
219     x_line_tbl(1).tp_attribute4                         := NULL;
220     x_line_tbl(1).tp_attribute5                         := NULL;
221     x_line_tbl(1).tp_attribute6                         := NULL;
222     x_line_tbl(1).tp_attribute7                         := NULL;
223     x_line_tbl(1).tp_attribute8                         := NULL;
224     x_line_tbl(1).tp_attribute9                         := NULL;
225     x_line_tbl(1).tp_context                            := NULL;
226 
227     --  Set Operation to Create
228 
229   l_error := 2;
230     x_line_tbl(1).operation := OE_GLOBALS.G_OPR_CREATE;
231 
232     --  Populate line table
233 
234 
235     IF l_debug_level  > 0 THEN
236         oe_debug_pub.add(  'LINE CONTROLLER - DEFAULT ATTRIBUTES - CALLING PROCESS' , 2 ) ;
237     END IF;
238 
239     --  Call Oe_Order_Pvt.Process_order
240 
241   l_error := 3;
242 
243     Oe_Order_Pvt.Lines
244     (   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
245     ,   p_init_msg_list               => FND_API.G_TRUE
246     ,   p_control_rec                 => l_control_rec
247     ,   p_x_line_tbl                  => x_line_tbl
248     ,   p_x_old_line_tbl              => x_old_line_tbl
249     ,   x_return_status               => l_return_status
250     );
251 
252   l_error := 3;
253     IF l_debug_level  > 0 THEN
254         oe_debug_pub.add(  'LINE CONTROLLER - DEFAULT ATTRIBUTES - AFTER PROCESS' , 2 ) ;
255     END IF;
256 
257     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
258         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
259     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
260         RAISE FND_API.G_EXC_ERROR;
261     END IF;
262 
263 
264     --  Unload OUT
265 
266 --    l_x_line_rec := x_line_tbl(1);
267 
268 
269     --  Load display OUT parameters if any
270      x_line_val_tbl(1):=OE_ORDER_PUB.G_MISS_LINE_VAL_REC;
271      x_line_val_tbl(1):=OE_Line_Util.Get_Values
272     (   p_line_rec                    => x_line_tbl(1)
273     );
274     --  Write to cache.
275     --  Set db_flag to False before writing to cache
276 
277     IF l_debug_level  > 0 THEN
278         oe_debug_pub.add(  'LINE CONTROLLER - DEFAULT ATTRIBUTES - CALLING WRITE LINE' , 2 ) ;
279     END IF;
280 
281     x_line_tbl(1).db_flag := FND_API.G_FALSE;
282 
283     Write_line
284     (   p_line_rec                    => x_line_tbl(1)
285     );
286 
287     -- Re-set the UI flag to FALSE
288     OE_GLOBALS.G_UI_FLAG := FALSE;
289 
290     --  Set return status.
291 
292     x_return_status := FND_API.G_RET_STS_SUCCESS;
293 
294     --  Get message count and data
295 
296     oe_msg_pub.count_and_get
297     (   p_count                       => x_msg_count
298     ,   p_data                        => x_msg_data
299     );
300 
301     IF l_debug_level  > 0 THEN
302         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE.DEFAULT_ATTRIBUTES' , 1 ) ;
303     END IF;
304 
305 EXCEPTION
306 
307     WHEN FND_API.G_EXC_ERROR THEN
308 
309        OE_GLOBALS.G_UI_FLAG := FALSE;
310 
311         x_return_status := FND_API.G_RET_STS_ERROR;
312 
313         --  Get message count and data
314 
315         oe_msg_pub.count_and_get
316         (   p_count                       => x_msg_count
317         ,   p_data                        => x_msg_data
318         );
319 
320     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
321 
322        OE_GLOBALS.G_UI_FLAG := FALSE;
323 
324         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
325 
326         --  Get message count and data
327 
328         oe_msg_pub.count_and_get
329         (   p_count                       => x_msg_count
330         ,   p_data                        => x_msg_data
331         );
332 
333     WHEN OTHERS THEN
334 
335        OE_GLOBALS.G_UI_FLAG := FALSE;
336 
337         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
338 
339         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
340         THEN
341             oe_msg_pub.Add_Exc_Msg
342             (   G_PKG_NAME
343             ,   'Default_Attributes' || l_error
344             );
345         END IF;
346 
347         --  Get message count and data
348 
349         oe_msg_pub.count_and_get
350         (   p_count                       => x_msg_count
351         ,   p_data                        => x_msg_data
352         );
353 
354 END Default_Attributes;
355 
356 PROCEDURE Copy_Attribute_To_Rec
357 (   p_attr_id                       IN  NUMBER
358 ,   p_attr_value                    IN  VARCHAR2
359 ,   p_line_dff_rec                  IN  OE_OE_FORM_LINE.line_dff_rec_type
360 ,   p_date_format_mask              IN  VARCHAR2 DEFAULT 'DD-MON-YYYY HH24:MI:SS'
361 ,   x_line_tbl                      IN OUT NOCOPY OE_Order_PUB.Line_Tbl_Type
362 ,   x_old_line_tbl                  IN OUT NOCOPY OE_ORDER_PUB.Line_Tbl_Type
363 )
364 IS
365 l_date_format_mask            VARCHAR2(30) := p_date_format_mask;
366 --
367 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
368 --
369 BEGIN
370     IF l_debug_level  > 0 THEN
371        oe_debug_pub.add(  'ATTRIBUTE VALUE : '|| P_ATTR_VALUE ) ;   --bug 5179564
372     END IF;
373 
374     IF p_attr_id = OE_Line_Util.G_ACCOUNTING_RULE THEN
375         x_line_tbl(1).accounting_rule_id := TO_NUMBER(p_attr_value);
376     ELSIF p_attr_id = OE_Line_Util.G_ACCOUNTING_RULE_DURATION THEN
377         x_line_tbl(1).accounting_rule_duration := TO_NUMBER(p_attr_value);
378     ELSIF p_attr_id = OE_Line_Util.G_ACTUAL_ARRIVAL_DATE THEN
379       --  x_line_tbl(1).actual_arrival_date := TO_DATE(p_attr_value, l_date_format_mask);
380        x_line_tbl(1).actual_arrival_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
381     ELSIF p_attr_id = OE_Line_Util.G_ACTUAL_SHIPMENT_DATE THEN
382       --  x_line_tbl(1).actual_shipment_date := TO_DATE(p_attr_value, l_date_format_mask);
383       x_line_tbl(1).actual_shipment_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
384     ELSIF p_attr_id = OE_Line_Util.G_AGREEMENT THEN
385         x_line_tbl(1).agreement_id := TO_NUMBER(p_attr_value);
386    ELSIF p_attr_id = OE_Line_Util.G_IB_OWNER THEN
387           x_line_tbl(1).ib_owner := p_attr_value;
388     ELSIF p_attr_id = OE_Line_Util.G_IB_INSTALLED_AT_LOCATION THEN
389           x_line_tbl(1).ib_installed_at_location := p_attr_value;
390     ELSIF p_attr_id = OE_Line_Util.G_IB_CURRENT_LOCATION THEN
391           x_line_tbl(1).ib_current_location := p_attr_value;
392     ELSIF p_attr_id = OE_Line_Util.G_END_CUSTOMER_SITE_USE THEN
393           x_line_tbl(1).end_customer_site_use_id := TO_NUMBER(p_attr_value);
394     ELSIF p_attr_id = OE_Line_Util.G_END_CUSTOMER_CONTACT THEN
395           x_line_tbl(1).end_customer_contact_id := TO_NUMBER(p_attr_value);
396     ELSIF p_attr_id = OE_Line_Util.G_END_CUSTOMER THEN
397           x_line_tbl(1).end_customer_id := TO_NUMBER(p_attr_value);
398     ELSIF p_attr_id = OE_Line_Util.G_ATO_LINE THEN
399         x_line_tbl(1).ato_line_id := TO_NUMBER(p_attr_value);
400     ELSIF p_attr_id = OE_Line_Util.G_AUTO_SELECTED_QUANTITY THEN
401         x_line_tbl(1).auto_selected_quantity := TO_NUMBER(p_attr_value);
402     ELSIF p_attr_id = OE_Line_Util.G_BLANKET_NUMBER THEN
403           x_line_tbl(1).blanket_number := TO_NUMBER(p_attr_value);
404     ELSIF p_attr_id = OE_Line_Util.G_BLANKET_LINE_NUMBER THEN
405           x_line_tbl(1).blanket_line_number := TO_NUMBER(p_attr_value);
406     ELSIF p_attr_id = OE_Line_Util.G_BLANKET_VERSION_NUMBER THEN
407           x_line_tbl(1).blanket_version_number := TO_NUMBER(p_attr_value);
408     ELSIF p_attr_id = OE_Line_Util.G_BOOKED THEN
409         x_line_tbl(1).booked_flag := p_attr_value;
410     ELSIF p_attr_id = OE_Line_Util.G_CANCELLED THEN
411         x_line_tbl(1).cancelled_flag := p_attr_value;
412     ELSIF p_attr_id = OE_Line_Util.G_CANCELLED_QUANTITY THEN
413         x_line_tbl(1).cancelled_quantity := TO_NUMBER(p_attr_value);
414     ELSIF p_attr_id = OE_Line_Util.G_COMPONENT THEN
415         x_line_tbl(1).component_code := p_attr_value;
416     ELSIF p_attr_id = OE_Line_Util.G_COMPONENT_NUMBER THEN
417         x_line_tbl(1).component_number := p_attr_value;
418     ELSIF p_attr_id = OE_Line_Util.G_COMPONENT_SEQUENCE THEN
419         x_line_tbl(1).component_sequence_id := TO_NUMBER(p_attr_value);
420     ELSIF p_attr_id = OE_Line_Util.G_CONFIG_DISPLAY_SEQUENCE THEN
421         x_line_tbl(1).config_display_sequence := TO_NUMBER(p_attr_value);
422     ELSIF p_attr_id = OE_Line_Util.G_CONFIGURATION THEN
423         x_line_tbl(1).configuration_id := TO_NUMBER(p_attr_value);
424     ELSIF p_attr_id = OE_Line_Util.G_CONFIG_HEADER THEN
425         x_line_tbl(1).config_header_id := TO_NUMBER(p_attr_value);
426     ELSIF p_attr_id = OE_Line_Util.G_CONFIG_REV_NBR THEN
427         x_line_tbl(1).config_rev_nbr := TO_NUMBER(p_attr_value);
428     ELSIF p_attr_id = OE_Line_Util.G_CREDIT_INVOICE_LINE THEN
429         x_line_tbl(1).credit_invoice_line_id := TO_NUMBER(p_attr_value);
430     ELSIF p_attr_id = OE_Line_Util.G_CUSTOMER_DOCK THEN
431         x_line_tbl(1).customer_dock_code := p_attr_value;
432     ELSIF p_attr_id = OE_Line_Util.G_CUSTOMER_JOB THEN
433         x_line_tbl(1).customer_job := p_attr_value;
434     ELSIF p_attr_id = OE_Line_Util.G_CUSTOMER_PRODUCTION_LINE THEN
435         x_line_tbl(1).customer_production_line := p_attr_value;
436     ELSIF p_attr_id = OE_Line_Util.G_CUSTOMER_TRX_LINE THEN
437         x_line_tbl(1).customer_trx_line_id := TO_NUMBER(p_attr_value);
438     ELSIF p_attr_id = OE_Line_Util.G_CUST_MODEL_SERIAL_NUMBER THEN
439         x_line_tbl(1).cust_model_serial_number := p_attr_value;
440     ELSIF p_attr_id = OE_Line_Util.G_CUST_PO_NUMBER THEN
441         x_line_tbl(1).cust_po_number := p_attr_value;
442     ELSIF p_attr_id = OE_Line_Util.G_DELIVERY_LEAD_TIME THEN
443         x_line_tbl(1).delivery_lead_time := TO_NUMBER(p_attr_value);
444     ELSIF p_attr_id = OE_Line_Util.G_DELIVER_TO_CONTACT THEN
445         x_line_tbl(1).deliver_to_contact_id := TO_NUMBER(p_attr_value);
446     ELSIF p_attr_id = OE_Line_Util.G_DELIVER_TO_ORG THEN
447         x_line_tbl(1).deliver_to_org_id := TO_NUMBER(p_attr_value);
448     ELSIF p_attr_id = OE_Line_Util.G_DEMAND_BUCKET_TYPE THEN
449         x_line_tbl(1).demand_bucket_type_code := p_attr_value;
450     ELSIF p_attr_id = OE_Line_Util.G_DEMAND_CLASS THEN
451         x_line_tbl(1).demand_class_code := p_attr_value;
452     ELSIF p_attr_id = OE_Line_Util.G_DEP_PLAN_REQUIRED THEN
453         x_line_tbl(1).dep_plan_required_flag := p_attr_value;
454     ELSIF p_attr_id = OE_Line_Util.G_EARLIEST_ACCEPTABLE_DATE THEN
455        -- x_line_tbl(1).earliest_acceptable_date := TO_DATE(p_attr_value, l_date_format_mask);
456           x_line_tbl(1).earliest_acceptable_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
457     ELSIF p_attr_id = OE_Line_Util.G_EXPLOSION_DATE THEN
458        -- x_line_tbl(1).explosion_date := TO_DATE(p_attr_value, l_date_format_mask);
459        x_line_tbl(1).explosion_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
460     ELSIF p_attr_id = OE_Line_Util.G_FOB_POINT THEN
461         x_line_tbl(1).fob_point_code := p_attr_value;
462     ELSIF p_attr_id = OE_Line_Util.G_FREIGHT_CARRIER THEN
463         x_line_tbl(1).freight_carrier_code := p_attr_value;
464     ELSIF p_attr_id = OE_Line_Util.G_FREIGHT_TERMS THEN
465         x_line_tbl(1).freight_terms_code := p_attr_value;
466     ELSIF p_attr_id = OE_Line_Util.G_FULFILLED_QUANTITY THEN
467         x_line_tbl(1).fulfilled_quantity := TO_NUMBER(p_attr_value);
468     ELSIF p_attr_id = OE_Line_Util.G_HEADER THEN
469         x_line_tbl(1).header_id := TO_NUMBER(p_attr_value);
470     ELSIF p_attr_id = OE_Line_Util.G_INTERMED_SHIP_TO_CONTACT THEN
471         x_line_tbl(1).intermed_ship_to_contact_id := TO_NUMBER(p_attr_value);
472     ELSIF p_attr_id = OE_Line_Util.G_INTERMED_SHIP_TO_ORG THEN
473         x_line_tbl(1).intermed_ship_to_org_id := TO_NUMBER(p_attr_value);
474     ELSIF p_attr_id = OE_Line_Util.G_INVENTORY_ITEM THEN
475         x_line_tbl(1).inventory_item_id := TO_NUMBER(p_attr_value);
476     ELSIF p_attr_id = OE_Line_Util.G_INVOICE_INTERFACE_STATUS THEN
477         x_line_tbl(1).invoice_interface_status_code := p_attr_value;
478     ELSIF p_attr_id = OE_Line_Util.G_INVOICE_TO_CONTACT THEN
479         x_line_tbl(1).invoice_to_contact_id := TO_NUMBER(p_attr_value);
480     ELSIF p_attr_id = OE_Line_Util.G_INVOICE_TO_ORG THEN
481         x_line_tbl(1).invoice_to_org_id := TO_NUMBER(p_attr_value);
482     ELSIF p_attr_id = OE_Line_Util.G_INVOICED_QUANTITY THEN
483         x_line_tbl(1).invoiced_quantity := TO_NUMBER(p_attr_value);
484     ELSIF p_attr_id = OE_Line_Util.G_INVOICING_RULE THEN
485         x_line_tbl(1).invoicing_rule_id := TO_NUMBER(p_attr_value);
486     ELSIF p_attr_id = OE_Line_Util.G_ORDERED_ITEM_ID THEN
487         x_line_tbl(1).ordered_item_id := TO_NUMBER(p_attr_value);
488     ELSIF p_attr_id = OE_Line_Util.G_ITEM_IDENTIFIER_TYPE THEN
489         x_line_tbl(1).item_identifier_type := p_attr_value;
490     ELSIF p_attr_id = OE_Line_Util.G_ORDERED_ITEM THEN
491         x_line_tbl(1).ordered_item := p_attr_value;
492     ELSIF p_attr_id = OE_Line_Util.G_ITEM_REVISION THEN
493         x_line_tbl(1).item_revision := p_attr_value;
494     ELSIF p_attr_id = OE_Line_Util.G_ITEM_TYPE THEN
495         x_line_tbl(1).item_type_code := p_attr_value;
496     ELSIF p_attr_id = OE_Line_Util.G_LATEST_ACCEPTABLE_DATE THEN
497        -- x_line_tbl(1).latest_acceptable_date := TO_DATE(p_attr_value, l_date_format_mask);
498        x_line_tbl(1).latest_acceptable_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
499     ELSIF p_attr_id = OE_Line_Util.G_LATE_DEMAND_PENALTY_FACTOR THEN
500         x_line_tbl(1).late_demand_penalty_factor := TO_NUMBER(p_attr_value);
501     ELSIF p_attr_id = OE_Line_Util.G_LINE_CATEGORY THEN
502         x_line_tbl(1).line_category_code := p_attr_value;
503         x_line_tbl(1).line_type_id := FND_API.G_MISS_NUM;
504     ELSIF p_attr_id = OE_Line_Util.G_LINE THEN
505         x_line_tbl(1).line_id := TO_NUMBER(p_attr_value);
506     ELSIF p_attr_id = OE_Line_Util.G_LINE_NUMBER THEN
507         x_line_tbl(1).line_number := TO_NUMBER(p_attr_value);
508     ELSIF p_attr_id = OE_Line_Util.G_LINE_TYPE THEN
509         x_line_tbl(1).line_type_id := TO_NUMBER(p_attr_value);
510     ELSIF p_attr_id = OE_Line_Util.G_LINK_TO_LINE THEN
511         x_line_tbl(1).link_to_line_id := TO_NUMBER(p_attr_value);
512     ELSIF p_attr_id = OE_Line_Util.G_MODEL_GROUP_NUMBER THEN
513         x_line_tbl(1).model_group_number := TO_NUMBER(p_attr_value);
514     ELSIF p_attr_id = OE_Line_Util.G_OPEN THEN
515         x_line_tbl(1).open_flag := p_attr_value;
516     ELSIF p_attr_id = OE_Line_Util.G_OPTION_FLAG THEN
517         x_line_tbl(1).option_flag := p_attr_value;
518     ELSIF p_attr_id = OE_Line_Util.G_OPTION_NUMBER THEN
519         x_line_tbl(1).option_number := TO_NUMBER(p_attr_value);
520     ELSIF p_attr_id = OE_Line_Util.G_ORDERED_QUANTITY THEN
521         x_line_tbl(1).ordered_quantity := FND_NUMBER.CANONICAL_TO_NUMBER(p_attr_value); --bug 5179564
522     ELSIF p_attr_id = OE_Line_Util.G_ORDER_QUANTITY_UOM THEN
523         x_line_tbl(1).order_quantity_uom := p_attr_value;
524     ELSIF p_attr_id = OE_Line_Util.G_ORDERED_QUANTITY2 THEN       --OPM
525         x_line_tbl(1).ordered_quantity2 := FND_NUMBER.CANONICAL_TO_NUMBER(p_attr_value); --bug 5179564
526     ELSIF p_attr_id = OE_Line_Util.G_ORDERED_QUANTITY_UOM2 THEN   --OPM
527         x_line_tbl(1).ordered_quantity_uom2 := p_attr_value;
528 
529     ELSIF p_attr_id = OE_Line_Util.G_ORG THEN
530         x_line_tbl(1).org_id := TO_NUMBER(p_attr_value);
531     ELSIF p_attr_id = OE_Line_Util.G_ORIG_SYS_DOCUMENT_REF THEN
532         x_line_tbl(1).orig_sys_document_ref := p_attr_value;
533     ELSIF p_attr_id = OE_Line_Util.G_ORIG_SYS_LINE_REF THEN
534         x_line_tbl(1).orig_sys_line_ref := p_attr_value;
535     ELSIF p_attr_id = OE_Line_Util.G_ORIG_SYS_SHIPMENT_REF THEN
536         x_line_tbl(1).orig_sys_shipment_ref := p_attr_value;
537     ELSIF p_attr_id = OE_Line_Util.G_ORIGINAL_INVENTORY_ITEM THEN
538         x_line_tbl(1).original_inventory_item_id:= to_number(p_attr_value);
539     ELSIF p_attr_id = OE_Line_Util.G_ORIGINAL_ORDERED_ITEM THEN
540         x_line_tbl(1).original_ordered_item := p_attr_value;
541     ELSIF p_attr_id = OE_Line_Util.G_ORIGINAL_ORDERED_ITEM_ID THEN
542         x_line_tbl(1).original_ordered_item_id := to_number(p_attr_value);
543     ELSIF p_attr_id = OE_Line_Util.G_ORIGINAL_ITEM_IDEN_TYPE THEN
544         x_line_tbl(1).original_item_identifier_type := p_attr_value;
545     ELSIF p_attr_id = OE_Line_Util.G_ITEM_RELATIONSHIP_TYPE THEN
546         x_line_tbl(1).item_relationship_type := to_number(p_attr_value);
547     ELSIF p_attr_id = OE_Line_Util.G_PAYMENT_TERM THEN
548         x_line_tbl(1).payment_term_id := TO_NUMBER(p_attr_value);
549     ELSIF p_attr_id = OE_Line_Util.G_PLANNING_PRIORITY THEN
550         x_line_tbl(1).planning_priority := TO_NUMBER(p_attr_value);
551     ELSIF p_attr_id = OE_Line_Util.G_PREFERRED_GRADE THEN         --OPM
552         x_line_tbl(1).preferred_grade := p_attr_value;
553 
554     ELSIF p_attr_id = OE_Line_Util.G_PRICE_LIST THEN
555         x_line_tbl(1).price_list_id := TO_NUMBER(p_attr_value);
556     ELSIF p_attr_id = OE_Line_Util.G_PRICING_DATE THEN
557        -- x_line_tbl(1).pricing_date := TO_DATE(p_attr_value, l_date_format_mask);
558        x_line_tbl(1).pricing_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
559     ELSIF p_attr_id = OE_Line_Util.G_PRICING_QUANTITY THEN
560         x_line_tbl(1).pricing_quantity := TO_NUMBER(p_attr_value);
561     ELSIF p_attr_id = OE_Line_Util.G_PRICING_QUANTITY_UOM THEN
562         x_line_tbl(1).pricing_quantity_uom := p_attr_value;
563     ELSIF p_attr_id = OE_Line_Util.G_PROJECT THEN
564         x_line_tbl(1).project_id := TO_NUMBER(p_attr_value);
565     ELSIF p_attr_id = OE_Line_Util.G_PROMISE_DATE THEN
566       --  x_line_tbl(1).promise_date := TO_DATE(p_attr_value, l_date_format_mask);
567        x_line_tbl(1).promise_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
568     ELSIF p_attr_id = OE_Line_Util.G_REFERENCE_CUSTOMER_TRX_LINE THEN
569         x_line_tbl(1).reference_customer_trx_line_id := TO_NUMBER(p_attr_value);
570     ELSIF p_attr_id = OE_Line_Util.G_REFERENCE_HEADER THEN
571         x_line_tbl(1).reference_header_id := TO_NUMBER(p_attr_value);
572     ELSIF p_attr_id = OE_Line_Util.G_REFERENCE_LINE THEN
573         x_line_tbl(1).reference_line_id := TO_NUMBER(p_attr_value);
574     ELSIF p_attr_id = OE_Line_Util.G_REFERENCE_TYPE THEN
575         NULL;
576     ELSIF p_attr_id = OE_Line_Util.G_REQUEST_DATE THEN
577        -- x_line_tbl(1).request_date := TO_DATE(p_attr_value, l_date_format_mask);
578        x_line_tbl(1).request_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
579     ELSIF p_attr_id = OE_Line_Util.G_RESERVED_QUANTITY THEN
580         x_line_tbl(1).reserved_quantity := p_attr_value;
581     ELSIF p_attr_id = OE_Line_Util.G_RLA_SCHEDULE_TYPE THEN
582         x_line_tbl(1).rla_schedule_type_code := p_attr_value;
583     ELSIF p_attr_id = OE_Line_Util.G_SCHEDULE_ARRIVAL_DATE THEN
584        -- x_line_tbl(1).schedule_arrival_date := TO_DATE(p_attr_value, l_date_format_mask);
585        x_line_tbl(1).schedule_arrival_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
586     ELSIF p_attr_id = OE_Line_Util.G_SCHEDULE_SHIP_DATE THEN
587        /* x_line_tbl(1).schedule_ship_date :=
588                   TO_DATE(p_attr_value, l_date_format_mask);*/
589        x_line_tbl(1).schedule_ship_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
590     ELSIF p_attr_id = OE_Line_Util.G_EARLIEST_SHIP_DATE THEN
591       /*  x_line_tbl(1).earliest_ship_date :=
592                   TO_DATE(p_attr_value, l_date_format_mask);*/
593        x_line_tbl(1).earliest_ship_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
594     ELSIF p_attr_id = OE_Line_Util.G_FIRM_DEMAND THEN
595         x_line_tbl(1).firm_demand_flag := p_attr_value;
596     ELSIF p_attr_id = OE_Line_Util.G_SCHEDULE_ACTION THEN
597         x_line_tbl(1).schedule_action_code := p_attr_value;
598     ELSIF p_attr_id = OE_Line_Util.G_OVERRIDE_ATP_DATE THEN
599        x_line_tbl(1).override_atp_date_code := p_attr_value;
600     ELSIF p_attr_id = OE_Line_Util.G_SCHEDULE_STATUS THEN
601         x_line_tbl(1).schedule_status_code := p_attr_value;
602     ELSIF p_attr_id = OE_Line_Util.G_SHIPMENT_NUMBER THEN
603         x_line_tbl(1).shipment_number := TO_NUMBER(p_attr_value);
604     ELSIF p_attr_id = OE_Line_Util.G_SHIPMENT_PRIORITY THEN
605         x_line_tbl(1).shipment_priority_code := p_attr_value;
606     ELSIF p_attr_id = OE_Line_Util.G_SHIPPED_QUANTITY THEN
607         x_line_tbl(1).shipped_quantity := TO_NUMBER(p_attr_value);
608     ELSIF p_attr_id = OE_Line_Util.G_SHIPPING_METHOD THEN
609         x_line_tbl(1).shipping_method_code := p_attr_value;
610     ELSIF p_attr_id = OE_Line_Util.G_SHIPPING_QUANTITY THEN
611         x_line_tbl(1).shipping_quantity := TO_NUMBER(p_attr_value);
612     ELSIF p_attr_id = OE_Line_Util.G_SHIPPING_QUANTITY_UOM THEN
613         x_line_tbl(1).shipping_quantity_uom := p_attr_value;
614     ELSIF p_attr_id = OE_Line_Util.G_SHIP_FROM_ORG THEN
615         x_line_tbl(1).ship_from_org_id := TO_NUMBER(p_attr_value);
616     ELSIF p_attr_id = OE_Line_Util.G_SUBINVENTORY THEN
617         x_line_tbl(1).subinventory := p_attr_value;
618     ELSIF p_attr_id = OE_Line_Util.G_SHIP_TOLERANCE_ABOVE THEN
619         x_line_tbl(1).ship_tolerance_above := TO_NUMBER(p_attr_value);
620     ELSIF p_attr_id = OE_Line_Util.G_SHIP_TOLERANCE_BELOW THEN
621         x_line_tbl(1).ship_tolerance_below := TO_NUMBER(p_attr_value);
622     ELSIF p_attr_id = OE_Line_Util.G_SHIPPING_INTERFACED THEN
623         x_line_tbl(1).shipping_interfaced_flag := p_attr_value;
624     ELSIF p_attr_id = OE_Line_Util.G_SHIP_TO_CONTACT THEN
625         x_line_tbl(1).ship_to_contact_id := TO_NUMBER(p_attr_value);
626     IF l_debug_level  > 0 THEN
627         oe_debug_pub.add(  'SHIP TO CONTACT1'|| X_LINE_TBL ( 1 ) .SHIP_TO_CONTACT_ID , 1 ) ;
628     END IF;
629     ELSIF p_attr_id = OE_Line_Util.G_SHIP_TO_ORG THEN
630         x_line_tbl(1).ship_to_org_id := TO_NUMBER(p_attr_value);
631     ELSIF p_attr_id = OE_Line_Util.G_SHIP_MODEL_COMPLETE_FLAG THEN
632         x_line_tbl(1).ship_model_complete_flag := p_attr_value;
633     ELSIF p_attr_id = OE_Line_Util.G_SOLD_TO_ORG THEN
634         x_line_tbl(1).sold_to_org_id := TO_NUMBER(p_attr_value);
635     ELSIF p_attr_id = OE_Line_Util.G_SORT_ORDER THEN
636         x_line_tbl(1).sort_order := p_attr_value;
637     ELSIF p_attr_id = OE_Line_Util.G_SOURCE_DOCUMENT THEN
638         x_line_tbl(1).source_document_id := TO_NUMBER(p_attr_value);
639     ELSIF p_attr_id = OE_Line_Util.G_SOURCE_DOCUMENT_LINE THEN
640         x_line_tbl(1).source_document_line_id := TO_NUMBER(p_attr_value);
641     ELSIF p_attr_id = OE_Line_Util.G_SOURCE_DOCUMENT_TYPE THEN
642         x_line_tbl(1).source_document_type_id := TO_NUMBER(p_attr_value);
643     ELSIF p_attr_id = OE_Line_Util.G_SOURCE_TYPE THEN
644         x_line_tbl(1).source_type_code := p_attr_value;
645     ELSIF p_attr_id = OE_Line_Util.G_TASK THEN
646         x_line_tbl(1).task_id := TO_NUMBER(p_attr_value);
647     ELSIF p_attr_id = OE_Line_Util.G_TAX THEN
648         x_line_tbl(1).tax_code := p_attr_value;
649     ELSIF p_attr_id = OE_Line_Util.G_TAX_DATE THEN
650        -- x_line_tbl(1).tax_date := TO_DATE(p_attr_value, l_date_format_mask);
651         x_line_tbl(1).tax_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
652     ELSIF p_attr_id = OE_Line_Util.G_TAX_EXEMPT THEN
653         x_line_tbl(1).tax_exempt_flag := p_attr_value;
654     ELSIF p_attr_id = OE_Line_Util.G_TAX_EXEMPT_NUMBER THEN
655         x_line_tbl(1).tax_exempt_number := p_attr_value;
656     ELSIF p_attr_id = OE_Line_Util.G_TAX_EXEMPT_REASON THEN
657         x_line_tbl(1).tax_exempt_reason_code := p_attr_value;
658     ELSIF p_attr_id = OE_Line_Util.G_TAX_POINT THEN
659         x_line_tbl(1).tax_point_code := p_attr_value;
660     ELSIF p_attr_id = OE_Line_Util.G_TAX_RATE THEN
661         x_line_tbl(1).tax_rate := TO_NUMBER(p_attr_value);
662     ELSIF p_attr_id = OE_Line_Util.G_TAX_VALUE THEN
663         x_line_tbl(1).tax_value := TO_NUMBER(p_attr_value);
664     ELSIF p_attr_id = OE_Line_Util.G_TOP_MODEL_LINE THEN
665         x_line_tbl(1).top_model_line_id := TO_NUMBER(p_attr_value);
666     ELSIF p_attr_id = OE_Line_Util.G_UNIT_LIST_PRICE THEN
667         x_line_tbl(1).unit_list_price := TO_NUMBER(p_attr_value);
668     ELSIF p_attr_id = OE_Line_Util.G_UNIT_LIST_PRICE_PER_PQTY THEN
669         x_line_tbl(1).unit_list_price_per_pqty := TO_NUMBER(p_attr_value);
670     ELSIF p_attr_id = OE_Line_Util.G_UNIT_SELLING_PRICE THEN
671         x_line_tbl(1).unit_selling_price := FND_NUMBER.CANONICAL_TO_NUMBER(p_attr_value); -- bug 5179564
672     ELSIF p_attr_id = OE_Line_Util.G_UNIT_SELLING_PRICE_PER_PQTY THEN
673         x_line_tbl(1).unit_selling_price_per_pqty := FND_NUMBER.CANONICAL_TO_NUMBER(p_attr_value); -- bug 5179564
674     ELSIF p_attr_id = OE_Line_Util.G_VISIBLE_DEMAND THEN
675         x_line_tbl(1).visible_demand_flag := p_attr_value;
676     ELSIF p_attr_id = OE_Line_Util.G_SPLIT_FROM_LINE THEN
677         x_line_tbl(1).split_from_line_id := TO_NUMBER(p_attr_value);
678     ELSIF p_attr_id = OE_Line_Util.G_CUST_PRODUCTION_SEQ_NUM THEN
679         x_line_tbl(1).cust_production_seq_num := p_attr_value;
680     ELSIF p_attr_id = OE_Line_Util.G_AUTHORIZED_TO_SHIP THEN
681         x_line_tbl(1).authorized_to_ship_flag := p_attr_value;
682     ELSIF p_attr_id = OE_Line_Util.G_VEH_CUS_ITEM_CUM_KEY THEN
683         x_line_tbl(1).veh_cus_item_cum_key_id := TO_NUMBER(p_attr_value);
684     ELSIF p_attr_id = OE_Line_Util.G_SALESREP THEN
685         x_line_tbl(1).salesrep_id := TO_NUMBER(p_attr_value);
686     ELSIF p_attr_id = OE_Line_Util.G_RETURN_REASON THEN
687         x_line_tbl(1).return_reason_code := p_attr_value;
688     ELSIF p_attr_id = OE_Line_Util.G_ARRIVAL_SET THEN
689         x_line_tbl(1).arrival_set_id := TO_NUMBER(p_attr_value);
690     ELSIF p_attr_id = OE_Line_Util.G_ARRIVAL_SET_NAME THEN
691     IF l_debug_level  > 0 THEN
692         oe_debug_pub.add(  'RAJ CONTROLLER - ATTRIBUTE CHANGE'|| P_ATTR_VALUE ) ;
693     END IF;
694     IF p_attr_value IS NULL THEN
695         x_line_tbl(1).arrival_set_id := NULL;
696         x_line_tbl(1).arrival_set := p_attr_value;
697        x_old_line_tbl(1).arrival_set := null;
698     ELSE
699         x_line_tbl(1).arrival_set := p_attr_value;
700         x_line_tbl(1).arrival_set_id := NULL;
701     END IF;
702     ELSIF p_attr_id = OE_Line_Util.G_SHIP_SET THEN
703         x_line_tbl(1).ship_set_id := TO_NUMBER(p_attr_value);
704     ELSIF p_attr_id = OE_Line_Util.G_SHIP_SET_NAME THEN
705     IF p_attr_value IS NULL THEN
706         x_line_tbl(1).ship_set_id := NULL;
707         x_line_tbl(1).ship_set := p_attr_value;
708        x_old_line_tbl(1).ship_set := null;
709     ELSE
710         x_line_tbl(1).ship_set := p_attr_value;
711         x_line_tbl(1).ship_set_id := NULL;
712     END IF;
713     ELSIF p_attr_id = OE_Line_Util.G_FULFILLMENT_SET THEN
714         x_line_tbl(1).fulfillment_set := TO_NUMBER(p_attr_value);
715     ELSIF p_attr_id = OE_Line_Util.G_FULFILLMENT_SET_NAME THEN
716     IF p_attr_value IS NULL THEN
717         x_line_tbl(1).fulfillment_set_id := NULL;
718     ELSE
719         x_line_tbl(1).fulfillment_set := p_attr_value;
720         x_line_tbl(1).fulfillment_set_id := NULL;
721     END IF;
722     ELSIF p_attr_id = OE_Line_Util.G_OVER_SHIP_REASON THEN
723         x_line_tbl(1).over_ship_reason_code := p_attr_value;
724     ELSIF p_attr_id = OE_Line_Util.G_OVER_SHIP_RESOLVED THEN
725         x_line_tbl(1).over_ship_resolved_flag := p_attr_value;
726     ELSIF p_attr_id =    OE_Line_Util.G_FIRST_ACK THEN
727         x_line_tbl(1).first_ack_code := p_attr_value;
728     ELSIF p_attr_id =    OE_Line_Util.G_FIRST_ACK_DATE THEN
729        -- x_line_tbl(1).first_ack_date := TO_DATE(p_attr_value, l_date_format_mask);
730        x_line_tbl(1).first_ack_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
731     ELSIF p_attr_id =    OE_Line_Util.G_LAST_ACK THEN
732         x_line_tbl(1).last_ack_code := p_attr_value;
733     ELSIF p_attr_id =    OE_Line_Util.G_LAST_ACK_DATE THEN
734       --  x_line_tbl(1).last_ack_date := TO_DATE(p_attr_value, l_date_format_mask);
735       x_line_tbl(1).last_ack_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
736     ELSIF p_attr_id =    OE_Line_Util.G_END_ITEM_UNIT_NUMBER THEN
737         x_line_tbl(1).end_item_unit_number := p_attr_value;
738     ELSIF p_attr_id =    OE_Line_Util.G_SHIPPING_INSTRUCTIONS THEN
739         x_line_tbl(1).shipping_instructions := p_attr_value;
740     ELSIF p_attr_id =    OE_Line_Util.G_PACKING_INSTRUCTIONS THEN
741         x_line_tbl(1).packing_instructions := p_attr_value;
742     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_TXN_REASON THEN
743         x_line_tbl(1).service_txn_reason_code := p_attr_value;
744     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_TXN_COMMENTS THEN
745         x_line_tbl(1).service_txn_comments := p_attr_value;
746     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_DURATION THEN
747         x_line_tbl(1).service_duration := TO_NUMBER(p_attr_value);
748     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_PERIOD THEN
749         x_line_tbl(1).service_period := p_attr_value;
750     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_START_DATE THEN
751        -- x_line_tbl(1).service_start_date := TO_DATE(p_attr_value, l_date_format_mask);
752        x_line_tbl(1).service_start_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
753     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_END_DATE THEN
754        -- x_line_tbl(1).service_end_date := TO_DATE(p_attr_value, l_date_format_mask);
755        x_line_tbl(1).service_end_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
756     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_COTERMINATE_FLAG THEN
757         x_line_tbl(1).service_coterminate_flag := p_attr_value;
758     ELSIF p_attr_id =    OE_Line_Util.G_UNIT_SELLING_PERCENT THEN
759         x_line_tbl(1).unit_selling_percent := TO_NUMBER(p_attr_value);
760     ELSIF p_attr_id =    OE_Line_Util.G_UNIT_LIST_PERCENT THEN
761         x_line_tbl(1).unit_list_percent := TO_NUMBER(p_attr_value);
762     ELSIF p_attr_id =    OE_Line_Util.G_UNIT_PERCENT_BASE_PRICE THEN
763         x_line_tbl(1).unit_percent_base_price := TO_NUMBER(p_attr_value);
764     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_NUMBER THEN
765         x_line_tbl(1).service_number := TO_NUMBER(p_attr_value);
766     ELSIF p_attr_id = OE_Line_Util.G_Service_Reference_Type_Code THEN
767         x_line_tbl(1).service_reference_type_code := p_attr_value;
768     ELSIF p_attr_id = OE_Line_Util.G_Service_Reference_Line_Id THEN
769         x_line_tbl(1).service_reference_line_id := TO_NUMBER(p_attr_value);
770     ELSIF p_attr_id = OE_Line_Util.G_Service_Reference_System_Id THEN
771         x_line_tbl(1).service_reference_system_id := TO_NUMBER(p_attr_value);
772     ELSIF p_attr_id = OE_Line_Util.G_CHANGE_REASON THEN
773         x_line_tbl(1).change_reason := p_attr_value;
774     ELSIF p_attr_id = OE_Line_Util.G_CHANGE_COMMENTS THEN
775         x_line_tbl(1).change_comments := p_attr_value;
776     ELSIF p_attr_id = OE_Line_Util.G_CALCULATE_PRICE_FLAG THEN
777         x_line_tbl(1).calculate_price_flag := p_attr_value;
778     ELSIF p_attr_id = OE_Line_Util.G_CUSTOMER_LINE_NUMBER THEN
779         x_line_tbl(1).customer_line_number := p_attr_value;
780     ELSIF p_attr_id = OE_Line_Util.G_CUSTOMER_SHIPMENT_NUMBER THEN
781         x_line_tbl(1).customer_shipment_number := p_attr_value;
782     ELSIF p_attr_id = OE_Line_Util.G_user_ITEM_DESCRIPTION THEN
783         x_line_tbl(1).user_item_description := p_attr_value;
784     --recurring charges
785     ELSIF p_attr_id = OE_LINE_UTIL.G_CHARGE_PERIODICITY THEN
786         x_line_tbl(1).charge_periodicity_code := p_attr_value;
787     --Customer Acceptance
788     ELSIF p_attr_id = OE_Line_Util.G_CONTINGENCY THEN
789         x_line_tbl(1).contingency_id  := TO_NUMBER(p_attr_value);
790     ELSIF p_attr_id = OE_Line_Util.G_REVREC_EVENT THEN
791         x_line_tbl(1).revrec_event_code := p_attr_value;
792     ELSIF p_attr_id = OE_Line_Util.G_REVREC_EXPIRATION_DAYS THEN
793         x_line_tbl(1).revrec_expiration_days := TO_NUMBER(p_attr_value);
794     ELSIF p_attr_id = OE_Line_Util.G_REVREC_COMMENTS THEN
795         x_line_tbl(1).revrec_comments := p_attr_value;
796     ELSIF p_attr_id = OE_Line_Util.G_REVREC_REFERENCE_DOCUMENT THEN
797         x_line_tbl(1).revrec_reference_document := p_attr_value;
798     ELSIF p_attr_id = OE_Line_Util.G_REVREC_SIGNATURE THEN
799         x_line_tbl(1).revrec_signature := p_attr_value;
800     ELSIF p_attr_id = OE_Line_Util.G_ATTRIBUTE1
801     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE10
802     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE11
803     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE12
804     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE13
805     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE14
806     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE15
807     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE16   --For bug 2184255
808     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE17
809     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE18
810     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE19
811     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE2
812     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE20
813     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE3
814     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE4
815     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE5
816     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE6
817     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE7
818     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE8
819     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE9
820     OR     p_attr_id = OE_Line_Util.G_CONTEXT
821     THEN
822 
823         x_line_tbl(1).attribute1          := p_line_dff_rec.attribute1;
824         x_line_tbl(1).attribute10         := p_line_dff_rec.attribute10;
825         x_line_tbl(1).attribute11         := p_line_dff_rec.attribute11;
826         x_line_tbl(1).attribute12         := p_line_dff_rec.attribute12;
827         x_line_tbl(1).attribute13         := p_line_dff_rec.attribute13;
828         x_line_tbl(1).attribute14         := p_line_dff_rec.attribute14;
829         x_line_tbl(1).attribute15         := p_line_dff_rec.attribute15;
830         x_line_tbl(1).attribute16         := p_line_dff_rec.attribute16;   --For bug 2184255
831         x_line_tbl(1).attribute17         := p_line_dff_rec.attribute17;
832         x_line_tbl(1).attribute18         := p_line_dff_rec.attribute18;
833         x_line_tbl(1).attribute19         := p_line_dff_rec.attribute19;
834         x_line_tbl(1).attribute2          := p_line_dff_rec.attribute2;
835         x_line_tbl(1).attribute20         := p_line_dff_rec.attribute20;
836         x_line_tbl(1).attribute3          := p_line_dff_rec.attribute3;
837         x_line_tbl(1).attribute4          := p_line_dff_rec.attribute4;
838         x_line_tbl(1).attribute5          := p_line_dff_rec.attribute5;
839         x_line_tbl(1).attribute6          := p_line_dff_rec.attribute6;
840         x_line_tbl(1).attribute7          := p_line_dff_rec.attribute7;
841         x_line_tbl(1).attribute8          := p_line_dff_rec.attribute8;
842         x_line_tbl(1).attribute9          := p_line_dff_rec.attribute9;
843         x_line_tbl(1).context             := p_line_dff_rec.context;
844 
845     ELSIF p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE1
846     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE10
847     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE11
848     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE12
849     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE13
850     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE14
851     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE15
852     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE16
853     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE17
854     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE18
855     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE19
856     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE2
857     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE20
858     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE3
859     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE4
860     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE5
861     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE6
862     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE7
863     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE8
864     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE9
865     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE_CATEGORY
866     THEN
867 
868         x_line_tbl(1).global_attribute1   := p_line_dff_rec.global_attribute1;
869         x_line_tbl(1).global_attribute10  := p_line_dff_rec.global_attribute10;
870         x_line_tbl(1).global_attribute11  := p_line_dff_rec.global_attribute11;
871         x_line_tbl(1).global_attribute12  := p_line_dff_rec.global_attribute12;
872         x_line_tbl(1).global_attribute13  := p_line_dff_rec.global_attribute13;
873         x_line_tbl(1).global_attribute14  := p_line_dff_rec.global_attribute14;
874         x_line_tbl(1).global_attribute15  := p_line_dff_rec.global_attribute15;
875         x_line_tbl(1).global_attribute16  := p_line_dff_rec.global_attribute16;
876         x_line_tbl(1).global_attribute17  := p_line_dff_rec.global_attribute17;
877         x_line_tbl(1).global_attribute18  := p_line_dff_rec.global_attribute18;
878         x_line_tbl(1).global_attribute19  := p_line_dff_rec.global_attribute19;
879         x_line_tbl(1).global_attribute2   := p_line_dff_rec.global_attribute2;
880         x_line_tbl(1).global_attribute20  := p_line_dff_rec.global_attribute20;
881         x_line_tbl(1).global_attribute3   := p_line_dff_rec.global_attribute3;
882         x_line_tbl(1).global_attribute4   := p_line_dff_rec.global_attribute4;
883         x_line_tbl(1).global_attribute5   := p_line_dff_rec.global_attribute5;
884         x_line_tbl(1).global_attribute6   := p_line_dff_rec.global_attribute6;
885         x_line_tbl(1).global_attribute7   := p_line_dff_rec.global_attribute7;
886         x_line_tbl(1).global_attribute8   := p_line_dff_rec.global_attribute8;
887         x_line_tbl(1).global_attribute9   := p_line_dff_rec.global_attribute9;
888         x_line_tbl(1).global_attribute_category := p_line_dff_rec.global_attribute_category;
889 
890     ELSIF p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE1
891     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE10
892     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE11
893     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE12
894     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE13
895     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE14
896     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE15
897     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE2
898     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE3
899     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE4
900     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE5
901     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE6
902     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE7
903     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE8
904     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE9
905     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE16
906     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE17
907     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE18
908     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE19
909     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE20
910     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE21
911     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE22
912     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE23
913     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE24
914     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE25
915     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE26
916     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE27
917     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE28
918     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE29
919     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE30
920     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_CONTEXT
921     THEN
922 
923         x_line_tbl(1).industry_attribute1 := p_line_dff_rec.industry_attribute1;
924         x_line_tbl(1).industry_attribute10 := p_line_dff_rec.industry_attribute10;
925         x_line_tbl(1).industry_attribute11 := p_line_dff_rec.industry_attribute11;
926         x_line_tbl(1).industry_attribute12 := p_line_dff_rec.industry_attribute12;
927         x_line_tbl(1).industry_attribute13 := p_line_dff_rec.industry_attribute13;
928         x_line_tbl(1).industry_attribute14 := p_line_dff_rec.industry_attribute14;
929         x_line_tbl(1).industry_attribute15 := p_line_dff_rec.industry_attribute15;
930         x_line_tbl(1).industry_attribute2 := p_line_dff_rec.industry_attribute2;
931         x_line_tbl(1).industry_attribute3 := p_line_dff_rec.industry_attribute3;
932         x_line_tbl(1).industry_attribute4 := p_line_dff_rec.industry_attribute4;
933         x_line_tbl(1).industry_attribute5 := p_line_dff_rec.industry_attribute5;
934         x_line_tbl(1).industry_attribute6 := p_line_dff_rec.industry_attribute6;
935         x_line_tbl(1).industry_attribute7 := p_line_dff_rec.industry_attribute7;
936         x_line_tbl(1).industry_attribute8 := p_line_dff_rec.industry_attribute8;
937         x_line_tbl(1).industry_attribute9 := p_line_dff_rec.industry_attribute9;
938         x_line_tbl(1).industry_attribute16 := p_line_dff_rec.industry_attribute16;
939         x_line_tbl(1).industry_attribute17 := p_line_dff_rec.industry_attribute17;
940         x_line_tbl(1).industry_attribute18 := p_line_dff_rec.industry_attribute18;
941         x_line_tbl(1).industry_attribute19 := p_line_dff_rec.industry_attribute19;
942         x_line_tbl(1).industry_attribute20 := p_line_dff_rec.industry_attribute20;
943         x_line_tbl(1).industry_attribute21 := p_line_dff_rec.industry_attribute21;
944         x_line_tbl(1).industry_attribute22 := p_line_dff_rec.industry_attribute22;
945         x_line_tbl(1).industry_attribute23 := p_line_dff_rec.industry_attribute23;
946         x_line_tbl(1).industry_attribute24 := p_line_dff_rec.industry_attribute24;
947         x_line_tbl(1).industry_attribute25 := p_line_dff_rec.industry_attribute25;
948         x_line_tbl(1).industry_attribute26 := p_line_dff_rec.industry_attribute26;
949         x_line_tbl(1).industry_attribute27 := p_line_dff_rec.industry_attribute27;
950         x_line_tbl(1).industry_attribute28 := p_line_dff_rec.industry_attribute28;
951         x_line_tbl(1).industry_attribute29 := p_line_dff_rec.industry_attribute29;
952         x_line_tbl(1).industry_attribute30 := p_line_dff_rec.industry_attribute30;
953         x_line_tbl(1).industry_context    := p_line_dff_rec.industry_context;
954 
955     ELSIF p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE1
956     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE10
957     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE2
958     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE3
959     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE4
960     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE5
961     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE6
962     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE7
963     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE8
964     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE9
965     OR     p_attr_id = OE_Line_Util.G_PRICING_CONTEXT
966     THEN
967 
968         x_line_tbl(1).pricing_attribute1  := p_line_dff_rec.pricing_attribute1;
969         x_line_tbl(1).pricing_attribute10 := p_line_dff_rec.pricing_attribute10;
970         x_line_tbl(1).pricing_attribute2  := p_line_dff_rec.pricing_attribute2;
971         x_line_tbl(1).pricing_attribute3  := p_line_dff_rec.pricing_attribute3;
972         x_line_tbl(1).pricing_attribute4  := p_line_dff_rec.pricing_attribute4;
973         x_line_tbl(1).pricing_attribute5  := p_line_dff_rec.pricing_attribute5;
974         x_line_tbl(1).pricing_attribute6  := p_line_dff_rec.pricing_attribute6;
975         x_line_tbl(1).pricing_attribute7  := p_line_dff_rec.pricing_attribute7;
976         x_line_tbl(1).pricing_attribute8  := p_line_dff_rec.pricing_attribute8;
977         x_line_tbl(1).pricing_attribute9  := p_line_dff_rec.pricing_attribute9;
978         x_line_tbl(1).pricing_context     := p_line_dff_rec.pricing_context;
979     /* Amy Return, enable return attributes  */
980     ELSIF p_attr_id = OE_Line_Util.G_RETURN_CONTEXT THEN
981         x_line_tbl(1).return_context := p_attr_value;
982         x_line_tbl(1).return_attribute1   := p_line_dff_rec.return_attribute1;
983         x_line_tbl(1).return_attribute10  := p_line_dff_rec.return_attribute10;
984         x_line_tbl(1).return_attribute11  := p_line_dff_rec.return_attribute11;
985         x_line_tbl(1).return_attribute12  := p_line_dff_rec.return_attribute12;
986         x_line_tbl(1).return_attribute13  := p_line_dff_rec.return_attribute13;
987         x_line_tbl(1).return_attribute14  := p_line_dff_rec.return_attribute14;
988         x_line_tbl(1).return_attribute15  := p_line_dff_rec.return_attribute15;
989         x_line_tbl(1).return_attribute2  := p_line_dff_rec.return_attribute2;
990         x_line_tbl(1).return_attribute3  := p_line_dff_rec.return_attribute3;
991         x_line_tbl(1).return_attribute4  := p_line_dff_rec.return_attribute4;
992         x_line_tbl(1).return_attribute5  := p_line_dff_rec.return_attribute5;
993         x_line_tbl(1).return_attribute6  := p_line_dff_rec.return_attribute6;
994         x_line_tbl(1).return_attribute7  := p_line_dff_rec.return_attribute7;
995         x_line_tbl(1).return_attribute8  := p_line_dff_rec.return_attribute8;
996         x_line_tbl(1).return_attribute9  := p_line_dff_rec.return_attribute9;
997         x_line_tbl(1).line_category_code := OE_GLOBALS.G_RETURN_CATEGORY_CODE;
998 
999     ELSIF p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE1
1000     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE10
1001     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE11
1002     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE12
1003     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE13
1004     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE14
1005     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE15
1006     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE2
1007     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE3
1008     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE4
1009     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE5
1010     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE6
1011     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE7
1012     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE8
1013     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE9
1014     OR     p_attr_id = OE_Line_Util.G_TP_CONTEXT
1015     THEN
1016         IF l_debug_level  > 0 THEN
1017             oe_debug_pub.add(  'JYOTHI: I AM IN CHANGE ATTRIBUTE' ) ;
1018         END IF;
1019 
1020         x_line_tbl(1).tp_attribute1          := p_line_dff_rec.tp_attribute1;
1021         x_line_tbl(1).tp_attribute10         := p_line_dff_rec.tp_attribute10;
1022         x_line_tbl(1).tp_attribute11         := p_line_dff_rec.tp_attribute11;
1023         x_line_tbl(1).tp_attribute12         := p_line_dff_rec.tp_attribute12;
1024         x_line_tbl(1).tp_attribute13         := p_line_dff_rec.tp_attribute13;
1025         x_line_tbl(1).tp_attribute14         := p_line_dff_rec.tp_attribute14;
1026         x_line_tbl(1).tp_attribute15         := p_line_dff_rec.tp_attribute15;
1027         x_line_tbl(1).tp_attribute2          := p_line_dff_rec.tp_attribute2;
1028         x_line_tbl(1).tp_attribute3          := p_line_dff_rec.tp_attribute3;
1029         x_line_tbl(1).tp_attribute4          := p_line_dff_rec.tp_attribute4;
1030         x_line_tbl(1).tp_attribute5          := p_line_dff_rec.tp_attribute5;
1031         x_line_tbl(1).tp_attribute6          := p_line_dff_rec.tp_attribute6;
1032         x_line_tbl(1).tp_attribute7          := p_line_dff_rec.tp_attribute7;
1033         x_line_tbl(1).tp_attribute8          := p_line_dff_rec.tp_attribute8;
1034         x_line_tbl(1).tp_attribute9          := p_line_dff_rec.tp_attribute9;
1035         x_line_tbl(1).tp_context          := p_line_dff_rec.tp_context;
1036 
1037         IF l_debug_level  > 0 THEN
1038             oe_debug_pub.add(  'JYOTHI- TP ATTRIBUTE IS ' || X_LINE_TBL ( 1 ) .TP_ATTRIBUTE1 ) ;
1039         END IF;
1040     ELSIF p_attr_id = OE_Line_Util.G_COMMITMENT THEN
1041         x_line_tbl(1).commitment_id := TO_NUMBER(p_attr_value);
1042     ELSIF p_attr_id = OE_Line_Util.G_COMMITMENT_APPLIED_AMOUNT THEN
1043         x_line_tbl(1).commitment_applied_amount := TO_NUMBER(p_attr_value);
1044     --MRG BGN
1045     ELSIF p_attr_id = OE_LINE_UTIL.G_UNIT_COST Then
1046         IF l_debug_level  > 0 THEN
1047             oe_debug_pub.add(  'P_ATTR_VALUE='||P_ATTR_VALUE ) ;
1048         END IF;
1049         x_line_tbl(1).unit_cost := TO_NUMBER(p_attr_value);
1050         IF l_debug_level  > 0 THEN
1051             oe_debug_pub.add(  'FLINB:UNIT_COST:'||P_ATTR_VALUE ) ;
1052         END IF;
1053     --MRG END
1054     --retro{
1055     ELSIF p_attr_id = OE_Line_Util.G_RETROBILL_REQUEST THEN
1056         x_line_tbl(1).retrobill_request_id := TO_NUMBER(p_attr_value);
1057 
1058     --retro}
1059     -- Override Selling price
1060     ELSIF p_attr_id = OE_Line_Util.G_ORIGINAL_LIST_PRICE THEN
1061           x_line_tbl(1).original_list_price := TO_NUMBER(p_attr_value);
1062     ELSIF p_attr_id = OE_Line_Util.G_UNIT_LIST_PRICE_PER_PQTY THEN
1063           x_line_tbl(1).unit_list_price_per_pqty := TO_NUMBER(p_attr_value);
1064     ELSIF p_attr_id = OE_Line_Util.G_UNIT_SELLING_PRICE_PER_PQTY THEN
1065           x_line_tbl(1).unit_selling_price_per_pqty := TO_NUMBER(p_attr_value);
1066     -- Override Selling price
1067     -- INVCONV
1068     ELSIF p_attr_id = OE_Line_Util.G_CANCELLED_QUANTITY2 THEN
1069         x_line_tbl(1).cancelled_quantity2 := TO_NUMBER(p_attr_value);
1070     ELSIF p_attr_id = OE_Line_Util.G_FULFILLED_QUANTITY2 THEN
1071         x_line_tbl(1).fulfilled_quantity2 := TO_NUMBER(p_attr_value);
1072     ELSIF p_attr_id = OE_Line_Util.G_SHIPPED_QUANTITY2 THEN
1073         x_line_tbl(1).shipped_quantity2 := TO_NUMBER(p_attr_value);
1074     ELSIF p_attr_id = OE_Line_Util.G_SHIPPING_QUANTITY2 THEN
1075         x_line_tbl(1).shipping_quantity2 := TO_NUMBER(p_attr_value);
1076     ELSIF p_attr_id = OE_Line_Util.G_SHIPPING_QUANTITY_UOM2 THEN
1077         x_line_tbl(1).shipping_quantity_uom2 := p_attr_value;
1078     ELSIF p_attr_id = OE_Line_Util.G_RESERVED_QUANTITY2 THEN
1079         x_line_tbl(1).reserved_quantity2 := p_attr_value;
1080 
1081     ELSE
1082 
1083         IF l_debug_level  > 0 THEN
1084             oe_debug_pub.add(  'UNRECOGNIZED ATTRIBUTE EXCEPTION' , 2 ) ;
1085         END IF;
1086 
1087         --  Unexpected error, unrecognized attribute
1088 
1089         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1090         THEN
1091             oe_msg_pub.Add_Exc_Msg
1092             (   G_PKG_NAME
1093             ,   'Change_Attribute'
1094             ,   'Unrecognized attribute'
1095             );
1096         END IF;
1097 
1098         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1099 
1100     END IF;
1101 
1102 
1103 EXCEPTION
1104     WHEN OTHERS THEN
1105         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1106         THEN
1107             oe_msg_pub.Add_Exc_Msg
1108             (   G_PKG_NAME
1109             ,   'Copy_Attribute_To_Rec'
1110             );
1111         END IF;
1112         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1113 END Copy_Attribute_To_Rec;
1114 
1115 --  Procedure   :   Change_Attribute
1116 --
1117 -- Commenting OUT all flex attributes because
1118 -- we ran into an odd bug where the client(pld) does not recognize a package
1119 -- at all once it gets over a certain size (255 parameters per procedure)
1120 
1121 -- Commenting OUT the pricing attributes for now since the number of
1122 -- parameters increases beyond the 255 parameters.
1123 
1124 PROCEDURE Change_Attribute
1125 ( x_return_status OUT NOCOPY VARCHAR2
1126 , x_msg_count OUT NOCOPY NUMBER
1127 , x_msg_data OUT NOCOPY VARCHAR2
1128 ,   p_line_id                       IN  NUMBER
1129 ,   p_attr_id                       IN  NUMBER
1130 ,   p_attr_value                    IN  VARCHAR2
1131 ,   p_attr_id_tbl                   IN  Number_Tbl_Type
1132 ,   p_attr_value_tbl                IN  Varchar2_Tbl_Type
1133 ,   p_reason                IN  VARCHAR2
1134 ,   p_comments              IN  VARCHAR2
1135 ,   p_line_dff_rec                  IN OE_OE_FORM_LINE.line_dff_rec_type
1136 ,   p_default_cache_line_rec           IN  OE_ORDER_PUB.Line_Rec_Type
1137 ,   p_date_format_mask              IN  VARCHAR2 DEFAULT 'DD-MON-YYYY HH24:MI:SS'
1138 ,   x_line_tbl                      IN OUT NOCOPY OE_ORDER_PUB.Line_Tbl_Type
1139 ,   x_old_line_tbl                  IN OUT NOCOPY OE_ORDER_PUB.Line_Tbl_Type
1140 ,   x_line_val_tbl                  IN OUT NOCOPY OE_ORDER_PUB.Line_Val_Tbl_Type
1141 --, x_dualum_ind OUT NOCOPY NUMBER --OPM 02/JUN/00  INVCONV
1142 --, x_grade_ctl OUT NOCOPY NUMBER --OPM 02/JUN/00   INVCONV
1143 , x_process_warehouse_flag OUT NOCOPY VARCHAR2 --OPM 02/JUN/00
1144 --, x_ont_pricing_qty_source OUT NOCOPY NUMBER --OPM 2046190
1145 , x_ont_pricing_qty_source OUT NOCOPY VARCHAR2 -- INVCONV
1146 , x_grade_control_flag OUT NOCOPY VARCHAR2 -- INVCONV
1147 , x_tracking_quantity_ind   OUT NOCOPY VARCHAR2 -- INVCONV
1148 , x_secondary_default_ind OUT NOCOPY VARCHAR2 -- INVCONV
1149 , x_lot_divisible_flag OUT NOCOPY VARCHAR2 -- INVCONV
1150 , x_lot_control_code OUT NOCOPY /* file.sql.39 change */ NUMBER  -- 4172680 INVCONV
1151 
1152 )
1153 IS
1154 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
1155 l_return_status               VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1156 l_date_format_mask            VARCHAR2(30) := p_date_format_mask;
1157 l_order_date_type_code        VARCHAR2(30) := null;
1158 l_orig_ship_from_org_id       OE_Order_LINES.ship_from_org_id%TYPE;
1159 l_x_item_rec_type             OE_ORDER_CACHE.item_rec_type;    -- OPM 2/JUN/00
1160 file_name varchar2(100);
1161 i                       pls_Integer;
1162 L_PRICE_CONTROL_REC         QP_PREQ_GRP.control_record_type;
1163 --
1164 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1165 --
1166 BEGIN
1167 
1168     IF l_debug_level  > 0 THEN
1169         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE.CHANGE_ATTRIBUTES' , 1 ) ;
1170     END IF;
1171 
1172     -- Set UI flag to TRUE
1173     OE_GLOBALS.G_UI_FLAG := TRUE;
1174 
1175 
1176     --  Set control flags.
1177 
1178     l_control_rec.controlled_operation := TRUE;
1179     l_control_rec.change_attributes    := TRUE;
1180 
1181     l_control_rec.validate_entity      := FALSE;
1182     l_control_rec.write_to_DB          := FALSE;
1183     l_control_rec.process              := FALSE;
1184 
1185     --  Instruct API to retain its caches
1186 
1187     l_control_rec.clear_api_cache      := FALSE;
1188     l_control_rec.clear_api_requests   := FALSE;
1189 
1190     --  Read line from cache
1191 
1192     IF p_default_cache_line_rec.line_id IS NOT NULL THEN
1193       x_line_tbl(1):=p_default_cache_line_rec;
1194       x_line_tbl(1).db_flag := FND_API.G_FALSE;
1195        Write_line
1196        (   p_line_rec                    => x_line_tbl(1)
1197        );
1198 
1199     END IF;
1200 
1201 
1202     IF p_default_cache_line_rec.line_id IS NOT NULL THEN
1203       --x_old_line_tbl(1) := OE_ORDER_PUB.G_MISS_LINE_REC;
1204         x_old_line_tbl(1).line_id := null;
1205         x_line_tbl(1):=p_default_cache_line_rec;
1206         l_control_rec.default_attributes   := FALSE;
1207         l_control_rec.clear_dependents     := FALSE;
1208         l_control_rec.check_security       := FALSE;
1209 
1210         IF FND_API.To_Boolean(x_line_tbl(1).db_flag) THEN
1211           x_line_tbl(1).operation := OE_GLOBALS.G_OPR_UPDATE;
1212         ELSE
1213           x_line_tbl(1).operation := OE_GLOBALS.G_OPR_CREATE;
1214         END IF;
1215 
1216         Oe_Order_Pvt.Lines
1217         (
1218          p_validation_level            => FND_API.G_VALID_LEVEL_NONE
1219        , p_init_msg_list               => FND_API.G_TRUE
1220        , p_control_rec                 => l_control_rec
1221        , p_x_line_tbl                  => x_line_tbl
1222        , p_x_old_line_tbl              => x_old_line_tbl
1223        , x_return_status               => l_return_status
1224         );
1225        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1226            IF l_debug_level  > 0 THEN
1227                oe_debug_pub.add(  'DATE TYPE RETURNED UNEXP_ERROR' , 2 ) ;
1228            END IF;
1229            RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1230        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1231            IF l_debug_level  > 0 THEN
1232                oe_debug_pub.add(  'DATE TYPE RETURN RET_STS_ERROR' , 2 ) ;
1233            END IF;
1234            RAISE FND_API.G_EXC_ERROR;
1235        END IF;
1236 
1237        x_old_line_tbl(1) := x_line_tbl(1);
1238     ELSE
1239 
1240       Get_line
1241       (   p_db_record                   => FALSE
1242        ,   p_line_id                     => p_line_id
1243        ,   x_line_rec                    => x_line_tbl(1)
1244        );
1245 
1246        IF l_debug_level  > 0 THEN
1247            oe_debug_pub.add(  'JPN:AFTER LINE QUERY : ' || X_LINE_TBL ( 1 ) .TP_ATTRIBUTE1 ) ;
1248        END IF;
1249 
1250        x_old_line_tbl(1) := x_line_tbl(1);
1251 
1252     END IF;
1253     l_control_rec.default_attributes   := TRUE;
1254     l_control_rec.clear_dependents     := TRUE;
1255     l_control_rec.check_security        := TRUE;
1256 
1257     IF OE_CODE_CONTROL.Code_Release_Level >= '110509' THEN
1258 
1259        IF l_debug_level  > 0 THEN
1260            oe_debug_pub.add(  'Code Release is >= 11.5.9') ;
1261        END IF;
1262 
1263        Copy_Attribute_To_Rec
1264                 (p_attr_id         => p_attr_id
1265                 ,p_attr_value      => p_attr_value
1266                 ,p_line_dff_rec    => p_line_dff_rec
1267                 ,p_date_format_mask  => p_date_format_mask
1268                 ,x_line_tbl        => x_line_tbl
1269                 ,x_old_line_tbl    => x_old_line_tbl
1270                 );
1271 
1272        FOR l_index IN 1..p_attr_id_tbl.COUNT LOOP
1273 
1274            Copy_Attribute_To_Rec
1275                 (p_attr_id         => p_attr_id_tbl(l_index)
1276                 ,p_attr_value      => p_attr_value_tbl(l_index)
1277                 ,p_line_dff_rec    => p_line_dff_rec
1278                 ,p_date_format_mask  => p_date_format_mask
1279                 ,x_line_tbl        => x_line_tbl
1280                 ,x_old_line_tbl    => x_old_line_tbl
1281                 );
1282 
1283        END LOOP;
1284 
1285     ELSE
1286 
1287        IF l_debug_level  > 0 THEN
1288            oe_debug_pub.add(  'Code Release is < 11.5.9') ;
1289        END IF;
1290 
1291     -- PLEASE ADD THIS IF LOGIC FOR NEW ATTRIBUTES TO THE PROCEDURE
1292     -- COPY_ATTRIBUTE_TO_REC ALSO. THIS NEW PROCEDURE WILL REPLACE
1293     -- THESE IF CALLS POST OM PACK I OR 11.5.9.
1294 
1295     IF p_attr_id = OE_Line_Util.G_ACCOUNTING_RULE THEN
1296         x_line_tbl(1).accounting_rule_id := TO_NUMBER(p_attr_value);
1297     ELSIF p_attr_id = OE_Line_Util.G_ACCOUNTING_RULE_DURATION THEN
1298         x_line_tbl(1).accounting_rule_duration := TO_NUMBER(p_attr_value);
1299     ELSIF p_attr_id = OE_Line_Util.G_ACTUAL_ARRIVAL_DATE THEN
1300       --  x_line_tbl(1).actual_arrival_date := TO_DATE(p_attr_value, l_date_format_mask);
1301       x_line_tbl(1).actual_arrival_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1302     ELSIF p_attr_id = OE_Line_Util.G_ACTUAL_SHIPMENT_DATE THEN
1303       --  x_line_tbl(1).actual_shipment_date := TO_DATE(p_attr_value, l_date_format_mask);
1304        x_line_tbl(1).actual_shipment_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1305     ELSIF p_attr_id = OE_Line_Util.G_AGREEMENT THEN
1306         x_line_tbl(1).agreement_id := TO_NUMBER(p_attr_value);
1307     ELSIF p_attr_id = OE_Line_Util.G_IB_OWNER THEN
1308           x_line_tbl(1).ib_owner := p_attr_value;
1309     ELSIF p_attr_id = OE_Line_Util.G_IB_INSTALLED_AT_LOCATION THEN
1310           x_line_tbl(1).ib_installed_at_location := p_attr_value;
1311     ELSIF p_attr_id = OE_Line_Util.G_IB_CURRENT_LOCATION THEN
1312           x_line_tbl(1).ib_current_location := p_attr_value;
1313     ELSIF p_attr_id = OE_Line_Util.G_END_CUSTOMER_SITE_USE THEN
1314           x_line_tbl(1).end_customer_site_use_id := TO_NUMBER(p_attr_value);
1315     ELSIF p_attr_id = OE_Line_Util.G_END_CUSTOMER_CONTACT THEN
1316           x_line_tbl(1).end_customer_contact_id := TO_NUMBER(p_attr_value);
1317     ELSIF p_attr_id = OE_Line_Util.G_END_CUSTOMER THEN
1318           x_line_tbl(1).end_customer_id := TO_NUMBER(p_attr_value);
1319     ELSIF p_attr_id = OE_Line_Util.G_ATO_LINE THEN
1320         x_line_tbl(1).ato_line_id := TO_NUMBER(p_attr_value);
1321     ELSIF p_attr_id = OE_Line_Util.G_AUTO_SELECTED_QUANTITY THEN
1322         x_line_tbl(1).auto_selected_quantity := TO_NUMBER(p_attr_value);
1323     ELSIF p_attr_id = OE_Line_Util.G_BLANKET_NUMBER THEN
1324           x_line_tbl(1).blanket_number := TO_NUMBER(p_attr_value);
1325     ELSIF p_attr_id = OE_Line_Util.G_BLANKET_LINE_NUMBER THEN
1326           x_line_tbl(1).blanket_line_number := TO_NUMBER(p_attr_value);
1327     ELSIF p_attr_id = OE_Line_Util.G_BLANKET_VERSION_NUMBER THEN
1328           x_line_tbl(1).blanket_version_number := TO_NUMBER(p_attr_value);
1329     ELSIF p_attr_id = OE_Line_Util.G_BOOKED THEN
1330         x_line_tbl(1).booked_flag := p_attr_value;
1331     ELSIF p_attr_id = OE_Line_Util.G_CANCELLED THEN
1332         x_line_tbl(1).cancelled_flag := p_attr_value;
1333     ELSIF p_attr_id = OE_Line_Util.G_CANCELLED_QUANTITY THEN
1334         x_line_tbl(1).cancelled_quantity := TO_NUMBER(p_attr_value);
1335     ELSIF p_attr_id = OE_Line_Util.G_COMPONENT THEN
1336         x_line_tbl(1).component_code := p_attr_value;
1337     ELSIF p_attr_id = OE_Line_Util.G_COMPONENT_NUMBER THEN
1338         x_line_tbl(1).component_number := p_attr_value;
1339     ELSIF p_attr_id = OE_Line_Util.G_COMPONENT_SEQUENCE THEN
1340         x_line_tbl(1).component_sequence_id := TO_NUMBER(p_attr_value);
1341     ELSIF p_attr_id = OE_Line_Util.G_CONFIG_DISPLAY_SEQUENCE THEN
1342         x_line_tbl(1).config_display_sequence := TO_NUMBER(p_attr_value);
1343     ELSIF p_attr_id = OE_Line_Util.G_CONFIGURATION THEN
1344         x_line_tbl(1).configuration_id := TO_NUMBER(p_attr_value);
1345     ELSIF p_attr_id = OE_Line_Util.G_CONFIG_HEADER THEN
1346         x_line_tbl(1).config_header_id := TO_NUMBER(p_attr_value);
1347     ELSIF p_attr_id = OE_Line_Util.G_CONFIG_REV_NBR THEN
1348         x_line_tbl(1).config_rev_nbr := TO_NUMBER(p_attr_value);
1349     ELSIF p_attr_id = OE_Line_Util.G_CREDIT_INVOICE_LINE THEN
1350         x_line_tbl(1).credit_invoice_line_id := TO_NUMBER(p_attr_value);
1351     ELSIF p_attr_id = OE_Line_Util.G_CUSTOMER_DOCK THEN
1352         x_line_tbl(1).customer_dock_code := p_attr_value;
1353     ELSIF p_attr_id = OE_Line_Util.G_CUSTOMER_JOB THEN
1354         x_line_tbl(1).customer_job := p_attr_value;
1355     ELSIF p_attr_id = OE_Line_Util.G_CUSTOMER_PRODUCTION_LINE THEN
1356         x_line_tbl(1).customer_production_line := p_attr_value;
1357     ELSIF p_attr_id = OE_Line_Util.G_CUSTOMER_TRX_LINE THEN
1358         x_line_tbl(1).customer_trx_line_id := TO_NUMBER(p_attr_value);
1359     ELSIF p_attr_id = OE_Line_Util.G_CUST_MODEL_SERIAL_NUMBER THEN
1360         x_line_tbl(1).cust_model_serial_number := p_attr_value;
1361     ELSIF p_attr_id = OE_Line_Util.G_CUST_PO_NUMBER THEN
1362         x_line_tbl(1).cust_po_number := p_attr_value;
1363     ELSIF p_attr_id = OE_Line_Util.G_DELIVERY_LEAD_TIME THEN
1364         x_line_tbl(1).delivery_lead_time := TO_NUMBER(p_attr_value);
1365     ELSIF p_attr_id = OE_Line_Util.G_DELIVER_TO_CONTACT THEN
1366         x_line_tbl(1).deliver_to_contact_id := TO_NUMBER(p_attr_value);
1367     ELSIF p_attr_id = OE_Line_Util.G_DELIVER_TO_ORG THEN
1368         x_line_tbl(1).deliver_to_org_id := TO_NUMBER(p_attr_value);
1369     ELSIF p_attr_id = OE_Line_Util.G_DEMAND_BUCKET_TYPE THEN
1370         x_line_tbl(1).demand_bucket_type_code := p_attr_value;
1371     ELSIF p_attr_id = OE_Line_Util.G_DEMAND_CLASS THEN
1372         x_line_tbl(1).demand_class_code := p_attr_value;
1373     ELSIF p_attr_id = OE_Line_Util.G_DEP_PLAN_REQUIRED THEN
1374         x_line_tbl(1).dep_plan_required_flag := p_attr_value;
1375     ELSIF p_attr_id = OE_Line_Util.G_EARLIEST_ACCEPTABLE_DATE THEN
1376       --  x_line_tbl(1).earliest_acceptable_date := TO_DATE(p_attr_value, l_date_format_mask);
1377        x_line_tbl(1).earliest_acceptable_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1378     ELSIF p_attr_id = OE_Line_Util.G_EXPLOSION_DATE THEN
1379       --  x_line_tbl(1).explosion_date := TO_DATE(p_attr_value, l_date_format_mask);
1380        x_line_tbl(1).explosion_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1381     ELSIF p_attr_id = OE_Line_Util.G_FOB_POINT THEN
1382         x_line_tbl(1).fob_point_code := p_attr_value;
1383     ELSIF p_attr_id = OE_Line_Util.G_FREIGHT_CARRIER THEN
1384         x_line_tbl(1).freight_carrier_code := p_attr_value;
1385     ELSIF p_attr_id = OE_Line_Util.G_FREIGHT_TERMS THEN
1386         x_line_tbl(1).freight_terms_code := p_attr_value;
1387     ELSIF p_attr_id = OE_Line_Util.G_FULFILLED_QUANTITY THEN
1388         x_line_tbl(1).fulfilled_quantity := TO_NUMBER(p_attr_value);
1389     ELSIF p_attr_id = OE_Line_Util.G_HEADER THEN
1390         x_line_tbl(1).header_id := TO_NUMBER(p_attr_value);
1391     ELSIF p_attr_id = OE_Line_Util.G_INTERMED_SHIP_TO_CONTACT THEN
1392         x_line_tbl(1).intermed_ship_to_contact_id := TO_NUMBER(p_attr_value);
1393     ELSIF p_attr_id = OE_Line_Util.G_INTERMED_SHIP_TO_ORG THEN
1394         x_line_tbl(1).intermed_ship_to_org_id := TO_NUMBER(p_attr_value);
1395     ELSIF p_attr_id = OE_Line_Util.G_INVENTORY_ITEM THEN
1396         x_line_tbl(1).inventory_item_id := TO_NUMBER(p_attr_value);
1397     ELSIF p_attr_id = OE_Line_Util.G_INVOICE_INTERFACE_STATUS THEN
1398         x_line_tbl(1).invoice_interface_status_code := p_attr_value;
1399     ELSIF p_attr_id = OE_Line_Util.G_INVOICE_TO_CONTACT THEN
1400         x_line_tbl(1).invoice_to_contact_id := TO_NUMBER(p_attr_value);
1401     ELSIF p_attr_id = OE_Line_Util.G_INVOICE_TO_ORG THEN
1402         x_line_tbl(1).invoice_to_org_id := TO_NUMBER(p_attr_value);
1403     ELSIF p_attr_id = OE_Line_Util.G_INVOICED_QUANTITY THEN
1404         x_line_tbl(1).invoiced_quantity := TO_NUMBER(p_attr_value);
1405     ELSIF p_attr_id = OE_Line_Util.G_INVOICING_RULE THEN
1406         x_line_tbl(1).invoicing_rule_id := TO_NUMBER(p_attr_value);
1407     ELSIF p_attr_id = OE_Line_Util.G_ORDERED_ITEM_ID THEN
1408         x_line_tbl(1).ordered_item_id := TO_NUMBER(p_attr_value);
1409     ELSIF p_attr_id = OE_Line_Util.G_ITEM_IDENTIFIER_TYPE THEN
1410         x_line_tbl(1).item_identifier_type := p_attr_value;
1411     ELSIF p_attr_id = OE_Line_Util.G_ORDERED_ITEM THEN
1412         x_line_tbl(1).ordered_item := p_attr_value;
1413     ELSIF p_attr_id = OE_Line_Util.G_ITEM_REVISION THEN
1414         x_line_tbl(1).item_revision := p_attr_value;
1415     ELSIF p_attr_id = OE_Line_Util.G_ITEM_TYPE THEN
1416         x_line_tbl(1).item_type_code := p_attr_value;
1417     ELSIF p_attr_id = OE_Line_Util.G_LATEST_ACCEPTABLE_DATE THEN
1418       --  x_line_tbl(1).latest_acceptable_date := TO_DATE(p_attr_value, l_date_format_mask);
1419        x_line_tbl(1).latest_acceptable_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1420     ELSIF p_attr_id = OE_Line_Util.G_LATE_DEMAND_PENALTY_FACTOR THEN
1421         x_line_tbl(1).late_demand_penalty_factor := TO_NUMBER(p_attr_value);
1422     ELSIF p_attr_id = OE_Line_Util.G_LINE_CATEGORY THEN
1423         x_line_tbl(1).line_category_code := p_attr_value;
1424         x_line_tbl(1).line_type_id := FND_API.G_MISS_NUM;
1425     ELSIF p_attr_id = OE_Line_Util.G_LINE THEN
1426         x_line_tbl(1).line_id := TO_NUMBER(p_attr_value);
1427     ELSIF p_attr_id = OE_Line_Util.G_LINE_NUMBER THEN
1428         x_line_tbl(1).line_number := TO_NUMBER(p_attr_value);
1429     ELSIF p_attr_id = OE_Line_Util.G_LINE_TYPE THEN
1430         x_line_tbl(1).line_type_id := TO_NUMBER(p_attr_value);
1431     ELSIF p_attr_id = OE_Line_Util.G_LINK_TO_LINE THEN
1432         x_line_tbl(1).link_to_line_id := TO_NUMBER(p_attr_value);
1433     ELSIF p_attr_id = OE_Line_Util.G_MODEL_GROUP_NUMBER THEN
1434         x_line_tbl(1).model_group_number := TO_NUMBER(p_attr_value);
1435     ELSIF p_attr_id = OE_Line_Util.G_OPEN THEN
1436         x_line_tbl(1).open_flag := p_attr_value;
1437     ELSIF p_attr_id = OE_Line_Util.G_OPTION_FLAG THEN
1438         x_line_tbl(1).option_flag := p_attr_value;
1439     ELSIF p_attr_id = OE_Line_Util.G_OPTION_NUMBER THEN
1440         x_line_tbl(1).option_number := TO_NUMBER(p_attr_value);
1441     ELSIF p_attr_id = OE_Line_Util.G_ORDERED_QUANTITY THEN
1442         x_line_tbl(1).ordered_quantity := FND_NUMBER.CANONICAL_TO_NUMBER(p_attr_value); --bug 5179564
1443     ELSIF p_attr_id = OE_Line_Util.G_ORDER_QUANTITY_UOM THEN
1444         x_line_tbl(1).order_quantity_uom := p_attr_value;
1445     ELSIF p_attr_id = OE_Line_Util.G_ORDERED_QUANTITY2 THEN       --OPM
1446         x_line_tbl(1).ordered_quantity2 := FND_NUMBER.CANONICAL_TO_NUMBER(p_attr_value); --bug 5179564
1447     ELSIF p_attr_id = OE_Line_Util.G_ORDERED_QUANTITY_UOM2 THEN   --OPM
1448         x_line_tbl(1).ordered_quantity_uom2 := p_attr_value;
1449 
1450     ELSIF p_attr_id = OE_Line_Util.G_ORG THEN
1451         x_line_tbl(1).org_id := TO_NUMBER(p_attr_value);
1452     ELSIF p_attr_id = OE_Line_Util.G_ORIG_SYS_DOCUMENT_REF THEN
1453         x_line_tbl(1).orig_sys_document_ref := p_attr_value;
1454     ELSIF p_attr_id = OE_Line_Util.G_ORIG_SYS_LINE_REF THEN
1455         x_line_tbl(1).orig_sys_line_ref := p_attr_value;
1456     ELSIF p_attr_id = OE_Line_Util.G_ORIG_SYS_SHIPMENT_REF THEN
1457         x_line_tbl(1).orig_sys_shipment_ref := p_attr_value;
1458     ELSIF p_attr_id = OE_Line_Util.G_ORIGINAL_INVENTORY_ITEM THEN
1459         x_line_tbl(1).original_inventory_item_id:= to_number(p_attr_value);
1460     ELSIF p_attr_id = OE_Line_Util.G_ORIGINAL_ORDERED_ITEM THEN
1461         x_line_tbl(1).original_ordered_item := p_attr_value;
1462     ELSIF p_attr_id = OE_Line_Util.G_ORIGINAL_ORDERED_ITEM_ID THEN
1463         x_line_tbl(1).original_ordered_item_id := to_number(p_attr_value);
1464     ELSIF p_attr_id = OE_Line_Util.G_ORIGINAL_ITEM_IDEN_TYPE THEN
1465         x_line_tbl(1).original_item_identifier_type := p_attr_value;
1466     ELSIF p_attr_id = OE_Line_Util.G_ITEM_RELATIONSHIP_TYPE THEN
1467         x_line_tbl(1).item_relationship_type := to_number(p_attr_value);
1468     ELSIF p_attr_id = OE_Line_Util.G_PAYMENT_TERM THEN
1469         x_line_tbl(1).payment_term_id := TO_NUMBER(p_attr_value);
1470     ELSIF p_attr_id = OE_Line_Util.G_PLANNING_PRIORITY THEN
1471         x_line_tbl(1).planning_priority := TO_NUMBER(p_attr_value);
1472     ELSIF p_attr_id = OE_Line_Util.G_PREFERRED_GRADE THEN         --OPM
1473         x_line_tbl(1).preferred_grade := p_attr_value;
1474 
1475     ELSIF p_attr_id = OE_Line_Util.G_PRICE_LIST THEN
1476         x_line_tbl(1).price_list_id := TO_NUMBER(p_attr_value);
1477     ELSIF p_attr_id = OE_Line_Util.G_PRICING_DATE THEN
1478        -- x_line_tbl(1).pricing_date := TO_DATE(p_attr_value, l_date_format_mask);
1479         x_line_tbl(1).pricing_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1480     ELSIF p_attr_id = OE_Line_Util.G_PRICING_QUANTITY THEN
1481         x_line_tbl(1).pricing_quantity := TO_NUMBER(p_attr_value);
1482     ELSIF p_attr_id = OE_Line_Util.G_PRICING_QUANTITY_UOM THEN
1483         x_line_tbl(1).pricing_quantity_uom := p_attr_value;
1484     ELSIF p_attr_id = OE_Line_Util.G_PROJECT THEN
1485         x_line_tbl(1).project_id := TO_NUMBER(p_attr_value);
1486     ELSIF p_attr_id = OE_Line_Util.G_PROMISE_DATE THEN
1487       --  x_line_tbl(1).promise_date := TO_DATE(p_attr_value, l_date_format_mask);
1488         x_line_tbl(1).promise_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1489     ELSIF p_attr_id = OE_Line_Util.G_REFERENCE_CUSTOMER_TRX_LINE THEN
1490         x_line_tbl(1).reference_customer_trx_line_id := TO_NUMBER(p_attr_value);
1491     ELSIF p_attr_id = OE_Line_Util.G_REFERENCE_HEADER THEN
1492         x_line_tbl(1).reference_header_id := TO_NUMBER(p_attr_value);
1493     ELSIF p_attr_id = OE_Line_Util.G_REFERENCE_LINE THEN
1494         x_line_tbl(1).reference_line_id := TO_NUMBER(p_attr_value);
1495     ELSIF p_attr_id = OE_Line_Util.G_REFERENCE_TYPE THEN
1496         NULL;
1497     ELSIF p_attr_id = OE_Line_Util.G_REQUEST_DATE THEN
1498       --  x_line_tbl(1).request_date := TO_DATE(p_attr_value, l_date_format_mask);
1499        x_line_tbl(1).request_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1500     ELSIF p_attr_id = OE_Line_Util.G_RESERVED_QUANTITY THEN
1501         x_line_tbl(1).reserved_quantity := p_attr_value;
1502     ELSIF p_attr_id = OE_Line_Util.G_RLA_SCHEDULE_TYPE THEN
1503         x_line_tbl(1).rla_schedule_type_code := p_attr_value;
1504     ELSIF p_attr_id = OE_Line_Util.G_SCHEDULE_ARRIVAL_DATE THEN
1505       --  x_line_tbl(1).schedule_arrival_date := TO_DATE(p_attr_value, l_date_format_mask);
1506         x_line_tbl(1).schedule_arrival_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1507     ELSIF p_attr_id = OE_Line_Util.G_SCHEDULE_SHIP_DATE THEN
1508        /* x_line_tbl(1).schedule_ship_date :=
1509                   TO_DATE(p_attr_value, l_date_format_mask);*/
1510          x_line_tbl(1).schedule_ship_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1511     ELSIF p_attr_id = OE_Line_Util.G_EARLIEST_SHIP_DATE THEN
1512       /*  x_line_tbl(1).earliest_ship_date :=
1513                   TO_DATE(p_attr_value, l_date_format_mask);*/
1514         x_line_tbl(1).earliest_ship_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1515     ELSIF p_attr_id = OE_Line_Util.G_FIRM_DEMAND THEN
1516         x_line_tbl(1).firm_demand_flag := p_attr_value;
1517     ELSIF p_attr_id = OE_Line_Util.G_SCHEDULE_ACTION THEN
1518         x_line_tbl(1).schedule_action_code := p_attr_value;
1519     ELSIF p_attr_id = OE_Line_Util.G_OVERRIDE_ATP_DATE THEN
1520        x_line_tbl(1).override_atp_date_code := p_attr_value;
1521     ELSIF p_attr_id = OE_Line_Util.G_SCHEDULE_STATUS THEN
1522         x_line_tbl(1).schedule_status_code := p_attr_value;
1523     ELSIF p_attr_id = OE_Line_Util.G_SHIPMENT_NUMBER THEN
1524         x_line_tbl(1).shipment_number := TO_NUMBER(p_attr_value);
1525     ELSIF p_attr_id = OE_Line_Util.G_SHIPMENT_PRIORITY THEN
1526         x_line_tbl(1).shipment_priority_code := p_attr_value;
1527     ELSIF p_attr_id = OE_Line_Util.G_SHIPPED_QUANTITY THEN
1528         x_line_tbl(1).shipped_quantity := TO_NUMBER(p_attr_value);
1529     ELSIF p_attr_id = OE_Line_Util.G_SHIPPING_METHOD THEN
1530         x_line_tbl(1).shipping_method_code := p_attr_value;
1531     ELSIF p_attr_id = OE_Line_Util.G_SHIPPING_QUANTITY THEN
1532         x_line_tbl(1).shipping_quantity := TO_NUMBER(p_attr_value);
1533     ELSIF p_attr_id = OE_Line_Util.G_SHIPPING_QUANTITY_UOM THEN
1534         x_line_tbl(1).shipping_quantity_uom := p_attr_value;
1535     ELSIF p_attr_id = OE_Line_Util.G_SHIP_FROM_ORG THEN
1536         x_line_tbl(1).ship_from_org_id := TO_NUMBER(p_attr_value);
1537     ELSIF p_attr_id = OE_Line_Util.G_SUBINVENTORY THEN
1538         x_line_tbl(1).subinventory := p_attr_value;
1539     ELSIF p_attr_id = OE_Line_Util.G_SHIP_TOLERANCE_ABOVE THEN
1540         x_line_tbl(1).ship_tolerance_above := TO_NUMBER(p_attr_value);
1541     ELSIF p_attr_id = OE_Line_Util.G_SHIP_TOLERANCE_BELOW THEN
1542         x_line_tbl(1).ship_tolerance_below := TO_NUMBER(p_attr_value);
1543     ELSIF p_attr_id = OE_Line_Util.G_SHIPPING_INTERFACED THEN
1544         x_line_tbl(1).shipping_interfaced_flag := p_attr_value;
1545     ELSIF p_attr_id = OE_Line_Util.G_SHIP_TO_CONTACT THEN
1546         x_line_tbl(1).ship_to_contact_id := TO_NUMBER(p_attr_value);
1547     IF l_debug_level  > 0 THEN
1548         oe_debug_pub.add(  'SHIP TO CONTACT1'|| X_LINE_TBL ( 1 ) .SHIP_TO_CONTACT_ID , 1 ) ;
1549     END IF;
1550     ELSIF p_attr_id = OE_Line_Util.G_SHIP_TO_ORG THEN
1551         x_line_tbl(1).ship_to_org_id := TO_NUMBER(p_attr_value);
1552     ELSIF p_attr_id = OE_Line_Util.G_SHIP_MODEL_COMPLETE_FLAG THEN
1553         x_line_tbl(1).ship_model_complete_flag := p_attr_value;
1554     ELSIF p_attr_id = OE_Line_Util.G_SOLD_TO_ORG THEN
1555         x_line_tbl(1).sold_to_org_id := TO_NUMBER(p_attr_value);
1556     ELSIF p_attr_id = OE_Line_Util.G_SORT_ORDER THEN
1557         x_line_tbl(1).sort_order := p_attr_value;
1558     ELSIF p_attr_id = OE_Line_Util.G_SOURCE_DOCUMENT THEN
1559         x_line_tbl(1).source_document_id := TO_NUMBER(p_attr_value);
1560     ELSIF p_attr_id = OE_Line_Util.G_SOURCE_DOCUMENT_LINE THEN
1561         x_line_tbl(1).source_document_line_id := TO_NUMBER(p_attr_value);
1562     ELSIF p_attr_id = OE_Line_Util.G_SOURCE_DOCUMENT_TYPE THEN
1563         x_line_tbl(1).source_document_type_id := TO_NUMBER(p_attr_value);
1564     ELSIF p_attr_id = OE_Line_Util.G_SOURCE_TYPE THEN
1565         x_line_tbl(1).source_type_code := p_attr_value;
1566     ELSIF p_attr_id = OE_Line_Util.G_TASK THEN
1567         x_line_tbl(1).task_id := TO_NUMBER(p_attr_value);
1568     ELSIF p_attr_id = OE_Line_Util.G_TAX THEN
1569         x_line_tbl(1).tax_code := p_attr_value;
1570     ELSIF p_attr_id = OE_Line_Util.G_TAX_DATE THEN
1571       --  x_line_tbl(1).tax_date := TO_DATE(p_attr_value, l_date_format_mask);
1572          x_line_tbl(1).tax_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1573     ELSIF p_attr_id = OE_Line_Util.G_TAX_EXEMPT THEN
1574         x_line_tbl(1).tax_exempt_flag := p_attr_value;
1575     ELSIF p_attr_id = OE_Line_Util.G_TAX_EXEMPT_NUMBER THEN
1576         x_line_tbl(1).tax_exempt_number := p_attr_value;
1577     ELSIF p_attr_id = OE_Line_Util.G_TAX_EXEMPT_REASON THEN
1578         x_line_tbl(1).tax_exempt_reason_code := p_attr_value;
1579     ELSIF p_attr_id = OE_Line_Util.G_TAX_POINT THEN
1580         x_line_tbl(1).tax_point_code := p_attr_value;
1581     ELSIF p_attr_id = OE_Line_Util.G_TAX_RATE THEN
1582         x_line_tbl(1).tax_rate := TO_NUMBER(p_attr_value);
1583     ELSIF p_attr_id = OE_Line_Util.G_TAX_VALUE THEN
1584         x_line_tbl(1).tax_value := TO_NUMBER(p_attr_value);
1585     ELSIF p_attr_id = OE_Line_Util.G_TOP_MODEL_LINE THEN
1586         x_line_tbl(1).top_model_line_id := TO_NUMBER(p_attr_value);
1587     ELSIF p_attr_id = OE_Line_Util.G_UNIT_LIST_PRICE THEN
1588         x_line_tbl(1).unit_list_price := TO_NUMBER(p_attr_value);
1589     ELSIF p_attr_id = OE_Line_Util.G_UNIT_LIST_PRICE_PER_PQTY THEN
1590         x_line_tbl(1).unit_list_price_per_pqty := TO_NUMBER(p_attr_value);
1591     ELSIF p_attr_id = OE_Line_Util.G_UNIT_SELLING_PRICE THEN
1592         x_line_tbl(1).unit_selling_price := FND_NUMBER.CANONICAL_TO_NUMBER(p_attr_value); -- bug 5179564
1593     ELSIF p_attr_id = OE_Line_Util.G_UNIT_SELLING_PRICE_PER_PQTY THEN
1594         x_line_tbl(1).unit_selling_price_per_pqty := FND_NUMBER.CANONICAL_TO_NUMBER(p_attr_value); -- bug 5179564
1595     ELSIF p_attr_id = OE_Line_Util.G_VISIBLE_DEMAND THEN
1596         x_line_tbl(1).visible_demand_flag := p_attr_value;
1597     ELSIF p_attr_id = OE_Line_Util.G_SPLIT_FROM_LINE THEN
1598         x_line_tbl(1).split_from_line_id := TO_NUMBER(p_attr_value);
1599     ELSIF p_attr_id = OE_Line_Util.G_CUST_PRODUCTION_SEQ_NUM THEN
1600         x_line_tbl(1).cust_production_seq_num := p_attr_value;
1601     ELSIF p_attr_id = OE_Line_Util.G_AUTHORIZED_TO_SHIP THEN
1602         x_line_tbl(1).authorized_to_ship_flag := p_attr_value;
1603     ELSIF p_attr_id = OE_Line_Util.G_VEH_CUS_ITEM_CUM_KEY THEN
1604         x_line_tbl(1).veh_cus_item_cum_key_id := TO_NUMBER(p_attr_value);
1605     ELSIF p_attr_id = OE_Line_Util.G_SALESREP THEN
1606         x_line_tbl(1).salesrep_id := TO_NUMBER(p_attr_value);
1607     ELSIF p_attr_id = OE_Line_Util.G_RETURN_REASON THEN
1608         x_line_tbl(1).return_reason_code := p_attr_value;
1609     ELSIF p_attr_id = OE_Line_Util.G_ARRIVAL_SET THEN
1610         x_line_tbl(1).arrival_set_id := TO_NUMBER(p_attr_value);
1611     --recurring charges
1612     ELSIF p_attr_id = OE_LINE_UTIL.G_CHARGE_PERIODICITY THEN
1613         x_line_tbl(1).charge_periodicity_code := p_attr_value;
1614     ELSIF p_attr_id = OE_Line_Util.G_ARRIVAL_SET_NAME THEN
1615     IF l_debug_level  > 0 THEN
1616         oe_debug_pub.add(  'RAJ CONTROLLER - ATTRIBUTE CHANGE'|| P_ATTR_VALUE ) ;
1617     END IF;
1618     IF p_attr_value IS NULL THEN
1619         x_line_tbl(1).arrival_set_id := NULL;
1620         x_line_tbl(1).arrival_set := p_attr_value;
1621        x_old_line_tbl(1).arrival_set := null;
1622     ELSE
1623         x_line_tbl(1).arrival_set := p_attr_value;
1624         x_line_tbl(1).arrival_set_id := NULL;
1625     END IF;
1626     ELSIF p_attr_id = OE_Line_Util.G_SHIP_SET THEN
1627         x_line_tbl(1).ship_set_id := TO_NUMBER(p_attr_value);
1628     ELSIF p_attr_id = OE_Line_Util.G_SHIP_SET_NAME THEN
1629     IF p_attr_value IS NULL THEN
1630         x_line_tbl(1).ship_set_id := NULL;
1631         x_line_tbl(1).ship_set := p_attr_value;
1632        x_old_line_tbl(1).ship_set := null;
1633     ELSE
1634         x_line_tbl(1).ship_set := p_attr_value;
1635         x_line_tbl(1).ship_set_id := NULL;
1636     END IF;
1637     ELSIF p_attr_id = OE_Line_Util.G_FULFILLMENT_SET THEN
1638         x_line_tbl(1).fulfillment_set := TO_NUMBER(p_attr_value);
1639     ELSIF p_attr_id = OE_Line_Util.G_FULFILLMENT_SET_NAME THEN
1640     IF p_attr_value IS NULL THEN
1641         x_line_tbl(1).fulfillment_set_id := NULL;
1642     ELSE
1643         x_line_tbl(1).fulfillment_set := p_attr_value;
1644         x_line_tbl(1).fulfillment_set_id := NULL;
1645     END IF;
1646     ELSIF p_attr_id = OE_Line_Util.G_OVER_SHIP_REASON THEN
1647         x_line_tbl(1).over_ship_reason_code := p_attr_value;
1648     ELSIF p_attr_id = OE_Line_Util.G_OVER_SHIP_RESOLVED THEN
1649         x_line_tbl(1).over_ship_resolved_flag := p_attr_value;
1650     ELSIF p_attr_id =    OE_Line_Util.G_FIRST_ACK THEN
1651         x_line_tbl(1).first_ack_code := p_attr_value;
1652     ELSIF p_attr_id =    OE_Line_Util.G_FIRST_ACK_DATE THEN
1653      --   x_line_tbl(1).first_ack_date := TO_DATE(p_attr_value, l_date_format_mask);
1654       x_line_tbl(1).first_ack_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1655     ELSIF p_attr_id =    OE_Line_Util.G_LAST_ACK THEN
1656         x_line_tbl(1).last_ack_code := p_attr_value;
1657     ELSIF p_attr_id =    OE_Line_Util.G_LAST_ACK_DATE THEN
1658        -- x_line_tbl(1).last_ack_date := TO_DATE(p_attr_value, l_date_format_mask);
1659        x_line_tbl(1).last_ack_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1660     ELSIF p_attr_id =    OE_Line_Util.G_END_ITEM_UNIT_NUMBER THEN
1661         x_line_tbl(1).end_item_unit_number := p_attr_value;
1662     ELSIF p_attr_id =    OE_Line_Util.G_SHIPPING_INSTRUCTIONS THEN
1663         x_line_tbl(1).shipping_instructions := p_attr_value;
1664     ELSIF p_attr_id =    OE_Line_Util.G_PACKING_INSTRUCTIONS THEN
1665         x_line_tbl(1).packing_instructions := p_attr_value;
1666     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_TXN_REASON THEN
1667         x_line_tbl(1).service_txn_reason_code := p_attr_value;
1668     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_TXN_COMMENTS THEN
1669         x_line_tbl(1).service_txn_comments := p_attr_value;
1670     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_DURATION THEN
1671         x_line_tbl(1).service_duration := TO_NUMBER(p_attr_value);
1672     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_PERIOD THEN
1673         x_line_tbl(1).service_period := p_attr_value;
1674     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_START_DATE THEN
1675       --  x_line_tbl(1).service_start_date := TO_DATE(p_attr_value, l_date_format_mask);
1676        x_line_tbl(1).service_start_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1677     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_END_DATE THEN
1678       -- x_line_tbl(1).service_end_date := TO_DATE(p_attr_value, l_date_format_mask);
1679        x_line_tbl(1).service_end_date := fnd_date.string_TO_DATE(p_attr_value, l_date_format_mask); --bug5402396
1680     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_COTERMINATE_FLAG THEN
1681         x_line_tbl(1).service_coterminate_flag := p_attr_value;
1682     ELSIF p_attr_id =    OE_Line_Util.G_UNIT_SELLING_PERCENT THEN
1683         x_line_tbl(1).unit_selling_percent := TO_NUMBER(p_attr_value);
1684     ELSIF p_attr_id =    OE_Line_Util.G_UNIT_LIST_PERCENT THEN
1685         x_line_tbl(1).unit_list_percent := TO_NUMBER(p_attr_value);
1686     ELSIF p_attr_id =    OE_Line_Util.G_UNIT_PERCENT_BASE_PRICE THEN
1687         x_line_tbl(1).unit_percent_base_price := TO_NUMBER(p_attr_value);
1688     ELSIF p_attr_id =    OE_Line_Util.G_SERVICE_NUMBER THEN
1689         x_line_tbl(1).service_number := TO_NUMBER(p_attr_value);
1690     ELSIF p_attr_id = OE_Line_Util.G_Service_Reference_Type_Code THEN
1691         x_line_tbl(1).service_reference_type_code := p_attr_value;
1692     ELSIF p_attr_id = OE_Line_Util.G_Service_Reference_Line_Id THEN
1693         x_line_tbl(1).service_reference_line_id := TO_NUMBER(p_attr_value);
1694     ELSIF p_attr_id = OE_Line_Util.G_Service_Reference_System_Id THEN
1695         x_line_tbl(1).service_reference_system_id := TO_NUMBER(p_attr_value);
1696     ELSIF p_attr_id = OE_Line_Util.G_CHANGE_REASON THEN
1697         x_line_tbl(1).change_reason := p_attr_value;
1698     ELSIF p_attr_id = OE_Line_Util.G_CHANGE_COMMENTS THEN
1699         x_line_tbl(1).change_comments := p_attr_value;
1700     ELSIF p_attr_id = OE_Line_Util.G_CALCULATE_PRICE_FLAG THEN
1701         x_line_tbl(1).calculate_price_flag := p_attr_value;
1702     ELSIF p_attr_id = OE_Line_Util.G_CUSTOMER_LINE_NUMBER THEN
1703         x_line_tbl(1).customer_line_number := p_attr_value;
1704     ELSIF p_attr_id = OE_Line_Util.G_CUSTOMER_SHIPMENT_NUMBER THEN
1705         x_line_tbl(1).customer_shipment_number := p_attr_value;
1706     ELSIF p_attr_id = OE_Line_Util.G_user_ITEM_DESCRIPTION THEN
1707         x_line_tbl(1).user_item_description := p_attr_value;
1708     ELSIF p_attr_id = OE_Line_Util.G_ATTRIBUTE1
1709     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE10
1710     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE11
1711     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE12
1712     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE13
1713     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE14
1714     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE15
1715     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE16   --For bug 2184255
1716     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE17
1717     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE18
1718     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE19
1719     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE2
1720     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE20
1721     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE3
1722     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE4
1723     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE5
1724     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE6
1725     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE7
1726     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE8
1727     OR     p_attr_id = OE_Line_Util.G_ATTRIBUTE9
1728     OR     p_attr_id = OE_Line_Util.G_CONTEXT
1729     THEN
1730 
1731         x_line_tbl(1).attribute1          := p_line_dff_rec.attribute1;
1732         x_line_tbl(1).attribute10         := p_line_dff_rec.attribute10;
1733         x_line_tbl(1).attribute11         := p_line_dff_rec.attribute11;
1734         x_line_tbl(1).attribute12         := p_line_dff_rec.attribute12;
1735         x_line_tbl(1).attribute13         := p_line_dff_rec.attribute13;
1736         x_line_tbl(1).attribute14         := p_line_dff_rec.attribute14;
1737         x_line_tbl(1).attribute15         := p_line_dff_rec.attribute15;
1738         x_line_tbl(1).attribute16         := p_line_dff_rec.attribute16;   --For bug 2184255
1739         x_line_tbl(1).attribute17         := p_line_dff_rec.attribute17;
1740         x_line_tbl(1).attribute18         := p_line_dff_rec.attribute18;
1741         x_line_tbl(1).attribute19         := p_line_dff_rec.attribute19;
1742         x_line_tbl(1).attribute2          := p_line_dff_rec.attribute2;
1743         x_line_tbl(1).attribute20         := p_line_dff_rec.attribute20;
1744         x_line_tbl(1).attribute3          := p_line_dff_rec.attribute3;
1745         x_line_tbl(1).attribute4          := p_line_dff_rec.attribute4;
1746         x_line_tbl(1).attribute5          := p_line_dff_rec.attribute5;
1747         x_line_tbl(1).attribute6          := p_line_dff_rec.attribute6;
1748         x_line_tbl(1).attribute7          := p_line_dff_rec.attribute7;
1749         x_line_tbl(1).attribute8          := p_line_dff_rec.attribute8;
1750         x_line_tbl(1).attribute9          := p_line_dff_rec.attribute9;
1751         x_line_tbl(1).context             := p_line_dff_rec.context;
1752 
1753     ELSIF p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE1
1754     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE10
1755     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE11
1756     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE12
1757     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE13
1758     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE14
1759     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE15
1760     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE16
1761     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE17
1762     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE18
1763     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE19
1764     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE2
1765     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE20
1766     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE3
1767     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE4
1768     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE5
1769     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE6
1770     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE7
1771     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE8
1772     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE9
1773     OR     p_attr_id = OE_Line_Util.G_GLOBAL_ATTRIBUTE_CATEGORY
1774     THEN
1775 
1776         x_line_tbl(1).global_attribute1   := p_line_dff_rec.global_attribute1;
1777         x_line_tbl(1).global_attribute10  := p_line_dff_rec.global_attribute10;
1778         x_line_tbl(1).global_attribute11  := p_line_dff_rec.global_attribute11;
1779         x_line_tbl(1).global_attribute12  := p_line_dff_rec.global_attribute12;
1780         x_line_tbl(1).global_attribute13  := p_line_dff_rec.global_attribute13;
1781         x_line_tbl(1).global_attribute14  := p_line_dff_rec.global_attribute14;
1782         x_line_tbl(1).global_attribute15  := p_line_dff_rec.global_attribute15;
1783         x_line_tbl(1).global_attribute16  := p_line_dff_rec.global_attribute16;
1784         x_line_tbl(1).global_attribute17  := p_line_dff_rec.global_attribute17;
1785         x_line_tbl(1).global_attribute18  := p_line_dff_rec.global_attribute18;
1786         x_line_tbl(1).global_attribute19  := p_line_dff_rec.global_attribute19;
1787         x_line_tbl(1).global_attribute2   := p_line_dff_rec.global_attribute2;
1788         x_line_tbl(1).global_attribute20  := p_line_dff_rec.global_attribute20;
1789         x_line_tbl(1).global_attribute3   := p_line_dff_rec.global_attribute3;
1790         x_line_tbl(1).global_attribute4   := p_line_dff_rec.global_attribute4;
1791         x_line_tbl(1).global_attribute5   := p_line_dff_rec.global_attribute5;
1792         x_line_tbl(1).global_attribute6   := p_line_dff_rec.global_attribute6;
1793         x_line_tbl(1).global_attribute7   := p_line_dff_rec.global_attribute7;
1794         x_line_tbl(1).global_attribute8   := p_line_dff_rec.global_attribute8;
1795         x_line_tbl(1).global_attribute9   := p_line_dff_rec.global_attribute9;
1796         x_line_tbl(1).global_attribute_category := p_line_dff_rec.global_attribute_category;
1797 
1798     ELSIF p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE1
1799     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE10
1800     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE11
1801     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE12
1802     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE13
1803     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE14
1804     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE15
1805     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE2
1806     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE3
1807     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE4
1808     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE5
1809     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE6
1810     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE7
1811     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE8
1812     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE9
1813     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE16
1814     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE17
1815     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE18
1816     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE19
1817     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE20
1818     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE21
1819     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE22
1820     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE23
1821     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE24
1822     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE25
1823     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE26
1824     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE27
1825     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE28
1826     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE29
1827     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_ATTRIBUTE30
1828     OR     p_attr_id = OE_Line_Util.G_INDUSTRY_CONTEXT
1829     THEN
1830 
1831         x_line_tbl(1).industry_attribute1 := p_line_dff_rec.industry_attribute1;
1832         x_line_tbl(1).industry_attribute10 := p_line_dff_rec.industry_attribute10;
1833         x_line_tbl(1).industry_attribute11 := p_line_dff_rec.industry_attribute11;
1834         x_line_tbl(1).industry_attribute12 := p_line_dff_rec.industry_attribute12;
1835         x_line_tbl(1).industry_attribute13 := p_line_dff_rec.industry_attribute13;
1836         x_line_tbl(1).industry_attribute14 := p_line_dff_rec.industry_attribute14;
1837         x_line_tbl(1).industry_attribute15 := p_line_dff_rec.industry_attribute15;
1838         x_line_tbl(1).industry_attribute2 := p_line_dff_rec.industry_attribute2;
1839         x_line_tbl(1).industry_attribute3 := p_line_dff_rec.industry_attribute3;
1840         x_line_tbl(1).industry_attribute4 := p_line_dff_rec.industry_attribute4;
1841         x_line_tbl(1).industry_attribute5 := p_line_dff_rec.industry_attribute5;
1842         x_line_tbl(1).industry_attribute6 := p_line_dff_rec.industry_attribute6;
1843         x_line_tbl(1).industry_attribute7 := p_line_dff_rec.industry_attribute7;
1844         x_line_tbl(1).industry_attribute8 := p_line_dff_rec.industry_attribute8;
1845         x_line_tbl(1).industry_attribute9 := p_line_dff_rec.industry_attribute9;
1846         x_line_tbl(1).industry_attribute16 := p_line_dff_rec.industry_attribute16;
1847         x_line_tbl(1).industry_attribute17 := p_line_dff_rec.industry_attribute17;
1848         x_line_tbl(1).industry_attribute18 := p_line_dff_rec.industry_attribute18;
1849         x_line_tbl(1).industry_attribute19 := p_line_dff_rec.industry_attribute19;
1850         x_line_tbl(1).industry_attribute20 := p_line_dff_rec.industry_attribute20;
1851         x_line_tbl(1).industry_attribute21 := p_line_dff_rec.industry_attribute21;
1852         x_line_tbl(1).industry_attribute22 := p_line_dff_rec.industry_attribute22;
1853         x_line_tbl(1).industry_attribute23 := p_line_dff_rec.industry_attribute23;
1854         x_line_tbl(1).industry_attribute24 := p_line_dff_rec.industry_attribute24;
1855         x_line_tbl(1).industry_attribute25 := p_line_dff_rec.industry_attribute25;
1856         x_line_tbl(1).industry_attribute26 := p_line_dff_rec.industry_attribute26;
1857         x_line_tbl(1).industry_attribute27 := p_line_dff_rec.industry_attribute27;
1858         x_line_tbl(1).industry_attribute28 := p_line_dff_rec.industry_attribute28;
1859         x_line_tbl(1).industry_attribute29 := p_line_dff_rec.industry_attribute29;
1860         x_line_tbl(1).industry_attribute30 := p_line_dff_rec.industry_attribute30;
1861         x_line_tbl(1).industry_context    := p_line_dff_rec.industry_context;
1862 
1863     ELSIF p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE1
1864     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE10
1865     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE2
1866     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE3
1867     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE4
1868     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE5
1869     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE6
1870     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE7
1871     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE8
1872     OR     p_attr_id = OE_Line_Util.G_PRICING_ATTRIBUTE9
1873     OR     p_attr_id = OE_Line_Util.G_PRICING_CONTEXT
1874     THEN
1875 
1876         x_line_tbl(1).pricing_attribute1  := p_line_dff_rec.pricing_attribute1;
1877         x_line_tbl(1).pricing_attribute10 := p_line_dff_rec.pricing_attribute10;
1878         x_line_tbl(1).pricing_attribute2  := p_line_dff_rec.pricing_attribute2;
1879         x_line_tbl(1).pricing_attribute3  := p_line_dff_rec.pricing_attribute3;
1880         x_line_tbl(1).pricing_attribute4  := p_line_dff_rec.pricing_attribute4;
1881         x_line_tbl(1).pricing_attribute5  := p_line_dff_rec.pricing_attribute5;
1882         x_line_tbl(1).pricing_attribute6  := p_line_dff_rec.pricing_attribute6;
1883         x_line_tbl(1).pricing_attribute7  := p_line_dff_rec.pricing_attribute7;
1884         x_line_tbl(1).pricing_attribute8  := p_line_dff_rec.pricing_attribute8;
1885         x_line_tbl(1).pricing_attribute9  := p_line_dff_rec.pricing_attribute9;
1886         x_line_tbl(1).pricing_context     := p_line_dff_rec.pricing_context;
1887     /* Amy Return, enable return attributes  */
1888     ELSIF p_attr_id = OE_Line_Util.G_RETURN_CONTEXT THEN
1889         x_line_tbl(1).return_context := p_attr_value;
1890         x_line_tbl(1).return_attribute1   := p_line_dff_rec.return_attribute1;
1891         x_line_tbl(1).return_attribute10  := p_line_dff_rec.return_attribute10;
1892         x_line_tbl(1).return_attribute11  := p_line_dff_rec.return_attribute11;
1893         x_line_tbl(1).return_attribute12  := p_line_dff_rec.return_attribute12;
1894         x_line_tbl(1).return_attribute13  := p_line_dff_rec.return_attribute13;
1895         x_line_tbl(1).return_attribute14  := p_line_dff_rec.return_attribute14;
1896         x_line_tbl(1).return_attribute15  := p_line_dff_rec.return_attribute15;
1897         x_line_tbl(1).return_attribute2  := p_line_dff_rec.return_attribute2;
1898         x_line_tbl(1).return_attribute3  := p_line_dff_rec.return_attribute3;
1899         x_line_tbl(1).return_attribute4  := p_line_dff_rec.return_attribute4;
1900         x_line_tbl(1).return_attribute5  := p_line_dff_rec.return_attribute5;
1901         x_line_tbl(1).return_attribute6  := p_line_dff_rec.return_attribute6;
1902         x_line_tbl(1).return_attribute7  := p_line_dff_rec.return_attribute7;
1903         x_line_tbl(1).return_attribute8  := p_line_dff_rec.return_attribute8;
1904         x_line_tbl(1).return_attribute9  := p_line_dff_rec.return_attribute9;
1905         x_line_tbl(1).line_category_code := OE_GLOBALS.G_RETURN_CATEGORY_CODE;
1906 
1907     ELSIF p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE1
1908     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE10
1909     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE11
1910     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE12
1911     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE13
1912     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE14
1913     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE15
1914     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE2
1915     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE3
1916     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE4
1917     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE5
1918     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE6
1919     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE7
1920     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE8
1921     OR     p_attr_id = OE_Line_Util.G_TP_ATTRIBUTE9
1922     OR     p_attr_id = OE_Line_Util.G_TP_CONTEXT
1923     THEN
1924         IF l_debug_level  > 0 THEN
1925             oe_debug_pub.add(  'JYOTHI: I AM IN CHANGE ATTRIBUTE' ) ;
1926         END IF;
1927 
1928         x_line_tbl(1).tp_attribute1          := p_line_dff_rec.tp_attribute1;
1929         x_line_tbl(1).tp_attribute10         := p_line_dff_rec.tp_attribute10;
1930         x_line_tbl(1).tp_attribute11         := p_line_dff_rec.tp_attribute11;
1931         x_line_tbl(1).tp_attribute12         := p_line_dff_rec.tp_attribute12;
1932         x_line_tbl(1).tp_attribute13         := p_line_dff_rec.tp_attribute13;
1933         x_line_tbl(1).tp_attribute14         := p_line_dff_rec.tp_attribute14;
1934         x_line_tbl(1).tp_attribute15         := p_line_dff_rec.tp_attribute15;
1935         x_line_tbl(1).tp_attribute2          := p_line_dff_rec.tp_attribute2;
1936         x_line_tbl(1).tp_attribute3          := p_line_dff_rec.tp_attribute3;
1937         x_line_tbl(1).tp_attribute4          := p_line_dff_rec.tp_attribute4;
1938         x_line_tbl(1).tp_attribute5          := p_line_dff_rec.tp_attribute5;
1939         x_line_tbl(1).tp_attribute6          := p_line_dff_rec.tp_attribute6;
1940         x_line_tbl(1).tp_attribute7          := p_line_dff_rec.tp_attribute7;
1941         x_line_tbl(1).tp_attribute8          := p_line_dff_rec.tp_attribute8;
1942         x_line_tbl(1).tp_attribute9          := p_line_dff_rec.tp_attribute9;
1943         x_line_tbl(1).tp_context          := p_line_dff_rec.tp_context;
1944 
1945         IF l_debug_level  > 0 THEN
1946             oe_debug_pub.add(  'JYOTHI- TP ATTRIBUTE IS ' || X_LINE_TBL ( 1 ) .TP_ATTRIBUTE1 ) ;
1947         END IF;
1948     ELSIF p_attr_id = OE_Line_Util.G_COMMITMENT THEN
1949         x_line_tbl(1).commitment_id := TO_NUMBER(p_attr_value);
1950     --MRG BGN
1951     ELSIF p_attr_id = OE_LINE_UTIL.G_UNIT_COST Then
1952         IF l_debug_level  > 0 THEN
1953             oe_debug_pub.add(  'P_ATTR_VALUE='||P_ATTR_VALUE ) ;
1954         END IF;
1955         x_line_tbl(1).unit_cost := TO_NUMBER(p_attr_value);
1956         IF l_debug_level  > 0 THEN
1957             oe_debug_pub.add(  'FLINB:UNIT_COST:'||P_ATTR_VALUE ) ;
1958         END IF;
1959     --MRG END
1960     -- INVCONV
1961      ELSIF p_attr_id = OE_Line_Util.G_CANCELLED_QUANTITY2 THEN
1962         x_line_tbl(1).cancelled_quantity2 := TO_NUMBER(p_attr_value);
1963     ELSIF p_attr_id = OE_Line_Util.G_FULFILLED_QUANTITY2 THEN
1964         x_line_tbl(1).fulfilled_quantity2 := TO_NUMBER(p_attr_value);
1965     ELSIF p_attr_id = OE_Line_Util.G_SHIPPED_QUANTITY2 THEN
1966         x_line_tbl(1).shipped_quantity2 := TO_NUMBER(p_attr_value);
1967     ELSIF p_attr_id = OE_Line_Util.G_SHIPPING_QUANTITY2 THEN
1968         x_line_tbl(1).shipping_quantity2 := TO_NUMBER(p_attr_value);
1969     ELSIF p_attr_id = OE_Line_Util.G_SHIPPING_QUANTITY_UOM2 THEN
1970         x_line_tbl(1).shipping_quantity_uom2 := p_attr_value;
1971     ELSIF p_attr_id = OE_Line_Util.G_RESERVED_QUANTITY2 THEN
1972         x_line_tbl(1).reserved_quantity2 := p_attr_value;
1973 
1974     -- INVCONV
1975     ELSE
1976 
1977         IF l_debug_level  > 0 THEN
1978             oe_debug_pub.add(  'UNRECOGNIZED ATTRIBUTE EXCEPTION' , 2 ) ;
1979         END IF;
1980 
1981         --  Unexpected error, unrecognized attribute
1982 
1983         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1984         THEN
1985             oe_msg_pub.Add_Exc_Msg
1986             (   G_PKG_NAME
1987             ,   'Change_Attribute'
1988             ,   'Unrecognized attribute'
1989             );
1990         END IF;
1991 
1992         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1993 
1994     END IF;
1995 
1996     -- PLEASE ADD THE ABOVE IF LOGIC FOR NEW ATTRIBUTES TO THE PROCEDURE
1997     -- COPY_ATTRIBUTE_TO_REC ALSO. THIS NEW PROCEDURE WILL REPLACE
1998     -- THESE IF CALLS POST OM PACK I OR 11.5.9.
1999 
2000     END IF; -- End if code release >= 11.5.9
2001 
2002     --  Set Operation.
2003 
2004     IF l_debug_level  > 0 THEN
2005         oe_debug_pub.add(  'SETTING OPERATION' , 2 ) ;
2006     END IF;
2007 
2008     IF FND_API.To_Boolean(x_line_tbl(1).db_flag) THEN
2009         x_line_tbl(1).operation := OE_GLOBALS.G_OPR_UPDATE;
2010     ELSE
2011         x_line_tbl(1).operation := OE_GLOBALS.G_OPR_CREATE;
2012     END IF;
2013 
2014     --  Populate line table
2015     --  Validate Scheduling Dates Changes, if any.
2016 
2017     IF NVL(x_line_tbl(1).source_type_code,OE_GLOBALS.G_SOURCE_INTERNAL)
2018                = OE_GLOBALS.G_SOURCE_INTERNAL THEN
2019     IF NOT OE_GLOBALS.Equal(x_line_tbl(1).schedule_ship_date,
2020                             x_old_line_tbl(1).schedule_ship_date)
2021     THEN
2022        -- If the Order Type is ARRIVAL, the user is not
2023        -- allowed to change the schedule ship date
2024 
2025        l_order_date_type_code    := Get_Date_Type(x_line_tbl(1).header_id);
2026 
2027        IF nvl(l_order_date_type_code,'SHIP') = 'ARRIVAL' THEN
2028 
2029           FND_MESSAGE.SET_NAME('ONT','OE_SCH_INV_SHP_DATE');
2030           OE_MSG_PUB.Add;
2031 
2032           l_return_status := FND_API.G_RET_STS_ERROR;
2033 
2034        END IF;
2035 
2036        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2037            IF l_debug_level  > 0 THEN
2038                oe_debug_pub.add(  'DATE TYPE RETURNED UNEXP_ERROR' , 2 ) ;
2039            END IF;
2040            RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2041        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2042            IF l_debug_level  > 0 THEN
2043                oe_debug_pub.add(  'DATE TYPE RETURN RET_STS_ERROR' , 2 ) ;
2044            END IF;
2045            RAISE FND_API.G_EXC_ERROR;
2046        END IF;
2047 
2048     END IF;
2049 
2050     IF NOT OE_GLOBALS.Equal(x_line_tbl(1).schedule_arrival_date,
2051                             x_old_line_tbl(1).schedule_arrival_date)
2052     THEN
2053 
2054        -- If the Order Type is SHIP (or null), the user is not
2055        -- allowed to change the schedule arrival date
2056 
2057        l_order_date_type_code    := Get_Date_Type(x_line_tbl(1).header_id);
2058 
2059        IF nvl(l_order_date_type_code,'SHIP') = 'SHIP' THEN
2060 
2061           FND_MESSAGE.SET_NAME('ONT','OE_SCH_INV_ARR_DATE');
2062           OE_MSG_PUB.Add;
2063 
2064           l_return_status := FND_API.G_RET_STS_ERROR;
2065 
2066        END IF;
2067 
2068        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2069            IF l_debug_level  > 0 THEN
2070                oe_debug_pub.add(  'DATE TYPE RETURNED UNEXP_ERROR' , 2 ) ;
2071            END IF;
2072            RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2073        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2074            IF l_debug_level  > 0 THEN
2075                oe_debug_pub.add(  'DATE TYPE RETURN RET_STS_ERROR' , 2 ) ;
2076            END IF;
2077            RAISE FND_API.G_EXC_ERROR;
2078        END IF;
2079 
2080     END IF;
2081     END IF;
2082     -- start for 3998402
2083     IF (NVL(x_line_tbl(1).source_type_code,OE_GLOBALS.G_SOURCE_INTERNAL)
2084                                                       = OE_GLOBALS.G_SOURCE_EXTERNAL
2085        AND (x_line_tbl(1).ship_set_id is not null
2086             OR x_line_tbl(1).arrival_set_id is not null)) THEN
2087       IF l_debug_level  > 0 THEN
2088          oe_debug_pub.add('Cannot change source type',2);
2089       END IF;
2090       FND_MESSAGE.SET_NAME('ONT','ONT_CANT_CHG_SRC_TYPE');
2091       OE_MSG_PUB.Add;
2092       l_return_status := FND_API.G_RET_STS_ERROR;
2093       RAISE FND_API.G_EXC_ERROR;
2094     END IF;
2095     -- end for 3998402
2096 
2097     IF l_debug_level  > 0 THEN
2098         oe_debug_pub.add(  'CALLING PROCESS ORDER' , 2 ) ;
2099         oe_debug_pub.add(  'BEFORE CALLING PROCESS ORDER' , 1 ) ;
2100     END IF;
2101 
2102     --  Call Oe_Order_Pvt.Process_order
2103     Oe_Order_Pvt.Lines
2104     (
2105         p_validation_level            => FND_API.G_VALID_LEVEL_NONE
2106     ,   p_init_msg_list               => FND_API.G_TRUE
2107     ,   p_control_rec                 => l_control_rec
2108     ,   p_x_line_tbl                  => x_line_tbl
2109     ,   p_x_old_line_tbl              => x_old_line_tbl
2110     ,   x_return_status               => l_return_status
2111     );
2112 
2113     IF l_debug_level  > 0 THEN
2114         oe_debug_pub.add(  'AFTER CALLING PROCESS ORDER' , 1 ) ;
2115     END IF;
2116     --bug 2438466 begin
2117     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN -- Fix for bug3546224
2118         IF p_attr_id = OE_Line_Util.G_RETURN_CONTEXT THEN
2119             OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
2120             (p_request_type   =>OE_GLOBALS.G_COPY_ADJUSTMENTS
2121             ,p_delete        => FND_API.G_TRUE
2122             ,x_return_status => l_return_status
2123             );
2124         END IF;
2125     END IF;
2126     --bug 2438466 end
2127 
2128     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2129         IF l_debug_level  > 0 THEN
2130             oe_debug_pub.add(  'PROCESS ORDER RETURN UNEXP_ERROR' , 2 ) ;
2131         END IF;
2132         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2133     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2134         IF l_debug_level  > 0 THEN
2135             oe_debug_pub.add(  'PROCESS ORDER RETURN RET_STS_ERROR' , 2 ) ;
2136         END IF;
2137         RAISE FND_API.G_EXC_ERROR;
2138     END IF;
2139 
2140 
2141     --  Unload OUT tbl
2142 
2143 
2144     --  Init OUT parameters to missing.
2145 
2146     --  Load display OUT parameters if any
2147 
2148      x_line_val_tbl(1):=OE_Line_Util.Get_Values
2149     (   p_line_rec                    => x_line_tbl(1)
2150     ,   p_old_line_rec                => x_old_line_tbl(1)
2151     );
2152 
2153 -- OPM 02/JUN/00 - Load process control attributes
2154     l_x_item_rec_type                   := OE_Order_Cache.Load_Item
2155                                          (x_line_tbl(1).inventory_item_id
2156                                          ,x_line_tbl(1).ship_from_org_id
2157                                          );
2158 
2159 --    x_dualum_ind              := l_x_item_rec_type.dualum_ind; INVCONV
2160 --    x_grade_ctl               := l_x_item_rec_type.grade_ctl;  INVCONV
2161     x_process_warehouse_flag  := l_x_item_rec_type.process_warehouse_flag;
2162     x_ont_pricing_qty_source  := l_x_item_rec_type.ont_pricing_qty_source; -- OPM 2046190
2163     x_grade_control_flag      := l_x_item_rec_type.grade_control_flag;  -- INVCONV
2164     x_tracking_quantity_ind  := l_x_item_rec_type.tracking_quantity_ind;  -- INVCONV
2165     x_secondary_default_ind := l_x_item_rec_type.secondary_default_ind; -- INVCONV
2166       x_lot_control_code      := l_x_item_rec_type.lot_control_code; -- 4172680 INVCONV
2167       x_lot_divisible_flag := l_x_item_rec_type.lot_divisible_flag; -- INVCONV
2168 
2169     --  Write to cache.
2170     IF l_debug_level  > 0 THEN
2171         oe_debug_pub.add(  'WRITING TO CACHE' , 2 ) ;
2172     END IF;
2173 
2174     Write_line
2175     (   p_line_rec                    => x_line_tbl(1)
2176     );
2177 
2178     -- Re-set the UI flag to FALSE
2179     OE_GLOBALS.G_UI_FLAG := FALSE;
2180 
2181     --  Set return status.
2182 
2183     x_return_status := FND_API.G_RET_STS_SUCCESS;
2184 
2185     --  Get message count and data
2186 
2187     oe_msg_pub.count_and_get
2188     (   p_count                       => x_msg_count
2189     ,   p_data                        => x_msg_data
2190     );
2191 
2192     IF l_debug_level  > 0 THEN
2193         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE.CHANGE_ATTRIBUTE' , 1 ) ;
2194     END IF;
2195 
2196 EXCEPTION
2197 
2198     WHEN FND_API.G_EXC_ERROR THEN
2199 
2200        OE_GLOBALS.G_UI_FLAG := FALSE;
2201 
2202         x_return_status := FND_API.G_RET_STS_ERROR;
2203 
2204         --  Get message count and data
2205 
2206         oe_msg_pub.count_and_get
2207         (   p_count                       => x_msg_count
2208         ,   p_data                        => x_msg_data
2209         );
2210 
2211     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2212 
2213        OE_GLOBALS.G_UI_FLAG := FALSE;
2214 
2215         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2216 
2217         --  Get message count and data
2218 
2219         oe_msg_pub.count_and_get
2220         (   p_count                       => x_msg_count
2221         ,   p_data                        => x_msg_data
2222         );
2223 
2224     WHEN OTHERS THEN
2225 
2226        OE_GLOBALS.G_UI_FLAG := FALSE;
2227 
2228         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2229 
2230         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2231         THEN
2232             oe_msg_pub.Add_Exc_Msg
2233             (   G_PKG_NAME
2234             ,   'Change_Attribute'
2235             );
2236         END IF;
2237 
2238         --  Get message count and data
2239 
2240         oe_msg_pub.count_and_get
2241         (   p_count                       => x_msg_count
2242         ,   p_data                        => x_msg_data
2243         );
2244 
2245 END Change_Attribute;
2246 
2247 
2248 --  Procedure       Validate_And_Write
2249 --
2250 -- 2806483  All OUT parameters are replaced by validate_write_rec_type
2251 PROCEDURE Validate_And_Write
2252 (x_return_status                  OUT NOCOPY VARCHAR2
2253 , x_msg_count                     OUT NOCOPY NUMBER
2254 , x_msg_data                      OUT NOCOPY VARCHAR2
2255 , x_cascade_flag                  OUT NOCOPY BOOLEAN
2256 , p_line_id                       IN  NUMBER
2257 , p_change_reason_code            IN  VARCHAR2
2258 , p_change_comments               IN  VARCHAR2
2259 , x_line_val_rec                  OUT NOCOPY validate_write_rec_type
2260 )
2261 IS
2262 l_x_line_rec       OE_Order_PUB.Line_Rec_Type;
2263 l_x_line_tbl       OE_Order_PUB.Line_Tbl_Type;
2264 l_x_old_line_tbl   OE_Order_PUB.Line_Tbl_Type;
2265 l_control_rec      OE_GLOBALS.Control_Rec_Type;
2266 l_return_status    VARCHAR2(1);
2267 l_charge_amount    NUMBER := 0.0;
2268 l_last_index       NUMBER;
2269 l_organization_id  NUMBER:= OE_Sys_Parameters.VALUE('MASTER_ORGANIZATION_ID');
2270 l_set_rec                     OE_ORDER_CACHE.set_rec_type; -- 2806483
2271 --
2272 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2273 --
2274 BEGIN
2275 
2276    SAVEPOINT Line_Validate_And_Write;
2277 
2278     IF l_debug_level  > 0 THEN
2279         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE.VALIDATE_AND_WRITE' , 1 ) ;
2280     END IF;
2281 
2282     -- Set UI flag to TRUE
2283     OE_GLOBALS.G_UI_FLAG := TRUE;
2284 
2285     --  Set control flags.
2286 
2287     l_control_rec.controlled_operation := TRUE;
2288     l_control_rec.validate_entity      := TRUE;
2289     l_control_rec.write_to_DB          := TRUE;
2290 
2291     l_control_rec.check_security        := FALSE;
2292     l_control_rec.clear_dependents     := FALSE;
2293     l_control_rec.default_attributes   := FALSE;
2294     l_control_rec.change_attributes    := FALSE;
2295     l_control_rec.process              := FALSE;
2296 
2297     --  Instruct API to retain its caches
2298 
2299     l_control_rec.clear_api_cache      := FALSE;
2300     l_control_rec.clear_api_requests   := FALSE;
2301 
2302     --  Read line from cache
2303 
2304     Get_line
2305     (   p_db_record                   => TRUE
2306     ,   p_line_id                     => p_line_id
2307     ,   x_line_rec                    => l_x_old_line_tbl(1)
2308     );
2309 
2310     Get_line
2311     (   p_db_record                   => FALSE
2312     ,   p_line_id                     => p_line_id
2313     ,   x_line_rec                    => l_x_line_tbl(1)
2314     );
2315 
2316     /* Start Audit Trail -- pass change reason, comments */
2317 
2318     l_x_line_tbl(1).change_reason := p_change_reason_code;
2319     l_x_line_tbl(1).change_comments := p_change_comments;
2320 
2321     /* End Audit Trail */
2322 
2323     --  Set Operation.
2324 
2325     IF FND_API.To_Boolean(l_x_line_tbl(1).db_flag) THEN
2326         l_x_line_tbl(1).operation := OE_GLOBALS.G_OPR_UPDATE;
2327     ELSE
2328         l_x_line_tbl(1).operation := OE_GLOBALS.G_OPR_CREATE;
2329 
2330         /* We are passing the miss quantity for reserved filed
2331         since we are not converting this to null in OE_LINE_UTIL_EXT' */
2332         l_x_old_line_tbl(1).reserved_quantity := FND_API.G_MISS_NUM;
2333 
2334     END IF;
2335 
2336     --  Populate line table
2337 
2338 
2339 
2340     --  Call Oe_Order_Pvt.Process_order
2341 
2342     IF l_debug_level  > 0 THEN
2343         oe_debug_pub.add(  'IN VALIDATE_AND_WRITE' ) ;
2344     END IF;
2345         oe_debug_pub.add(  'IN VALIDATE_AND_WRITE Change Reason'||p_change_reason_code ) ;
2346     Oe_Order_Pvt.Lines
2347     (   p_validation_level              => FND_API.G_VALID_LEVEL_NONE
2348     ,   p_init_msg_list                 => FND_API.G_TRUE
2349     ,   p_control_rec                   =>   l_control_rec
2350     ,   p_x_line_tbl                    => l_x_line_tbl
2351     ,   p_x_old_line_tbl                => l_x_old_line_tbl
2352     ,   x_return_Status                 => l_return_status
2353     );
2354 
2355     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2356         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2357     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2358         RAISE FND_API.G_EXC_ERROR;
2359     END IF;
2360 
2361  /* The Process Requests and Notify should be invoked for */
2362  /* Pre-Pack H code level */
2363 
2364     IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL < '110508' THEN
2365     Oe_Order_Pvt.Process_Requests_And_Notify
2366     (   p_process_requests           => FALSE
2367     ,   p_init_msg_list              => FND_API.G_FALSE
2368     ,   p_notify                     => TRUE
2369     ,   x_return_status              => l_return_status
2370     ,   p_line_tbl                   => l_x_line_tbl
2371     ,   p_old_line_tbl               => l_x_old_line_tbl
2372     );
2373 
2374     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2375         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2376     ELSIF l_return_status  = FND_API.G_RET_STS_ERROR THEN
2377         RAISE FND_API.G_EXC_ERROR;
2378     END IF;
2379 
2380    END IF;
2381 
2382     -- bug 1834260, process delayed request for G_COPY_ADJUSTMENTS
2383     -- before processing for G_PRICE_LINE.
2384    IF OE_GLOBALS.G_DEFER_PRICING='N' THEN
2385     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
2386          (p_request_type   =>OE_GLOBALS.G_COPY_ADJUSTMENTS
2387           ,p_delete        => FND_API.G_TRUE
2388           ,x_return_status => l_return_status
2389           );
2390     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2391           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2392     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2393           RAISE FND_API.G_EXC_ERROR;
2394     END IF;
2395    END IF;
2396 
2397    IF OE_GLOBALS.G_DEFER_PRICING='N' THEN
2398     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
2399          (p_request_type   =>OE_GLOBALS.G_PRICE_LINE
2400           ,p_delete        => FND_API.G_TRUE
2401           ,x_return_status => l_return_status
2402           );
2403     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2404           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2405     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2406           RAISE FND_API.G_EXC_ERROR;
2407     END IF;
2408    END IF;
2409 
2410    IF OE_GLOBALS.G_DEFER_PRICING='N' THEN
2411     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
2412          (p_request_type   =>OE_GLOBALS.G_TAX_LINE
2413           ,p_delete        => FND_API.G_TRUE
2414           ,x_return_status => l_return_status
2415           );
2416     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2417           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2418     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2419           RAISE FND_API.G_EXC_ERROR;
2420     END IF;
2421    END IF;
2422 
2423     -- lkxu, commitment enhancement
2424     IF l_debug_level  > 0 THEN
2425         oe_debug_pub.add(  'CALLING TO PROCESS DELAYED REQUEST FOR COMMITMENT!' , 1 ) ;
2426     END IF;
2427 
2428    IF OE_GLOBALS.G_DEFER_PRICING='N' THEN
2429     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
2430          (p_request_type   =>OE_GLOBALS.G_CALCULATE_COMMITMENT
2431           ,p_delete        => FND_API.G_TRUE
2432           ,x_return_status => l_return_status
2433           );
2434     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2435           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2436     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2437           RAISE FND_API.G_EXC_ERROR;
2438     END IF;
2439 
2440     --bug 3560198
2441     OE_DELAYED_REQUESTS_PVT.Process_Request_for_Reqtype
2442          (p_request_type   =>OE_GLOBALS.G_UPDATE_COMMITMENT_APPLIED
2443           ,p_delete        => FND_API.G_TRUE
2444           ,x_return_status => l_return_status
2445           );
2446     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2447           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2448     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2449           RAISE FND_API.G_EXC_ERROR;
2450     END IF;
2451     --bug 3560198
2452    END IF;
2453 
2454     x_cascade_flag := OE_GLOBALS.G_CASCADING_REQUEST_LOGGED;
2455 
2456    --fix for bug 4102372
2457    -- x_line_val_rec.x_lock_control:=l_x_line_tbl(1).lock_control;
2458 
2459     --  Load OUT parameters.
2460 
2461       oe_line_util.query_row(
2462                                    p_line_id  =>l_x_line_tbl(1).line_id
2463                                    ,x_line_rec=>l_x_line_rec
2464                                            );
2465     x_line_val_rec.x_lock_control     :=l_x_line_rec.lock_control;
2466     x_line_val_rec.x_creation_date    := l_x_line_rec.creation_date;
2467     x_line_val_rec.x_created_by                   := l_x_line_rec.created_by;
2468     x_line_val_rec.x_last_update_date             := l_x_line_rec.last_update_date;
2469     x_line_val_rec.x_last_updated_by              := l_x_line_rec.last_updated_by;
2470     x_line_val_rec.x_last_update_login            := l_x_line_rec.last_update_login;
2471 
2472 --  Loading Scheduling attributes
2473 
2474     x_line_val_rec.x_schedule_ship_date           := l_x_line_rec.schedule_ship_date;
2475     x_line_val_rec.x_schedule_arrival_date        := l_x_line_rec.schedule_arrival_date;
2476     x_line_val_rec.x_schedule_status_code         := l_x_line_rec.schedule_status_code;
2477     x_line_val_rec.x_schedule_action_code         := l_x_line_rec.schedule_action_code;
2478     x_line_val_rec.x_earliest_ship_date           := l_x_line_rec.earliest_ship_date;
2479     x_line_val_rec.x_firm_demand_flag             := l_x_line_rec.firm_demand_flag;
2480 
2481 -- Loading Item substitution attributes.
2482 
2483     x_line_val_rec.x_original_inventory_item_id
2484                              := l_x_line_rec.original_inventory_item_id;
2485     x_line_val_rec.x_original_item_iden_type
2486                              := l_x_line_rec.original_item_identifier_type;
2487     x_line_val_rec.x_original_ordered_item_id
2488                              := l_x_line_rec.original_ordered_item_id;
2489 
2490     IF x_line_val_rec.x_original_inventory_item_id IS NOT NULL
2491     OR x_line_val_rec.x_original_ordered_item_id   IS NOT NULL THEN
2492       OE_ID_TO_VALUE.Ordered_Item
2493       (p_Item_Identifier_type    => x_line_val_rec.x_original_item_iden_type
2494       ,p_inventory_item_id       => x_line_val_rec.x_original_inventory_item_id
2495       ,p_organization_id         => l_organization_id
2496       ,p_ordered_item_id         => x_line_val_rec.x_original_ordered_item_id
2497       ,p_sold_to_org_id          => l_x_line_rec.sold_to_org_id
2498       ,p_ordered_item            => l_x_line_rec.original_ordered_item
2499       ,x_ordered_item            => x_line_val_rec.x_original_ordered_item
2500       ,x_inventory_item          => x_line_val_rec.x_original_inventory_item);
2501 
2502     END IF;
2503     IF x_line_val_rec.x_original_item_iden_type IS NOT NULL THEN
2504       OE_ID_TO_VALUE.item_identifier
2505       (p_Item_Identifier_type   => x_line_val_rec.x_original_item_iden_type
2506       ,x_Item_Identifier        => x_line_val_rec.x_original_item_type);
2507     END IF;
2508 
2509     -- Update Late Demand Penalty Factor Bug-2478107
2510     x_line_val_rec.x_late_demand_penalty_factor := l_x_line_rec.late_demand_penalty_factor;
2511 
2512      -- Update Override ATP Flag
2513     x_line_val_rec.x_override_atp_date_code := l_x_line_rec.override_atp_date_code;
2514 
2515 /* The following IF statement is commented to fix bug#1382357 */
2516 --    IF NVL(l_x_old_line_tbl(1).ship_from_org_id,-1) <>
2517 --               NVL(l_x_line_rec.ship_from_org_id,-1) THEN
2518 
2519        OE_ID_TO_VALUE.Ship_From_Org(
2520                     p_ship_from_org_id   => l_x_line_rec.ship_from_org_id
2521                    ,x_ship_from_address1 => x_line_val_rec.x_ship_from_address1
2522                    ,x_ship_from_address2 => x_line_val_rec.x_ship_from_address2
2523                    ,x_ship_from_address3 => x_line_val_rec.x_ship_from_address3
2524                    ,x_ship_from_address4 => x_line_val_rec.x_ship_from_address4
2525                    ,x_ship_from_location => x_line_val_rec.x_ship_from_location
2526                    ,x_ship_from_org      => x_line_val_rec.x_ship_from_org
2527                    );
2528 
2529  --   END IF;
2530 
2531     x_line_val_rec.x_ship_from_org_id := l_x_line_rec.ship_from_org_id;
2532     x_line_val_rec.x_subinventory     := l_x_line_rec.subinventory;
2533     x_line_val_rec.x_promise_date     := l_x_line_rec.promise_date;
2534     -- Start 2806483
2535     x_line_val_rec.x_shipping_method_code
2536                       := l_x_line_rec.shipping_method_code;
2537     IF x_line_val_rec.x_shipping_method_code IS NOT NULL THEN
2538        x_line_val_rec.x_shipping_method
2539           := OE_ID_TO_VALUE.Ship_Method(p_ship_method_code => x_line_val_rec.x_shipping_method_code);
2540     END IF;
2541     x_line_val_rec.x_freight_carrier_code
2542                       := l_x_line_rec.freight_carrier_code;
2543     IF x_line_val_rec.x_freight_carrier_code IS NOT NULL THEN
2544        x_line_val_rec.x_freight_carrier
2545           := OE_ID_TO_VALUE.Freight_Carrier
2546                        (p_freight_carrier_code =>x_line_val_rec.x_freight_carrier_code,
2547                         p_ship_from_org_id     =>x_line_val_rec.x_ship_from_org_id);
2548     END IF;
2549     -- End 2806483
2550     -- 2817915
2551     IF l_x_line_rec.ship_set_id IS NOT NULL THEN
2552        l_set_rec := OE_ORDER_CACHE.Load_Set(l_x_line_rec.ship_set_id);
2553        x_line_val_rec.x_ship_set_id := l_x_line_rec.ship_set_id;
2554        x_line_val_rec.x_ship_set    := l_set_rec.set_name;
2555     ELSIF l_x_line_rec.arrival_set_id IS NOT NULL THEN
2556        l_set_rec := OE_ORDER_CACHE.Load_Set(l_x_line_rec.arrival_set_id);
2557        x_line_val_rec.x_arrival_set_id := l_x_line_rec.arrival_set_id;
2558        x_line_val_rec.x_arrival_set    := l_set_rec.set_name;
2559     END IF;
2560     -- 2817915
2561 
2562     IF l_debug_level  > 0 THEN
2563         oe_debug_pub.add(  'ARRIVALSET-'|| TO_CHAR ( L_X_LINE_REC.ARRIVAL_SET_ID ) , 2 ) ;
2564     END IF;
2565    -- Calculate Tax
2566 
2567     x_line_val_rec.x_line_tax_value := l_x_line_rec.tax_value;
2568 
2569    IF l_debug_level  > 0 THEN
2570        oe_debug_pub.add(  'TAX VALUE IS'|| TO_CHAR ( L_X_LINE_REC.TAX_VALUE ) , 1 ) ;
2571        oe_debug_pub.add(  'CALLING ORDER TOTAL' , 2 ) ;
2572    END IF;
2573 
2574     -- Call the charges API to get the Line level charges.
2575    IF OE_GLOBALS.G_DEFER_PRICING='N' THEN
2576     OE_CHARGE_PVT.Get_Charge_Amount(
2577                            p_api_version_number => 1.1 ,
2578                            p_init_msg_list      => FND_API.G_FALSE ,
2579                            p_header_id          => l_x_line_rec.header_id ,
2580                            p_line_id            => l_x_line_rec.line_id ,
2581                            p_all_charges        => FND_API.G_FALSE ,
2582                            x_return_status      => l_return_status ,
2583                            x_msg_count          => x_msg_count ,
2584                            x_msg_data           => x_msg_data ,
2585                            x_charge_amount      => l_charge_amount );
2586 
2587      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2588                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2589      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2590                  RAISE FND_API.G_EXC_ERROR;
2591      END IF;
2592      x_line_val_rec.x_charges := l_charge_amount;
2593    END IF;
2594 
2595     -- Update pricing details
2596     x_line_val_rec.x_unit_selling_price         := l_x_line_rec.unit_selling_price;
2597     x_line_val_rec.x_unit_list_price            := l_x_line_rec.unit_list_price;
2598     x_line_val_rec.x_list_percent               := l_x_line_rec.unit_list_percent;
2599     x_line_val_rec.x_selling_percent            := round(l_x_line_rec.unit_selling_percent,6);
2600     x_line_val_rec.x_pricing_quantity           := l_x_line_rec.pricing_quantity;
2601     x_line_val_rec.x_pricing_quantity_uom       := l_x_line_rec.pricing_quantity_uom;
2602     x_line_val_rec.x_calculate_price_flag       := l_x_line_rec.calculate_price_flag;
2603     x_line_val_rec.x_calculate_price_descr
2604                         := OE_Id_To_Value.Calculate_Price_Flag(x_line_val_rec.x_calculate_price_flag);
2605     x_line_val_rec.x_price_list_id              := l_x_line_rec.price_list_id;
2606     x_line_val_rec.x_price_list                 := OE_Id_To_Value.Price_List(x_line_val_rec.x_price_list_id);
2607     x_line_val_rec.x_payment_term_id            := l_x_line_rec.payment_term_id;
2608     x_line_val_rec.x_payment_term               := OE_Id_To_Value.Payment_Term(x_line_val_rec.x_payment_term_id);
2609 
2610     x_line_val_rec.x_shipment_priority_code     := l_x_line_rec.shipment_priority_code;
2611     x_line_val_rec.x_shipment_priority
2612                         := OE_Id_To_Value.Shipment_Priority(x_line_val_rec.x_shipment_priority_code);
2613     x_line_val_rec.x_freight_terms_code         := l_x_line_rec.freight_terms_code;
2614     x_line_val_rec.x_freight_terms              := OE_Id_To_Value.Freight_Terms(x_line_val_rec.x_freight_terms_code);
2615     x_line_val_rec.x_inventory_item_id          := l_x_line_rec.inventory_item_id;
2616     x_line_val_rec.x_ordered_item_id            := l_x_line_rec.ordered_item_id;
2617 
2618    IF OE_GLOBALS.G_DEFER_PRICING='N' THEN
2619     -- lkxu, commitment enhancement.
2620     IF UPPER(Nvl(Fnd_Profile.Value('OE_COMMITMENT_SEQUENCING'),'N')) = 'Y' THEN
2621       x_line_val_rec.x_commitment_applied_amount := OE_COMMITMENT_PVT.get_commitment_applied_amount
2622                           (p_header_id          => l_x_line_rec.header_id ,
2623                            p_line_id            => l_x_line_rec.line_id ,
2624                            p_commitment_id      => l_x_line_rec.commitment_id);
2625       IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2626                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2627       ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2628                  RAISE FND_API.G_EXC_ERROR;
2629       END IF;
2630     END IF;
2631    END IF;
2632 -- Override List Price
2633    x_line_val_rec.x_original_list_price := l_x_line_rec.original_list_price;
2634    x_line_val_rec.x_unit_list_price_per_pqty := l_x_line_rec.unit_list_price_per_pqty;
2635    x_line_val_rec.x_unit_selling_price_per_pqty := l_x_line_rec.unit_selling_price_per_pqty;
2636 -- Override List Price
2637 
2638     --  Clear line record cache
2639 
2640     Clear_line;
2641 
2642 
2643 
2644     -- Re-set the UI flag to FALSE
2645     OE_GLOBALS.G_UI_FLAG := FALSE;
2646 
2647     --  Set return status.
2648 
2649     x_return_status := FND_API.G_RET_STS_SUCCESS;
2650 
2651     --  Get message count and data
2652 
2653     oe_msg_pub.count_and_get
2654     (   p_count                       => x_msg_count
2655     ,   p_data                        => x_msg_data
2656     );
2657 
2658     IF l_debug_level  > 0 THEN
2659         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE.VALIDATE_AND_WRITE' , 1 ) ;
2660     END IF;
2661 
2662 
2663 EXCEPTION
2664 
2665     WHEN FND_API.G_EXC_ERROR THEN
2666 
2667        OE_GLOBALS.G_UI_FLAG := FALSE;
2668 
2669         ROLLBACK TO SAVEPOINT Line_Validate_And_Write;
2670 /* From the UI, if we raise an exception here, user can
2671    make proper change and try to commit again, ended up with multiple
2672    records in the start flow global table. To avoid that, we
2673    are deleting the last entry in the global table upon exception.
2674 
2675    This change is only made here, assuming only UI has the
2676    ability to do something like that.
2677 */
2678 
2679         l_last_index := OE_GLOBALS.G_START_LINE_FLOWS_TBL.last;
2680         IF (l_x_line_tbl(1).operation = OE_GLOBALS.G_OPR_CREATE
2681                AND l_last_index IS NOT NULL    -- 2068070
2682                AND OE_GLOBALS.G_START_LINE_FLOWS_TBL(l_last_index).line_id = p_line_id) THEN --Bug 3000619
2683                OE_GLOBALS.G_START_LINE_FLOWS_TBL.delete(l_last_index);
2684         END IF;
2685     x_return_status := FND_API.G_RET_STS_ERROR;
2686 
2687         --  Get message count and data
2688 
2689         oe_msg_pub.count_and_get
2690         (   p_count                       => x_msg_count
2691         ,   p_data                        => x_msg_data
2692         );
2693 
2694     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2695 
2696        OE_GLOBALS.G_UI_FLAG := FALSE;
2697 
2698         ROLLBACK TO SAVEPOINT Line_Validate_And_Write;
2699         l_last_index := OE_GLOBALS.G_START_LINE_FLOWS_TBL.last;
2700         IF (l_x_line_tbl(1).operation = OE_GLOBALS.G_OPR_CREATE
2701                AND l_last_index IS NOT NULL    -- 2068070
2702                AND OE_GLOBALS.G_START_LINE_FLOWS_TBL(l_last_index).line_id = p_line_id) THEN --Bug 3000619
2703                OE_GLOBALS.G_START_LINE_FLOWS_TBL.delete(l_last_index);
2704         END IF;
2705         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2706 
2707         --  Get message count and data
2708 
2709         oe_msg_pub.count_and_get
2710         (   p_count                       => x_msg_count
2711         ,   p_data                        => x_msg_data
2712         );
2713 
2714     WHEN OTHERS THEN
2715 
2716        OE_GLOBALS.G_UI_FLAG := FALSE;
2717 
2718         ROLLBACK TO SAVEPOINT Line_Validate_And_Write;
2719         l_last_index := OE_GLOBALS.G_START_LINE_FLOWS_TBL.last;
2720         IF (l_x_line_tbl(1).operation = OE_GLOBALS.G_OPR_CREATE
2721                AND l_last_index IS NOT NULL    -- 2068070
2722                AND OE_GLOBALS.G_START_LINE_FLOWS_TBL(l_last_index).line_id = p_line_id) THEN --Bug 3000619
2723                OE_GLOBALS.G_START_LINE_FLOWS_TBL.delete(l_last_index);
2724         END IF;
2725         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2726 
2727         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2728         THEN
2729             oe_msg_pub.Add_Exc_Msg
2730             (   G_PKG_NAME
2731             ,   'Validate_And_Write'
2732             );
2733         END IF;
2734 
2735         --  Get message count and data
2736 
2737         oe_msg_pub.count_and_get
2738         (   p_count                       => x_msg_count
2739         ,   p_data                        => x_msg_data
2740         );
2741 
2742 END Validate_And_Write;
2743 
2744 --  Procedure       Delete_Row
2745 --
2746 
2747 PROCEDURE Delete_Row
2748 ( x_return_status OUT NOCOPY VARCHAR2
2749 , x_msg_count OUT NOCOPY NUMBER
2750 , x_msg_data OUT NOCOPY VARCHAR2
2751 ,   p_line_id                       IN  NUMBER
2752 , p_change_reason_code            IN  VARCHAR2 Default Null
2753 , p_change_comments               IN  VARCHAR2 Default Null
2754 )
2755 IS
2756 l_x_line_rec                    OE_Order_PUB.Line_Rec_Type;
2757 l_x_line_tbl                    OE_Order_PUB.Line_Tbl_Type;
2758 l_x_old_line_tbl                    OE_Order_PUB.Line_Tbl_Type;
2759 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
2760 l_return_status               VARCHAR2(1);
2761 --
2762 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2763 --
2764 BEGIN
2765     SAVEPOINT LINE_DELETE;
2766     IF l_debug_level  > 0 THEN
2767         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE.DELETE_ROW' , 1 ) ;
2768     END IF;
2769 
2770     -- Set UI flag to TRUE
2771     OE_GLOBALS.G_UI_FLAG := TRUE;
2772 
2773     --  Set control flags.
2774 
2775     l_control_rec.controlled_operation := TRUE;
2776     l_control_rec.check_security        := TRUE;
2777     l_control_rec.validate_entity      := TRUE;
2778     l_control_rec.write_to_DB          := TRUE;
2779 
2780     l_control_rec.default_attributes   := FALSE;
2781     l_control_rec.change_attributes    := FALSE;
2782     l_control_rec.process              := FALSE;
2783 
2784     --  Instruct API to retain its caches
2785 
2786     l_control_rec.clear_api_cache      := FALSE;
2787     l_control_rec.clear_api_requests   := FALSE;
2788 
2789     --  Read DB record from cache
2790 
2791      Get_line
2792     (   p_db_record                   => TRUE
2793     ,   p_line_id                     => p_line_id
2794     ,   x_line_rec                    => l_x_line_rec
2795     );
2796 
2797     --  Set Operation.
2798 
2799     l_x_line_rec.operation := OE_GLOBALS.G_OPR_DELETE;
2800 
2801     --  Populate line table
2802 
2803     l_x_line_tbl(1) := l_x_line_rec;
2804     l_x_line_tbl(1).change_reason := p_change_reason_code;
2805     l_x_line_tbl(1).change_comments := p_change_comments;
2806 
2807     --  Call Oe_Order_Pvt.Process_order
2808 
2809     Oe_Order_Pvt.Lines
2810     (   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
2811     ,   p_init_msg_list               => FND_API.G_TRUE
2812     ,   p_control_rec                 => l_control_rec
2813     ,   p_x_line_tbl                  => l_x_line_tbl
2814     ,   p_x_old_line_tbl              => l_x_old_line_tbl
2815     ,   x_return_status               => l_return_status
2816 
2817     );
2818 
2819 
2820     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2821         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2822     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2823         RAISE FND_API.G_EXC_ERROR;
2824     END IF;
2825 
2826     -- Re-set the UI flag to FALSE
2827     OE_GLOBALS.G_UI_FLAG := FALSE;
2828 
2829     --  Clear line record cache
2830 
2831     Clear_line;
2832 
2833     --  Set return status.
2834 
2835     x_return_status := FND_API.G_RET_STS_SUCCESS;
2836 
2837     --  Get message count and data
2838 
2839     oe_msg_pub.count_and_get
2840     (   p_count                       => x_msg_count
2841     ,   p_data                        => x_msg_data
2842     );
2843 
2844     IF l_debug_level  > 0 THEN
2845         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE.DELETE_ROW' , 1 ) ;
2846     END IF;
2847 
2848 EXCEPTION
2849 
2850     WHEN FND_API.G_EXC_ERROR THEN
2851        ROLLBACK TO SAVEPOINT Line_Delete;
2852        OE_GLOBALS.G_UI_FLAG := FALSE;
2853 
2854         x_return_status := FND_API.G_RET_STS_ERROR;
2855 
2856         --  Get message count and data
2857 
2858         oe_msg_pub.count_and_get
2859         (   p_count                       => x_msg_count
2860         ,   p_data                        => x_msg_data
2861         );
2862 
2863     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2864        ROLLBACK TO SAVEPOINT Line_Delete;
2865 
2866        OE_GLOBALS.G_UI_FLAG := FALSE;
2867 
2868         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2869 
2870         --  Get message count and data
2871 
2872         oe_msg_pub.count_and_get
2873         (   p_count                       => x_msg_count
2874         ,   p_data                        => x_msg_data
2875         );
2876 
2877     WHEN OTHERS THEN
2878        ROLLBACK TO SAVEPOINT Line_Delete;
2879 
2880        OE_GLOBALS.G_UI_FLAG := FALSE;
2881 
2882         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2883 
2884         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2885         THEN
2886             oe_msg_pub.Add_Exc_Msg
2887             (   G_PKG_NAME
2888             ,   'Delete_Row'
2889             );
2890         END IF;
2891 
2892         --  Get message count and data
2893 
2894         oe_msg_pub.count_and_get
2895         (   p_count                       => x_msg_count
2896         ,   p_data                        => x_msg_data
2897         );
2898 
2899 END Delete_Row;
2900 
2901 --  Procedure       Process_Entity
2902 --
2903 
2904 PROCEDURE Process_Entity
2905 ( x_return_status OUT NOCOPY VARCHAR2
2906 , x_msg_count OUT NOCOPY NUMBER
2907 , x_msg_data OUT NOCOPY VARCHAR2
2908 )
2909 IS
2910 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
2911 l_return_status               VARCHAR2(1);
2912 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
2913 l_x_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
2914 l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
2915 l_x_Header_Scredit_rec        OE_Order_PUB.Header_Scredit_Rec_Type;
2916 l_x_Header_Scredit_tbl        OE_Order_PUB.Header_Scredit_Tbl_Type;
2917 l_x_line_rec                  OE_Order_PUB.Line_Rec_Type;
2918 l_x_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
2919 l_x_Line_Adj_rec              OE_Order_PUB.Line_Adj_Rec_Type;
2920 l_x_Line_Adj_tbl              OE_Order_PUB.Line_Adj_Tbl_Type;
2921 l_x_Line_Scredit_rec          OE_Order_PUB.Line_Scredit_Rec_Type;
2922 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
2923 l_x_Action_Request_tbl        OE_Order_PUB.Request_Tbl_Type;
2924 l_x_Lot_Serial_Tbl            OE_Order_PUB.Lot_Serial_Tbl_Type;
2925 l_x_Header_price_Att_tbl      OE_Order_PUB.Header_Price_Att_Tbl_Type;
2926 l_x_Header_Adj_Att_tbl        OE_Order_PUB.Header_Adj_Att_Tbl_Type;
2927 l_x_Header_Adj_Assoc_tbl      OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
2928 l_x_Line_price_Att_tbl        OE_Order_PUB.Line_Price_Att_Tbl_Type;
2929 l_x_Line_Adj_Att_tbl          OE_Order_PUB.Line_Adj_Att_Tbl_Type;
2930 l_x_Line_Adj_Assoc_tbl        OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
2931 --serla begin
2932 l_x_Header_Payment_tbl        OE_Order_PUB.Header_Payment_Tbl_Type;
2933 l_x_Line_Payment_tbl          OE_Order_PUB.Line_Payment_Tbl_Type;
2934 --serla end
2935 --
2936 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2937 --
2938 BEGIN
2939 
2940     IF l_debug_level  > 0 THEN
2941         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE.PROCESS_ENTITY' , 1 ) ;
2942     END IF;
2943 
2944     -- Set UI flag to TRUE
2945     OE_GLOBALS.G_UI_FLAG := TRUE;
2946 
2947     --  Set control flags.
2948 
2949     l_control_rec.controlled_operation := TRUE;
2950     l_control_rec.process              := TRUE;
2951     l_control_rec.process_entity       := OE_GLOBALS.G_ENTITY_LINE;
2952 
2953     l_control_rec.check_security        := FALSE;
2954     l_control_rec.clear_dependents     := FALSE;
2955     l_control_rec.default_attributes   := FALSE;
2956     l_control_rec.change_attributes    := FALSE;
2957     l_control_rec.validate_entity      := FALSE;
2958     l_control_rec.write_to_DB          := FALSE;
2959 
2960     --  Instruct API to clear its request table
2961 
2962     l_control_rec.clear_api_cache      := FALSE;
2963     l_control_rec.clear_api_requests   := FALSE;
2964 
2965     --  Call Oe_Order_Pvt.Process_order
2966 
2967     Oe_Order_Pvt.Process_order
2968     (   p_api_version_number          => 1.0
2969     ,   p_init_msg_list               => FND_API.G_TRUE
2970     ,   x_return_status               => l_return_status
2971     ,   x_msg_count                   => x_msg_count
2972     ,   x_msg_data                    => x_msg_data
2973     ,   p_control_rec                 => l_control_rec
2974     ,   p_x_header_rec                  => l_x_header_rec
2975     ,   p_x_Header_Adj_tbl              => l_x_Header_Adj_tbl
2976     ,   p_x_header_price_att_tbl        => l_x_header_price_att_tbl
2977     ,   p_x_Header_Adj_att_tbl          => l_x_Header_Adj_att_tbl
2978     ,   p_x_Header_Adj_Assoc_tbl        => l_x_Header_Adj_Assoc_tbl
2979     ,   p_x_Header_Scredit_tbl          => l_x_Header_Scredit_tbl
2980 --serla begin
2981     ,   p_x_Header_Payment_tbl          => l_x_Header_Payment_tbl
2982 --serla end
2983     ,   p_x_line_tbl                    => l_x_line_tbl
2984     ,   p_x_Line_Adj_tbl                => l_x_Line_Adj_tbl
2985     ,   p_x_Line_Price_att_tbl          => l_x_Line_Price_att_tbl
2986     ,   p_x_Line_Adj_att_tbl            => l_x_Line_Adj_att_tbl
2987     ,   p_x_Line_Adj_Assoc_tbl          => l_x_Line_Adj_Assoc_tbl
2988     ,   p_x_Line_Scredit_tbl            => l_x_Line_Scredit_tbl
2989 --serla begin
2990     ,   p_x_Line_Payment_tbl            => l_x_Line_Payment_tbl
2991 --serla end
2992     ,   p_x_action_request_tbl          => l_x_Action_Request_tbl
2993     ,   p_x_lot_serial_tbl            => l_x_lot_serial_tbl
2994     );
2995 
2996     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2997         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2998     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2999         RAISE FND_API.G_EXC_ERROR;
3000     END IF;
3001 
3002     -- Re-set the UI flag to FALSE
3003     OE_GLOBALS.G_UI_FLAG := FALSE;
3004 
3005     --  Set return status.
3006 
3007     x_return_status := FND_API.G_RET_STS_SUCCESS;
3008 
3009     --  Get message count and data
3010 
3011     oe_msg_pub.count_and_get
3012     (   p_count                       => x_msg_count
3013     ,   p_data                        => x_msg_data
3014     );
3015 
3016     IF l_debug_level  > 0 THEN
3017         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE.PROCESS_ENTITY' , 1 ) ;
3018     END IF;
3019 
3020 EXCEPTION
3021 
3022     WHEN FND_API.G_EXC_ERROR THEN
3023 
3024        OE_GLOBALS.G_UI_FLAG := FALSE;
3025 
3026         x_return_status := FND_API.G_RET_STS_ERROR;
3027 
3028         --  Get message count and data
3029 
3030         oe_msg_pub.count_and_get
3031         (   p_count                       => x_msg_count
3032         ,   p_data                        => x_msg_data
3033         );
3034 
3035     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3036 
3037        OE_GLOBALS.G_UI_FLAG := FALSE;
3038 
3039         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3040 
3041         --  Get message count and data
3042 
3043         oe_msg_pub.count_and_get
3044         (   p_count                       => x_msg_count
3045         ,   p_data                        => x_msg_data
3046         );
3047 
3048     WHEN OTHERS THEN
3049 
3050        OE_GLOBALS.G_UI_FLAG := FALSE;
3051 
3052         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3053 
3054         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
3055         THEN
3056             oe_msg_pub.Add_Exc_Msg
3057             (   G_PKG_NAME
3058             ,   'Process_Entity'
3059             );
3060         END IF;
3061 
3062         --  Get message count and data
3063 
3064         oe_msg_pub.count_and_get
3065         (   p_count                       => x_msg_count
3066         ,   p_data                        => x_msg_data
3067         );
3068 
3069 END Process_Entity;
3070 
3071 --  Procedure       lock_Row
3072 --
3073 
3074 PROCEDURE Lock_Row
3075 ( x_return_status OUT NOCOPY VARCHAR2
3076 , x_msg_count OUT NOCOPY NUMBER
3077 , x_msg_data OUT NOCOPY VARCHAR2
3078 ,   p_line_id                       IN  NUMBER
3079 ,   p_lock_control                  IN  NUMBER
3080 )
3081 
3082 IS
3083 l_return_status               VARCHAR2(1);
3084 l_x_line_rec                  OE_Order_PUB.Line_Rec_Type;
3085 --
3086 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3087 --
3088 BEGIN
3089 
3090     IF l_debug_level  > 0 THEN
3091         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE.LOCK_ROW' , 1 ) ;
3092     END IF;
3093 
3094     --  Load line record
3095 
3096     l_x_line_rec.lock_control        := p_lock_control;
3097     l_x_line_rec.line_id             := p_line_id;
3098     l_x_line_rec.operation           := OE_GLOBALS.G_OPR_LOCK; -- not req.
3099 
3100     --Bug 3025978
3101       OE_GLOBALS.G_UI_FLAG := TRUE;
3102 
3103     --  Call OE_Line_Util.Lock_Row instead of Oe_Order_Pvt.Lock_order
3104     OE_MSG_PUB.initialize;
3105     OE_Line_Util.Lock_Row
3106     ( x_return_status         => l_return_status
3107     , p_x_line_rec            => l_x_line_rec
3108     , p_line_id               => p_line_id);
3109 
3110     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
3111 
3112         --  Set DB flag and write record to cache.
3113 
3114         l_x_line_rec.db_flag := FND_API.G_TRUE;
3115     IF l_debug_level  > 0 THEN
3116         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE.LOCK_ROW'||L_X_LINE_REC.LINE_ID , 1 ) ;
3117     END IF;
3118 
3119         Write_line
3120         (   p_line_rec                    => l_x_line_rec
3121         ,   p_db_record                   => TRUE
3122         );
3123 
3124     END IF;
3125 
3126     --  Set return status.
3127 
3128     x_return_status := l_return_status;
3129     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3130         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3131     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
3132         RAISE FND_API.G_EXC_ERROR;
3133     END IF;
3134 
3135     --  Get message count and data
3136 
3137     oe_msg_pub.count_and_get
3138     (   p_count                       => x_msg_count
3139     ,   p_data                        => x_msg_data
3140     );
3141 
3142     IF l_debug_level  > 0 THEN
3143         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE.LOCK_ROW' , 1 ) ;
3144     END IF;
3145 
3146 EXCEPTION
3147     WHEN FND_API.G_EXC_ERROR THEN
3148 
3149         OE_GLOBALS.G_UI_FLAG := FALSE;
3150 
3151         x_return_status := FND_API.G_RET_STS_ERROR;
3152 
3153         --  Get message count and data
3154 
3155         oe_msg_pub.count_and_get
3156         (   p_count                       => x_msg_count
3157         ,   p_data                        => x_msg_data
3158         );
3159 
3160     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3161 
3162         OE_GLOBALS.G_UI_FLAG := FALSE;
3163 
3164         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3165 
3166         --  Get message count and data
3167 
3168         oe_msg_pub.count_and_get
3169         (   p_count                       => x_msg_count
3170         ,   p_data                        => x_msg_data
3171         );
3172 
3173     WHEN OTHERS THEN
3174 
3175         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
3176         THEN
3177             oe_msg_pub.Add_Exc_Msg
3178             (   G_PKG_NAME
3179             ,   'Lock_Row'
3180             );
3181         END IF;
3182 
3183         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3184 
3185         --  Get message count and data
3186 
3187         oe_msg_pub.count_and_get
3188         (   p_count                       => x_msg_count
3189         ,   p_data                        => x_msg_data
3190         );
3191 
3192 
3193 
3194 END Lock_Row;
3195 
3196 --  Procedures maintaining line record cache.
3197 
3198 PROCEDURE Write_line
3199 (   p_line_rec                      IN  OE_Order_PUB.Line_Rec_Type
3200 ,   p_db_record                     IN  BOOLEAN := FALSE
3201 )
3202 IS
3203 --
3204 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3205 --
3206 BEGIN
3207 
3208     IF l_debug_level  > 0 THEN
3209         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE.WRITE_LINE' , 1 ) ;
3210     END IF;
3211     g_line_rec := p_line_rec;
3212 
3213     IF p_db_record THEN
3214 
3215         g_db_line_rec := p_line_rec;
3216 
3217     END IF;
3218 
3219     IF l_debug_level  > 0 THEN
3220         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE.WRITE_LINE' , 1 ) ;
3221     END IF;
3222 
3223 END Write_Line;
3224 
3225 PROCEDURE Get_line
3226 (   p_db_record                     IN  BOOLEAN := FALSE
3227 ,   p_line_id                       IN  NUMBER
3228 ,   x_line_rec                      OUT NOCOPY  OE_Order_PUB.Line_Rec_Type
3229 )
3230 IS
3231 --
3232 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3233 --
3234 BEGIN
3235 
3236     IF l_debug_level  > 0 THEN
3237         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE.GET_LINE'||P_LINE_ID , 1 ) ;
3238     END IF;
3239     --reverting back the fix made for bug 2103000 as the problem
3240     --is fixed in file OEXOEFRM.pld(version 115.251)
3241     --Fixes the issue reported in bug 2150247
3242     IF  p_line_id <> NVL(g_line_rec.line_id,FND_API.G_MISS_NUM)
3243     THEN
3244 
3245         --  Query row from DB
3246     IF l_debug_level  > 0 THEN
3247         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE.GET_LINE QUERY '||P_LINE_ID , 1 ) ;
3248     END IF;
3249 
3250         OE_Line_Util.Query_Row
3251         (   p_line_id                     => p_line_id,
3252           x_line_rec                    =>g_line_rec
3253         );
3254 
3255         g_line_rec.db_flag             := FND_API.G_TRUE;
3256 
3257         --  Load DB record
3258 
3259         g_db_line_rec                  := g_line_rec;
3260 
3261     END IF;
3262 
3263     IF l_debug_level  > 0 THEN
3264         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE.GET_LINE' , 1 ) ;
3265     END IF;
3266 
3267     IF p_db_record THEN
3268       --Added for bug3911285
3269       IF p_line_id <> g_db_line_rec.line_id THEN
3270         g_db_line_rec := OE_Order_PUB.G_MISS_LINE_REC;
3271       END IF;
3272       --End of bug3911285
3273 
3274         x_line_rec:= g_db_line_rec;
3275 
3276     ELSE
3277 
3278         x_line_rec:= g_line_rec;
3279 
3280     END IF;
3281 
3282 END Get_Line;
3283 
3284 PROCEDURE Clear_Line
3285 IS
3286 --
3287 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3288 --
3289 BEGIN
3290 
3291     IF l_debug_level  > 0 THEN
3292         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE.CLEAR_LINE' , 1 ) ;
3293     END IF;
3294 
3295     g_line_rec                     := OE_Order_PUB.G_MISS_LINE_REC;
3296     g_db_line_rec                  := OE_Order_PUB.G_MISS_LINE_REC;
3297 
3298     IF l_debug_level  > 0 THEN
3299         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE.CLEAR_LINE' , 1 ) ;
3300     END IF;
3301 
3302 END Clear_Line;
3303 
3304 PROCEDURE POPULATE_CONTROL_FIELDS
3305 ( p_line_rec        IN line_rec_type,
3306 x_line_val_rec OUT NOCOPY line_val_rec_type,
3307  p_calling_block   IN  VARCHAR2
3308 ) IS
3309   l_flow_meaning VARCHAR2(80);
3310   released_count NUMBER;
3311   total_count   NUMBER;
3312   l_status      VARCHAR2(80);
3313 /*1931163*/
3314   l_hold_exists        VARCHAR2(1);
3315   l_ato_line_id        NUMBER;
3316   l_top_model_line_id  NUMBER;
3317   l_smc_flag           VARCHAR2(1);
3318   l_item_type_code     VARCHAR2(30);
3319   l_link_to_line_id    NUMBER;
3320 --retro{
3321   l_retrobilled_price_diff NUMBER;
3322   l_unit_selling_price     NUMBER;
3323 --retro}
3324 --recurring charges
3325   l_charge_periodicity VARCHAR2(25);
3326 
3327   CURSOR C1(tax_exempt_reason_code VARCHAR2,
3328           tax_exempt_flag        VARCHAR2,
3329             fob_point_code         VARCHAR2,
3330           return_reason_code     VARCHAR2)
3331   IS
3332      SELECT meaning,lookup_type
3333     FROM   AR_LOOKUPS
3334     WHERE (lookup_code=tax_exempt_reason_code
3335     AND    lookup_type='TAX_REASON')
3336     OR    (lookup_code=tax_exempt_flag
3337     AND    lookup_type='TAX_CONTROL_FLAG')
3338     OR    (lookup_code=fob_point_code
3339     AND    lookup_type='FOB')
3340     OR    (lookup_code=return_reason_code
3341     AND    lookup_type='CREDIT_MEMO_REASON');
3342   CURSOR c2(shipment_priority_code  VARCHAR2,
3343         freight_terms_code VARCHAR2)
3344   IS
3345      SELECT meaning,lookup_type
3346      FROM FND_LOOKUP_VALUES LV
3347      WHERE LANGUAGE = userenv('LANG')
3348      and VIEW_APPLICATION_ID = 660
3349      and((lookup_code= shipment_priority_code
3350      and lookup_type='SHIPMENT_PRIORITY')
3351      or (lookup_code=freight_terms_code
3352      and lookup_type='FREIGHT_TERMS'))
3353      and SECURITY_GROUP_ID =fnd_global.Lookup_Security_Group(lv.lookup_type,lv.view_application_id);
3354   /*l_organization_id  Number:=fnd_profile.value('OE_ORGANIZATION_ID');*/
3355     -- This change is required since we are dropping the profile OE_ORGANIZATION    -- _ID. Change made by Esha.
3356     l_organization_id Number;
3357   /* Need to Change Exception Handling- Not Sure whether we should continue
3358     to process other attribute when one of the attribute raises exception.
3359     Checked in 11i and  they are continuing processing of other attributes */
3360     l_address_id number;
3361         l_sales_order_id number;
3362         l_msg_count  number;
3363         l_msg_data   Varchar2(2000);
3364         l_return_status VARCHAR2(1);
3365 
3366   /* 1931163 */
3367   CURSOR line_on_hold(c_line_id NUMBER) IS
3368   SELECT 'Y' hold_exists
3369   FROM   oe_order_holds
3370   WHERE  line_id       = c_line_id
3371   AND    released_flag = 'N';
3372 
3373   CURSOR line_info(c_line_id NUMBER) IS
3374   SELECT
3375     ato_line_id
3376   , top_model_line_id
3377   , nvl(ship_model_complete_flag, 'N') smc_flag
3378   , item_type_code
3379   , link_to_line_id
3380   FROM   oe_order_lines
3381   WHERE  line_id = c_line_id;
3382 
3383  CURSOR ato_lines_on_hold(c_ato_line_id NUMBER, c_top_model_line_id NUMBER) IS
3384  SELECT 'Y' hold_exists
3385  FROM   oe_order_holds ooh, oe_order_lines ool
3386  where  ool.ato_line_id = c_ato_line_id
3387  and    ool.top_model_line_id = c_top_model_line_id
3388  and    ooh.line_id = ool.line_id
3389  and    ooh.released_flag = 'N';
3390 
3391  CURSOR smc_lines_on_hold(c_top_model_line_id NUMBER) IS
3392  SELECT 'Y' hold_exists
3393  FROM   oe_order_holds ooh, oe_order_lines ool
3394  where  ool.top_model_line_id = c_top_model_line_id
3395  and    ooh.line_id = ool.line_id
3396  and    ooh.released_flag = 'N';
3397 
3398  CURSOR link_to_line_hold(c_link_to_line_id NUMBER) IS
3399  SELECT 'Y' hold_exists
3400  FROM   oe_order_holds ooh, oe_hold_definitions ohd, oe_hold_sources ohs
3401  where  ooh.line_id = c_link_to_line_id
3402  and    ooh.released_flag = 'N'
3403  and    ohs.hold_source_id = ooh.hold_source_id
3404  and    ohs.hold_id = ohd.hold_id
3405  and    nvl(ohd.hold_included_items_flag, 'N') = 'Y';
3406 
3407  --MRG BGN
3408  l_order_margin_percent NUMBER;
3409  l_order_margin_amount  NUMBER;
3410  --MRG END
3411 
3412 --
3413 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3414 --
3415 --7832836  l_cascade_hold_non_smc VARCHAR2(1) := NVL(OE_SYS_PARAMETERS.VALUE('ONT_CASCADE_HOLD_NONSMC_PTO'),'N'); --ER#7479609
3416 l_cascade_hold_non_smc VARCHAR2(1);  -- 7832836
3417 BEGIN
3418     l_organization_id := OE_Sys_Parameters.VALUE('MASTER_ORGANIZATION_ID',
3419                                p_line_rec.org_id);
3420     l_cascade_hold_non_smc := NVL(OE_SYS_PARAMETERS.VALUE('ONT_CASCADE_HOLD_NONSMC_PTO',p_line_rec.org_id),'N'); --7832836
3421 --   Populate Project Number and  Task Number
3422    IF p_line_rec.project_id is not Null then
3423     BEGIN
3424  /*      Select project_number
3425       into  x_line_val_rec.project_number
3426       from pjm_projects_org_v
3427       Where project_id=p_line_rec.project_id;*/
3428 
3429        x_line_val_rec.project_number := pjm_project.all_proj_idtonum(p_line_rec.project_id);
3430     EXCEPTION
3431       When no_data_found then
3432       Null;
3433        When too_many_rows then
3434       Null;
3435      END;
3436    END IF;
3437 
3438    IF p_line_rec.task_id is not null then
3439 /*  Select task_number
3440     Into x_line_val_rec.task_number
3441     From pjm_tasks_v
3442     Where task_id=p_line_rec.task_id;*/
3443 
3444       x_line_val_rec.task_number := pjm_project.all_task_idtonum(p_line_rec.task_id);
3445    END IF;
3446 --retro{Previously commented by VMALAPAT. Removed the comment for retrobilling
3447 --This query fires only once per order
3448  IF(g_header_id is NULL or  p_line_rec.header_id <> g_header_id) THEN
3449    IF p_line_rec.header_id is not null THEN
3450      select transactional_curr_code
3451      into x_line_val_rec.transactional_curr_code
3452      from oe_order_headers
3453     where header_id=p_line_rec.header_id;
3454      g_header_id := p_line_rec.header_id;
3455      g_currency_code :=x_line_val_rec. transactional_curr_code;
3456    END IF;
3457  ELSE
3458      x_line_val_rec.transactional_curr_code := g_currency_code;
3459  END IF;
3460 --retro}
3461   IF p_line_rec.line_id IS NOT NULL THEN
3462 
3463     x_line_val_rec.hold_exists_flag := 'N';
3464     x_line_val_rec.cascaded_hold_exists_flag := 'N';
3465 
3466     /* 1931163: First check if there is ANY unreleased hold on the order/lines */
3467     BEGIN
3468       SELECT 'Y'
3469       INTO   l_hold_exists
3470       FROM   OE_ORDER_HOLDS
3471       WHERE  HEADER_ID = p_line_rec.header_id
3472       AND    RELEASED_FLAG = 'N';
3473       EXCEPTION
3474         WHEN TOO_MANY_ROWS THEN
3475           l_hold_exists := 'Y';
3476           null;
3477         WHEN OTHERS THEN
3478           l_hold_exists := 'N';
3479           null;
3480     END;
3481 
3482     IF l_hold_exists = 'Y' THEN
3483 
3484       /* 1931163: Check if Hold Exist on Line */
3485       FOR line_hold_rec in line_on_hold(p_line_rec.line_id) LOOP
3486 
3487         x_line_val_rec.hold_exists_flag := line_hold_rec.hold_exists;
3488         EXIT;
3489 
3490       END LOOP;
3491 
3492       /* 1931163: Check if Cascaded Hold Exist on Line */
3493       IF x_line_val_rec.hold_exists_flag = 'N' THEN
3494 
3495         OPEN line_info(p_line_rec.line_id);
3496 
3497         FETCH line_info
3498         INTO  l_ato_line_id, l_top_model_line_id, l_smc_flag,
3499               l_item_type_code, l_link_to_line_id;
3500 
3501         CLOSE line_info;
3502 
3503         /* 1931163: Check Cascaded Hold based on ATO Line(s) */
3504         IF l_ato_line_id IS NOT NULL AND
3505         NOT (l_ato_line_id = p_line_rec.line_id AND l_item_type_code = OE_GLOBALS.G_ITEM_OPTION) THEN
3506 
3507           FOR ato_hold_rec in ato_lines_on_hold(l_ato_line_id, l_top_model_line_id)
3508           LOOP
3509 
3510        IF p_line_rec.cancelled_flag = 'N' and p_line_rec.open_flag = 'Y'
3511        THEN
3512 
3513             x_line_val_rec.cascaded_hold_exists_flag := ato_hold_rec.hold_exists;
3514        END IF;
3515             EXIT;
3516 
3517           END LOOP;
3518         END IF; -- ATO
3519 
3520         /* 1931163: Check Cascaded Hold based on SMC Line(s) */
3521         IF l_smc_flag = 'Y' AND x_line_val_rec.cascaded_hold_exists_flag = 'N' THEN
3522 
3523           FOR smc_hold_rec in smc_lines_on_hold(l_top_model_line_id)
3524           LOOP
3525        IF p_line_rec.cancelled_flag = 'N' and p_line_rec.open_flag = 'Y'
3526        THEN
3527 
3528             x_line_val_rec.cascaded_hold_exists_flag := smc_hold_rec.hold_exists;
3529        END IF;
3530             EXIT;
3531 
3532           END LOOP;
3533         END IF; -- SMC
3534 
3535 
3536         --5737464
3537         IF l_smc_flag = 'N' AND x_line_val_rec.cascaded_hold_exists_flag = 'N'
3538         THEN
3539            IF l_debug_level > 0 THEN
3540               oe_debug_pub.add('GOING TO CHECK FOR CONFIG VALIDATION HOLD FOR '||l_top_model_line_id,1);
3541            END IF;
3542 
3543            BEGIN
3544               l_hold_exists := NULL;
3545 
3546             IF l_cascade_hold_non_smc <> 'Y' THEN
3547               SELECT 'Y' hold_exists
3548               INTO l_hold_exists
3549               FROM   oe_order_holds ooh, oe_hold_definitions ohd, oe_hold_sources ohs
3550               where  ooh.line_id = l_top_model_line_id
3551               and    ooh.released_flag = 'N'
3552               and    ohs.hold_source_id = ooh.hold_source_id
3553               and    ohs.hold_id = ohd.hold_id
3554               and    ohd.hold_id = 3;
3555             --ER#7479609 start
3556             ELSE
3557               SELECT 'Y' hold_exists
3558               INTO l_hold_exists
3559               FROM   oe_order_holds ooh, oe_hold_definitions ohd, oe_hold_sources ohs
3560               where  ooh.line_id = l_top_model_line_id
3561               and    ooh.released_flag = 'N'
3562               and    ohs.hold_source_id = ooh.hold_source_id
3563               and    ohs.hold_id = ohd.hold_id;
3564             END IF;
3565             --ER#7479609 end
3566            EXCEPTION
3567               WHEN OTHERS THEN
3568                  NULL;
3569            END;
3570            IF l_hold_exists = 'Y' THEN
3571 
3572               IF p_line_rec.cancelled_flag = 'N' and p_line_rec.open_flag = 'Y'
3573               THEN
3574                  IF l_debug_level > 0 THEN
3575                     oe_debug_pub.add('HOLD CASCADED TO LINE ID '||p_line_rec.line_id,1);
3576                  END IF;
3577                  x_line_val_rec.cascaded_hold_exists_flag := 'Y';
3578               END IF;
3579            END IF;
3580         END IF;
3581         --5737464
3582 
3583 
3584         /* 1931163: Check Cascaded Hold for Included Item */
3585         IF l_item_type_code = OE_GLOBALS.G_ITEM_INCLUDED AND x_line_val_rec.cascaded_hold_exists_flag = 'N' THEN
3586 
3587           FOR link_to_hold_rec in link_to_line_hold(l_link_to_line_id)
3588           LOOP
3589 
3590        IF p_line_rec.cancelled_flag = 'N' and p_line_rec.open_flag = 'Y'
3591        THEN
3592             x_line_val_rec.cascaded_hold_exists_flag := link_to_hold_rec.hold_exists;
3593       END IF;
3594             EXIT;
3595 
3596           END LOOP;
3597 
3598         END IF; -- Hold on Included Items
3599 
3600       END IF; -- No Real Holds on Line
3601 
3602     END IF; -- Any Hold on Order/Line
3603 
3604   END IF;
3605 
3606  -- Changes for Visibility to Process Messages datafix project begin
3607 
3608   x_line_val_rec.message_exists_flag := 'N';
3609 
3610   IF G_ENABLE_VISIBILITY_MSG = 'Y' AND
3611              p_line_rec.line_id is NOT NULL THEN
3612         BEGIN
3613              SELECT 'Y'
3614              INTO   x_line_val_rec.message_exists_flag
3615              FROM   OE_PROCESSING_MSGS
3616              WHERE  header_id = p_line_rec.header_id
3617              AND    line_id = p_line_rec.line_id
3618              AND NVL(message_status_code, '0') <> 'CLOSED'  --datafix_begin_end
3619              AND    rownum < 2;
3620         EXCEPTION
3621               WHEN TOO_MANY_ROWS THEN
3622                    x_line_val_rec.message_exists_flag  := 'Y';
3623               WHEN OTHERS THEN
3624                    x_line_val_rec.message_exists_flag := 'N';
3625         END;
3626   END IF;
3627 
3628    IF (p_line_rec.line_category_code = 'RETURN') THEN
3629     IF (p_line_rec.reference_line_id is not null) THEN
3630      BEGIN
3631       select  /* MOAC_SQL_CHANGE */  H.order_number,
3632              l.line_number,
3633              l.shipment_number,
3634              l.option_number,
3635              l.component_number
3636       into x_line_val_rec.ref_order_number,
3637            x_line_val_rec.ref_line_number,
3638            x_line_val_rec.ref_shipment_number,
3639            x_line_val_rec.ref_option_number,
3640            x_line_val_rec.ref_component_number
3641       from oe_order_headers_all h,
3642            oe_order_lines_all l
3643       where l.line_id=p_line_rec.reference_line_id
3644       and h.header_id=l.header_id;
3645      EXCEPTION
3646        WHEN NO_DATA_FOUND THEN
3647        Null;
3648       oe_debug_pub.add('In NO Data Found ');
3649        When too_many_rows then
3650        Null;
3651       When others then
3652       oe_debug_pub.add('In Others Found ');
3653       Null;
3654      END;
3655      END IF;
3656 
3657      IF (p_line_rec.reference_customer_trx_line_id is not null) THEN
3658      BEGIN
3659        select /* MOAC_SQL_CHANGE */ rct.trx_number,
3660               rctl.line_number
3661        into x_line_val_rec.ref_invoice_number,
3662             x_line_val_rec.ref_invoice_line_number
3663        from ra_customer_trx_all rct,
3664             ra_customer_trx_lines_all rctl
3665        where rctl.customer_trx_line_id = p_line_rec.reference_customer_trx_line_id
3666        and rctl.customer_trx_id = rct.customer_trx_id;
3667      EXCEPTION
3668        WHEN NO_DATA_FOUND THEN
3669        Null;
3670        When too_many_rows then
3671       Null;
3672       When others then
3673       Null;
3674      END;
3675      END IF;
3676 
3677      IF (p_line_rec.reference_customer_trx_line_id is not null) THEN
3678      BEGIN
3679        select /* MOAC_SQL_CHANGE */ rct.trx_number,
3680               rctl.line_number
3681        into x_line_val_rec.ref_invoice_number,
3682             x_line_val_rec.ref_invoice_line_number
3683        from ra_customer_trx_all rct,
3684             ra_customer_trx_lines_all rctl
3685        where rctl.customer_trx_line_id = p_line_rec.reference_customer_trx_line_id
3686        and rctl.customer_trx_id = rct.customer_trx_id;
3687      EXCEPTION
3688        WHEN NO_DATA_FOUND THEN
3689        Null;
3690        When too_many_rows then
3691       Null;
3692       When others then
3693       Null;
3694      END;
3695      END IF;
3696 
3697      IF (p_line_rec.credit_invoice_line_id is not null) THEN
3698      BEGIN
3699        select /* MOAC_SQL_CHANGE */ rct.trx_number
3700        into x_line_val_rec.credit_invoice_number
3701        from ra_customer_trx_all rct,
3702          ra_customer_trx_lines_all rctl
3703        where rctl.customer_trx_line_id = p_line_rec.credit_invoice_line_id
3704        and rctl.customer_trx_id = rct.customer_trx_id;
3705      EXCEPTION
3706        WHEN NO_DATA_FOUND THEN
3707        NULL;
3708        When too_many_rows then
3709       Null;
3710       When others then
3711       Null;
3712      END;
3713      END IF;
3714    END IF;
3715 
3716    IF (p_line_rec.salesrep_id is not null) then
3717    BEGIN
3718     Select Name
3719     INTO x_line_val_rec.salesrep
3720     FROM  RA_SALESREPS
3721     WHERE Salesrep_id=p_line_rec.salesrep_id
3722         AND org_id=p_line_rec.org_id;
3723    EXCEPTION
3724      WHEN NO_DATA_FOUND THEN
3725      NULL;
3726      When too_many_rows then
3727     Null;
3728    END;
3729    END IF;
3730 
3731    IF (p_line_rec.tax_exempt_reason_code is not null) or
3732       (p_line_rec.tax_exempt_flag is not null)or
3733       (p_line_rec.fob_point_code is not null) or
3734       (p_line_rec.return_reason_code is not null) then
3735      BEGIN
3736        FOR lookups in c1(p_line_rec.tax_exempt_reason_code,
3737                      p_line_rec.tax_exempt_flag,
3738                      p_line_rec.fob_point_code,
3739                      p_line_rec.return_reason_code)
3740         LOOP
3741         IF lookups.lookup_type='TAX_REASON'  then
3742           x_line_val_rec.tax_exempt_reason:=lookups.meaning;
3743           ELSIF lookups.lookup_type='TAX_CONTROL_FLAG' then
3744           x_line_val_rec.tax_exempt:=lookups.meaning;
3745         ELSIF lookups.lookup_type='FOB' then
3746           x_line_val_rec.fob:=lookups.meaning;
3747         ELSIF lookups.lookup_type='CREDIT_MEMO_REASON' then
3748           x_line_val_rec.return_reason:=lookups.meaning;
3749           END IF;
3750         END LOOP;
3751     END;
3752     END IF;
3753 
3754     IF (p_line_rec.shipment_priority_code is not null) or
3755        (p_Line_rec.freight_terms_code is not null) THEN
3756       BEGIN
3757       FOR oe_lookups in c2(p_line_rec.shipment_priority_code,
3758                         p_Line_rec.freight_terms_code)
3759       LOOP
3760        IF oe_lookups.lookup_type='SHIPMENT_PRIORITY'then
3761          x_line_val_rec.shipment_priority:=oe_lookups.meaning;
3762         ELSIF oe_lookups.lookup_type='FREIGHT_TERMS' then
3763          x_line_val_rec.freight_terms:=oe_lookups.meaning;
3764        END IF;
3765       END LOOP;
3766       END;
3767     END IF;
3768 
3769     -- Changes for 2748513
3770 
3771      IF p_line_rec.flow_status_code is not NULL THEN
3772 
3773       x_line_val_rec.status :=
3774             OE_LINE_STATUS_PUB.Get_Line_Status(
3775                  p_line_id          =>  p_line_rec.line_id
3776                 ,p_flow_status_code =>  p_line_rec.flow_status_code);
3777      END IF;
3778 
3779 /*    IF (p_line_rec.flow_status_code is not null) THEN
3780       BEGIN
3781        IF p_line_rec.flow_status_code <> 'AWAITING_SHIPPING' AND
3782       p_line_rec.flow_status_code <> 'PRODUCTION_COMPLETE' AND
3783       p_line_rec.flow_status_code <> 'PICKED' AND
3784       p_line_rec.flow_status_code <> 'PICKED_PARTIAL' AND
3785       p_line_rec.flow_status_code <> 'PO_RECEIVED'
3786        THEN
3787           SELECT meaning
3788           INTO l_flow_meaning
3789           FROM fnd_lookup_values lv
3790           WHERE lookup_type = 'LINE_FLOW_STATUS'
3791           AND lookup_code = p_line_rec.flow_status_code
3792           AND LANGUAGE = userenv('LANG')
3793           AND VIEW_APPLICATION_ID = 660
3794           AND SECURITY_GROUP_ID =
3795               fnd_global.Lookup_Security_Group(lv.lookup_type,
3796                                                lv.view_application_id);
3797 
3798         status is AWAITING_SHIPPING or PRODUCTION_COMPLETE etc.
3799           get value from shipping table
3800        ELSE
3801           l_status := p_line_rec.flow_status_code;
3802 
3803           SELECT sum(decode(released_status, 'Y', 1, 0)), sum(1)
3804           INTO released_count, total_count
3805           FROM wsh_delivery_details
3806           WHERE source_line_id   = p_line_rec.line_id
3807           AND   source_code      = 'OE'
3808           AND   released_status  <> 'D';
3809 
3810           IF released_count = total_count THEN
3811            SELECT meaning
3812            INTO l_flow_meaning
3813            FROM fnd_lookup_values lv
3814            WHERE lookup_type = 'LINE_FLOW_STATUS'
3815            AND lookup_code = 'PICKED'
3816            AND LANGUAGE = userenv('LANG')
3817            AND VIEW_APPLICATION_ID = 660
3818            AND SECURITY_GROUP_ID =
3819                 fnd_global.Lookup_Security_Group(lv.lookup_type,
3820                                                  lv.view_application_id);
3821 
3822           ELSIF released_count < total_count and released_count <> 0 THEN
3823            SELECT meaning
3824            INTO l_flow_meaning
3825            FROM fnd_lookup_values lv
3826            WHERE lookup_type = 'LINE_FLOW_STATUS'
3827            AND lookup_code = 'PICKED_PARTIAL'
3828            AND LANGUAGE = userenv('LANG')
3829            AND VIEW_APPLICATION_ID = 660
3830            AND SECURITY_GROUP_ID =
3831                 fnd_global.Lookup_Security_Group(lv.lookup_type,
3832                                                  lv.view_application_id);
3833           ELSE
3834            SELECT meaning
3835            INTO l_flow_meaning
3836            FROM fnd_lookup_values lv
3837            WHERE lookup_type = 'LINE_FLOW_STATUS'
3838            AND lookup_code = l_status
3839            AND LANGUAGE = userenv('LANG')
3840            AND VIEW_APPLICATION_ID = 660
3841            AND SECURITY_GROUP_ID =
3842                 fnd_global.Lookup_Security_Group(lv.lookup_type,
3843                                                  lv.view_application_id);
3844           END IF;
3845        END IF;
3846        x_line_val_rec.status:= l_flow_meaning;
3847       END;
3848      END IF;
3849 */
3850 
3851    IF NVL(p_line_rec.item_identifier_type, 'INT') = 'INT' THEN
3852       BEGIN
3853          IF l_debug_level  > 0 THEN
3854              oe_debug_pub.add(  'IN OEXFLINB. ITEM IDENTIFIER IS INT' ) ;
3855          END IF;
3856          SELECT description
3857         ,concatenated_segments
3858         ,concatenated_segments   /*Bug 1766327 chhung*/
3859          INTO  x_line_val_rec.item_description
3860           ,x_line_val_rec.ordered_item_dsp
3861           ,x_line_val_rec.inventory_item /*bug 1766327 chhung*/
3862          FROM  mtl_system_items_vl
3863          WHERE inventory_item_id = p_line_rec.inventory_item_id
3864          AND organization_id = l_organization_id;
3865          IF l_debug_level  > 0 THEN
3866              oe_debug_pub.add(  'DESCRIPTION: '||X_LINE_VAL_REC.ITEM_DESCRIPTION ) ;
3867              oe_debug_pub.add(  'ORDERED_ITEM_DSP: '||X_LINE_VAL_REC.ORDERED_ITEM_DSP ) ;
3868          oe_debug_pub.add(  'INVENTORY_ITEM: '|| X_LINE_VAL_REC.INVENTORY_ITEM ) ;
3869      END IF;
3870 
3871       EXCEPTION
3872         WHEN NO_DATA_FOUND THEN
3873         Null;
3874         When too_many_rows then
3875        Null;
3876        When others then
3877        Null;
3878       END;
3879     ELSIF NVL(p_line_rec.item_identifier_type, 'INT') = 'CUST' THEN
3880       BEGIN
3881          IF l_debug_level  > 0 THEN
3882              oe_debug_pub.add(  'IN OEXFLINB. ITEM IDENTIFIER IS CUST' ) ;
3883          END IF;
3884          SELECT nvl(citems.customer_item_desc, sitems.description)
3885                ,citems.customer_item_number
3886            ,sitems.concatenated_segments  /*Bug 1766327 chhung*/
3887          INTO  x_line_val_rec.item_description
3888           ,x_line_val_rec.ordered_item_dsp
3889           ,x_line_val_rec.inventory_item /*Bug 1766327 chhung*/
3890          FROM  mtl_customer_items citems
3891               ,mtl_customer_item_xrefs cxref
3892               ,mtl_system_items_vl sitems
3893           ,mtl_parameters mp  -- bug 3918771
3894          WHERE citems.customer_item_id = cxref.customer_item_id
3895            AND cxref.inventory_item_id = sitems.inventory_item_id
3896            AND sitems.inventory_item_id = p_line_rec.inventory_item_id
3897            AND sitems.organization_id = l_organization_id
3898            AND citems.customer_item_id = p_line_rec.ordered_item_id
3899            AND citems.customer_id = p_line_rec.sold_to_org_id
3900        AND cxref.master_organization_id = mp.master_organization_id
3901            AND mp.organization_id = sitems.organization_id ; -- bug 3918771
3902          IF l_debug_level  > 0 THEN
3903              oe_debug_pub.add(  'DESCRIPTION: '||X_LINE_VAL_REC.ITEM_DESCRIPTION ) ;
3904              oe_debug_pub.add(  'ORDERED_ITEM_DSP: '||X_LINE_VAL_REC.ORDERED_ITEM_DSP ) ;
3905          oe_debug_pub.add(  'INVENTORY_ITEM: '|| X_LINE_VAL_REC.INVENTORY_ITEM ) ;
3906      END IF;
3907 
3908       EXCEPTION
3909         WHEN NO_DATA_FOUND THEN
3910           /* Customer Cross Reference relationship changed */
3911           /* ----------------------------------------------*/
3912           /* We still need to preserve old value of ordered_item_dsp
3913              from ordered_item */
3914           IF p_line_rec.ordered_item IS NOT NULL THEN
3915              SELECT description
3916                    ,p_line_rec.ordered_item
3917                    ,concatenated_segments
3918              INTO  x_line_val_rec.item_description
3919                   ,x_line_val_rec.ordered_item_dsp
3920                   ,x_line_val_rec.inventory_item
3921               FROM  mtl_system_items_vl
3922               WHERE inventory_item_id = p_line_rec.inventory_item_id
3923                 AND organization_id = l_organization_id;
3924 
3925               IF l_debug_level  > 0 THEN
3926                 oe_debug_pub.add('DESCRIPTION: '||X_LINE_VAL_REC.ITEM_DESCRIPTION ) ;
3927                 oe_debug_pub.add('ORDERED_ITEM_DSP: '||X_LINE_VAL_REC.ORDERED_ITEM_DSP ) ;
3928             oe_debug_pub.add('INVENTORY_ITEM: '|| X_LINE_VAL_REC.INVENTORY_ITEM ) ;
3929           END IF;
3930             END IF;
3931         When too_many_rows then
3932        Null;
3933        When others then
3934        Null;
3935       END;
3936     ELSE
3937       BEGIN
3938        IF l_debug_level  > 0 THEN
3939            oe_debug_pub.add(  'IN OEXFLINB. ITEM IDENTIFIER IS '||P_LINE_REC.ITEM_IDENTIFIER_TYPE ) ;
3940            oe_debug_pub.add(  'ORDERED_ITEM_ID: '||P_LINE_REC.ORDERED_ITEM_ID ) ;
3941        END IF;
3942        IF p_line_rec.ordered_item_id IS NULL THEN
3943          IF l_debug_level  > 0 THEN
3944              oe_debug_pub.add(  'ORDERED_ITEM_ID IS NULL ' ) ;
3945          oe_debug_pub.add(  'ORDERED_ITEM: '||P_LINE_REC.ORDERED_ITEM ) ;
3946      END IF;
3947          SELECT nvl(items.description, sitems.description)
3948                ,items.cross_reference
3949            ,sitems.concatenated_segments  /*Bug 1766327 chhung*/
3950          INTO x_line_val_rec.item_description
3951          ,x_line_val_rec.ordered_item_dsp
3952          ,x_line_val_rec.inventory_item /*Bug 1766327 chhung*/
3953          FROM  mtl_cross_reference_types types
3954              , mtl_cross_references items
3955              , mtl_system_items_vl sitems
3956          WHERE types.cross_reference_type = items.cross_reference_type
3957            AND items.inventory_item_id = sitems.inventory_item_id
3958            AND sitems.organization_id = l_organization_id
3959            AND sitems.inventory_item_id = p_line_rec.inventory_item_id
3960            AND items.cross_reference_type = p_line_rec.item_identifier_type
3961            AND items.cross_reference = p_line_rec.ordered_item;
3962         IF l_debug_level  > 0 THEN
3963             oe_debug_pub.add(  'DESCRIPTION: '||X_LINE_VAL_REC.ITEM_DESCRIPTION ) ;
3964             oe_debug_pub.add(  'ORDERED_ITEM_DSP: '||X_LINE_VAL_REC.ORDERED_ITEM_DSP ) ;
3965         oe_debug_pub.add(  'INVENTORY_ITEM: '|| X_LINE_VAL_REC.INVENTORY_ITEM ) ;
3966     END IF;
3967        END IF;
3968 
3969       EXCEPTION
3970         WHEN NO_DATA_FOUND THEN
3971            /* Cross Reference relationship changed */
3972            /* ----------------------------------------------*/
3973            /* We still need to preserve old value of ordered_item_dsp
3974              from ordered_item */
3975           IF p_line_rec.ordered_item IS NOT NULL THEN
3976             SELECT description
3977                   ,p_line_rec.ordered_item
3978                   ,concatenated_segments
3979              INTO  x_line_val_rec.item_description
3980                   ,x_line_val_rec.ordered_item_dsp
3981                   ,x_line_val_rec.inventory_item
3982             FROM  mtl_system_items_vl
3983             WHERE inventory_item_id = p_line_rec.inventory_item_id
3984               AND organization_id = l_organization_id;
3985 
3986             IF l_debug_level  > 0 THEN
3987               oe_debug_pub.add('DESCRIPTION: '||X_LINE_VAL_REC.ITEM_DESCRIPTION ) ;
3988               oe_debug_pub.add('ORDERED_ITEM_DSP: '||X_LINE_VAL_REC.ORDERED_ITEM_DSP ) ;
3989               oe_debug_pub.add('INVENTORY_ITEM: '|| X_LINE_VAL_REC.INVENTORY_ITEM ) ;
3990         END IF;
3991           END IF;
3992         When too_many_rows then
3993        --Null;
3994     --start bug 3918771
3995        BEGIN
3996                SELECT nvl(items.description, sitems.description)
3997                          ,items.cross_reference
3998                          ,sitems.concatenated_segments
3999                    INTO   x_line_val_rec.item_description
4000                      ,x_line_val_rec.ordered_item_dsp
4001                      ,x_line_val_rec.inventory_item
4002                    FROM  mtl_cross_reference_types types
4003                         ,mtl_cross_references items
4004                         ,mtl_system_items_vl sitems
4005           WHERE types.cross_reference_type = items.cross_reference_type
4006             AND items.inventory_item_id = sitems.inventory_item_id
4007             AND sitems.organization_id = l_organization_id
4008             AND sitems.inventory_item_id = p_line_rec.inventory_item_id
4009             AND items.cross_reference_type = p_line_rec.item_identifier_type
4010             AND items.cross_reference = p_line_rec.ordered_item
4011             AND items.org_independent_flag = 'Y' ;
4012        EXCEPTION
4013               WHEN No_Data_Found THEN
4014                BEGIN
4015                   SELECT nvl(items.description, sitems.description)
4016                                     ,items.cross_reference
4017                                     ,sitems.concatenated_segments
4018                               INTO   x_line_val_rec.item_description
4019                                 ,x_line_val_rec.ordered_item_dsp
4020                                 ,x_line_val_rec.inventory_item
4021                               FROM  mtl_cross_reference_types types
4022                                    ,mtl_cross_references items
4023                                    ,mtl_system_items_vl sitems
4024                       WHERE types.cross_reference_type = items.cross_reference_type
4025                     AND items.inventory_item_id = sitems.inventory_item_id
4026                     AND sitems.organization_id = l_organization_id
4027                     AND sitems.inventory_item_id = p_line_rec.inventory_item_id
4028                     AND items.cross_reference_type = p_line_rec.item_identifier_type
4029                     AND items.cross_reference = p_line_rec.ordered_item
4030                     AND items.organization_id = l_organization_id ;
4031                EXCEPTION
4032                 WHEN No_Data_Found THEN
4033                        IF p_line_rec.ordered_item IS NOT NULL THEN
4034                       SELECT description
4035                      ,p_line_rec.ordered_item
4036                      ,concatenated_segments
4037                       INTO  x_line_val_rec.item_description
4038                      ,x_line_val_rec.ordered_item_dsp
4039                      ,x_line_val_rec.inventory_item
4040                       FROM  mtl_system_items_vl
4041                                       WHERE inventory_item_id = p_line_rec.inventory_item_id
4042                                         AND organization_id = l_organization_id;
4043                            END IF ;
4044                        When Others then
4045                                     Null ;
4046                END ;  -- end innermost exception block
4047        END ;
4048           -- end bug 3918771
4049     When others then
4050        Null;
4051       END;  -- end outermost exception block
4052     END IF;
4053 
4054    /*IF (p_line_rec.tax_code IS NOT NULL) THEN
4055        BEGIN
4056            x_line_val_rec.tax_group := OE_Id_To_Value.tax_group(
4057                              p_tax_code => p_line_rec.tax_code);
4058        EXCEPTION
4059          WHEN OTHERS THEN
4060              NULL;
4061        END;
4062    END IF; */
4063 
4064    IF (p_line_rec.ship_to_org_id IS NOT NULL) THEN
4065        BEGIN
4066          /*OE_Id_To_Value.Ship_To_Customer_Name
4067           (
4068            p_ship_to_org_id => p_line_rec.ship_to_org_id,
4069            x_ship_to_customer_name=>x_line_val_rec.ship_to_customer_name
4070            );*/
4071 
4072          get_customer_details(
4073            p_site_use_id => p_line_rec.ship_to_org_id,
4074            p_site_use_code => 'SHIP_TO',
4075            x_customer_id => x_line_val_rec.ship_To_customer_id,
4076            x_customer_name => x_line_val_rec.ship_To_customer_name,
4077            x_customer_number => x_line_val_rec.ship_To_customer_number
4078                                  );
4079 
4080        EXCEPTION
4081          WHEN OTHERS THEN
4082              NULL;
4083        END;
4084 
4085    END IF;
4086 IF (p_line_rec.end_customer_site_use_id IS NOT NULL) THEN
4087          OE_ID_TO_VALUE.END_CUSTOMER_SITE_USE
4088            (  p_end_customer_site_use_id       => p_line_rec.end_customer_site_use_id,
4089           x_end_customer_address1 => x_line_val_rec.END_CUSTOMER_SITE_ADDRESS1,
4090           x_end_customer_address2 => x_line_val_rec.END_CUSTOMER_SITE_ADDRESS2,
4091           x_end_customer_address3 => x_line_val_rec.END_CUSTOMER_SITE_ADDRESS3,
4092           x_end_customer_address4 => x_line_val_rec.END_CUSTOMER_SITE_ADDRESS4,
4093           x_end_customer_location     => x_line_val_rec.END_CUSTOMER_SITE_LOCATION,
4094           x_end_customer_city => x_line_val_rec.END_CUSTOMER_SITE_CITY,
4095           x_end_customer_state => x_line_val_rec.END_CUSTOMER_SITE_STATE,
4096           x_end_customer_postal_code => x_line_val_rec.END_CUSTOMER_SITE_POSTAL_CODE,
4097           x_end_customer_country => x_line_val_rec.END_CUSTOMER_SITE_COUNTRY
4098            );
4099 
4100  END IF;
4101 
4102   IF (p_line_rec.end_customer_id IS NOT NULL) THEN
4103         OE_ID_TO_VALUE.END_CUSTOMER
4104            (  p_end_customer_id       => p_line_rec.end_customer_id,
4105           x_end_customer_name => x_line_val_rec.END_CUSTOMER_NAME,
4106           x_end_customer_number => x_line_val_rec.END_CUSTOMER_NUMBER
4107           );
4108   END IF;
4109 
4110   IF (p_line_rec.end_customer_contact_id IS NOT NULL) THEN
4111         x_line_val_rec.END_CUSTOMER_CONTACT :=  OE_ID_TO_VALUE.END_CUSTOMER_CONTACT
4112                                (  p_end_customer_contact_id       => p_line_rec.end_customer_contact_id);
4113   END IF;
4114 
4115 
4116    IF (p_line_rec.invoice_to_org_id IS NOT NULL) THEN
4117        BEGIN
4118          /*OE_Id_To_Value.Invoice_To_Customer_Name
4119           (
4120            p_invoice_to_org_id => p_line_rec.invoice_to_org_id,
4121            x_invoice_to_customer_name=>x_line_val_rec.invoice_to_customer_name
4122            ); */
4123 
4124          get_customer_details(
4125              p_site_use_id => p_line_rec.invoice_to_org_id,
4126              p_site_use_code =>'BILL_TO',
4127          x_customer_id =>x_line_val_rec.invoice_To_customer_id,
4128          x_customer_name =>x_line_val_rec.invoice_To_customer_name,
4129          x_customer_number => x_line_val_rec.invoice_To_customer_number
4130                );
4131 
4132 
4133        EXCEPTION
4134          WHEN OTHERS THEN
4135              NULL;
4136        END;
4137 
4138    END IF;
4139 
4140    IF p_line_rec.shipping_method_code IS NOT NULL THEN
4141      BEGIN
4142          Select meaning
4143          INTO x_line_val_rec.shipping_method
4144          FROM   oe_ship_methods_v
4145          WHERE  lookup_code=p_line_rec.shipping_method_code;
4146       EXCEPTION
4147         WHEN NO_DATA_FOUND THEN
4148         Null;
4149         When too_many_rows then
4150        Null;
4151        When others then
4152        Null;
4153       END;
4154    END IF;
4155   --3557382
4156    IF p_line_rec.service_reference_type_code IS NOT NULL THEN
4157      BEGIN
4158          Select meaning
4159          INTO x_line_val_rec.service_reference_type
4160          FROM   oe_lookups
4161          WHERE  lookup_code=p_line_rec.service_Reference_type_code
4162                 and lookup_type = 'SERVICE_REFERENCE_TYPE_CODE';
4163       EXCEPTION
4164         WHEN NO_DATA_FOUND THEN
4165         Null;
4166         When too_many_rows then
4167        Null;
4168        When others then
4169        Null;
4170       END;
4171    END IF;
4172    --3557382
4173  --3605052
4174    IF p_line_rec.service_period IS NOT NULL THEN
4175      BEGIN
4176          Select description
4177          INTO x_line_val_rec.service_period_dsp
4178          FROM mtl_item_uoms_view
4179          WHERE uom_code  =p_line_rec.service_period
4180                 and inventory_item_id = p_line_rec.inventory_item_id
4181             and organization_id = l_organization_id;
4182       EXCEPTION
4183         WHEN NO_DATA_FOUND THEN
4184         Null;
4185         When too_many_rows then
4186        Null;
4187        When others then
4188        Null;
4189       END;
4190    END IF;
4191    --3605052
4192    IF p_line_rec.freight_carrier_code IS NOT NULL THEN
4193      BEGIN
4194          Select description
4195          INTO x_line_val_rec.freight_carrier
4196          FROM   org_freight
4197          WHERE  freight_code=p_line_rec.freight_carrier_code
4198         and organization_id = p_line_rec.ship_from_org_id;
4199       EXCEPTION
4200         WHEN NO_DATA_FOUND THEN
4201         Null;
4202         When too_many_rows then
4203        Null;
4204        When others then
4205        Null;
4206       END;
4207    END IF;
4208 
4209    IF (p_line_rec.source_type_code is not null) THEN
4210      BEGIN
4211       select meaning
4212       into x_line_val_rec.source_type
4213       from oe_lookups
4214       where lookup_code=p_line_rec.source_type_code
4215      AND   lookup_type='SOURCE_TYPE';
4216 
4217      EXCEPTION
4218        WHEN NO_DATA_FOUND THEN
4219        Null;
4220        When too_many_rows then
4221        Null;
4222       When others then
4223       Null;
4224      END;
4225    END IF;
4226 
4227    IF (p_line_rec.demand_class_code is not null) THEN
4228      BEGIN
4229       select meaning
4230       into x_line_val_rec.demand_class
4231       from oe_fnd_common_lookups_v
4232       where lookup_code=p_line_rec.demand_class_code
4233      and lookup_type='DEMAND_CLASS';
4234 
4235      EXCEPTION
4236        WHEN NO_DATA_FOUND THEN
4237        Null;
4238        When too_many_rows then
4239        Null;
4240       When others then
4241       Null;
4242      END;
4243    END IF;
4244 
4245 
4246 
4247    --   added by jmore
4248 
4249    IF (p_line_rec.intermed_ship_to_org_id is not null) THEN
4250      BEGIN
4251       select location,cust_acct_site_id
4252       into x_line_val_rec.intmed_ship_to,
4253          l_address_id
4254       from hz_cust_site_uses_all
4255       where site_use_id=p_line_rec.intermed_ship_to_org_id;
4256      x_line_val_rec.intmed_ship_to_location := x_line_val_rec.intmed_ship_to;
4257 /*1621182*/
4258      select loc.address1,loc.address2,loc.address3,loc.address4,
4259             DECODE(loc.city, NULL, NULL,loc.city || ', ') ||
4260             DECODE(loc.state, NULL, loc.province || ', ', loc.state || ', ') || -- 3603600
4261            DECODE(loc.postal_code, NULL, NULL,loc.postal_code || ', ') ||
4262            DECODE(loc.country, NULL, NULL,loc.country)
4263       into x_line_val_rec.intmed_ship_to_address1,
4264            x_line_val_rec.intmed_ship_to_address2,
4265            x_line_val_rec.intmed_ship_to_address3,
4266            x_line_val_rec.intmed_ship_to_address4,
4267            x_line_val_rec.intmed_ship_to_address5
4268        from hz_locations loc,
4269             hz_party_sites ps,
4270             hz_cust_acct_sites cas
4271       where cas.cust_acct_site_id = l_address_id
4272           and   cas.party_site_id = ps.party_site_id
4273           and   ps.location_id = loc.location_id;
4274 
4275 /*1621182*/
4276      EXCEPTION
4277        WHEN NO_DATA_FOUND THEN
4278        Null;
4279        When too_many_rows then
4280        Null;
4281       When others then
4282       Null;
4283      END;
4284    END IF;
4285 
4286 
4287    IF (p_line_rec.intermed_ship_to_contact_id is not null) THEN
4288      BEGIN
4289       select name
4290       into x_line_val_rec.intmed_ship_to_contact
4291       from oe_contacts_v
4292       where contact_id=p_line_rec.intermed_ship_to_contact_id;
4293 
4294 
4295      EXCEPTION
4296        WHEN NO_DATA_FOUND THEN
4297        Null;
4298        When too_many_rows then
4299        Null;
4300       When others then
4301       Null;
4302      END;
4303    END IF;
4304 
4305 
4306    IF (p_line_rec.deliver_to_org_id is not null) THEN
4307      BEGIN
4308       SELECT  /* MOAC_SQL_CHANGE */
4309        cust_acct.cust_account_id,
4310        party.party_name,
4311        cust_acct.account_number,
4312        cust_site.location,
4313        location.address1,
4314        location.address2,
4315        location.address3,
4316        location.address4,
4317        DECODE(location.city, NULL, NULL,location.city || ', ')
4318        || DECODE(location.state, NULL, location.province || ', ', location.state || ', ') --3603600
4319        || DECODE(location.postal_code, NULL, NULL,location.postal_code || ', ')
4320        || DECODE(location.country, NULL, NULL,location.country)
4321         INTO
4322        x_line_val_rec.deliver_to_customer_id,
4323        x_line_val_rec.deliver_to_customer_name,
4324        x_line_val_rec.deliver_to_customer_number,
4325        x_line_val_rec.deliver_to,
4326        x_line_val_rec.deliver_to_address1,
4327        x_line_val_rec.deliver_to_address2,
4328        x_line_val_rec.deliver_to_address3,
4329        x_line_val_rec.deliver_to_address4,
4330        x_line_val_rec.deliver_to_address5
4331         FROM
4332        hz_cust_site_uses_all cust_site,
4333        hz_cust_acct_sites_all cust_acct_site,
4334        hz_party_sites party_site,
4335        hz_parties party,
4336        hz_cust_accounts cust_acct,
4337        hz_locations location
4338        WHERE
4339        cust_site.site_use_id=p_line_rec.deliver_to_org_id
4340          and cust_site.site_use_code = 'DELIVER_TO'
4341          and cust_site.cust_acct_site_id = cust_acct_site.cust_acct_site_id
4342          and cust_acct_site.party_site_id = party_site.party_site_id
4343          and party_site.party_id = party.party_id
4344          and cust_acct.cust_account_id = cust_acct_site.cust_account_id
4345          and party_site.location_id = location.location_id;
4346 
4347     x_line_val_rec.deliver_to_location := x_line_val_rec.deliver_to;
4348 
4349      EXCEPTION
4350        WHEN NO_DATA_FOUND THEN
4351        Null;
4352        When too_many_rows then
4353        Null;
4354       When others then
4355       Null;
4356      END;
4357    END IF;
4358 
4359 
4360    IF (p_line_rec.deliver_to_contact_id is not null) THEN
4361      BEGIN
4362       select name
4363       into x_line_val_rec.deliver_to_contact
4364       from oe_contacts_v
4365       where contact_id=p_line_rec.deliver_to_contact_id;
4366 
4367 
4368      EXCEPTION
4369        WHEN NO_DATA_FOUND THEN
4370        Null;
4371        When too_many_rows then
4372        Null;
4373       When others then
4374       Null;
4375      END;
4376    END IF;
4377 
4378 -- Concatenated Revision with name for Bug-2249065
4379    IF (p_line_rec.agreement_id is not null) THEN
4380      BEGIN
4381       select name||' : '||revision
4382       into x_line_val_rec.agreement
4383       from oe_agreements
4384       where agreement_id=p_line_rec.agreement_id;
4385 
4386 
4387      EXCEPTION
4388        WHEN NO_DATA_FOUND THEN
4389        Null;
4390        When too_many_rows then
4391        Null;
4392       When others then
4393       Null;
4394      END;
4395    END IF;
4396 
4397 
4398    IF (p_line_rec.source_document_type_id is not null) THEN
4399      BEGIN
4400       select name
4401       into x_line_val_rec.source_document_type
4402       from oe_order_sources
4403       where order_source_id=p_line_rec.source_document_type_id;
4404 
4405 
4406      EXCEPTION
4407        WHEN NO_DATA_FOUND THEN
4408        Null;
4409        When too_many_rows then
4410        Null;
4411       When others then
4412       Null;
4413      END;
4414    END IF;
4415 
4416 
4417    IF (p_line_rec.arrival_set_id is not null) THEN
4418      BEGIN
4419       select set_name
4420       into x_line_val_rec.arrival_set
4421       from oe_sets
4422       where set_id=p_line_rec.arrival_set_id;
4423 
4424 
4425      EXCEPTION
4426        WHEN NO_DATA_FOUND THEN
4427        Null;
4428        When too_many_rows then
4429        Null;
4430       When others then
4431       Null;
4432      END;
4433    END IF;
4434 
4435 
4436 
4437    IF (p_line_rec.ship_set_id is not null) THEN
4438      BEGIN
4439       select set_name
4440       into x_line_val_rec.ship_set
4441       from oe_sets
4442       where set_id=p_line_rec.ship_set_id;
4443 
4444 
4445      EXCEPTION
4446        WHEN NO_DATA_FOUND THEN
4447        Null;
4448        When too_many_rows then
4449        Null;
4450       When others then
4451       Null;
4452      END;
4453    END IF;
4454 
4455 
4456    IF (p_line_rec.commitment_id is not null) THEN
4457      BEGIN
4458       select trx_number
4459       into x_line_val_rec.commitment
4460       from ra_customer_trx
4461       where customer_trx_id=p_line_rec.commitment_id;
4462 
4463 
4464      EXCEPTION
4465        WHEN NO_DATA_FOUND THEN
4466        Null;
4467        When too_many_rows then
4468        Null;
4469       When others then
4470       Null;
4471      END;
4472    END IF;
4473 
4474    -- lkxu, commitment
4475    IF (p_line_rec.payment_level_code is not null) THEN
4476      BEGIN
4477       -- lkxu, commitment enhancement.
4478      select commitment_applied_amount
4479          into x_line_val_rec.commitment_applied_amount
4480      from oe_payments
4481      where payment_trx_id = p_line_rec.payment_commitment_id
4482      and   ((line_id = p_line_rec.line_id
4483             and payment_level_code = 'LINE')
4484            OR (header_id = p_line_rec.header_id
4485               and payment_level_code = 'ORDER'));
4486 
4487 
4488      EXCEPTION
4489        WHEN NO_DATA_FOUND THEN
4490      x_line_val_rec.commitment_applied_amount := 0.0;
4491        When others then
4492       Null;
4493      END;
4494    END IF;
4495 
4496    IF p_line_rec.header_id IS NOT NULL AND
4497       p_line_rec.line_id IS NOT NULL THEN
4498      OE_CHARGE_PVT.Get_Charge_Amount(
4499                          p_api_version_number=>1.0
4500                      ,   p_init_msg_list=>'F'
4501                      ,   p_all_charges=>'F'
4502                      ,   p_header_id=> p_line_rec.header_id
4503                      ,   p_line_id=>p_line_rec.line_id
4504                      ,   x_return_status=>l_return_status
4505                      ,   x_msg_count=>l_msg_count
4506                      ,   x_msg_data=>l_msg_data
4507                      ,   x_charge_amount=>x_line_val_rec.line_charges
4508                      );
4509    END IF;
4510 
4511    IF p_line_rec.header_id IS NOT NULL THEN
4512 
4513        IF p_calling_block = 'LINES_SUMMARY' THEN  --FP 3351788
4514 
4515          IF g_current_header_id <> p_line_rec.header_id THEN
4516 
4517         OE_OE_TOTALS_SUMMARY.Order_Totals
4518                               (
4519                               p_header_id=>p_line_rec.header_id ,
4520                               p_subtotal =>x_line_val_rec.subtotal,
4521                               p_discount =>x_line_val_rec.discount,
4522                               p_charges  =>x_line_val_rec.charges,
4523                               p_tax      =>x_line_val_rec.tax
4524                               );
4525 
4526            --MRG BGN
4527             IF OE_FEATURES_PVT.IS_MARGIN_AVAIL THEN
4528                OE_MARGIN_PVT.Get_Order_Margin(p_header_id=>p_line_rec.header_id,
4529                                    p_org_id => p_line_rec.org_id,
4530                                    x_order_margin_percent=>l_order_margin_percent,
4531                                    x_order_margin_amount=>l_order_margin_amount);
4532 
4533                x_line_val_rec.margin := l_order_margin_amount;
4534                x_line_val_rec.margin_percent := l_order_margin_percent;
4535             END IF;
4536 
4537             --MRG END
4538          END IF;
4539  	    -- for 5331980 start*
4540      ELSIF p_calling_block = 'LINE' THEN
4541 
4542            IF  OE_GLOBALS.G_CALCULATE_LINE_TOTAL THEN
4543 
4544                OE_OE_TOTALS_SUMMARY.Order_Totals
4545                                   (
4546                                   p_header_id=>p_line_rec.header_id ,
4547                                   p_subtotal =>x_line_val_rec.subtotal,
4548                                   p_discount =>x_line_val_rec.discount,
4549                                   p_charges  =>x_line_val_rec.charges,
4550                                   p_tax      =>x_line_val_rec.tax
4551                                   );
4552 
4553                OE_GLOBALS.G_CALCULATE_LINE_TOTAL := FALSE;
4554 
4555                g_subtotal := x_line_val_rec.subtotal;
4556                g_discount := x_line_val_rec.discount;
4557                g_charges  := x_line_val_rec.charges;
4558                g_total_tax := x_line_val_rec.tax;
4559 
4560             ELSE
4561 
4562                 x_line_val_rec.subtotal := g_subtotal;
4563                 x_line_val_rec.discount := g_discount;
4564                 x_line_val_rec.charges  := g_charges;
4565                 x_line_val_rec.tax := g_total_tax;
4566 
4567             END IF;
4568 
4569             IF  OE_FEATURES_PVT.IS_MARGIN_AVAIL THEN
4570                 OE_MARGIN_PVT.Get_Order_Margin(p_header_id=>p_line_rec.header_id,
4571                                    x_order_margin_percent=>l_order_margin_percent,
4572                                    x_order_margin_amount=>l_order_margin_amount);
4573 
4574                 x_line_val_rec.margin := l_order_margin_amount;
4575                 x_line_val_rec.margin_percent := l_order_margin_percent;
4576             END IF;
4577 	    -- for 5331980 end*
4578     ELSE
4579 
4580 
4581              OE_OE_TOTALS_SUMMARY.Order_Totals
4582                                   (
4583                                   p_header_id=>p_line_rec.header_id ,
4584                                   p_subtotal =>x_line_val_rec.subtotal,
4585                                   p_discount =>x_line_val_rec.discount,
4586                                   p_charges  =>x_line_val_rec.charges,
4587                                   p_tax      =>x_line_val_rec.tax
4588                                   );
4589 
4590    --MRG BGN
4591     IF OE_FEATURES_PVT.IS_MARGIN_AVAIL THEN
4592       OE_MARGIN_PVT.Get_Order_Margin(p_header_id=>p_line_rec.header_id,
4593                                    p_org_id => p_line_rec.org_id,
4594                                    x_order_margin_percent=>l_order_margin_percent,
4595                                    x_order_margin_amount=>l_order_margin_amount);
4596 
4597       x_line_val_rec.margin := l_order_margin_amount;
4598       x_line_val_rec.margin_percent := l_order_margin_percent;
4599     END IF;
4600    --MRG END
4601   END IF;
4602    END IF;
4603 
4604    IF   p_line_rec.order_quantity_uom IS NOT NULL AND
4605         p_line_rec.order_quantity_uom='ENR' THEN
4606     BEGIN
4607      select tdb.booking_id, bst.name
4608      into   x_line_val_rec.booking_id,x_line_val_rec.ota_name
4609      from  ota_delegate_bookings tdb,
4610            ota_booking_status_types bst
4611      where tdb.line_id = p_line_rec.line_id
4612      and    bst.booking_status_type_id = tdb.booking_status_type_id;
4613     EXCEPTION
4614      When No_Data_Found THEN
4615       Null;
4616      When TOO_MANY_ROWS THEN
4617       Null;
4618      When Others THEN
4619       Null;
4620     END;
4621    END IF;
4622 
4623    g_current_header_id := p_line_rec.header_id;
4624 
4625     IF p_line_rec.schedule_status_code is not null THEN
4626 
4627         l_sales_order_id :=
4628            OE_ORDER_SCH_UTIL.Get_mtl_sales_order_id(p_line_rec.header_id);
4629         -- INVCONV - SAO MERGED CALLS    FOR OE_LINE_UTIL.Get_Reserved_Quantity and OE_LINE_UTIL.Get_Reserved_Quantity2
4630 
4631              OE_LINE_UTIL.Get_Reserved_Quantities(p_header_id => l_sales_order_id
4632                                               ,p_line_id   => p_line_rec.line_id
4633                                               ,p_org_id    => p_line_rec.ship_from_org_id
4634                                               ,x_reserved_quantity =>  x_line_val_rec.reserved_quantity
4635                                               ,x_reserved_quantity2 => x_line_val_rec.reserved_quantity2
4636                                                                                             );
4637 
4638         /*x_line_val_rec.reserved_quantity :=
4639               OE_LINE_UTIL.Get_Reserved_Quantity
4640                                 (p_header_id => l_sales_order_id
4641                                 ,p_line_id   => p_line_rec.line_id
4642                                , p_org_id => p_line_rec.ship_from_org_id);
4643         x_line_val_rec.reserved_quantity2 :=
4644               OE_LINE_UTIL.Get_Reserved_Quantity2  -- INVCONV
4645                                 (p_header_id => l_sales_order_id
4646                                 ,p_line_id   => p_line_rec.line_id
4647                                , p_org_id => p_line_rec.ship_from_org_id); */
4648 
4649 
4650     END IF;
4651 
4652     IF p_line_rec.line_id IS NOT NULL THEN
4653 
4654      x_line_val_rec.fulfillment_list :=
4655         oe_set_util.get_fulfillment_list(p_line_id => p_line_rec.line_id);
4656     END IF;
4657 
4658    IF p_line_rec.calculate_price_flag IS NOT NULL THEN
4659     BEGIN
4660         SELECT  MEANING
4661         INTO    x_line_val_rec.calculate_price_descr
4662         FROM    OE_LOOKUPS
4663         WHERE   LOOKUP_CODE = p_line_rec.calculate_price_flag
4664         AND     LOOKUP_TYPE = 'CALCULATE_PRICE_FLAG';
4665     EXCEPTION
4666        WHEN NO_DATA_FOUND THEN
4667        Null;
4668        When too_many_rows then
4669        Null;
4670        When others then
4671        Null;
4672     END;
4673    END IF;
4674 
4675    IF p_line_rec.svc_ref_order_number IS NOT NULL
4676    AND p_line_rec.svc_ref_order_type IS NOT NULL  THEN
4677     BEGIN
4678      select /* MOAC_SQL_CHANGE */ header_id  into x_line_val_rec.svc_header_id
4679      from oe_order_headers_all oh,oe_order_types_v ot
4680      where order_number=p_line_rec.svc_ref_order_number
4681      and oh.order_type_id=ot.order_type_id
4682      and ot.name=p_line_rec.svc_ref_order_type;
4683     EXCEPTION
4684      WHEN NO_DATA_FOUND THEN
4685       Null;
4686      WHEN TOO_MANY_ROWS THEN
4687       Null;
4688      WHEN OTHERS THEN
4689       Null;
4690     END;
4691    END IF;
4692 
4693    IF p_line_rec.order_source_id IS NOT NULL AND
4694      p_line_rec.source_document_type_id IS NULL THEN
4695   -- Order Import
4696     Begin
4697     Select name into x_line_val_rec.order_source
4698     from oe_order_sources
4699     where order_source_id=p_line_rec.order_source_id;
4700     Exception
4701     when no_data_found then
4702     null;
4703      when too_many_rows then
4704     null;
4705     when others then
4706      null;
4707     END;
4708    ELSIF p_line_rec.source_document_type_id=2 AND
4709 -- The following is commented for bug#1939079
4710 --  p_line_rec.order_source_id IS NULL AND
4711     p_line_rec.source_document_id IS NOT NULL THEN
4712 -- Copy Orders
4713     Begin
4714     Select name into x_line_val_rec.order_source
4715     from oe_order_sources
4716     where order_source_id=2;
4717 
4718     Select order_number into x_line_val_rec.order_source_ref
4719     from oe_order_headers
4720     where header_id=p_line_rec.source_document_id;
4721 
4722     Select line_number into x_line_val_rec.order_source_line_ref
4723     from oe_order_lines
4724     where line_id=p_line_rec.source_document_line_id;
4725     Exception
4726     when no_data_found then
4727     null;
4728      when too_many_rows then
4729     null;
4730     when others then
4731      null;
4732     END;
4733 
4734    ELSIF p_line_rec.source_document_type_id=10 AND
4735     p_line_rec.order_source_id=10  THEN
4736 -- Internal Orders
4737     Begin
4738     Select name into x_line_val_rec.order_source
4739     from oe_order_sources
4740     where order_source_id=10;
4741 
4742     Exception
4743     when no_data_found then
4744     null;
4745      when too_many_rows then
4746     null;
4747     when others then
4748      null;
4749     END;
4750    ELSIF p_line_rec.source_document_type_id IS NOT NULL
4751         AND p_line_rec.source_document_type_id<>2 THEN
4752 
4753     Begin
4754     Select name into x_line_val_rec.order_source
4755     from oe_order_sources
4756     where order_source_id=p_line_rec.source_document_type_id;
4757 
4758     Exception
4759     when no_data_found then
4760     null;
4761      when too_many_rows then
4762     null;
4763     when others then
4764     null;
4765 
4766     END;
4767    ELSE
4768     Null;
4769    END IF;
4770 
4771    IF p_line_rec.Original_inventory_item_id IS NOT NULL
4772    OR  p_line_rec.original_ordered_item_id  IS NOT NULL THEN
4773     OE_ID_TO_VALUE.Ordered_Item
4774     (p_Item_Identifier_type    => p_line_rec.original_item_identifier_Type
4775     ,p_inventory_item_id       => p_line_rec.original_Inventory_Item_Id
4776     ,p_organization_id         => l_organization_id
4777     ,p_ordered_item_id         => p_line_rec.original_ordered_item_id
4778     ,p_sold_to_org_id          => p_line_rec.sold_to_org_id
4779     ,p_ordered_item            => p_line_rec.original_ordered_item
4780     ,x_ordered_item            => x_line_val_rec.original_ordered_item
4781     ,x_inventory_item          => x_line_val_rec.original_inventory_item);
4782    END IF;
4783 
4784    IF p_line_rec.Original_item_identifier_Type IS NOT NULL THEN
4785     OE_ID_TO_VALUE.item_identifier
4786          (p_Item_Identifier_type   => p_line_rec.Original_item_identifier_Type
4787          ,x_Item_Identifier        => x_line_val_rec.Original_item_type);
4788    END IF;
4789 
4790    IF p_line_rec.item_relationship_type IS NOT NULL THEN
4791     OE_ID_TO_VALUE.item_relationship_type
4792          (p_Item_relationship_type     => p_line_rec.item_relationship_type
4793          ,x_Item_relationship_type_dsp => x_line_val_rec.item_relationship_type_dsp);
4794    END IF;
4795    --Spagadal
4796    IF p_line_rec.blanket_number is not null then
4797                 oe_blanket_util_misc.get_blanketAgrName
4798                               (p_blanket_number   => p_line_rec.blanket_number,
4799                                x_blanket_agr_name => x_line_val_rec.blanket_agreement_name);
4800    END If;
4801 --{ recurring charges
4802  /* IF p_line_rec.charge_periodicity_code IS NOT NULL AND
4803      p_line_rec.charge_periodicity_code <> FND_API.G_MISS_CHAR AND
4804      OE_SYS_PARAMETERS.Value('RECURRING_CHARGES',p_line_rec.org_id) = 'Y' THEN
4805 
4806      SELECT unit_of_measure
4807      INTO   l_charge_periodicity
4808      FROM   MTL_UNITS_OF_MEASURE_VL
4809      WHERE  uom_code = p_line_rec.charge_periodicity_code;
4810      --AND  uom_class = FND_PROFILE.Value('ONT_UOM_CLASS_CHARGE_PERIODICITY');
4811 
4812      x_line_val_rec.charge_periodicity := l_charge_periodicity;
4813 
4814      IF l_debug_level > 0 THEN
4815     OE_DEBUG_PUB.Add ('PCode:'||p_line_rec.charge_periodicity_code,5);
4816         OE_DEBUG_PUB.Add ('Populate value for Charge Periodicity',5);
4817     OE_DEBUG_PUB.Add ('Periodicity='||l_charge_periodicity,3);
4818      END IF;
4819   END IF;
4820  */
4821 -- recurring charges }
4822 
4823 --retro{
4824 
4825 /* Sql statements to get the vaues of Retrobilled price for original lines
4826 and Retrobilled order and Retrobilled line information for retrobill lines.    */
4827 
4828   IF(OE_CODE_CONTROL.Code_Release_Level >= 110510) THEN
4829    IF (p_line_rec.line_id IS NOT NULL AND oe_sys_parameters.value('ENABLE_RETROBILLING',p_line_rec.org_id) = 'Y') THEN
4830         BEGIN
4831            SELECT sum(decode(line_category_code,'RETURN',-1*nvl(unit_selling_price,0),nvl(unit_selling_price,0)))
4832        INTO  l_retrobilled_price_diff
4833        FROM oe_order_lines
4834        WHERE  order_source_id=27 AND
4835               orig_sys_document_ref=to_char(p_line_rec.header_id) AND
4836               orig_sys_line_ref = to_char(p_line_rec.line_id) AND
4837                     retrobill_request_id IS NOT NULL;
4838 
4839            SELECT unit_selling_price
4840            INTO l_unit_selling_price
4841            FROM oe_order_lines_all
4842            WHERE line_id=p_line_rec.line_id;
4843 
4844        IF(l_retrobilled_price_diff IS NOT NULL AND l_unit_selling_price IS NOT NULL) THEN
4845         x_line_val_rec.retrobilled_price := l_unit_selling_price+l_retrobilled_price_diff;
4846            ELSE
4847                 x_line_val_rec.retrobilled_price := null;
4848            END IF;
4849            oe_debug_pub.add( 'RETROBILLED_PRICE: '||x_line_val_rec.retrobilled_price) ;
4850 
4851        IF(p_line_rec.order_source_id=27) THEN
4852            SELECT orig_head.order_number,
4853                   orig_lin.line_number,
4854                   orig_lin.shipment_number,
4855                   orig_lin.option_number,
4856                   orig_lin.component_number,
4857                   orig_lin.service_number
4858            INTO x_line_val_rec.Retro_Order_Number,
4859                 x_line_val_rec.Retro_Line_Number,
4860                 x_line_val_rec.Retro_Shipment_Number,
4861                 x_line_val_rec.Retro_Option_Number,
4862                 x_line_val_rec.Retro_Component_Number,
4863                 x_line_val_rec.Retro_Service_Number
4864        FROM oe_order_headers_all orig_head,
4865                 oe_order_lines_all orig_lin
4866        WHERE line_id =
4867        (
4868             SELECT orig_sys_line_ref
4869             FROM oe_order_lines_all
4870             WHERE line_id=p_line_rec.line_id
4871             and order_source_id=27) AND
4872               orig_head.header_id=orig_lin.header_id;
4873        END IF;
4874 
4875 
4876         EXCEPTION
4877             WHEN NO_DATA_FOUND THEN
4878                 oe_debug_pub.add( 'IN EXCEPTION: ' ||SQLERRM);
4879             WHEN OTHERS THEN
4880                 oe_debug_pub.add( 'IN EXCEPTION: ' ||SQLERRM);
4881         END;
4882    END IF;
4883  END IF;
4884 --retro}
4885 --Macd
4886     IF l_debug_level  > 0 THEN
4887              oe_debug_pub.add(  'MACD configuration_id'||p_line_rec.configuration_id);
4888              oe_debug_pub.add(  'MACD config_rev_nbr'||p_line_rec.config_rev_nbr);
4889              oe_debug_pub.add(  'MACD config_header_id'||p_line_rec.config_header_id);
4890     END IF;
4891    IF  p_line_rec.configuration_id IS NOT NULL THEN
4892  BEGIN
4893   select cz.name
4894       into x_line_val_rec.instance_name
4895   from cz_config_details_v cz
4896   where  cz.config_hdr_id  = p_line_rec.config_header_id
4897   and    cz.config_rev_nbr = p_line_rec.config_rev_nbr
4898   and    cz.config_item_id = p_line_rec.configuration_id;
4899     IF l_debug_level  > 0 THEN
4900              oe_debug_pub.add(  'MACD instance name'||x_line_val_rec.instance_name);
4901     END IF;
4902 
4903  EXCEPTION
4904 
4905   WHEN NO_DATA_FOUND THEN
4906     null;
4907   WHEN TOO_MANY_ROWS THEN
4908     null;
4909   WHEN OTHERS THEN
4910     null;
4911 
4912   END;
4913 
4914  END IF;
4915 
4916   IF  p_line_rec.ib_owner  IS NOT NULL THEN
4917 
4918         BEGIN
4919            select meaning into x_line_val_rec.ib_owner_dsp
4920                from oe_lookups
4921               where
4922               ( lookup_type='ITEM_OWNER' OR lookup_type='ONT_INSTALL_BASE') and lookup_code=p_line_rec.ib_owner;
4923         EXCEPTION
4924 
4925          WHEN NO_DATA_FOUND THEN
4926             null;
4927          WHEN TOO_MANY_ROWS THEN
4928             null;
4929          WHEN OTHERS THEN
4930             null;
4931         END;
4932   END IF;
4933 
4934   IF  p_line_rec.ib_current_location  IS NOT NULL THEN
4935 
4936         BEGIN
4937            select meaning into x_line_val_rec.ib_current_location_dsp
4938                from oe_lookups
4939               where
4940               ( lookup_type='ITEM_CURRENT_LOCATION' OR lookup_type='ONT_INSTALL_BASE')and lookup_code=p_line_rec.ib_current_location;
4941         EXCEPTION
4942 
4943          WHEN NO_DATA_FOUND THEN
4944             null;
4945          WHEN TOO_MANY_ROWS THEN
4946             null;
4947          WHEN OTHERS THEN
4948             null;
4949         END;
4950    END IF;
4951 
4952   IF  p_line_rec.ib_installed_at_location  IS NOT NULL THEN
4953 
4954         BEGIN
4955            select meaning into x_line_val_rec.ib_installed_at_location_dsp
4956                from oe_lookups
4957               where
4958                (lookup_type='ITEM_INSTALL_LOCATION' OR lookup_type='ONT_INSTALL_BASE')and lookup_code=p_line_rec.ib_installed_at_location;
4959         EXCEPTION
4960 
4961          WHEN NO_DATA_FOUND THEN
4962             null;
4963          WHEN TOO_MANY_ROWS THEN
4964             null;
4965          WHEN OTHERS THEN
4966             null;
4967         END;
4968  END IF;
4969 --End OF Macd
4970 --Recurring CHarges
4971 -- Check if recurring Charges is Enabled or not
4972 
4973   IF OE_SYS_PARAMETERS.Value('RECURRING_CHARGES',p_line_rec.org_id)='Y' THEN
4974 
4975    BEGIN
4976 
4977      IF  p_line_rec.charge_periodicity_code  IS NOT NULL THEN
4978 
4979            x_line_val_rec.charge_periodicity_dsp:=OE_ID_TO_VALUE.Charge_periodicity(p_line_rec.charge_periodicity_code);
4980 
4981      END IF;
4982 
4983         EXCEPTION
4984 
4985          WHEN NO_DATA_FOUND THEN
4986             null;
4987          WHEN TOO_MANY_ROWS THEN
4988             null;
4989          WHEN OTHERS THEN
4990             null;
4991    END;
4992 
4993   END IF;
4994   --Customer Acceptance
4995   IF p_line_rec.contingency_id is not null then
4996        OE_ID_TO_VALUE.Get_Contingency_Attributes(
4997                                          p_contingency_id             => p_line_rec.contingency_id
4998                                        , x_contingency_name           => x_line_val_rec.contingency_name
4999                                        , x_contingency_description    => x_line_val_rec.contingency_description
5000                                        , x_expiration_event_attribute => x_line_val_rec.expiration_event_attribute
5001        );
5002        x_line_val_rec.revrec_event := OE_ID_TO_VALUE.Revrec_Event(p_line_rec.revrec_event_code);
5003 
5004   END IF;
5005 
5006   IF p_line_rec.accepted_by is not null THEN
5007        x_line_val_rec.accepted_by_dsp := OE_ID_TO_VALUE.Accepted_By(p_line_rec.accepted_by);
5008   END IF;
5009 
5010 
5011 END POPULATE_CONTROL_FIELDS;
5012 
5013 -- OPM 02/JUN/00 overloaded proc below
5014 
5015 PROCEDURE POPULATE_CONTROL_FIELDS
5016 ( p_line_rec                  IN line_rec_type,
5017 x_line_val_rec OUT NOCOPY line_val_rec_type,
5018    p_calling_block        IN  VARCHAR2,
5019 x_process_controls_rec OUT NOCOPY process_controls_rec_type
5020 
5021 ) IS
5022 
5023 
5024 l_item_rec           OE_Order_Cache.Item_Rec_Type;
5025 --
5026 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5027 --
5028 BEGIN
5029 
5030   POPULATE_CONTROL_FIELDS
5031                      (
5032                      p_line_rec => p_line_rec,
5033                      x_line_val_rec => x_line_val_rec,
5034               p_calling_block => 'LINE'
5035               );
5036 
5037  l_item_rec :=
5038           OE_Order_Cache.Load_Item (p_line_rec.inventory_item_id
5039                                     ,p_line_rec.ship_from_org_id
5040                                     ,p_line_rec.org_id); -- R12.MOAC
5041 
5042  -- x_process_controls_rec.dualum_ind := l_item_rec.dualum_ind; -- INVCONV
5043 -- x_process_controls_rec.grade_ctl  := l_item_rec.grade_ctl;  -- INVCONV
5044  x_process_controls_rec.process_warehouse_flag
5045                                    := l_item_rec.process_warehouse_flag;
5046 x_process_controls_rec.ont_pricing_qty_source := l_item_rec.ont_pricing_qty_source; -- OPM 2046190
5047 x_process_controls_rec.grade_control_flag := l_item_rec.grade_control_flag; -- INCONV
5048 x_process_controls_rec.tracking_quantity_ind := l_item_rec.tracking_quantity_ind; -- INCONV
5049 x_process_controls_rec.secondary_default_ind := l_item_rec.secondary_default_ind; -- INCONV
5050 x_process_controls_rec.lot_divisible_flag := l_item_rec.lot_divisible_flag; -- INCONV
5051 x_process_controls_rec.lot_control_code := l_item_rec.lot_control_code; -- INCONV 4172680
5052 
5053 END POPULATE_CONTROL_FIELDS;
5054 
5055 
5056 FUNCTION Is_Description_Matched
5057 (p_item_identifier_type  IN   VARCHAR2
5058 ,p_ordered_item_id       IN   NUMBER
5059 ,p_inventory_item_id     IN   NUMBER
5060 ,p_ordered_item          IN   VARCHAR2
5061 ,p_sold_to_org_id        IN   NUMBER
5062 ,p_description           IN   VARCHAR2
5063 ) RETURN VARCHAR2 IS
5064 /*l_organization_id NUMBER := fnd_profile.value('OE_ORGANIZATION_ID');*/
5065     -- This change is required since we are dropping the profile OE_ORGANIZATION    -- _ID. Change made by Esha.
5066 l_organization_id Number:= OE_Sys_Parameters.VALUE('MASTER_ORGANIZATION_ID');
5067 l_count   NUMBER := 0;
5068 --
5069 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5070 --
5071 BEGIN
5072 
5073    IF l_debug_level  > 0 THEN
5074        oe_debug_pub.add(  'P_ITEM_IDENTIFIER_TYPE:'||P_ITEM_IDENTIFIER_TYPE ) ;
5075        oe_debug_pub.add(  'P_ORDERED_ITEM_ID: '||P_ORDERED_ITEM_ID ) ;
5076        oe_debug_pub.add(  'P_INVENTORY_ITEM_ID: '||P_INVENTORY_ITEM_ID ) ;
5077        oe_debug_pub.add(  'P_ORDERED_ITEM: '||P_ORDERED_ITEM ) ;
5078        oe_debug_pub.add(  'P_SOLD_TO_ORG_ID: '||P_SOLD_TO_ORG_ID ) ;
5079        oe_debug_pub.add(  'P_DESCRIPTION: '||P_DESCRIPTION ) ;
5080        oe_debug_pub.add(  'L_ORGANIZATION_ID: '||L_ORGANIZATION_ID ) ;
5081    END IF;
5082 
5083    IF NVL(p_item_identifier_type, 'INT') = 'INT' THEN
5084      IF (Instr(p_description, '%') = 0) THEN
5085      IF l_debug_level  > 0 THEN
5086          oe_debug_pub.add(  'ENTERING INT::EXACT MATCH' ) ;
5087      END IF;
5088          SELECT count(*)
5089          INTO  l_count
5090          FROM  mtl_system_items_vl
5091          WHERE inventory_item_id = p_inventory_item_id
5092          AND organization_id = l_organization_id
5093          AND description = p_description;
5094      ELSE
5095      IF l_debug_level  > 0 THEN
5096          oe_debug_pub.add(  'ENTERING INT::PARTIAL' ) ;
5097      END IF;
5098 
5099          SELECT count(*)
5100          INTO  l_count
5101          FROM  mtl_system_items_tl t --3751209
5102          WHERE inventory_item_id = p_inventory_item_id
5103          AND organization_id = l_organization_id
5104          AND description like p_description
5105      AND language= userenv('LANG');
5106      END IF;
5107 
5108    ELSIF NVL(p_item_identifier_type, 'INT') = 'CUST' THEN
5109      IF (Instr(p_description, '%') = 0) THEN
5110      IF l_debug_level  > 0 THEN
5111          oe_debug_pub.add(  'ENTERING CUST::EXACT MATCH' ) ;
5112      END IF;
5113          SELECT count(*)
5114          INTO  l_count
5115          FROM  mtl_customer_items citems
5116               ,mtl_customer_item_xrefs cxref
5117               ,mtl_system_items_vl sitems
5118          WHERE citems.customer_item_id = cxref.customer_item_id
5119            AND cxref.inventory_item_id = sitems.inventory_item_id
5120            AND sitems.inventory_item_id = p_inventory_item_id
5121            AND sitems.organization_id = l_organization_id
5122            AND citems.customer_item_id = p_ordered_item_id
5123            AND citems.customer_id = p_sold_to_org_id
5124            AND nvl(citems.customer_item_desc, sitems.description) = p_description;
5125      ELSE
5126      IF l_debug_level  > 0 THEN
5127          oe_debug_pub.add(  'ENTERING CUST::PARTIAL' ) ;
5128      END IF;
5129          SELECT count(*)
5130          INTO  l_count
5131          FROM  mtl_customer_items citems
5132               ,mtl_customer_item_xrefs cxref
5133               ,mtl_system_items_vl sitems
5134          WHERE citems.customer_item_id = cxref.customer_item_id
5135            AND cxref.inventory_item_id = sitems.inventory_item_id
5136            AND sitems.inventory_item_id = p_inventory_item_id
5137            AND sitems.organization_id = l_organization_id
5138            AND citems.customer_item_id = p_ordered_item_id
5139            AND citems.customer_id = p_sold_to_org_id
5140            AND nvl(citems.customer_item_desc, sitems.description) like p_description;
5141      END IF;
5142    ELSE
5143     IF p_ordered_item_id IS NULL THEN
5144      IF (Instr(p_description, '%') = 0) THEN
5145      IF l_debug_level  > 0 THEN
5146          oe_debug_pub.add(  'ENTERING GENERIC::EXACT MATCH' ) ;
5147      END IF;
5148          SELECT count(*)
5149          INTO  l_count
5150          FROM  mtl_cross_reference_types types
5151              , mtl_cross_references items
5152              , mtl_system_items_vl sitems
5153          WHERE types.cross_reference_type = items.cross_reference_type
5154            AND items.inventory_item_id = sitems.inventory_item_id
5155            AND sitems.inventory_item_id = p_inventory_item_id
5156            AND sitems.organization_id = l_organization_id
5157            AND items.cross_reference_type = p_item_identifier_type
5158            AND items.cross_reference = p_ordered_item
5159            AND nvl(items.description, sitems.description) = p_description;
5160      ELSE
5161      IF l_debug_level  > 0 THEN
5162          oe_debug_pub.add(  'ENTERING GENERIC::PARTIAL' ) ;
5163      END IF;
5164          SELECT count(*)
5165          INTO  l_count
5166          FROM  mtl_cross_reference_types types
5167              , mtl_cross_references items
5168              , mtl_system_items_vl sitems
5169          WHERE types.cross_reference_type = items.cross_reference_type
5170            AND items.inventory_item_id = sitems.inventory_item_id
5171            AND sitems.inventory_item_id = p_inventory_item_id
5172            AND sitems.organization_id = l_organization_id
5173            AND items.cross_reference_type = p_item_identifier_type
5174            AND items.cross_reference = p_ordered_item
5175            AND nvl(items.description, sitems.description) like p_description;
5176      END IF;
5177     END IF;
5178    END IF;
5179 
5180    IF l_count = 0 THEN
5181      IF l_debug_level  > 0 THEN
5182          oe_debug_pub.add(  'NO MATCHES' ) ;
5183      END IF;
5184       RETURN 'N';
5185    ELSE
5186      IF l_debug_level  > 0 THEN
5187          oe_debug_pub.add(  'THERE ARE MATCHES' ) ;
5188      END IF;
5189       RETURN 'Y';
5190    END IF;
5191 
5192 END Is_Description_Matched;
5193 
5194 /* 2913927 - 3348159 start */
5195 
5196 FUNCTION Is_Internal_Item_Matched
5197 (p_item_identifier_type  IN   VARCHAR2
5198 ,p_ordered_item_id       IN   NUMBER
5199 ,p_inventory_item_id     IN   NUMBER
5200 ,p_ordered_item          IN   VARCHAR2
5201 ,p_sold_to_org_id        IN   NUMBER
5202 ,p_inventory_item                  IN   VARCHAR2
5203 ) RETURN VARCHAR2 IS
5204 l_organization_id Number:= OE_Sys_Parameters.VALUE('MASTER_ORGANIZATION_ID');
5205 l_count   NUMBER := 0;
5206 --
5207 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5208 --
5209 BEGIN
5210 
5211 
5212    IF l_debug_level  > 0 THEN
5213 
5214        oe_debug_pub.add(  'P_ITEM_IDENTIFIER_TYPE: '||P_ITEM_IDENTIFIER_TYPE ) ;
5215        oe_debug_pub.add(  'P_ORDERED_ITEM_ID: '||P_ORDERED_ITEM_ID ) ;
5216        oe_debug_pub.add(  'P_INVENTORY_ITEM_ID: '||P_INVENTORY_ITEM_ID ) ;
5217        oe_debug_pub.add(  'P_ORDERED_ITEM: '||P_ORDERED_ITEM ) ;
5218        oe_debug_pub.add(  'P_SOLD_TO_ORG_ID: '||P_SOLD_TO_ORG_ID ) ;
5219        oe_debug_pub.add(  'p_inventory_item: '||p_inventory_item ) ;
5220        oe_debug_pub.add(  'L_ORGANIZATION_ID: '||L_ORGANIZATION_ID ) ;
5221    END IF;
5222 
5223    IF NVL(p_item_identifier_type, 'INT') = 'INT' THEN
5224      IF (Instr(p_inventory_item, '%') = 0) THEN
5225      IF l_debug_level  > 0 THEN
5226          oe_debug_pub.add(  'ENTERING INT::EXACT MATCH' ) ;
5227      END IF;
5228          SELECT count(*)
5229          INTO  l_count
5230          FROM  mtl_system_items_vl
5231          WHERE inventory_item_id = p_inventory_item_id
5232          AND organization_id = l_organization_id
5233          AND concatenated_segments = p_inventory_item;
5234      ELSE
5235      IF l_debug_level  > 0 THEN
5236          oe_debug_pub.add(  'ENTERING INT::PARTIAL' ) ;
5237      END IF;
5238          SELECT count(*)
5239          INTO  l_count
5240          FROM  mtl_system_items_vl
5241          WHERE inventory_item_id = p_inventory_item_id
5242          AND organization_id = l_organization_id
5243          AND concatenated_segments like p_inventory_item;
5244      END IF;
5245 
5246    ELSIF NVL(p_item_identifier_type, 'INT') = 'CUST' THEN
5247      IF (Instr(p_inventory_item, '%') = 0) THEN
5248      IF l_debug_level  > 0 THEN
5249          oe_debug_pub.add(  'ENTERING CUST::EXACT MATCH' ) ;
5250      END IF;
5251          SELECT count(*)
5252          INTO  l_count
5253          FROM  mtl_customer_items citems
5254               ,mtl_customer_item_xrefs cxref
5255               ,mtl_system_items_vl sitems
5256          WHERE citems.customer_item_id = cxref.customer_item_id
5257            AND cxref.inventory_item_id = sitems.inventory_item_id
5258            AND sitems.inventory_item_id = p_inventory_item_id
5259            AND sitems.organization_id = l_organization_id
5260            AND citems.customer_item_id = p_ordered_item_id
5261            AND citems.customer_id = p_sold_to_org_id
5262            AND sitems.concatenated_segments  = p_inventory_item;
5263      ELSE
5264      IF l_debug_level  > 0 THEN
5265          oe_debug_pub.add(  'ENTERING CUST::PARTIAL' ) ;
5266      END IF;
5267          SELECT count(*)
5268          INTO  l_count
5269          FROM  mtl_customer_items citems
5270               ,mtl_customer_item_xrefs cxref
5271               ,mtl_system_items_vl sitems
5272          WHERE citems.customer_item_id = cxref.customer_item_id
5273            AND cxref.inventory_item_id = sitems.inventory_item_id
5274            AND sitems.inventory_item_id = p_inventory_item_id
5275            AND sitems.organization_id = l_organization_id
5276            AND citems.customer_item_id = p_ordered_item_id
5277            AND citems.customer_id = p_sold_to_org_id
5278            AND sitems.concatenated_segments like p_inventory_item;
5279 
5280      END IF;
5281    ELSE
5282     IF p_ordered_item_id IS NULL THEN
5283      IF (Instr(p_inventory_item, '%') = 0) THEN
5284      IF l_debug_level  > 0 THEN
5285          oe_debug_pub.add(  'ENTERING GENERIC::EXACT MATCH' ) ;
5286      END IF;
5287          SELECT count(*)
5288          INTO  l_count
5289          FROM  mtl_cross_reference_types types
5290              , mtl_cross_references items
5291              , mtl_system_items_vl sitems
5292          WHERE types.cross_reference_type = items.cross_reference_type
5293            AND items.inventory_item_id = sitems.inventory_item_id
5294            AND sitems.inventory_item_id = p_inventory_item_id
5295            AND sitems.organization_id = l_organization_id
5296            AND items.cross_reference_type = p_item_identifier_type
5297            AND items.cross_reference = p_ordered_item
5298            AND sitems.concatenated_segments = p_inventory_item;
5299      ELSE
5300      IF l_debug_level  > 0 THEN
5301          oe_debug_pub.add(  'ENTERING GENERIC::PARTIAL' ) ;
5302      END IF;
5303          SELECT count(*)
5304          INTO  l_count
5305          FROM  mtl_cross_reference_types types
5306              , mtl_cross_references items
5307              , mtl_system_items_vl sitems
5308          WHERE types.cross_reference_type = items.cross_reference_type
5309            AND items.inventory_item_id = sitems.inventory_item_id
5310            AND sitems.inventory_item_id = p_inventory_item_id
5311            AND sitems.organization_id = l_organization_id
5312            AND items.cross_reference_type = p_item_identifier_type
5313            AND items.cross_reference = p_ordered_item
5314            AND sitems.concatenated_segments like p_inventory_item;
5315      END IF;
5316     END IF;
5317    END IF;
5318 
5319    IF l_count = 0 THEN
5320      IF l_debug_level  > 0 THEN
5321          oe_debug_pub.add(  'NO MATCHES' ) ;
5322      END IF;
5323       RETURN 'N';
5324    ELSE
5325      IF l_debug_level  > 0 THEN
5326          oe_debug_pub.add(  'THERE ARE MATCHES' ) ;
5327      END IF;
5328       RETURN 'Y';
5329    END IF;
5330 END Is_Internal_Item_Matched;
5331 
5332 /*  2913927 - 3348159 end */
5333 
5334 /*1477598*/
5335 FUNCTION Is_Item_Matched
5336 (p_item_identifier_type  IN   VARCHAR2
5337 ,p_ordered_item_id       IN   NUMBER
5338 ,p_inventory_item_id     IN   NUMBER
5339 ,p_ordered_item          IN   VARCHAR2
5340 ,p_sold_to_org_id        IN   NUMBER
5341 ,p_item                  IN   VARCHAR2
5342 ) RETURN VARCHAR2 IS
5343 l_organization_id Number:= OE_Sys_Parameters.VALUE('MASTER_ORGANIZATION_ID');
5344 l_count   NUMBER := 0;
5345 --
5346 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5347 --
5348 BEGIN
5349 
5350    IF l_debug_level  > 0 THEN
5351        oe_debug_pub.add(  'P_ITEM_IDENTIFIER_TYPE: '||P_ITEM_IDENTIFIER_TYPE ) ;
5352        oe_debug_pub.add(  'P_ORDERED_ITEM_ID: '||P_ORDERED_ITEM_ID ) ;
5353        oe_debug_pub.add(  'P_INVENTORY_ITEM_ID: '||P_INVENTORY_ITEM_ID ) ;
5354        oe_debug_pub.add(  'P_ORDERED_ITEM: '||P_ORDERED_ITEM ) ;
5355        oe_debug_pub.add(  'P_SOLD_TO_ORG_ID: '||P_SOLD_TO_ORG_ID ) ;
5356        oe_debug_pub.add(  'P_ITEM: '||P_ITEM ) ;
5357        oe_debug_pub.add(  'L_ORGANIZATION_ID: '||L_ORGANIZATION_ID ) ;
5358    END IF;
5359 
5360    IF NVL(p_item_identifier_type, 'INT') = 'INT' THEN
5361      IF (Instr(p_item, '%') = 0) THEN
5362      IF l_debug_level  > 0 THEN
5363          oe_debug_pub.add(  'ENTERING INT::EXACT MATCH' ) ;
5364      END IF;
5365          SELECT count(*)
5366          INTO  l_count
5367          FROM  mtl_system_items_vl
5368          WHERE inventory_item_id = p_inventory_item_id
5369          AND organization_id = l_organization_id
5370          AND concatenated_segments = p_item;
5371      ELSE
5372      IF l_debug_level  > 0 THEN
5373          oe_debug_pub.add(  'ENTERING INT::PARTIAL' ) ;
5374      END IF;
5375          SELECT count(*)
5376          INTO  l_count
5377          FROM  mtl_system_items_vl
5378          WHERE inventory_item_id = p_inventory_item_id
5379          AND organization_id = l_organization_id
5380          AND concatenated_segments like p_item;
5381      END IF;
5382 
5383    ELSIF NVL(p_item_identifier_type, 'INT') = 'CUST' THEN
5384      IF (Instr(p_item, '%') = 0) THEN
5385      IF l_debug_level  > 0 THEN
5386          oe_debug_pub.add(  'ENTERING CUST::EXACT MATCH' ) ;
5387      END IF;
5388          SELECT count(*)
5389          INTO  l_count
5390          FROM  mtl_customer_items citems
5391               ,mtl_customer_item_xrefs cxref
5392               ,mtl_system_items_vl sitems
5393          WHERE citems.customer_item_id = cxref.customer_item_id
5394            AND cxref.inventory_item_id = sitems.inventory_item_id
5395            AND sitems.inventory_item_id = p_inventory_item_id
5396            AND sitems.organization_id = l_organization_id
5397            AND citems.customer_item_id = p_ordered_item_id
5398            AND citems.customer_id = p_sold_to_org_id
5399            AND nvl(citems.customer_item_number, sitems.concatenated_segments) =p_item;
5400      ELSE
5401      IF l_debug_level  > 0 THEN
5402          oe_debug_pub.add(  'ENTERING CUST::PARTIAL' ) ;
5403      END IF;
5404          SELECT count(*)
5405          INTO  l_count
5406          FROM  mtl_customer_items citems
5407               ,mtl_customer_item_xrefs cxref
5408               ,mtl_system_items_vl sitems
5409          WHERE citems.customer_item_id = cxref.customer_item_id
5410            AND cxref.inventory_item_id = sitems.inventory_item_id
5411            AND sitems.inventory_item_id = p_inventory_item_id
5412            AND sitems.organization_id = l_organization_id
5413            AND citems.customer_item_id = p_ordered_item_id
5414            AND citems.customer_id = p_sold_to_org_id
5415            AND nvl(citems.customer_item_number, sitems.concatenated_segments) like  p_item;
5416      END IF;
5417    ELSE
5418     IF p_ordered_item_id IS NULL THEN
5419      IF (Instr(p_item, '%') = 0) THEN
5420      IF l_debug_level  > 0 THEN
5421          oe_debug_pub.add(  'ENTERING GENERIC::EXACT MATCH' ) ;
5422      END IF;
5423          SELECT count(*)
5424          INTO  l_count
5425          FROM  mtl_cross_reference_types types
5426              , mtl_cross_references items
5427              , mtl_system_items_vl sitems
5428          WHERE types.cross_reference_type = items.cross_reference_type
5429            AND items.inventory_item_id = sitems.inventory_item_id
5430            AND sitems.inventory_item_id = p_inventory_item_id
5431            AND sitems.organization_id = l_organization_id
5432            AND items.cross_reference_type = p_item_identifier_type
5433            AND items.cross_reference = p_ordered_item
5434            AND nvl(items.cross_reference, sitems.concatenated_segments) = p_item;
5435      ELSE
5436      IF l_debug_level  > 0 THEN
5437          oe_debug_pub.add(  'ENTERING GENERIC::PARTIAL' ) ;
5438      END IF;
5439          SELECT count(*)
5440          INTO  l_count
5441          FROM  mtl_cross_reference_types types
5442              , mtl_cross_references items
5443              , mtl_system_items_vl sitems
5444          WHERE types.cross_reference_type = items.cross_reference_type
5445            AND items.inventory_item_id = sitems.inventory_item_id
5446            AND sitems.inventory_item_id = p_inventory_item_id
5447            AND sitems.organization_id = l_organization_id
5448            AND items.cross_reference_type = p_item_identifier_type
5449            AND items.cross_reference = p_ordered_item
5450            AND nvl(items.cross_reference, sitems.concatenated_segments) like p_item;
5451      END IF;
5452     END IF;
5453    END IF;
5454 
5455    IF l_count = 0 THEN
5456      IF l_debug_level  > 0 THEN
5457          oe_debug_pub.add(  'NO MATCHES' ) ;
5458      END IF;
5459       RETURN 'N';
5460    ELSE
5461      IF l_debug_level  > 0 THEN
5462          oe_debug_pub.add(  'THERE ARE MATCHES' ) ;
5463      END IF;
5464       RETURN 'Y';
5465    END IF;
5466 END Is_Item_Matched;
5467 /*1477598*/
5468 
5469 PROCEDURE SPLIT_LINE
5470 (
5471 p_split_by      IN  VARCHAR2 DEFAULT null
5472 ,x_line_tbl_type IN  split_line_tbl_type
5473 ,p_change_reason_code IN VARCHAR2 DEFAULT NULL
5474 ,p_change_comments IN VARCHAR2 DEFAULT NULL
5475 ,x_return_status OUT NOCOPY VARCHAR2
5476 ,x_msg_count OUT NOCOPY NUMBER
5477 ,x_msg_data OUT NOCOPY VARCHAR2
5478  ) IS
5479 
5480  i                             NUMBER;
5481  l_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
5482  l_x_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
5483  l_line_rec                    OE_Order_PUB.Line_Rec_Type;
5484  l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
5485  l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
5486  l_x_Header_Scredit_tbl        OE_Order_PUB.Header_Scredit_Tbl_Type;
5487  l_x_Line_Adj_tbl              OE_Order_PUB.Line_Adj_Tbl_Type;
5488  l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
5489  l_x_Action_Request_tbl        OE_Order_PUB.Request_Tbl_Type;
5490  l_x_Lot_Serial_Tbl            OE_Order_PUB.Lot_Serial_Tbl_Type;
5491  l_x_Header_price_Att_tbl      OE_Order_PUB.Header_Price_Att_Tbl_Type;
5492  l_x_Header_Adj_Att_tbl        OE_Order_PUB.Header_Adj_Att_Tbl_Type;
5493  l_x_Header_Adj_Assoc_tbl      OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
5494  l_x_Line_price_Att_tbl        OE_Order_PUB.Line_Price_Att_Tbl_Type;
5495  l_x_Line_Adj_Att_tbl          OE_Order_PUB.Line_Adj_Att_Tbl_Type;
5496  l_x_Line_Adj_Assoc_tbl        OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
5497  l_control_rec                 OE_GLOBALS.Control_Rec_Type;
5498  l_return_status               VARCHAR2(1);
5499  l_line_id                     NUMBER;
5500  l_process_add_attributes      Boolean :=FALSE;
5501  j                             NUMBER;    --   for bug 1988144
5502  k                             NUMBER;    --   for bug 1988144
5503  l_rec_count                   NUMBER;    --   for bug 1988144
5504 --serla begin
5505 l_x_Header_Payment_tbl        OE_Order_PUB.Header_Payment_Tbl_Type;
5506 l_x_Line_Payment_tbl          OE_Order_PUB.Line_Payment_Tbl_Type;
5507 --serla end
5508 --
5509 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5510 --
5511 BEGIN
5512 
5513 IF l_debug_level  > 0 THEN
5514    oe_debug_pub.add(  'LINE CONTROLLER - IN SPLIT ' , 1 ) ;
5515 END IF;
5516 
5517 /*  l_control_rec.controlled_operation := TRUE;
5518   l_control_rec.validate_entity      := TRUE;
5519   l_control_rec.write_to_DB          := TRUE;
5520 
5521   l_control_rec.default_attributes   := FALSE;
5522   l_control_rec.change_attributes    := FALSE;
5523   l_control_rec.process              := FALSE;
5524 
5525   l_control_rec.clear_api_cache      := FALSE;
5526   l_control_rec.clear_api_requests   := FALSE;   */
5527 
5528 --  OE_GLOBALS.G_UI_FLAG := TRUE;  -- FP bug#6968460 (for bug#5727279): reverting the fix done in bug#4751632
5529 
5530 IF x_line_tbl_type.count>0 THEN
5531    for i in  x_line_tbl_type.first .. x_line_tbl_type.last loop
5532        IF i  =1 THEN
5533            IF x_line_tbl_type(i).line_id is not null THEN
5534            l_line_id:=x_line_tbl_type(i).line_id;
5535            IF l_debug_level  > 0 THEN
5536           oe_debug_pub.add(  'LINE CONTROLLER - BEFORE GET LINE'|| X_LINE_TBL_TYPE ( I ) .LINE_ID , 1 ) ;
5537            END IF;
5538                --    l_x_line_tbl(i):=OE_ORDER_PUB.G_MISS_LINE_REC;
5539                /*       Get_line
5540                (   p_db_record       => FALSE
5541                   ,p_line_id         => x_line_tbl_type(i).line_id
5542                  ,x_line_rec        => l_x_line_tbl(i));  */
5543                l_x_line_tbl(i).line_id:=x_line_tbl_type(i).line_id;
5544                OE_Line_Util.Lock_Row
5545                ( x_return_status         => l_return_status
5546                , p_x_line_rec            => l_x_line_tbl(i)
5547                , p_line_id               => x_line_tbl_type(i).line_id);
5548 
5549                IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5550                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5551                ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5552                    RAISE FND_API.G_EXC_ERROR;
5553                END IF;
5554 
5555                IF l_debug_level  > 0 THEN
5556                    oe_debug_pub.add(  'LINE CONTROLLER - AFTER GET LINE ' , 1 ) ;
5557                END IF;
5558            END IF;
5559        l_x_line_tbl(i).line_id:=x_line_tbl_type(i).line_id;
5560        l_x_line_tbl(i).split_action_code:='SPLIT';
5561            --SAO
5562            IF p_split_by = 'SCHEDULER' THEN
5563               l_x_line_tbl(i).split_by:='SYSTEM';
5564            ELSE
5565               l_x_line_tbl(i).split_by:='USER';
5566            END IF;
5567        l_x_line_tbl(i).operation:= OE_GLOBALS.G_OPR_UPDATE;
5568            IF l_debug_level > 0 THEN
5569               OE_DEBUG_PUB.add('Audit Trail Reason Code being passed as '||p_change_reason_code,1);
5570            END IF;
5571            l_x_line_tbl(i).change_reason := p_change_reason_code;
5572            l_x_line_tbl(i).change_comments := p_change_comments;
5573            -- Bug# 4008409
5574            -- Pass ship_from_org_id for the update line since the Dual UOM control for the item can be different
5575            l_x_line_tbl(i).ship_from_org_id := x_line_tbl_type(i).ship_from_org_id;
5576       ELSE
5577            IF l_line_id is not null then
5578           l_x_line_tbl(i).split_from_line_id:=l_line_id;
5579        END IF;
5580        l_x_line_tbl(i).operation:= OE_GLOBALS.G_OPR_CREATE;
5581 --SAO
5582          IF p_split_by = 'SCHEDULER' THEN
5583            l_x_line_tbl(i).split_by:='SYSTEM';
5584          ELSE
5585            l_x_line_tbl(i).split_by := 'USER'; -- for bug 2211261
5586          END IF;
5587     END IF;
5588     l_x_line_tbl(i).ordered_quantity:= x_line_tbl_type(i).ordered_quantity;
5589     /* OPM - NC 3/8/02 Bug#2046641 */
5590     l_x_line_tbl(i).ordered_quantity2:= x_line_tbl_type(i).ordered_quantity2;
5591    end loop;
5592 
5593     IF l_debug_level  > 0 THEN
5594         oe_debug_pub.add(  'LINE CONTROLLER - IN SPLIT - CALLING PROCESS' , 1 ) ;
5595     END IF;
5596 
5597    Oe_Order_Pvt.Process_order
5598     (   p_api_version_number          => 1.0
5599     ,   p_init_msg_list               => FND_API.G_TRUE
5600     ,   x_return_status               => l_return_status
5601     ,   x_msg_count                   => x_msg_count
5602     ,   x_msg_data                    => x_msg_data
5603     ,   p_control_rec                 => l_control_rec
5604     ,   p_x_header_rec                  => l_x_header_rec
5605     ,   p_x_Header_Adj_tbl              => l_x_Header_Adj_tbl
5606     ,   p_x_header_price_att_tbl        => l_x_header_price_att_tbl
5607     ,   p_x_Header_Adj_att_tbl          => l_x_Header_Adj_att_tbl
5608     ,   p_x_Header_Adj_Assoc_tbl        => l_x_Header_Adj_Assoc_tbl
5609     ,   p_x_Header_Scredit_tbl          => l_x_Header_Scredit_tbl
5610 --serla begin
5611     ,   p_x_Header_Payment_tbl          => l_x_Header_Payment_tbl
5612 --serla end
5613     ,   p_x_line_tbl                    => l_x_line_tbl
5614     ,   p_x_Line_Adj_tbl                => l_x_Line_Adj_tbl
5615     ,   p_x_Line_Price_att_tbl          => l_x_Line_Price_att_tbl
5616     ,   p_x_Line_Adj_att_tbl            => l_x_Line_Adj_att_tbl
5617     ,   p_x_Line_Adj_Assoc_tbl          => l_x_Line_Adj_Assoc_tbl
5618     ,   p_x_Line_Scredit_tbl            => l_x_Line_Scredit_tbl
5619 --serla begin
5620     ,   p_x_Line_Payment_tbl            => l_x_Line_Payment_tbl
5621 --serla end
5622     ,   p_x_action_request_tbl          => l_x_Action_Request_tbl
5623     ,   p_x_lot_serial_tbl              => l_x_lot_serial_tbl
5624 
5625     );
5626 
5627   END IF;
5628     IF l_debug_level  > 0 THEN
5629         oe_debug_pub.add(  'LINE CONTROLLER - IN SPLIT - AFTER CALLING PROCESS' , 1 ) ;
5630     END IF;
5631 
5632    IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5633      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5634    ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5635      RAISE FND_API.G_EXC_ERROR;
5636    END IF;
5637 
5638 
5639    IF l_x_line_tbl.count>0 THEN
5640     l_line_tbl.delete;
5641      FOR i in  x_line_tbl_type.first .. x_line_tbl_type.last LOOP
5642         l_line_tbl(i):=OE_ORDER_PUB.G_MISS_LINE_REC;
5643         IF x_line_tbl_type(i).ship_to_org_id is not null THEN
5644         IF nvl(l_x_line_tbl(i).ship_to_org_id,-1)<>nvl(x_line_tbl_type(i).ship_to_org_id,-1)  THEN
5645               l_line_tbl(i).ship_to_org_id:=x_line_tbl_type(i).ship_to_org_id;
5646               l_process_add_attributes:=TRUE;
5647             END IF;
5648         END IF;
5649 
5650         IF x_line_tbl_type(i).request_date is not null THEN
5651           IF nvl(l_x_line_tbl(i).request_date,sysdate)<> nvl(x_line_tbl_type(i).request_date,sysdate)  THEN
5652             l_line_tbl(i).request_date:=x_line_tbl_type(i).request_date;
5653             l_process_add_attributes:=TRUE;
5654            END IF;
5655         END IF;
5656 
5657      -- This is to fix a p1 bug on tst115. The second call should not
5658      -- come as split
5659       l_line_tbl(i).operation:= OE_GLOBALS.G_OPR_UPDATE;
5660       IF l_debug_level > 0 THEN
5661          OE_DEBUG_PUB.add('Reason code being passed : '||l_line_tbl(i).change_reason,1);
5662       END IF;
5663       l_line_tbl(i).change_reason := p_change_reason_code;
5664       l_line_tbl(i).change_comments := p_change_comments;
5665       l_line_tbl(i).split_action_code:=fnd_api.g_miss_char;
5666       l_line_tbl(i).line_id:=l_x_line_tbl(i).line_id;
5667       l_line_tbl(i).header_id:=l_x_line_tbl(i).header_id;
5668 
5669       IF x_line_tbl_type(i).ship_from_org_id is not null THEN
5670       IF nvl(l_x_line_tbl(i).ship_from_org_id,-1)<>nvl(x_line_tbl_type(i).ship_from_org_id,-1)  THEN
5671               l_line_tbl(i).ship_from_org_id:=x_line_tbl_type(i).ship_from_org_id;
5672               -- ship_from_org_id is changed during split, null OUT subinventory
5673               l_line_tbl(i).subinventory:= null;
5674               -- Bug# 4008409
5675               -- pass the ordered_quantity2 which is entered in the split window
5676               l_line_tbl(i).ordered_quantity2 := x_line_tbl_type(i).ordered_quantity2;
5677               l_process_add_attributes:=TRUE;
5678           END IF;
5679       END IF;
5680 
5681 --      l_line_tbl(i):=l_x_line_tbl(i);
5682      END LOOP;
5683 
5684 /* Extra loop being handled so as to deal with the service lines */
5685 /* for bug 1988144, added by dbuduru */
5686 
5687 -- At this point l_line_tbl contains the order line that was split as well as the
5688 -- the order lines that are  created as a result of the split. Prior to this modification
5689 -- only these records were being passed to the Process Order API ( second call ) and there
5690 -- is no code in the Process Order API that would update the service lines if split attributes
5691 -- are modified in the order lines to which they refer to.
5692 --
5693 -- In order to make the Process Order API handle the service lines, the service lines are
5694 -- explicitly being bundled with the order lines in the l_line_tbl. The Following loop
5695 -- takes care of that. The loop is coded taking Models, standard items and kits into consideration
5696 --
5697 -- Local variables j, k, l_rec_count have been added. The variables j, k
5698 -- are  used as a loop indices
5699 -- and l_rec_count is used to work on the l_line_tbl.
5700 --
5701 -- l_line_id would contain the line_id of the line to which the service line is attached
5702 -- to or the top_most_line_id if the line to which its attached to is a part of a Model.
5703 -- This is done because splitting happens at the top most level.
5704 
5705   l_rec_count := l_line_tbl.last + 1;
5706 
5707   FOR i in  l_x_line_tbl.first .. l_x_line_tbl.last LOOP
5708     IF l_x_line_tbl(i).item_type_code = 'SERVICE' THEN
5709 
5710       l_line_tbl(l_rec_count) := OE_ORDER_PUB.G_MISS_LINE_REC;
5711 
5712       FOR j in  l_x_line_tbl.first .. l_x_line_tbl.last LOOP
5713         IF l_x_line_tbl(i).service_reference_line_id = l_x_line_tbl(j).line_id THEN
5714           l_line_id :=  nvl( l_x_line_tbl(j).top_model_line_id, l_x_line_tbl(j).line_id );
5715           EXIT;
5716         END IF; -- service_Ref_line = line_id
5717       END LOOP;  -- loop on l_x_line_tbl
5718 
5719       FOR k in x_line_tbl_type.first .. x_line_tbl_type.last LOOP
5720         IF l_line_id = l_x_line_tbl(k).line_id THEN
5721           IF x_line_tbl_type(k).ship_to_org_id is not null THEN
5722             IF nvl(l_x_line_tbl(i).ship_to_org_id,-1)<>nvl(x_line_tbl_type(k).ship_to_org_id,-1)  THEN
5723               l_line_tbl(l_rec_count).ship_to_org_id := x_line_tbl_type(k).ship_to_org_id;
5724               l_process_add_attributes:=TRUE;
5725             END IF; -- if ship_to_changed
5726           END IF; -- ship_to not null
5727 
5728       -- Code added for bug 2216899
5729 
5730       IF x_line_tbl_type(k).ship_from_org_id is not null THEN
5731             IF nvl(l_x_line_tbl(i).ship_from_org_id,-1)<>nvl(x_line_tbl_type(k).ship_from_org_id,-1)  THEN
5732           l_line_tbl(l_rec_count).ship_from_org_id := x_line_tbl_type(k).ship_from_org_id;
5733           l_line_tbl(l_rec_count).subinventory := null;
5734               l_process_add_attributes:=TRUE;
5735             END IF; -- if ship_from_changed
5736           END IF; -- ship_from not null
5737 
5738       -- end 2216899
5739 
5740           IF x_line_tbl_type(k).request_date is not null THEN
5741             IF nvl(l_x_line_tbl(i).request_date,sysdate)<> nvl(x_line_tbl_type(k).request_date,sysdate) THEN
5742               l_line_tbl(l_rec_count).request_date := x_line_tbl_type(k).request_date;
5743               l_process_add_attributes:=TRUE;
5744             END IF;
5745           END IF;
5746 
5747           l_line_tbl(l_rec_count).operation := OE_GLOBALS.G_OPR_UPDATE;
5748           IF l_debug_level > 0 THEN
5749              OE_DEBUG_PUB.add('Reason code being passed : '||l_line_tbl(l_rec_count).change_reason,1);
5750           END IF;
5751           l_line_tbl(l_rec_count).change_reason := p_change_reason_code;
5752           l_line_tbl(l_rec_count).change_comments := p_change_comments;
5753           l_line_tbl(l_rec_count).split_action_code := fnd_api.g_miss_char;
5754           l_line_tbl(l_rec_count).line_id := l_x_line_tbl(i).line_id;
5755           l_line_tbl(l_rec_count).header_id := l_x_line_tbl(i).header_id;
5756 
5757           l_rec_count := l_rec_count + 1;
5758           EXIT;
5759         END IF;  -- if l_line_id matches a line_id in x_line_tbl_type
5760       END LOOP;  -- loop on index k
5761     END IF;  -- If item_type_code = 'SERVICE'
5762   END LOOP; -- First For Loop
5763 
5764 /* end of 1988144 */
5765 /* this l_line_tbl is passed to the process Order API */
5766 
5767 
5768      l_x_Header_Adj_tbl.delete;
5769      l_x_header_price_att_tbl.delete;
5770      l_x_Header_Adj_att_tbl.delete;
5771      l_x_Header_Adj_Assoc_tbl.delete;
5772      l_x_Header_Scredit_tbl.delete;
5773      l_x_Line_Adj_tbl.delete;
5774      l_x_Line_Price_att_tbl.delete;
5775      l_x_Line_Adj_att_tbl.delete;
5776      l_x_Line_Adj_Assoc_tbl.delete;
5777      l_x_Line_Scredit_tbl.delete;
5778      l_x_lot_serial_tbl.delete;
5779 
5780 
5781      IF  l_process_add_attributes THEN
5782       Oe_Order_Pvt.Process_order
5783        (   p_api_version_number          => 1.0
5784         ,   p_init_msg_list               => FND_API.G_TRUE
5785         ,   x_return_status               => l_return_status
5786         ,   x_msg_count                   => x_msg_count
5787         ,   x_msg_data                    => x_msg_data
5788         ,   p_control_rec                 => l_control_rec
5789         ,   p_x_line_tbl                    => l_line_tbl
5790         ,   p_x_header_rec                  => l_x_header_rec
5791         ,   p_x_Header_Adj_tbl              => l_x_Header_Adj_tbl
5792         ,   p_x_header_price_att_tbl        => l_x_header_price_att_tbl
5793         ,   p_x_Header_Adj_att_tbl          => l_x_Header_Adj_att_tbl
5794         ,   p_x_Header_Adj_Assoc_tbl        => l_x_Header_Adj_Assoc_tbl
5795         ,   p_x_Header_Scredit_tbl          => l_x_Header_Scredit_tbl
5796 --serla begin
5797         ,   p_x_Header_Payment_tbl          => l_x_Header_Payment_tbl
5798 --serla end
5799         ,   p_x_Line_Adj_tbl                => l_x_Line_Adj_tbl
5800         ,   p_x_Line_Price_att_tbl          => l_x_Line_Price_att_tbl
5801         ,   p_x_Line_Adj_att_tbl            => l_x_Line_Adj_att_tbl
5802         ,   p_x_Line_Adj_Assoc_tbl          => l_x_Line_Adj_Assoc_tbl
5803         ,   p_x_Line_Scredit_tbl            => l_x_Line_Scredit_tbl
5804 --serla begin
5805         ,   p_x_Line_Payment_tbl            => l_x_Line_Payment_tbl
5806 --serla end
5807         ,   p_x_action_request_tbl          => l_x_Action_Request_tbl
5808         ,   p_x_lot_serial_tbl              => l_x_lot_serial_tbl
5809 
5810         );
5811 
5812 
5813      END IF;
5814      IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
5815        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5816      ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
5817        RAISE FND_API.G_EXC_ERROR;
5818      END IF;
5819 
5820    END IF;
5821    x_return_status := FND_API.G_RET_STS_SUCCESS;
5822 
5823     --  Get message count and data
5824 
5825     oe_msg_pub.count_and_get
5826     (   p_count                       => x_msg_count
5827     ,   p_data                        => x_msg_data
5828     );
5829 
5830 EXCEPTION
5831 
5832     WHEN FND_API.G_EXC_ERROR THEN
5833 
5834         x_return_status := FND_API.G_RET_STS_ERROR;
5835 
5836         --  Get message count and data
5837 
5838         oe_msg_pub.count_and_get
5839         (   p_count                       => x_msg_count
5840         ,   p_data                        => x_msg_data
5841         );
5842 
5843     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5844 
5845         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
5846 
5847         --  Get message count and data
5848 
5849         oe_msg_pub.count_and_get
5850         (   p_count                       => x_msg_count
5851         ,   p_data                        => x_msg_data
5852         );
5853 
5854     WHEN OTHERS THEN
5855 
5856         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
5857 
5858         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
5859         THEN
5860             oe_msg_pub.Add_Exc_Msg
5861             (   G_PKG_NAME
5862             ,   'Split Lines'
5863             );
5864         END IF;
5865 
5866         --  Get message count and data
5867 
5868         oe_msg_pub.count_and_get
5869         (   p_count                       => x_msg_count
5870         ,   p_data                        => x_msg_data
5871         );
5872 
5873 END SPLIT_LINE;
5874 
5875 -- This procedure will be called from the client when the user
5876 -- clears a record
5877 Procedure Clear_Record
5878 ( x_return_status OUT NOCOPY VARCHAR2
5879 , x_msg_count OUT NOCOPY NUMBER
5880 , x_msg_data OUT NOCOPY VARCHAR2
5881 ,   p_line_id                     IN  NUMBER
5882 )
5883 IS
5884 l_return_status                     Varchar2(30);
5885 l_count_to_keep			    NUMBER;
5886 --
5887 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
5888 --
5889 /* l_new_line_rec     OE_Order_PUB.Line_Rec_Type; --3445778
5890  l_old_line_rec     OE_Order_PUB.Line_Rec_Type; --3445778
5891  l_index            NUMBER;  --3445778 */
5892  l_header_id        NUMBER;
5893 BEGIN
5894     OE_MSG_PUB.initialize;
5895     x_return_status := FND_API.G_RET_STS_SUCCESS;
5896 
5897      -- Bug 3800577
5898      -- Clear versioning globals if request was not logged. If request was
5899      -- logged, that indicates that a change on another record had logged the
5900      -- request and versioning should still fire.
5901 
5902      IF OE_GLOBALS.G_ROLL_VERSION <> 'N' THEN
5903 
5904         l_header_id := g_line_rec.header_id;
5905 
5906         if l_debug_level > 0 then
5907         oe_debug_pub.add('Roll version global is set');
5908         oe_debug_pub.add('Header ID: '||l_header_id);
5909         end if;
5910 
5911         IF NOT OE_Delayed_Requests_Pvt.Check_For_Request
5912                                 (p_entity_code => OE_GLOBALS.G_ENTITY_ALL
5913                                 ,p_entity_id => l_header_id
5914                                 ,p_request_type => OE_GLOBALS.G_VERSION_AUDIT
5915                                 )
5916         THEN
5917            oe_debug_pub.add('Request does not exist, reset versioning globals');
5918            IF (NOT OE_Versioning_Util.Reset_Globals) THEN
5919                l_return_status := FND_API.G_RET_STS_ERROR;
5920                RETURN;
5921            END IF;
5922         END IF;
5923 
5924      END IF;
5925 
5926     OE_DELAYED_REQUESTS_PVT.Delete_Reqs_for_Deleted_Entity(
5927                          p_entity_code  => OE_GLOBALS.G_ENTITY_LINE
5928                          ,p_entity_id    => p_line_id
5929                          -- Bug 3800577
5930                          -- Also delete requests logged by this entity
5931                          ,p_delete_against => FALSE
5932                          ,x_return_status => l_return_status);
5933 
5934 /*    -- Added for bug 3445778 --Commenting the code for 3575018
5935     oe_debug_pub.add('Executing code for updating global picture, line_id: ' || p_line_id, 1);
5936 
5937     -- Set the operation on the record so that globals are updated
5938      l_new_line_rec.operation := OE_GLOBALS.G_OPR_DELETE;
5939      l_new_line_rec.line_id := p_line_id;
5940      l_old_line_rec.line_id := p_line_id;
5941 
5942       OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
5943                     p_line_rec => l_new_line_rec,
5944                     p_line_id => p_line_id,
5945                     p_old_line_rec => l_old_line_rec,
5946                     x_index => l_index,
5947                     x_return_status => l_return_status);
5948 
5949     -- End of 3445778 */
5950 
5951     --bug#3947584
5952    --Calling procedure to remove fulfillment set info for the record
5953 
5954 --bug # 6059554--
5955    --Before calling procedure OE_Set_Util.Remove_From_Fulfilment to remove the fulfillment information,
5956    --check whether Order line exists in oe_order_lines_all or not.If it does
5957    --not exists then only Call OE_Set_Util.Remove_From_Fulfilment to remove the fulfillment set information for the
5958    --line otherwise we will not remove the fulfillment information from line.
5959 
5960     select count(1) into l_count_to_keep
5961     from oe_order_lines_all
5962     where line_id=p_line_id;
5963 
5964     if l_count_to_keep = 0 then
5965 
5966          OE_Set_Util.Remove_From_Fulfillment(p_line_id => p_line_id);
5967 
5968     end if;
5969 
5970 --Close for bug #6059554--
5971 
5972 
5973     OE_MSG_PUB.Count_And_Get
5974       (   p_count                       => x_msg_count
5975         ,   p_data                        => x_msg_data
5976        );
5977 
5978 
5979    -- Clear the controller cache, so that it will not be used for
5980    -- next operation on same record
5981 
5982     Clear_line;
5983 
5984 EXCEPTION
5985     WHEN OTHERS THEN
5986         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
5987         THEN
5988             OE_MSG_PUB.Add_Exc_Msg
5989             (   G_PKG_NAME
5990             ,   'Clear_Record'
5991             );
5992         END IF;
5993         --  Get message count and data
5994         OE_MSG_PUB.Count_And_Get
5995         (   p_count                       => x_msg_count
5996         ,   p_data                        => x_msg_data
5997         );
5998         x_return_status := FND_API.G_RET_STS_ERROR;
5999 
6000 END Clear_Record;
6001 
6002 FUNCTION Get_Date_Type
6003 ( p_header_id      IN NUMBER)
6004 RETURN VARCHAR2
6005 IS
6006 l_order_date_type_code   VARCHAR2(30) := null;
6007 --
6008 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6009 --
6010 BEGIN
6011 
6012   SELECT order_date_type_code
6013   INTO   l_order_date_type_code
6014   FROM   oe_order_headers
6015   WHERE  header_id = p_header_id;
6016 
6017   RETURN l_order_date_type_code;
6018 
6019 
6020 EXCEPTION
6021   WHEN NO_DATA_FOUND THEN
6022         RETURN NULL;
6023   WHEN OTHERS THEN
6024        RETURN null;
6025 END Get_Date_Type;
6026 
6027 PROCEDURE Ship_To_Customer_Id(
6028                               p_ship_to_org_id IN Number,
6029 x_ship_to_Customer_id OUT NOCOPY Number
6030                               ) IS
6031 l_site_use_code VARCHAR2(30);
6032 
6033 --
6034 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6035 --
6036 BEGIN
6037     l_site_use_code := 'SHIP_TO';
6038 
6039            SELECT  /* MOAC_SQL_CHANGE */ cas.cust_account_id
6040         INTO    x_ship_to_customer_id
6041         FROM    HZ_CUST_SITE_USES_ALL site,
6042                 HZ_CUST_ACCT_SITES_ALL cas
6043         WHERE   site.cust_acct_site_id = cas.cust_acct_site_id
6044         AND     site.site_use_code=l_site_use_code
6045         AND     site.site_use_id=p_ship_to_org_id;
6046 
6047 EXCEPTION
6048 
6049         WHEN NO_DATA_FOUND THEN
6050          Null;
6051         When too_many_rows then
6052          Null;
6053         When others then
6054          Null;
6055 END Ship_To_Customer_Id;
6056 
6057 
6058 PROCEDURE Invoice_To_Customer_Id(
6059                               p_invoice_to_org_id IN Number,
6060 x_invoice_to_Customer_id OUT NOCOPY Number
6061                               ) IS
6062 
6063 l_site_use_code VARCHAR2(30);
6064 --
6065 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6066 --
6067 BEGIN
6068     l_site_use_code := 'BILL_TO';
6069 
6070            SELECT /* MOAC_SQL_CHANGE */  cas.cust_account_id
6071         INTO    x_invoice_to_customer_id
6072         FROM    HZ_CUST_SITE_USES_ALL site,
6073                 HZ_CUST_ACCT_SITES_ALL cas
6074         WHERE   site.cust_acct_site_id = cas.cust_acct_site_id
6075         AND     site.site_use_code=l_site_use_code
6076         AND     site.site_use_id=p_invoice_to_org_id;
6077 
6078 
6079 EXCEPTION
6080 
6081         WHEN NO_DATA_FOUND THEN
6082          Null;
6083         When too_many_rows then
6084          Null;
6085         When others then
6086          Null;
6087 END Invoice_To_Customer_Id;
6088 
6089 PROCEDURE GET_LINE_SHIPMENT_NUMBER(
6090 x_return_status OUT NOCOPY VARCHAR2
6091 , x_msg_count OUT NOCOPY NUMBER
6092 , x_msg_data OUT NOCOPY VARCHAR2
6093                                   ,   p_header_id                     IN  Number
6094 , x_line_id OUT NOCOPY Number
6095 , x_line_number OUT NOCOPY Number
6096 , x_shipment_number OUT NOCOPY Number
6097                                    )  IS
6098 l_line_number Number;
6099 --
6100 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6101 --
6102 BEGIN
6103     SELECT  OE_ORDER_LINES_S.NEXTVAL
6104     INTO    x_line_id
6105     FROM    DUAL;
6106 
6107     SELECT  NVL(MAX(LINE_NUMBER)+1,1)
6108     INTO    x_line_number
6109     FROM    OE_ORDER_LINES_ALL
6110     WHERE   HEADER_ID = p_header_id;
6111     l_line_number:=x_line_number;
6112   IF x_line_number IS NOT NULL THEN
6113     SELECT  NVL(MAX(SHIPMENT_NUMBER)+1,1)
6114     INTO    x_shipment_number
6115     FROM    OE_ORDER_LINES
6116     WHERE   HEADER_ID = p_header_id
6117     AND     LINE_NUMBER = l_line_number;
6118   END IF;
6119 
6120 EXCEPTION
6121 
6122     WHEN OTHERS THEN
6123 
6124         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
6125         THEN
6126             OE_MSG_PUB.Add_Exc_Msg
6127             (   G_PKG_NAME
6128             ,   'Get_Line_Shipment_Number'
6129             );
6130         END IF;
6131 
6132         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6133 
6134 END GET_LINE_SHIPMENT_NUMBER;
6135 
6136 
6137 /*--- Bug 1823073 start----- */
6138 -- This Get_ORDERED_ITEM procedure is called from OEXOELIN.pld
6139 -- Added this procedure to provide ordered_item
6140 -- and fix the problem cauesd by null ordered_item
6141 PROCEDURE GET_ORDERED_ITEM ( x_return_status OUT NOCOPY VARCHAR2
6142 , x_msg_count OUT NOCOPY NUMBER
6143 , x_msg_data OUT NOCOPY VARCHAR2
6144                                  ,   p_item_identifier_type          IN VARCHAR2
6145                                  ,   p_inventory_item_id             IN Number
6146                                  ,   p_ordered_item_id               IN Number
6147                                  ,   p_sold_to_org_id                IN Number
6148 , x_ordered_item OUT NOCOPY VARCHAR2
6149                          ) IS
6150 
6151 l_organization_id             Number:= OE_Sys_Parameters.VALUE('MASTER_ORGANIZATION_ID');
6152 
6153 --
6154 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6155 --
6156 BEGIN
6157    IF l_debug_level  > 0 THEN
6158        oe_debug_pub.add(  'ENTER GET_ORDERED_ITEM PROCEDURE' ) ;
6159        oe_debug_pub.add(  'ITEM_IDENTIFIER_TYPE : '||P_ITEM_IDENTIFIER_TYPE ) ;
6160        oe_debug_pub.add(  'INVENTORY_ITEM_ID : '||P_INVENTORY_ITEM_ID ) ;
6161        oe_debug_pub.add(  'ORDERED_ITEM_ID : '||P_ORDERED_ITEM_ID ) ;
6162        oe_debug_pub.add(  'SOLD_TO_ORG_ID : '||P_SOLD_TO_ORG_ID ) ;
6163    END IF;
6164 
6165    IF NVL(p_item_identifier_type, 'INT') = 'INT' THEN
6166 
6167       BEGIN
6168          SELECT  concatenated_segments
6169          INTO x_ordered_item
6170          FROM  MTL_SYSTEM_ITEMS_KFV
6171          WHERE inventory_item_id = p_inventory_item_id
6172          AND organization_id = l_organization_id;
6173 
6174       EXCEPTION
6175         WHEN NO_DATA_FOUND THEN
6176            Null;
6177         When too_many_rows then
6178        Null;
6179     When others then
6180        Null;
6181       END;
6182    ELSIF NVL(p_item_identifier_type, 'INT') = 'CUST' and p_ordered_item_id is not null and p_sold_to_org_id is not null  THEN
6183       BEGIN
6184          SELECT citems.customer_item_number
6185          INTO  x_ordered_item
6186          FROM  mtl_customer_items citems
6187               ,mtl_customer_item_xrefs cxref
6188               ,mtl_system_items_vl sitems
6189          WHERE citems.customer_item_id = cxref.customer_item_id
6190            AND cxref.inventory_item_id = sitems.inventory_item_id
6191            AND sitems.inventory_item_id = p_inventory_item_id
6192            AND sitems.organization_id = l_organization_id
6193            AND citems.customer_item_id = p_ordered_item_id
6194            AND citems.customer_id = p_sold_to_org_id;
6195 
6196       EXCEPTION
6197         WHEN NO_DATA_FOUND THEN
6198            Null;
6199         When too_many_rows then
6200        Null;
6201     When others then
6202        Null;
6203       END;
6204    END IF;
6205    IF l_debug_level  > 0 THEN
6206        oe_debug_pub.add(  'EXIT GET_ORDERED_ITEM PROCEDURE' ) ;
6207    END IF;
6208 
6209 EXCEPTION
6210 
6211     WHEN OTHERS THEN
6212 
6213         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
6214         THEN
6215             OE_MSG_PUB.Add_Exc_Msg
6216             (   G_PKG_NAME
6217             ,   'GET_ORDERED_ITEM'
6218             );
6219         END IF;
6220 
6221         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6222 
6223 END GET_ORDERED_ITEM;
6224 /*--- Bug 1823073 end----- */
6225 
6226 -- Bug 1713035
6227 -- This procedure is called from OEXOELIN.pld
6228 -- to delete the current line and all associated
6229 -- adjustments.  This new procedure was added
6230 -- to reduce the number of calls to server side
6231 -- packages from the form.
6232 PROCEDURE Delete_Adjustments(x_line_id IN NUMBER) IS
6233 
6234 l_return_status Varchar2(1);
6235 
6236 --
6237 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6238 --
6239 BEGIN
6240    OE_LINE_ADJ_UTIL.Delete_Row(p_line_id=>x_line_id);
6241 
6242    /* 1905650
6243       This is no longer required, since G_PRICE_ADJ request
6244       is logged against LINE entity now
6245 
6246    oe_debug_pub.add('delete the request logged for this line too');
6247    oe_delayed_requests_pvt.delete_request(
6248                p_entity_code =>OE_GLOBALS.G_ENTITY_LINE_ADJ,
6249                p_entity_id => x_line_id,
6250                        p_request_type => OE_GLOBALS.G_PRICE_ADJ,
6251                        x_return_status => l_return_status);
6252    */
6253 
6254 END Delete_Adjustments;
6255 
6256 PROCEDURE get_customer_details( p_site_use_id IN NUMBER,
6257                                 p_site_use_code IN VARCHAR2,
6258 x_customer_id OUT NOCOPY NUMBER,
6259 x_customer_name OUT NOCOPY VARCHAR2,
6260 x_customer_number OUT NOCOPY VARCHAR2
6261                                      ) IS
6262 
6263 --
6264 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
6265 --
6266 BEGIN
6267 
6268 /* 2172651*/
6269         select /* MOAC_SQL_CHANGE */ cust.cust_account_id,
6270                party.party_name,
6271                cust.account_number
6272             INTO   x_customer_id,
6273                        x_customer_name,
6274                        x_customer_number
6275         from
6276                hz_cust_site_uses_all site,
6277                hz_cust_acct_sites_all cas,
6278                        hz_cust_accounts cust,
6279                        hz_parties party
6280                 where site.site_use_code = p_site_use_code
6281         and site_use_id = p_site_use_id
6282         and site.cust_acct_site_id = cas.cust_acct_site_id
6283         and cas.cust_account_id = cust.cust_account_id
6284         and cust.party_id=party.party_id;
6285 /* 2172651*/
6286 
6287 EXCEPTION
6288 
6289         WHEN NO_DATA_FOUND THEN
6290          Null;
6291         When too_many_rows then
6292          Null;
6293        When others then
6294         Null;
6295 
6296 END get_customer_details;
6297 
6298 -- for 5331980 start**
6299 PROCEDURE Reset_calculate_line_total IS
6300 BEGIN
6301 OE_GLOBALS.G_CALCULATE_LINE_TOTAL := TRUE;
6302 END Reset_Calculate_line_Total;
6303 --for 5331980 end**
6304 
6305 END oe_oe_form_line;