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