1 PACKAGE BODY OE_Validate_Header_Adj AS
2 /* $Header: OEXLHADB.pls 120.1 2005/12/29 04:24:29 ppnair noship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OE_Validate_Header_Adj';
7
8 -- Procedure Entity
9
10 PROCEDURE Entity
11 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
12 , p_Header_Adj_rec IN OE_Order_PUB.Header_Adj_Rec_Type
13 , p_old_Header_Adj_rec IN OE_Order_PUB.Header_Adj_Rec_Type :=
14 OE_Order_PUB.G_MISS_HEADER_ADJ_REC
15 )
16 IS
17 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18 l_price_adj_error VARCHAR2(30):= NULL;
19 l_attribute_name VARCHAR2(50):= NULL;
20 l_tmp_string VARCHAR2(30):= NULL;
21 l_agr_type_code VARCHAR2(30):= NULL;
22 -- This change is required since we are dropping the profile OE_ORGANIZATION
23 -- _ID. Change made by Esha.
24 l_organization_id NUMBER:= To_number(OE_Sys_Parameters.VALUE
25 ('MASTER_ORGANIZATION_ID'));
26 /* l_organization_id NUMBER := To_number(FND_PROFILE.VALUE
27 ('SO_ORGANIZATION_ID'));*/
28 BEGIN
29
30 oe_debug_pub.Add('Entering OE_VALIDATE_HEADER_ADJ.Entity',1);
31 -- Check required attributes.
32
33 IF p_Header_Adj_rec.price_adjustment_id IS NULL
34 THEN
35
36 l_return_status := FND_API.G_RET_STS_ERROR;
37
38 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
39 THEN
40
41 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
42 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_adjustment');
43 OE_MSG_PUB.Add;
44
45 END IF;
46
47 END IF;
48
49 -- Check the Header_Id on the record.
50
51 IF p_Header_Adj_rec.header_id IS NULL
52 THEN
53
54 l_return_status := FND_API.G_RET_STS_ERROR;
55
56 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
57 THEN
58
59 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
60 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
61 OE_Order_UTIL.Get_Attribute_Name('HEADER_ID'));
62 OE_MSG_PUB.Add;
63
64 END IF;
65
66 END IF;
67
68
69 IF p_Header_adj_rec.list_header_id is null
70 and p_Header_adj_rec.list_line_type_code not in ('COST','TAX')
71 THEN
72
73 l_return_status := FND_API.G_RET_STS_ERROR;
74
75 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
76 THEN
77
78 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
79 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','List_header');
80 OE_MSG_PUB.Add;
81
82 END IF;
83
84 END IF;
85
86
87 IF p_Header_adj_rec.list_header_id is not null and
88 p_Header_adj_rec.list_line_id IS NULL THEN
89
90 l_return_status := FND_API.G_RET_STS_ERROR;
91
92 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
93 THEN
94
95 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
96 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','List_Line');
97 OE_MSG_PUB.Add;
98
99 END IF;
100
101 END IF;
102
103
104 IF p_Header_adj_rec.list_line_type_code IS NULL THEN
105
106 l_return_status := FND_API.G_RET_STS_ERROR;
107
108 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
109 THEN
110
111 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
112 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','List_line_type_code');
113 OE_MSG_PUB.Add;
114
115 END IF;
116
117 END IF;
118
119
120 --
121 -- Check rest of required attributes here.
122 --
123
124
125 -- Return Error if a required attribute is missing.
126
127 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
128
129 RAISE FND_API.G_EXC_ERROR;
130
131 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
132
133 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
134
135 END IF;
136
137 --
138 -- Check conditionally required attributes here.
139 --
140
141 -- bug 1999869, also check for applied_flag.
142 /* IF upper(p_Header_adj_rec.updated_flag) ='Y' and
143 upper(p_Header_adj_rec.applied_flag) ='Y' and
144 p_Header_adj_rec.change_reason_code is null THEN
145
146 l_return_status := FND_API.G_RET_STS_ERROR;
147
148 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
149 THEN
150
151 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
152 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','change_reason_code');
153 OE_MSG_PUB.Add;
154
155 END IF;
156
157 END IF; */
158
159 IF p_Header_adj_rec.list_line_type_code = 'FREIGHT_CHARGE' and
160 p_Header_adj_rec.charge_type_code IS NULL THEN
161
162 l_return_status := FND_API.G_RET_STS_ERROR;
163
164 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
165 THEN
166
167 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
168 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
169 OE_Order_UTIL.Get_Attribute_Name('CHARGE_TYPE_CODE'));
170 OE_MSG_PUB.Add;
171
172 END IF;
173
174 END IF;
175
176 IF p_Header_adj_rec.list_line_type_code = 'FREIGHT_CHARGE' AND
177 p_Header_adj_rec.adjusted_amount IS NULL
178 THEN
179
180 l_return_status := FND_API.G_RET_STS_ERROR;
181
182 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
183 THEN
184
185 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
186 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
187 OE_Order_UTIL.Get_Attribute_Name('ADJUSTED_AMOUNT'));
188 OE_MSG_PUB.Add;
189
190 END IF;
191 END IF;
192
193 IF p_Header_adj_rec.list_line_type_code = 'FREIGHT_CHARGE' AND
194 p_Header_adj_rec.operand IS NULL
195 THEN
196
197 l_return_status := FND_API.G_RET_STS_ERROR;
198
199 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
200 THEN
201
202 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
203 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
204 OE_Order_UTIL.Get_Attribute_Name('OPERAND'));
205 OE_MSG_PUB.Add;
206
207 END IF;
208 END IF;
209
210 /* Added Validation check for the AETC flexfield */
211
212 IF p_Header_adj_rec.ac_attribute1 IS NOT NULL OR
213 p_Header_adj_rec.ac_attribute2 IS NOT NULL OR
214 p_Header_adj_rec.ac_attribute3 IS NOT NULL OR
215 p_Header_adj_rec.ac_attribute4 IS NOT NULL OR
216 p_Header_adj_rec.ac_attribute5 IS NOT NULL OR
217 p_Header_adj_rec.ac_attribute6 IS NOT NULL
218 THEN
219 l_attribute_name := NULL;
220 IF p_Header_adj_rec.ac_attribute4 IS NULL THEN
221 l_attribute_name := 'AETC Number';
222 END IF;
223 IF p_Header_adj_rec.ac_attribute5 IS NULL THEN
224 l_attribute_name := 'AETC Responsibility Code';
225 END IF;
226 IF p_Header_adj_rec.ac_attribute6 IS NULL THEN
227 l_attribute_name := 'AETC Reason Code';
228 END IF;
229 IF l_attribute_name IS NOT NULL THEN
230 l_return_status := FND_API.G_RET_STS_ERROR;
231
232 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
233 THEN
234
235 FND_MESSAGE.SET_NAME('ONT','OE_ATTRIBUTE_REQUIRED');
236 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',l_attribute_name);
237 OE_MSG_PUB.Add;
238
239 END IF;
240 END IF;
241
242 END IF;
243 --
244 -- Validate attribute dependencies here.
245 --
246
247 IF p_Header_adj_rec.list_line_type_code = 'FREIGHT_CHARGE' AND
248 p_Header_adj_rec.charge_type_code IS NOT NULL AND
249 p_Header_adj_rec.charge_subtype_code IS NOT NULL AND
250 ((NOT OE_GLOBALS.EQUAL(p_Header_adj_rec.charge_type_code,
251 p_Old_Header_adj_rec.charge_type_code)) OR
252 (NOT OE_GLOBALS.EQUAL(p_Header_adj_rec.charge_subtype_code,
253 p_Old_Header_adj_rec.charge_subtype_code)))
254 THEN
255
256 BEGIN
257 SELECT 'VALID'
258 INTO l_tmp_string
259 FROM QP_LOOKUPS
260 WHERE LOOKUP_TYPE = p_Header_Adj_rec.charge_type_code
261 AND LOOKUP_CODE = p_Header_Adj_rec.charge_subtype_code
262 AND TRUNC(sysdate) BETWEEN TRUNC(NVL(START_DATE_ACTIVE,sysdate))
263 AND TRUNC(NVL(END_DATE_ACTIVE,sysdate))
264 AND ENABLED_FLAG = 'Y';
265 EXCEPTION
266
267 WHEN NO_DATA_FOUND THEN
268 l_return_status := FND_API.G_RET_STS_ERROR;
269 FND_MESSAGE.SET_NAME('ONT','OE_INVALID_ATTRIBUTE');
270 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
271 OE_Order_Util.Get_Attribute_Name('CHARGE_SUBTYPE_CODE'));
272 OE_MSG_PUB.Add;
273
274 WHEN OTHERS THEN
275 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
276 THEN
277 OE_MSG_PUB.Add_Exc_Msg
278 ( G_PKG_NAME ,
279 'Record - Charge Type/Subtype validation'
280 );
281 END IF;
282 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
283 END;
284 END IF;
285
286 IF p_Header_adj_rec.list_line_type_code = 'FREIGHT_CHARGE' and
287 p_Header_adj_rec.arithmetic_operator <> 'LUMPSUM'
288 THEN
289
290 l_return_status := FND_API.G_RET_STS_ERROR;
291
292 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
293 THEN
294
295 FND_MESSAGE.SET_NAME('ONT','OE_INVALID_ATTRIBUTE');
296 FND_MESSAGE.SET_TOKEN('ATTRIBUTE',
297 OE_Order_Util.Get_Attribute_Name('ARITHMETIC_OPERATOR'));
298 OE_MSG_PUB.Add;
299
300 END IF;
301
302 END IF;
303
304
305
306
307 -- Validate list_header_id , list_line_id, list_line_type_code
308 /*
309 -- Validate that the total percentage on the header has not exceeded
310 -- 100%. LOG A DELAYED REQUEST TO EXECUTE LATER.
311 oe_delayed_requests_pvt.
312 log_request(p_entity_code => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
313 p_entity_id => p_Header_adj_rec.header_id,
314 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER_ADJ,
315 p_requesting_entity_id => p_Header_adj_rec.price_adjustment_id,
316 p_request_type => OE_GLOBALS.G_CHECK_PERCENTAGE,
317 x_return_status => l_return_status);
318 */
319
320
321 -- Done validating entity
322
323 x_return_status := l_return_status;
324 oe_debug_pub.Add('Exiting OE_VALIDATE_HEADER_ADJ.Entity',1);
325
326 EXCEPTION
327
328 WHEN FND_API.G_EXC_ERROR THEN
329
330 x_return_status := FND_API.G_RET_STS_ERROR;
331
332 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
333
334 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
335
336 WHEN OTHERS THEN
337
338 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
339
340 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
341 THEN
342 OE_MSG_PUB.Add_Exc_Msg
343 ( G_PKG_NAME
344 , 'Entity'
345 );
346 END IF;
347
348 END Entity;
349
350 -- Procedure Attributes
351
352 PROCEDURE Attributes
353 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
354 , p_Header_Adj_rec IN OE_Order_PUB.Header_Adj_Rec_Type
355 , p_old_Header_Adj_rec IN OE_Order_PUB.Header_Adj_Rec_Type :=
356 OE_Order_PUB.G_MISS_HEADER_ADJ_REC
357 )
358 IS
359 BEGIN
360
361 oe_debug_pub.Add('Entering OE_VALIDATE_HEADER_ADJ.Attributes',1);
362 x_return_status := FND_API.G_RET_STS_SUCCESS;
363
364 -- Validate Header_Adj attributes
365
366 IF p_Header_Adj_rec.price_adjustment_id IS NOT NULL AND
367 ( p_Header_Adj_rec.price_adjustment_id <>
368 p_old_Header_Adj_rec.price_adjustment_id OR
369 p_old_Header_Adj_rec.price_adjustment_id IS NULL )
370 THEN
371 IF NOT oe_validate_adj.Price_Adjustment(p_Header_Adj_rec.price_adjustment_id) THEN
372 x_return_status := FND_API.G_RET_STS_ERROR;
373 END IF;
374 END IF;
375
376 IF p_Header_Adj_rec.creation_date IS NOT NULL AND
377 ( p_Header_Adj_rec.creation_date <>
378 p_old_Header_Adj_rec.creation_date OR
379 p_old_Header_Adj_rec.creation_date IS NULL )
380 THEN
381 IF NOT oe_validate_adj.Creation_Date(p_Header_Adj_rec.creation_date) THEN
382 x_return_status := FND_API.G_RET_STS_ERROR;
383 END IF;
384 END IF;
385 IF p_Header_Adj_rec.pricing_phase_id IS NOT NULL AND
386 ( p_Header_Adj_rec.pricing_phase_id <>
387 p_old_Header_Adj_rec.pricing_phase_id OR
388 p_old_Header_Adj_rec.pricing_phase_id IS NULL )
389 THEN
390 IF NOT oe_validate_adj.Pricing_Phase_id(p_Header_Adj_rec.pricing_phase_id)
391 THEN
392 x_return_status := FND_API.G_RET_STS_ERROR;
393 END IF;
394 END IF;
395
396
397 IF p_Header_Adj_rec.adjusted_amount IS NOT NULL AND
398 ( p_Header_Adj_rec.adjusted_amount <>
399 p_old_Header_Adj_rec.adjusted_amount OR
400 p_old_Header_Adj_rec.adjusted_amount IS NULL )
401 THEN
402 IF NOT oe_validate_adj.Adjusted_Amount(p_Header_Adj_rec.adjusted_amount)
403 THEN
404 x_return_status := FND_API.G_RET_STS_ERROR;
405 END IF;
406 END IF;
407
408 IF p_Header_Adj_rec.created_by IS NOT NULL AND
409 ( p_Header_Adj_rec.created_by <>
410 p_old_Header_Adj_rec.created_by OR
411 p_old_Header_Adj_rec.created_by IS NULL )
412 THEN
413 IF NOT oe_validate_adj.Created_By(p_Header_Adj_rec.created_by) THEN
414 x_return_status := FND_API.G_RET_STS_ERROR;
415 END IF;
416 END IF;
417
418 IF p_Header_Adj_rec.last_update_date IS NOT NULL AND
419 ( p_Header_Adj_rec.last_update_date <>
420 p_old_Header_Adj_rec.last_update_date OR
421 p_old_Header_Adj_rec.last_update_date IS NULL )
422 THEN
423 IF NOT oe_validate_adj.Last_Update_Date(p_Header_Adj_rec.last_update_date) THEN
424 x_return_status := FND_API.G_RET_STS_ERROR;
425 END IF;
426 END IF;
427
428 IF p_Header_Adj_rec.last_updated_by IS NOT NULL AND
429 ( p_Header_Adj_rec.last_updated_by <>
430 p_old_Header_Adj_rec.last_updated_by OR
431 p_old_Header_Adj_rec.last_updated_by IS NULL )
432 THEN
433 IF NOT oe_validate_adj.Last_Updated_By(p_Header_Adj_rec.last_updated_by) THEN
434 x_return_status := FND_API.G_RET_STS_ERROR;
435 END IF;
436 END IF;
437
438 IF p_Header_Adj_rec.last_update_login IS NOT NULL AND
439 ( p_Header_Adj_rec.last_update_login <>
440 p_old_Header_Adj_rec.last_update_login OR
441 p_old_Header_Adj_rec.last_update_login IS NULL )
442 THEN
443 IF NOT oe_validate_adj.Last_Update_Login(p_Header_Adj_rec.last_update_login) THEN
444 x_return_status := FND_API.G_RET_STS_ERROR;
445 END IF;
446 END IF;
447
448 IF p_Header_Adj_rec.program_application_id IS NOT NULL AND
449 ( p_Header_Adj_rec.program_application_id <>
450 p_old_Header_Adj_rec.program_application_id OR
451 p_old_Header_Adj_rec.program_application_id IS NULL )
452 THEN
453 IF NOT oe_validate_adj.Program_Application(p_Header_Adj_rec.program_application_id) THEN
454 x_return_status := FND_API.G_RET_STS_ERROR;
455 END IF;
456 END IF;
457
458 IF p_Header_Adj_rec.program_id IS NOT NULL AND
459 ( p_Header_Adj_rec.program_id <>
460 p_old_Header_Adj_rec.program_id OR
461 p_old_Header_Adj_rec.program_id IS NULL )
462 THEN
463 IF NOT oe_validate_adj.Program(p_Header_Adj_rec.program_id) THEN
464 x_return_status := FND_API.G_RET_STS_ERROR;
465 END IF;
466 END IF;
467
468 IF p_Header_Adj_rec.program_update_date IS NOT NULL AND
469 ( p_Header_Adj_rec.program_update_date <>
470 p_old_Header_Adj_rec.program_update_date OR
471 p_old_Header_Adj_rec.program_update_date IS NULL )
472 THEN
473 IF NOT oe_validate_adj.Program_Update_Date(p_Header_Adj_rec.program_update_date) THEN
474 x_return_status := FND_API.G_RET_STS_ERROR;
475 END IF;
476 END IF;
477
478 IF p_Header_Adj_rec.request_id IS NOT NULL AND
479 ( p_Header_Adj_rec.request_id <>
480 p_old_Header_Adj_rec.request_id OR
481 p_old_Header_Adj_rec.request_id IS NULL )
482 THEN
483 IF NOT oe_validate_adj.Request(p_Header_Adj_rec.request_id) THEN
484 x_return_status := FND_API.G_RET_STS_ERROR;
485 END IF;
486 END IF;
487
488 IF p_Header_Adj_rec.header_id IS NOT NULL AND
489 ( p_Header_Adj_rec.header_id <>
490 p_old_Header_Adj_rec.header_id OR
491 p_old_Header_Adj_rec.header_id IS NULL )
492 THEN
493 IF NOT oe_validate_adj.Header(p_Header_Adj_rec.header_id) THEN
494 x_return_status := FND_API.G_RET_STS_ERROR;
495 END IF;
496 END IF;
497
498 IF p_Header_Adj_rec.discount_id IS NOT NULL AND
499 ( p_Header_Adj_rec.discount_id <>
500 p_old_Header_Adj_rec.discount_id OR
501 p_old_Header_Adj_rec.discount_id IS NULL )
502 THEN
503 IF NOT oe_validate_adj.Discount(p_Header_Adj_rec.discount_id) THEN
504 x_return_status := FND_API.G_RET_STS_ERROR;
505 END IF;
506 END IF;
507
508 IF p_Header_Adj_rec.discount_line_id IS NOT NULL AND
509 ( p_Header_Adj_rec.discount_line_id <>
510 p_old_Header_Adj_rec.discount_line_id OR
511 p_old_Header_Adj_rec.discount_line_id IS NULL )
512 THEN
513 IF NOT oe_validate_adj.Discount_Line(p_Header_Adj_rec.discount_line_id) THEN
514 x_return_status := FND_API.G_RET_STS_ERROR;
515 END IF;
516 END IF;
517
518 IF p_Header_Adj_rec.automatic_flag IS NOT NULL AND
519 ( p_Header_Adj_rec.automatic_flag <>
520 p_old_Header_Adj_rec.automatic_flag OR
521 p_old_Header_Adj_rec.automatic_flag IS NULL )
522 THEN
523 IF NOT oe_validate_adj.Automatic(p_Header_Adj_rec.automatic_flag) THEN
524 x_return_status := FND_API.G_RET_STS_ERROR;
525 END IF;
526 END IF;
527
528 IF p_Header_Adj_rec.percent IS NOT NULL AND
529 ( p_Header_Adj_rec.percent <>
530 p_old_Header_Adj_rec.percent OR
531 p_old_Header_Adj_rec.percent IS NULL )
532 THEN
533 IF NOT oe_validate_adj.Percent(p_Header_Adj_rec.percent) THEN
534 x_return_status := FND_API.G_RET_STS_ERROR;
535 END IF;
536 END IF;
537
538 IF p_Header_Adj_rec.line_id IS NOT NULL AND
539 ( p_Header_Adj_rec.line_id <>
540 p_old_Header_Adj_rec.line_id OR
541 p_old_Header_Adj_rec.line_id IS NULL )
542 THEN
543 IF NOT oe_validate_adj.Line(p_Header_Adj_rec.line_id) THEN
544 x_return_status := FND_API.G_RET_STS_ERROR;
545 END IF;
546 END IF;
547
548 IF p_Header_Adj_rec.list_line_no IS NOT NULL AND
549 ( p_Header_Adj_rec.list_line_no <>
550 p_old_Header_Adj_rec.list_line_no OR
551 p_old_Header_Adj_rec.list_line_no IS NULL )
552 THEN
553 IF NOT oe_validate_adj.List_Line_No(p_Header_Adj_rec.list_line_no) THEN
554 x_return_status := FND_API.G_RET_STS_ERROR;
555 END IF;
556 END IF;
557
558 IF p_Header_Adj_rec.source_system_code IS NOT NULL AND
559 ( p_Header_Adj_rec.source_system_code <>
560 p_old_Header_Adj_rec.source_system_code OR
561 p_old_Header_Adj_rec.source_system_code IS NULL )
562 THEN
563 IF NOT oe_validate_adj.source_system_code(p_Header_Adj_rec.source_system_code) THEN
564 x_return_status := FND_API.G_RET_STS_ERROR;
565 END IF;
566 END IF;
567
568 IF p_Header_Adj_rec.benefit_qty IS NOT NULL AND
569 ( p_Header_Adj_rec.benefit_qty <>
570 p_old_Header_Adj_rec.benefit_qty OR
571 p_old_Header_Adj_rec.benefit_qty IS NULL )
572 THEN
573 IF NOT oe_validate_adj.benefit_qty(p_Header_Adj_rec.benefit_qty) THEN
574 x_return_status := FND_API.G_RET_STS_ERROR;
575 END IF;
576 END IF;
577
578 IF p_Header_Adj_rec.benefit_uom_code IS NOT NULL AND
579 ( p_Header_Adj_rec.benefit_uom_code <>
580 p_old_Header_Adj_rec.benefit_uom_code OR
581 p_old_Header_Adj_rec.benefit_uom_code IS NULL )
582 THEN
583 IF NOT oe_validate_adj.benefit_uom_code(p_Header_Adj_rec.benefit_uom_code) THEN
584 x_return_status := FND_API.G_RET_STS_ERROR;
585 END IF;
586 END IF;
587
588 IF p_Header_Adj_rec.print_on_invoice_flag IS NOT NULL AND
589 ( p_Header_Adj_rec.print_on_invoice_flag <>
590 p_old_Header_Adj_rec.print_on_invoice_flag OR
591 p_old_Header_Adj_rec.print_on_invoice_flag IS NULL )
592 THEN
593 IF NOT oe_validate_adj.print_on_invoice_flag(p_Header_Adj_rec.print_on_invoice_flag) THEN
594 x_return_status := FND_API.G_RET_STS_ERROR;
595 END IF;
596 END IF;
597
598 IF p_Header_Adj_rec.expiration_date IS NOT NULL AND
599 ( p_Header_Adj_rec.expiration_date <>
600 p_old_Header_Adj_rec.expiration_date OR
601 p_old_Header_Adj_rec.expiration_date IS NULL )
602 THEN
603 IF NOT oe_validate_adj.expiration_date(p_Header_Adj_rec.expiration_date) THEN
604 x_return_status := FND_API.G_RET_STS_ERROR;
605 END IF;
606 END IF;
607
608 IF p_Header_Adj_rec.rebate_transaction_type_code IS NOT NULL AND
609 ( p_Header_Adj_rec.rebate_transaction_type_code <>
610 p_old_Header_Adj_rec.rebate_transaction_type_code OR
611 p_old_Header_Adj_rec.rebate_transaction_type_code IS NULL )
612 THEN
613 IF NOT oe_validate_adj.rebate_transaction_type_code(p_Header_Adj_rec.rebate_transaction_type_code) THEN
614 x_return_status := FND_API.G_RET_STS_ERROR;
615 END IF;
616 END IF;
617
618
619 IF p_Header_Adj_rec.rebate_transaction_reference IS NOT NULL AND
620 ( p_Header_Adj_rec.rebate_transaction_reference <>
621 p_old_Header_Adj_rec.rebate_transaction_reference OR
622 p_old_Header_Adj_rec.rebate_transaction_reference IS NULL )
623 THEN
624 IF NOT oe_validate_adj.rebate_transaction_reference(p_Header_Adj_rec.rebate_transaction_reference) THEN
625 x_return_status := FND_API.G_RET_STS_ERROR;
626 END IF;
627 END IF;
628
629 IF p_Header_Adj_rec.rebate_payment_system_code IS NOT NULL AND
630 ( p_Header_Adj_rec.rebate_payment_system_code <>
631 p_old_Header_Adj_rec.rebate_payment_system_code OR
632 p_old_Header_Adj_rec.rebate_payment_system_code IS NULL )
633 THEN
634 IF NOT oe_validate_adj.rebate_payment_system_code(p_Header_Adj_rec.rebate_payment_system_code) THEN
635 x_return_status := FND_API.G_RET_STS_ERROR;
636 END IF;
637 END IF;
638
639 IF p_Header_Adj_rec.Redeemed_Date IS NOT NULL AND
640 ( p_Header_Adj_rec.Redeemed_Date <>
641 p_old_Header_Adj_rec.Redeemed_Date OR
642 p_old_Header_Adj_rec.Redeemed_Date IS NULL )
643 THEN
644 IF NOT oe_validate_adj.Redeemed_Date(p_Header_Adj_rec.Redeemed_Date) THEN
645 x_return_status := FND_API.G_RET_STS_ERROR;
646 END IF;
647 END IF;
648
649 IF p_Header_Adj_rec.redeemed_flag IS NOT NULL AND
650 ( p_Header_Adj_rec.redeemed_flag <>
651 p_old_Header_Adj_rec.redeemed_flag OR
652 p_old_Header_Adj_rec.redeemed_flag IS NULL )
653 THEN
654 IF NOT oe_validate_adj.Redeemed_Flag(p_Header_Adj_rec.redeemed_flag) THEN
655 x_return_status := FND_API.G_RET_STS_ERROR;
656 END IF;
657 END IF;
658
659 IF p_Header_Adj_rec.accrual_flag IS NOT NULL AND
660 ( p_Header_Adj_rec.accrual_flag <>
661 p_old_Header_Adj_rec.accrual_flag OR
662 p_old_Header_Adj_rec.accrual_flag IS NULL )
663 THEN
664 IF NOT oe_validate_adj.Accrual_Flag(p_Header_Adj_rec.accrual_flag) THEN
665 x_return_status := FND_API.G_RET_STS_ERROR;
666 END IF;
667 END IF;
668
669 IF p_Header_Adj_rec.credit_or_charge_flag IS NOT NULL AND
670 ( p_Header_Adj_rec.credit_or_charge_flag <>
671 p_old_Header_Adj_rec.credit_or_charge_flag OR
672 p_old_Header_Adj_rec.credit_or_charge_flag IS NULL )
673 THEN
674 IF NOT OE_Validate.credit_or_charge_flag(p_Header_Adj_rec.credit_or_charge_flag) THEN
675 x_return_status := FND_API.G_RET_STS_ERROR;
676 END IF;
677 END IF;
678
679 IF p_Header_Adj_rec.charge_type_code IS NOT NULL AND
680 ( p_Header_Adj_rec.charge_type_code <>
681 p_old_Header_Adj_rec.charge_type_code OR
682 p_old_Header_Adj_rec.charge_type_code IS NULL )
683 THEN
684 IF NOT OE_Validate.charge_type_code(p_Header_Adj_rec.charge_type_code) THEN
685 x_return_status := FND_API.G_RET_STS_ERROR;
686 END IF;
687 END IF;
688
689 IF p_Header_Adj_rec.charge_subtype_code IS NOT NULL AND
690 ( p_Header_Adj_rec.charge_subtype_code <>
691 p_old_Header_Adj_rec.charge_subtype_code OR
692 p_old_Header_Adj_rec.charge_subtype_code IS NULL )
693 THEN
694 IF NOT OE_Validate.charge_subtype_code(p_Header_Adj_rec.charge_subtype_code) THEN
695 x_return_status := FND_API.G_RET_STS_ERROR;
696 END IF;
697 END IF;
698
699 IF p_Header_Adj_rec.estimated_flag IS NOT NULL AND
700 ( p_Header_Adj_rec.estimated_flag <>
701 p_old_Header_Adj_rec.estimated_flag OR
702 p_old_Header_Adj_rec.estimated_flag IS NULL )
703 THEN
704 IF NOT OE_Validate.estimated(p_Header_Adj_rec.estimated_flag) THEN
705 x_return_status := FND_API.G_RET_STS_ERROR;
706 END IF;
707 END IF;
708
709 IF p_Header_Adj_rec.invoiced_flag IS NOT NULL AND
710 ( p_Header_Adj_rec.invoiced_flag <>
711 p_old_Header_Adj_rec.invoiced_flag OR
712 p_old_Header_Adj_rec.invoiced_flag IS NULL )
713 THEN
714 IF NOT OE_Validate.invoiced(p_Header_Adj_rec.invoiced_flag) THEN
715 x_return_status := FND_API.G_RET_STS_ERROR;
716 END IF;
717 END IF;
718
719 if OE_GLOBALS.g_validate_desc_flex ='Y' then --4343612
720 oe_debug_pub.add('Validation of desc flex is set to Y in OE_Validate_Header_Adj.attributes ',1);
721 IF (p_Header_Adj_rec.context IS NOT NULL AND
722 ( p_Header_Adj_rec.context <>
723 p_old_Header_Adj_rec.context OR
724 p_old_Header_Adj_rec.context IS NULL ))
725 OR (p_Header_Adj_rec.attribute1 IS NOT NULL AND
726 ( p_Header_Adj_rec.attribute1 <>
727 p_old_Header_Adj_rec.attribute1 OR
728 p_old_Header_Adj_rec.attribute1 IS NULL ))
729 OR (p_Header_Adj_rec.attribute2 IS NOT NULL AND
730 ( p_Header_Adj_rec.attribute2 <>
731 p_old_Header_Adj_rec.attribute2 OR
732 p_old_Header_Adj_rec.attribute2 IS NULL ))
733 OR (p_Header_Adj_rec.attribute3 IS NOT NULL AND
734 ( p_Header_Adj_rec.attribute3 <>
735 p_old_Header_Adj_rec.attribute3 OR
736 p_old_Header_Adj_rec.attribute3 IS NULL ))
737 OR (p_Header_Adj_rec.attribute4 IS NOT NULL AND
738 ( p_Header_Adj_rec.attribute4 <>
739 p_old_Header_Adj_rec.attribute4 OR
740 p_old_Header_Adj_rec.attribute4 IS NULL ))
741 OR (p_Header_Adj_rec.attribute5 IS NOT NULL AND
742 ( p_Header_Adj_rec.attribute5 <>
743 p_old_Header_Adj_rec.attribute5 OR
744 p_old_Header_Adj_rec.attribute5 IS NULL ))
745 OR (p_Header_Adj_rec.attribute6 IS NOT NULL AND
746 ( p_Header_Adj_rec.attribute6 <>
747 p_old_Header_Adj_rec.attribute6 OR
748 p_old_Header_Adj_rec.attribute6 IS NULL ))
749 OR (p_Header_Adj_rec.attribute7 IS NOT NULL AND
750 ( p_Header_Adj_rec.attribute7 <>
751 p_old_Header_Adj_rec.attribute7 OR
752 p_old_Header_Adj_rec.attribute7 IS NULL ))
753 OR (p_Header_Adj_rec.attribute8 IS NOT NULL AND
754 ( p_Header_Adj_rec.attribute8 <>
755 p_old_Header_Adj_rec.attribute8 OR
756 p_old_Header_Adj_rec.attribute8 IS NULL ))
757 OR (p_Header_Adj_rec.attribute9 IS NOT NULL AND
758 ( p_Header_Adj_rec.attribute9 <>
759 p_old_Header_Adj_rec.attribute9 OR
760 p_old_Header_Adj_rec.attribute9 IS NULL ))
761 OR (p_Header_Adj_rec.attribute10 IS NOT NULL AND
762 ( p_Header_Adj_rec.attribute10 <>
763 p_old_Header_Adj_rec.attribute10 OR
764 p_old_Header_Adj_rec.attribute10 IS NULL ))
765 OR (p_Header_Adj_rec.attribute11 IS NOT NULL AND
766 ( p_Header_Adj_rec.attribute11 <>
767 p_old_Header_Adj_rec.attribute11 OR
768 p_old_Header_Adj_rec.attribute11 IS NULL ))
769 OR (p_Header_Adj_rec.attribute12 IS NOT NULL AND
770 ( p_Header_Adj_rec.attribute12 <>
771 p_old_Header_Adj_rec.attribute12 OR
772 p_old_Header_Adj_rec.attribute12 IS NULL ))
773 OR (p_Header_Adj_rec.attribute13 IS NOT NULL AND
774 ( p_Header_Adj_rec.attribute13 <>
775 p_old_Header_Adj_rec.attribute13 OR
776 p_old_Header_Adj_rec.attribute13 IS NULL ))
777 OR (p_Header_Adj_rec.attribute14 IS NOT NULL AND
778 ( p_Header_Adj_rec.attribute14 <>
779 p_old_Header_Adj_rec.attribute14 OR
780 p_old_Header_Adj_rec.attribute14 IS NULL ))
781 OR (p_Header_Adj_rec.attribute15 IS NOT NULL AND
782 ( p_Header_Adj_rec.attribute15 <>
783 p_old_Header_Adj_rec.attribute15 OR
784 p_old_Header_Adj_rec.attribute15 IS NULL ))
785 THEN
786
787 -- These calls are temporarily commented out
788
789 oe_debug_pub.add('Before calling Header Adjustment Price_Adj_Desc_Flex',2);
790
791 IF NOT oe_validate_adj.Price_Adj_Desc_Flex
792 (p_context => p_Header_Adj_rec.context
793 ,p_attribute1 => p_Header_Adj_rec.attribute1
794 ,p_attribute2 => p_Header_Adj_rec.attribute2
795 ,p_attribute3 => p_Header_Adj_rec.attribute3
796 ,p_attribute4 => p_Header_Adj_rec.attribute4
797 ,p_attribute5 => p_Header_Adj_rec.attribute5
798 ,p_attribute6 => p_Header_Adj_rec.attribute6
799 ,p_attribute7 => p_Header_Adj_rec.attribute7
800 ,p_attribute8 => p_Header_Adj_rec.attribute8
801 ,p_attribute9 => p_Header_Adj_rec.attribute9
802 ,p_attribute10 => p_Header_Adj_rec.attribute10
803 ,p_attribute11 => p_Header_Adj_rec.attribute11
804 ,p_attribute12 => p_Header_Adj_rec.attribute12
805 ,p_attribute13 => p_Header_Adj_rec.attribute13
806 ,p_attribute14 => p_Header_Adj_rec.attribute14
807 ,p_attribute15 => p_Header_Adj_rec.attribute15) THEN
808
809
810 x_return_status := FND_API.G_RET_STS_ERROR;
811
812 oe_debug_pub.add('After Header Adjustment desc_flex ' || x_return_status,2);
813
814 END IF;
815
816 END IF;
817
818 -- Done validating attributes
819 oe_debug_pub.Add('Exiting OE_VALIDATE_HEADER_ADJ.Attributes',1);
820 end if ; /* if OE_GLOBALS.g_validate_desc_flex ='Y' then bug4343612*/
821
822 EXCEPTION
823
824 WHEN FND_API.G_EXC_ERROR THEN
825
826 x_return_status := FND_API.G_RET_STS_ERROR;
827
828 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
829
830 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
831
832 WHEN OTHERS THEN
833
834 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
835
836 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
837 THEN
838 OE_MSG_PUB.Add_Exc_Msg
839 ( G_PKG_NAME
840 , 'Attributes'
841 );
842 END IF;
843
844 END Attributes;
845
846 -- Procedure Entity_Delete
847
848 PROCEDURE Entity_Delete
849 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
850 , p_Header_Adj_rec IN OE_Order_PUB.Header_Adj_Rec_Type
851 )
852 IS
853 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
854 BEGIN
855
856 -- Validate entity delete.
857
858 NULL;
859
860 -- Done.
861
862 x_return_status := l_return_status;
863
864 EXCEPTION
865
866 WHEN FND_API.G_EXC_ERROR THEN
867
868 x_return_status := FND_API.G_RET_STS_ERROR;
869
870 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
871
872 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
873
874 WHEN OTHERS THEN
875
876 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
877
878 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
879 THEN
880 OE_MSG_PUB.Add_Exc_Msg
881 ( G_PKG_NAME
882 , 'Entity_Delete'
883 );
884 END IF;
885
886 END Entity_Delete;
887
888
889 END OE_Validate_Header_Adj;