DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_OE_FORM_HEADER_SCREDIT

Source


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