DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_QPXPRMLS_XMLP_PKG

Source


1 PACKAGE BODY QP_QPXPRMLS_XMLP_PKG AS
2 /* $Header: QPXPRMLSB.pls 120.2 2010/11/03 16:12:05 smuhamme noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   apf boolean;
5   BEGIN
6     BEGIN
7       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
8       apf := afterpform;
9       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
10     EXCEPTION
11       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
12         /*SRW.MESSAGE(1000
13                    ,'Failed in BEFORE REPORT trigger')*/NULL;
14         RETURN (FALSE);
15     END;
16     DECLARE
17       L_COMPANY_NAME VARCHAR2(100);
18       L_FUNCTIONAL_CURRENCY VARCHAR2(15);
19     BEGIN
20       SELECT
21         SOB.NAME,
22         SOB.CURRENCY_CODE
23       INTO L_COMPANY_NAME,L_FUNCTIONAL_CURRENCY
24       FROM
25         GL_SETS_OF_BOOKS SOB,
26         FND_CURRENCIES CUR
27       WHERE SOB.SET_OF_BOOKS_ID = P_SOB_ID
28         AND SOB.CURRENCY_CODE = CUR.CURRENCY_CODE;
29       RP_COMPANY_NAME := L_COMPANY_NAME;
30     EXCEPTION
31       WHEN NO_DATA_FOUND THEN
32         NULL;
33     END;
34     DECLARE
35       L_REPORT_NAME VARCHAR2(240);
36     BEGIN
37       SELECT
38         CP.USER_CONCURRENT_PROGRAM_NAME
39       INTO L_REPORT_NAME
40       FROM
41         FND_CONCURRENT_PROGRAMS_VL CP,
42         FND_CONCURRENT_REQUESTS CR
43       WHERE CR.REQUEST_ID = P_CONC_REQUEST_ID
44         AND CP.APPLICATION_ID = CR.PROGRAM_APPLICATION_ID
45         AND CP.CONCURRENT_PROGRAM_ID = CR.CONCURRENT_PROGRAM_ID;
46       RP_REPORT_NAME := L_REPORT_NAME;
47     EXCEPTION
48       WHEN NO_DATA_FOUND THEN
49         RP_REPORT_NAME := 'Modifier Details';
50     END;
51     BEGIN
52       SELECT
53         MEANING
54       INTO LP_ACTIVE_ONLY
55       FROM
56         FND_LOOKUPS
57       WHERE LOOKUP_TYPE = 'YES_NO'
58         AND LOOKUP_CODE = UPPER(SUBSTR(P_ACTIVE_MODIFIER_ONLY
59                   ,1
60                   ,1));
61       SELECT
62         MEANING
63       INTO LP_ACTIVE_LINES_ONLY
64       FROM
65         FND_LOOKUPS
66       WHERE LOOKUP_TYPE = 'YES_NO'
67         AND LOOKUP_CODE = UPPER(SUBSTR(P_ACTIVE_MODIFIER_LINES
68                   ,1
69                   ,1));
70     END;
71     RETURN (TRUE);
72   END BEFOREREPORT;
73 
74   FUNCTION CF_LINE_TYPE_CODEFORMULA(LIST_TYPE_CODE IN VARCHAR2) RETURN CHAR IS
75     X_LINE_TYPE VARCHAR2(80);
76     CURSOR CUR_LINE_TYPE IS
77       SELECT
78         MEANING
79       FROM
80         QP_LOOKUPS
81       WHERE LOOKUP_TYPE = 'LIST_TYPE_CODE'
82         AND LOOKUP_CODE = LIST_TYPE_CODE;
83   BEGIN
84     OPEN CUR_LINE_TYPE;
85     FETCH CUR_LINE_TYPE
86      INTO X_LINE_TYPE;
87     CLOSE CUR_LINE_TYPE;
88     RETURN (X_LINE_TYPE);
89   END CF_LINE_TYPE_CODEFORMULA;
90 
91   FUNCTION CF_PARENT_NUMBERFORMULA(PARENT_LIST_HEADER_ID IN NUMBER) RETURN CHAR IS
92     X_PARENT_NUMBER VARCHAR2(240);
93     CURSOR CUR_PARENT_NUM IS
94       SELECT
95         NAME
96       FROM
97         QP_LIST_HEADERS_VL
98       WHERE LIST_HEADER_ID = PARENT_LIST_HEADER_ID;
99   BEGIN
100     OPEN CUR_PARENT_NUM;
101     FETCH CUR_PARENT_NUM
102      INTO X_PARENT_NUMBER;
103     CLOSE CUR_PARENT_NUM;
104     RETURN (X_PARENT_NUMBER);
105   END CF_PARENT_NUMBERFORMULA;
106 
107   FUNCTION CF_PARENT_VERSIONFORMULA(PARENT_LIST_HEADER_ID IN NUMBER) RETURN CHAR IS
108     X_PARENT_VERSION VARCHAR2(30);
109     CURSOR CUR_VERSION IS
110       SELECT
111         VERSION_NO
112       FROM
113         QP_LIST_HEADERS_VL
114       WHERE LIST_HEADER_ID = PARENT_LIST_HEADER_ID;
115   BEGIN
116     OPEN CUR_VERSION;
117     FETCH CUR_VERSION
118      INTO X_PARENT_VERSION;
119     CLOSE CUR_VERSION;
120     RETURN (X_PARENT_VERSION);
121   END CF_PARENT_VERSIONFORMULA;
122 
123   FUNCTION CF_COUP_LIST_LINEFORMULA(LIST_LINE_ID1 IN NUMBER) RETURN CHAR IS
124     X_COUP_LIST_LINE VARCHAR2(30);
125     CURSOR CUR_COUP_LIST IS
126       SELECT
127         QLL.LIST_LINE_NO
128       FROM
129         QP_LIST_LINES QLL
130       WHERE QLL.LIST_LINE_ID = (
131         SELECT
132           QR.TO_RLTD_MODIFIER_ID
133         FROM
134           QP_RLTD_MODIFIERS QR,
135           QP_LIST_LINES QL
136         WHERE QR.FROM_RLTD_MODIFIER_ID = QL.LIST_LINE_ID
137           AND QR.FROM_RLTD_MODIFIER_ID = LIST_LINE_ID1
138           AND QR.RLTD_MODIFIER_GRP_TYPE = 'COUPON' );
139   BEGIN
140     OPEN CUR_COUP_LIST;
141     FETCH CUR_COUP_LIST
142      INTO X_COUP_LIST_LINE;
143     CLOSE CUR_COUP_LIST;
144     RETURN (X_COUP_LIST_LINE);
145   END CF_COUP_LIST_LINEFORMULA;
146 
147   FUNCTION CF_QUALIFIER_ATTRIBUTEFORMULA(QUALIFIER_CONTEXT IN VARCHAR2
148                                         ,QUALIFIER_ATTRIBUTE IN VARCHAR2) RETURN CHAR IS
149     X_ATTRIBUTE_CODE VARCHAR2(80);
150     X_SEGMENT_NAME VARCHAR2(80);
151   BEGIN
152     /*SRW.MESSAGE(1
153                ,' - in qual_context -  ')*/NULL;
154     QP_UTIL.GET_ATTRIBUTE_CODE('QP_ATTR_DEFNS_QUALIFIER'
155                               ,QUALIFIER_CONTEXT
156                               ,QUALIFIER_ATTRIBUTE
157                               ,X_ATTRIBUTE_CODE
158                               ,X_SEGMENT_NAME);
159     /*SRW.MESSAGE(1
160                ,'segment_name = ' || X_SEGMENT_NAME)*/NULL;
161     /*SRW.MESSAGE(1
162                ,'attribute_code = ' || X_ATTRIBUTE_CODE)*/NULL;
163     RETURN (X_ATTRIBUTE_CODE);
164   END CF_QUALIFIER_ATTRIBUTEFORMULA;
165 
166   FUNCTION GET_SEGMENT_NAME(QUALIFIER_CONTEXT IN VARCHAR2
167                            ,QUALIFIER_ATTRIBUTE IN VARCHAR2) RETURN CHAR IS
168     CURSOR CUR_GET_APPLICATION_ID(APP_SHORT_NAME IN VARCHAR2) IS
169       SELECT
170         APPLICATION_ID
171       FROM
172         FND_APPLICATION
173       WHERE APPLICATION_SHORT_NAME = APP_SHORT_NAME;
174     V_DFLEX_R FND_DFLEX.DFLEX_R;
175     V_SEGMENTS_DR FND_DFLEX.SEGMENTS_DR;
176     V_CONTEXT_R FND_DFLEX.CONTEXT_R;
177   BEGIN
178     OPEN CUR_GET_APPLICATION_ID('QP');
179     FETCH CUR_GET_APPLICATION_ID
180      INTO V_DFLEX_R.APPLICATION_ID;
181     CLOSE CUR_GET_APPLICATION_ID;
182     V_DFLEX_R.FLEXFIELD_NAME := 'QP_ATTR_DEFNS_QUALIFIER';
183     V_CONTEXT_R.FLEXFIELD := V_DFLEX_R;
184     V_CONTEXT_R.CONTEXT_CODE := QUALIFIER_CONTEXT;
185     FND_DFLEX.GET_SEGMENTS(V_CONTEXT_R
186                           ,V_SEGMENTS_DR
187                           ,TRUE);
188     IF (V_SEGMENTS_DR.NSEGMENTS > 0) THEN
189       FOR i IN 1 .. V_SEGMENTS_DR.NSEGMENTS LOOP
190         IF (V_SEGMENTS_DR.APPLICATION_COLUMN_NAME(I) = QUALIFIER_ATTRIBUTE) THEN
191           RETURN (V_SEGMENTS_DR.SEGMENT_NAME(I));
192         END IF;
193       END LOOP;
194     ELSE
195       RETURN (NULL);
196     END IF;
197     RETURN (NULL);
198   EXCEPTION
199     WHEN OTHERS THEN
200       RETURN (NULL);
201   END GET_SEGMENT_NAME;
202 
203   FUNCTION GET_NUM_DATE_FROM_CANONICAL(P_DATATYPE IN VARCHAR2
204                                       ,P_VALUE IN VARCHAR2) RETURN VARCHAR2 IS
205     L_VARCHAR_OUT VARCHAR2(2000);
206     INVALID_DATA_TYPE EXCEPTION;
207   BEGIN
208     IF P_DATATYPE = 'N' THEN
209       L_VARCHAR_OUT := TO_CHAR(FND_NUMBER.CANONICAL_TO_NUMBER(P_VALUE));
210     ELSIF P_DATATYPE = 'X' THEN
211       L_VARCHAR_OUT := FND_DATE.DATE_TO_DISPLAYDATE(FND_DATE.CANONICAL_TO_DATE(P_VALUE));
212     ELSIF P_DATATYPE = 'Y' THEN
213       L_VARCHAR_OUT := FND_DATE.DATE_TO_DISPLAYDT(FND_DATE.CANONICAL_TO_DATE(P_VALUE));
214     ELSIF P_DATATYPE = 'C' THEN
215       L_VARCHAR_OUT := P_VALUE;
216     ELSE
217       RAISE INVALID_DATA_TYPE;
218     END IF;
219     RETURN L_VARCHAR_OUT;
220   EXCEPTION
221     WHEN INVALID_DATA_TYPE THEN
222       RETURN (NULL);
223     WHEN OTHERS THEN
224       RETURN (NULL);
225   END GET_NUM_DATE_FROM_CANONICAL;
226 
227   /*FUNCTION GET_ATTR_VALUE_TO(P_FLEXFIELD_NAME IN VARCHAR2
228                             ,P_CONTEXT_NAME IN VARCHAR2
229                             ,P_SEGMENT_NAME IN VARCHAR2
230                             ,P_ATTR_VALUE_TO IN VARCHAR2) RETURN VARCHAR2 IS
231     VSET FND_VSET.VALUESET_R;
232     FMT FND_VSET.VALUESET_DR;
233     FOUND BOOLEAN;
234     ROW NUMBER;
235     VALUE FND_VSET.VALUE_DR;
236     X_FORMAT_TYPE VARCHAR2(1);
237     X_VALIDATION_TYPE VARCHAR2(1);
238     X_VSID NUMBER;
239     X_ATTR_VALUE_CODE VARCHAR2(240);
240     L_ATTR_VALUE_TO VARCHAR2(2000);
241   BEGIN
242     QP_UTIL.GET_VALUESET_ID(P_FLEXFIELD_NAME
243                            ,P_CONTEXT_NAME
244                            ,P_SEGMENT_NAME
245                            ,X_VSID
246                            ,X_FORMAT_TYPE
247                            ,X_VALIDATION_TYPE);
248     L_ATTR_VALUE_TO := GET_NUM_DATE_FROM_CANONICAL(QUALIFIER_DATATYPE
249                                                   ,QUALIFIER_ATTR_VALUE_TO);
250     IF (COMPARISION_OPERATOR_CODE <> 'BETWEEN') AND (L_ATTR_VALUE_TO IS NOT NULL) THEN
251       IF X_VALIDATION_TYPE in ('F','I') AND X_VSID IS NOT NULL THEN
252         FND_VSET.GET_VALUESET(X_VSID
253                              ,VSET
254                              ,FMT);
255         FND_VSET.GET_VALUE_INIT(VSET
256                                ,TRUE);
257         FND_VSET.GET_VALUE(VSET
258                           ,ROW
259                           ,FOUND
260                           ,VALUE);
261         WHILE (FOUND) LOOP
262 
263           IF L_ATTR_VALUE_TO = VALUE.VALUE THEN
264             X_ATTR_VALUE_CODE := VALUE.MEANING;
265             EXIT;
266           END IF;
267           FND_VSET.GET_VALUE(VSET
268                             ,ROW
269                             ,FOUND
270                             ,VALUE);
271         END LOOP;
272         FND_VSET.GET_VALUE_END(VSET);
273       ELSE
274         X_ATTR_VALUE_CODE := L_ATTR_VALUE_TO;
275       END IF;
276     ELSE
277       X_ATTR_VALUE_CODE := L_ATTR_VALUE_TO;
278     END IF;
279     RETURN X_ATTR_VALUE_CODE;
280   EXCEPTION
281     WHEN OTHERS THEN
282       RETURN (NULL);
283   END GET_ATTR_VALUE_TO;*/
284 
285   /*FUNCTION GET_ATTRIBUTE_VALUE(P_FLEXFIELD_NAME IN VARCHAR2
286                               ,P_CONTEXT_NAME IN VARCHAR2
287                               ,P_SEGMENT_NAME IN VARCHAR2
288                               ,P_ATTR_VALUE IN VARCHAR2) RETURN VARCHAR2 IS
289     VSET FND_VSET.VALUESET_R;
290     FMT FND_VSET.VALUESET_DR;
291     FOUND BOOLEAN;
292     ROW NUMBER;
293     VALUE FND_VSET.VALUE_DR;
294     X_FORMAT_TYPE VARCHAR2(1);
295     X_VALIDATION_TYPE VARCHAR2(1);
296     X_VSID NUMBER;
297     X_ATTR_VALUE_CODE VARCHAR2(240);
298     L_ATTR_VALUE VARCHAR2(2000);
299     L_ID VARCHAR2(150);
300     L_VALUE VARCHAR2(150);
301     VALUE_VALID_IN_VALUESET BOOLEAN := FALSE;
302   BEGIN
303     QP_UTIL.GET_VALUESET_ID(P_FLEXFIELD_NAME
304                            ,P_CONTEXT_NAME
305                            ,P_SEGMENT_NAME
306                            ,X_VSID
307                            ,X_FORMAT_TYPE
308                            ,X_VALIDATION_TYPE);
309     L_ATTR_VALUE := GET_NUM_DATE_FROM_CANONICAL(QUALIFIER_DATATYPE
310                                                ,QUALIFIER_ATTR_VALUE);
311     IF (COMPARISION_OPERATOR_CODE <> 'BETWEEN') AND (L_ATTR_VALUE IS NOT NULL) THEN
312       IF X_VALIDATION_TYPE in ('F','I') AND X_VSID IS NOT NULL THEN
313         IF X_VALIDATION_TYPE = 'I' THEN
314           FND_VSET.GET_VALUESET(X_VSID
315                                ,VSET
316                                ,FMT);
317           FND_VSET.GET_VALUE_INIT(VSET
318                                  ,TRUE);
319           FND_VSET.GET_VALUE(VSET
320                             ,ROW
321                             ,FOUND
322                             ,VALUE);
323           IF FMT.HAS_ID THEN
324             WHILE (FOUND) LOOP
325 
326               IF L_ATTR_VALUE = VALUE.ID THEN
327                 X_ATTR_VALUE_CODE := VALUE.VALUE;
328                 EXIT;
329               END IF;
330               FND_VSET.GET_VALUE(VSET
331                                 ,ROW
332                                 ,FOUND
333                                 ,VALUE);
334             END LOOP;
335           ELSE
336             WHILE (FOUND) LOOP
337 
338               IF L_ATTR_VALUE = VALUE.VALUE THEN
339                 X_ATTR_VALUE_CODE := L_ATTR_VALUE;
340                 EXIT;
341               END IF;
342               FND_VSET.GET_VALUE(VSET
343                                 ,ROW
344                                 ,FOUND
345                                 ,VALUE);
346             END LOOP;
347           END IF;
348           FND_VSET.GET_VALUE_END(VSET);
349         ELSIF X_VALIDATION_TYPE = 'F' THEN
350           FND_VSET.GET_VALUESET(X_VSID
351                                ,VSET
352                                ,FMT);
353           IF (QP_UTIL.VALUE_EXISTS_IN_TABLE(VSET.TABLE_INFO
354                                        ,L_ATTR_VALUE
355                                        ,L_ID
356                                        ,L_VALUE)) THEN
357             IF FMT.HAS_ID THEN
358               IF L_ATTR_VALUE = L_ID THEN
359                 X_ATTR_VALUE_CODE := L_VALUE;
360                 VALUE_VALID_IN_VALUESET := TRUE;
361               END IF;
362             ELSE
363               IF L_ATTR_VALUE = L_VALUE THEN
364                 X_ATTR_VALUE_CODE := L_ATTR_VALUE;
365                 VALUE_VALID_IN_VALUESET := TRUE;
366               END IF;
367             END IF;
368           ELSE
369             VALUE_VALID_IN_VALUESET := FALSE;
370           END IF;
371         END IF;
372       ELSE
373         X_ATTR_VALUE_CODE := L_ATTR_VALUE;
374       END IF;
375     ELSE
376       X_ATTR_VALUE_CODE := L_ATTR_VALUE;
377     END IF;
378     RETURN X_ATTR_VALUE_CODE;
379   EXCEPTION
380     WHEN OTHERS THEN
381       RETURN (NULL);
382   END GET_ATTRIBUTE_VALUE;*/
383 
384   FUNCTION CF_ATTR_VALUE_FROMFORMULA(QUALIFIER_CONTEXT IN VARCHAR2
385                                     ,QUALIFIER_ATTRIBUTE IN VARCHAR2
386                                     ,QUALIFIER_ATTR_VALUE IN VARCHAR2
387                                     ,COMPARISION_OPERATOR_CODE IN VARCHAR2
388                                     ,QUALIFIER_DATATYPE IN VARCHAR2
389                                     ,COMPARISION_OPERATOR_CODE1 IN VARCHAR2) RETURN CHAR IS
390     L_QUALIFIER_ATTR_VALUE VARCHAR2(240);
391   BEGIN
392     /*L_QUALIFIER_ATTR_VALUE := QP_UTIL.GET_ATTRIBUTE_VALUE(P_ATTR_VALUE
393                                                          ,P_SEGMENT_NAME
394                                                          ,P_CONTEXT_NAME
395                                                          ,P_FLEXFIELD_NAME
396                                                          ,QUALIFIER_DATATYPE
397                                                          ,QUALIFIER_ATTR_VALUE
398                                                          ,COMPARISION_OPERATOR_CODE);*/
399 
400 	L_QUALIFIER_ATTR_VALUE := qp_util.Get_Attribute_Value(p_FlexField_Name =>'QP_ATTR_DEFNS_QUALIFIER'
401                             ,p_Context_Name  => qualifier_context
402 			    ,p_segment_name  => qualifier_attribute
403 			    ,p_attr_value    => qualifier_attr_value
404 			    , p_comparison_operator_code =>comparision_operator_code);
405 
406 
407     IF (QUALIFIER_CONTEXT = 'ORDER' AND QUALIFIER_ATTRIBUTE = 'QUALIFIER_ATTRIBUTE5') THEN
408       BEGIN
409         SELECT
410           ORDER_NUMBER
411         INTO L_QUALIFIER_ATTR_VALUE
412         FROM
413           OE_BLANKET_HEADERS_ALL
414         WHERE HEADER_ID = QUALIFIER_ATTR_VALUE;
415       EXCEPTION
416         WHEN OTHERS THEN
417           NULL;
418       END;
419     ELSIF (QUALIFIER_CONTEXT = 'ORDER' AND QUALIFIER_ATTRIBUTE = 'QUALIFIER_ATTRIBUTE6') THEN
420       BEGIN
421         SELECT
422           H.ORDER_NUMBER || '-' || L.LINE_NUMBER
423         INTO L_QUALIFIER_ATTR_VALUE
424         FROM
425           OE_BLANKET_HEADERS_ALL H,
426           OE_BLANKET_LINES_ALL L
427         WHERE L.LINE_ID = QUALIFIER_ATTR_VALUE
428           AND H.HEADER_ID = L.HEADER_ID;
429       EXCEPTION
430         WHEN OTHERS THEN
431           NULL;
432       END;
433     END IF;
434     RETURN L_QUALIFIER_ATTR_VALUE;
435   END CF_ATTR_VALUE_FROMFORMULA;
436 
437   FUNCTION CF_ATTR_VALUE_TOFORMULA(QUALIFIER_CONTEXT IN VARCHAR2
438                                   ,QUALIFIER_ATTRIBUTE IN VARCHAR2
439                                   ,QUALIFIER_ATTR_VALUE_TO IN VARCHAR2
440                                   ,COMPARISION_OPERATOR_CODE IN VARCHAR2
441                                   ,QUALIFIER_DATATYPE IN VARCHAR2
442                                   ,COMPARISION_OPERATOR_CODE1 IN VARCHAR2
443                                   ,QUALIFIER_ATTR_VALUE IN VARCHAR2) RETURN CHAR IS
444     L_QUALIFIER_ATTR_VALUE_TO VARCHAR2(240);
445   BEGIN
446     /*L_QUALIFIER_ATTR_VALUE_TO := QP_UTIL.GET_ATTRIBUTE_VALUE(P_ATTR_VALUE
447                                                             ,P_SEGMENT_NAME
448                                                             ,P_CONTEXT_NAME
449                                                             ,P_FLEXFIELD_NAME
450                                                             ,QUALIFIER_DATATYPE
451                                                             ,QUALIFIER_ATTR_VALUE
452                                                             ,COMPARISION_OPERATOR_CODE);*/
453 
454 	l_qualifier_attr_value_to := qp_util.Get_Attribute_Value(p_FlexField_Name =>'QP_ATTR_DEFNS_QUALIFIER'
455                             ,p_Context_Name  => qualifier_context
456 			    ,p_segment_name  => qualifier_attribute
457 			    ,p_attr_value    => qualifier_attr_value_to
458 			    , p_comparison_operator_code =>comparision_operator_code);
459 
460     IF (QUALIFIER_CONTEXT = 'ORDER' AND QUALIFIER_ATTRIBUTE = 'QUALIFIER_ATTRIBUTE5') THEN
461       BEGIN
462         SELECT
463           ORDER_NUMBER
464         INTO L_QUALIFIER_ATTR_VALUE_TO
465         FROM
466           OE_BLANKET_HEADERS_ALL
467         WHERE HEADER_ID = QUALIFIER_ATTR_VALUE_TO;
468       EXCEPTION
469         WHEN OTHERS THEN
470           NULL;
471       END;
472     ELSIF (QUALIFIER_CONTEXT = 'ORDER' AND QUALIFIER_ATTRIBUTE = 'QUALIFIER_ATTRIBUTE6') THEN
473       BEGIN
474         SELECT
475           H.ORDER_NUMBER || '-' || L.LINE_NUMBER
476         INTO L_QUALIFIER_ATTR_VALUE_TO
477         FROM
478           OE_BLANKET_HEADERS_ALL H,
479           OE_BLANKET_LINES_ALL L
480         WHERE L.LINE_ID = QUALIFIER_ATTR_VALUE_TO
481           AND H.HEADER_ID = L.HEADER_ID;
482       EXCEPTION
483         WHEN OTHERS THEN
484           NULL;
485       END;
486     END IF;
487     RETURN L_QUALIFIER_ATTR_VALUE_TO;
488   END CF_ATTR_VALUE_TOFORMULA;
489 
490   FUNCTION AFTERPFORM RETURN BOOLEAN IS
491   BEGIN
492     /*SRW.MESSAGE(99999
493                ,'$Header: QPXPRMLSB.pls 120.2 2010/11/03 16:12:05 smuhamme noship $')*/NULL;
494     IF (P_MODIFIER_NAME_FROM IS NOT NULL) AND (P_MODIFIER_NAME_TO IS NOT NULL) THEN
495       LP_MODIFIER_NAME := ' and a.description between :p_modifier_name_from and :p_modifier_name_to ';
496     ELSIF (P_MODIFIER_NAME_FROM IS NOT NULL) THEN
497       LP_MODIFIER_NAME := ' and a.description  >= :p_modifier_name_from ';
498     ELSIF (P_MODIFIER_NAME_TO IS NOT NULL) THEN
499       LP_MODIFIER_NAME := ' and  a.description <= :p_modifier_name_to ';
500     END IF;
501     IF (P_MODIFIER_NUMBER_FROM IS NOT NULL) AND (P_MODIFIER_NUMBER_TO IS NOT NULL) THEN
502       LP_MODIFIER_NUMBER := ' and a.name between :p_modifier_number_from and :p_modifier_number_to ';
503     ELSIF (P_MODIFIER_NUMBER_FROM IS NOT NULL) THEN
504       LP_MODIFIER_NUMBER := ' and a.name  >= :p_modifier_number_from ';
505     ELSIF (P_MODIFIER_NUMBER_TO IS NOT NULL) THEN
506       LP_MODIFIER_NUMBER := ' and  a.name <= :p_modifier_number_to ';
507     END IF;
508     IF (P_MODIFIER_VERSION_FROM IS NOT NULL) AND (P_MODIFIER_VERSION_TO IS NOT NULL) THEN
509       LP_MODIFIER_VERSION := ' and a.version_no between :p_modifier_version_from and :p_modifier_version_to ';
510     ELSIF (P_MODIFIER_VERSION_FROM IS NOT NULL) THEN
511       LP_MODIFIER_VERSION := ' and a.version_no  >= :p_modifier_version_from ';
512     ELSIF (P_MODIFIER_VERSION_TO IS NOT NULL) THEN
513       LP_MODIFIER_VERSION := ' and  a.version_no <= :p_modifier_version_to ';
514     END IF;
515     IF (P_ACTIVE_MODIFIER_ONLY IS NOT NULL) THEN
516       LP_ACTIVE_MODIFIER_ONLY := ' and a.active_flag  = :p_active_modifier_only ';
517     END IF;
518     IF ((P_ACTIVE_MODIFIER_LINES IS NOT NULL) AND (UPPER(SUBSTR(P_ACTIVE_MODIFIER_LINES
519                 ,1
520                 ,1)) = 'Y')) THEN
521       LP_ACTIVE_MODIFIER_LINES_ONLY := ' and nvl(trunc(a.start_date_active),trunc(sysdate)) <= trunc(sysdate) ' || ' and nvl(trunc(a.end_date_active),trunc(sysdate)) >= trunc(sysdate) ';
522     END IF;
523     IF (P_START_DATE_ACTIVE IS NOT NULL) AND (P_END_DATE_ACTIVE IS NOT NULL) THEN
524       LP_ACTIVE_DATE := ' and a.start_date_active >= :p_start_date_active and a.end_date_active < (:p_end_date_active+1) ';
525     ELSIF (P_START_DATE_ACTIVE IS NOT NULL) THEN
526       LP_ACTIVE_DATE := ' and a.start_date_active  >= :p_start_date_active ';
527     ELSIF (P_END_DATE_ACTIVE IS NOT NULL) THEN
528       LP_ACTIVE_DATE := ' and  a.end_date_active < (:p_end_date_active+1) ';
529     END IF;
530     IF (P_CUSTOMER_ID IS NOT NULL) THEN
531       LP_CUSTOMER_ID := ' And Exists (SELECT NULL
532                                                                          FROM   qp_qualifiers q
533                                                                          WHERE  qualifier_context = ''CUSTOMER''
534                                                                          AND    a.list_header_id = q.list_header_id
535                                                                          AND       qualifier_attribute  = ''QUALIFIER_ATTRIBUTE2''
536                                                                          AND       qualifier_attr_value = :P_customer_id) ';
537     END IF;
538     IF (P_CUSTOMER_CLASS_ID IS NOT NULL) THEN
539       LP_CUSTOMER_CLASS_ID := ' And Exists (SELECT NULL
540                                                                                FROM   qp_qualifiers q
541                                                                                WHERE  qualifier_context = ''CUSTOMER''
542                                                                                AND    a.list_header_id = q.list_header_id
543                                                                                AND       qualifier_attribute  = ''QUALIFIER_ATTRIBUTE1''
544                                                                                AND       qualifier_attr_value = :P_customer_class_id) ';
545     END IF;
546     IF (P_PRICE_LIST_ID IS NOT NULL) THEN
547       LP_PRICE_LIST_ID := ' And Exists (SELECT NULL
548                                                                            FROM   qp_qualifiers q
549                                                                            WHERE  qualifier_context = ''MODLIST''
550                                                                            AND    a.list_header_id = q.list_header_id
551                                                                            AND       qualifier_attribute  = ''QUALIFIER_ATTRIBUTE4''
552                                                                            AND       qualifier_attr_value = :P_price_list_id) ';
553     END IF;
554     IF (P_ITEM_ID IS NOT NULL) THEN
555       LP_ITEM_ID := ' And Exists (SELECT NULL
556                                                                      FROM   qp_pricing_attributes q
557                                                                      WHERE  product_attribute_context = ''ITEM''
558                                                                      AND    a.list_header_id = q.list_header_id
559                                                                      AND       product_attribute  = ''PRICING_ATTRIBUTE1''
560                                                                      AND       product_attr_value = :P_item_id) ';
561     END IF;
562     IF (P_ITEM_CATEGORY_ID IS NOT NULL) THEN
563       LP_ITEM_CATEGORY_ID := ' And Exists (SELECT NULL
564                                                                               FROM   qp_pricing_attributes q
565                                                                               WHERE  product_attribute_context = ''ITEM''
566                                                                               AND    a.list_header_id = q.list_header_id
567                                                                               AND       product_attribute  = ''PRICING_ATTRIBUTE2''
568                                                                               AND       product_attr_value = :P_item_category_id) ';
569     END IF;
570     RETURN (TRUE);
571   END AFTERPFORM;
572 
573   FUNCTION CF_NET_AMOUNT_CALCFORMULA(NET_AMOUNT_FLAG IN VARCHAR2) RETURN CHAR IS
574     X_NET_AMOUNT_CALC VARCHAR2(80);
575     CURSOR NET_AMOUNT IS
576       SELECT
577         MEANING
578       FROM
579         QP_LOOKUPS
580       WHERE LOOKUP_TYPE = 'QP_NET_AMOUNT_CALCULATION'
581         AND LOOKUP_CODE = NET_AMOUNT_FLAG;
582   BEGIN
583     OPEN NET_AMOUNT;
584     FETCH NET_AMOUNT
585      INTO X_NET_AMOUNT_CALC;
586     CLOSE NET_AMOUNT;
587     RETURN (X_NET_AMOUNT_CALC);
588   END CF_NET_AMOUNT_CALCFORMULA;
589 
590   FUNCTION AFTERREPORT RETURN BOOLEAN IS
591   BEGIN
592     BEGIN
593       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
594     EXCEPTION
595       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
596         /*SRW.MESSAGE(1
597                    ,'Failed in AFTER REPORT TRIGGER')*/NULL;
598         RETURN (FALSE);
599     END;
600     RETURN (TRUE);
601   END AFTERREPORT;
602 
603   FUNCTION CF_BENEFIT_PRICEFORMULA(BENEFIT_PRICE_LIST_LINE_ID IN NUMBER) RETURN NUMBER IS
604     X_OPERAND NUMBER;
605     CURSOR CUR_OPERAND IS
606       SELECT
607         OPERAND
608       FROM
609         QP_LIST_LINES
610       WHERE LIST_LINE_ID = BENEFIT_PRICE_LIST_LINE_ID;
611   BEGIN
612     OPEN CUR_OPERAND;
613     FETCH CUR_OPERAND
614      INTO X_OPERAND;
615     CLOSE CUR_OPERAND;
616     RETURN (X_OPERAND);
617   END CF_BENEFIT_PRICEFORMULA;
618 
619   FUNCTION RP_REPORT_NAME_P RETURN VARCHAR2 IS
620   BEGIN
621     RETURN RP_REPORT_NAME;
622   END RP_REPORT_NAME_P;
623 
624   FUNCTION RP_COMPANY_NAME_P RETURN VARCHAR2 IS
625   BEGIN
626     RETURN RP_COMPANY_NAME;
627   END RP_COMPANY_NAME_P;
628 
629 END QP_QPXPRMLS_XMLP_PKG;