DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_OE_HTML_LINE

Source


1 PACKAGE BODY Oe_Oe_Html_Line AS
2 /* $Header: OEHFLINB.pls 120.0 2005/05/31 23:36:46 appldev noship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'Oe_Oe_Html_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 
13 
14 --  Procedure : Default_Attributes
15 --
16 
17 PROCEDURE Default_Attributes
18 ( x_return_status OUT NOCOPY VARCHAR2
19 , x_msg_count OUT NOCOPY NUMBER
20 , x_msg_data OUT NOCOPY VARCHAR2
21 ,   p_header_id                     IN  NUMBER
22 ,   x_line_Rec                      IN OUT NOCOPY OE_ORDER_PUB.Line_Rec_Type
23 ,   x_line_val_rec                  IN OUT NOCOPY OE_ORDER_PUB.Line_Val_Rec_Type
24 ,   p_header_Rec                    IN OUT NOCOPY OE_ORDER_PUB.Header_Rec_Type
25 
26 )
27 IS
28 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
29 l_return_status               VARCHAR2(1);
30 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
31 l_error NUMBER := 0;
32 --
33 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
34 
35 x_line_tbl                      OE_Order_PUB.Line_Tbl_Type;
36 x_old_line_tbl                  OE_ORDER_PUB.Line_Tbl_Type;
37  x_line_val_tbl                 OE_ORDER_PUB.Line_Val_Tbl_Type;
38 l_fname varchar2(1000);
39 BEGIN
40 
41     oe_debug_pub.g_debug_level := FND_PROFILE.VALUE('ONT_DEBUG_LEVEL');
42     l_fname := oe_Debug_pub.set_debug_mode('FILE');
43 
44     oe_debug_pub.debug_on;
45 
46     IF l_debug_level  > 0 THEN
47         oe_debug_pub.add(  'ENTERING Oe_Oe_Html_Line.DEFAULT_ATTRIBUTES' , 1 ) ;
48     END IF;
49 
50   l_error := 1;
51     -- Set UI flag to TRUE
52     OE_GLOBALS.G_UI_FLAG := TRUE;
53     OE_GLOBALS.G_HTML_FLAG := TRUE;
54 
55     OE_PORTAL_UTIL.SET_HEADER_CACHE(p_header_Rec);
56     --  Set control flags.
57 
58     l_control_rec.controlled_operation := TRUE;
59     l_control_rec.check_security       := TRUE;
60     l_control_rec.default_attributes   := TRUE;
61     l_control_rec.change_attributes    := FALSE;
62 
63     l_control_rec.clear_dependents     := FALSE;
64     l_control_rec.validate_entity      := FALSE;
65     l_control_rec.write_to_DB          := FALSE;
66     l_control_rec.process              := FALSE;
67 
68     --  Instruct API to retain its caches
69 
70     l_control_rec.clear_api_cache      := TRUE;
71     l_control_rec.clear_api_requests   := TRUE;
72 
73     --  Load IN parameters if any exist
74     x_old_line_tbl(1)     :=OE_ORDER_PUB.G_MISS_LINE_REC;
75     x_line_tbl(1)         :=OE_ORDER_PUB.G_MISS_LINE_REC;
76     x_line_tbl(1).header_id                := p_header_id;
77 
78     --  Defaulting of flex values is currently done by the form.
79     --  Set flex attributes to NULL in order to avoid defaulting them.
80 
81     x_line_tbl(1).attribute1                         := NULL;
82     x_line_tbl(1).attribute10                        := NULL;
83     x_line_tbl(1).attribute11                        := NULL;
84     x_line_tbl(1).attribute12                        := NULL;
85     x_line_tbl(1).attribute13                        := NULL;
86     x_line_tbl(1).attribute14                        := NULL;
87     x_line_tbl(1).attribute15                        := NULL;
88     x_line_tbl(1).attribute2                         := NULL;
89     x_line_tbl(1).attribute3                         := NULL;
90     x_line_tbl(1).attribute4                         := NULL;
91     x_line_tbl(1).attribute5                         := NULL;
92     x_line_tbl(1).attribute6                         := NULL;
93     x_line_tbl(1).attribute7                         := NULL;
94     x_line_tbl(1).attribute8                         := NULL;
95     x_line_tbl(1).attribute9                         := NULL;
96     x_line_tbl(1).context                            := NULL;
97     x_line_tbl(1).global_attribute1                  := NULL;
98     x_line_tbl(1).global_attribute10                 := NULL;
99     x_line_tbl(1).global_attribute11                 := NULL;
100     x_line_tbl(1).global_attribute12                 := NULL;
101     x_line_tbl(1).global_attribute13                 := NULL;
102     x_line_tbl(1).global_attribute14                 := NULL;
103     x_line_tbl(1).global_attribute15                 := NULL;
104     x_line_tbl(1).global_attribute16                 := NULL;
105     x_line_tbl(1).global_attribute17                 := NULL;
106     x_line_tbl(1).global_attribute18                 := NULL;
107     x_line_tbl(1).global_attribute19                 := NULL;
108     x_line_tbl(1).global_attribute2                  := NULL;
109     x_line_tbl(1).global_attribute20                 := NULL;
110     x_line_tbl(1).global_attribute3                  := NULL;
111     x_line_tbl(1).global_attribute4                  := NULL;
112     x_line_tbl(1).global_attribute5                  := NULL;
113     x_line_tbl(1).global_attribute6                  := NULL;
114     x_line_tbl(1).global_attribute7                  := NULL;
115     x_line_tbl(1).global_attribute8                  := NULL;
116     x_line_tbl(1).global_attribute9                  := NULL;
117     x_line_tbl(1).global_attribute_category          := NULL;
118     x_line_tbl(1).industry_attribute1                := NULL;
119     x_line_tbl(1).industry_attribute10               := NULL;
120     x_line_tbl(1).industry_attribute11               := NULL;
121     x_line_tbl(1).industry_attribute12               := NULL;
122     x_line_tbl(1).industry_attribute13               := NULL;
123     x_line_tbl(1).industry_attribute14               := NULL;
124     x_line_tbl(1).industry_attribute15               := NULL;
125     x_line_tbl(1).industry_attribute16               := NULL;
126     x_line_tbl(1).industry_attribute17               := NULL;
127     x_line_tbl(1).industry_attribute18               := NULL;
128     x_line_tbl(1).industry_attribute19               := NULL;
129     x_line_tbl(1).industry_attribute2                := NULL;
130     x_line_tbl(1).industry_attribute20               := NULL;
131     x_line_tbl(1).industry_attribute21               := NULL;
132     x_line_tbl(1).industry_attribute22               := NULL;
133     x_line_tbl(1).industry_attribute23               := NULL;
134     x_line_tbl(1).industry_attribute24               := NULL;
135     x_line_tbl(1).industry_attribute25               := NULL;
136     x_line_tbl(1).industry_attribute26               := NULL;
137     x_line_tbl(1).industry_attribute27               := NULL;
138     x_line_tbl(1).industry_attribute28               := NULL;
139     x_line_tbl(1).industry_attribute29               := NULL;
140     x_line_tbl(1).industry_attribute3                := NULL;
141     x_line_tbl(1).industry_attribute30               := NULL;
142     x_line_tbl(1).industry_attribute4                := NULL;
143     x_line_tbl(1).industry_attribute5                := NULL;
144     x_line_tbl(1).industry_attribute6                := NULL;
145     x_line_tbl(1).industry_attribute7                := NULL;
146     x_line_tbl(1).industry_attribute8                := NULL;
147     x_line_tbl(1).industry_attribute9                := NULL;
148     x_line_tbl(1).industry_context                   := NULL;
149     x_line_tbl(1).pricing_attribute1                 := NULL;
150     x_line_tbl(1).pricing_attribute10                := NULL;
151     x_line_tbl(1).pricing_attribute2                 := NULL;
152     x_line_tbl(1).pricing_attribute3                 := NULL;
153     x_line_tbl(1).pricing_attribute4                 := NULL;
154     x_line_tbl(1).pricing_attribute5                 := NULL;
155     x_line_tbl(1).pricing_attribute6                 := NULL;
156     x_line_tbl(1).pricing_attribute7                 := NULL;
157     x_line_tbl(1).pricing_attribute8                 := NULL;
158     x_line_tbl(1).pricing_attribute9                 := NULL;
159     x_line_tbl(1).pricing_context                    := NULL;
160     x_line_tbl(1).return_attribute1                  := NULL;
161     x_line_tbl(1).return_attribute10                 := NULL;
162     x_line_tbl(1).return_attribute11                 := NULL;
163     x_line_tbl(1).return_attribute12                 := NULL;
164     x_line_tbl(1).return_attribute13                 := NULL;
165     x_line_tbl(1).return_attribute14                 := NULL;
166     x_line_tbl(1).return_attribute15                 := NULL;
167     x_line_tbl(1).return_attribute2                  := NULL;
168     x_line_tbl(1).return_attribute3                  := NULL;
169     x_line_tbl(1).return_attribute4                  := NULL;
170     x_line_tbl(1).return_attribute5                  := NULL;
171     x_line_tbl(1).return_attribute6                  := NULL;
172     x_line_tbl(1).return_attribute7                  := NULL;
173     x_line_tbl(1).return_attribute8                  := NULL;
174     x_line_tbl(1).return_attribute9                  := NULL;
175     x_line_tbl(1).return_context                     := NULL;
176     x_line_tbl(1).tp_attribute1                         := NULL;
177     x_line_tbl(1).tp_attribute10                        := NULL;
178     x_line_tbl(1).tp_attribute11                        := NULL;
179     x_line_tbl(1).tp_attribute12                        := NULL;
180     x_line_tbl(1).tp_attribute13                        := NULL;
181     x_line_tbl(1).tp_attribute14                        := NULL;
182     x_line_tbl(1).tp_attribute15                        := NULL;
183     x_line_tbl(1).tp_attribute2                         := NULL;
184     x_line_tbl(1).tp_attribute3                         := NULL;
185     x_line_tbl(1).tp_attribute4                         := NULL;
186     x_line_tbl(1).tp_attribute5                         := NULL;
187     x_line_tbl(1).tp_attribute6                         := NULL;
188     x_line_tbl(1).tp_attribute7                         := NULL;
189     x_line_tbl(1).tp_attribute8                         := NULL;
190     x_line_tbl(1).tp_attribute9                         := NULL;
191     x_line_tbl(1).tp_context                            := NULL;
192 
193     --  Set Operation to Create
194 
195   l_error := 2;
196     x_line_tbl(1).operation := OE_GLOBALS.G_OPR_CREATE;
197 
198     --  Populate line table
199 
200 
201     IF l_debug_level  > 0 THEN
202         oe_debug_pub.add(  'LINE CONTROLLER - DEFAULT ATTRIBUTES - CALLING PROCESS' , 2 ) ;
203     END IF;
204 
205     --  Call Oe_Order_Pvt.Process_order
206 
207   l_error := 3;
208 
209 
210     Oe_Order_Pvt.Lines
211     (   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
212     ,   p_init_msg_list               => FND_API.G_TRUE
213     ,   p_control_rec                 => l_control_rec
214     ,   p_x_line_tbl                  => x_line_tbl
215     ,   p_x_old_line_tbl              => x_old_line_tbl
216     ,   x_return_status               => l_return_status
217     );
218 
219   l_error := 3;
220     IF l_debug_level  > 0 THEN
221         oe_debug_pub.add(  'LINE CONTROLLER - DEFAULT ATTRIBUTES - AFTER PROCESS' , 2 ) ;
222     END IF;
223 
224     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
225         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
226     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
227         RAISE FND_API.G_EXC_ERROR;
228     END IF;
229 
230 
231     --  Unload out tbl
232 
233     x_line_rec := x_line_tbl(1);
234 
235 
236     --  Load display out parameters if any
237      x_line_val_rec:=OE_ORDER_PUB.G_MISS_LINE_VAL_REC;
238      x_line_val_rec:=OE_Line_Util.Get_Values
239     (   p_line_rec                    => x_line_tbl(1)
240     );
241     --  Set db_flag to False before writing to cache
242 
243     IF l_debug_level  > 0 THEN
244         oe_debug_pub.add(  'LINE CONTROLLER - DEFAULT ATTRIBUTES - CALLING WRITE LINE' , 2 ) ;
245     END IF;
246 
247     x_line_tbl(1).db_flag := FND_API.G_FALSE;
248 
249 
250     -- Re-set the UI flag to FALSE
251     OE_GLOBALS.G_UI_FLAG := FALSE;
252 
253     --  Set return status.
254 
255     x_return_status := FND_API.G_RET_STS_SUCCESS;
256 
257     --  Get message count and data
258 
259     oe_msg_pub.count_and_get
260     (   p_count                       => x_msg_count
261     ,   p_data                        => x_msg_data
262     );
263 
264     IF l_debug_level  > 0 THEN
265         oe_debug_pub.add(  'EXITING Oe_Oe_Html_Line.DEFAULT_ATTRIBUTES' , 1 ) ;
266     END IF;
267 
268 EXCEPTION
269 
270     WHEN FND_API.G_EXC_ERROR THEN
271 
272 	   OE_GLOBALS.G_UI_FLAG := FALSE;
273 
274         x_return_status := FND_API.G_RET_STS_ERROR;
275 
276         --  Get message count and data
277 
278         oe_msg_pub.count_and_get
279         (   p_count                       => x_msg_count
280         ,   p_data                        => x_msg_data
281         );
282 
283     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
284 
285 	   OE_GLOBALS.G_UI_FLAG := FALSE;
286 
287         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
288 
289         --  Get message count and data
290 
291         oe_msg_pub.count_and_get
292         (   p_count                       => x_msg_count
293         ,   p_data                        => x_msg_data
294         );
295 
296     WHEN OTHERS THEN
297 
298 	   OE_GLOBALS.G_UI_FLAG := FALSE;
299 
300         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
301 
302         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
303         THEN
304             oe_msg_pub.Add_Exc_Msg
305             (   G_PKG_NAME
306             ,   'Default_Attributes' || l_error
307             );
308         END IF;
309 
310         --  Get message count and data
311 
312         oe_msg_pub.count_and_get
313         (   p_count                       => x_msg_count
314         ,   p_data                        => x_msg_data
315         );
316 
317 END Default_Attributes;
318 
319 
320 --  Procedure   :   Change_Attribute
321 --
322 
323 PROCEDURE Change_Attribute
324 ( x_return_status OUT NOCOPY VARCHAR2
325 , x_msg_count OUT NOCOPY NUMBER
326 , x_msg_data OUT NOCOPY VARCHAR2
327 ,   p_line_id                       IN  NUMBER
328 ,   p_attr_id                       IN  NUMBER
329 ,   p_attr_value                    IN  VARCHAR2
330 ,   p_attr_id_tbl                   IN  Number_Tbl_Type
331 ,   p_attr_value_tbl                IN  Varchar2_Tbl_Type
332 ,   p_reason			    IN  VARCHAR2
333 ,   p_comments			    IN  VARCHAR2
334 ,   x_line_Rec                      IN OUT NOCOPY OE_ORDER_PUB.Line_Rec_Type
335 ,   x_old_line_rec                  IN OUT NOCOPY OE_ORDER_PUB.Line_Rec_Type
336 ,   x_line_val_rec                  IN OUT NOCOPY OE_ORDER_PUB.Line_Val_Rec_Type
337 
338 
339 
340 )
341 IS
342 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
343 l_return_status               VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
344 l_order_date_type_code        VARCHAR2(30) := null;
345 l_orig_ship_from_org_id       OE_Order_LINES.ship_from_org_id%TYPE;
346 l_x_item_rec_type             OE_ORDER_CACHE.item_rec_type;    -- OPM 2/JUN/00
347 file_name varchar2(100);
348 i						pls_Integer;
349 L_PRICE_CONTROL_REC			QP_PREQ_GRP.control_record_type;
350 --
351 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
352 --
353 
354 x_line_tbl                      OE_Order_PUB.Line_Tbl_Type;
355 x_old_line_tbl                  OE_ORDER_PUB.Line_Tbl_Type;
356 x_line_val_tbl                 OE_ORDER_PUB.Line_Val_Tbl_Type;
357 BEGIN
358 
359     IF l_debug_level  > 0 THEN
360         oe_debug_pub.add(  'ENTERING Oe_Oe_Html_Line.CHANGE_ATTRIBUTES' , 1 ) ;
361     END IF;
362 
363     -- Set UI flag to TRUE
364     OE_GLOBALS.G_UI_FLAG := TRUE;
365 
366 
367     --  Set control flags.
368 
369     l_control_rec.controlled_operation := TRUE;
370     l_control_rec.change_attributes    := FALSE;
371     l_control_rec.check_security       := TRUE;
372     l_control_rec.clear_dependents     := TRUE;
373     l_control_rec.default_attributes   := TRUE;
374 
375     l_control_rec.validate_entity      := FALSE;
376     l_control_rec.write_to_DB          := FALSE;
377     l_control_rec.process              := FALSE;
378 
379     --  Instruct API to retain its caches
380 
381     l_control_rec.clear_api_cache      := FALSE;
382     l_control_rec.clear_api_requests   := FALSE;
383 
384     --  Read line from cache
385 
386 
387 
388 
389     IF l_debug_level  > 0 THEN
390         oe_debug_pub.add(  'SETTING OPERATION' , 2 ) ;
391     END IF;
392 
393     x_line_tbl(1):=x_line_Rec;
394     x_old_line_tbl(1):=x_old_line_Rec;
395 
396     IF FND_API.To_Boolean(x_line_tbl(1).db_flag) THEN
397         x_line_tbl(1).operation := OE_GLOBALS.G_OPR_UPDATE;
398     ELSE
399         x_line_tbl(1).operation := OE_GLOBALS.G_OPR_CREATE;
400     END IF;
401         x_line_tbl(1).operation := OE_GLOBALS.G_OPR_CREATE;
402 
403     --  Populate line table
404     --  Validate Scheduling Dates Changes, if any.
405 
406 
407     IF l_debug_level  > 0 THEN
408         oe_debug_pub.add(  'CALLING PROCESS ORDER' , 2 ) ;
409         oe_debug_pub.add(  'BEFORE CALLING PROCESS ORDER' , 1 ) ;
410     END IF;
411 
412     --  Call Oe_Order_Pvt.Process_order
413     Oe_Order_Pvt.Lines
414     (
415         p_validation_level            => FND_API.G_VALID_LEVEL_NONE
416     ,   p_init_msg_list               => FND_API.G_TRUE
417     ,   p_control_rec                 => l_control_rec
418     ,   p_x_line_tbl                  => x_line_tbl
419     ,   p_x_old_line_tbl              => x_old_line_tbl
420     ,   x_return_status               => l_return_status
421     );
422 
423 
424     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
425         IF l_debug_level  > 0 THEN
426             oe_debug_pub.add(  'PROCESS ORDER RETURN UNEXP_ERROR' , 2 ) ;
427         END IF;
428         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
429     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
430         IF l_debug_level  > 0 THEN
431             oe_debug_pub.add(  'PROCESS ORDER RETURN RET_STS_ERROR' , 2 ) ;
432         END IF;
433         RAISE FND_API.G_EXC_ERROR;
434     END IF;
435 
436 
437     --  Unload out tbl
438 
439 
440     --  Init OUT parameters to missing.
441 
442     --  Load display out parameters if any
443 
444      x_line_val_tbl(1):=OE_Line_Util.Get_Values
445     (   p_line_rec                    => x_line_tbl(1)
446     ,   p_old_line_rec                => x_old_line_tbl(1)
447     );
448 
449 
450     --  Write to cache.
451     IF l_debug_level  > 0 THEN
452         oe_debug_pub.add(  'WRITING TO CACHE' , 2 ) ;
453     END IF;
454 
455 
456     -- Re-set the UI flag to FALSE
457     OE_GLOBALS.G_UI_FLAG := FALSE;
458 
459     --  Set return status.
460 
461     x_return_status := FND_API.G_RET_STS_SUCCESS;
462 
463     --  Get message count and data
464     x_line_rec:=x_line_tbl(1);
465     x_old_line_rec:=x_old_line_tbl(1);
466     x_line_val_rec:=x_line_val_tbl(1);
467 
468     oe_msg_pub.count_and_get
469     (   p_count                       => x_msg_count
470     ,   p_data                        => x_msg_data
471     );
472 
473     IF l_debug_level  > 0 THEN
474         oe_debug_pub.add(  'EXITING Oe_Oe_Html_Line.CHANGE_ATTRIBUTE' , 1 ) ;
475     END IF;
476 
477 EXCEPTION
478 
479     WHEN FND_API.G_EXC_ERROR THEN
480 
481 	   OE_GLOBALS.G_UI_FLAG := FALSE;
482 
483         x_return_status := FND_API.G_RET_STS_ERROR;
484 
485         --  Get message count and data
486 
487         oe_msg_pub.count_and_get
488         (   p_count                       => x_msg_count
489         ,   p_data                        => x_msg_data
490         );
491 
492     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
493 
494 	   OE_GLOBALS.G_UI_FLAG := FALSE;
495 
496         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
497 
498         --  Get message count and data
499 
500         oe_msg_pub.count_and_get
501         (   p_count                       => x_msg_count
502         ,   p_data                        => x_msg_data
503         );
504 
505     WHEN OTHERS THEN
506 
507 	   OE_GLOBALS.G_UI_FLAG := FALSE;
508 
509         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
510 
511         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
512         THEN
513             oe_msg_pub.Add_Exc_Msg
514             (   G_PKG_NAME
515             ,   'Change_Attribute'
516             );
517         END IF;
518 
519         --  Get message count and data
520 
521         oe_msg_pub.count_and_get
522         (   p_count                       => x_msg_count
523         ,   p_data                        => x_msg_data
524         );
525 
526 END Change_Attribute;
527 
528 
529 --  Procedure       Delete_Row
530 --
531 
532 PROCEDURE Delete_Row
533 ( x_return_status OUT NOCOPY VARCHAR2
534 , x_msg_count OUT NOCOPY NUMBER
535 , x_msg_data OUT NOCOPY VARCHAR2
536 ,   p_line_id                       IN  NUMBER
537 , p_change_reason_code            IN  VARCHAR2 Default Null
538 , p_change_comments               IN  VARCHAR2 Default Null
539 )
540 IS
541 l_x_line_rec                    OE_Order_PUB.Line_Rec_Type;
542 l_x_line_tbl                    OE_Order_PUB.Line_Tbl_Type;
543 l_x_old_line_tbl                    OE_Order_PUB.Line_Tbl_Type;
544 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
545 l_return_status               VARCHAR2(1);
546 --
547 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
548 --
549 BEGIN
550     SAVEPOINT LINE_DELETE;
551     IF l_debug_level  > 0 THEN
552         oe_debug_pub.add(  'ENTERING Oe_Oe_Html_Line.DELETE_ROW' , 1 ) ;
553     END IF;
554 
555     -- Set UI flag to TRUE
556     OE_GLOBALS.G_UI_FLAG := TRUE;
557 
558     --  Set control flags.
559 
560     l_control_rec.controlled_operation := TRUE;
561     l_control_rec.check_security	    := TRUE;
562     l_control_rec.validate_entity      := TRUE;
563     l_control_rec.write_to_DB          := TRUE;
564 
565     l_control_rec.default_attributes   := FALSE;
566     l_control_rec.change_attributes    := FALSE;
567     l_control_rec.process              := FALSE;
568 
569     --  Instruct API to retain its caches
570 
571     l_control_rec.clear_api_cache      := FALSE;
572     l_control_rec.clear_api_requests   := FALSE;
573 
574 
575 
576     --  Set Operation.
577 
578     l_x_line_rec.operation := OE_GLOBALS.G_OPR_DELETE;
579 
580     --  Populate line table
581 
582     l_x_line_tbl(1) := l_x_line_rec;
583     l_x_line_tbl(1).change_reason := p_change_reason_code;
584     l_x_line_tbl(1).change_comments := p_change_comments;
585 
586     --  Call Oe_Order_Pvt.Process_order
587 
588     Oe_Order_Pvt.Lines
589     (   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
590     ,   p_init_msg_list               => FND_API.G_TRUE
591     ,   p_control_rec                 => l_control_rec
592     ,   p_x_line_tbl                  => l_x_line_tbl
593     ,   p_x_old_line_tbl              => l_x_old_line_tbl
594     ,   x_return_status               => l_return_status
595 
596     );
597 
598 
599     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
600         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
601     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
602         RAISE FND_API.G_EXC_ERROR;
603     END IF;
604 
605     -- Re-set the UI flag to FALSE
606     OE_GLOBALS.G_UI_FLAG := FALSE;
607 
608     --  Clear line record cache
609 
610 
611     --  Set return status.
612 
613     x_return_status := FND_API.G_RET_STS_SUCCESS;
614 
615     --  Get message count and data
616 
617     oe_msg_pub.count_and_get
618     (   p_count                       => x_msg_count
619     ,   p_data                        => x_msg_data
620     );
621 
622     IF l_debug_level  > 0 THEN
623         oe_debug_pub.add(  'EXITING Oe_Oe_Html_Line.DELETE_ROW' , 1 ) ;
624     END IF;
625 
626 EXCEPTION
627 
628     WHEN FND_API.G_EXC_ERROR THEN
629        ROLLBACK TO SAVEPOINT Line_Delete;
630 	   OE_GLOBALS.G_UI_FLAG := FALSE;
631 
632         x_return_status := FND_API.G_RET_STS_ERROR;
633 
634         --  Get message count and data
635 
636         oe_msg_pub.count_and_get
637         (   p_count                       => x_msg_count
638         ,   p_data                        => x_msg_data
639         );
640 
641     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
642        ROLLBACK TO SAVEPOINT Line_Delete;
643 
644 	   OE_GLOBALS.G_UI_FLAG := FALSE;
645 
646         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
647 
648         --  Get message count and data
649 
650         oe_msg_pub.count_and_get
651         (   p_count                       => x_msg_count
652         ,   p_data                        => x_msg_data
653         );
654 
655     WHEN OTHERS THEN
656        ROLLBACK TO SAVEPOINT Line_Delete;
657 
658 	   OE_GLOBALS.G_UI_FLAG := FALSE;
659 
660         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
661 
662         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
663         THEN
664             oe_msg_pub.Add_Exc_Msg
665             (   G_PKG_NAME
666             ,   'Delete_Row'
667             );
668         END IF;
669 
670         --  Get message count and data
671 
672         oe_msg_pub.count_and_get
673         (   p_count                       => x_msg_count
674         ,   p_data                        => x_msg_data
675         );
676 
677 END Delete_Row;
678 
679 
680 --  Procedure       lock_Row
681 --
682 
683 PROCEDURE Lock_Row
684 ( x_return_status OUT NOCOPY VARCHAR2
685 , x_msg_count OUT NOCOPY NUMBER
686 , x_msg_data OUT NOCOPY VARCHAR2
687 ,   p_line_id                       IN  NUMBER
688 ,   p_lock_control                  IN  NUMBER
689 )
690 
691 IS
692 l_return_status               VARCHAR2(1);
693 l_x_line_rec                  OE_Order_PUB.Line_Rec_Type;
694 --
695 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
696 --
697 BEGIN
698 
699     IF l_debug_level  > 0 THEN
700         oe_debug_pub.add(  'ENTERING Oe_Oe_Html_Line.LOCK_ROW' , 1 ) ;
701     END IF;
702 
703     --  Load line record
704 
705     l_x_line_rec.lock_control        := p_lock_control;
706     l_x_line_rec.line_id             := p_line_id;
707     l_x_line_rec.operation           := OE_GLOBALS.G_OPR_LOCK; -- not req.
708 
709     --Bug 3025978
710       OE_GLOBALS.G_UI_FLAG := TRUE;
711 
712     --  Call OE_Line_Util.Lock_Row instead of Oe_Order_Pvt.Lock_order
713     OE_MSG_PUB.initialize;
714     OE_Line_Util.Lock_Row
715     ( x_return_status         => l_return_status
716     , p_x_line_rec            => l_x_line_rec
717     , p_line_id               => p_line_id);
718 
719     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
720 
721         --  Set DB flag and write record to cache.
722 
723         l_x_line_rec.db_flag := FND_API.G_TRUE;
724     IF l_debug_level  > 0 THEN
725         oe_debug_pub.add(  'EXITING Oe_Oe_Html_Line.LOCK_ROW'||L_X_LINE_REC.LINE_ID , 1 ) ;
726     END IF;
727 
728 
729     END IF;
730 
731     --  Set return status.
732 
733     x_return_status := l_return_status;
734     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
735         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
736     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
737         RAISE FND_API.G_EXC_ERROR;
738     END IF;
739 
740     --  Get message count and data
741 
742     oe_msg_pub.count_and_get
743     (   p_count                       => x_msg_count
744     ,   p_data                        => x_msg_data
745     );
746 
747     IF l_debug_level  > 0 THEN
748         oe_debug_pub.add(  'EXITING Oe_Oe_Html_Line.LOCK_ROW' , 1 ) ;
749     END IF;
750 
751 EXCEPTION
752     WHEN FND_API.G_EXC_ERROR THEN
753 
754         OE_GLOBALS.G_UI_FLAG := FALSE;
755 
756         x_return_status := FND_API.G_RET_STS_ERROR;
757 
758         --  Get message count and data
759 
760         oe_msg_pub.count_and_get
761         (   p_count                       => x_msg_count
762         ,   p_data                        => x_msg_data
763         );
764 
765     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
766 
767         OE_GLOBALS.G_UI_FLAG := FALSE;
768 
769         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
770 
771         --  Get message count and data
772 
773         oe_msg_pub.count_and_get
774         (   p_count                       => x_msg_count
775         ,   p_data                        => x_msg_data
776         );
777 
778     WHEN OTHERS THEN
779 
780         IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
781         THEN
782             oe_msg_pub.Add_Exc_Msg
783             (   G_PKG_NAME
784             ,   'Lock_Row'
785             );
786         END IF;
787 
788         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
789 
790         --  Get message count and data
791 
792         oe_msg_pub.count_and_get
793         (   p_count                       => x_msg_count
794         ,   p_data                        => x_msg_data
795         );
796 
797 
798 
799 END Lock_Row;
800 
801 
802 -- This procedure will be called from the client when the user
803 -- clears a record
804 Procedure Clear_Record
805 ( x_return_status OUT NOCOPY VARCHAR2
806 , x_msg_count OUT NOCOPY NUMBER
807 , x_msg_data OUT NOCOPY VARCHAR2
808 ,   p_line_id                     IN  NUMBER
809 )
810 IS
811 l_return_status                     Varchar2(30);
812 --
813 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
814 --
815  l_new_line_rec     OE_Order_PUB.Line_Rec_Type; --3445778
816  l_old_line_rec     OE_Order_PUB.Line_Rec_Type; --3445778
817  l_index            NUMBER;  --3445778
818 BEGIN
819     OE_MSG_PUB.initialize;
820     x_return_status := FND_API.G_RET_STS_SUCCESS;
821 
822     OE_DELAYED_REQUESTS_PVT.Delete_Reqs_for_Deleted_Entity(
823                          p_entity_code  => OE_GLOBALS.G_ENTITY_LINE
824                          ,p_entity_id    => p_line_id
825                          ,x_return_status => l_return_status);
826 
827     -- Added for bug 3445778
828     oe_debug_pub.add('Executing code for updating global picture, line_id: ' || p_line_id, 1);
829 
830     -- Set the operation on the record so that globals are updated
831      l_new_line_rec.operation := OE_GLOBALS.G_OPR_DELETE;
832      l_new_line_rec.line_id := p_line_id;
833      l_old_line_rec.line_id := p_line_id;
834 
835       OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
836                     p_line_rec => l_new_line_rec,
837                     p_line_id => p_line_id,
838                     p_old_line_rec => l_old_line_rec,
839                     x_index => l_index,
840                     x_return_status => l_return_status);
841 
842     -- End of 3445778
843 
844     OE_MSG_PUB.Count_And_Get
845 	  (   p_count                       => x_msg_count
846 		,   p_data                        => x_msg_data
847 	   );
848 
849    -- Clear the controller cache, so that it will not be used for
850    -- next operation on same record
851 
852 
853 EXCEPTION
854     WHEN OTHERS THEN
855         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
856         THEN
857             OE_MSG_PUB.Add_Exc_Msg
858             (   G_PKG_NAME
859             ,   'Clear_Record'
860             );
861         END IF;
862         --  Get message count and data
863         OE_MSG_PUB.Count_And_Get
864         (   p_count                       => x_msg_count
865         ,   p_data                        => x_msg_data
866         );
867         x_return_status := FND_API.G_RET_STS_ERROR;
868 
869 END Clear_Record;
870 
871 
872 END Oe_Oe_Html_Line;