DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_LINE_SCREDIT_UTIL

Source


1 PACKAGE BODY OE_Line_Scredit_Util AS
2 /* $Header: OEXULSCB.pls 120.4.12010000.3 2009/06/23 06:33:53 nitagarw ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_Line_Scredit_Util';
7 G_HEADER_ID                   NUMBER;
8 G_SALESREP_ID                 NUMBER;
9 
10 FUNCTION G_MISS_OE_AK_LINE_SCREDIT_REC
11 RETURN OE_AK_LINE_SCREDITS_V%ROWTYPE IS
12 l_rowtype_rec				OE_AK_LINE_SCREDITS_V%ROWTYPE;
13 --
14 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
15 --
16 BEGIN
17 
18     l_rowtype_rec.ATTRIBUTE1	:= FND_API.G_MISS_CHAR;
19     l_rowtype_rec.ATTRIBUTE10	:= FND_API.G_MISS_CHAR;
20     l_rowtype_rec.ATTRIBUTE11	:= FND_API.G_MISS_CHAR;
21     l_rowtype_rec.ATTRIBUTE12	:= FND_API.G_MISS_CHAR;
22     l_rowtype_rec.ATTRIBUTE13	:= FND_API.G_MISS_CHAR;
23     l_rowtype_rec.ATTRIBUTE14	:= FND_API.G_MISS_CHAR;
24     l_rowtype_rec.ATTRIBUTE15	:= FND_API.G_MISS_CHAR;
25     l_rowtype_rec.ATTRIBUTE2	:= FND_API.G_MISS_CHAR;
26     l_rowtype_rec.ATTRIBUTE3	:= FND_API.G_MISS_CHAR;
27     l_rowtype_rec.ATTRIBUTE4	:= FND_API.G_MISS_CHAR;
28     l_rowtype_rec.ATTRIBUTE5	:= FND_API.G_MISS_CHAR;
29     l_rowtype_rec.ATTRIBUTE6	:= FND_API.G_MISS_CHAR;
30     l_rowtype_rec.ATTRIBUTE7	:= FND_API.G_MISS_CHAR;
31     l_rowtype_rec.ATTRIBUTE8	:= FND_API.G_MISS_CHAR;
32     l_rowtype_rec.ATTRIBUTE9	:= FND_API.G_MISS_CHAR;
33     l_rowtype_rec.CONTEXT	:= FND_API.G_MISS_CHAR;
34     l_rowtype_rec.CREATED_BY	:= FND_API.G_MISS_NUM;
35     l_rowtype_rec.CREATION_DATE	:= FND_API.G_MISS_DATE;
36     l_rowtype_rec.DB_FLAG	:= FND_API.G_MISS_CHAR;
37     l_rowtype_rec.DW_UPDATE_ADVICE_FLAG	:= FND_API.G_MISS_CHAR;
38     l_rowtype_rec.HEADER_ID	:= FND_API.G_MISS_NUM;
39     l_rowtype_rec.LAST_UPDATED_BY	:= FND_API.G_MISS_NUM;
40     l_rowtype_rec.LAST_UPDATE_DATE	:= FND_API.G_MISS_DATE;
41     l_rowtype_rec.LAST_UPDATE_LOGIN	:= FND_API.G_MISS_NUM;
42     l_rowtype_rec.LINE_ID	:= FND_API.G_MISS_NUM;
43     l_rowtype_rec.OPERATION	:= FND_API.G_MISS_CHAR;
44     l_rowtype_rec.PERCENT	:= FND_API.G_MISS_NUM;
45     l_rowtype_rec.RETURN_STATUS	:= FND_API.G_MISS_CHAR;
46     l_rowtype_rec.SALESREP_ID	:= FND_API.G_MISS_NUM;
47     l_rowtype_rec.sales_credit_type_id:= FND_API.G_MISS_NUM;
48     l_rowtype_rec.SALES_CREDIT_ID	:= FND_API.G_MISS_NUM;
49     l_rowtype_rec.WH_UPDATE_DATE	:= FND_API.G_MISS_DATE;
50 
51     RETURN l_rowtype_rec;
52 
53 END G_MISS_OE_AK_LINE_SCREDIT_REC;
54 
55 PROCEDURE API_Rec_To_Rowtype_Rec
56 (   p_LINE_SCREDIT_rec              IN  OE_Order_PUB.LINE_SCREDIT_Rec_Type
57 ,   x_rowtype_rec                   IN OUT NOCOPY OE_AK_LINE_SCREDITS_V%ROWTYPE
58 ) IS
59 --
60 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
61 --
62 BEGIN
63 
64     x_rowtype_rec.ATTRIBUTE1       := p_line_scredit_rec.ATTRIBUTE1;
65     x_rowtype_rec.ATTRIBUTE10       := p_line_scredit_rec.ATTRIBUTE10;
66     x_rowtype_rec.ATTRIBUTE11       := p_line_scredit_rec.ATTRIBUTE11;
67     x_rowtype_rec.ATTRIBUTE12       := p_line_scredit_rec.ATTRIBUTE12;
68     x_rowtype_rec.ATTRIBUTE13       := p_line_scredit_rec.ATTRIBUTE13;
69     x_rowtype_rec.ATTRIBUTE14       := p_line_scredit_rec.ATTRIBUTE14;
70     x_rowtype_rec.ATTRIBUTE15       := p_line_scredit_rec.ATTRIBUTE15;
71     x_rowtype_rec.ATTRIBUTE2       := p_line_scredit_rec.ATTRIBUTE2;
72     x_rowtype_rec.ATTRIBUTE3       := p_line_scredit_rec.ATTRIBUTE3;
73     x_rowtype_rec.ATTRIBUTE4       := p_line_scredit_rec.ATTRIBUTE4;
74     x_rowtype_rec.ATTRIBUTE5       := p_line_scredit_rec.ATTRIBUTE5;
75     x_rowtype_rec.ATTRIBUTE6       := p_line_scredit_rec.ATTRIBUTE6;
76     x_rowtype_rec.ATTRIBUTE7       := p_line_scredit_rec.ATTRIBUTE7;
77     x_rowtype_rec.ATTRIBUTE8       := p_line_scredit_rec.ATTRIBUTE8;
78     x_rowtype_rec.ATTRIBUTE9       := p_line_scredit_rec.ATTRIBUTE9;
79     x_rowtype_rec.CONTEXT       := p_line_scredit_rec.CONTEXT;
80     x_rowtype_rec.CREATED_BY       := p_line_scredit_rec.CREATED_BY;
81     x_rowtype_rec.CREATION_DATE       := p_line_scredit_rec.CREATION_DATE;
82     x_rowtype_rec.DB_FLAG       := p_line_scredit_rec.DB_FLAG;
83     x_rowtype_rec.DW_UPDATE_ADVICE_FLAG       := p_line_scredit_rec.DW_UPDATE_ADVICE_FLAG;
84     x_rowtype_rec.HEADER_ID       := p_line_scredit_rec.HEADER_ID;
85     x_rowtype_rec.LAST_UPDATED_BY       := p_line_scredit_rec.LAST_UPDATED_BY;
86     x_rowtype_rec.LAST_UPDATE_DATE       := p_line_scredit_rec.LAST_UPDATE_DATE;
87     x_rowtype_rec.LAST_UPDATE_LOGIN       := p_line_scredit_rec.LAST_UPDATE_LOGIN;
88     x_rowtype_rec.LINE_ID       := p_line_scredit_rec.LINE_ID;
89     x_rowtype_rec.OPERATION       := p_line_scredit_rec.OPERATION;
90     x_rowtype_rec.PERCENT       := p_line_scredit_rec.PERCENT;
91     x_rowtype_rec.RETURN_STATUS       := p_line_scredit_rec.RETURN_STATUS;
92     x_rowtype_rec.SALESREP_ID       := p_line_scredit_rec.SALESREP_ID;
93     x_rowtype_rec.sales_credit_type_id := p_line_scredit_rec.sales_credit_type_id;
94     x_rowtype_rec.SALES_CREDIT_ID       := p_line_scredit_rec.SALES_CREDIT_ID;
95     x_rowtype_rec.WH_UPDATE_DATE       := p_line_scredit_rec.WH_UPDATE_DATE;
96 
97 END API_Rec_To_RowType_Rec;
98 
99 
100 PROCEDURE Rowtype_Rec_To_API_Rec
101 (   p_record                        IN  OE_AK_LINE_SCREDITS_V%ROWTYPE
102 ,   x_api_rec                       IN OUT NOCOPY OE_Order_PUB.LINE_SCREDIT_Rec_Type
103 ) IS
104 --
105 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
106 --
107 BEGIN
108 
109     x_api_rec.ATTRIBUTE1       := p_record.ATTRIBUTE1;
110     x_api_rec.ATTRIBUTE10       := p_record.ATTRIBUTE10;
111     x_api_rec.ATTRIBUTE11       := p_record.ATTRIBUTE11;
112     x_api_rec.ATTRIBUTE12       := p_record.ATTRIBUTE12;
113     x_api_rec.ATTRIBUTE13       := p_record.ATTRIBUTE13;
114     x_api_rec.ATTRIBUTE14       := p_record.ATTRIBUTE14;
115     x_api_rec.ATTRIBUTE15       := p_record.ATTRIBUTE15;
116     x_api_rec.ATTRIBUTE2       := p_record.ATTRIBUTE2;
117     x_api_rec.ATTRIBUTE3       := p_record.ATTRIBUTE3;
118     x_api_rec.ATTRIBUTE4       := p_record.ATTRIBUTE4;
119     x_api_rec.ATTRIBUTE5       := p_record.ATTRIBUTE5;
120     x_api_rec.ATTRIBUTE6       := p_record.ATTRIBUTE6;
121     x_api_rec.ATTRIBUTE7       := p_record.ATTRIBUTE7;
122     x_api_rec.ATTRIBUTE8       := p_record.ATTRIBUTE8;
123     x_api_rec.ATTRIBUTE9       := p_record.ATTRIBUTE9;
124     x_api_rec.CONTEXT       := p_record.CONTEXT;
125     x_api_rec.CREATED_BY       := p_record.CREATED_BY;
126     x_api_rec.CREATION_DATE       := p_record.CREATION_DATE;
127     x_api_rec.DB_FLAG       := p_record.DB_FLAG;
128     x_api_rec.DW_UPDATE_ADVICE_FLAG       := p_record.DW_UPDATE_ADVICE_FLAG;
129     x_api_rec.HEADER_ID       := p_record.HEADER_ID;
130     x_api_rec.LAST_UPDATED_BY       := p_record.LAST_UPDATED_BY;
131     x_api_rec.LAST_UPDATE_DATE       := p_record.LAST_UPDATE_DATE;
132     x_api_rec.LAST_UPDATE_LOGIN       := p_record.LAST_UPDATE_LOGIN;
133     x_api_rec.LINE_ID       := p_record.LINE_ID;
134     x_api_rec.OPERATION       := p_record.OPERATION;
135     x_api_rec.PERCENT       := p_record.PERCENT;
136     x_api_rec.RETURN_STATUS       := p_record.RETURN_STATUS;
137     x_api_rec.SALESREP_ID       := p_record.SALESREP_ID;
138     x_api_rec.sales_credit_type_id  := p_record.sales_credit_type_id;
139     x_api_rec.SALES_CREDIT_ID       := p_record.SALES_CREDIT_ID;
140     x_api_rec.WH_UPDATE_DATE       := p_record.WH_UPDATE_DATE;
141 
142 END Rowtype_Rec_To_API_Rec;
143 
144 PROCEDURE Clear_Dependent_Attr
145 (   p_attr_id                       IN  NUMBER := FND_API.G_MISS_NUM
146 ,   p_x_Line_Scredit_rec            IN OUT NOCOPY OE_AK_LINE_SCREDITS_V%ROWTYPE
147 ,   p_old_Line_Scredit_rec          IN  OE_AK_LINE_SCREDITS_V%ROWTYPE :=
148                                         G_MISS_OE_AK_LINE_SCREDIT_REC
149 )
150 IS
151 l_index			NUMBER :=0;
152 l_src_attr_tbl		OE_GLOBALS.NUMBER_Tbl_Type;
153 l_dep_attr_tbl		OE_GLOBALS.NUMBER_Tbl_Type;
154 --
155 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
156 --
157 BEGIN
158 
159     IF l_debug_level  > 0 THEN
160         oe_debug_pub.add(  'ENTERING OE_LINE_SCREDIT_UTIL.CLEAR_DEPENDENT_ATTR' , 1 ) ;
161     END IF;
162 
163     --  If attr_id is missing compare old and new records and for
164     --  every changed attribute clear its dependent fields.
165 
166     IF p_attr_id = FND_API.G_MISS_NUM THEN
167 
168         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute1,p_old_Line_Scredit_rec.attribute1)
169         THEN
170            l_index := l_index + 1;
171            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE1;
172         END IF;
173 
174         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute10,p_old_Line_Scredit_rec.attribute10)
175         THEN
176            l_index := l_index + 1;
177            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE10;
178         END IF;
179 
180         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute11,p_old_Line_Scredit_rec.attribute11)
181         THEN
182            l_index := l_index + 1;
183            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE11;
184         END IF;
185 
186         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute12,p_old_Line_Scredit_rec.attribute12)
187         THEN
188            l_index := l_index + 1;
189            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE12;
190         END IF;
191 
192         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute13,p_old_Line_Scredit_rec.attribute13)
193         THEN
194            l_index := l_index + 1;
195            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE13;
196         END IF;
197 
198         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute14,p_old_Line_Scredit_rec.attribute14)
199         THEN
200            l_index := l_index + 1;
201            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE14;
202         END IF;
203 
204         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute15,p_old_Line_Scredit_rec.attribute15)
205         THEN
206            l_index := l_index + 1;
207            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE15;
208         END IF;
209 
210         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute2,p_old_Line_Scredit_rec.attribute2)
211         THEN
212            l_index := l_index + 1;
213            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE2;
214         END IF;
215 
216         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute3,p_old_Line_Scredit_rec.attribute3)
217         THEN
218            l_index := l_index + 1;
219            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE3;
220         END IF;
221 
222         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute4,p_old_Line_Scredit_rec.attribute4)
223         THEN
224            l_index := l_index + 1;
225            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE4;
226         END IF;
227 
228         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute5,p_old_Line_Scredit_rec.attribute5)
229         THEN
230            l_index := l_index + 1;
231            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE5;
232         END IF;
233 
234         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute6,p_old_Line_Scredit_rec.attribute6)
235         THEN
236            l_index := l_index + 1;
237            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE6;
238         END IF;
239 
240         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute7,p_old_Line_Scredit_rec.attribute7)
241         THEN
242            l_index := l_index + 1;
243            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE7;
244         END IF;
245 
246         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute8,p_old_Line_Scredit_rec.attribute8)
247         THEN
248            l_index := l_index + 1;
249            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE8;
250         END IF;
251 
252         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute9,p_old_Line_Scredit_rec.attribute9)
253         THEN
254            l_index := l_index + 1;
255            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE9;
256         END IF;
257 
258         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.context,p_old_Line_Scredit_rec.context)
259         THEN
260            l_index := l_index + 1;
261            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_CONTEXT;
262         END IF;
263 
264         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.created_by,p_old_Line_Scredit_rec.created_by)
265         THEN
266            l_index := l_index + 1;
267            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_CREATED_BY;
268         END IF;
269 
270         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.creation_date,p_old_Line_Scredit_rec.creation_date)
271         THEN
272            l_index := l_index + 1;
273            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_CREATION_DATE;
274         END IF;
275 
276         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.dw_update_advice_flag,p_old_Line_Scredit_rec.dw_update_advice_flag)
277         THEN
278            l_index := l_index + 1;
279            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_DW_UPDATE_ADVICE;
280         END IF;
281 
282         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.header_id,p_old_Line_Scredit_rec.header_id)
283         THEN
284            l_index := l_index + 1;
285            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_HEADER;
286         END IF;
287 
288         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.last_updated_by,p_old_Line_Scredit_rec.last_updated_by)
289         THEN
290            l_index := l_index + 1;
291            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_LAST_UPDATED_BY;
292         END IF;
293 
294         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.last_update_date,p_old_Line_Scredit_rec.last_update_date)
295         THEN
296            l_index := l_index + 1;
297            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_LAST_UPDATE_DATE;
298         END IF;
299 
300         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.last_update_login,p_old_Line_Scredit_rec.last_update_login)
301         THEN
302            l_index := l_index + 1;
303            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_LAST_UPDATE_LOGIN;
304         END IF;
305 
306         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.line_id,p_old_Line_Scredit_rec.line_id)
307         THEN
308            l_index := l_index + 1;
309            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_LINE;
310         END IF;
311 
312         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.percent,p_old_Line_Scredit_rec.percent)
313         THEN
314            l_index := l_index + 1;
315            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_PERCENT;
316         END IF;
317 
318 
319         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.salesrep_id,p_old_Line_Scredit_rec.salesrep_id)
320         THEN
321            l_index := l_index + 1;
322            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_SALESREP;
323         END IF;
324 
325         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.sales_credit_type_id,p_old_Line_Scredit_rec.sales_credit_type_id)
326         THEN
327            l_index := l_index + 1;
328            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_sales_credit_type;
329         END IF;
330 
331         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.sales_credit_id,p_old_Line_Scredit_rec.sales_credit_id)
332         THEN
333            l_index := l_index + 1;
334            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_SALES_CREDIT;
335         END IF;
336 
337         IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.wh_update_date,p_old_Line_Scredit_rec.wh_update_date)
338         THEN
339            l_index := l_index + 1;
340            l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_WH_UPDATE_DATE;
341         END IF;
342 
343     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
344         l_index := l_index + 1;
345         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE1;
346     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
347         l_index := l_index + 1;
348         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE10;
349     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
350         l_index := l_index + 1;
351         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE11;
352     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
353         l_index := l_index + 1;
354         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE12;
355     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
356         l_index := l_index + 1;
357         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE13;
358     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
359         l_index := l_index + 1;
360         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE14;
361     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
362         l_index := l_index + 1;
363         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE15;
364     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
365         l_index := l_index + 1;
366         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE2;
367     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
368         l_index := l_index + 1;
369         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE3;
370     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
371         l_index := l_index + 1;
372         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE4;
373     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
374         l_index := l_index + 1;
375         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE5;
376     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
377         l_index := l_index + 1;
378         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE6;
379     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
380         l_index := l_index + 1;
381         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE7;
382     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
383         l_index := l_index + 1;
384         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE8;
385     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
386         l_index := l_index + 1;
387         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE9;
388     ELSIF p_attr_id = G_CONTEXT THEN
389         l_index := l_index + 1;
390         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_CONTEXT;
391     ELSIF p_attr_id = G_CREATED_BY THEN
392         l_index := l_index + 1;
393         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_CREATED_BY;
394     ELSIF p_attr_id = G_CREATION_DATE THEN
395         l_index := l_index + 1;
396         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_CREATION_DATE;
397     ELSIF p_attr_id = G_DW_UPDATE_ADVICE THEN
398         l_index := l_index + 1;
399         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_DW_UPDATE_ADVICE;
400     ELSIF p_attr_id = G_HEADER THEN
401         l_index := l_index + 1;
402         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_HEADER;
403     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
404         l_index := l_index + 1;
405         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_LAST_UPDATED_BY;
406     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
407         l_index := l_index + 1;
408         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_LAST_UPDATE_DATE;
409     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
410         l_index := l_index + 1;
411         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_LAST_UPDATE_LOGIN;
412     ELSIF p_attr_id = G_LINE THEN
413         l_index := l_index + 1;
414         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_LINE;
415     ELSIF p_attr_id = G_PERCENT THEN
416         l_index := l_index + 1;
417         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_PERCENT;
418     ELSIF p_attr_id = G_SALESREP THEN
419         l_index := l_index + 1;
420         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_SALESREP;
421     ELSIF p_attr_id = G_sales_credit_type THEN
422         l_index := l_index + 1;
423         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_sales_credit_type;
424     ELSIF p_attr_id = G_SALES_CREDIT THEN
425         l_index := l_index + 1;
426         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_SALES_CREDIT;
427     ELSIF p_attr_id = G_WH_UPDATE_DATE THEN
428         l_index := l_index + 1;
429         l_src_attr_tbl(l_index) := OE_LINE_SCREDIT_UTIL.G_WH_UPDATE_DATE;
430     END IF;
431 
432     If l_src_attr_tbl.COUNT <> 0 THEN
433 
434         OE_Dependencies.Mark_Dependent
435         (p_entity_code     => OE_GLOBALS.G_ENTITY_LINE_SCREDIT,
436         p_source_attr_tbl => l_src_attr_tbl,
437         p_dep_attr_tbl    => l_dep_attr_tbl);
438 
439         FOR I IN 1..l_dep_attr_tbl.COUNT LOOP
440             IF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE1 THEN
441                 p_x_Line_Scredit_rec.ATTRIBUTE1 := FND_API.G_MISS_NUM;
442             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE10 THEN
443                 p_x_Line_Scredit_rec.ATTRIBUTE10 := FND_API.G_MISS_CHAR;
444             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE11 THEN
445                 p_x_Line_Scredit_rec.ATTRIBUTE11 := FND_API.G_MISS_CHAR;
446             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE12 THEN
447                 p_x_Line_Scredit_rec.ATTRIBUTE12 := FND_API.G_MISS_CHAR;
448             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE13 THEN
449                 p_x_Line_Scredit_rec.ATTRIBUTE13 := FND_API.G_MISS_CHAR;
450             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE14 THEN
451                 p_x_Line_Scredit_rec.ATTRIBUTE14 := FND_API.G_MISS_CHAR;
452             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE15 THEN
453                 p_x_Line_Scredit_rec.ATTRIBUTE15 := FND_API.G_MISS_CHAR;
454             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE2 THEN
455                 p_x_Line_Scredit_rec.ATTRIBUTE2 := FND_API.G_MISS_CHAR;
456             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE3 THEN
457                 p_x_Line_Scredit_rec.ATTRIBUTE3 := FND_API.G_MISS_CHAR;
458             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE4 THEN
459                 p_x_Line_Scredit_rec.ATTRIBUTE4 := FND_API.G_MISS_CHAR;
460             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE5 THEN
461                 p_x_Line_Scredit_rec.ATTRIBUTE5 := FND_API.G_MISS_CHAR;
462             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE6 THEN
463                 p_x_Line_Scredit_rec.ATTRIBUTE6 := FND_API.G_MISS_CHAR;
464             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE7 THEN
465                 p_x_Line_Scredit_rec.ATTRIBUTE7 := FND_API.G_MISS_CHAR;
466             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE8 THEN
467                 p_x_Line_Scredit_rec.ATTRIBUTE8 := FND_API.G_MISS_CHAR;
468             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_ATTRIBUTE9 THEN
469                 p_x_Line_Scredit_rec.ATTRIBUTE9 := FND_API.G_MISS_CHAR;
470             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_CONTEXT THEN
471                 p_x_Line_Scredit_rec.CONTEXT := FND_API.G_MISS_CHAR;
472             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_CREATED_BY THEN
473                 p_x_Line_Scredit_rec.CREATED_BY := FND_API.G_MISS_NUM;
474             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_CREATION_DATE THEN
475                 p_x_Line_Scredit_rec.CREATION_DATE := FND_API.G_MISS_DATE;
476             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_DW_UPDATE_ADVICE THEN
477                 p_x_Line_Scredit_rec.DW_UPDATE_ADVICE_FLAG := FND_API.G_MISS_CHAR;
478             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_HEADER THEN
479                 p_x_Line_Scredit_rec.HEADER_ID := FND_API.G_MISS_NUM;
480             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_LAST_UPDATED_BY THEN
481                 p_x_Line_Scredit_rec.LAST_UPDATED_BY := FND_API.G_MISS_NUM;
482             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_LAST_UPDATE_DATE THEN
483                 p_x_Line_Scredit_rec.LAST_UPDATE_DATE := FND_API.G_MISS_DATE;
484             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_LAST_UPDATE_LOGIN THEN
485                 p_x_Line_Scredit_rec.LAST_UPDATE_LOGIN := FND_API.G_MISS_NUM;
486             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_LINE THEN
487                 p_x_Line_Scredit_rec.LINE_ID := FND_API.G_MISS_NUM;
488             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_PERCENT THEN
489                 p_x_Line_Scredit_rec.PERCENT := FND_API.G_MISS_NUM;
490             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_SALESREP THEN
491                 p_x_Line_Scredit_rec.SALESREP_ID := FND_API.G_MISS_NUM;
492             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_sales_credit_type THEN
493                 p_x_Line_Scredit_rec.sales_credit_type_id := FND_API.G_MISS_NUM;
494             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_SALES_CREDIT THEN
495                 p_x_Line_Scredit_rec.SALES_CREDIT_ID := FND_API.G_MISS_NUM;
496             ELSIF l_dep_attr_tbl(I) = OE_LINE_SCREDIT_UTIL.G_WH_UPDATE_DATE THEN
497                 p_x_Line_Scredit_rec.WH_UPDATE_DATE := FND_API.G_MISS_DATE;
498     	    END IF;
499         END LOOP;
500     END IF;
501 
502     IF l_debug_level  > 0 THEN
503         oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.CLEAR_DEPENDENT_ATTR' , 1 ) ;
504     END IF;
505 
506 END Clear_Dependent_Attr;
507 
508 
509 --  Procedure Clear_Dependent_Attr
510 
511 PROCEDURE Clear_Dependent_Attr
512 (   p_attr_id                       IN  NUMBER := FND_API.G_MISS_NUM
513 ,   p_x_Line_Scredit_rec            IN OUT NOCOPY OE_Order_PUB.Line_Scredit_Rec_Type
514 ,   p_old_Line_Scredit_rec          IN  OE_Order_PUB.Line_Scredit_Rec_Type :=
515                                         OE_Order_PUB.G_MISS_LINE_SCREDIT_REC
516 )
517 IS
518 l_Line_Scredit_rec		OE_AK_LINE_SCREDITS_V%ROWTYPE;
519 l_old_Line_Scredit_rec 		OE_AK_LINE_SCREDITS_V%ROWTYPE;
520 --
521 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
522 --
523 BEGIN
524 
525 	API_Rec_To_Rowtype_Rec(p_x_Line_Scredit_rec,l_Line_Scredit_rec);
526 	API_Rec_To_Rowtype_Rec(p_old_Line_Scredit_rec, l_old_Line_Scredit_rec);
527 
528 	Clear_Dependent_Attr
529 		(p_attr_id			=> p_attr_id
530 		,p_x_Line_Scredit_rec		=> l_Line_Scredit_rec
531 		,p_old_Line_Scredit_rec	=> l_old_Line_Scredit_rec
532 		);
533 
534 	Rowtype_Rec_To_API_Rec(l_Line_Scredit_rec,p_x_Line_Scredit_rec);
535 
536 END Clear_Dependent_Attr;
537 
538 
539 --  Procedure Apply_Attribute_Changes
540 
541 PROCEDURE Apply_Attribute_Changes
542 (   p_x_Line_Scredit_rec            IN  OUT NOCOPY OE_Order_PUB.Line_Scredit_Rec_Type
543 ,   p_old_Line_Scredit_rec          IN  OE_Order_PUB.Line_Scredit_Rec_Type :=
544                                         OE_Order_PUB.G_MISS_LINE_SCREDIT_REC
545 )
546 IS
547 l_return_status                   Varchar2(10);
548 --SG{
549 l_sg_date DATE;
550 l_out Varchar2(240);
551 l_status Varchar2(30);
552 --SG}
553 --
554 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
555 --
556 BEGIN
557 
558     IF l_debug_level  > 0 THEN
559         oe_debug_pub.add(  'ENTERING OE_LINE_SCREDIT_UTIL.APPLY_ATTRIBUTE_CHANGES' , 1 ) ;
560     END IF;
561 
562     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute1,p_old_Line_Scredit_rec.attribute1)
563     THEN
564         NULL;
565     END IF;
566 
567     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute10,p_old_Line_Scredit_rec.attribute10)
568     THEN
569         NULL;
570     END IF;
571 
572     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute11,p_old_Line_Scredit_rec.attribute11)
573     THEN
574         NULL;
575     END IF;
576 
577     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute12,p_old_Line_Scredit_rec.attribute12)
578     THEN
579         NULL;
580     END IF;
581 
582     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute13,p_old_Line_Scredit_rec.attribute13)
583     THEN
584         NULL;
585     END IF;
586 
587     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute14,p_old_Line_Scredit_rec.attribute14)
588     THEN
589         NULL;
590     END IF;
591 
592     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute15,p_old_Line_Scredit_rec.attribute15)
593     THEN
594         NULL;
595     END IF;
596 
597     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute2,p_old_Line_Scredit_rec.attribute2)
598     THEN
599         NULL;
600     END IF;
601 
602     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute3,p_old_Line_Scredit_rec.attribute3)
603     THEN
604         NULL;
605     END IF;
606 
607     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute4,p_old_Line_Scredit_rec.attribute4)
608     THEN
609         NULL;
610     END IF;
611 
612     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute5,p_old_Line_Scredit_rec.attribute5)
613     THEN
614         NULL;
615     END IF;
616 
617     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute6,p_old_Line_Scredit_rec.attribute6)
618     THEN
619         NULL;
620     END IF;
621 
622     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute7,p_old_Line_Scredit_rec.attribute7)
623     THEN
624         NULL;
625     END IF;
626 
627     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute8,p_old_Line_Scredit_rec.attribute8)
628     THEN
629         NULL;
630     END IF;
631 
632     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.attribute9,p_old_Line_Scredit_rec.attribute9)
633     THEN
634         NULL;
635     END IF;
636 
637     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.context,p_old_Line_Scredit_rec.context)
638     THEN
639         NULL;
640     END IF;
641 
642     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.created_by,p_old_Line_Scredit_rec.created_by)
643     THEN
644         NULL;
645     END IF;
646 
647     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.creation_date,p_old_Line_Scredit_rec.creation_date)
648     THEN
649         NULL;
650     END IF;
651 
652     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.dw_update_advice_flag,p_old_Line_Scredit_rec.dw_update_advice_flag)
653     THEN
654         NULL;
655     END IF;
656 
657     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.header_id,p_old_Line_Scredit_rec.header_id)
658     THEN
659         NULL;
660     END IF;
661 
662     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.last_updated_by,p_old_Line_Scredit_rec.last_updated_by)
663     THEN
664         NULL;
665     END IF;
666 
667     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.last_update_date,p_old_Line_Scredit_rec.last_update_date)
668     THEN
669         NULL;
670     END IF;
671 
672     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.last_update_login,p_old_Line_Scredit_rec.last_update_login)
673     THEN
674         NULL;
675     END IF;
676 
677     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.line_id,p_old_Line_Scredit_rec.line_id)
678     THEN
679         NULL;
680     END IF;
681 
682     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.percent,p_old_Line_Scredit_rec.percent)
683     THEN
684         -- Add delayed request to validate quota percent sums up to 100
685         OE_Delayed_Requests_Pvt.Log_Request
686                (p_entity_code=>OE_GLOBALS.G_ENTITY_Line_Scredit
687                ,p_entity_id=>p_x_Line_Scredit_rec.sales_credit_id
688                ,p_requesting_entity_code=>OE_GLOBALS.G_ENTITY_Line_Scredit
689                ,p_requesting_entity_id=>p_x_Line_Scredit_rec.sales_credit_id
690                ,p_request_type=>OE_GLOBALS.G_CHECK_LSC_QUOTA_TOTAL
691                ,p_param1     => to_char(p_x_Line_Scredit_rec.Line_id)
692                ,x_return_status =>l_return_status);
693         IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
694             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
695         ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
696             RAISE FND_API.G_EXC_ERROR;
697         END IF;
698 
699         -- Add delayed request to cascade changes to service lines.
700         OE_Delayed_Requests_Pvt.Log_Request
701                (p_entity_code=>OE_GLOBALS.G_ENTITY_Line_Scredit
702                ,p_entity_id=>p_x_Line_Scredit_rec.sales_credit_id
703                ,p_requesting_entity_code=>OE_GLOBALS.G_ENTITY_Line_Scredit
704                ,p_requesting_entity_id=>p_x_Line_Scredit_rec.sales_credit_id
705                ,p_request_type=>OE_GLOBALS.G_CASCADE_SERVICE_SCREDIT
706                ,p_param8 => to_char(p_x_Line_Scredit_rec.Line_id)
707                ,p_param1 => to_char(p_x_Line_Scredit_rec.salesrep_id)
708                ,p_param2 => to_char(p_old_Line_Scredit_rec.salesrep_id)
709                ,p_param3 => to_char(p_x_Line_Scredit_rec.Sales_credit_type_id)
710                ,p_param4 => to_char(p_old_Line_Scredit_rec.Sales_credit_type_id)
711                ,p_param5 => to_char(p_x_Line_Scredit_rec.percent)
712                ,p_param6 => to_char(p_old_Line_Scredit_rec.percent)
713                ,p_param7 => p_x_Line_Scredit_rec.operation
714                ,x_return_status =>l_return_status);
715 
716         IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
717             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
718         ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
719             RAISE FND_API.G_EXC_ERROR;
720         END IF;
721 
722     END IF;
723 
724     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.sales_credit_type_id,p_old_Line_Scredit_rec.sales_credit_type_id)
725     THEN
726           -- Add delayed request to validate quota percent sums up to 100
727         OE_Delayed_Requests_Pvt.Log_Request
728                (p_entity_code=>OE_GLOBALS.G_ENTITY_Line_Scredit
729                ,p_entity_id=>p_x_Line_Scredit_rec.sales_credit_id
730                ,p_requesting_entity_code=>OE_GLOBALS.G_ENTITY_Line_Scredit
731                ,p_requesting_entity_id=>p_x_Line_Scredit_rec.sales_credit_id
732                ,p_request_type=>OE_GLOBALS.G_CHECK_LSC_QUOTA_TOTAL
733                ,p_param1     => to_char(p_x_Line_Scredit_rec.Line_id)
734                ,x_return_status =>l_return_status);
735         IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
736             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
737         ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
738             RAISE FND_API.G_EXC_ERROR;
739         END IF;
740     --END IF; Commented of this end if as part of fix for bug#2174201
741 
742         -- Add delayed request to cascade changes to service lines.
743         OE_Delayed_Requests_Pvt.Log_Request
744                (p_entity_code=>OE_GLOBALS.G_ENTITY_Line_Scredit
745                ,p_entity_id=>p_x_Line_Scredit_rec.sales_credit_id
746                ,p_requesting_entity_code=>OE_GLOBALS.G_ENTITY_Line_Scredit
747                ,p_requesting_entity_id=>p_x_Line_Scredit_rec.sales_credit_id
748                ,p_request_type=>OE_GLOBALS.G_CASCADE_SERVICE_SCREDIT
749                ,p_param8 => to_char(p_x_Line_Scredit_rec.Line_id)
750                ,p_param1 => to_char(p_x_Line_Scredit_rec.salesrep_id)
751                ,p_param2 => to_char(p_old_Line_Scredit_rec.salesrep_id)
752                ,p_param3 => to_char(p_x_Line_Scredit_rec.Sales_credit_type_id)
753                ,p_param4 => to_char(p_old_Line_Scredit_rec.Sales_credit_type_id)
754                ,p_param5 => to_char(p_x_Line_Scredit_rec.percent)
755                ,p_param6 => to_char(p_old_Line_Scredit_rec.percent)
756                ,p_param7 => p_x_Line_Scredit_rec.operation
757                ,x_return_status =>l_return_status);
758 
759         IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
760             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
761         ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
762             RAISE FND_API.G_EXC_ERROR;
763         END IF;
764     END IF; --Commented end if moved here as part of fix for bug#2174201
765 
766     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.salesrep_id,p_old_Line_Scredit_rec.salesrep_id)
767     THEN
768         -- Add delayed request to cascade changes to service lines.
769         OE_Delayed_Requests_Pvt.Log_Request
770                (p_entity_code=>OE_GLOBALS.G_ENTITY_Line_Scredit
771                ,p_entity_id=>p_x_Line_Scredit_rec.sales_credit_id
772                ,p_requesting_entity_code=>OE_GLOBALS.G_ENTITY_Line_Scredit
773                ,p_requesting_entity_id=>p_x_Line_Scredit_rec.sales_credit_id
774                ,p_request_type=>OE_GLOBALS.G_CASCADE_SERVICE_SCREDIT
775                ,p_param8 => to_char(p_x_Line_Scredit_rec.Line_id)
776                ,p_param1 => to_char(p_x_Line_Scredit_rec.salesrep_id)
777                ,p_param2 => to_char(p_old_Line_Scredit_rec.salesrep_id)
778                ,p_param3 => to_char(p_x_Line_Scredit_rec.Sales_credit_type_id)
779                ,p_param4 => to_char(p_old_Line_Scredit_rec.Sales_credit_type_id)
780                ,p_param5 => to_char(p_x_Line_Scredit_rec.percent)
781                ,p_param6 => to_char(p_old_Line_Scredit_rec.percent)
782                ,p_param7 => p_x_Line_Scredit_rec.operation
783                ,x_return_status =>l_return_status);
784 
785         IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
786             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
787         ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
788             RAISE FND_API.G_EXC_ERROR;
789         END IF;
790 
791     --SG{
792           IF OE_ORDER_CACHE.G_HEADER_REC.header_id IS NULL THEN
793              --header not available in cache, load info to cache
794             IF p_x_line_Scredit_rec.line_Id IS NOT NULL THEN
795              OE_ORDER_CACHE.Load_Order_Header(p_x_line_Scredit_rec.Header_Id);
796             ELSE
797              oe_debug_pub.add(' Warning:Null header_id for header sales credits');
798             END IF;
799           END IF;
800 
801           IF OE_ORDER_CACHE.G_HEADER_REC.booked_flag = 'Y' THEN
802              l_sg_date := OE_ORDER_CACHE.G_HEADER_REC.booked_date;
803           ELSE
804              l_sg_date := OE_ORDER_CACHE.G_HEADER_REC.ordered_date;
805           END IF;
806 
807 --5692017
808        IF p_x_line_Scredit_rec.operation = oe_globals.g_opr_create AND
809           p_x_line_Scredit_rec.sales_group_id IS NOT NULL AND
810           nvl(p_x_line_Scredit_rec.sales_group_updated_flag,'N') = 'Y' THEN
811              oe_debug_pub.add('do not re-default sales group');
812        ELSE
813 --5692017
814           OE_Header_Scredit_Util.Get_Sales_Group(p_date => l_sg_date,
815                           p_sales_rep_id  =>p_x_line_Scredit_rec.salesrep_id,
816                           x_sales_group_id=>p_x_line_Scredit_rec.sales_group_id,
817                           x_return_status =>l_status);
818        END IF;  --5692017
819         --SG}
820 
821     END IF;
822 
823 
824  --SG{
825      IF nvl(p_x_line_Scredit_rec.sales_group_updated_flag,'N') <> 'Y'
826         AND nvl(p_x_line_Scredit_rec.salesrep_id,FND_API.G_MISS_NUM)<>FND_API.G_MISS_NUM
827      THEN
828 
829           IF OE_ORDER_CACHE.G_HEADER_REC.header_id IS NULL THEN
830              --header not available in cache, load info to cache
831             IF p_x_line_Scredit_rec.Header_Id IS NOT NULL THEN
832              OE_ORDER_CACHE.Load_Order_Header(p_x_line_Scredit_rec.Header_Id);
833             ELSE
834              oe_debug_pub.add(' Warning:Null header_id for header sales credits');
835             END IF;
836           END IF;
837 
838           IF OE_ORDER_CACHE.G_HEADER_REC.booked_flag = 'Y' THEN
839              l_sg_date := OE_ORDER_CACHE.G_HEADER_REC.booked_date;
840           ELSE
841              l_sg_date := OE_ORDER_CACHE.G_HEADER_REC.ordered_date;
842           END IF;
843 
844           oe_debug_pub.add('Before getting sales group--line');
845           OE_Header_Scredit_Util.Get_Sales_Group(p_date => l_sg_date,
846                           p_sales_rep_id  =>p_x_line_Scredit_rec.salesrep_id,
847                           x_sales_group_id=>p_x_line_Scredit_rec.sales_group_id,
848                           x_return_status =>l_status);
849      END IF;
850    --SG}
851 
852     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.sales_credit_type_id ,p_old_Line_Scredit_rec.sales_credit_type_id)
853     THEN
854         NULL;
855     END IF;
856 
857     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.sales_credit_id,p_old_Line_Scredit_rec.sales_credit_id)
858     THEN
859         NULL;
860     END IF;
861 
862     IF NOT OE_GLOBALS.Equal(p_x_Line_Scredit_rec.wh_update_date,p_old_Line_Scredit_rec.wh_update_date)
863     THEN
864         NULL;
865     END IF;
866 
867     IF l_debug_level  > 0 THEN
868         oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.APPLY_ATTRIBUTE_CHANGES' , 1 ) ;
869     END IF;
870 
871 END Apply_Attribute_Changes;
872 
873 --  Function Complete_Record
874 
875 PROCEDURE Complete_Record
876 (   p_x_Line_Scredit_rec              IN OUT NOCOPY OE_Order_PUB.Line_Scredit_Rec_Type
877 ,   p_old_Line_Scredit_rec          IN  OE_Order_PUB.Line_Scredit_Rec_Type
878 )
879 IS
880 --
881 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
882 --
883 BEGIN
884 
885     IF l_debug_level  > 0 THEN
886         oe_debug_pub.add(  'ENTERING OE_LINE_SCREDIT_UTIL.COMPLETE_RECORD' , 1 ) ;
887     END IF;
888 
889     IF p_x_Line_Scredit_rec.attribute1 = FND_API.G_MISS_CHAR THEN
890         p_x_Line_Scredit_rec.attribute1 := p_old_Line_Scredit_rec.attribute1;
891     END IF;
892 
893     IF p_x_Line_Scredit_rec.attribute10 = FND_API.G_MISS_CHAR THEN
894         p_x_Line_Scredit_rec.attribute10 := p_old_Line_Scredit_rec.attribute10;
895     END IF;
896 
897     IF p_x_Line_Scredit_rec.attribute11 = FND_API.G_MISS_CHAR THEN
898         p_x_Line_Scredit_rec.attribute11 := p_old_Line_Scredit_rec.attribute11;
899     END IF;
900 
901     IF p_x_Line_Scredit_rec.attribute12 = FND_API.G_MISS_CHAR THEN
902         p_x_Line_Scredit_rec.attribute12 := p_old_Line_Scredit_rec.attribute12;
903     END IF;
904 
905     IF p_x_Line_Scredit_rec.attribute13 = FND_API.G_MISS_CHAR THEN
906         p_x_Line_Scredit_rec.attribute13 := p_old_Line_Scredit_rec.attribute13;
907     END IF;
908 
909     IF p_x_Line_Scredit_rec.attribute14 = FND_API.G_MISS_CHAR THEN
910         p_x_Line_Scredit_rec.attribute14 := p_old_Line_Scredit_rec.attribute14;
911     END IF;
912 
913     IF p_x_Line_Scredit_rec.attribute15 = FND_API.G_MISS_CHAR THEN
914         p_x_Line_Scredit_rec.attribute15 := p_old_Line_Scredit_rec.attribute15;
915     END IF;
916 
917     IF p_x_Line_Scredit_rec.attribute2 = FND_API.G_MISS_CHAR THEN
918         p_x_Line_Scredit_rec.attribute2 := p_old_Line_Scredit_rec.attribute2;
919     END IF;
920 
921     IF p_x_Line_Scredit_rec.attribute3 = FND_API.G_MISS_CHAR THEN
922         p_x_Line_Scredit_rec.attribute3 := p_old_Line_Scredit_rec.attribute3;
923     END IF;
924 
925     IF p_x_Line_Scredit_rec.attribute4 = FND_API.G_MISS_CHAR THEN
926         p_x_Line_Scredit_rec.attribute4 := p_old_Line_Scredit_rec.attribute4;
927     END IF;
928 
929     IF p_x_Line_Scredit_rec.attribute5 = FND_API.G_MISS_CHAR THEN
930         p_x_Line_Scredit_rec.attribute5 := p_old_Line_Scredit_rec.attribute5;
931     END IF;
932 
933     IF p_x_Line_Scredit_rec.attribute6 = FND_API.G_MISS_CHAR THEN
934         p_x_Line_Scredit_rec.attribute6 := p_old_Line_Scredit_rec.attribute6;
935     END IF;
936 
937     IF p_x_Line_Scredit_rec.attribute7 = FND_API.G_MISS_CHAR THEN
938         p_x_Line_Scredit_rec.attribute7 := p_old_Line_Scredit_rec.attribute7;
939     END IF;
940 
941     IF p_x_Line_Scredit_rec.attribute8 = FND_API.G_MISS_CHAR THEN
942         p_x_Line_Scredit_rec.attribute8 := p_old_Line_Scredit_rec.attribute8;
943     END IF;
944 
945     IF p_x_Line_Scredit_rec.attribute9 = FND_API.G_MISS_CHAR THEN
946         p_x_Line_Scredit_rec.attribute9 := p_old_Line_Scredit_rec.attribute9;
947     END IF;
948 
949     IF p_x_Line_Scredit_rec.context = FND_API.G_MISS_CHAR THEN
950         p_x_Line_Scredit_rec.context := p_old_Line_Scredit_rec.context;
951     END IF;
952 
953     IF p_x_Line_Scredit_rec.created_by = FND_API.G_MISS_NUM THEN
954         p_x_Line_Scredit_rec.created_by := p_old_Line_Scredit_rec.created_by;
955     END IF;
956 
957     IF p_x_Line_Scredit_rec.creation_date = FND_API.G_MISS_DATE THEN
958         p_x_Line_Scredit_rec.creation_date := p_old_Line_Scredit_rec.creation_date;
959     END IF;
960 
961     IF p_x_Line_Scredit_rec.dw_update_advice_flag = FND_API.G_MISS_CHAR THEN
962         p_x_Line_Scredit_rec.dw_update_advice_flag := p_old_Line_Scredit_rec.dw_update_advice_flag;
963     END IF;
964 
965     IF p_x_Line_Scredit_rec.header_id = FND_API.G_MISS_NUM THEN
966         p_x_Line_Scredit_rec.header_id := p_old_Line_Scredit_rec.header_id;
967     END IF;
968 
969     IF p_x_Line_Scredit_rec.last_updated_by = FND_API.G_MISS_NUM THEN
970         p_x_Line_Scredit_rec.last_updated_by := p_old_Line_Scredit_rec.last_updated_by;
971     END IF;
972 
973     IF p_x_Line_Scredit_rec.last_update_date = FND_API.G_MISS_DATE THEN
974         p_x_Line_Scredit_rec.last_update_date := p_old_Line_Scredit_rec.last_update_date;
975     END IF;
976 
977     IF p_x_Line_Scredit_rec.last_update_login = FND_API.G_MISS_NUM THEN
978         p_x_Line_Scredit_rec.last_update_login := p_old_Line_Scredit_rec.last_update_login;
979     END IF;
980 
981     IF p_x_Line_Scredit_rec.line_id = FND_API.G_MISS_NUM THEN
982         p_x_Line_Scredit_rec.line_id := p_old_Line_Scredit_rec.line_id;
983     END IF;
984 
985     IF p_x_Line_Scredit_rec.percent = FND_API.G_MISS_NUM THEN
986         p_x_Line_Scredit_rec.percent := p_old_Line_Scredit_rec.percent;
987     END IF;
988 
989 
990     IF p_x_Line_Scredit_rec.salesrep_id = FND_API.G_MISS_NUM THEN
991         p_x_Line_Scredit_rec.salesrep_id := p_old_Line_Scredit_rec.salesrep_id;
992     END IF;
993     IF p_x_Line_Scredit_rec.sales_credit_type_id = FND_API.G_MISS_NUM THEN
994         p_x_Line_Scredit_rec.sales_credit_type_id := p_old_Line_Scredit_rec.sales_credit_type_id;
995     END IF;
996 
997     IF p_x_Line_Scredit_rec.sales_credit_id = FND_API.G_MISS_NUM THEN
998         p_x_Line_Scredit_rec.sales_credit_id := p_old_Line_Scredit_rec.sales_credit_id;
999     END IF;
1000 
1001     IF p_x_Line_Scredit_rec.wh_update_date = FND_API.G_MISS_DATE THEN
1002         p_x_Line_Scredit_rec.wh_update_date := p_old_Line_Scredit_rec.wh_update_date;
1003     END IF;
1004 
1005     IF l_debug_level  > 0 THEN
1006         oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.COMPLETE_RECORD' , 1 ) ;
1007     END IF;
1008 
1009 END Complete_Record;
1010 
1011 --  Function Convert_Miss_To_Null
1012 
1013 PROCEDURE Convert_Miss_To_Null
1014 (   p_x_Line_Scredit_rec              IN OUT NOCOPY  OE_Order_PUB.Line_Scredit_Rec_Type
1015 )
1016 IS
1017 --
1018 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1019 --
1020 BEGIN
1021 
1022     IF l_debug_level  > 0 THEN
1023         oe_debug_pub.add(  'ENTERING OE_LINE_SCREDIT_UTIL.CONVERT_MISS_TO_NULL' , 1 ) ;
1024     END IF;
1025 
1026     IF p_x_Line_Scredit_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1027         p_x_Line_Scredit_rec.attribute1 := NULL;
1028     END IF;
1029 
1030     IF p_x_Line_Scredit_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1031         p_x_Line_Scredit_rec.attribute10 := NULL;
1032     END IF;
1033 
1034     IF p_x_Line_Scredit_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1035         p_x_Line_Scredit_rec.attribute11 := NULL;
1036     END IF;
1037 
1038     IF p_x_Line_Scredit_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1039         p_x_Line_Scredit_rec.attribute12 := NULL;
1040     END IF;
1041 
1042     IF p_x_Line_Scredit_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1043         p_x_Line_Scredit_rec.attribute13 := NULL;
1044     END IF;
1045 
1046     IF p_x_Line_Scredit_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1047         p_x_Line_Scredit_rec.attribute14 := NULL;
1048     END IF;
1049 
1050     IF p_x_Line_Scredit_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1051         p_x_Line_Scredit_rec.attribute15 := NULL;
1052     END IF;
1053 
1054     IF p_x_Line_Scredit_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1055         p_x_Line_Scredit_rec.attribute2 := NULL;
1056     END IF;
1057 
1058     IF p_x_Line_Scredit_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1059         p_x_Line_Scredit_rec.attribute3 := NULL;
1060     END IF;
1061 
1062     IF p_x_Line_Scredit_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1063         p_x_Line_Scredit_rec.attribute4 := NULL;
1064     END IF;
1065 
1066     IF p_x_Line_Scredit_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1067         p_x_Line_Scredit_rec.attribute5 := NULL;
1068     END IF;
1069 
1070     IF p_x_Line_Scredit_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1071         p_x_Line_Scredit_rec.attribute6 := NULL;
1072     END IF;
1073 
1074     IF p_x_Line_Scredit_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1075         p_x_Line_Scredit_rec.attribute7 := NULL;
1076     END IF;
1077 
1078     IF p_x_Line_Scredit_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1079         p_x_Line_Scredit_rec.attribute8 := NULL;
1080     END IF;
1081 
1082     IF p_x_Line_Scredit_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1083         p_x_Line_Scredit_rec.attribute9 := NULL;
1084     END IF;
1085 
1086     IF p_x_Line_Scredit_rec.context = FND_API.G_MISS_CHAR THEN
1087         p_x_Line_Scredit_rec.context := NULL;
1088     END IF;
1089 
1090     IF p_x_Line_Scredit_rec.created_by = FND_API.G_MISS_NUM THEN
1091         p_x_Line_Scredit_rec.created_by := NULL;
1092     END IF;
1093 
1094     IF p_x_Line_Scredit_rec.creation_date = FND_API.G_MISS_DATE THEN
1095         p_x_Line_Scredit_rec.creation_date := NULL;
1096     END IF;
1097 
1098     IF p_x_Line_Scredit_rec.dw_update_advice_flag = FND_API.G_MISS_CHAR THEN
1099         p_x_Line_Scredit_rec.dw_update_advice_flag := NULL;
1100     END IF;
1101 
1102     IF p_x_Line_Scredit_rec.header_id = FND_API.G_MISS_NUM THEN
1103         p_x_Line_Scredit_rec.header_id := NULL;
1104     END IF;
1105 
1106     IF p_x_Line_Scredit_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1107         p_x_Line_Scredit_rec.last_updated_by := NULL;
1108     END IF;
1109 
1110     IF p_x_Line_Scredit_rec.last_update_date = FND_API.G_MISS_DATE THEN
1111         p_x_Line_Scredit_rec.last_update_date := NULL;
1112     END IF;
1113 
1114     IF p_x_Line_Scredit_rec.last_update_login = FND_API.G_MISS_NUM THEN
1115         p_x_Line_Scredit_rec.last_update_login := NULL;
1116     END IF;
1117 
1118     IF p_x_Line_Scredit_rec.line_id = FND_API.G_MISS_NUM THEN
1119         p_x_Line_Scredit_rec.line_id := NULL;
1120     END IF;
1121 
1122     IF p_x_Line_Scredit_rec.percent = FND_API.G_MISS_NUM THEN
1123         p_x_Line_Scredit_rec.percent := NULL;
1124     END IF;
1125 
1126 
1127     IF p_x_Line_Scredit_rec.salesrep_id = FND_API.G_MISS_NUM THEN
1128         p_x_Line_Scredit_rec.salesrep_id := NULL;
1129     END IF;
1130     IF p_x_Line_Scredit_rec.sales_credit_type_id = FND_API.G_MISS_NUM THEN
1131         p_x_Line_Scredit_rec.sales_credit_type_id := NULL;
1132     END IF;
1133 
1134     IF p_x_Line_Scredit_rec.sales_credit_id = FND_API.G_MISS_NUM THEN
1135         p_x_Line_Scredit_rec.sales_credit_id := NULL;
1136     END IF;
1137 
1138     IF p_x_Line_Scredit_rec.wh_update_date = FND_API.G_MISS_DATE THEN
1139         p_x_Line_Scredit_rec.wh_update_date := NULL;
1140     END IF;
1141 
1142     IF l_debug_level  > 0 THEN
1143         oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.CONVERT_MISS_TO_NULL' , 1 ) ;
1144     END IF;
1145 
1146 END Convert_Miss_To_Null;
1147 
1148 --  Procedure Update_Row
1149 
1150 PROCEDURE Update_Row
1151 (   p_Line_Scredit_rec              IN  OUT NOCOPY OE_Order_PUB.Line_Scredit_Rec_Type
1152 )
1153 IS
1154 l_lock_control   NUMBER;
1155 /* jolin start*/
1156 --added for notification framework
1157       l_Line_scredit_rec     	OE_Order_PUB.Line_scredit_Rec_Type;
1158       l_index    		NUMBER;
1159       l_return_status 		VARCHAR2(1);
1160 /* jolin end*/
1161 
1162 --
1163 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1164 --
1165 BEGIN
1166 
1167     IF l_debug_level  > 0 THEN
1168         oe_debug_pub.add(  'ENTERING OE_LINE_SCREDIT_UTIL.UPDATE_ROW' , 1 ) ;
1169     END IF;
1170 
1171     SELECT lock_control
1172     INTO   l_lock_control
1173     FROM   OE_SALES_CREDITS
1174     WHERE  sales_credit_id = p_Line_Scredit_rec.sales_credit_id;
1175 
1176     l_lock_control := l_lock_control + 1;
1177 
1178 
1179 /* jolin start*/
1180     --added query_row for notification framework
1181     --before update, query sales credit record, this record will be used
1182     --to update global picture
1183 
1184      OE_LINE_SCREDIT_UTIL.Query_Row(p_sales_credit_id => p_line_scredit_rec.sales_credit_id,
1185                               x_line_scredit_rec =>l_line_scredit_rec);
1186      IF l_debug_level  > 0 THEN
1187          oe_debug_pub.add(  'BEFORE UPDATE , SALES_CREDIT_ID= '|| L_LINE_SCREDIT_REC.SALES_CREDIT_ID , 1 ) ;
1188      END IF;
1189 /* jolin end*/
1190 
1191     UPDATE  OE_SALES_CREDITS
1192     SET     ATTRIBUTE1                     = p_Line_Scredit_rec.attribute1
1193     ,       ATTRIBUTE10                    = p_Line_Scredit_rec.attribute10
1194     ,       ATTRIBUTE11                    = p_Line_Scredit_rec.attribute11
1195     ,       ATTRIBUTE12                    = p_Line_Scredit_rec.attribute12
1196     ,       ATTRIBUTE13                    = p_Line_Scredit_rec.attribute13
1197     ,       ATTRIBUTE14                    = p_Line_Scredit_rec.attribute14
1198     ,       ATTRIBUTE15                    = p_Line_Scredit_rec.attribute15
1199     ,       ATTRIBUTE2                     = p_Line_Scredit_rec.attribute2
1200     ,       ATTRIBUTE3                     = p_Line_Scredit_rec.attribute3
1201     ,       ATTRIBUTE4                     = p_Line_Scredit_rec.attribute4
1202     ,       ATTRIBUTE5                     = p_Line_Scredit_rec.attribute5
1203     ,       ATTRIBUTE6                     = p_Line_Scredit_rec.attribute6
1204     ,       ATTRIBUTE7                     = p_Line_Scredit_rec.attribute7
1205     ,       ATTRIBUTE8                     = p_Line_Scredit_rec.attribute8
1206     ,       ATTRIBUTE9                     = p_Line_Scredit_rec.attribute9
1207     ,       CONTEXT                        = p_Line_Scredit_rec.context
1208     ,       CREATED_BY                     = p_Line_Scredit_rec.created_by
1209     ,       CREATION_DATE                  = p_Line_Scredit_rec.creation_date
1210     ,       DW_UPDATE_ADVICE_FLAG          = p_Line_Scredit_rec.dw_update_advice_flag
1211     ,       HEADER_ID                      = p_Line_Scredit_rec.header_id
1212     ,       LAST_UPDATED_BY                = p_Line_Scredit_rec.last_updated_by
1213     ,       LAST_UPDATE_DATE               = p_Line_Scredit_rec.last_update_date
1214     ,       LAST_UPDATE_LOGIN              = p_Line_Scredit_rec.last_update_login
1215     ,       LINE_ID                        = p_Line_Scredit_rec.line_id
1216     ,       PERCENT                        = p_Line_Scredit_rec.percent
1217     ,       SALESREP_ID                    = p_Line_Scredit_rec.salesrep_id
1218     ,       sales_credit_type_id           = p_Line_Scredit_rec.sales_credit_type_id
1219     ,       SALES_CREDIT_ID                = p_Line_Scredit_rec.sales_credit_id
1220     ,       WH_UPDATE_DATE                 = p_Line_Scredit_rec.wh_update_date
1221     ,       LOCK_CONTROL                   = l_lock_control
1222 --SG{
1223     ,       sales_group_id                 =  p_line_Scredit_rec.sales_group_id
1224     ,       sales_group_updated_flag            =  p_line_Scredit_rec.sales_group_updated_flag
1225 --SG}
1226     WHERE   SALES_CREDIT_ID = p_Line_Scredit_rec.sales_credit_id
1227     ;
1228 
1229     p_Line_Scredit_rec.lock_control := l_lock_control;
1230 
1231  /* jolin start*/
1232 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
1233     -- calling notification framework to update global picture
1234 
1235   IF l_debug_level  > 0 THEN
1236       oe_debug_pub.add(  'AFTER UPDATE , OLD SALES CREDIT ID= ' || L_LINE_SCREDIT_REC.SALES_CREDIT_ID ) ;
1237   END IF;
1238   IF l_debug_level  > 0 THEN
1239       oe_debug_pub.add(  'AFTER UPDATE , NEW SALES CREDIT ID= ' || P_LINE_SCREDIT_REC.SALES_CREDIT_ID ) ;
1240   END IF;
1241 
1242    OE_ORDER_UTIL.Update_Global_Picture
1243 			(p_Upd_New_Rec_If_Exists =>True,
1244                     	 p_line_scr_rec =>	p_line_scredit_rec,
1245                     	 p_old_line_scr_rec =>	l_line_scredit_rec,
1246                     	 p_line_scr_id => 	p_line_scredit_rec.sales_credit_id,
1247                     	 x_index => 		l_index,
1248                     	 x_return_status => 	l_return_status);
1249 
1250     IF l_debug_level  > 0 THEN
1251         oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_LINE_SCREDIT_UTIL.UPDATE_ROW IS: ' || L_RETURN_STATUS ) ;
1252     END IF;
1253 
1254     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1255         IF l_debug_level  > 0 THEN
1256             oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
1257         END IF;
1258         IF l_debug_level  > 0 THEN
1259             oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.UPDATE_ROW' , 1 ) ;
1260         END IF;
1261 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1262     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1263         IF l_debug_level  > 0 THEN
1264             oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_LINE_SCREDIT_UTIL.UPDATE_ROW' ) ;
1265         END IF;
1266         IF l_debug_level  > 0 THEN
1267             oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.UPDATE_ROW' , 1 ) ;
1268         END IF;
1269 	RAISE FND_API.G_EXC_ERROR;
1270      END IF;
1271    -- notification framework end
1272 END IF; /* code set is pack H or higher */
1273 /* jolin end*/
1274 
1275     IF l_debug_level  > 0 THEN
1276         oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.UPDATE_ROW' , 1 ) ;
1277     END IF;
1278 
1279 EXCEPTION
1280 
1281     WHEN OTHERS THEN
1282 
1283         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1284         THEN
1285             oe_msg_pub.Add_Exc_Msg
1286             (   G_PKG_NAME
1287             ,   'Update_Row'
1288             );
1289         END IF;
1290 
1291         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1292 
1293 END Update_Row;
1294 
1295 --  Procedure Insert_Row
1296 
1297 PROCEDURE Insert_Row
1298 (   p_Line_Scredit_rec              IN  OUT NOCOPY OE_Order_PUB.Line_Scredit_Rec_Type
1299 )
1300 IS
1301 l_lock_control    NUMBER:= 1;
1302 /* jolin start*/
1303 --added for notification framework
1304       l_index    		NUMBER;
1305       l_return_status 		VARCHAR2(1);
1306 /* jolin end*/
1307 
1308 --
1309 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1310 --
1311 BEGIN
1312 
1313     IF l_debug_level  > 0 THEN
1314         oe_debug_pub.add(  'ENTERING OE_LINE_SCREDIT_UTIL.INSERT_ROW' , 1 ) ;
1315     END IF;
1316 
1317     INSERT  INTO OE_SALES_CREDITS
1318     (       ATTRIBUTE1
1319     ,       ATTRIBUTE10
1320     ,       ATTRIBUTE11
1321     ,       ATTRIBUTE12
1322     ,       ATTRIBUTE13
1323     ,       ATTRIBUTE14
1324     ,       ATTRIBUTE15
1325     ,       ATTRIBUTE2
1326     ,       ATTRIBUTE3
1327     ,       ATTRIBUTE4
1328     ,       ATTRIBUTE5
1329     ,       ATTRIBUTE6
1330     ,       ATTRIBUTE7
1331     ,       ATTRIBUTE8
1332     ,       ATTRIBUTE9
1333     ,       CONTEXT
1334     ,       CREATED_BY
1335     ,       CREATION_DATE
1336     ,       DW_UPDATE_ADVICE_FLAG
1337     ,       HEADER_ID
1338     ,       LAST_UPDATED_BY
1339     ,       LAST_UPDATE_DATE
1340     ,       LAST_UPDATE_LOGIN
1341     ,       LINE_ID
1342     ,       PERCENT
1343     ,       SALESREP_ID
1344     ,       sales_credit_type_id
1345     ,       SALES_CREDIT_ID
1346     ,       WH_UPDATE_DATE
1347     ,       ORIG_SYS_CREDIT_REF
1348 --SG{
1349     ,       sales_group_id
1350     ,       sales_group_updated_flag
1351 --SG}
1352     ,       LOCK_CONTROL
1353     )
1354     VALUES
1355     (       p_Line_Scredit_rec.attribute1
1356     ,       p_Line_Scredit_rec.attribute10
1357     ,       p_Line_Scredit_rec.attribute11
1358     ,       p_Line_Scredit_rec.attribute12
1359     ,       p_Line_Scredit_rec.attribute13
1360     ,       p_Line_Scredit_rec.attribute14
1361     ,       p_Line_Scredit_rec.attribute15
1362     ,       p_Line_Scredit_rec.attribute2
1363     ,       p_Line_Scredit_rec.attribute3
1364     ,       p_Line_Scredit_rec.attribute4
1365     ,       p_Line_Scredit_rec.attribute5
1366     ,       p_Line_Scredit_rec.attribute6
1367     ,       p_Line_Scredit_rec.attribute7
1368     ,       p_Line_Scredit_rec.attribute8
1369     ,       p_Line_Scredit_rec.attribute9
1370     ,       p_Line_Scredit_rec.context
1371     ,       p_Line_Scredit_rec.created_by
1372     ,       p_Line_Scredit_rec.creation_date
1373     ,       p_Line_Scredit_rec.dw_update_advice_flag
1374     ,       p_Line_Scredit_rec.header_id
1375     ,       p_Line_Scredit_rec.last_updated_by
1376     ,       p_Line_Scredit_rec.last_update_date
1377     ,       p_Line_Scredit_rec.last_update_login
1378     ,       p_Line_Scredit_rec.line_id
1379     ,       p_Line_Scredit_rec.percent
1380     ,       p_Line_Scredit_rec.salesrep_id
1381     ,       p_Line_Scredit_rec.sales_credit_type_id
1382     ,       p_Line_Scredit_rec.sales_credit_id
1383     ,       p_Line_Scredit_rec.wh_update_date
1384     ,       p_Line_Scredit_rec.orig_sys_credit_ref
1385 --SG{
1386     ,       p_line_scredit_rec.sales_group_id
1387     ,       p_line_scredit_rec.sales_group_updated_flag
1388 --SG}
1389     ,       l_lock_control
1390     );
1391 
1392     p_Line_Scredit_rec.lock_control := l_lock_control;
1393 
1394  /* jolin start*/
1395 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
1396     -- calling notification framework to update global picture
1397 
1398    OE_ORDER_UTIL.Update_Global_Picture
1399 			(p_Upd_New_Rec_If_Exists =>True,
1400                     	 p_line_scr_rec =>	p_line_scredit_rec,
1401                     	 p_old_line_scr_rec =>	NULL,
1402                     	 p_line_scr_id => 	p_line_scredit_rec.sales_credit_id,
1403                     	 x_index => 		l_index,
1404                     	 x_return_status => 	l_return_status);
1405 
1406     IF l_debug_level  > 0 THEN
1407         oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_LINE_SCREDIT_UTIL.INSERT_ROW IS: ' || L_RETURN_STATUS ) ;
1408     END IF;
1409     IF l_debug_level  > 0 THEN
1410         oe_debug_pub.add(  'RETURNED INDEX IS: ' || L_INDEX , 1 ) ;
1411     END IF;
1412 
1413     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1414         IF l_debug_level  > 0 THEN
1415             oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
1416         END IF;
1417         IF l_debug_level  > 0 THEN
1418             oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.INSERT_ROW' , 1 ) ;
1419         END IF;
1420 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1421     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1422         IF l_debug_level  > 0 THEN
1423             oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_LINE_SCREDIT_UTIL.INSERT_ROW' ) ;
1424         END IF;
1425         IF l_debug_level  > 0 THEN
1426             oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.INSERT_ROW' , 1 ) ;
1427         END IF;
1428 	RAISE FND_API.G_EXC_ERROR;
1429      END IF;
1430    -- notification framework end
1431 END IF; /* code set is pack H or higher */
1432 /* jolin end*/
1433 
1434     IF l_debug_level  > 0 THEN
1435         oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.INSERT_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             ,   'Insert_Row'
1447             );
1448         END IF;
1449 
1450         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1451 
1452 END Insert_Row;
1453 
1454 --  Procedure Delete_Row
1455 
1456 PROCEDURE Delete_Row
1457 (   p_sales_credit_id               IN  NUMBER :=
1458                                         FND_API.G_MISS_NUM
1459 ,   p_line_id                       IN  NUMBER :=
1460                                         FND_API.G_MISS_NUM
1461 )
1462 IS
1463 l_return_status		VARCHAR2(30);
1464 /* jolin start*/
1465 --added for notification framework
1466       l_Line_scredit_rec     	OE_Order_PUB.Line_scredit_Rec_Type;
1467       l_new_Line_scredit_rec    OE_Order_PUB.Line_scredit_Rec_Type;
1468       l_index    		NUMBER;
1469 /* jolin end*/
1470 
1471 CURSOR sales_credit IS
1472 	SELECT sales_credit_id
1473 	FROM OE_SALES_CREDITS
1474 	WHERE   LINE_ID = p_line_id;
1475 	--
1476 	l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1477 	--
1478 BEGIN
1479 
1480     IF l_debug_level  > 0 THEN
1481         oe_debug_pub.add(  'ENTERING OE_LINE_SCREDIT_UTIL.DELETE_ROW' , 1 ) ;
1482     END IF;
1483 
1484   IF p_line_id <> FND_API.G_MISS_NUM
1485   THEN
1486     FOR l_scr IN sales_credit LOOP
1487 
1488 /* jolin start*/
1489    --added for notification framework
1490 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
1491    --query line scredit record, then call notification framework to update global picture.
1492      OE_LINE_SCREDIT_UTIL.Query_Row(p_sales_credit_id => l_scr.sales_credit_id,
1493                               x_line_scredit_rec =>l_line_scredit_rec);
1494 
1495      IF l_debug_level  > 0 THEN
1496          oe_debug_pub.add(  'IN DELETE ROW , SALES_CREDIT_ID= '|| L_SCR.SALES_CREDIT_ID , 1 ) ;
1497      END IF;
1498 
1499     /* Set the operation on the record so that globals are updated as well */
1500      l_new_line_scredit_rec.operation := OE_GLOBALS.G_OPR_DELETE;
1501      l_new_line_scredit_rec.sales_credit_id := l_scr.sales_credit_id;
1502 
1503    OE_ORDER_UTIL.Update_Global_Picture
1504 			(p_Upd_New_Rec_If_Exists =>True,
1505                     	 p_line_scr_rec =>	l_new_line_scredit_rec,
1506                     	 p_old_line_scr_rec =>	l_line_scredit_rec,
1507                     	 p_line_scr_id => 	l_scr.sales_credit_id,
1508                     	 x_index => 		l_index,
1509                     	 x_return_status => 	l_return_status);
1510 
1511     IF l_debug_level  > 0 THEN
1512         oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_LINE_SCREDIT_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
1513     END IF;
1514 
1515     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1516         IF l_debug_level  > 0 THEN
1517             oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
1518         END IF;
1519         IF l_debug_level  > 0 THEN
1520             oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.DELETE_ROW' , 1 ) ;
1521         END IF;
1522 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1523     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1524         IF l_debug_level  > 0 THEN
1525             oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_LINE_SCREDIT_UTIL.DELETE_ROW' ) ;
1526         END IF;
1527         IF l_debug_level  > 0 THEN
1528             oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.DELETE_ROW' , 1 ) ;
1529         END IF;
1530 	RAISE FND_API.G_EXC_ERROR;
1531      END IF;
1532 
1533    -- notification framework end
1534 END IF; /* code set is pack H or higher */
1535 /* jolin end*/
1536 
1537       OE_Delayed_Requests_Pvt.Delete_Reqs_for_Deleted_Entity(
1538         p_entity_code  => OE_GLOBALS.G_ENTITY_LINE_SCREDIT,
1539         p_entity_id     => l_scr.sales_credit_id,
1540         x_return_status => l_return_status
1541         );
1542 
1543     END LOOP;
1544 
1545     /* Start Audit Trail (modified for 11.5.10) */
1546     DELETE  FROM OE_SALES_CREDIT_HISTORY
1547     WHERE   LINE_ID = p_line_id
1548     AND     NVL(AUDIT_FLAG, 'Y') = 'Y'
1549     AND     NVL(VERSION_FLAG, 'N') = 'N'
1550     AND     NVL(PHASE_CHANGE_FLAG, 'N') = 'N';
1551 
1552     UPDATE OE_SALES_CREDIT_HISTORY
1553     SET    AUDIT_FLAG = 'N'
1554     WHERE  LINE_ID = p_line_id
1555     AND    NVL(AUDIT_FLAG, 'Y') = 'Y'
1556     AND   (NVL(VERSION_FLAG, 'N') = 'Y'
1557     OR     NVL(PHASE_CHANGE_FLAG, 'N') = 'Y');
1558     /* End Audit Trail */
1559 
1560     DELETE  FROM OE_SALES_CREDITS
1561     WHERE   LINE_ID = p_line_id;
1562 
1563   ELSE
1564 
1565   /* jolin start*/
1566    --added for notification framework
1567 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
1568    --query line scredit record, then call notification framework to update global picture.
1569      OE_LINE_SCREDIT_UTIL.Query_Row(p_sales_credit_id => p_sales_credit_id,
1570                               x_line_scredit_rec =>l_line_scredit_rec);
1571 
1572      IF l_debug_level  > 0 THEN
1573          oe_debug_pub.add(  'IN DELETE ROW , LINE_ID IS G_MISS_NUM , SALES_CREDIT_ID= '|| P_SALES_CREDIT_ID , 1 ) ;
1574      END IF;
1575 
1576     /* Set the operation on the record so that globals are updated as well */
1577      l_new_line_scredit_rec.operation := OE_GLOBALS.G_OPR_DELETE;
1578      l_new_line_scredit_rec.sales_credit_id := p_sales_credit_id;
1579 
1580       OE_ORDER_UTIL.Update_Global_Picture(
1581 			p_Upd_New_Rec_If_Exists => True,
1582                     	p_line_scr_rec =>	l_new_line_scredit_rec,
1583                     	p_old_line_scr_rec => 	l_line_scredit_rec,
1584                     	p_line_scr_id => 	p_sales_credit_id,
1585                     	x_index => 		l_index,
1586                     	x_return_status => 	l_return_status);
1587 
1588     IF l_debug_level  > 0 THEN
1589         oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_LINE_SCREDIT_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
1590     END IF;
1591 
1592     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1593         IF l_debug_level  > 0 THEN
1594             oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
1595         END IF;
1596         IF l_debug_level  > 0 THEN
1597             oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.DELETE_ROW' , 1 ) ;
1598         END IF;
1599 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1600     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1601         IF l_debug_level  > 0 THEN
1602             oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_LINE_SCREDIT_UTIL.DELETE_ROW' ) ;
1603         END IF;
1604         IF l_debug_level  > 0 THEN
1605             oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.DELETE_ROW' , 1 ) ;
1606         END IF;
1607 	RAISE FND_API.G_EXC_ERROR;
1608      END IF;
1609 
1610    -- notification framework end
1611 END IF; /* code set is pack H or higher */
1612 /* jolin end*/
1613 
1614      OE_Delayed_Requests_Pvt.Delete_Reqs_for_Deleted_Entity(
1615         p_entity_code  => OE_GLOBALS.G_ENTITY_LINE_SCREDIT,
1616         p_entity_id     => p_sales_credit_id,
1617         x_return_status => l_return_status
1618         );
1619 
1620     /* Start Audit Trail (modified for 11.5.10)*/
1621     DELETE  FROM OE_SALES_CREDIT_HISTORY
1622     WHERE   SALES_CREDIT_ID = p_sales_credit_id
1623     AND     NVL(AUDIT_FLAG, 'Y') = 'Y'
1624     AND     NVL(VERSION_FLAG, 'N') = 'N'
1625     AND     NVL(PHASE_CHANGE_FLAG, 'N') = 'N';
1626 
1627     UPDATE OE_SALES_CREDIT_HISTORY
1628     SET    AUDIT_FLAG = 'N'
1629     WHERE  SALES_CREDIT_ID = p_sales_credit_id
1630     AND    NVL(AUDIT_FLAG, 'Y') = 'Y'
1631     AND   (NVL(VERSION_FLAG, 'N') = 'Y'
1632     OR     NVL(PHASE_CHANGE_FLAG, 'N') = 'Y');
1633     /* End Audit Trail */
1634 
1635     DELETE  FROM OE_SALES_CREDITS
1636     WHERE   SALES_CREDIT_ID = p_sales_credit_id
1637     ;
1638   END IF;
1639 
1640     IF l_debug_level  > 0 THEN
1641         oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.DELETE_ROW' , 1 ) ;
1642     END IF;
1643 
1644 EXCEPTION
1645 
1646     WHEN OTHERS THEN
1647 
1648         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1649         THEN
1650             oe_msg_pub.Add_Exc_Msg
1651             (   G_PKG_NAME
1652             ,   'Delete_Row'
1653             );
1654         END IF;
1655 
1656         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1657 
1658 END Delete_Row;
1659 
1660 --  PROCEDURE Query_Row
1661 
1662 PROCEDURE Query_Row
1663 (   p_sales_credit_id               IN  NUMBER
1664 ,   x_Line_Scredit_rec              IN OUT NOCOPY OE_Order_PUB.Line_Scredit_Rec_Type
1665 )
1666 IS
1667 l_Line_Scredit_tbl OE_Order_PUB.Line_Scredit_Tbl_Type;
1668 --
1669 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1670 --
1671 BEGIN
1672 
1673     IF l_debug_level  > 0 THEN
1674         oe_debug_pub.add(  'ENTERING OE_LINE_SCREDIT_UTIL.QUERY_ROW' , 1 ) ;
1675     END IF;
1676 
1677     Query_Rows
1678         (   p_sales_credit_id             => p_sales_credit_id
1679             ,x_Line_Scredit_tbl => l_Line_Scredit_tbl
1680         );
1681     x_Line_Scredit_rec := l_Line_Scredit_tbl(1);
1682 
1683 END Query_Row;
1684 
1685 --  Function Query_Rows
1686 
1687 --
1688 
1689 PROCEDURE Query_Rows
1690 (   p_sales_credit_id               IN  NUMBER :=
1691                                         FND_API.G_MISS_NUM
1692 ,   p_line_id                       IN  NUMBER :=
1693                                         FND_API.G_MISS_NUM
1694 ,   p_header_id                     IN  NUMBER :=
1695                                         FND_API.G_MISS_NUM
1696 ,   x_Line_Scredit_tbl              IN OUT NOCOPY OE_Order_PUB.Line_Scredit_Tbl_Type
1697 )
1698 IS
1699 
1700 CURSOR l_Line_Scredit_csr_s IS
1701     SELECT  ATTRIBUTE1
1702     ,       ATTRIBUTE10
1703     ,       ATTRIBUTE11
1704     ,       ATTRIBUTE12
1705     ,       ATTRIBUTE13
1706     ,       ATTRIBUTE14
1707     ,       ATTRIBUTE15
1708     ,       ATTRIBUTE2
1709     ,       ATTRIBUTE3
1710     ,       ATTRIBUTE4
1711     ,       ATTRIBUTE5
1712     ,       ATTRIBUTE6
1713     ,       ATTRIBUTE7
1714     ,       ATTRIBUTE8
1715     ,       ATTRIBUTE9
1716     ,       CONTEXT
1717     ,       CREATED_BY
1718     ,       CREATION_DATE
1719     ,       DW_UPDATE_ADVICE_FLAG
1720     ,       HEADER_ID
1721     ,       LAST_UPDATED_BY
1722     ,       LAST_UPDATE_DATE
1723     ,       LAST_UPDATE_LOGIN
1724     ,       LINE_ID
1725     ,       PERCENT
1726     ,       SALESREP_ID
1727     ,       sales_credit_type_id
1728     ,       SALES_CREDIT_ID
1729     ,       WH_UPDATE_DATE
1730   --SG {
1731     ,       SALES_GROUP_ID
1732     ,       SALES_GROUP_UPDATED_FLAG
1733     --SG }
1734     ,       LOCK_CONTROL
1735     FROM    OE_SALES_CREDITS
1736     WHERE   SALES_CREDIT_ID = p_sales_credit_id;
1737 
1738 CURSOR l_Line_Scredit_csr_l IS
1739     SELECT  ATTRIBUTE1
1740     ,       ATTRIBUTE10
1741     ,       ATTRIBUTE11
1742     ,       ATTRIBUTE12
1743     ,       ATTRIBUTE13
1744     ,       ATTRIBUTE14
1745     ,       ATTRIBUTE15
1746     ,       ATTRIBUTE2
1747     ,       ATTRIBUTE3
1748     ,       ATTRIBUTE4
1749     ,       ATTRIBUTE5
1750     ,       ATTRIBUTE6
1751     ,       ATTRIBUTE7
1752     ,       ATTRIBUTE8
1753     ,       ATTRIBUTE9
1754     ,       CONTEXT
1755     ,       CREATED_BY
1756     ,       CREATION_DATE
1757     ,       DW_UPDATE_ADVICE_FLAG
1758     ,       HEADER_ID
1759     ,       LAST_UPDATED_BY
1760     ,       LAST_UPDATE_DATE
1761     ,       LAST_UPDATE_LOGIN
1762     ,       LINE_ID
1763     ,       PERCENT
1764     ,       SALESREP_ID
1765     ,       sales_credit_type_id
1766     ,       SALES_CREDIT_ID
1767     ,       WH_UPDATE_DATE
1768   --SG {
1769     ,       SALES_GROUP_ID
1770     ,       SALES_GROUP_UPDATED_FLAG
1771     --SG }
1772     ,       LOCK_CONTROL
1773     FROM    OE_SALES_CREDITS
1774     WHERE   LINE_ID = p_line_id;
1775 
1776 CURSOR l_Line_Scredit_csr_h IS
1777     SELECT  ATTRIBUTE1
1778     ,       ATTRIBUTE10
1779     ,       ATTRIBUTE11
1780     ,       ATTRIBUTE12
1781     ,       ATTRIBUTE13
1782     ,       ATTRIBUTE14
1783     ,       ATTRIBUTE15
1784     ,       ATTRIBUTE2
1785     ,       ATTRIBUTE3
1786     ,       ATTRIBUTE4
1787     ,       ATTRIBUTE5
1788     ,       ATTRIBUTE6
1789     ,       ATTRIBUTE7
1790     ,       ATTRIBUTE8
1791     ,       ATTRIBUTE9
1792     ,       CONTEXT
1793     ,       CREATED_BY
1794     ,       CREATION_DATE
1795     ,       DW_UPDATE_ADVICE_FLAG
1796     ,       HEADER_ID
1797     ,       LAST_UPDATED_BY
1798     ,       LAST_UPDATE_DATE
1799     ,       LAST_UPDATE_LOGIN
1800     ,       LINE_ID
1801     ,       PERCENT
1802     ,       SALESREP_ID
1803     ,       sales_credit_type_id
1804     ,       SALES_CREDIT_ID
1805     ,       WH_UPDATE_DATE
1806   --SG {
1807     ,       SALES_GROUP_ID
1808     ,       SALES_GROUP_UPDATED_FLAG
1809     --SG }
1810     ,       LOCK_CONTROL
1811     FROM    OE_SALES_CREDITS
1812     WHERE   HEADER_ID = p_header_id
1813       AND   LINE_ID IS NOT NULL;
1814 
1815   l_implicit_rec l_line_scredit_csr_s%ROWTYPE;
1816   l_entity NUMBER;
1817   l_count  NUMBER;
1818 --
1819 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1820 --
1821 BEGIN
1822 
1823     IF
1824     (p_sales_credit_id IS NOT NULL
1825      AND
1826      p_sales_credit_id <> FND_API.G_MISS_NUM)
1827     AND
1828     (p_line_id IS NOT NULL
1829      AND
1830      p_line_id <> FND_API.G_MISS_NUM)
1831     THEN
1832             IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1833             THEN
1834                 oe_msg_pub.Add_Exc_Msg
1835                 (   G_PKG_NAME
1836                 ,   'Query Rows'
1837                 ,   'Keys are mutually exclusive: sales_credit_id = '|| p_sales_credit_id || ', line_id = '|| p_line_id
1838                 );
1839             END IF;
1840 
1841         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1842 
1843     END IF;
1844 
1845     IF nvl(p_sales_credit_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
1846 	   l_entity := 1;
1847            OPEN l_line_scredit_csr_s;
1848     ELSIF nvl(p_line_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
1849 	   l_entity := 2;
1850            OPEN l_line_scredit_csr_l;
1851     ELSIF nvl(p_header_id,FND_API.G_MISS_NUM) <> FND_API.G_MISS_NUM THEN
1852 	   l_entity := 3;
1853            OPEN l_line_scredit_csr_h;
1854     END IF;
1855 
1856     --  Loop over fetched records
1857 
1858     l_count := 1;
1859 
1860     LOOP
1861         IF l_entity = 1 THEN
1862              FETCH l_line_scredit_csr_s INTO l_implicit_rec;
1863              EXIT WHEN l_line_scredit_csr_s%NOTFOUND;
1864         ELSIF l_entity = 2 THEN
1865              FETCH l_line_scredit_csr_l INTO l_implicit_rec;
1866              EXIT WHEN l_line_scredit_csr_l%NOTFOUND;
1867         ELSIF l_entity = 3 THEN
1868              FETCH l_line_scredit_csr_h INTO l_implicit_rec;
1869              EXIT WHEN l_line_scredit_csr_h%NOTFOUND;
1870         ELSE
1871           EXIT;
1872         END IF;
1873 
1874         x_line_scredit_tbl(l_count).attribute1  := l_implicit_rec.ATTRIBUTE1;
1875         x_line_scredit_tbl(l_count).attribute10 := l_implicit_rec.ATTRIBUTE10;
1876         x_line_scredit_tbl(l_count).attribute11 := l_implicit_rec.ATTRIBUTE11;
1877         x_line_scredit_tbl(l_count).attribute12 := l_implicit_rec.ATTRIBUTE12;
1878         x_line_scredit_tbl(l_count).attribute13 := l_implicit_rec.ATTRIBUTE13;
1879         x_line_scredit_tbl(l_count).attribute14 := l_implicit_rec.ATTRIBUTE14;
1880         x_line_scredit_tbl(l_count).attribute15 := l_implicit_rec.ATTRIBUTE15;
1881         x_line_scredit_tbl(l_count).attribute2  := l_implicit_rec.ATTRIBUTE2;
1882         x_line_scredit_tbl(l_count).attribute3  := l_implicit_rec.ATTRIBUTE3;
1883         x_line_scredit_tbl(l_count).attribute4  := l_implicit_rec.ATTRIBUTE4;
1884         x_line_scredit_tbl(l_count).attribute5  := l_implicit_rec.ATTRIBUTE5;
1885         x_line_scredit_tbl(l_count).attribute6  := l_implicit_rec.ATTRIBUTE6;
1886         x_line_scredit_tbl(l_count).attribute7  := l_implicit_rec.ATTRIBUTE7;
1887         x_line_scredit_tbl(l_count).attribute8  := l_implicit_rec.ATTRIBUTE8;
1888         x_line_scredit_tbl(l_count).attribute9  := l_implicit_rec.ATTRIBUTE9;
1889         x_line_scredit_tbl(l_count).context     := l_implicit_rec.CONTEXT;
1890         x_line_scredit_tbl(l_count).created_by  := l_implicit_rec.CREATED_BY;
1891         x_line_scredit_tbl(l_count).creation_date := l_implicit_rec.CREATION_DATE;
1892         x_line_scredit_tbl(l_count).dw_update_advice_flag := l_implicit_rec.DW_UPDATE_ADVICE_FLAG;
1893         x_line_scredit_tbl(l_count).header_id   := l_implicit_rec.HEADER_ID;
1894         x_line_scredit_tbl(l_count).last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
1895         x_line_scredit_tbl(l_count).last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
1896         x_line_scredit_tbl(l_count).last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
1897         x_line_scredit_tbl(l_count).line_id     := l_implicit_rec.LINE_ID;
1898         x_line_scredit_tbl(l_count).percent     := l_implicit_rec.PERCENT;
1899         x_line_scredit_tbl(l_count).salesrep_id := l_implicit_rec.SALESREP_ID;
1900         x_line_scredit_tbl(l_count).sales_credit_type_id := l_implicit_rec.sales_credit_type_id;
1901         x_line_scredit_tbl(l_count).sales_credit_id := l_implicit_rec.SALES_CREDIT_ID;
1902         x_line_scredit_tbl(l_count).wh_update_date := l_implicit_rec.WH_UPDATE_DATE;
1903         --SG {
1904         x_line_scredit_tbl(l_count).sales_group_id := l_implicit_rec.sales_group_id;
1905         x_line_scredit_tbl(l_count).sales_group_updated_flag:=l_implicit_rec.sales_group_updated_flag;
1906         --SG}
1907         x_line_scredit_tbl(l_count).lock_control := l_implicit_rec.LOCK_CONTROL;
1908 
1909 	l_count := l_count + 1;
1910     END LOOP;
1911 
1912     IF l_entity = 1 THEN
1913         CLOSE l_line_scredit_csr_s;
1914     ELSIF l_entity = 2 THEN
1915         CLOSE l_line_scredit_csr_l;
1916     ELSIF l_entity = 3 THEN
1917         CLOSE l_line_scredit_csr_h;
1918     END IF;
1919 
1920     --  PK sent and no rows found
1921 
1922     IF
1923     (p_sales_credit_id IS NOT NULL
1924      AND
1925      p_sales_credit_id <> FND_API.G_MISS_NUM)
1926     AND
1927     (x_Line_Scredit_tbl.COUNT = 0)
1928     THEN
1929         RAISE NO_DATA_FOUND;
1930     END IF;
1931 
1932 
1933     --  Return fetched table
1934 
1935     IF l_debug_level  > 0 THEN
1936         oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.QUERY_ROWS' , 1 ) ;
1937     END IF;
1938 
1939 
1940 EXCEPTION
1941 
1942     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1943 
1944         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1945 
1946     WHEN OTHERS THEN
1947 
1948         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1949         THEN
1950             oe_msg_pub.Add_Exc_Msg
1951             (   G_PKG_NAME
1952             ,   'Query_Rows'
1953             );
1954         END IF;
1955 
1956         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1957 
1958 END Query_Rows;
1959 
1960 --  Procedure       lock_Row
1961 --
1962 
1963 PROCEDURE Lock_Row
1964 ( x_return_status OUT NOCOPY VARCHAR2
1965 
1966 ,   p_x_Line_Scredit_rec              IN OUT NOCOPY OE_Order_PUB.Line_Scredit_Rec_Type
1967 ,   p_sales_credit_id               IN  NUMBER
1968                                         := FND_API.G_MISS_NUM
1969 )
1970 IS
1971 l_sales_credit_id             NUMBER;
1972 l_lock_control                NUMBER;
1973 --
1974 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1975 --
1976 BEGIN
1977 
1978     IF l_debug_level  > 0 THEN
1979         oe_debug_pub.add(  'ENTERING OE_LINE_SCREDIT_UTIL.LOCK_ROW' , 1 ) ;
1980     END IF;
1981 
1982     SAVEPOINT Lock_Row;
1983 
1984     l_lock_control := NULL;
1985 
1986     -- Retrieve the primary key.
1987     IF p_sales_credit_id <> FND_API.G_MISS_NUM THEN
1988         l_sales_credit_id := p_sales_credit_id;
1989     ELSE
1990         l_sales_credit_id := p_x_line_scredit_rec.sales_credit_id;
1991         l_lock_control    := p_x_line_scredit_rec.lock_control;
1992     END IF;
1993 
1994    SELECT  sales_credit_id
1995     INTO   l_sales_credit_id
1996     FROM   oe_sales_credits
1997     WHERE  sales_credit_id = l_sales_credit_id
1998     FOR UPDATE NOWAIT;
1999 
2000     IF l_debug_level  > 0 THEN
2001         oe_debug_pub.add(  'SELECTED FOR UPDATE' , 1 ) ;
2002     END IF;
2003 
2004     OE_Line_Scredit_Util.Query_Row
2005 	(p_sales_credit_id  => l_sales_credit_id
2006 	,x_line_scredit_rec => p_x_line_scredit_rec );
2007 
2008 
2009     -- If lock_control is passed, then return the locked record.
2010     IF l_lock_control is NULL OR
2011        l_lock_control <> FND_API.G_MISS_NUM THEN
2012 
2013         --  Set return status
2014         x_return_status                := FND_API.G_RET_STS_SUCCESS;
2015         p_x_line_scredit_rec.return_status       := FND_API.G_RET_STS_SUCCESS;
2016 
2017         RETURN;
2018 
2019     END IF;
2020 
2021     --  Row locked. If the whole record is passed, then
2022     --  Compare IN attributes to DB attributes.
2023 
2024     IF  OE_GLOBALS.Equal(p_x_Line_Scredit_rec.lock_control,
2025                          l_lock_control)
2026     THEN
2027 
2028         --  Set return status
2029 
2030         x_return_status                := FND_API.G_RET_STS_SUCCESS;
2031         p_x_Line_Scredit_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2032 
2033     ELSE
2034 
2035         --  Row has changed by another user.
2036 
2037         x_return_status                := FND_API.G_RET_STS_ERROR;
2038         p_x_Line_Scredit_rec.return_status := FND_API.G_RET_STS_ERROR;
2039 
2040         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2041         THEN
2042 
2043             -- Release the lock
2044 	    ROLLBACK TO Lock_Row;
2045 
2046             FND_MESSAGE.SET_NAME('ONT','OE_LOCK_ROW_CHANGED');
2047             oe_msg_pub.Add;
2048 
2049         END IF;
2050 
2051     END IF;
2052 
2053     IF l_debug_level  > 0 THEN
2054         oe_debug_pub.add(  'EXITING OE_LINE_SCREDIT_UTIL.LOCK_ROW' , 1 ) ;
2055     END IF;
2056 
2057 EXCEPTION
2058 
2059     WHEN NO_DATA_FOUND THEN
2060 
2061         x_return_status                := FND_API.G_RET_STS_ERROR;
2062         p_x_Line_Scredit_rec.return_status := FND_API.G_RET_STS_ERROR;
2063 
2064         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2065         THEN
2066 
2067             FND_MESSAGE.SET_NAME('ONT','OE_LOCK_ROW_DELETED');
2068             oe_msg_pub.Add;
2069 
2070         END IF;
2071     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
2072 
2073         x_return_status                := FND_API.G_RET_STS_ERROR;
2074         p_x_Line_Scredit_rec.return_status := FND_API.G_RET_STS_ERROR;
2075 
2076         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2077         THEN
2078 
2079             FND_MESSAGE.SET_NAME('ONT','OE_LOCK_ROW_ALREADY_LOCKED');
2080             oe_msg_pub.Add;
2081 
2082         END IF;
2083     WHEN OTHERS THEN
2084 
2085         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
2086         p_x_Line_Scredit_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2087 
2088         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2089         THEN
2090             oe_msg_pub.Add_Exc_Msg
2091             (   G_PKG_NAME
2092             ,   'Lock_Row'
2093             );
2094         END IF;
2095 
2096 END Lock_Row;
2097 
2098 PROCEDURE Lock_Rows
2099 (   p_sales_credit_id           IN  NUMBER :=
2100                                         FND_API.G_MISS_NUM
2101 ,   p_line_id                   IN  NUMBER :=
2102                                         FND_API.G_MISS_NUM
2103 ,   x_line_scredit_tbl          OUT NOCOPY OE_Order_PUB.Line_scredit_Tbl_Type
2104 , x_return_status OUT NOCOPY VARCHAR2
2105 
2106  )
2107 IS
2108   CURSOR lock_line_scredits(p_line_id  NUMBER) IS
2109   SELECT sales_credit_id
2110   FROM   oe_sales_credits
2111   WHERE  line_id = p_line_id
2112     FOR UPDATE NOWAIT;
2113 
2114   l_sales_credit_id    NUMBER;
2115   --
2116   l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2117   --
2118 BEGIN
2119 
2120     IF l_debug_level  > 0 THEN
2121         oe_debug_pub.add(  'ENTERING OE_LINE_SCREDITS_UTIL.LOCK_ROWS' , 1 ) ;
2122     END IF;
2123 
2124     IF (p_sales_credit_id IS NOT NULL AND
2125         p_sales_credit_id <> FND_API.G_MISS_NUM) AND
2126        (p_line_id IS NOT NULL AND
2127         p_line_id <> FND_API.G_MISS_NUM)
2128     THEN
2129       IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2130       THEN
2131         OE_MSG_PUB.Add_Exc_Msg
2132         (   G_PKG_NAME
2133           , 'Lock Rows'
2134           , 'Keys are mutually exclusive: sales_credit_id = '||
2135              p_sales_credit_id || ', line_id = '|| p_line_id );
2136       END IF;
2137 
2138       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2139 
2140     END IF;
2141 
2142    IF p_sales_credit_id <> FND_API.G_MISS_NUM THEN
2143 
2144      SELECT sales_credit_id
2145      INTO   l_sales_credit_id
2146      FROM   OE_SALES_CREDITS
2147      WHERE  sales_credit_id   = p_sales_credit_id
2148      FOR UPDATE NOWAIT;
2149 
2150    END IF;
2151 
2152    -- people should not pass in null line_id unnecessarily,
2153    -- if they already passed in sales_credit_id.
2154 
2155    BEGIN
2156 
2157      IF p_line_id <> FND_API.G_MISS_NUM THEN
2158 
2159        SAVEPOINT LOCK_ROWS;
2160        OPEN lock_line_scredits(p_line_id);
2161 
2162        LOOP
2163          FETCH lock_line_scredits INTO l_sales_credit_id;
2164          EXIT WHEN lock_line_scredits%NOTFOUND;
2165        END LOOP;
2166 
2167        CLOSE lock_line_scredits;
2168 
2169      END IF;
2170 
2171    EXCEPTION
2172      WHEN OTHERS THEN
2173        ROLLBACK TO LOCK_ROWS;
2174 
2175        IF lock_line_scredits%ISOPEN THEN
2176          CLOSE lock_line_scredits;
2177        END IF;
2178 
2179        RAISE;
2180    END;
2181 
2182    -- locked all
2183 
2184    OE_Line_Scredit_Util.Query_Rows
2185      (p_sales_credit_id          => p_sales_credit_id
2186      ,p_line_id                  => p_line_id
2187      ,x_line_scredit_tbl         => x_line_scredit_tbl
2188      );
2189 
2190    x_return_status  := FND_API.G_RET_STS_SUCCESS;
2191 
2192    IF l_debug_level  > 0 THEN
2193        oe_debug_pub.add(  'EXITING OE_LINE_SCREDITS_UTIL.LOCK_ROWS' , 1 ) ;
2194    END IF;
2195 
2196 EXCEPTION
2197    WHEN NO_DATA_FOUND THEN
2198 
2199      x_return_status                := FND_API.G_RET_STS_ERROR;
2200 
2201      IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2202      THEN
2203        fnd_message.set_name('ONT','OE_LOCK_ROW_DELETED');
2204        OE_MSG_PUB.Add;
2205      END IF;
2206 
2207     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
2208 
2209       x_return_status                := FND_API.G_RET_STS_ERROR;
2210       IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
2211       THEN
2212         fnd_message.set_name('ONT','OE_LOCK_ROW_ALREADY_LOCKED');
2213         OE_MSG_PUB.Add;
2214       END IF;
2215 
2216     WHEN OTHERS THEN
2217 
2218         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
2219 
2220       IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2221       THEN
2222         OE_MSG_PUB.Add_Exc_Msg
2223         (   G_PKG_NAME
2224          ,   'Lock_Rows'
2225         );
2226       END IF;
2227 
2228 END Lock_Rows;
2229 
2230 --  Function Get_Values
2231 
2232 FUNCTION Get_Values
2233 (   p_Line_Scredit_rec              IN  OE_Order_PUB.Line_Scredit_Rec_Type
2234 ,   p_old_Line_Scredit_rec          IN  OE_Order_PUB.Line_Scredit_Rec_Type :=
2235                                         OE_Order_PUB.G_MISS_LINE_SCREDIT_REC
2236 ) RETURN OE_Order_PUB.Line_Scredit_Val_Rec_Type
2237 IS
2238 l_Line_Scredit_val_rec        OE_Order_PUB.Line_Scredit_Val_Rec_Type;
2239 --
2240 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2241 --
2242 BEGIN
2243 
2244     IF (p_Line_Scredit_rec.salesrep_id IS NULL OR
2245         p_Line_Scredit_rec.salesrep_id <> FND_API.G_MISS_NUM) AND
2246         NOT OE_GLOBALS.Equal(p_Line_Scredit_rec.salesrep_id,
2247         p_old_Line_Scredit_rec.salesrep_id)
2248     THEN
2249         l_Line_Scredit_val_rec.salesrep := OE_Id_To_Value.Salesrep
2250         (   p_salesrep_id                 => p_Line_Scredit_rec.salesrep_id
2251         );
2252     END IF;
2253     IF (p_Line_Scredit_rec.sales_credit_type_id IS NULL OR
2254         p_Line_Scredit_rec.sales_credit_type_id <> FND_API.G_MISS_NUM) AND
2255         NOT OE_GLOBALS.Equal(p_Line_Scredit_rec.sales_credit_type_id,
2256         p_old_Line_Scredit_rec.sales_credit_type_id)
2257     THEN
2258         l_Line_Scredit_val_rec.sales_credit_type := OE_Id_To_Value.sales_credit_type
2259         (   p_sales_Credit_type_id   => p_Line_Scredit_rec.sales_credit_type_id
2260         );
2261     END IF;
2262 
2263     --SG{
2264     If p_line_Scredit_rec.sales_group_id IS NOT NULL Then
2265     Begin
2266 
2267      l_line_Scredit_val_rec.sales_group:=OE_Id_To_Value.get_sales_group_name(p_line_Scredit_rec.sales_group_id);
2268     Exception
2269      When no_data_found Then
2270       l_line_Scredit_val_rec.sales_group:='Group name not available';
2271      When others then
2272       Oe_Debug_Pub.add('OEXULSCB.pls--get_values:'||SQLERRM);
2273     End;
2274     End If;
2275     --SG}
2276 
2277     RETURN l_Line_Scredit_val_rec;
2278 
2279 END Get_Values;
2280 
2281 --  PROCEDURE Get_Ids
2282 
2283 PROCEDURE Get_Ids
2284 (   p_x_Line_Scredit_rec              IN OUT NOCOPY OE_Order_PUB.Line_Scredit_Rec_Type
2285 ,   p_Line_Scredit_val_rec          IN  OE_Order_PUB.Line_Scredit_Val_Rec_Type
2286 )
2287 IS
2288 --
2289 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2290 --
2291 BEGIN
2292 
2293     --  initialize  return_status.
2294 
2295     p_x_Line_Scredit_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2296 
2297     IF  p_Line_Scredit_val_rec.salesrep <> FND_API.G_MISS_CHAR
2298     THEN
2299 
2300         IF p_x_Line_Scredit_rec.salesrep_id <> FND_API.G_MISS_NUM THEN
2301 
2302             IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
2303             THEN
2304 
2305                 FND_MESSAGE.SET_NAME('ONT','OE_BOTH_VAL_AND_ID_EXIST');
2306                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','salesrep');
2307                 oe_msg_pub.Add;
2308 
2309             END IF;
2310 
2311         ELSE
2312 
2313             p_x_Line_Scredit_rec.salesrep_id := OE_Value_To_Id.salesrep
2314             (   p_salesrep                    => p_Line_Scredit_val_rec.salesrep
2315             );
2316 
2317             IF p_x_Line_Scredit_rec.salesrep_id = FND_API.G_MISS_NUM THEN
2318                 p_x_Line_Scredit_rec.return_status := FND_API.G_RET_STS_ERROR;
2319             END IF;
2320 
2321         END IF;
2322 
2323     END IF;
2324 
2325     IF  p_Line_Scredit_val_rec.sales_credit_type <> FND_API.G_MISS_CHAR
2326     THEN
2327 
2328         IF p_x_Line_Scredit_rec.sales_credit_type_id <> FND_API.G_MISS_NUM THEN
2329 
2330             IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
2331             THEN
2332 
2333                 FND_MESSAGE.SET_NAME('ONT','OE_BOTH_VAL_AND_ID_EXIST');
2334                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','sales_credit_type');
2335                 oe_msg_pub.Add;
2336 
2337             END IF;
2338 
2339         ELSE
2340 
2341             p_x_Line_Scredit_rec.sales_credit_type_id := OE_Value_To_Id.sales_credit_type
2342             (   p_sales_credit_type  => p_Line_Scredit_val_rec.sales_credit_type
2343             );
2344 
2345             IF p_x_Line_Scredit_rec.sales_credit_type_id = FND_API.G_MISS_NUM THEN
2346                 p_x_Line_Scredit_rec.return_status := FND_API.G_RET_STS_ERROR;
2347             END IF;
2348 
2349         END IF;
2350 	END IF;
2351 
2352 END Get_Ids;
2353 
2354 
2355 Procedure Create_credit(p_line_rec IN oe_order_pub.line_rec_type,
2356 					p_old_line_rec IN oe_order_pub.line_rec_type)
2357 IS
2358 l_api_name         		CONSTANT VARCHAR2(30)   := 'Create Credit';
2359 l_return_status          VARCHAR2(30);
2360 l_control_rec  		OE_GLOBALS.Control_Rec_Type;
2361 l_line_scredit_tbl 		OE_ORDER_PUB.line_scredit_tbl_type ;
2362 l_old_line_scredit_tbl 	OE_ORDER_PUB.line_scredit_tbl_type ;
2363 l_line_scredit_rec 		OE_ORDER_PUB.line_scredit_rec_type ;
2364 l_create_flag 			boolean := FALSE;
2365 l_update_flag 			boolean := FALSE;
2366 l_scredit_id 			number;
2367 x_msg_count 			number;
2368 x_msg_data 			varchar2(2000);
2369 l_sales_credits_count    Number;
2370 l_sales_credit_id   	Number;
2371 l_salesrep_id			Number;
2372 l_notify_index			Number;
2373 
2374 Cursor C_LSC_COUNT IS
2375    Select count(sales_credit_id), max(sales_credit_id)
2376    from oe_sales_credits sc,
2377    oe_sales_credit_types sct
2378    where header_id = p_line_rec.header_id
2379    and sc.sales_credit_type_id = sct.sales_credit_type_id
2380    and   sct.quota_flag = 'Y'
2381    and line_id =  p_line_rec.line_id;
2382 Cursor C_SCRTYPE IS
2383    SELECT nvl(Sales_Credit_Type_id,1)
2384    FROM   ra_salesreps
2385    WHERE  salesrep_id = p_line_rec.salesrep_id;
2386 
2387 /* Modified the above cursor definition to fix the bug 1822931 */
2388 /* changed the above cursor to fix the bug 2685158 */
2389 
2390 l_scredit_type_id number;
2391 
2392 --
2393 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2394 --
2395 BEGIN
2396 
2397    IF l_debug_level  > 0 THEN
2398        oe_debug_pub.add(  'ENTER LINE CREATE CREDITS' ) ;
2399    END IF;
2400    IF l_debug_level  > 0 THEN
2401        oe_debug_pub.add(  'HEADER:' ||P_LINE_REC.HEADER_ID ) ;
2402    END IF;
2403    IF NOT OE_GLOBALS.EQUAL(G_HEADER_ID,p_line_rec.header_id) or
2404       G_SALESREP_ID IS NULL  Then
2405       	--added for bug 4200055
2406       if ((Oe_Order_Cache.g_header_rec.header_id = p_line_rec.header_id)
2407           AND (Oe_Order_Cache.g_header_rec.header_id <> NULL)
2408           AND (Oe_Order_Cache.g_header_rec.header_id <> FND_API.G_MISS_NUM)) Then
2409            G_SALESREP_ID := Oe_Order_Cache.g_header_rec.salesrep_id ;
2410       else
2411           Oe_Order_Cache.Load_Order_Header(p_line_rec.header_id) ;
2412           G_SALESREP_ID := Oe_Order_Cache.g_header_rec.salesrep_id ;
2413       end if ;
2414     /*select salesrep_id
2415     into G_SALESREP_ID
2416     from oe_order_headers
2417     where header_id = p_line_rec.header_id; */
2418     -- end bug 4200055
2419    End If;
2420 
2421    l_salesrep_id := G_SALESREP_ID;
2422    IF NOT OE_GLOBALS.EQUAL(l_salesrep_id, p_line_rec.salesrep_id)
2423    	OR p_line_rec.salesrep_id IS NULL -- Added condition for bug 6494279
2424         OR  (p_line_rec.operation = oe_globals.g_opr_update AND       --Added condition for bug 8242058
2425                NOT OE_GLOBALS.EQUAL( p_line_rec.salesrep_id,
2426                                      p_old_line_rec.salesrep_id)) THEN
2427 
2428 
2429        IF (p_line_rec.operation = oe_globals.g_opr_create AND
2430              p_line_rec.salesrep_id IS NOT NULL  AND
2431              p_line_rec.salesrep_id <> FND_API.G_MISS_NUM) THEN
2432 
2433          l_create_flag := TRUE;
2434 
2435              IF l_debug_level  > 0 THEN
2436                  oe_debug_pub.add(  'IN CREATE' ) ;
2437              END IF;
2438        ELSIF (p_line_rec.operation = oe_globals.g_opr_update AND
2439                NOT OE_GLOBALS.EQUAL( p_line_rec.salesrep_id,
2440                                      p_old_line_rec.salesrep_id)) THEN
2441              IF l_debug_level  > 0 THEN
2442                  oe_debug_pub.add(  'IN OPERATION UPDATE ' ) ;
2443              END IF;
2444 
2445          IF (p_old_line_rec.salesrep_id IS NULL OR
2446              p_old_line_rec.salesrep_id = FND_API.G_MISS_NUM)
2447          THEN
2448              IF l_debug_level  > 0 THEN
2449                  oe_debug_pub.add(  'IN CREATE FOR UPDATE OPERATION' ) ;
2450              END IF;
2451              -- Added for bug 6494279 start
2452 
2453              open C_LSC_COUNT;
2454 	     fetch C_LSC_COUNT into l_sales_credits_count, l_sales_credit_id;
2455              close C_LSC_COUNT;
2456 
2457              IF l_sales_credits_count = 0 THEN
2458              -- Added for bug 6494279 end
2459 
2460              l_create_flag := TRUE;
2461 
2462              -- Added for bug 6494279 start
2463              END IF;
2464 
2465              l_sales_credits_count := NULL;
2466              l_sales_credit_id := NULL;
2467              -- Added for bug 6494279 end
2468 
2469 
2470          END IF;
2471 
2472          open C_LSC_COUNT;
2473          fetch C_LSC_COUNT into l_sales_credits_count, l_sales_credit_id;
2474          close C_LSC_COUNT;
2475 
2476          if l_sales_credits_count > 1 then
2477 
2478             fnd_message.set_name('ONT','OE_TOO_MANY_LSCREDIT');
2479             OE_MSG_PUB.Add;
2480             RAISE  FND_API.G_EXC_ERROR;
2481 
2482          elsif l_sales_credits_count = 1 then -- update with new salesrep
2483 
2484             OE_Line_Scredit_Util.Lock_Rows
2485                (   p_sales_credit_id  => l_sales_credit_id,
2486 			    x_line_scredit_tbl => l_old_line_scredit_tbl,
2487 			    x_return_status    => l_return_status
2488                );
2489 
2490             IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2491                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2492             ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2493                  RAISE FND_API.G_EXC_ERROR;
2494             END IF;
2495 
2496 /* Added the following 3 lines to fix the bug 1822931 */
2497             open C_SCRTYPE;
2498             fetch C_SCRTYPE into l_scredit_Type_id;
2499             close C_SCRTYPE;
2500 
2501 	  /*Added to fix bug 6445046 START*/
2502     	  IF l_scredit_Type_id IS NULL THEN
2503 	    oe_debug_pub.add(  'Row in the sales credit table is being removed as the sales peason is removed.' ) ;
2504 		OE_Line_Scredit_Util.Delete_Row
2505 		(   p_sales_credit_id => l_sales_credit_id,
2506 		    p_line_id => p_line_rec.line_id
2507 		);
2508 
2509 	  ELSE
2510 	  /*Added to fix bug 6445046 END*/
2511 
2512             l_line_scredit_tbl := l_old_line_scredit_tbl;
2513 		  l_line_scredit_tbl(1).salesrep_id :=
2514 		                          p_line_rec.salesrep_id;
2515 
2516 /* Added the following line to fix the bug 1822931 */
2517                   l_line_scredit_tbl(1).sales_credit_type_id := l_scredit_type_id;
2518 
2519 		  l_line_scredit_tbl(1).operation := oe_globals.g_opr_update;
2520 		  l_update_flag := TRUE;
2521 
2522 	  END IF; -- Added for Bug 6445046
2523 
2524          elsif l_sales_credits_count = 0 THEN
2525                      	--	AND l_sales_credit_id IS NOT NULL then -> Added condition for Bug 6445046 and Removed for 8619694
2526 
2527 
2528             IF l_debug_level  > 0 THEN
2529                 oe_debug_pub.add(  'CREDIT COUNT IS ZERO ' ) ;
2530             END IF;
2531 		  l_create_flag := TRUE;
2532 
2533          End if;
2534 
2535        END IF;
2536 
2537        IF l_create_flag THEN
2538              IF l_debug_level  > 0 THEN
2539                  oe_debug_pub.add(  'SETTUBG CREDIT FOR CREATE ' ) ;
2540              END IF;
2541 		   open C_SCRTYPE;
2542    	        fetch C_SCRTYPE into l_scredit_Type_id;
2543    		   close C_SCRTYPE;
2544 
2545              l_line_scredit_tbl(1) := OE_Order_PUB.G_MISS_LINE_SCREDIT_REC;
2546              l_line_scredit_tbl(1).operation := oe_globals.g_opr_create;
2547              l_line_scredit_tbl(1).header_id := p_line_rec.header_id;
2548              l_line_scredit_tbl(1).line_id := p_line_rec.line_id;
2549              l_line_scredit_tbl(1).percent := 100;
2550 	        l_line_Scredit_tbl(1).Sales_credit_type_id := l_scredit_type_id;
2551              l_line_scredit_tbl(1).salesrep_id := p_line_rec.salesrep_id;
2552 
2553        END IF;
2554 
2555        IF l_create_flag OR L_update_flag  THEN
2556              IF l_debug_level  > 0 THEN
2557                  oe_debug_pub.add(  'BEFORE CALLING PROCESS ORDER' ) ;
2558              END IF;
2559                                 IF l_debug_level  > 0 THEN
2560                                     oe_debug_pub.add(  'HEADER_ID:' || L_LINE_SCREDIT_TBL ( 1 ) .HEADER_ID ) ;
2561                                 END IF;
2562                                 IF l_debug_level  > 0 THEN
2563                                     oe_debug_pub.add(  'LINE_ID:' || L_LINE_SCREDIT_TBL ( 1 ) .LINE_ID ) ;
2564                                 END IF;
2565                                 IF l_debug_level  > 0 THEN
2566                                     oe_debug_pub.add(  'SALESREPID:' || L_LINE_SCREDIT_TBL ( 1 ) .SALESREP_ID ) ;
2567                                 END IF;
2568                                 IF l_debug_level  > 0 THEN
2569                                     oe_debug_pub.add(  'SALESCREDIT_ID:' || L_LINE_SCREDIT_TBL ( 1 ) .SALES_CREDIT_ID ) ;
2570                                 END IF;
2571                                 IF l_debug_level  > 0 THEN
2572                                     oe_debug_pub.add(  'SALESCREDIT_ID:' || L_LINE_SCREDIT_TBL ( 1 ) .SALES_CREDIT_TYPE_ID ) ;
2573                                 END IF;
2574 
2575              l_control_rec.process := FALSE;
2576              l_control_rec.controlled_operation := TRUE;
2577              l_control_rec.check_security := TRUE;
2578              l_control_rec.change_attributes := TRUE;
2579              l_control_rec.default_attributes := TRUE;
2580              l_control_rec.write_to_db := TRUE;
2581 
2582              OE_Order_PVT.Line_Scredits
2583              (    p_init_msg_list               => FND_API.G_FALSE
2584               ,   p_validation_level            => FND_API.G_VALID_LEVEL_FULL
2585               ,   p_control_rec 			 => l_control_rec
2586               ,   p_x_Line_Scredit_tbl          => l_line_scredit_tbl
2587               ,   p_x_old_Line_Scredit_tbl      => l_old_line_scredit_tbl
2588               ,   x_return_status               => l_return_status
2589 		    );
2590 
2591              IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2592                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2593              ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2594                  RAISE FND_API.G_EXC_ERROR;
2595              END IF;
2596 
2597 --jolin start
2598 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
2599     -- call notification framework to update this line's global data
2600     OE_ORDER_UTIL.Update_Global_Picture
2601 	(p_Upd_New_Rec_If_Exists =>TRUE
2602 	, p_line_scr_rec	=> l_line_scredit_tbl(1)
2603 	, p_old_line_scr_rec	=> l_old_line_scredit_tbl(1)
2604         , p_line_scr_id 	=> l_line_scredit_tbl(1).sales_credit_id
2605         , x_index 		=> l_notify_index
2606         , x_return_status 	=> l_return_status);
2607 
2608     IF l_debug_level  > 0 THEN
2609         oe_debug_pub.add(  'UPDATE_GLOBAL RET_STATUS FOR LINE_ID '||L_LINE_SCREDIT_TBL ( 1 ) .LINE_ID ||' IS: ' || L_RETURN_STATUS , 1 ) ;
2610     END IF;
2611     IF l_debug_level  > 0 THEN
2612         oe_debug_pub.add(  'UPDATE_GLOBAL INDEX FOR LINE_ID '||L_LINE_SCREDIT_TBL ( 1 ) .LINE_ID ||' IS: ' || L_NOTIFY_INDEX , 1 ) ;
2613     END IF;
2614 
2615         IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2616            RAISE FND_API.G_EXC_ERROR;
2617         ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2618 	   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2619         END IF;
2620 
2621 ELSE
2622 
2623              OE_Order_PVT.Process_Requests_And_Notify
2624             ( p_process_requests          => FALSE
2625             , p_notify                    => TRUE
2626             , x_return_status             => l_return_status
2627             , p_line_scredit_tbl          => l_line_scredit_tbl
2628             , p_old_line_scredit_tbl      => l_old_line_scredit_tbl
2629             );
2630 
2631              IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2632                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2633              ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2634                  RAISE FND_API.G_EXC_ERROR;
2635              END IF;
2636 
2637 END IF; /* code set is pack H or higher */
2638 -- jolin end
2639 
2640 	        if l_sales_credits_count = 1 then -- issue message update with new salesrep
2641                 fnd_message.set_name('ONT','OE_OE_UPDATED_LINE_CREDIT');
2642                 OE_MSG_PUB.Add;
2643              end if;
2644 
2645        END IF; -- if l_create_flag or l_update_flag
2646 
2647    END IF; -- Salesrep id not equal
2648                IF l_debug_level  > 0 THEN
2649                    oe_debug_pub.add(  'EXIT CREATE CREDITS' ) ;
2650                END IF;
2651 
2652 EXCEPTION
2653 
2654 WHEN OTHERS THEN
2655       IF OE_MSG_PUB.Check_Msg_Level (OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2656       THEN
2657        OE_MSG_PUB.Add_Exc_Msg
2658                (    G_PKG_NAME ,
2659                     'Create_Credits'
2660                );
2661       END IF;
2662       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2663 
2664 End Create_credit;
2665 
2666 /* Start AuditTrail */
2667 PROCEDURE Pre_Write_Process
2668 (p_x_line_scredit_rec IN OUT NOCOPY /* file.sql.39 change */ OE_ORDER_PUB.line_scredit_rec_type,
2669 p_old_line_scredit_rec IN OE_ORDER_PUB.line_scredit_rec_type :=
2670 				 OE_ORDER_PUB.G_MISS_LINE_SCREDIT_REC
2671 )IS
2672 /*local */
2673 l_return_status varchar2(30);
2674 --
2675 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2676 --
2677 BEGIN
2678 
2679        --11.5.10 Versioning/Audit Trail updates
2680      IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' AND
2681          OE_GLOBALS.G_ROLL_VERSION <> 'N' THEN
2682        IF OE_GLOBALS.G_REASON_CODE IS NULL AND
2683            OE_GLOBALS.G_CAPTURED_REASON IN ('V','A') THEN
2684           IF p_x_line_scredit_rec.change_reason <> FND_API.G_MISS_CHAR THEN
2685               OE_GLOBALS.G_REASON_CODE := p_x_line_scredit_rec.change_reason;
2686               OE_GLOBALS.G_REASON_COMMENTS := p_x_line_scredit_rec.change_comments;
2687               OE_GLOBALS.G_CAPTURED_REASON := 'Y';
2688           ELSE
2689               IF l_debug_level  > 0 THEN
2690                  OE_DEBUG_PUB.add('Reason code for versioning missing', 1);
2691               END IF;
2692               IF OE_GLOBALS.G_UI_FLAG THEN
2693                  raise FND_API.G_EXC_ERROR;
2694               END IF;
2695           END IF;
2696        END IF;
2697 
2698        --log delayed request
2699        IF l_debug_level  > 0 THEN
2700         oe_debug_pub.add('log versioning request',1);
2701        END IF;
2702           OE_Delayed_Requests_Pvt.Log_Request(p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
2703                                    p_entity_id => p_x_line_scredit_rec.header_id,
2704                                    p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE_SCREDIT,
2705                                    p_requesting_entity_id => p_x_line_scredit_rec.sales_credit_id,
2706                                    p_request_type => OE_GLOBALS.G_VERSION_AUDIT,
2707                                    x_return_status => l_return_status);
2708      END IF;
2709 
2710 IF (p_x_line_scredit_rec.operation  = OE_GLOBALS.G_OPR_UPDATE) then
2711 
2712    IF OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG='Y' then
2713       IF l_debug_level  > 0 THEN
2714           oe_debug_pub.add(  'OEXULSCB: AUDIT TRAIL - CHANGE REQUIRES REASON' , 2 ) ;
2715       END IF;
2716       IF (p_x_line_scredit_rec.change_reason IS NULL OR
2717 	  p_x_line_scredit_rec.change_reason = FND_API.G_MISS_CHAR OR
2718           NOT OE_VALIDATE.Change_Reason_Code(p_x_line_Scredit_rec.Change_Reason)) THEN
2719         IF OE_GLOBALS.G_DEFAULT_REASON THEN
2720           if l_debug_level > 0 then
2721              oe_debug_pub.add('Defaulting Audit Reason for Line Sales Credit', 1);
2722           end if;
2723           p_x_line_scredit_rec.change_reason := 'SYSTEM';
2724         ELSE
2725           IF l_debug_level  > 0 THEN
2726              oe_debug_pub.add(  'Reason code for change is missing or invalid ' , 1 ) ;
2727           END IF;
2728           fnd_message.set_name('ONT','OE_AUDIT_REASON_RQD');
2729           fnd_message.set_token('OBJECT','LINE SALES CREDIT');
2730 	  oe_msg_pub.add;
2731 	  raise FND_API.G_EXC_ERROR;
2732         END IF;
2733       END IF;
2734    END IF;
2735    IF OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG = 'Y' OR
2736 	 OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG = 'Y' THEN
2737 
2738      IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' THEN
2739           OE_Versioning_Util.Capture_Audit_Info(p_entity_code => OE_GLOBALS.G_ENTITY_LINE_SCREDIT,
2740                                            p_entity_id => p_x_line_scredit_rec.sales_credit_id,
2741                                            p_hist_type_code =>  'UPDATE');
2742            --log delayed request
2743              OE_Delayed_Requests_Pvt.Log_Request(p_entity_code => OE_GLOBALS.G_ENTITY_ALL,
2744                                    p_entity_id => p_x_line_scredit_rec.header_id,
2745                                    p_requesting_entity_code => OE_GLOBALS.G_ENTITY_LINE_SCREDIT,
2746                                    p_requesting_entity_id => p_x_line_scredit_rec.sales_credit_id,
2747                                    p_request_type => OE_GLOBALS.G_VERSION_AUDIT,
2748                                    x_return_status => l_return_status);
2749           OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
2750      ELSE
2751         IF l_debug_level  > 0 THEN
2752             oe_debug_pub.add(  'OEXULSCB:CALLING OE_ORDER_CHG_PVT.RECORDLSCREDITHIST' , 2 ) ;
2753         END IF;
2754 
2755 	   OE_CHG_ORDER_PVT.RecordLScreditHist
2756 	    (p_line_scredit_id => p_x_line_scredit_rec.sales_credit_id,
2757 		p_line_scredit_rec => null,
2758 		p_hist_type_code => 'UPDATE',
2759 		p_reason_code => p_x_line_scredit_rec.change_reason,
2760           p_comments => p_x_line_scredit_rec.change_comments,
2761 		p_wf_activity_code => null,
2762 		p_wf_result_code => null,
2763 		x_return_status => l_return_status
2764 	    );
2765      END IF;
2766    END IF;
2767    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2768 	 IF l_debug_level  > 0 THEN
2769 	     oe_debug_pub.add(  'INSERTING LINE SALES CREDIT HISTORY CAUSED ERROR ' , 1 ) ;
2770 	 END IF;
2771 	 if l_return_status = FND_API.G_RET_STS_ERROR then
2772 	    raise FND_API.G_EXC_ERROR;
2773 	 else
2774 	    raise FND_API.G_EXC_UNEXPECTED_ERROR;
2775      end if;
2776    END IF;
2777 END IF;
2778 
2779 END Pre_Write_Process;
2780 /* End AuditTrail */
2781 
2782 END OE_Line_Scredit_Util;