DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_OE_FORM_LINE_SCREDIT

Source


1 PACKAGE BODY OE_OE_Form_Line_Scredit AS
2 /* $Header: OEXFLSCB.pls 120.0 2005/05/31 22:27:28 appldev noship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_OE_Form_Line_Scredit';
7 
8 --  Global variables holding cached record.
9 
10 g_Line_Scredit_rec            OE_Order_PUB.Line_Scredit_Rec_Type;
11 g_db_Line_Scredit_rec         OE_Order_PUB.Line_Scredit_Rec_Type;
12 
13 --  Forward declaration of procedures maintaining entity record cache.
14 
15 PROCEDURE Write_Line_Scredit
16 (   p_Line_Scredit_rec              IN  OE_Order_PUB.Line_Scredit_Rec_Type
17 ,   p_db_record                     IN  BOOLEAN := FALSE
18 );
19 
20 PROCEDURE Get_Line_Scredit
21 (   p_db_record                     IN  BOOLEAN := FALSE
22 ,   p_sales_credit_id               IN  NUMBER
23 ,   x_line_scredit_rec              IN OUT NOCOPY OE_Order_PUB.Line_Scredit_Rec_Type
24 );
25 
26 PROCEDURE Clear_Line_Scredit;
27 
28 --  Global variable holding performed operations.
29 
30 g_opr__tbl                    OE_Order_PUB.Line_Scredit_Tbl_Type;
31 
32 --  Procedure : Default_Attributes
33 --
34 
35 PROCEDURE Default_Attributes
36 ( x_return_status OUT NOCOPY VARCHAR2
37 
38 , x_msg_count OUT NOCOPY NUMBER
39 
40 , x_msg_data OUT NOCOPY VARCHAR2
41 
42 ,   p_line_id                       IN  NUMBER
43 , x_attribute1 OUT NOCOPY VARCHAR2
44 
45 , x_attribute10 OUT NOCOPY VARCHAR2
46 
47 , x_attribute11 OUT NOCOPY VARCHAR2
48 
49 , x_attribute12 OUT NOCOPY VARCHAR2
50 
51 , x_attribute13 OUT NOCOPY VARCHAR2
52 
53 , x_attribute14 OUT NOCOPY VARCHAR2
54 
55 , x_attribute15 OUT NOCOPY VARCHAR2
56 
57 , x_attribute2 OUT NOCOPY VARCHAR2
58 
59 , x_attribute3 OUT NOCOPY VARCHAR2
60 
61 , x_attribute4 OUT NOCOPY VARCHAR2
62 
63 , x_attribute5 OUT NOCOPY VARCHAR2
64 
65 , x_attribute6 OUT NOCOPY VARCHAR2
66 
67 , x_attribute7 OUT NOCOPY VARCHAR2
68 
69 , x_attribute8 OUT NOCOPY VARCHAR2
70 
71 , x_attribute9 OUT NOCOPY VARCHAR2
72 
73 , x_context OUT NOCOPY VARCHAR2
74 
75 , x_dw_update_advice_flag OUT NOCOPY VARCHAR2
76 
77 , x_header_id OUT NOCOPY NUMBER
78 
79 , x_line_id OUT NOCOPY NUMBER
80 
81 , x_percent OUT NOCOPY NUMBER
82 
83 , x_salesrep_id OUT NOCOPY NUMBER
84 
85 , x_sales_credit_type_id OUT NOCOPY NUMBER
86 
87 , x_sales_credit_id OUT NOCOPY NUMBER
88 
89 , x_wh_update_date OUT NOCOPY DATE
90 
91 , x_salesrep OUT NOCOPY VARCHAR2
92 
93 , x_sales_credit_type OUT NOCOPY VARCHAR2
94 --SG {
95 ,   x_sales_group_id                OUT NOCOPY /* file.sql.39 change */ NUMBER
96 ,   x_sales_group_updated_flag           OUT NOCOPY /* file.sql.39 change */ VARCHAR2
97 --SG}
98 )
99 IS
100 l_Line_Scredit_val_rec        OE_Order_PUB.Line_Scredit_Val_Rec_Type;
101 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
102 l_return_status               VARCHAR2(1);
103 l_x_Line_Scredit_rec          OE_Order_PUB.Line_Scredit_Rec_Type;
104 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
105 l_x_old_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
106 
107 --
108 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
109 --
110 BEGIN
111 
112     IF l_debug_level  > 0 THEN
113         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE_SCREDIT.DEFAULT_ATTRIBUTES' , 1 ) ;
114     END IF;
115 
116     -- Set the UI flag
117     OE_GLOBALS.G_UI_FLAG := TRUE;
118 
119     --  Set control flags.
120 
121     l_control_rec.controlled_operation := TRUE;
122     l_control_rec.check_security       := TRUE;
123     l_control_rec.default_attributes   := TRUE;
124     l_control_rec.change_attributes    := TRUE;
125 
126     l_control_rec.clear_dependents     := FALSE;
127     l_control_rec.validate_entity      := FALSE;
128     l_control_rec.write_to_DB          := FALSE;
129     l_control_rec.process              := FALSE;
130 
131     --  Instruct API to retain its caches
132 
133     l_control_rec.clear_api_cache      := FALSE;
134     l_control_rec.clear_api_requests   := FALSE;
135 
136     --  Load IN parameters if any exist
137     l_x_Line_Scredit_rec:=OE_ORDER_PUB.G_MISS_LINE_SCREDIT_REC;
138     l_x_old_Line_Scredit_Tbl(1):=OE_ORDER_PUB.G_MISS_LINE_SCREDIT_REC;
139 
140     l_x_Line_Scredit_rec.line_id                    := p_line_id;
141 
142     --  Defaulting of flex values is currently done by the form.
143     --  Set flex attributes to NULL in order to avoid defaulting them.
144 
145     l_x_line_scredit_rec.attribute1                 := NULL;
146     l_x_line_scredit_rec.attribute10                := NULL;
147     l_x_line_scredit_rec.attribute11                := NULL;
148     l_x_line_scredit_rec.attribute12                := NULL;
149     l_x_line_scredit_rec.attribute13                := NULL;
150     l_x_line_scredit_rec.attribute14                := NULL;
151     l_x_line_scredit_rec.attribute15                := NULL;
152     l_x_line_scredit_rec.attribute2                 := NULL;
153     l_x_line_scredit_rec.attribute3                 := NULL;
154     l_x_line_scredit_rec.attribute4                 := NULL;
155     l_x_line_scredit_rec.attribute5                 := NULL;
156     l_x_line_scredit_rec.attribute6                 := NULL;
157     l_x_line_scredit_rec.attribute7                 := NULL;
158     l_x_line_scredit_rec.attribute8                 := NULL;
159     l_x_line_scredit_rec.attribute9                 := NULL;
160     l_x_line_scredit_rec.context                    := NULL;
161 
162     --  Set Operation to Create
163 
164     l_x_line_scredit_rec.operation := OE_GLOBALS.G_OPR_CREATE;
165 
166     --  Populate Line_Scredit table
167 
168     l_x_Line_Scredit_tbl(1) := l_x_Line_Scredit_rec;
169 
170     --  Call OE_Order_PVT.Process_order
171 
172     OE_Order_PVT.Line_Scredits
173     (   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
174     ,   p_init_msg_list               => FND_API.G_TRUE
175     ,   p_control_rec                 => l_control_rec
176     ,   p_x_Line_Scredit_tbl          => l_x_Line_Scredit_tbl
177     ,   p_x_old_Line_Scredit_tbl      => l_x_old_Line_Scredit_tbl
178     ,   x_return_status               => l_return_status
179 
180     );
181 
182     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
183         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
184     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
185         RAISE FND_API.G_EXC_ERROR;
186     END IF;
187 
188 
189     --  Unload out tbl
190 
191     l_x_Line_Scredit_rec := l_x_Line_Scredit_tbl(1);
192 
193     --  Load OUT parameters.
194 
195     x_attribute1                   := l_x_Line_Scredit_rec.attribute1;
196     x_attribute10                  := l_x_Line_Scredit_rec.attribute10;
197     x_attribute11                  := l_x_Line_Scredit_rec.attribute11;
198     x_attribute12                  := l_x_Line_Scredit_rec.attribute12;
199     x_attribute13                  := l_x_Line_Scredit_rec.attribute13;
200     x_attribute14                  := l_x_Line_Scredit_rec.attribute14;
201     x_attribute15                  := l_x_Line_Scredit_rec.attribute15;
202     x_attribute2                   := l_x_Line_Scredit_rec.attribute2;
203     x_attribute3                   := l_x_Line_Scredit_rec.attribute3;
204     x_attribute4                   := l_x_Line_Scredit_rec.attribute4;
205     x_attribute5                   := l_x_Line_Scredit_rec.attribute5;
206     x_attribute6                   := l_x_Line_Scredit_rec.attribute6;
207     x_attribute7                   := l_x_Line_Scredit_rec.attribute7;
208     x_attribute8                   := l_x_Line_Scredit_rec.attribute8;
209     x_attribute9                   := l_x_Line_Scredit_rec.attribute9;
210     x_context                      := l_x_Line_Scredit_rec.context;
211     x_dw_update_advice_flag        := l_x_Line_Scredit_rec.dw_update_advice_flag;
212     x_header_id                    := l_x_Line_Scredit_rec.header_id;
213     x_line_id                      := l_x_Line_Scredit_rec.line_id;
214     x_percent                      := l_x_Line_Scredit_rec.percent;
215     x_salesrep_id                  := l_x_Line_Scredit_rec.salesrep_id;
216     x_sales_credit_type_id         := l_x_Line_Scredit_rec.sales_credit_type_id;
217     x_sales_credit_id              := l_x_Line_Scredit_rec.sales_credit_id;
218     x_wh_update_date               := l_x_Line_Scredit_rec.wh_update_date;
219 
220     --  Load display out parameters if any
221 
222     l_Line_Scredit_val_rec := OE_Line_Scredit_Util.Get_Values
223     (   p_Line_Scredit_rec            => l_x_Line_Scredit_rec
224     );
225     x_sales_credit_type   := l_Line_Scredit_val_rec.sales_credit_type;
226 
227     --  Write to cache.
228     --  Set db_flag to False before writing to cache
229 
230     l_x_Line_Scredit_rec.db_flag := FND_API.G_FALSE;
231 
232     Write_Line_Scredit
233     (   p_Line_Scredit_rec            => l_x_Line_Scredit_rec
234     );
235 
236     -- Re-set the UI flag to FALSE
237     OE_GLOBALS.G_UI_FLAG := FALSE;
238 
239     --  Set return status.
240 
241     x_return_status := FND_API.G_RET_STS_SUCCESS;
242 
243     --  Get message count and data
244 
245     oe_msg_pub.Count_And_Get
246     (   p_count                       => x_msg_count
247     ,   p_data                        => x_msg_data
248     );
249 
250     IF l_debug_level  > 0 THEN
251         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE_SCREDIT.DEFAULT_ATTRIBUTES' , 1 ) ;
252     END IF;
253 
254 EXCEPTION
255 
256     WHEN FND_API.G_EXC_ERROR THEN
257 
258 	   OE_GLOBALS.G_UI_FLAG := FALSE;
259 
260         x_return_status := FND_API.G_RET_STS_ERROR;
261 
262         --  Get message count and data
263 
264         oe_msg_pub.Count_And_Get
265         (   p_count                       => x_msg_count
266         ,   p_data                        => x_msg_data
267         );
268 
269     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
270 
271 	   OE_GLOBALS.G_UI_FLAG := FALSE;
272 
273         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
274 
275         --  Get message count and data
276 
277         oe_msg_pub.Count_And_Get
278         (   p_count                       => x_msg_count
279         ,   p_data                        => x_msg_data
280         );
281 
282     WHEN OTHERS THEN
283 
284 	   OE_GLOBALS.G_UI_FLAG := FALSE;
285 
286         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
287 
288         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
289         THEN
290             oe_msg_pub.Add_Exc_Msg
291             (   G_PKG_NAME
292             ,   'Default_Attributes'
293             );
294         END IF;
295 
296         --  Get message count and data
297 
298         oe_msg_pub.Count_And_Get
299         (   p_count                       => x_msg_count
300         ,   p_data                        => x_msg_data
301         );
302 
303 END Default_Attributes;
304 
305 --  Procedure   :   Change_Attribute
306 --
307 
308 PROCEDURE Change_Attribute
309 ( x_return_status OUT NOCOPY VARCHAR2
310 
311 , x_msg_count OUT NOCOPY NUMBER
312 
313 , x_msg_data OUT NOCOPY VARCHAR2
314 
315 ,   p_sales_credit_id               IN  NUMBER
316 ,   p_attr_id                       IN  NUMBER
317 ,   p_attr_value                    IN  VARCHAR2
318 ,   p_attribute1                    IN  VARCHAR2
319 ,   p_attribute10                   IN  VARCHAR2
320 ,   p_attribute11                   IN  VARCHAR2
321 ,   p_attribute12                   IN  VARCHAR2
322 ,   p_attribute13                   IN  VARCHAR2
323 ,   p_attribute14                   IN  VARCHAR2
324 ,   p_attribute15                   IN  VARCHAR2
325 ,   p_attribute2                    IN  VARCHAR2
326 ,   p_attribute3                    IN  VARCHAR2
327 ,   p_attribute4                    IN  VARCHAR2
328 ,   p_attribute5                    IN  VARCHAR2
329 ,   p_attribute6                    IN  VARCHAR2
330 ,   p_attribute7                    IN  VARCHAR2
331 ,   p_attribute8                    IN  VARCHAR2
332 ,   p_attribute9                    IN  VARCHAR2
333 ,   p_context                       IN  VARCHAR2
334 --SG{
335 ,   p_sales_group_id                IN  NUMBER
336 ,   p_sales_group_updated_flag           IN  VARCHAR2
337 --SG}
338 , x_attribute1 OUT NOCOPY VARCHAR2
339 
340 , x_attribute10 OUT NOCOPY VARCHAR2
341 
342 , x_attribute11 OUT NOCOPY VARCHAR2
343 
344 , x_attribute12 OUT NOCOPY VARCHAR2
345 
346 , x_attribute13 OUT NOCOPY VARCHAR2
347 
348 , x_attribute14 OUT NOCOPY VARCHAR2
349 
350 , x_attribute15 OUT NOCOPY VARCHAR2
351 
352 , x_attribute2 OUT NOCOPY VARCHAR2
353 
354 , x_attribute3 OUT NOCOPY VARCHAR2
355 
356 , x_attribute4 OUT NOCOPY VARCHAR2
357 
358 , x_attribute5 OUT NOCOPY VARCHAR2
359 
360 , x_attribute6 OUT NOCOPY VARCHAR2
361 
362 , x_attribute7 OUT NOCOPY VARCHAR2
363 
364 , x_attribute8 OUT NOCOPY VARCHAR2
365 
366 , x_attribute9 OUT NOCOPY VARCHAR2
367 
368 , x_context OUT NOCOPY VARCHAR2
369 
370 , x_dw_update_advice_flag OUT NOCOPY VARCHAR2
371 
372 , x_header_id OUT NOCOPY NUMBER
373 
374 , x_line_id OUT NOCOPY NUMBER
375 
376 , x_percent OUT NOCOPY NUMBER
377 
378 , x_salesrep_id OUT NOCOPY NUMBER
379 
380 , x_sales_credit_type_id OUT NOCOPY NUMBER
381 
382 , x_sales_credit_id OUT NOCOPY NUMBER
383 
384 , x_wh_update_date OUT NOCOPY DATE
385 
386 , x_salesrep OUT NOCOPY VARCHAR2
387 
388 , x_sales_credit_type OUT NOCOPY VARCHAR2
389 --SG{
390 ,   x_sales_group         OUT NOCOPY  VARCHAR2
391 ,   x_sales_group_id      OUT NOCOPY  NUMBER
392 ,   x_sales_group_updated_flag OUT NOCOPY  VARCHAR2
393 --SG}
394 
395 )
396 IS
397 l_Line_Scredit_rec            OE_Order_PUB.Line_Scredit_Rec_Type;
398 l_old_Line_Scredit_rec        OE_Order_PUB.Line_Scredit_Rec_Type;
399 l_Line_Scredit_val_rec        OE_Order_PUB.Line_Scredit_Val_Rec_Type;
400 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
401 l_return_status               VARCHAR2(1);
402 l_x_Line_Scredit_rec          OE_Order_PUB.Line_Scredit_Rec_Type;
403 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
404 l_x_old_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
405 
406 --
407 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
408 --
409 BEGIN
410 
411     IF l_debug_level  > 0 THEN
412         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE_SCREDIT.CHANGE_ATTRIBUTE' , 1 ) ;
413     END IF;
414 
415     -- Set the UI flag
416     OE_GLOBALS.G_UI_FLAG := TRUE;
417 
418     --  Set control flags.
419 
420     l_control_rec.controlled_operation := TRUE;
421     l_control_rec.check_security       := TRUE;
422     l_control_rec.clear_dependents     := TRUE;
423     l_control_rec.default_attributes   := TRUE;
424     l_control_rec.change_attributes    := TRUE;
425 
426     l_control_rec.validate_entity      := FALSE;
427     l_control_rec.write_to_DB          := FALSE;
428     l_control_rec.process              := FALSE;
429 
430     --  Instruct API to retain its caches
431 
432     l_control_rec.clear_api_cache      := FALSE;
433     l_control_rec.clear_api_requests   := FALSE;
434 
435     --  Read Line_Scredit from cache
436 
437     Get_Line_Scredit
438     (   p_db_record                   => FALSE
439     ,   p_sales_credit_id             => p_sales_credit_id
440     ,   x_line_scredit_rec            => l_line_scredit_rec
441     );
442 
443     l_old_Line_Scredit_rec         := l_Line_Scredit_rec;
444 
445     IF p_attr_id = OE_Line_Scredit_Util.G_DW_UPDATE_ADVICE THEN
446         l_Line_Scredit_rec.dw_update_advice_flag := p_attr_value;
447     ELSIF p_attr_id = OE_Line_Scredit_Util.G_HEADER THEN
448         l_Line_Scredit_rec.header_id := TO_NUMBER(p_attr_value);
449     ELSIF p_attr_id = OE_Line_Scredit_Util.G_LINE THEN
450         l_Line_Scredit_rec.line_id := TO_NUMBER(p_attr_value);
451     ELSIF p_attr_id = OE_Line_Scredit_Util.G_PERCENT THEN
452         l_Line_Scredit_rec.percent := TO_NUMBER(p_attr_value);
453     ELSIF p_attr_id = OE_Line_Scredit_Util.G_SALESREP THEN
454         l_Line_Scredit_rec.salesrep_id := TO_NUMBER(p_attr_value);
455     ELSIF p_attr_id = OE_Line_Scredit_Util.G_sales_credit_type THEN
456         l_Line_Scredit_rec.sales_credit_type_id := TO_NUMBER(p_attr_value);
457     ELSIF p_attr_id = OE_Line_Scredit_Util.G_SALES_CREDIT THEN
458         l_Line_Scredit_rec.sales_credit_id := TO_NUMBER(p_attr_value);
459     ELSIF p_attr_id = OE_Line_Scredit_Util.G_WH_UPDATE_DATE THEN
460         l_Line_Scredit_rec.wh_update_date := TO_DATE(p_attr_value,'YYYY/MM/DD');
461     --SG {
462     ELSIF p_attr_id = OE_Line_Scredit_Util.G_SALES_GROUP_ID THEN
463          l_line_scredit_rec.sales_group_id := TO_NUMBER(p_attr_value);
464     ELSIF p_attr_id =  OE_Line_Scredit_Util.G_SALES_GROUP_UPDATED_FLAG THEN
465          l_line_scredit_rec.sales_group_updated_flag := p_attr_value;
466     --SG }
467     ELSIF p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE1
468     OR     p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE10
469     OR     p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE11
470     OR     p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE12
471     OR     p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE13
472     OR     p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE14
473     OR     p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE2
474     OR     p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE3
475     OR     p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE4
476     OR     p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE5
477     OR     p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE6
478     OR     p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE7
479     OR     p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE8
480     OR     p_attr_id = OE_Line_Scredit_Util.G_ATTRIBUTE9
481     OR     p_attr_id = OE_Line_Scredit_Util.G_CONTEXT
482     THEN
483 
484         l_Line_Scredit_rec.attribute1  := p_attribute1;
485         l_Line_Scredit_rec.attribute10 := p_attribute10;
486         l_Line_Scredit_rec.attribute11 := p_attribute11;
487         l_Line_Scredit_rec.attribute12 := p_attribute12;
488         l_Line_Scredit_rec.attribute13 := p_attribute13;
489         l_Line_Scredit_rec.attribute14 := p_attribute14;
490         l_Line_Scredit_rec.attribute2  := p_attribute2;
491         l_Line_Scredit_rec.attribute3  := p_attribute3;
492         l_Line_Scredit_rec.attribute4  := p_attribute4;
493         l_Line_Scredit_rec.attribute5  := p_attribute5;
494         l_Line_Scredit_rec.attribute6  := p_attribute6;
495         l_Line_Scredit_rec.attribute7  := p_attribute7;
496         l_Line_Scredit_rec.attribute8  := p_attribute8;
497         l_Line_Scredit_rec.attribute9  := p_attribute9;
498         l_Line_Scredit_rec.context     := p_context;
499 
500     ELSE
501 
502         --  Unexpected error, unrecognized attribute
503 
504         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
505         THEN
506             oe_msg_pub.Add_Exc_Msg
507             (   G_PKG_NAME
508             ,   'Change_Attribute'
509             ,   'Unrecognized attribute'
510             );
511         END IF;
512 
513         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
514 
515     END IF;
516 
517     --  Set Operation.
518 
519     IF FND_API.To_Boolean(l_Line_Scredit_rec.db_flag) THEN
520         l_Line_Scredit_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
521     ELSE
522         l_Line_Scredit_rec.operation := OE_GLOBALS.G_OPR_CREATE;
523     END IF;
524 
525     --  Populate Line_Scredit table
526 
527     l_x_Line_Scredit_tbl(1) := l_Line_Scredit_rec;
528     l_x_old_Line_Scredit_tbl(1) := l_old_Line_Scredit_rec;
529 
530     --  Call OE_Order_PVT.Process_order
531 
532     OE_Order_PVT.Line_Scredits
533     (   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
534     ,   p_control_rec                 => l_control_rec
535     ,   p_init_msg_list               => FND_API.G_TRUE
536     ,   p_x_Line_Scredit_tbl            => l_x_Line_Scredit_tbl
537     ,   p_x_old_Line_Scredit_tbl      => l_x_old_Line_Scredit_tbl
538     ,   x_return_status               => l_return_status
539     );
540 
541     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
542         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
543     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
544         RAISE FND_API.G_EXC_ERROR;
545     END IF;
546 
547 
548     --  Unload out tbl
549 
550     l_x_Line_Scredit_rec := l_x_Line_Scredit_tbl(1);
551 
552     --  Init OUT parameters to missing.
553 
554     x_attribute1                   := FND_API.G_MISS_CHAR;
555     x_attribute10                  := FND_API.G_MISS_CHAR;
556     x_attribute11                  := FND_API.G_MISS_CHAR;
557     x_attribute12                  := FND_API.G_MISS_CHAR;
558     x_attribute13                  := FND_API.G_MISS_CHAR;
559     x_attribute14                  := FND_API.G_MISS_CHAR;
560     x_attribute15                  := FND_API.G_MISS_CHAR;
561     x_attribute2                   := FND_API.G_MISS_CHAR;
562     x_attribute3                   := FND_API.G_MISS_CHAR;
563     x_attribute4                   := FND_API.G_MISS_CHAR;
564     x_attribute5                   := FND_API.G_MISS_CHAR;
565     x_attribute6                   := FND_API.G_MISS_CHAR;
566     x_attribute7                   := FND_API.G_MISS_CHAR;
567     x_attribute8                   := FND_API.G_MISS_CHAR;
568     x_attribute9                   := FND_API.G_MISS_CHAR;
569     x_context                      := FND_API.G_MISS_CHAR;
570     x_dw_update_advice_flag        := FND_API.G_MISS_CHAR;
571     x_header_id                    := FND_API.G_MISS_NUM;
572     x_line_id                      := FND_API.G_MISS_NUM;
573     x_percent                      := FND_API.G_MISS_NUM;
574     x_salesrep_id                  := FND_API.G_MISS_NUM;
575     x_sales_credit_type_id         := FND_API.G_MISS_NUM;
576     x_sales_credit_id              := FND_API.G_MISS_NUM;
577     x_wh_update_date               := FND_API.G_MISS_DATE;
578     x_salesrep                     := FND_API.G_MISS_CHAR;
579     x_sales_credit_type            := FND_API.G_MISS_CHAR;
580     --SG{
581     x_sales_group                  := FND_API.G_MISS_CHAR;
582     x_sales_group_id               := FND_API.G_MISS_NUM;
583     x_sales_group_updated_flag          := FND_API.G_MISS_CHAR;
584     --SG}
585 
586     --  Load display out parameters if any
587 
588     l_Line_Scredit_val_rec := OE_Line_Scredit_Util.Get_Values
589     (   p_Line_Scredit_rec            => l_x_Line_Scredit_rec
590     ,   p_old_Line_Scredit_rec        => l_Line_Scredit_rec
591     );
592 
593     --  Return changed attributes.
594 
595     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute1,
596                             l_Line_Scredit_rec.attribute1)
597     THEN
598         x_attribute1 := l_x_Line_Scredit_rec.attribute1;
599     END IF;
600 
601     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute10,
602                             l_Line_Scredit_rec.attribute10)
603     THEN
604         x_attribute10 := l_x_Line_Scredit_rec.attribute10;
605     END IF;
606 
607     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute11,
608                             l_Line_Scredit_rec.attribute11)
609     THEN
610         x_attribute11 := l_x_Line_Scredit_rec.attribute11;
611     END IF;
612 
613     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute12,
614                             l_Line_Scredit_rec.attribute12)
615     THEN
616         x_attribute12 := l_x_Line_Scredit_rec.attribute12;
617     END IF;
618 
619     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute13,
620                             l_Line_Scredit_rec.attribute13)
621     THEN
622         x_attribute13 := l_x_Line_Scredit_rec.attribute13;
623     END IF;
624 
625     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute14,
626                             l_Line_Scredit_rec.attribute14)
627     THEN
628         x_attribute14 := l_x_Line_Scredit_rec.attribute14;
629     END IF;
630 
631     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute15,
632                             l_Line_Scredit_rec.attribute15)
633     THEN
634         x_attribute15 := l_x_Line_Scredit_rec.attribute15;
635     END IF;
636 
637     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute2,
638                             l_Line_Scredit_rec.attribute2)
639     THEN
640         x_attribute2 := l_x_Line_Scredit_rec.attribute2;
641     END IF;
642 
643     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute3,
644                             l_Line_Scredit_rec.attribute3)
645     THEN
646         x_attribute3 := l_x_Line_Scredit_rec.attribute3;
647     END IF;
648 
649     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute4,
650                             l_Line_Scredit_rec.attribute4)
651     THEN
652         x_attribute4 := l_x_Line_Scredit_rec.attribute4;
653     END IF;
654 
655     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute5,
656                             l_Line_Scredit_rec.attribute5)
657     THEN
658         x_attribute5 := l_x_Line_Scredit_rec.attribute5;
659     END IF;
660 
661     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute6,
662                             l_Line_Scredit_rec.attribute6)
663     THEN
664         x_attribute6 := l_x_Line_Scredit_rec.attribute6;
665     END IF;
666 
667     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute7,
668                             l_Line_Scredit_rec.attribute7)
669     THEN
670         x_attribute7 := l_x_Line_Scredit_rec.attribute7;
671     END IF;
672 
673     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute8,
674                             l_Line_Scredit_rec.attribute8)
675     THEN
676         x_attribute8 := l_x_Line_Scredit_rec.attribute8;
677     END IF;
678 
679     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.attribute9,
680                             l_Line_Scredit_rec.attribute9)
681     THEN
682         x_attribute9 := l_x_Line_Scredit_rec.attribute9;
683     END IF;
684 
685     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.context,
686                             l_Line_Scredit_rec.context)
687     THEN
688         x_context := l_x_Line_Scredit_rec.context;
689     END IF;
690 
691     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.dw_update_advice_flag,
692                             l_Line_Scredit_rec.dw_update_advice_flag)
693     THEN
694         x_dw_update_advice_flag := l_x_Line_Scredit_rec.dw_update_advice_flag;
695     END IF;
696 
697     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.header_id,
698                             l_Line_Scredit_rec.header_id)
699     THEN
700         x_header_id := l_x_Line_Scredit_rec.header_id;
701     END IF;
702 
703     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.line_id,
704                             l_Line_Scredit_rec.line_id)
705     THEN
706         x_line_id := l_x_Line_Scredit_rec.line_id;
707     END IF;
708 
709     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.percent,
710                             l_Line_Scredit_rec.percent)
711     THEN
712         x_percent := l_x_Line_Scredit_rec.percent;
713     END IF;
714 
715     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.salesrep_id,
716                             l_Line_Scredit_rec.salesrep_id)
717     THEN
718         x_salesrep_id := l_x_Line_Scredit_rec.salesrep_id;
719         x_salesrep := l_Line_Scredit_val_rec.salesrep;
720     END IF;
721     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.sales_credit_type_id,
722                             l_Line_Scredit_rec.sales_credit_type_id)
723     THEN
724         x_sales_credit_type_id:= l_x_Line_Scredit_rec.sales_credit_type_id;
725         x_sales_credit_type := l_Line_Scredit_val_rec.sales_credit_type;
726     END IF;
727 
728     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.sales_credit_id,
729                             l_Line_Scredit_rec.sales_credit_id)
730     THEN
731         x_sales_credit_id := l_x_Line_Scredit_rec.sales_credit_id;
732     END IF;
733 
734     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_rec.wh_update_date,
735                             l_Line_Scredit_rec.wh_update_date)
736     THEN
737         x_wh_update_date := l_x_Line_Scredit_rec.wh_update_date;
738     END IF;
739 
740   --SG{
741     IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_Tbl(1).sales_group_id,
742                             l_Line_Scredit_rec.sales_group_id)
743     THEN
744         x_sales_group_id := l_x_Line_Scredit_Tbl(1).sales_group_id;
745         x_sales_group    := l_Line_Scredit_val_rec.sales_group;
746         oe_debug_pub.add('OEXFHSCB2--x_sales_group:'||x_sales_group);
747     END IF;
748 
749      IF NOT OE_GLOBALS.Equal(l_x_Line_Scredit_Tbl(1).sales_group_updated_flag,
750                             l_Line_Scredit_rec.sales_group_updated_flag)
751     THEN
752         x_sales_group_updated_flag    := l_Line_Scredit_rec.sales_group_updated_flag;
753     END IF;
754     --SG}
755 
756     --  Write to cache.
757 
758     Write_Line_Scredit
759     (   p_Line_Scredit_rec            => l_x_Line_Scredit_rec
760     );
761 
762     -- Re-set the UI flag to FALSE
763     OE_GLOBALS.G_UI_FLAG := FALSE;
764 
765     --  Set return status.
766 
767     x_return_status := FND_API.G_RET_STS_SUCCESS;
768 
769     --  Get message count and data
770 
771     oe_msg_pub.Count_And_Get
772     (   p_count                       => x_msg_count
773     ,   p_data                        => x_msg_data
774     );
775 
776     IF l_debug_level  > 0 THEN
777         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE_SCREDIT.CHANGE_ATTRIBUTE' , 1 ) ;
778     END IF;
779 
780 EXCEPTION
781 
782     WHEN FND_API.G_EXC_ERROR THEN
783 
784 	   OE_GLOBALS.G_UI_FLAG := FALSE;
785 
786         x_return_status := FND_API.G_RET_STS_ERROR;
787 
788         --  Get message count and data
789 
790         oe_msg_pub.Count_And_Get
791         (   p_count                       => x_msg_count
792         ,   p_data                        => x_msg_data
793         );
794 
795     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
796 
797 	   OE_GLOBALS.G_UI_FLAG := FALSE;
798 
799         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
800 
801         --  Get message count and data
802 
803         oe_msg_pub.Count_And_Get
804         (   p_count                       => x_msg_count
805         ,   p_data                        => x_msg_data
806         );
807 
808     WHEN OTHERS THEN
809 
810 	   OE_GLOBALS.G_UI_FLAG := FALSE;
811 
812         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
813 
814         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
815         THEN
816             oe_msg_pub.Add_Exc_Msg
817             (   G_PKG_NAME
818             ,   'Change_Attribute'
819             );
820         END IF;
821 
822         --  Get message count and data
823 
824         oe_msg_pub.Count_And_Get
825         (   p_count                       => x_msg_count
826         ,   p_data                        => x_msg_data
827         );
828 
829 END Change_Attribute;
830 
831 --  Procedure       Validate_And_Write
832 --
833 
834 PROCEDURE Validate_And_Write
835 ( x_return_status OUT NOCOPY VARCHAR2
836 
837 , x_msg_count OUT NOCOPY NUMBER
838 
839 , x_msg_data OUT NOCOPY VARCHAR2
840 
841 ,   p_sales_credit_id               IN  NUMBER
842 ,   p_change_reason_code            IN  VARCHAR2
843 ,   p_change_comments               IN  VARCHAR2
844 , x_creation_date OUT NOCOPY DATE
845 
846 , x_created_by OUT NOCOPY NUMBER
847 
848 , x_last_update_date OUT NOCOPY DATE
849 
850 , x_last_updated_by OUT NOCOPY NUMBER
851 
852 , x_last_update_login OUT NOCOPY NUMBER
853 
854 , x_lock_control OUT NOCOPY NUMBER
855 
856 )
857 IS
858 l_Line_Scredit_rec            OE_Order_PUB.Line_Scredit_Rec_Type;
859 l_old_Line_Scredit_rec        OE_Order_PUB.Line_Scredit_Rec_Type;
860 l_Line_Scredit_tbl            OE_Order_PUB.Line_Scredit_Tbl_Type;
861 l_x_old_Line_Scredit_tbl        OE_Order_PUB.Line_Scredit_Tbl_Type;
862 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
863 l_return_status               VARCHAR2(1);
864 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
865 
866 --
867 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
868 --
869 BEGIN
870 
871     IF l_debug_level  > 0 THEN
872         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE_SCREDIT.VALIDATE_AND_WRITE' , 1 ) ;
873     END IF;
874 
875     -- Set the UI flag
876     OE_GLOBALS.G_UI_FLAG := TRUE;
877 
878     --  Set control flags.
879 
880     l_control_rec.controlled_operation := TRUE;
881     l_control_rec.check_security       := TRUE;
882     l_control_rec.validate_entity      := TRUE;
883     l_control_rec.write_to_DB          := TRUE;
884 
885     l_control_rec.clear_dependents     := FALSE;
886     l_control_rec.default_attributes   := FALSE;
887     l_control_rec.change_attributes    := FALSE;
888     l_control_rec.process              := FALSE;
889 
890     --  Instruct API to retain its caches
891 
892     l_control_rec.clear_api_cache      := FALSE;
893     l_control_rec.clear_api_requests   := FALSE;
894 
895     --  Read Line_Scredit from cache
896 
897     Get_Line_Scredit
898     (   p_db_record                   => TRUE
899     ,   p_sales_credit_id             => p_sales_credit_id
900     ,   x_line_scredit_rec            => l_old_Line_Scredit_rec
901     );
902 
903     Get_Line_Scredit
904     (   p_db_record                   => FALSE
905     ,   p_sales_credit_id             => p_sales_credit_id
906     ,   x_line_scredit_rec            => l_Line_Scredit_rec
907     );
908 
909     --  Set Operation.
910 
911     IF FND_API.To_Boolean(l_Line_Scredit_rec.db_flag) THEN
912         l_Line_Scredit_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
913     ELSE
914         l_Line_Scredit_rec.operation := OE_GLOBALS.G_OPR_CREATE;
915     END IF;
916 
917     /* Start Audit Trail -- Pass change reason, comments */
918     l_Line_Scredit_rec.change_reason := p_change_reason_code;
919     l_Line_Scredit_rec.change_comments := p_change_comments;
920     /* End Audit Trail */
921 
922     --  Populate Line_Scredit table
923 
924     l_x_Line_Scredit_tbl(1) := l_Line_Scredit_rec;
925     l_x_old_Line_Scredit_tbl(1) := l_old_Line_Scredit_rec;
926 
927     --  Call OE_Order_PVT.Process_order
928 
929     OE_Order_PVT.Line_Scredits
930     (   p_validation_level              => FND_API.G_VALID_LEVEL_NONE
931     ,   p_init_msg_list               => FND_API.G_TRUE
932     ,   p_control_rec                   => l_control_rec
933     ,   p_x_Line_Scredit_tbl            => l_x_Line_Scredit_tbl
934     ,   p_x_old_Line_Scredit_tbl        => l_x_old_Line_Scredit_tbl
935     ,   x_return_status                 => l_return_status
936     );
937 
938     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
939         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
940     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
941         RAISE FND_API.G_EXC_ERROR;
942     END IF;
943 
944 
945 /* The Process Request and Notify call should still be called */
946 /* for pre-Pack level */
947 
948    IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL < '110508' THEN
949 
950     Oe_Order_Pvt.Process_Requests_And_Notify
951     (   p_process_requests           => FALSE
952     ,   p_init_msg_list               => FND_API.G_FALSE
953     ,   p_notify                     => TRUE
954     ,   x_return_status              => l_return_status
955     ,   p_line_scredit_tbl           => l_x_Line_Scredit_tbl
956     ,   p_old_line_scredit_tbl       => l_x_old_Line_Scredit_tbl
957     );
958 
959     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
960         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
961     ELSIF l_return_status  = FND_API.G_RET_STS_ERROR THEN
962         RAISE FND_API.G_EXC_ERROR;
963     END IF;
964  END IF;
965 
966 
967     --  Load OUT parameters.
968 
969 
970     x_creation_date                := l_x_Line_Scredit_tbl(1).creation_date;
971     x_created_by                   := l_x_Line_Scredit_tbl(1).created_by;
972     x_last_update_date             := l_x_Line_Scredit_tbl(1).last_update_date;
973     x_last_updated_by              := l_x_Line_Scredit_tbl(1).last_updated_by;
974     x_last_update_login            := l_x_Line_Scredit_tbl(1).last_update_login;
975     x_lock_control                 := l_x_Line_Scredit_tbl(1).lock_control;
976 
977     --  Clear Line_Scredit record cache
978 
979     Clear_Line_Scredit;
980 
981     --  Keep track of performed operations.
982 
983     l_old_Line_Scredit_rec.operation := l_Line_Scredit_rec.operation;
984 
985 
986     -- Re-set the UI flag to FALSE
987     OE_GLOBALS.G_UI_FLAG := FALSE;
988 
989     --  Set return status.
990 
991     x_return_status := FND_API.G_RET_STS_SUCCESS;
992 
993     --  Get message count and data
994 
995     oe_msg_pub.Count_And_Get
996     (   p_count                       => x_msg_count
997     ,   p_data                        => x_msg_data
998     );
999 
1000     IF l_debug_level  > 0 THEN
1001         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE_SCREDIT.VALIDATE_AND_WRITE' , 1 ) ;
1002     END IF;
1003 
1004 EXCEPTION
1005 
1006     WHEN FND_API.G_EXC_ERROR THEN
1007 
1008 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1009 
1010         x_return_status := FND_API.G_RET_STS_ERROR;
1011 
1012         --  Get message count and data
1013 
1014         oe_msg_pub.Count_And_Get
1015         (   p_count                       => x_msg_count
1016         ,   p_data                        => x_msg_data
1017         );
1018 
1019     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1020 
1021 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1022 
1023         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1024 
1025         --  Get message count and data
1026 
1027         oe_msg_pub.Count_And_Get
1028         (   p_count                       => x_msg_count
1029         ,   p_data                        => x_msg_data
1030         );
1031 
1032     WHEN OTHERS THEN
1033 
1034 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1035 
1036         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1037 
1038         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1039         THEN
1040             oe_msg_pub.Add_Exc_Msg
1041             (   G_PKG_NAME
1042             ,   'Validate_And_Write'
1043             );
1044         END IF;
1045 
1046         --  Get message count and data
1047 
1048         oe_msg_pub.Count_And_Get
1049         (   p_count                       => x_msg_count
1050         ,   p_data                        => x_msg_data
1051         );
1052 
1053 END Validate_And_Write;
1054 
1055 --  Procedure       Delete_Row
1056 --
1057 
1058 PROCEDURE Delete_Row
1059 ( x_return_status OUT NOCOPY VARCHAR2
1060 
1061 , x_msg_count OUT NOCOPY NUMBER
1062 
1063 , x_msg_data OUT NOCOPY VARCHAR2
1064 
1065 ,   p_sales_credit_id               IN  NUMBER
1066 , p_change_reason_code            IN  VARCHAR2 Default Null
1067 , p_change_comments               IN  VARCHAR2 Default Null
1068 )
1069 IS
1070 l_Line_Scredit_rec            OE_Order_PUB.Line_Scredit_Rec_Type;
1071 l_Line_Scredit_tbl            OE_Order_PUB.Line_Scredit_Tbl_Type;
1072 l_control_rec                 OE_GLOBALS.Control_Rec_Type;
1073 l_return_status               VARCHAR2(1);
1074 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
1075 l_x_old_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
1076 
1077 --
1078 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1079 --
1080 BEGIN
1081 
1082     IF l_debug_level  > 0 THEN
1083         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE_SCREDIT.DELETE_ROW' , 1 ) ;
1084     END IF;
1085 
1086     -- Set the UI flag
1087     OE_GLOBALS.G_UI_FLAG := TRUE;
1088 
1089     --  Set control flags.
1090 
1091     l_control_rec.controlled_operation := TRUE;
1092     l_control_rec.check_security       := TRUE;
1093     l_control_rec.validate_entity      := TRUE;
1094     l_control_rec.write_to_DB          := TRUE;
1095 
1096     l_control_rec.clear_dependents     := FALSE;
1097     l_control_rec.default_attributes   := FALSE;
1098     l_control_rec.change_attributes    := FALSE;
1099     l_control_rec.process              := FALSE;
1100 
1101     --  Instruct API to retain its caches
1102 
1103     l_control_rec.clear_api_cache      := FALSE;
1104     l_control_rec.clear_api_requests   := FALSE;
1105 
1106     --  Read DB record from cache
1107 
1108     Get_Line_Scredit
1109     (   p_db_record                   => TRUE
1110     ,   p_sales_credit_id             => p_sales_credit_id
1111     ,   x_line_scredit_rec            => l_Line_Scredit_rec
1112     );
1113 
1114     --  Set Operation.
1115 
1116     l_Line_Scredit_rec.operation := OE_GLOBALS.G_OPR_DELETE;
1117 
1118     --  Populate Line_Scredit table
1119 
1120     l_x_Line_Scredit_tbl(1) := l_Line_Scredit_rec;
1121     l_x_Line_Scredit_tbl(1).change_reason := p_change_reason_code;
1122     l_x_Line_Scredit_tbl(1).change_comments := p_change_comments;
1123 
1124     --  Call OE_Order_PVT.Process_order
1125 
1126     OE_Order_PVT.Line_Scredits
1127     (   p_validation_level            => FND_API.G_VALID_LEVEL_NONE
1128     ,   p_init_msg_list               => FND_API.G_TRUE
1129     ,   p_control_rec                 => l_control_rec
1130     ,   p_x_Line_Scredit_tbl          => l_x_Line_Scredit_tbl
1131     ,   p_x_old_Line_Scredit_tbl      => l_x_old_Line_Scredit_tbl
1132     ,   x_return_status               => l_return_status
1133     );
1134 
1135     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1136         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1137     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1138         RAISE FND_API.G_EXC_ERROR;
1139     END IF;
1140 
1141 
1142     --  Clear Line_Scredit record cache
1143 
1144     Clear_Line_Scredit;
1145 
1146     -- Re-set the UI flag to FALSE
1147     OE_GLOBALS.G_UI_FLAG := FALSE;
1148 
1149     --  Set return status.
1150 
1151     x_return_status := FND_API.G_RET_STS_SUCCESS;
1152 
1153     --  Get message count and data
1154 
1155     oe_msg_pub.Count_And_Get
1156     (   p_count                       => x_msg_count
1157     ,   p_data                        => x_msg_data
1158     );
1159 
1160     IF l_debug_level  > 0 THEN
1161         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE_SCREDIT.DELETE_ROW' , 1 ) ;
1162     END IF;
1163 
1164 EXCEPTION
1165 
1166     WHEN FND_API.G_EXC_ERROR THEN
1167 
1168 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1169 
1170         x_return_status := FND_API.G_RET_STS_ERROR;
1171 
1172         --  Get message count and data
1173 
1174         oe_msg_pub.Count_And_Get
1175         (   p_count                       => x_msg_count
1176         ,   p_data                        => x_msg_data
1177         );
1178 
1179     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1180 
1181 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1182 
1183         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1184 
1185         --  Get message count and data
1186 
1187         oe_msg_pub.Count_And_Get
1188         (   p_count                       => x_msg_count
1189         ,   p_data                        => x_msg_data
1190         );
1191 
1192     WHEN OTHERS THEN
1193 
1194 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1195 
1196         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1197 
1198         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1199         THEN
1200             oe_msg_pub.Add_Exc_Msg
1201             (   G_PKG_NAME
1202             ,   'Delete_Row'
1203             );
1204         END IF;
1205 
1206         --  Get message count and data
1207 
1208         oe_msg_pub.Count_And_Get
1209         (   p_count                       => x_msg_count
1210         ,   p_data                        => x_msg_data
1211         );
1212 
1213 END Delete_Row;
1214 
1215 --  Procedure       Process_Entity
1216 --
1217 
1218 PROCEDURE Process_Entity
1219 ( x_return_status OUT NOCOPY VARCHAR2
1220 
1221 , x_msg_count OUT NOCOPY NUMBER
1222 
1223 , x_msg_data OUT NOCOPY VARCHAR2
1224 
1225 )
1226 IS
1227 l_return_status               VARCHAR2(1);
1228 /*l_control_rec                 OE_GLOBALS.Control_Rec_Type;
1229 l_x_header_rec                OE_Order_PUB.Header_Rec_Type;
1230 l_x_Header_Adj_rec            OE_Order_PUB.Header_Adj_Rec_Type;
1231 l_x_Header_Adj_tbl            OE_Order_PUB.Header_Adj_Tbl_Type;
1232 l_x_Header_Scredit_rec        OE_Order_PUB.Header_Scredit_Rec_Type;
1233 l_x_Header_Scredit_tbl        OE_Order_PUB.Header_Scredit_Tbl_Type;
1234 l_x_line_rec                  OE_Order_PUB.Line_Rec_Type;
1235 l_x_line_tbl                  OE_Order_PUB.Line_Tbl_Type;
1236 l_x_Line_Adj_rec              OE_Order_PUB.Line_Adj_Rec_Type;
1237 l_x_Line_Adj_tbl              OE_Order_PUB.Line_Adj_Tbl_Type;
1238 l_x_Line_Scredit_rec          OE_Order_PUB.Line_Scredit_Rec_Type;
1239 l_x_Line_Scredit_tbl          OE_Order_PUB.Line_Scredit_Tbl_Type;
1240 l_x_Lot_Serial_rec            OE_Order_PUB.Lot_Serial_Rec_Type;
1241 l_x_Lot_Serial_tbl            OE_Order_PUB.Lot_Serial_Tbl_Type;
1242 l_x_action_request_tbl        OE_Order_PUB.request_tbl_type;
1243 l_x_Header_price_Att_tbl        OE_Order_PUB.Header_Price_Att_Tbl_Type;
1244 l_x_Header_Adj_Att_tbl          OE_Order_PUB.Header_Adj_Att_Tbl_Type;
1245 l_x_Header_Adj_Assoc_tbl        OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
1246 l_x_Line_price_Att_tbl          OE_Order_PUB.Line_Price_Att_Tbl_Type;
1247 l_x_Line_Adj_Att_tbl            OE_Order_PUB.Line_Adj_Att_Tbl_Type;
1248 l_x_Line_Adj_Assoc_tbl          OE_Order_PUB.Line_Adj_Assoc_Tbl_Type; */
1249 
1250 --
1251 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1252 --
1253 BEGIN
1254 
1255     IF l_debug_level  > 0 THEN
1256         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE_SCREDIT.PROCESS_ENTITY' , 1 ) ;
1257     END IF;
1258 
1259     -- Set the UI flag
1260     OE_GLOBALS.G_UI_FLAG := TRUE;
1261 
1262     --  Set control flags.
1263 
1264 /*    l_control_rec.controlled_operation := TRUE;
1265     l_control_rec.process              := TRUE;
1266     l_control_rec.process_entity       := OE_GLOBALS.G_ENTITY_LINE_SCREDIT;
1267 
1268     l_control_rec.check_security       := FALSE;
1269     l_control_rec.clear_dependents   := FALSE;
1270     l_control_rec.default_attributes   := FALSE;
1271     l_control_rec.change_attributes    := FALSE;
1272     l_control_rec.validate_entity      := FALSE;
1273     l_control_rec.write_to_DB          := FALSE;
1274 
1275     --  Instruct API to clear its request table
1276 
1277     l_control_rec.clear_api_cache      := FALSE;
1278     l_control_rec.clear_api_requests   := FALSE;
1279 
1280     --  Call OE_Order_PVT.Process_order
1281 
1282     OE_Order_PVT.Process_order
1283     (   p_api_version_number           => 1.0
1284     ,   p_init_msg_list                => FND_API.G_TRUE
1285     ,   x_return_status                => l_return_status
1286     ,   x_msg_count                    => x_msg_count
1287     ,   x_msg_data                     => x_msg_data
1288     ,   p_control_rec                  => l_control_rec
1289     ,   p_x_header_rec                 => l_x_header_rec
1290     ,   p_x_Header_Adj_tbl             => l_x_Header_Adj_tbl
1291     ,   p_x_Header_Scredit_tbl         => l_x_Header_Scredit_tbl
1292     ,   p_x_line_tbl                   => l_x_line_tbl
1293     ,   p_x_Line_Adj_tbl               => l_x_Line_Adj_tbl
1294     ,   p_x_Line_Scredit_tbl           => l_x_Line_Scredit_tbl
1295     ,   p_x_Lot_Serial_tbl             => l_x_Lot_Serial_tbl
1296     ,   p_x_action_request_tbl         => l_x_action_request_tbl
1297     ,   p_x_Header_price_Att_tbl       => l_x_Header_price_Att_tbl
1298     ,   p_x_Header_Adj_Att_tbl         => l_x_Header_Adj_Att_tbl
1299     ,   p_x_Header_Adj_Assoc_tbl       => l_x_Header_Adj_Assoc_tbl
1300     ,   p_x_Line_price_Att_tbl         => l_x_Line_price_Att_tbl
1301     ,   p_x_Line_Adj_Att_tbl           => l_x_Line_Adj_Att_tbl
1302     ,   p_x_Line_Adj_Assoc_tbl         => l_x_Line_Adj_Assoc_tbl
1303 
1304     );
1305 */
1306     Oe_Order_Pvt.Process_Requests_And_Notify
1307     (   p_process_requests           => TRUE
1308      ,  p_init_msg_list               => FND_API.G_TRUE
1309      ,  p_notify                     => FALSE -- jolin
1310      ,  x_return_status              => l_return_status
1311     );
1312 
1313     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1314         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1315     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1316         RAISE FND_API.G_EXC_ERROR;
1317     END IF;
1318 
1319 
1320     -- Re-set the UI flag to FALSE
1321     OE_GLOBALS.G_UI_FLAG := FALSE;
1322 
1323     --  Set return status.
1324 
1325     x_return_status := FND_API.G_RET_STS_SUCCESS;
1326 
1327     --  Get message count and data
1328 
1329     oe_msg_pub.Count_And_Get
1330     (   p_count                       => x_msg_count
1331     ,   p_data                        => x_msg_data
1332     );
1333 
1334     IF l_debug_level  > 0 THEN
1335         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE_SCREDIT.PROCESS_ENTITY' , 1 ) ;
1336     END IF;
1337 
1338 EXCEPTION
1339 
1340     WHEN FND_API.G_EXC_ERROR THEN
1341 
1342 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1343 
1344         x_return_status := FND_API.G_RET_STS_ERROR;
1345 
1346         --  Get message count and data
1347 
1348         oe_msg_pub.Count_And_Get
1349         (   p_count                       => x_msg_count
1350         ,   p_data                        => x_msg_data
1351         );
1352 
1353     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1354 
1355 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1356 
1357         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1358 
1359         --  Get message count and data
1360 
1361         oe_msg_pub.Count_And_Get
1362         (   p_count                       => x_msg_count
1363         ,   p_data                        => x_msg_data
1364         );
1365 
1366     WHEN OTHERS THEN
1367 
1368 	   OE_GLOBALS.G_UI_FLAG := FALSE;
1369 
1370         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1371 
1372         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1373         THEN
1374             oe_msg_pub.Add_Exc_Msg
1375             (   G_PKG_NAME
1376             ,   'Process_Entity'
1377             );
1378         END IF;
1379 
1380         --  Get message count and data
1381 
1382         oe_msg_pub.Count_And_Get
1383         (   p_count                       => x_msg_count
1384         ,   p_data                        => x_msg_data
1385         );
1386 
1387 END Process_Entity;
1388 
1389 --  Procedure       lock_Row
1390 --
1391 
1392 PROCEDURE Lock_Row
1393 ( x_return_status OUT NOCOPY VARCHAR2
1394 
1395 , x_msg_count OUT NOCOPY NUMBER
1396 
1397 , x_msg_data OUT NOCOPY VARCHAR2
1398 
1399 ,   p_sales_credit_id               IN  NUMBER
1400 ,   p_lock_control                  IN  NUMBER
1401 )
1402 IS
1403 l_return_status               VARCHAR2(1);
1404 l_x_Line_Scredit_rec            OE_Order_PUB.Line_Scredit_Rec_Type;
1405 
1406 --
1407 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1408 --
1409 BEGIN
1410 
1411     IF l_debug_level  > 0 THEN
1412         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE_SCREDIT.LOCK_ROW' , 1 ) ;
1413     END IF;
1414 
1415     --  Load Line_Scredit record
1416 
1417     l_x_Line_Scredit_rec.operation :=  OE_GLOBALS.G_OPR_LOCK;
1418     l_x_Line_Scredit_rec.sales_credit_id := p_sales_credit_id;
1419     l_x_Line_Scredit_rec.lock_control := p_lock_control;
1420 
1421 
1422 
1423     --  Call oe_line_scredits_util instead of OE_Order_PVT.Lock_order
1424 
1425     OE_Line_Scredit_Util.Lock_Row
1426     (   x_return_status         => l_return_status
1427     ,   p_x_Line_Scredit_rec    => l_x_Line_Scredit_rec );
1428 
1429     IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1430 
1431         --  Set DB flag and write record to cache.
1432 
1433         l_x_Line_Scredit_rec.db_flag := FND_API.G_TRUE;
1434 
1435         Write_Line_Scredit
1436         (   p_Line_Scredit_rec            => l_x_Line_Scredit_rec
1437         ,   p_db_record                   => TRUE
1438         );
1439 
1440     END IF;
1441 
1442     --  Set return status.
1443 
1444     x_return_status := l_return_status;
1445 
1446     --  Get message count and data
1447 
1448     oe_msg_pub.Count_And_Get
1449     (   p_count                       => x_msg_count
1450     ,   p_data                        => x_msg_data
1451     );
1452 
1453     IF l_debug_level  > 0 THEN
1454         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE_SCREDIT.LOCK_ROW' , 1 ) ;
1455     END IF;
1456 
1457 
1458 EXCEPTION
1459 
1460     WHEN OTHERS THEN
1461 
1462         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1463         THEN
1464             oe_msg_pub.Add_Exc_Msg
1465             (   G_PKG_NAME
1466             ,   'Lock_Row'
1467             );
1468         END IF;
1469 
1470         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1471 
1472         --  Get message count and data
1473 
1474         oe_msg_pub.Count_And_Get
1475         (   p_count                       => x_msg_count
1476         ,   p_data                        => x_msg_data
1477         );
1478 
1479 
1480 
1481 END Lock_Row;
1482 
1483 --  Procedures maintaining Line_Scredit record cache.
1484 
1485 PROCEDURE Write_Line_Scredit
1486 (   p_Line_Scredit_rec              IN  OE_Order_PUB.Line_Scredit_Rec_Type
1487 ,   p_db_record                     IN  BOOLEAN := FALSE
1488 )
1489 IS
1490 --
1491 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1492 --
1493 BEGIN
1494 
1495     IF l_debug_level  > 0 THEN
1496         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE_SCREDIT.WRITE_LINE_SCREDIT' , 1 ) ;
1497     END IF;
1498 
1499     g_Line_Scredit_rec := p_Line_Scredit_rec;
1500 
1501     IF p_db_record THEN
1502 
1503         g_db_Line_Scredit_rec := p_Line_Scredit_rec;
1504 
1505     END IF;
1506 
1507     IF l_debug_level  > 0 THEN
1508         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE_SCREDIT.WRITE_LINE_SCREDIT' , 1 ) ;
1509     END IF;
1510 
1511 END Write_Line_Scredit;
1512 
1513 PROCEDURE  Get_Line_Scredit
1514 (   p_db_record                     IN  BOOLEAN := FALSE
1515 ,   p_sales_credit_id               IN  NUMBER
1516 ,   x_line_scredit_rec              IN OUT NOCOPY OE_Order_PUB.Line_Scredit_Rec_Type
1517 )
1518 IS
1519 --
1520 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1521 --
1522 BEGIN
1523 
1524     IF l_debug_level  > 0 THEN
1525         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE_SCREDIT.GET_LINE_SCREDIT' , 1 ) ;
1526     END IF;
1527 
1528     IF  p_sales_credit_id <> NVL(g_Line_Scredit_rec.sales_credit_id,-1)
1529     THEN
1530 
1531         --  Query row from DB
1532 
1533         OE_Line_Scredit_Util.Query_Row
1534         (   p_sales_credit_id             => p_sales_credit_id
1535 	    ,  x_line_scredit_rec           => g_Line_Scredit_rec
1536         );
1537 
1538         g_Line_Scredit_rec.db_flag     := FND_API.G_TRUE;
1539 
1540         --  Load DB record
1541 
1542         g_db_Line_Scredit_rec          := g_Line_Scredit_rec;
1543 
1544     END IF;
1545 
1546     IF l_debug_level  > 0 THEN
1547         oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE_SCREDIT.GET_LINE_SCREDIT' , 1 ) ;
1548     END IF;
1549 
1550     IF p_db_record THEN
1551 
1552         x_line_scredit_rec:= g_db_Line_Scredit_rec;
1553 
1554     ELSE
1555 
1556         x_line_scredit_rec:= g_Line_Scredit_rec;
1557 
1558     END IF;
1559 
1560 END Get_Line_Scredit;
1561 
1562 PROCEDURE Clear_Line_Scredit
1563 IS
1564 --
1565 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1566 --
1567 BEGIN
1568 
1569     IF l_debug_level  > 0 THEN
1570         oe_debug_pub.add(  'ENTERING OE_OE_FORM_LINE_SCREDIT.CLEAR_LINE_SCREDIT' , 1 ) ;
1571     END IF;
1572 
1573     g_Line_Scredit_rec             := OE_Order_PUB.G_MISS_LINE_SCREDIT_REC;
1574     g_db_Line_Scredit_rec          := OE_Order_PUB.G_MISS_LINE_SCREDIT_REC;
1575 
1576    IF l_debug_level  > 0 THEN
1577        oe_debug_pub.add(  'EXITING OE_OE_FORM_LINE_SCREDIT.CLEAR_LINE_SCREDIT' , 1 ) ;
1578    END IF;
1579 
1580 END Clear_Line_Scredit;
1581 
1582 END OE_OE_Form_Line_Scredit;