1 PACKAGE BODY OE_Validate_Line_Scredit AS
2 /* $Header: OEXLLSCB.pls 120.1 2005/12/29 04:32:41 ppnair noship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_Validate_Line_Scredit';
7
8 Function Duplicate_Salescredit
9 (p_salesrep_id IN Number
10 ,p_sales_credit_type_id IN NUMBER
11 ,p_line_id IN NUMBER
12 ,p_sales_credit_id IN NUMBER
13 ) RETURN BOOLEAN IS
14 Cursor C_Dup_Salescredit(p_salesrep_id NUMBER
15 ,p_sales_credit_type_id NUMBER
16 ,p_line_id NUMBER
17 ,p_sales_credit_id NUMBER) IS
18 SELECT 'DUPLICATE'
19 FROM oe_sales_credits
20 WHERE line_id = p_line_id
21 AND salesrep_id = p_salesrep_id
22 AND sales_credit_type_id = p_sales_credit_type_id
23 AND sales_credit_id <> nvl(p_sales_credit_id,-5);
24 l_dummy varchar2(30);
25 BEGIN
26 OE_DEBUG_PUB.Add('Entering OE_VALIDATE_LINE_SCREDIT.Duplicate_Salescredit',1);
27 OPEN C_Dup_Salescredit(p_salesrep_id
28 ,p_sales_credit_type_id
29 ,p_line_id
30 ,p_sales_credit_id);
31 FETCH C_Dup_Salescredit INTO l_dummy;
32 CLOSE C_Dup_Salescredit;
33 IF l_dummy = 'DUPLICATE' THEN
34 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
35 THEN
36
37 FND_MESSAGE.SET_NAME('ONT','OE_VAL_DUP_LINE_CREDIT');
38 oe_msg_pub.add;
39
40 END IF;
41 OE_DEBUG_PUB.Add('Exiting OE_VALIDATE_LINE_SCREDIT.Duplicate_Salescredit',1);
42 Return TRUE;
43 ELSE
44 OE_DEBUG_PUB.Add('Exiting OE_VALIDATE_LINE_SCREDIT.Duplicate_Salescredit',1);
45 Return FALSE;
46 END IF;
47 END Duplicate_Salescredit;
48
49 -- Procedure to validate quota percent total
50
51 Procedure Validate_LSC_QUOTA_TOTAL
52 ( x_return_status OUT NOCOPY /* file.sql.39 change */ Varchar2
53 , p_line_id IN NUMBER
54 ) IS
55 l_percent_total Number;
56 -- FP bug 3872166
57 l_line_no varchar2(30);
58 Cursor C_LSC_Quota_Total(p_line_id number) IS
59 SELECT sum(Percent) Per_total
60 FROM oe_sales_credits sc,
61 oe_sales_credit_types sct
62 WHERE line_id = p_line_id
63 AND sc.sales_credit_type_id = sct.sales_credit_type_id
64 AND sct.quota_flag = 'Y';
65
66 BEGIN
67 OE_DEBUG_PUB.Add('Entering OE_VALIDATE_LINE_SCREDIT.Validate_LSC_QUOTA_TOTAL',1);
68 x_return_status := FND_API.G_RET_STS_SUCCESS;
69 OPEN C_LSC_Quota_Total(p_line_id);
70 FETCH C_LSC_Quota_Total
71 INTO l_percent_total;
72 CLOSE C_LSC_Quota_Total;
73
74 --FP bug 3872166 start
75 IF l_percent_total = 0 THEN
76 l_line_no := OE_ORDER_MISC_PUB.Get_Concat_Line_Number(p_line_id);
77 FND_MESSAGE.SET_NAME('ONT','ONT_ZERO_PERCENT_LINE_CREDITS');
78 FND_MESSAGE.SET_TOKEN('LINE_NO',l_line_no);
79 oe_msg_pub.add;
80 --FP bug 3872166 end
81 ELSIF l_percent_total <> 100 THEN
82 FND_MESSAGE.SET_NAME('ONT','OE_VAL_TTL_LINE_CREDIT');
83 FND_MESSAGE.SET_TOKEN('TOTAL',to_char(l_percent_total));
84 oe_msg_pub.add;
85 x_return_status := FND_API.G_RET_STS_ERROR;
86 END IF;
87 OE_DEBUG_PUB.Add('Exiting OE_VALIDATE_LINE_SCREDIT.Validate_LSC_QUOTA_TOTAL',1);
88 EXCEPTION
89
90 WHEN FND_API.G_EXC_ERROR THEN
91
92 x_return_status := FND_API.G_RET_STS_ERROR;
93
94 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
95
96 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
97
98 WHEN OTHERS THEN
99
100 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
101
102 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
103 THEN
104 oe_msg_pub.add_Exc_Msg
105 ( G_PKG_NAME
106 , 'Validate_LSC_QUOTA_TOTAL'
107 );
108 END IF;
109 END Validate_LSC_QUOTA_TOTAL;
110
111 -- Procedure Entity
112
113 PROCEDURE Entity
114 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
115 , p_Line_Scredit_rec IN OE_Order_PUB.Line_Scredit_Rec_Type
116 , p_old_Line_Scredit_rec IN OE_Order_PUB.Line_Scredit_Rec_Type :=
117 OE_Order_PUB.G_MISS_LINE_SCREDIT_REC
118 )
119 IS
120 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
121
122 --bug 3275243
123 l_ar_decimal_limit CONSTANT NUMBER:=4;
124 BEGIN
125 OE_DEBUG_PUB.Add('Entering OE_VALIDATE_LINE_SCREDIT.Entity',1);
126
127 -- Check required attributes.
128
129 IF p_Line_Scredit_rec.sales_credit_id IS NULL
130 THEN
131 oe_debug_pub.add('Validate Entity - 1',1);
132
133 l_return_status := FND_API.G_RET_STS_ERROR;
134
135 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
136 THEN
137
138 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
139 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',OE_Order_Util.Get_Attribute_Name('SALES_CREDIT_ID'));
140
141 oe_msg_pub.add;
142
143 END IF;
144
145 END IF;
146
147 IF p_Line_Scredit_rec.sales_credit_type_id IS NULL
148 THEN
149 oe_debug_pub.add('Validate Entity - 1',1);
150
151 l_return_status := FND_API.G_RET_STS_ERROR;
152
153 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
154 THEN
155 IF p_line_Scredit_rec.salesrep_id IS NULL THEN
156 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
157 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',OE_Order_Util.Get_Attribute_Name('SALESREP_ID'));
158 oe_msg_pub.Add;
159 END IF;
160
161 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
162 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',OE_Order_Util.Get_Attribute_Name('SALES_CREDIT_TYPE_ID'));
163
164 oe_msg_pub.add;
165
166 END IF;
167
168 END IF;
169 --
170 -- Check rest of required attributes here.
171 --
172 IF p_line_Scredit_rec.HEADER_ID IS NULL
173 THEN
174 oe_debug_pub.add('Validate Entity - 2',1);
175
176 l_return_status := FND_API.G_RET_STS_ERROR;
177
178 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
179 THEN
180
181 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
182 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',OE_Order_Util.Get_Attribute_Name('HEADER'));
183 oe_msg_pub.add;
184
185 END IF;
186
187 END IF;
188
189 IF p_line_Scredit_rec.line_id IS NULL
190 THEN
191 oe_debug_pub.add('Validate Entity - 3',1);
192
193 l_return_status := FND_API.G_RET_STS_ERROR;
194
195 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
196 THEN
197
198 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
199 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',OE_Order_Util.Get_Attribute_Name('LINE'));
200 oe_msg_pub.add;
201
202 END IF;
203
204 END IF;
205
206
207 IF p_line_Scredit_rec.PERCENT IS NULL
208 THEN
209 oe_debug_pub.add('Validate Entity - 5',1);
210
211 l_return_status := FND_API.G_RET_STS_ERROR;
212
213 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
214 THEN
215
216 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
217 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',OE_Order_Util.Get_Attribute_Name('PERCENT'));
218 oe_msg_pub.add;
219
220 END IF;
221 ElsIf p_line_Scredit_rec.PERCENT <> FND_API.G_MISS_NUM THEN
222 IF length(p_line_scredit_rec.percent- trunc(p_line_Scredit_rec.PERCENT))- 1 > l_ar_decimal_limit THEN
223 oe_debug_pub.add('In OE_Validate_Header_Scredit.entity:Error:percentage more than 4, AR allowes max 4');
224 oe_debug_pub.add(' Header id:'||p_line_scredit_rec.header_id);
225
226 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
227 FND_MESSAGE.SET_NAME('ONT','ONT_PERCENTAGE_FORMAT');
228 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','PERCENT');
229 oe_msg_pub.Add;
230 END IF;
231
232 l_return_status := FND_API.G_RET_STS_ERROR;
233 END IF;
234 END IF;
235
236
237
238 -- Return Error if a required attribute is missing.
239
240 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
241
242 RAISE FND_API.G_EXC_ERROR;
243
244 END IF;
245
246 --
247 -- Check conditionally required attributes here.
248 --
249
250
251 --
252 -- Validate attribute dependencies here.
253 --
254 IF Duplicate_Salescredit
255 (p_salesrep_id=>p_Line_Scredit_rec.salesrep_id
256 ,p_sales_credit_type_id=>p_Line_Scredit_rec.sales_credit_type_id
257 ,p_line_id=>p_Line_Scredit_rec.line_id
258 ,p_sales_credit_id=>p_Line_Scredit_rec.sales_credit_id)
259 THEN
260 oe_debug_pub.add('Validate Entity - 6',1);
261 l_return_status := FND_API.G_RET_STS_ERROR;
262 END IF;
263
264 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
265 RAISE FND_API.G_EXC_ERROR;
266 end if;
267
268
269 -- Done validating entity
270
271 x_return_status := l_return_status;
272 OE_DEBUG_PUB.Add('Exiting OE_VALIDATE_LINE_SCREDIT.Entity',1);
273
274 EXCEPTION
275
276 WHEN FND_API.G_EXC_ERROR THEN
277
278 x_return_status := FND_API.G_RET_STS_ERROR;
279
280 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
281
282 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
283
284 WHEN OTHERS THEN
285
286 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
287
288 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
289 THEN
290 oe_msg_pub.add_Exc_Msg
291 ( G_PKG_NAME
292 , 'Entity'
293 );
294 END IF;
295
296 END Entity;
297
298 -- Procedure Attributes
299
300 /* changed p_Line_Scredit_rec in the following procedure to IN OUT NOCPY to fix the bug 3006018 */
301
302 PROCEDURE Attributes
303 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
304 , p_Line_Scredit_rec IN OUT NOCOPY OE_Order_PUB.Line_Scredit_Rec_Type
305 , p_old_Line_Scredit_rec IN OE_Order_PUB.Line_Scredit_Rec_Type :=
306 OE_Order_PUB.G_MISS_LINE_SCREDIT_REC
307 )
308 IS
309 BEGIN
310 OE_DEBUG_PUB.Add('Entering OE_VALIDATE_LINE_SCREDIT.Attributes',1);
311
312 x_return_status := FND_API.G_RET_STS_SUCCESS;
313
314 -- Validate Line_Scredit attributes
315
316 IF p_Line_Scredit_rec.created_by IS NOT NULL AND
317 ( p_Line_Scredit_rec.created_by <>
318 p_old_Line_Scredit_rec.created_by OR
319 p_old_Line_Scredit_rec.created_by IS NULL )
320 THEN
321 IF NOT OE_Validate.Created_By(p_Line_Scredit_rec.created_by) THEN
322 x_return_status := FND_API.G_RET_STS_ERROR;
323 END IF;
324 END IF;
325
326 IF p_Line_Scredit_rec.creation_date IS NOT NULL AND
327 ( p_Line_Scredit_rec.creation_date <>
328 p_old_Line_Scredit_rec.creation_date OR
329 p_old_Line_Scredit_rec.creation_date IS NULL )
330 THEN
331 IF NOT OE_Validate.Creation_Date(p_Line_Scredit_rec.creation_date) THEN
332 x_return_status := FND_API.G_RET_STS_ERROR;
333 END IF;
334 END IF;
335
336 IF p_Line_Scredit_rec.dw_update_advice_flag IS NOT NULL AND
337 ( p_Line_Scredit_rec.dw_update_advice_flag <>
338 p_old_Line_Scredit_rec.dw_update_advice_flag OR
339 p_old_Line_Scredit_rec.dw_update_advice_flag IS NULL )
340 THEN
341 IF NOT OE_Validate.Dw_Update_Advice(p_Line_Scredit_rec.dw_update_advice_flag) THEN
342 x_return_status := FND_API.G_RET_STS_ERROR;
343 END IF;
344 END IF;
345
346 IF p_Line_Scredit_rec.header_id IS NOT NULL AND
347 ( p_Line_Scredit_rec.header_id <>
348 p_old_Line_Scredit_rec.header_id OR
349 p_old_Line_Scredit_rec.header_id IS NULL )
350 THEN
351 IF NOT OE_Validate.Header(p_Line_Scredit_rec.header_id) THEN
352 x_return_status := FND_API.G_RET_STS_ERROR;
353 END IF;
354 END IF;
355
356 IF p_Line_Scredit_rec.last_updated_by IS NOT NULL AND
357 ( p_Line_Scredit_rec.last_updated_by <>
358 p_old_Line_Scredit_rec.last_updated_by OR
359 p_old_Line_Scredit_rec.last_updated_by IS NULL )
360 THEN
361 IF NOT OE_Validate.Last_Updated_By(p_Line_Scredit_rec.last_updated_by) THEN
362 x_return_status := FND_API.G_RET_STS_ERROR;
363 END IF;
364 END IF;
365
366 IF p_Line_Scredit_rec.last_update_date IS NOT NULL AND
367 ( p_Line_Scredit_rec.last_update_date <>
368 p_old_Line_Scredit_rec.last_update_date OR
369 p_old_Line_Scredit_rec.last_update_date IS NULL )
370 THEN
371 IF NOT OE_Validate.Last_Update_Date(p_Line_Scredit_rec.last_update_date) THEN
372 x_return_status := FND_API.G_RET_STS_ERROR;
373 END IF;
374 END IF;
375
376 IF p_Line_Scredit_rec.last_update_login IS NOT NULL AND
377 ( p_Line_Scredit_rec.last_update_login <>
378 p_old_Line_Scredit_rec.last_update_login OR
379 p_old_Line_Scredit_rec.last_update_login IS NULL )
380 THEN
381 IF NOT OE_Validate.Last_Update_Login(p_Line_Scredit_rec.last_update_login) THEN
382 x_return_status := FND_API.G_RET_STS_ERROR;
383 END IF;
384 END IF;
385
386 IF p_Line_Scredit_rec.line_id IS NOT NULL AND
387 ( p_Line_Scredit_rec.line_id <>
388 p_old_Line_Scredit_rec.line_id OR
389 p_old_Line_Scredit_rec.line_id IS NULL )
390 THEN
391 IF NOT OE_Validate.Line(p_Line_Scredit_rec.line_id) THEN
392 x_return_status := FND_API.G_RET_STS_ERROR;
393 END IF;
394 END IF;
395
396 IF p_Line_Scredit_rec.percent IS NOT NULL AND
397 ( p_Line_Scredit_rec.percent <>
398 p_old_Line_Scredit_rec.percent OR
399 p_old_Line_Scredit_rec.percent IS NULL )
400 THEN
401 IF NOT OE_Validate.Percent(p_Line_Scredit_rec.percent) THEN
402 x_return_status := FND_API.G_RET_STS_ERROR;
403 END IF;
404 END IF;
405
406
407 IF p_Line_Scredit_rec.salesrep_id IS NOT NULL AND
408 ( p_Line_Scredit_rec.salesrep_id <>
409 p_old_Line_Scredit_rec.salesrep_id OR
410 p_old_Line_Scredit_rec.salesrep_id IS NULL )
411 THEN
412 IF NOT OE_Validate.Salesrep(p_Line_Scredit_rec.salesrep_id) THEN
413 x_return_status := FND_API.G_RET_STS_ERROR;
414 END IF;
415 END IF;
416
417 IF p_Line_Scredit_rec.sales_credit_id IS NOT NULL AND
418 ( p_Line_Scredit_rec.sales_credit_id <>
419 p_old_Line_Scredit_rec.sales_credit_id OR
420 p_old_Line_Scredit_rec.sales_credit_id IS NULL )
421 THEN
422 IF NOT OE_Validate.Sales_Credit(p_Line_Scredit_rec.sales_credit_id) THEN
423 x_return_status := FND_API.G_RET_STS_ERROR;
424 END IF;
425 END IF;
426
427 IF p_Line_Scredit_rec.wh_update_date IS NOT NULL AND
428 ( p_Line_Scredit_rec.wh_update_date <>
429 p_old_Line_Scredit_rec.wh_update_date OR
430 p_old_Line_Scredit_rec.wh_update_date IS NULL )
431 THEN
432 IF NOT OE_Validate.Wh_Update_Date(p_Line_Scredit_rec.wh_update_date) THEN
433 x_return_status := FND_API.G_RET_STS_ERROR;
434 END IF;
435 END IF;
436 if OE_GLOBALS.g_validate_desc_flex ='Y' then --bug 4343612
437 oe_debug_pub.add('Validation of desc flex is set to Y in OE_Validate_Line_Scredit.attributes ',1);
438 IF (p_Line_Scredit_rec.attribute1 IS NOT NULL AND
439 ( p_Line_Scredit_rec.attribute1 <>
440 p_old_Line_Scredit_rec.attribute1 OR
441 p_old_Line_Scredit_rec.attribute1 IS NULL ))
442 OR (p_Line_Scredit_rec.attribute10 IS NOT NULL AND
443 ( p_Line_Scredit_rec.attribute10 <>
444 p_old_Line_Scredit_rec.attribute10 OR
445 p_old_Line_Scredit_rec.attribute10 IS NULL ))
446 OR (p_Line_Scredit_rec.attribute11 IS NOT NULL AND
447 ( p_Line_Scredit_rec.attribute11 <>
448 p_old_Line_Scredit_rec.attribute11 OR
449 p_old_Line_Scredit_rec.attribute11 IS NULL ))
450 OR (p_Line_Scredit_rec.attribute12 IS NOT NULL AND
451 ( p_Line_Scredit_rec.attribute12 <>
452 p_old_Line_Scredit_rec.attribute12 OR
453 p_old_Line_Scredit_rec.attribute12 IS NULL ))
454 OR (p_Line_Scredit_rec.attribute13 IS NOT NULL AND
455 ( p_Line_Scredit_rec.attribute13 <>
456 p_old_Line_Scredit_rec.attribute13 OR
457 p_old_Line_Scredit_rec.attribute13 IS NULL ))
458 OR (p_Line_Scredit_rec.attribute14 IS NOT NULL AND
459 ( p_Line_Scredit_rec.attribute14 <>
460 p_old_Line_Scredit_rec.attribute14 OR
461 p_old_Line_Scredit_rec.attribute14 IS NULL ))
462 OR (p_Line_Scredit_rec.attribute15 IS NOT NULL AND
463 ( p_Line_Scredit_rec.attribute15 <>
464 p_old_Line_Scredit_rec.attribute15 OR
465 p_old_Line_Scredit_rec.attribute15 IS NULL ))
466 OR (p_Line_Scredit_rec.attribute2 IS NOT NULL AND
467 ( p_Line_Scredit_rec.attribute2 <>
468 p_old_Line_Scredit_rec.attribute2 OR
469 p_old_Line_Scredit_rec.attribute2 IS NULL ))
470 OR (p_Line_Scredit_rec.attribute3 IS NOT NULL AND
471 ( p_Line_Scredit_rec.attribute3 <>
472 p_old_Line_Scredit_rec.attribute3 OR
473 p_old_Line_Scredit_rec.attribute3 IS NULL ))
474 OR (p_Line_Scredit_rec.attribute4 IS NOT NULL AND
475 ( p_Line_Scredit_rec.attribute4 <>
476 p_old_Line_Scredit_rec.attribute4 OR
477 p_old_Line_Scredit_rec.attribute4 IS NULL ))
478 OR (p_Line_Scredit_rec.attribute5 IS NOT NULL AND
479 ( p_Line_Scredit_rec.attribute5 <>
480 p_old_Line_Scredit_rec.attribute5 OR
481 p_old_Line_Scredit_rec.attribute5 IS NULL ))
482 OR (p_Line_Scredit_rec.attribute6 IS NOT NULL AND
483 ( p_Line_Scredit_rec.attribute6 <>
484 p_old_Line_Scredit_rec.attribute6 OR
485 p_old_Line_Scredit_rec.attribute6 IS NULL ))
486 OR (p_Line_Scredit_rec.attribute7 IS NOT NULL AND
487 ( p_Line_Scredit_rec.attribute7 <>
488 p_old_Line_Scredit_rec.attribute7 OR
489 p_old_Line_Scredit_rec.attribute7 IS NULL ))
490 OR (p_Line_Scredit_rec.attribute8 IS NOT NULL AND
491 ( p_Line_Scredit_rec.attribute8 <>
492 p_old_Line_Scredit_rec.attribute8 OR
493 p_old_Line_Scredit_rec.attribute8 IS NULL ))
494 OR (p_Line_Scredit_rec.attribute9 IS NOT NULL AND
495 ( p_Line_Scredit_rec.attribute9 <>
496 p_old_Line_Scredit_rec.attribute9 OR
497 p_old_Line_Scredit_rec.attribute9 IS NULL ))
498 OR (p_Line_Scredit_rec.context IS NOT NULL AND
499 ( p_Line_Scredit_rec.context <>
500 p_old_Line_Scredit_rec.context OR
501 p_old_Line_Scredit_rec.context IS NULL ))
502 THEN
503
504
505 oe_debug_pub.add('Before calling Line Sales_Credits_Desc_Flex',2);
506 IF NOT OE_VALIDATE.Sales_Credits_Desc_Flex
507 (p_context => p_Line_Scredit_rec.context
508 ,p_attribute1 => p_Line_Scredit_rec.attribute1
509 ,p_attribute2 => p_Line_Scredit_rec.attribute2
510 ,p_attribute3 => p_Line_Scredit_rec.attribute3
511 ,p_attribute4 => p_Line_Scredit_rec.attribute4
512 ,p_attribute5 => p_Line_Scredit_rec.attribute5
513 ,p_attribute6 => p_Line_Scredit_rec.attribute6
514 ,p_attribute7 => p_Line_Scredit_rec.attribute7
515 ,p_attribute8 => p_Line_Scredit_rec.attribute8
516 ,p_attribute9 => p_Line_Scredit_rec.attribute9
517 ,p_attribute10 => p_Line_Scredit_rec.attribute10
518 ,p_attribute11 => p_Line_Scredit_rec.attribute11
519 ,p_attribute12 => p_Line_Scredit_rec.attribute12
520 ,p_attribute13 => p_Line_Scredit_rec.attribute13
521 ,p_attribute14 => p_Line_Scredit_rec.attribute14
522 ,p_attribute15 => p_Line_Scredit_rec.attribute15) THEN
523
524 x_return_status := FND_API.G_RET_STS_ERROR;
525
526 /* Added the following code to fix the bug 3006018 */
527
528 ELSE
529 IF p_line_scredit_rec.context IS NULL
530 OR p_line_scredit_rec.context = FND_API.G_MISS_CHAR THEN
531 p_line_scredit_rec.context := oe_validate.g_context;
532 END IF;
533
534 IF p_line_scredit_rec.attribute1 IS NULL
535 OR p_line_scredit_rec.attribute1 = FND_API.G_MISS_CHAR THEN
536 p_line_scredit_rec.attribute1 := oe_validate.g_attribute1;
537 END IF;
538
539 IF p_line_scredit_rec.attribute2 IS NULL
540 OR p_line_scredit_rec.attribute2 = FND_API.G_MISS_CHAR THEN
541 p_line_scredit_rec.attribute2 := oe_validate.g_attribute2;
542 END IF;
543
544 IF p_line_scredit_rec.attribute3 IS NULL
545 OR p_line_scredit_rec.attribute3 = FND_API.G_MISS_CHAR THEN
546 p_line_scredit_rec.attribute3 := oe_validate.g_attribute3;
547 END IF;
548
549 IF p_line_scredit_rec.attribute4 IS NULL
550 OR p_line_scredit_rec.attribute4 = FND_API.G_MISS_CHAR THEN
551 p_line_scredit_rec.attribute4 := oe_validate.g_attribute4;
552 END IF;
553
554 IF p_line_scredit_rec.attribute5 IS NULL
555 OR p_line_scredit_rec.attribute5 = FND_API.G_MISS_CHAR THEN
556 p_line_scredit_rec.attribute5 := oe_validate.g_attribute5;
557 END IF;
558
559 IF p_line_scredit_rec.attribute6 IS NULL
560 OR p_line_scredit_rec.attribute6 = FND_API.G_MISS_CHAR THEN
561 p_line_scredit_rec.attribute6 := oe_validate.g_attribute6;
562 END IF;
563
564 IF p_line_scredit_rec.attribute7 IS NULL
565 OR p_line_scredit_rec.attribute7 = FND_API.G_MISS_CHAR THEN
566 p_line_scredit_rec.attribute7 := oe_validate.g_attribute7;
567 END IF;
568
569 IF p_line_scredit_rec.attribute8 IS NULL
570 OR p_line_scredit_rec.attribute8 = FND_API.G_MISS_CHAR THEN
571 p_line_scredit_rec.attribute8 := oe_validate.g_attribute8;
572 END IF;
573
574 IF p_line_scredit_rec.attribute9 IS NULL
575 OR p_line_scredit_rec.attribute9 = FND_API.G_MISS_CHAR THEN
576 p_line_scredit_rec.attribute9 := oe_validate.g_attribute9;
577 END IF;
578
579 IF p_line_scredit_rec.attribute10 IS NULL
580 OR p_line_scredit_rec.attribute10 = FND_API.G_MISS_CHAR THEN
581 p_line_scredit_rec.attribute10 := oe_validate.g_attribute10;
582 END IF;
583
584 IF p_line_scredit_rec.attribute11 IS NULL
585 OR p_line_scredit_rec.attribute11 = FND_API.G_MISS_CHAR THEN
586 p_line_scredit_rec.attribute11 := oe_validate.g_attribute11;
587 END IF;
588
589 IF p_line_scredit_rec.attribute12 IS NULL
590 OR p_line_scredit_rec.attribute12 = FND_API.G_MISS_CHAR THEN
591 p_line_scredit_rec.attribute12 := oe_validate.g_attribute12;
592 END IF;
593
594 IF p_line_scredit_rec.attribute13 IS NULL
595 OR p_line_scredit_rec.attribute13 = FND_API.G_MISS_CHAR THEN
596 p_line_scredit_rec.attribute13 := oe_validate.g_attribute13;
597 END IF;
598
599 IF p_line_scredit_rec.attribute14 IS NULL
600 OR p_line_scredit_rec.attribute14 = FND_API.G_MISS_CHAR THEN
601 p_line_scredit_rec.attribute14 := oe_validate.g_attribute14;
602 END IF;
603
604 IF p_line_scredit_rec.attribute15 IS NULL
605 OR p_line_scredit_rec.attribute15 = FND_API.G_MISS_CHAR THEN
606 p_line_scredit_rec.attribute15 := oe_validate.g_attribute15;
607 END IF;
608
609 /* End of the code added to fix the bug 3006018 */
610
611 END IF;
612 oe_debug_pub.add('After Line Sales_Credits_Desc_Flex ' || x_return_status,2);
613
614 END IF;
615
616 OE_DEBUG_PUB.Add('Exiting OE_VALIDATE_LINE_SCREDIT.Attributes',1);
617 -- Done validating attributes
618 end if ; /*if OE_GLOBALS.g_validate_desc_flex ='Y' then bug 4343612*/
619 EXCEPTION
620
621 WHEN FND_API.G_EXC_ERROR THEN
622
623 x_return_status := FND_API.G_RET_STS_ERROR;
624
625 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
626
627 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
628
629 WHEN OTHERS THEN
630
631 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
632
633 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
634 THEN
635 oe_msg_pub.add_Exc_Msg
636 ( G_PKG_NAME
637 , 'Attributes'
638 );
639 END IF;
640
641 END Attributes;
642
643 -- Procedure Entity_Delete
644
645 PROCEDURE Entity_Delete
646 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
647 , p_Line_Scredit_rec IN OE_Order_PUB.Line_Scredit_Rec_Type
648 )
649 IS
650 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
651 l_request_rec OE_Order_PUB.request_rec_type;
652 BEGIN
653
654 -- Validate entity delete.
655
656 OE_DEBUG_PUB.Add('Entering OE_VALIDATE_LINE_SCREDIT.Entity_Delete',1);
657 NULL;
658 OE_Delayed_Requests_Pvt.Log_Request
659 (p_entity_code =>OE_GLOBALS.G_ENTITY_Line_Scredit
660 ,p_entity_id =>p_Line_Scredit_rec.sales_credit_id
661 ,p_requesting_entity_code =>OE_GLOBALS.G_ENTITY_Line_Scredit
662 ,p_requesting_entity_id =>p_Line_Scredit_rec.sales_credit_id
663 ,p_request_type =>OE_GLOBALS.G_CHECK_LSC_QUOTA_TOTAL
664 ,p_param1 => to_char(p_Line_Scredit_rec.Line_id)
665 ,x_return_status =>l_return_status);
666
667 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
668 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
669 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
670 RAISE FND_API.G_EXC_ERROR;
671 END IF;
672
673
674 -- Adding service sales credit delayed request
675 -- Here we are executing the delayed request procedure which will
676 -- cascade the sc delete.
677
678 IF OE_GLOBALS.G_RECURSION_MODE <> 'Y' THEN
679 -- Preparing request_rec.
680 l_request_rec.entity_code := OE_GLOBALS.G_ENTITY_line_Scredit;
681 l_request_rec.entity_id := p_Line_Scredit_rec.sales_credit_id;
682 l_request_rec.request_type := OE_GLOBALS.G_CASCADE_SERVICE_SCREDIT;
683 l_request_rec.param8 := to_char(p_Line_Scredit_rec.Line_id);
684 l_request_rec.param1 := to_char(p_Line_Scredit_rec.salesrep_id);
685 l_request_rec.param2 := to_char(p_Line_Scredit_rec.salesrep_id);
686 l_request_rec.param3 := to_char(p_Line_Scredit_rec.Sales_credit_type_id);
687 l_request_rec.param4 := to_char(p_Line_Scredit_rec.Sales_credit_type_id);
688 l_request_rec.param5 := to_char(p_Line_Scredit_rec.percent);
689 l_request_rec.param6 := to_char(p_Line_Scredit_rec.percent);
690 l_request_rec.param7 := p_Line_Scredit_rec.operation;
691
692
693 OE_DELAYED_REQUESTS_UTIL.Cascade_Service_Scredit
694 ( x_return_status =>l_return_status
695 ,p_request_rec =>l_request_rec);
696
697 END IF;
698
699 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
700 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
701 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
702 RAISE FND_API.G_EXC_ERROR;
703 END IF;
704
705 -- Done.
706
707 OE_DEBUG_PUB.Add('Exiting OE_VALIDATE_LINE_SCREDIT.Entity_Delete',1);
708 x_return_status := l_return_status;
709
710 EXCEPTION
711
712 WHEN FND_API.G_EXC_ERROR THEN
713
714 x_return_status := FND_API.G_RET_STS_ERROR;
715
716 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
717
718 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
719
720 WHEN OTHERS THEN
721
722 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
723
724 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
725 THEN
726 oe_msg_pub.add_Exc_Msg
727 ( G_PKG_NAME
728 , 'Entity_Delete'
729 );
730 END IF;
731
732 END Entity_Delete;
733
734 END OE_Validate_Line_Scredit;