DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_QPXPRFOR_XMLP_PKG

Source


1 PACKAGE BODY QP_QPXPRFOR_XMLP_PKG AS
2 /* $Header: QPXPRFORB.pls 120.2 2010/11/03 16:05:45 smuhamme noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   BEGIN
5     BEGIN
6       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
7       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
8     EXCEPTION
9       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
10         /*SRW.MESSAGE(1000
11                    ,'Failed in BEFORE REPORT trigger')*/NULL;
12         RETURN (FALSE);
13     END;
14     BEGIN
15       FND_MESSAGE.SET_NAME('QP'
16                           ,'QP_GET_CUSTOM_PRICE');
17       P_CUSTOM_PRICE := FND_MESSAGE.GET;
18     END;
19     DECLARE
20       L_COMPANY_NAME VARCHAR2(100);
21       L_FUNCTIONAL_CURRENCY VARCHAR2(15);
22     BEGIN
23       SELECT
24         SOB.NAME,
25         SOB.CURRENCY_CODE
26       INTO L_COMPANY_NAME,L_FUNCTIONAL_CURRENCY
27       FROM
28         GL_SETS_OF_BOOKS SOB,
29         FND_CURRENCIES CUR
30       WHERE SOB.SET_OF_BOOKS_ID = P_SOB_ID
31         AND SOB.CURRENCY_CODE = CUR.CURRENCY_CODE;
32       RP_COMPANY_NAME := L_COMPANY_NAME;
33     EXCEPTION
34       WHEN NO_DATA_FOUND THEN
35         NULL;
36     END;
37     DECLARE
38       L_REPORT_NAME VARCHAR2(240);
39     BEGIN
40       SELECT
41         CP.USER_CONCURRENT_PROGRAM_NAME
42       INTO L_REPORT_NAME
43       FROM
44         FND_CONCURRENT_PROGRAMS_VL CP,
45         FND_CONCURRENT_REQUESTS CR
46       WHERE CR.REQUEST_ID = P_CONC_REQUEST_ID
47         AND CP.APPLICATION_ID = CR.PROGRAM_APPLICATION_ID
48         AND CP.CONCURRENT_PROGRAM_ID = CR.CONCURRENT_PROGRAM_ID;
49       RP_REPORT_NAME := L_REPORT_NAME;
50     EXCEPTION
51       WHEN NO_DATA_FOUND THEN
52         RP_REPORT_NAME := 'Pricing Formulas';
53     END;
54     RETURN (TRUE);
55   END BEFOREREPORT;
56 
57   FUNCTION CF_FORMULA_TYPEFORMULA(PRICE_FORMULA_LINE_TYPE_CODE IN VARCHAR2) RETURN CHAR IS
58     L_FORMULA CHAR(80);
59     CURSOR CUR_FORMULA IS
60       SELECT
61         MEANING
62       FROM
63         QP_LOOKUPS
64       WHERE LOOKUP_TYPE = 'PRICE_FORMULA_LINE_TYPE_CODE'
65         AND LOOKUP_CODE = PRICE_FORMULA_LINE_TYPE_CODE;
66   BEGIN
67     OPEN CUR_FORMULA;
68     FETCH CUR_FORMULA
69      INTO L_FORMULA;
70     CLOSE CUR_FORMULA;
71     RETURN (L_FORMULA);
72   END CF_FORMULA_TYPEFORMULA;
73 
74   FUNCTION CF_COMPONENTFORMULA(PRICE_LIST_LINE_ID IN NUMBER
75                               ,PRICE_MODIFIER_LIST_ID IN NUMBER
76                               ,PRICE_FORMULA_LINE_TYPE_CODE IN VARCHAR2
77                               ,NUMERIC_CONSTANT IN NUMBER) RETURN CHAR IS
78     L_COMPONENT VARCHAR2(2000);
79     CURSOR CUR_PRICELIST IS
80       SELECT
81         H.NAME
82       FROM
83         QP_LIST_HEADERS_VL H,
84         QP_LIST_LINES D
85       WHERE D.LIST_LINE_ID = PRICE_LIST_LINE_ID
86         AND H.LIST_HEADER_ID = D.LIST_HEADER_ID;
87     CURSOR CUR_MODIFIER IS
88       SELECT
89         NAME
90       FROM
91         QP_LIST_HEADERS_VL
92       WHERE LIST_HEADER_ID = PRICE_MODIFIER_LIST_ID;
93   BEGIN
94     IF PRICE_FORMULA_LINE_TYPE_CODE = 'PLL' THEN
95       OPEN CUR_PRICELIST;
96       FETCH CUR_PRICELIST
97        INTO L_COMPONENT;
98       CLOSE CUR_PRICELIST;
99     ELSIF PRICE_FORMULA_LINE_TYPE_CODE = 'ML' THEN
100       OPEN CUR_MODIFIER;
101       FETCH CUR_MODIFIER
102        INTO L_COMPONENT;
103       CLOSE CUR_MODIFIER;
104     ELSIF PRICE_FORMULA_LINE_TYPE_CODE = 'NUM' THEN
105       L_COMPONENT := NUMERIC_CONSTANT;
106     ELSIF PRICE_FORMULA_LINE_TYPE_CODE = 'FUNC' THEN
107       L_COMPONENT := P_CUSTOM_PRICE;
108     END IF;
109     RETURN (L_COMPONENT);
110   END CF_COMPONENTFORMULA;
111 
112   FUNCTION CF_OPERANDFORMULA(LIST_LINE_ID IN NUMBER) RETURN NUMBER IS
113     L_OPERAND NUMBER;
114     CURSOR CUR_OPERAND IS
115       SELECT
116         OPERAND
117       FROM
118         QP_LIST_LINES
119       WHERE LIST_LINE_ID = LIST_LINE_ID;
120   BEGIN
121     OPEN CUR_OPERAND;
122     FETCH CUR_OPERAND
123      INTO L_OPERAND;
124     CLOSE CUR_OPERAND;
125     RETURN (L_OPERAND);
126   END CF_OPERANDFORMULA;
127 
128   FUNCTION CF_PRICING_CONTEXTFORMULA(PRICING_ATTRIBUTE_CONTEXT IN VARCHAR2
129                                     ,PRICING_ATTRIBUTE IN VARCHAR2) RETURN CHAR IS
130     X_ATTRIBUTE_CODE VARCHAR2(240);
131     X_SEGMENT_NAME VARCHAR2(240);
132   BEGIN
133     /*SRW.MESSAGE(1
134                ,' - in pricing_context -  ')*/NULL;
135     QP_UTIL.GET_ATTRIBUTE_CODE('QP_ATTR_DEFNS_PRICING'
136                               ,PRICING_ATTRIBUTE_CONTEXT
137                               ,PRICING_ATTRIBUTE
138                               ,X_ATTRIBUTE_CODE
139                               ,X_SEGMENT_NAME);
140     /*SRW.MESSAGE(1
141                ,'segment_name = ' || X_SEGMENT_NAME)*/NULL;
142     /*SRW.MESSAGE(1
143                ,'attribute_code = ' || X_ATTRIBUTE_CODE)*/NULL;
144     RETURN (X_ATTRIBUTE_CODE);
145   END CF_PRICING_CONTEXTFORMULA;
146 
147   FUNCTION CF_PRICING_CONTEXT1FORMULA(PRICING_ATTRIBUTE_CONTEXT1 IN VARCHAR2
148                                      ,PRICING_ATTRIBUTE1 IN VARCHAR2) RETURN CHAR IS
149     X_ATTRIBUTE_CODE VARCHAR2(240);
150     X_SEGMENT_NAME VARCHAR2(240);
151   BEGIN
152     /*SRW.MESSAGE(1
153                ,' - in pricing_context1 -  ')*/NULL;
154     QP_UTIL.GET_ATTRIBUTE_CODE('QP_ATTR_DEFNS_PRICING'
155                               ,PRICING_ATTRIBUTE_CONTEXT1
156                               ,PRICING_ATTRIBUTE1
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_PRICING_CONTEXT1FORMULA;
165 
166   FUNCTION AFTERREPORT RETURN BOOLEAN IS
167   BEGIN
168     BEGIN
169       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
170     EXCEPTION
171       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
172         /*SRW.MESSAGE(1
173                    ,'Failed in AFTER REPORT TRIGGER')*/NULL;
174         RETURN (FALSE);
175     END;
176     RETURN (TRUE);
177   END AFTERREPORT;
178 
179   FUNCTION CF_VALUE_FROMFORMULA(PRICING_ATTR_VALUE_FROM IN VARCHAR2
180                                ,COMPARISON_OPERATOR_CODE IN VARCHAR2
181                                ,PRICING_ATTRIBUTE_CONTEXT1 IN VARCHAR2
182                                ,PRICING_ATTRIBUTE1 IN VARCHAR2) RETURN CHAR IS
183     X_ATTRIBUTE_CODE VARCHAR2(240);
184     CURSOR CUR_PRODUCT_CODE IS
185       SELECT
186         CATEGORY_NAME
187       FROM
188         QP_ITEM_CATEGORIES_V
189       WHERE CATEGORY_ID = PRICING_ATTR_VALUE_FROM
190         AND ROWNUM = 1;
191   BEGIN
192     /*SRW.MESSAGE(1
193                ,'operator code is ' || COMPARISON_OPERATOR_CODE)*/NULL;
194     IF PRICING_ATTRIBUTE_CONTEXT1 = 'ITEM' AND PRICING_ATTRIBUTE1 = 'PRICING_ATTRIBUTE2' AND COMPARISON_OPERATOR_CODE = '=' THEN
195       OPEN CUR_PRODUCT_CODE;
196       FETCH CUR_PRODUCT_CODE
197        INTO X_ATTRIBUTE_CODE;
198       CLOSE CUR_PRODUCT_CODE;
199       /*SRW.MESSAGE(1
200                  ,'attribute code calculated is ' || X_ATTRIBUTE_CODE)*/NULL;
201       RETURN (X_ATTRIBUTE_CODE);
202     END IF;
203     X_ATTRIBUTE_CODE := '' || PRICING_ATTR_VALUE_FROM;
204     /*SRW.MESSAGE(1
205                ,'attribute code calculated is ' || X_ATTRIBUTE_CODE)*/NULL;
206     RETURN X_ATTRIBUTE_CODE;
207   END CF_VALUE_FROMFORMULA;
208 
209   FUNCTION RP_REPORT_NAME_P RETURN VARCHAR2 IS
210   BEGIN
211     RETURN RP_REPORT_NAME;
212   END RP_REPORT_NAME_P;
213 
214   FUNCTION RP_COMPANY_NAME_P RETURN VARCHAR2 IS
215   BEGIN
216     RETURN RP_COMPANY_NAME;
217   END RP_COMPANY_NAME_P;
218 
219 END QP_QPXPRFOR_XMLP_PKG;