DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_VALIDATE_HEADER_ADJ

Source


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;