1 PACKAGE BODY QP_Validate_Seg AS
2 /* $Header: QPXLSEGB.pls 120.2 2005/08/03 07:36:49 srashmi noship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_Validate_Seg';
7
8 -- Procedure Entity
9
10 PROCEDURE Entity
11 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
12 , p_SEG_rec IN QP_Attributes_PUB.Seg_Rec_Type
13 , p_old_SEG_rec IN QP_Attributes_PUB.Seg_Rec_Type :=
14 QP_Attributes_PUB.G_MISS_SEG_REC
15 )
16 IS
17 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18 BEGIN
19
20 -- Check required attributes.
21
22 IF p_SEG_rec.segment_id IS NULL
23 THEN
24
25 l_return_status := FND_API.G_RET_STS_ERROR;
26
27 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
28 THEN
29
30 FND_MESSAGE.SET_NAME('QP','QP_ATTRIBUTE_REQUIRED');
31 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','attribute1');
32 OE_MSG_PUB.Add;
33
34 END IF;
35
36 END IF;
37
38 --
39 -- Check rest of required attributes here.
40 --
41
42
43 -- Return Error if a required attribute is missing.
44
45 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
46
47 RAISE FND_API.G_EXC_ERROR;
48
49 END IF;
50
51 --
52 -- Check conditionally required attributes here.
53 --
54
55
56 --
57 -- Validate attribute dependencies here.
58 --
59
60
61 -- Done validating entity
62
63 x_return_status := l_return_status;
64
65 EXCEPTION
66
67 WHEN FND_API.G_EXC_ERROR THEN
68
69 x_return_status := FND_API.G_RET_STS_ERROR;
70
71 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
72
73 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
74
75 WHEN OTHERS THEN
76
77 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
78
79 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
80 THEN
81 OE_MSG_PUB.Add_Exc_Msg
82 ( G_PKG_NAME
83 , 'Entity'
84 );
85 END IF;
86
87 END Entity;
88
89 -- Procedure Attributes
90
91 PROCEDURE Attributes
92 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
93 , p_SEG_rec IN QP_Attributes_PUB.Seg_Rec_Type
94 , p_old_SEG_rec IN QP_Attributes_PUB.Seg_Rec_Type :=
95 QP_Attributes_PUB.G_MISS_SEG_REC
96 )
97 IS
98 BEGIN
99
100 x_return_status := FND_API.G_RET_STS_SUCCESS;
101
102 -- Validate SEG attributes
103
104 IF p_SEG_rec.availability_in_basic IS NOT NULL AND
105 ( p_SEG_rec.availability_in_basic <>
106 p_old_SEG_rec.availability_in_basic OR
107 p_old_SEG_rec.availability_in_basic IS NULL )
108 THEN
109 IF NOT QP_Validate.Availability_In_Basic(p_SEG_rec.availability_in_basic) THEN
110 x_return_status := FND_API.G_RET_STS_ERROR;
111 END IF;
112 END IF;
113
114 IF p_SEG_rec.created_by IS NOT NULL AND
115 ( p_SEG_rec.created_by <>
116 p_old_SEG_rec.created_by OR
117 p_old_SEG_rec.created_by IS NULL )
118 THEN
119 IF NOT QP_Validate.Created_By(p_SEG_rec.created_by) THEN
120 x_return_status := FND_API.G_RET_STS_ERROR;
121 END IF;
122 END IF;
123
124 IF p_SEG_rec.creation_date IS NOT NULL AND
125 ( p_SEG_rec.creation_date <>
126 p_old_SEG_rec.creation_date OR
127 p_old_SEG_rec.creation_date IS NULL )
128 THEN
129 IF NOT QP_Validate.Creation_Date(p_SEG_rec.creation_date) THEN
130 x_return_status := FND_API.G_RET_STS_ERROR;
131 END IF;
132 END IF;
133
134 IF p_SEG_rec.last_updated_by IS NOT NULL AND
135 ( p_SEG_rec.last_updated_by <>
136 p_old_SEG_rec.last_updated_by OR
137 p_old_SEG_rec.last_updated_by IS NULL )
138 THEN
139 IF NOT QP_Validate.Last_Updated_By(p_SEG_rec.last_updated_by) THEN
140 x_return_status := FND_API.G_RET_STS_ERROR;
141 END IF;
142 END IF;
143
144 IF p_SEG_rec.last_update_date IS NOT NULL AND
145 ( p_SEG_rec.last_update_date <>
146 p_old_SEG_rec.last_update_date OR
147 p_old_SEG_rec.last_update_date IS NULL )
148 THEN
149 IF NOT QP_Validate.Last_Update_Date(p_SEG_rec.last_update_date) THEN
150 x_return_status := FND_API.G_RET_STS_ERROR;
151 END IF;
152 END IF;
153
154 IF p_SEG_rec.last_update_login IS NOT NULL AND
155 ( p_SEG_rec.last_update_login <>
156 p_old_SEG_rec.last_update_login OR
157 p_old_SEG_rec.last_update_login IS NULL )
158 THEN
159 IF NOT QP_Validate.Last_Update_Login(p_SEG_rec.last_update_login) THEN
160 x_return_status := FND_API.G_RET_STS_ERROR;
161 END IF;
162 END IF;
163
164 IF p_SEG_rec.prc_context_id IS NOT NULL AND
165 ( p_SEG_rec.prc_context_id <>
166 p_old_SEG_rec.prc_context_id OR
167 p_old_SEG_rec.prc_context_id IS NULL )
168 THEN
169 IF NOT QP_Validate.Prc_Context(p_SEG_rec.prc_context_id) THEN
170 x_return_status := FND_API.G_RET_STS_ERROR;
171 END IF;
172 END IF;
173
174 IF p_SEG_rec.program_application_id IS NOT NULL AND
175 ( p_SEG_rec.program_application_id <>
176 p_old_SEG_rec.program_application_id OR
177 p_old_SEG_rec.program_application_id IS NULL )
178 THEN
179 IF NOT QP_Validate.Program_Application(p_SEG_rec.program_application_id) THEN
180 x_return_status := FND_API.G_RET_STS_ERROR;
181 END IF;
182 END IF;
183
184 IF p_SEG_rec.program_id IS NOT NULL AND
185 ( p_SEG_rec.program_id <>
186 p_old_SEG_rec.program_id OR
187 p_old_SEG_rec.program_id IS NULL )
188 THEN
189 IF NOT QP_Validate.Program(p_SEG_rec.program_id) THEN
190 x_return_status := FND_API.G_RET_STS_ERROR;
191 END IF;
192 END IF;
193
194 IF p_SEG_rec.program_update_date IS NOT NULL AND
195 ( p_SEG_rec.program_update_date <>
196 p_old_SEG_rec.program_update_date OR
197 p_old_SEG_rec.program_update_date IS NULL )
198 THEN
199 IF NOT QP_Validate.Program_Update_Date(p_SEG_rec.program_update_date) THEN
200 x_return_status := FND_API.G_RET_STS_ERROR;
201 END IF;
202 END IF;
203
204 IF p_SEG_rec.seeded_flag IS NOT NULL AND
205 ( p_SEG_rec.seeded_flag <>
206 p_old_SEG_rec.seeded_flag OR
207 p_old_SEG_rec.seeded_flag IS NULL )
208 THEN
209 IF NOT QP_Validate.Seeded(p_SEG_rec.seeded_flag) THEN
210 x_return_status := FND_API.G_RET_STS_ERROR;
211 END IF;
212 END IF;
213
214 IF p_SEG_rec.seeded_format_type IS NOT NULL AND
215 ( p_SEG_rec.seeded_format_type <>
216 p_old_SEG_rec.seeded_format_type OR
217 p_old_SEG_rec.seeded_format_type IS NULL )
218 THEN
219 IF NOT QP_Validate.Seeded_Format_Type(p_SEG_rec.seeded_format_type) THEN
220 x_return_status := FND_API.G_RET_STS_ERROR;
221 END IF;
222 END IF;
223
224 IF p_SEG_rec.seeded_precedence IS NOT NULL AND
225 ( p_SEG_rec.seeded_precedence <>
226 p_old_SEG_rec.seeded_precedence OR
227 p_old_SEG_rec.seeded_precedence IS NULL )
228 THEN
229 IF NOT QP_Validate.Seeded_Precedence(p_SEG_rec.seeded_precedence) THEN
230 x_return_status := FND_API.G_RET_STS_ERROR;
231 END IF;
232 END IF;
233
234 IF p_SEG_rec.seeded_segment_name IS NOT NULL AND
235 ( p_SEG_rec.seeded_segment_name <>
236 p_old_SEG_rec.seeded_segment_name OR
237 p_old_SEG_rec.seeded_segment_name IS NULL )
238 THEN
239 IF NOT QP_Validate.Seeded_Segment_Name(p_SEG_rec.seeded_segment_name) THEN
240 x_return_status := FND_API.G_RET_STS_ERROR;
241 END IF;
242 END IF;
243
244 IF p_SEG_rec.seeded_valueset_id IS NOT NULL AND
245 ( p_SEG_rec.seeded_valueset_id <>
246 p_old_SEG_rec.seeded_valueset_id OR
247 p_old_SEG_rec.seeded_valueset_id IS NULL )
248 THEN
249 IF NOT QP_Validate.Seeded_Valueset(p_SEG_rec.seeded_valueset_id) THEN
250 x_return_status := FND_API.G_RET_STS_ERROR;
251 END IF;
252 END IF;
253
254 IF p_SEG_rec.segment_code IS NOT NULL AND
255 ( p_SEG_rec.segment_code <>
256 p_old_SEG_rec.segment_code OR
257 p_old_SEG_rec.segment_code IS NULL )
258 THEN
259 IF NOT QP_Validate.Segment_code(p_SEG_rec.segment_code) THEN
260 x_return_status := FND_API.G_RET_STS_ERROR;
261 END IF;
262 END IF;
263
264 IF p_SEG_rec.segment_id IS NOT NULL AND
265 ( p_SEG_rec.segment_id <>
266 p_old_SEG_rec.segment_id OR
267 p_old_SEG_rec.segment_id IS NULL )
268 THEN
269 IF NOT QP_Validate.Segment(p_SEG_rec.segment_id) THEN
270 x_return_status := FND_API.G_RET_STS_ERROR;
271 END IF;
272 END IF;
273 -- Added Application_Id : Abhijit
274 IF p_SEG_rec.application_id IS NOT NULL AND
275 ( p_SEG_rec.application_id <>
276 p_old_SEG_rec.application_id OR
277 p_old_SEG_rec.application_id IS NULL )
278 THEN
279 IF NOT QP_Validate.application_id(p_SEG_rec.application_id) THEN
280 x_return_status := FND_API.G_RET_STS_ERROR;
281 END IF;
282 END IF;
283
284 IF p_SEG_rec.segment_mapping_column IS NOT NULL AND
285 ( p_SEG_rec.segment_mapping_column <>
286 p_old_SEG_rec.segment_mapping_column OR
287 p_old_SEG_rec.segment_mapping_column IS NULL )
288 THEN
289 IF NOT QP_Validate.Segment_Mapping_Column(p_SEG_rec.segment_mapping_column) THEN
290 x_return_status := FND_API.G_RET_STS_ERROR;
291 END IF;
292 END IF;
293
294 IF p_SEG_rec.user_format_type IS NOT NULL AND
295 ( p_SEG_rec.user_format_type <>
296 p_old_SEG_rec.user_format_type OR
297 p_old_SEG_rec.user_format_type IS NULL )
298 THEN
299 IF NOT QP_Validate.User_Format_Type(p_SEG_rec.user_format_type) THEN
300 x_return_status := FND_API.G_RET_STS_ERROR;
301 END IF;
302 END IF;
303
304 IF p_SEG_rec.user_precedence IS NOT NULL AND
305 ( p_SEG_rec.user_precedence <>
306 p_old_SEG_rec.user_precedence OR
307 p_old_SEG_rec.user_precedence IS NULL )
308 THEN
309 IF NOT QP_Validate.User_Precedence(p_SEG_rec.user_precedence) THEN
310 x_return_status := FND_API.G_RET_STS_ERROR;
311 END IF;
312 END IF;
313
314 IF p_SEG_rec.user_segment_name IS NOT NULL AND
315 ( p_SEG_rec.user_segment_name <>
316 p_old_SEG_rec.user_segment_name OR
317 p_old_SEG_rec.user_segment_name IS NULL )
318 THEN
319 IF NOT QP_Validate.User_Segment_Name(p_SEG_rec.user_segment_name) THEN
320 x_return_status := FND_API.G_RET_STS_ERROR;
321 END IF;
322 END IF;
323
324 IF p_SEG_rec.user_valueset_id IS NOT NULL AND
325 ( p_SEG_rec.user_valueset_id <>
326 p_old_SEG_rec.user_valueset_id OR
327 p_old_SEG_rec.user_valueset_id IS NULL )
328 THEN
329 IF NOT QP_Validate.User_Valueset(p_SEG_rec.user_valueset_id) THEN
330 x_return_status := FND_API.G_RET_STS_ERROR;
331 END IF;
332 END IF;
333
334 IF p_SEG_rec.seeded_description IS NOT NULL AND
335 ( p_SEG_rec.seeded_description <>
336 p_old_SEG_rec.seeded_description OR
337 p_old_SEG_rec.seeded_description IS NULL )
338 THEN
339 IF NOT QP_Validate.Seeded_Description_Seg(p_SEG_rec.seeded_description) THEN
340 x_return_status := FND_API.G_RET_STS_ERROR;
341 END IF;
342 END IF;
343
344 IF p_SEG_rec.user_description IS NOT NULL AND
345 ( p_SEG_rec.user_description <>
346 p_old_SEG_rec.user_description OR
347 p_old_SEG_rec.user_description IS NULL )
348 THEN
349 IF NOT QP_Validate.User_Description_Seg(p_SEG_rec.user_description)
350 THEN
351 x_return_status := FND_API.G_RET_STS_ERROR;
352 END IF;
353 END IF;
354
355 IF p_SEG_rec.required_flag IS NOT NULL AND
356 ( p_SEG_rec.required_flag <>
357 p_old_SEG_rec.required_flag OR
358 p_old_SEG_rec.required_flag IS NULL )
359 THEN
360 IF NOT QP_Validate.required_flag(p_SEG_rec.required_flag) THEN
361 x_return_status := FND_API.G_RET_STS_ERROR;
362 END IF;
363 END IF;
364 -- Added for TCA
365 IF p_SEG_rec.party_hierarchy_enabled_flag IS NOT NULL AND
366 ( p_SEG_rec.party_hierarchy_enabled_flag <>
367 p_old_SEG_rec.party_hierarchy_enabled_flag OR
368 p_old_SEG_rec.party_hierarchy_enabled_flag IS NULL )
369 THEN
370 IF NOT QP_Validate.party_hierarchy_enabled_flag(p_SEG_rec.party_hierarchy_enabled_flag) THEN
371 x_return_status := FND_API.G_RET_STS_ERROR;
372 END IF;
373 END IF;
374
378 p_old_SEG_rec.attribute1 IS NULL ))
375 IF (p_SEG_rec.attribute1 IS NOT NULL AND
376 ( p_SEG_rec.attribute1 <>
377 p_old_SEG_rec.attribute1 OR
379 OR (p_SEG_rec.attribute10 IS NOT NULL AND
380 ( p_SEG_rec.attribute10 <>
381 p_old_SEG_rec.attribute10 OR
382 p_old_SEG_rec.attribute10 IS NULL ))
383 OR (p_SEG_rec.attribute11 IS NOT NULL AND
384 ( p_SEG_rec.attribute11 <>
385 p_old_SEG_rec.attribute11 OR
386 p_old_SEG_rec.attribute11 IS NULL ))
387 OR (p_SEG_rec.attribute12 IS NOT NULL AND
388 ( p_SEG_rec.attribute12 <>
389 p_old_SEG_rec.attribute12 OR
390 p_old_SEG_rec.attribute12 IS NULL ))
391 OR (p_SEG_rec.attribute13 IS NOT NULL AND
392 ( p_SEG_rec.attribute13 <>
393 p_old_SEG_rec.attribute13 OR
394 p_old_SEG_rec.attribute13 IS NULL ))
395 OR (p_SEG_rec.attribute14 IS NOT NULL AND
396 ( p_SEG_rec.attribute14 <>
397 p_old_SEG_rec.attribute14 OR
398 p_old_SEG_rec.attribute14 IS NULL ))
399 OR (p_SEG_rec.attribute15 IS NOT NULL AND
400 ( p_SEG_rec.attribute15 <>
401 p_old_SEG_rec.attribute15 OR
402 p_old_SEG_rec.attribute15 IS NULL ))
403 OR (p_SEG_rec.attribute2 IS NOT NULL AND
404 ( p_SEG_rec.attribute2 <>
405 p_old_SEG_rec.attribute2 OR
406 p_old_SEG_rec.attribute2 IS NULL ))
407 OR (p_SEG_rec.attribute3 IS NOT NULL AND
408 ( p_SEG_rec.attribute3 <>
409 p_old_SEG_rec.attribute3 OR
410 p_old_SEG_rec.attribute3 IS NULL ))
411 OR (p_SEG_rec.attribute4 IS NOT NULL AND
412 ( p_SEG_rec.attribute4 <>
413 p_old_SEG_rec.attribute4 OR
414 p_old_SEG_rec.attribute4 IS NULL ))
415 OR (p_SEG_rec.attribute5 IS NOT NULL AND
416 ( p_SEG_rec.attribute5 <>
417 p_old_SEG_rec.attribute5 OR
418 p_old_SEG_rec.attribute5 IS NULL ))
419 OR (p_SEG_rec.attribute6 IS NOT NULL AND
420 ( p_SEG_rec.attribute6 <>
421 p_old_SEG_rec.attribute6 OR
422 p_old_SEG_rec.attribute6 IS NULL ))
423 OR (p_SEG_rec.attribute7 IS NOT NULL AND
424 ( p_SEG_rec.attribute7 <>
425 p_old_SEG_rec.attribute7 OR
426 p_old_SEG_rec.attribute7 IS NULL ))
427 OR (p_SEG_rec.attribute8 IS NOT NULL AND
428 ( p_SEG_rec.attribute8 <>
429 p_old_SEG_rec.attribute8 OR
430 p_old_SEG_rec.attribute8 IS NULL ))
431 OR (p_SEG_rec.attribute9 IS NOT NULL AND
432 ( p_SEG_rec.attribute9 <>
433 p_old_SEG_rec.attribute9 OR
434 p_old_SEG_rec.attribute9 IS NULL ))
435 OR (p_SEG_rec.context IS NOT NULL AND
436 ( p_SEG_rec.context <>
437 p_old_SEG_rec.context OR
438 p_old_SEG_rec.context IS NULL ))
439 THEN
440
441 -- These calls are temporarily commented out
442
443 /*
444 FND_FLEX_DESC_VAL.Set_Column_Value
445 ( column_name => 'ATTRIBUTE1'
446 , column_value => p_SEG_rec.attribute1
447 );
448 FND_FLEX_DESC_VAL.Set_Column_Value
449 ( column_name => 'ATTRIBUTE10'
450 , column_value => p_SEG_rec.attribute10
451 );
452 FND_FLEX_DESC_VAL.Set_Column_Value
453 ( column_name => 'ATTRIBUTE11'
454 , column_value => p_SEG_rec.attribute11
455 );
456 FND_FLEX_DESC_VAL.Set_Column_Value
457 ( column_name => 'ATTRIBUTE12'
458 , column_value => p_SEG_rec.attribute12
459 );
460 FND_FLEX_DESC_VAL.Set_Column_Value
461 ( column_name => 'ATTRIBUTE13'
462 , column_value => p_SEG_rec.attribute13
463 );
464 FND_FLEX_DESC_VAL.Set_Column_Value
465 ( column_name => 'ATTRIBUTE14'
466 , column_value => p_SEG_rec.attribute14
467 );
468 FND_FLEX_DESC_VAL.Set_Column_Value
469 ( column_name => 'ATTRIBUTE15'
470 , column_value => p_SEG_rec.attribute15
471 );
472 FND_FLEX_DESC_VAL.Set_Column_Value
473 ( column_name => 'ATTRIBUTE2'
474 , column_value => p_SEG_rec.attribute2
475 );
476 FND_FLEX_DESC_VAL.Set_Column_Value
477 ( column_name => 'ATTRIBUTE3'
478 , column_value => p_SEG_rec.attribute3
479 );
480 FND_FLEX_DESC_VAL.Set_Column_Value
481 ( column_name => 'ATTRIBUTE4'
482 , column_value => p_SEG_rec.attribute4
483 );
484 FND_FLEX_DESC_VAL.Set_Column_Value
485 ( column_name => 'ATTRIBUTE5'
486 , column_value => p_SEG_rec.attribute5
487 );
488 FND_FLEX_DESC_VAL.Set_Column_Value
489 ( column_name => 'ATTRIBUTE6'
490 , column_value => p_SEG_rec.attribute6
491 );
495 );
492 FND_FLEX_DESC_VAL.Set_Column_Value
493 ( column_name => 'ATTRIBUTE7'
494 , column_value => p_SEG_rec.attribute7
496 FND_FLEX_DESC_VAL.Set_Column_Value
497 ( column_name => 'ATTRIBUTE8'
498 , column_value => p_SEG_rec.attribute8
499 );
500 FND_FLEX_DESC_VAL.Set_Column_Value
501 ( column_name => 'ATTRIBUTE9'
502 , column_value => p_SEG_rec.attribute9
503 );
504 FND_FLEX_DESC_VAL.Set_Column_Value
505 ( column_name => 'CONTEXT'
506 , column_value => p_SEG_rec.context
507 );
508 */
509
510 -- Validate descriptive flexfield.
511
512 IF NOT QP_Validate.Desc_Flex( 'SEG' ) THEN
513 x_return_status := FND_API.G_RET_STS_ERROR;
514 END IF;
515
516 END IF;
517
518 -- Done validating attributes
519
520 EXCEPTION
521
522 WHEN FND_API.G_EXC_ERROR THEN
523
524 x_return_status := FND_API.G_RET_STS_ERROR;
525
526 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
527
528 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
529
530 WHEN OTHERS THEN
531
532 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
533
534 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
535 THEN
536 OE_MSG_PUB.Add_Exc_Msg
537 ( G_PKG_NAME
538 , 'Attributes'
539 );
540 END IF;
541
542 END Attributes;
543
544 -- Procedure Entity_Delete
545
546 PROCEDURE Entity_Delete
547 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
548 , p_SEG_rec IN QP_Attributes_PUB.Seg_Rec_Type
549 )
550 IS
551 l_context_code varchar2(30);
552 is_attribute_used varchar2(1) := 'N';
553 l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
554 BEGIN
555 -- Validate entity delete.
556 begin
557 select prc_context_code
558 into l_context_code
559 from qp_prc_contexts_b
560 where prc_context_id = p_SEG_rec.prc_context_id;
561 exception
562 when no_data_found then
563 x_return_status := l_return_status;
564 return;
565 end;
566 --
567 if is_attribute_used = 'N' then
568 if l_context_code is not null and p_SEG_rec.segment_mapping_column is not null then
569 begin
570 SELECT 'Y' into is_attribute_used
571 from qp_pricing_attributes
572 where product_attribute_context = l_context_code and
573 product_attribute = p_SEG_rec.segment_mapping_column and
574 product_attribute_context is not null and
575 product_attribute is not null and
576 rownum =1
577 UNION
578 SELECT 'Y'
579 from qp_pricing_attributes
580 where pricing_attribute_context = l_context_code and
581 pricing_attribute = p_SEG_rec.segment_mapping_column and
582 pricing_attribute_context is not null and
583 pricing_attribute is not null and
584 rownum = 1;
585 exception
586 when no_data_found then
587 null;
588 end;
589 end if;
590 end if;
591 --
592 if is_attribute_used = 'N' then
593 begin
594 select 'Y'
595 into is_attribute_used
596 from qp_qualifiers
597 where qualifier_context = l_context_code and
598 qualifier_attribute = p_SEG_rec.segment_mapping_column and
599 rownum = 1;
600 exception
601 when no_data_found then
602 null;
603 end;
604 end if;
605 --
606 if is_attribute_used = 'N' then
607 begin
608 select 'Y'
609 into is_attribute_used
610 from qp_limits
611 where (nvl(multival_attr1_context,'x') = nvl(l_context_code,'y') and
612 nvl(multival_attribute1,'x') = nvl(p_SEG_rec.segment_mapping_column,'y')) or
613 (nvl(multival_attr2_context,'x') = nvl(l_context_code,'y') and
614 nvl(multival_attribute2,'x') = nvl(p_SEG_rec.segment_mapping_column,'y')) and
615 rownum = 1;
616 exception
617 when no_data_found then
618 null;
619 end;
620 end if;
621 --
622 if is_attribute_used = 'N' then
623 begin
624 select 'Y'
625 into is_attribute_used
626 from qp_limit_attributes
627 where limit_attribute_context = l_context_code and
628 limit_attribute = p_SEG_rec.segment_mapping_column and
629 rownum = 1;
630 exception
631 when no_data_found then
632 null;
633 end;
634 end if;
635 --
636 if is_attribute_used = 'Y' then
637 l_return_status := FND_API.G_RET_STS_ERROR;
638 FND_MESSAGE.SET_NAME('QP','QP_CANNOT_DELETE_SEGMENT');
639 OE_MSG_PUB.Add;
640 raise fnd_api.g_exc_error;
641 end if;
642 --
643 x_return_status := l_return_status;
644
645 EXCEPTION
646
647 WHEN FND_API.G_EXC_ERROR THEN
648
649 x_return_status := FND_API.G_RET_STS_ERROR;
650
651 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
652
653 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
654
655 WHEN OTHERS THEN
656
657 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
658
659 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
660 THEN
661 OE_MSG_PUB.Add_Exc_Msg
662 ( G_PKG_NAME
663 , 'Entity_Delete'
664 );
665 END IF;
666
667 END Entity_Delete;
668
669 END QP_Validate_Seg;