[Home] [Help]
PACKAGE BODY: APPS.QP_QPXPRCST_XMLP_PKG
Source
1 PACKAGE BODY QP_QPXPRCST_XMLP_PKG AS
2 /* $Header: QPXPRCSTB.pls 120.2 2010/11/03 16:00:03 smuhamme noship $ */
3 FUNCTION CF_FREIGHT_TERMSFORMULA(FREIGHT_TERMS_CODE IN VARCHAR2) RETURN CHAR IS
4 L_FREIGHT_TERMS VARCHAR2(80);
5 CURSOR CUR_FREIGHT IS
6 SELECT
7 FREIGHT_TERMS
8 FROM
9 OE_FRGHT_TERMS_ACTIVE_V
10 WHERE FREIGHT_TERMS_CODE = CF_FREIGHT_TERMSFORMULA.FREIGHT_TERMS_CODE;
11 BEGIN
12 OPEN CUR_FREIGHT;
13 FETCH CUR_FREIGHT
14 INTO L_FREIGHT_TERMS;
15 CLOSE CUR_FREIGHT;
16 RETURN (L_FREIGHT_TERMS);
17 END CF_FREIGHT_TERMSFORMULA;
18
19 FUNCTION CF_PAYMENT_TERMSFORMULA(TERMS_ID IN NUMBER) RETURN CHAR IS
20 L_PAYMENT_TERMS VARCHAR2(15);
21 CURSOR CUR_PAYMENT IS
22 SELECT
23 DISTINCT
24 NAME
25 FROM
26 RA_TERMS
27 WHERE TERM_ID = TERMS_ID;
28 BEGIN
29 OPEN CUR_PAYMENT;
30 FETCH CUR_PAYMENT
31 INTO L_PAYMENT_TERMS;
32 CLOSE CUR_PAYMENT;
33 RETURN (L_PAYMENT_TERMS);
34 END CF_PAYMENT_TERMSFORMULA;
35
36 FUNCTION BEFOREREPORT RETURN BOOLEAN IS
37 BEGIN
38 BEGIN
39 P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
40 /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
41 EXCEPTION
42 WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
43 /*SRW.MESSAGE(1000
44 ,'Failed in BEFORE REPORT trigger')*/NULL;
45 RETURN (FALSE);
46 END;
47 DECLARE
48 L_COMPANY_NAME VARCHAR2(100);
49 L_FUNCTIONAL_CURRENCY VARCHAR2(15);
50 BEGIN
51 SELECT
52 SOB.NAME,
53 SOB.CURRENCY_CODE
54 INTO L_COMPANY_NAME,L_FUNCTIONAL_CURRENCY
55 FROM
56 GL_SETS_OF_BOOKS SOB,
57 FND_CURRENCIES CUR
58 WHERE SOB.SET_OF_BOOKS_ID = P_SOB_ID
59 AND SOB.CURRENCY_CODE = CUR.CURRENCY_CODE;
60 RP_COMPANY_NAME := L_COMPANY_NAME;
61 EXCEPTION
62 WHEN NO_DATA_FOUND THEN
63 NULL;
64 END;
65 DECLARE
66 L_REPORT_NAME VARCHAR2(240);
67 BEGIN
68 SELECT
69 CP.USER_CONCURRENT_PROGRAM_NAME
70 INTO L_REPORT_NAME
71 FROM
72 FND_CONCURRENT_PROGRAMS_VL CP,
73 FND_CONCURRENT_REQUESTS CR
74 WHERE CR.REQUEST_ID = P_CONC_REQUEST_ID
75 AND CP.APPLICATION_ID = CR.PROGRAM_APPLICATION_ID
76 AND CP.CONCURRENT_PROGRAM_ID = CR.CONCURRENT_PROGRAM_ID;
77 RP_REPORT_NAME := L_REPORT_NAME;
78 EXCEPTION
79 WHEN NO_DATA_FOUND THEN
80 RP_REPORT_NAME := 'Price Lists';
81 END;
82 BEGIN
83 QP_SECURITY.SET_GRANTS(P_USER_NAME
84 ,P_RESP_ID
85 ,NULL);
86 EXCEPTION
87 WHEN OTHERS THEN
88 NULL;
89 END;
90 RETURN (TRUE);
91 END BEFOREREPORT;
92
93 FUNCTION CF_PRICE_CONTEXTFORMULA(PRICING_ATTRIBUTE_CONTEXT IN VARCHAR2
94 ,PRICING_ATTRIBUTE IN VARCHAR2) RETURN CHAR IS
95 X_ATTRIBUTE_CODE VARCHAR2(240);
96 X_SEGMENT_NAME VARCHAR2(240);
97 BEGIN
98 QP_UTIL.GET_ATTRIBUTE_CODE('QP_ATTR_DEFNS_PRICING'
99 ,PRICING_ATTRIBUTE_CONTEXT
100 ,PRICING_ATTRIBUTE
101 ,X_ATTRIBUTE_CODE
102 ,X_SEGMENT_NAME);
103 RETURN (X_ATTRIBUTE_CODE);
104 END CF_PRICE_CONTEXTFORMULA;
105
106 FUNCTION CF_PRICE_CONTEXT1FORMULA(PRICING_ATTRIBUTE_CONTEXT1 IN VARCHAR2
107 ,PRICING_ATTRIBUTE1 IN VARCHAR2) RETURN CHAR IS
108 X_ATTRIBUTE_CODE VARCHAR2(240);
109 X_SEGMENT_NAME VARCHAR2(240);
110 BEGIN
111 QP_UTIL.GET_ATTRIBUTE_CODE('QP_ATTR_DEFNS_PRICING'
112 ,PRICING_ATTRIBUTE_CONTEXT1
113 ,PRICING_ATTRIBUTE1
114 ,X_ATTRIBUTE_CODE
115 ,X_SEGMENT_NAME);
116 RETURN (X_ATTRIBUTE_CODE);
117 END CF_PRICE_CONTEXT1FORMULA;
118
119 FUNCTION AFTERPFORM RETURN BOOLEAN IS
120 BEGIN
121 IF P_START_DATE_ACTIVE IS NOT NULL THEN
122 P_PRICE_LIST_ACTIVE_DATE := ' and nvl(qplh.start_date_active,''' || P_START_DATE_ACTIVE || ''') >= ''' || P_START_DATE_ACTIVE || '''';
123 END IF;
124 IF P_END_DATE_ACTIVE IS NOT NULL THEN
125 P_PRICE_LIST_ACTIVE_DATE := P_PRICE_LIST_ACTIVE_DATE || ' and nvl(qplh.end_date_active,''' || P_END_DATE_ACTIVE || ''') <= ''' || P_END_DATE_ACTIVE || '''';
126 END IF;
127 IF P_ACTIVE_FLAG in ('Y','N') THEN
128 P_PRICE_LIST_ACTIVE_FLAG := ' and qplh.active_flag = ''' || P_ACTIVE_FLAG || '''';
132 P_PRICE_LIST_NAME := 'AND qplh.name BETWEEN :p_from_price_list AND :p_to_price_list';
129 END IF;
130 IF P_FROM_PRICE_LIST IS NOT NULL THEN
131 IF P_TO_PRICE_LIST IS NOT NULL THEN
133 ELSE
134 P_PRICE_LIST_NAME := 'AND qplh.name >=:p_from_price_list';
135 END IF;
136 END IF;
137 IF (P_FROM_PRICE_LIST IS NULL AND P_TO_PRICE_LIST IS NOT NULL) THEN
138 P_PRICE_LIST_NAME := 'AND qplh.name <=:p_to_price_list';
139 END IF;
140 IF (P_TO_CURRENCY_CODE IS NOT NULL) THEN
141 P_TO_CURRENCY := 'where to_currency_code = :p_to_currency_code';
142 ELSE
143 P_TO_CURRENCY := ' where to_currency_code = ''XXXYYYZZZZ''';
144 END IF;
145 RETURN (TRUE);
146 END AFTERPFORM;
147
148 FUNCTION CF_QUALIFIER_ATTR_VALUEFORMULA(QUALIFIER_CONTEXT IN VARCHAR2
149 ,QUALIFIER_ATTRIBUTE IN VARCHAR2
150 ,QUALIFIER_ATTR_VALUE IN VARCHAR2
151 ,COMPARISION_OPERATOR_CODE IN VARCHAR2) RETURN CHAR IS
152 L_QUALIFIER_ATTR_VALUE VARCHAR2(240);
153 BEGIN
154 L_QUALIFIER_ATTR_VALUE := QP_UTIL.GET_ATTRIBUTE_VALUE(P_FLEXFIELD_NAME => 'QP_ATTR_DEFNS_QUALIFIER'
155 ,P_CONTEXT_NAME => QUALIFIER_CONTEXT
156 ,P_SEGMENT_NAME => QUALIFIER_ATTRIBUTE
157 ,P_ATTR_VALUE => QUALIFIER_ATTR_VALUE
158 ,P_COMPARISON_OPERATOR_CODE => COMPARISION_OPERATOR_CODE);
159 IF (QUALIFIER_CONTEXT = 'ORDER' AND QUALIFIER_ATTRIBUTE = 'QUALIFIER_ATTRIBUTE5') THEN
160 BEGIN
161 SELECT
162 ORDER_NUMBER
163 INTO L_QUALIFIER_ATTR_VALUE
164 FROM
165 OE_BLANKET_HEADERS_ALL
166 WHERE HEADER_ID = QUALIFIER_ATTR_VALUE;
167 EXCEPTION
168 WHEN OTHERS THEN
169 NULL;
170 END;
171 ELSIF (QUALIFIER_CONTEXT = 'ORDER' AND QUALIFIER_ATTRIBUTE = 'QUALIFIER_ATTRIBUTE6') THEN
172 BEGIN
173 SELECT
174 H.ORDER_NUMBER || '-' || L.LINE_NUMBER
175 INTO L_QUALIFIER_ATTR_VALUE
176 FROM
177 OE_BLANKET_HEADERS_ALL H,
178 OE_BLANKET_LINES_ALL L
179 WHERE L.LINE_ID = QUALIFIER_ATTR_VALUE
180 AND H.HEADER_ID = L.HEADER_ID;
181 EXCEPTION
182 WHEN OTHERS THEN
183 NULL;
184 END;
185 END IF;
186 RETURN L_QUALIFIER_ATTR_VALUE;
187 END CF_QUALIFIER_ATTR_VALUEFORMULA;
188
189 FUNCTION GET_ATTRIBUTE_VALUE(P_FLEXFIELD_NAME IN VARCHAR2
190 ,P_CONTEXT_NAME IN VARCHAR2
191 ,P_SEGMENT_NAME IN VARCHAR2
192 ,P_ATTR_VALUE IN VARCHAR2
193 ,P_COMPARISON_OPERATOR_CODE IN VARCHAR2 := NULL) RETURN VARCHAR2 IS
194 VSET FND_VSET.VALUESET_R;
195 FMT FND_VSET.VALUESET_DR;
196 FOUND BOOLEAN;
197 ROW NUMBER;
198 VALUE FND_VSET.VALUE_DR;
199 X_FORMAT_TYPE VARCHAR2(1);
200 X_VALIDATION_TYPE VARCHAR2(1);
201 X_VSID NUMBER;
202 X_ATTR_VALUE_CODE VARCHAR2(240);
203 L_ATTR_VALUE VARCHAR2(2000);
204 VALUE_VALID_IN_VALUESET BOOLEAN := FALSE;
205 L_ID VARCHAR2(240);
206 L_VALUE VARCHAR2(240);
207 BEGIN
208 /*SRW.MESSAGE(1
209 ,' In get_attr ')*/NULL;
210 QP_UTIL.GET_VALUESET_ID_R(P_FLEXFIELD_NAME
211 ,P_CONTEXT_NAME
212 ,P_SEGMENT_NAME
213 ,X_VSID
214 ,X_FORMAT_TYPE
215 ,X_VALIDATION_TYPE);
216 /*SRW.MESSAGE(1
217 ,' vali ' || X_VALIDATION_TYPE)*/NULL;
218 L_ATTR_VALUE := GET_NUM_DATE_FROM_CANONICAL(X_FORMAT_TYPE
219 ,P_ATTR_VALUE);
220 /*SRW.MESSAGE(1
221 ,'attr value ' || L_ATTR_VALUE)*/NULL;
222 IF P_COMPARISON_OPERATOR_CODE <> 'BETWEEN' THEN
223 IF X_VALIDATION_TYPE in ('F','I') AND X_VSID IS NOT NULL THEN
224 IF X_VALIDATION_TYPE = 'I' THEN
225 FND_VSET.GET_VALUESET(X_VSID
226 ,VSET
227 ,FMT);
228 FND_VSET.GET_VALUE_INIT(VSET
229 ,TRUE);
230 FND_VSET.GET_VALUE(VSET
231 ,ROW
232 ,FOUND
233 ,VALUE);
234 IF FMT.HAS_ID THEN
235 WHILE (FOUND) LOOP
236
237 IF L_ATTR_VALUE = VALUE.ID THEN
238 X_ATTR_VALUE_CODE := VALUE.VALUE;
239 VALUE_VALID_IN_VALUESET := TRUE;
240 EXIT;
241 END IF;
242 FND_VSET.GET_VALUE(VSET
243 ,ROW
244 ,FOUND
245 ,VALUE);
246 END LOOP;
247 ELSE
248 WHILE (FOUND) LOOP
249
250 IF L_ATTR_VALUE = VALUE.VALUE THEN
251 X_ATTR_VALUE_CODE := L_ATTR_VALUE;
252 VALUE_VALID_IN_VALUESET := TRUE;
253 EXIT;
254 END IF;
255 FND_VSET.GET_VALUE(VSET
256 ,ROW
257 ,FOUND
258 ,VALUE);
259 END LOOP;
260 END IF;
261 FND_VSET.GET_VALUE_END(VSET);
265 ,FMT);
262 ELSIF X_VALIDATION_TYPE = 'F' THEN
263 FND_VSET.GET_VALUESET(X_VSID
264 ,VSET
266 IF (QP_UTIL.VALUE_EXISTS_IN_TABLE(VSET.TABLE_INFO
267 ,L_ATTR_VALUE
268 ,L_ID
269 ,L_VALUE)) THEN
270 IF FMT.HAS_ID THEN
271 IF L_ATTR_VALUE = L_ID THEN
272 X_ATTR_VALUE_CODE := L_VALUE;
273 VALUE_VALID_IN_VALUESET := TRUE;
274 END IF;
275 ELSE
276 IF L_ATTR_VALUE = L_VALUE THEN
277 X_ATTR_VALUE_CODE := L_ATTR_VALUE;
278 VALUE_VALID_IN_VALUESET := TRUE;
279 END IF;
280 END IF;
281 ELSE
282 VALUE_VALID_IN_VALUESET := FALSE;
283 END IF;
284 END IF;
285 ELSE
286 X_ATTR_VALUE_CODE := L_ATTR_VALUE;
287 END IF;
288 ELSE
289 X_ATTR_VALUE_CODE := L_ATTR_VALUE;
290 END IF;
291 RETURN X_ATTR_VALUE_CODE;
292 END GET_ATTRIBUTE_VALUE;
293
294 FUNCTION GET_NUM_DATE_FROM_CANONICAL(P_DATATYPE IN VARCHAR2
295 ,P_VALUE IN VARCHAR2) RETURN VARCHAR2 IS
296 L_VARCHAR_OUT VARCHAR2(2000);
297 INVALID_DATA_TYPE EXCEPTION;
298 BEGIN
299 IF P_DATATYPE = 'N' THEN
300 L_VARCHAR_OUT := TO_CHAR(FND_NUMBER.CANONICAL_TO_NUMBER(P_VALUE));
301 ELSIF P_DATATYPE = 'X' THEN
302 L_VARCHAR_OUT := FND_DATE.CANONICAL_TO_DATE(P_VALUE);
303 ELSIF P_DATATYPE = 'Y' THEN
304 L_VARCHAR_OUT := FND_DATE.CANONICAL_TO_DATE(P_VALUE);
305 ELSIF P_DATATYPE = 'C' THEN
306 L_VARCHAR_OUT := P_VALUE;
307 ELSE
308 L_VARCHAR_OUT := P_VALUE;
309 END IF;
310 RETURN L_VARCHAR_OUT;
311 EXCEPTION
312 WHEN OTHERS THEN
313 L_VARCHAR_OUT := P_VALUE;
314 END GET_NUM_DATE_FROM_CANONICAL;
315
316 PROCEDURE GET_VALUESET_ID(P_FLEXFIELD_NAME IN VARCHAR2
317 ,P_CONTEXT IN VARCHAR2
318 ,P_SEG IN VARCHAR2
319 ,X_VSID OUT NOCOPY NUMBER
320 ,X_FORMAT_TYPE OUT NOCOPY VARCHAR2
321 ,X_VALIDATION_TYPE OUT NOCOPY VARCHAR2) IS
322 TEST_REC FND_VSET.VALUESET_R;
323 X_VALUESETID NUMBER;
324 TEST_FREC FND_VSET.VALUESET_DR;
325 CURSOR CUR_GET_APPLICATION_ID(APP_SHORT_NAME IN VARCHAR2) IS
326 SELECT
327 APPLICATION_ID
328 FROM
329 FND_APPLICATION
330 WHERE APPLICATION_SHORT_NAME = APP_SHORT_NAME;
331 V_DFLEX_R FND_DFLEX.DFLEX_R;
332 V_SEGMENTS_DR FND_DFLEX.SEGMENTS_DR;
333 V_CONTEXT_R FND_DFLEX.CONTEXT_R;
334 BEGIN
335 OPEN CUR_GET_APPLICATION_ID('QP');
336 FETCH CUR_GET_APPLICATION_ID
337 INTO V_DFLEX_R.APPLICATION_ID;
338 CLOSE CUR_GET_APPLICATION_ID;
339 /*SRW.MESSAGE(1
340 ,'Application id ')*/NULL;
341 V_DFLEX_R.FLEXFIELD_NAME := P_FLEXFIELD_NAME;
342 V_CONTEXT_R.FLEXFIELD := V_DFLEX_R;
343 V_CONTEXT_R.CONTEXT_CODE := P_CONTEXT;
344 FND_DFLEX.GET_SEGMENTS(V_CONTEXT_R
345 ,V_SEGMENTS_DR
346 ,TRUE);
347 /*SRW.MESSAGE(1
348 ,'p_seg is ' || P_SEG)*/NULL;
349 FOR i IN 1 .. V_SEGMENTS_DR.NSEGMENTS LOOP
350 IF (V_SEGMENTS_DR.APPLICATION_COLUMN_NAME(I) = P_SEG) THEN
351 X_VALUESETID := V_SEGMENTS_DR.VALUE_SET(I);
352 EXIT;
353 END IF;
354 END LOOP;
355 /*SRW.MESSAGE(1
356 ,'the app ' || X_VALUESETID)*/NULL;
357 IF X_VALUESETID IS NOT NULL THEN
358 FND_VSET.GET_VALUESET(X_VALUESETID
359 ,TEST_REC
360 ,TEST_FREC);
361 /*SRW.MESSAGE(1
362 ,'val type ')*/NULL;
363 X_VSID := X_VALUESETID;
364 X_FORMAT_TYPE := TEST_FREC.FORMAT_TYPE;
365 X_VALIDATION_TYPE := TEST_REC.VALIDATION_TYPE;
366 ELSE
367 X_VSID := NULL;
368 X_FORMAT_TYPE := 'C';
369 X_VALIDATION_TYPE := NULL;
370 END IF;
371 /*SRW.MESSAGE(1
372 ,'End..')*/NULL;
373 END GET_VALUESET_ID;
374
375 FUNCTION CF_QUALIFIER_CONTEXTFORMULA(QUALIFIER_CONTEXT IN VARCHAR2
376 ,QUALIFIER_ATTRIBUTE IN VARCHAR2) RETURN CHAR IS
377 X_ATTRIBUTE_CODE VARCHAR2(240);
378 X_SEGMENT_NAME VARCHAR2(240);
379 BEGIN
380 QP_UTIL.GET_ATTRIBUTE_CODE('QP_ATTR_DEFNS_QUALIFIER'
381 ,QUALIFIER_CONTEXT
382 ,QUALIFIER_ATTRIBUTE
383 ,X_ATTRIBUTE_CODE
384 ,X_SEGMENT_NAME);
385 RETURN (X_ATTRIBUTE_CODE);
386 END CF_QUALIFIER_CONTEXTFORMULA;
387
388 FUNCTION CF_PRODUCT_ATTRIBUTEFORMULA(PRODUCT_ATTRIBUTE_CONTEXT1 IN VARCHAR2
389 ,PRODUCT_ATTRIBUTE1 IN VARCHAR2) RETURN VARCHAR2 IS
390 X_ATTRIBUTE_CODE VARCHAR2(240);
391 X_SEGMENT_NAME VARCHAR2(240);
392 BEGIN
393 QP_UTIL.GET_ATTRIBUTE_CODE('QP_ATTR_DEFNS_PRICING'
394 ,PRODUCT_ATTRIBUTE_CONTEXT1
395 ,PRODUCT_ATTRIBUTE1
396 ,X_ATTRIBUTE_CODE
397 ,X_SEGMENT_NAME);
398 RETURN (X_ATTRIBUTE_CODE);
399 END CF_PRODUCT_ATTRIBUTEFORMULA;
400
404 SELECT
401 FUNCTION CF_BASE_MARKUP_FORMULAFORMULA(BASE_MARKUP_FORMULA_ID IN NUMBER) RETURN CHAR IS
402 L_FORMULA_NAME VARCHAR2(240);
403 CURSOR CUR_BASE_FORMULA IS
405 NAME
406 FROM
407 QP_PRICE_FORMULAS_VL
408 WHERE PRICE_FORMULA_ID = BASE_MARKUP_FORMULA_ID;
409 BEGIN
410 OPEN CUR_BASE_FORMULA;
411 FETCH CUR_BASE_FORMULA
412 INTO L_FORMULA_NAME;
413 CLOSE CUR_BASE_FORMULA;
414 RETURN (L_FORMULA_NAME);
415 END CF_BASE_MARKUP_FORMULAFORMULA;
416
417 FUNCTION CF_PRICE_FORMULAFORMULA(PRICE_FORMULA_ID IN NUMBER) RETURN CHAR IS
418 L_FORMULA_NAME VARCHAR2(240);
419 CURSOR CUR_BASE_FORMULA IS
420 SELECT
421 NAME
422 FROM
423 QP_PRICE_FORMULAS_VL
424 WHERE PRICE_FORMULA_ID = CF_PRICE_FORMULAFORMULA.PRICE_FORMULA_ID;
425 BEGIN
426 OPEN CUR_BASE_FORMULA;
427 FETCH CUR_BASE_FORMULA
428 INTO L_FORMULA_NAME;
429 CLOSE CUR_BASE_FORMULA;
430 RETURN (L_FORMULA_NAME);
431 END CF_PRICE_FORMULAFORMULA;
432
433 FUNCTION CF_MARKUP_FORMULAFORMULA(MARKUP_FORMULA_ID IN NUMBER) RETURN CHAR IS
434 L_FORMULA_NAME VARCHAR2(240);
435 CURSOR CUR_BASE_FORMULA IS
436 SELECT
437 NAME
438 FROM
439 QP_PRICE_FORMULAS_VL
440 WHERE PRICE_FORMULA_ID = MARKUP_FORMULA_ID;
441 BEGIN
442 OPEN CUR_BASE_FORMULA;
443 FETCH CUR_BASE_FORMULA
444 INTO L_FORMULA_NAME;
445 CLOSE CUR_BASE_FORMULA;
446 RETURN (L_FORMULA_NAME);
447 END CF_MARKUP_FORMULAFORMULA;
448
449 FUNCTION CF_ATTRIBUTE_CONTEXTFORMULA(CURR_ATTRIBUTE_TYPE IN VARCHAR2
450 ,CURR_ATTRIBUTE_CONTEXT IN VARCHAR2) RETURN CHAR IS
451 X_CONTEXT VARCHAR2(80);
452 BEGIN
453 IF CURR_ATTRIBUTE_TYPE = 'QUALIFIER' THEN
454 X_CONTEXT := QP_UTIL.GET_CONTEXT('QP_ATTR_DEFNS_QUALIFIER'
455 ,CURR_ATTRIBUTE_CONTEXT);
456 ELSIF CURR_ATTRIBUTE_TYPE in ('PRICING','PRODUCT') THEN
457 X_CONTEXT := QP_UTIL.GET_CONTEXT('QP_ATTR_DEFNS_PRICING'
458 ,CURR_ATTRIBUTE_CONTEXT);
459 END IF;
460 RETURN (X_CONTEXT);
461 END CF_ATTRIBUTE_CONTEXTFORMULA;
462
463 FUNCTION CF_ATTRIBUTEFORMULA(CURR_ATTRIBUTE_TYPE IN VARCHAR2
464 ,CURR_ATTRIBUTE_CONTEXT IN VARCHAR2
465 ,CURR_ATTRIBUTE IN VARCHAR2) RETURN CHAR IS
466 X_ATTRIBUTE_CODE VARCHAR2(80);
467 X_SEGMENT_NAME VARCHAR2(80);
468 BEGIN
469 IF CURR_ATTRIBUTE_TYPE = 'QUALIFIER' THEN
470 QP_UTIL.GET_ATTRIBUTE_CODE('QP_ATTR_DEFNS_QUALIFIER'
471 ,CURR_ATTRIBUTE_CONTEXT
472 ,CURR_ATTRIBUTE
473 ,X_ATTRIBUTE_CODE
474 ,X_SEGMENT_NAME);
475 ELSIF CURR_ATTRIBUTE_TYPE in ('PRICING','PRODUCT') THEN
476 QP_UTIL.GET_ATTRIBUTE_CODE('QP_ATTR_DEFNS_PRICING'
477 ,CURR_ATTRIBUTE_CONTEXT
478 ,CURR_ATTRIBUTE
479 ,X_ATTRIBUTE_CODE
480 ,X_SEGMENT_NAME);
481 END IF;
482 RETURN (X_ATTRIBUTE_CODE);
483 END CF_ATTRIBUTEFORMULA;
484
485 FUNCTION CF_ATTRIBUTE_VALUEFORMULA(CURR_ATTRIBUTE_TYPE IN VARCHAR2
486 ,CURR_ATTRIBUTE_CONTEXT IN VARCHAR2
487 ,CURR_ATTRIBUTE IN VARCHAR2
488 ,CURR_ATTRIBUTE_VALUE IN VARCHAR2) RETURN CHAR IS
489 L_ATTR_VALUE VARCHAR2(240);
490 BEGIN
491 IF CURR_ATTRIBUTE_TYPE = 'QUALIFIER' THEN
492 L_ATTR_VALUE := QP_UTIL.GET_ATTRIBUTE_VALUE(P_FLEXFIELD_NAME => 'QP_ATTR_DEFNS_QUALIFIER'
493 ,P_CONTEXT_NAME => CURR_ATTRIBUTE_CONTEXT
494 ,P_SEGMENT_NAME => CURR_ATTRIBUTE
495 ,P_ATTR_VALUE => CURR_ATTRIBUTE_VALUE
496 ,P_COMPARISON_OPERATOR_CODE => '=');
497 ELSIF CURR_ATTRIBUTE_TYPE in ('PRODUCT','PRICING') THEN
498 IF CURR_ATTRIBUTE_CONTEXT = 'ITEM' THEN
499 L_ATTR_VALUE := QP_PRICE_LIST_LINE_UTIL.GET_PRODUCT_VALUE(P_FLEXFIELD_NAME => 'QP_ATTR_DEFNS_PRICING'
500 ,P_CONTEXT_NAME => CURR_ATTRIBUTE_CONTEXT
501 ,P_ATTRIBUTE_NAME => CURR_ATTRIBUTE
502 ,P_ATTR_VALUE => CURR_ATTRIBUTE_VALUE);
503 ELSE
504 L_ATTR_VALUE := QP_UTIL.GET_ATTRIBUTE_VALUE(P_FLEXFIELD_NAME => 'QP_ATTR_DEFNS_PRICING'
505 ,P_CONTEXT_NAME => CURR_ATTRIBUTE_CONTEXT
506 ,P_SEGMENT_NAME => CURR_ATTRIBUTE
507 ,P_ATTR_VALUE => CURR_ATTRIBUTE_VALUE
508 ,P_COMPARISON_OPERATOR_CODE => '=');
509 END IF;
510 END IF;
511 RETURN L_ATTR_VALUE;
512 END CF_ATTRIBUTE_VALUEFORMULA;
513
514 FUNCTION CF_PRODUCT_ATTR_VAL_DISPFORMUL(PRODUCT_ATTRIBUTE_CONTEXT1 IN VARCHAR2
515 ,PRODUCT_ATTRIBUTE1 IN VARCHAR2
516 ,PRODUCT_ATTR_VALUE IN VARCHAR2
517 ,PRODUCT_ATTR_VAL_DISP IN VARCHAR2) RETURN CHAR IS
518 BEGIN
519 DECLARE
520 V_ITEM_NAME VARCHAR2(240);
521 BEGIN
525 INTO V_ITEM_NAME
522 IF (PRODUCT_ATTRIBUTE_CONTEXT1 = 'ITEM' AND PRODUCT_ATTRIBUTE1 = 'PRICING_ATTRIBUTE1') THEN
523 SELECT
524 CONCATENATED_SEGMENTS
526 FROM
527 MTL_SYSTEM_ITEMS_VL
528 WHERE INVENTORY_ITEM_ID = TO_NUMBER(PRODUCT_ATTR_VALUE)
529 AND ORGANIZATION_ID = P_ITEM_ORGANIZATION;
530 RETURN V_ITEM_NAME;
531 ELSE
532 RETURN PRODUCT_ATTR_VAL_DISP;
533 END IF;
534 END;
535 END CF_PRODUCT_ATTR_VAL_DISPFORMUL;
536
537 FUNCTION CF_QUAL_ATTR_VALUE_TOFORMULA(QUALIFIER_CONTEXT IN VARCHAR2
538 ,QUALIFIER_ATTRIBUTE IN VARCHAR2
539 ,QUALIFIER_ATTR_VALUE_TO IN VARCHAR2
540 ,COMPARISION_OPERATOR_CODE IN VARCHAR2) RETURN CHAR IS
541 L_QUALIFIER_ATTR_VALUE_TO VARCHAR2(240);
542 BEGIN
543 L_QUALIFIER_ATTR_VALUE_TO := QP_UTIL.GET_ATTRIBUTE_VALUE(P_FLEXFIELD_NAME => 'QP_ATTR_DEFNS_QUALIFIER'
544 ,P_CONTEXT_NAME => QUALIFIER_CONTEXT
545 ,P_SEGMENT_NAME => QUALIFIER_ATTRIBUTE
546 ,P_ATTR_VALUE => QUALIFIER_ATTR_VALUE_TO
547 ,P_COMPARISON_OPERATOR_CODE => COMPARISION_OPERATOR_CODE);
548 IF (QUALIFIER_CONTEXT = 'ORDER' AND QUALIFIER_ATTRIBUTE = 'QUALIFIER_ATTRIBUTE5') THEN
549 BEGIN
550 SELECT
551 ORDER_NUMBER
552 INTO L_QUALIFIER_ATTR_VALUE_TO
553 FROM
554 OE_BLANKET_HEADERS_ALL
555 WHERE HEADER_ID = QUALIFIER_ATTR_VALUE_TO;
556 EXCEPTION
557 WHEN OTHERS THEN
558 NULL;
559 END;
560 ELSIF (QUALIFIER_CONTEXT = 'ORDER' AND QUALIFIER_ATTRIBUTE = 'QUALIFIER_ATTRIBUTE6') THEN
561 BEGIN
562 SELECT
563 H.ORDER_NUMBER || '-' || L.LINE_NUMBER
564 INTO L_QUALIFIER_ATTR_VALUE_TO
565 FROM
566 OE_BLANKET_HEADERS_ALL H,
567 OE_BLANKET_LINES_ALL L
568 WHERE L.LINE_ID = QUALIFIER_ATTR_VALUE_TO
569 AND H.HEADER_ID = L.HEADER_ID;
570 EXCEPTION
571 WHEN OTHERS THEN
572 NULL;
573 END;
574 END IF;
575 RETURN L_QUALIFIER_ATTR_VALUE_TO;
576 END CF_QUAL_ATTR_VALUE_TOFORMULA;
577
578 FUNCTION AFTERREPORT RETURN BOOLEAN IS
579 BEGIN
580 BEGIN
581 /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
582 EXCEPTION
583 WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
584 /*SRW.MESSAGE(1
585 ,'Failed in AFTER REPORT TRIGGER')*/NULL;
586 RETURN (FALSE);
587 END;
588 RETURN (TRUE);
589 END AFTERREPORT;
590
591 FUNCTION RP_REPORT_NAME_P RETURN VARCHAR2 IS
592 BEGIN
593 RETURN RP_REPORT_NAME;
594 END RP_REPORT_NAME_P;
595
596 FUNCTION RP_COMPANY_NAME_P RETURN VARCHAR2 IS
597 BEGIN
598 RETURN RP_COMPANY_NAME;
599 END RP_COMPANY_NAME_P;
600
601 END QP_QPXPRCST_XMLP_PKG;