DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_OKSSCOFM_XMLP_PKG

Source


1 PACKAGE BODY OKS_OKSSCOFM_XMLP_PKG AS
2 /* $Header: OKSSCOFMB.pls 120.2 2008/02/21 06:12:33 dwkrishn noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4    apf boolean;
5   BEGIN
6     apf := afterpform;
7     IF P_OPERATING_UNIT IS NOT NULL THEN
8       MO_GLOBAL.SET_POLICY_CONTEXT('S'
9                                   ,P_OPERATING_UNIT);
10     END IF;
11     P_FORECAST_ST_PERIOD_V := to_char(P_FORECAST_ST_PERIOD,'DD-MON-YY');
12     P_FORECAST_END_PERIOD_V := TO_CHAR(P_FORECAST_END_PERIOD,'DD-MON-YY');
13     RETURN (TRUE);
14   END BEFOREREPORT;
15   FUNCTION CF_FORECAST_REVFORMULA(CF_CONTRACT_VALUE IN NUMBER
16                                  ,FORECAST_PER IN NUMBER
17                                  ,CF_REV_REC IN NUMBER) RETURN NUMBER IS
18     RET_VALUE1 NUMBER;
19     RET_VALUE2 NUMBER;
20   BEGIN
21     IF (CF_CONTRACT_VALUE = 0) THEN
22       RETURN (0);
23     ELSE
24       RET_VALUE1 := ((FORECAST_PER / 100) * CF_REV_REC);
25       RET_VALUE2 := RET_VALUE1;
26       RETURN (NVL(RET_VALUE2
27                 ,0));
28     END IF;
29   END CF_FORECAST_REVFORMULA;
30   FUNCTION CF_SALESREP_NAMEFORMULA(SR_SALESREP_ID IN VARCHAR2
31                                   ,ORG_ID IN NUMBER) RETURN CHAR IS
32     P_SALESREP_NAME JTF_RS_SALESREPS.NAME%TYPE;
33   BEGIN
34     SELECT
35       NAME
36     INTO P_SALESREP_NAME
37     FROM
38       JTF_RS_SALESREPS
39     WHERE SALESREP_ID = SR_SALESREP_ID
40       AND ORG_ID = CF_SALESREP_NAMEFORMULA.ORG_ID
41       AND ROWNUM < 2;
42     RETURN (P_SALESREP_NAME);
43   END CF_SALESREP_NAMEFORMULA;
44   FUNCTION CF_PARTY_NAMEFORMULA(HZ_PARTY_ID IN VARCHAR2) RETURN CHAR IS
45     P_PARTY_NAME HZ_PARTIES.PARTY_NAME%TYPE;
46   BEGIN
47     SELECT
48       PARTY_NAME
49     INTO P_PARTY_NAME
50     FROM
51       HZ_PARTIES
52     WHERE PARTY_ID = HZ_PARTY_ID
53       AND ROWNUM = 1;
54     RETURN (P_PARTY_NAME);
55   END CF_PARTY_NAMEFORMULA;
56   FUNCTION CF_CONTRACT_VALUEFORMULA(CONTRACT_ID IN NUMBER) RETURN NUMBER IS
57     CURSOR L_CONTRACT_CSR IS
58       SELECT
59         NVL(SUM(PRICE_NEGOTIATED)
60            ,0)
61       FROM
62         OKC_K_LINES_B
63       WHERE DNZ_CHR_ID = CONTRACT_ID
64         AND LSE_ID in ( 25 , 7 , 9 , 10 , 8 , 35 , 11 )
65         AND DATE_CANCELLED is NULL
66         AND PRICE_NEGOTIATED between 0
67         AND 90999999
68       HAVING NVL(SUM(PRICE_NEGOTIATED)
69          ,0) >= NVL(P_MINIMUM_CONTRACT_VALUE
70          ,NVL(SUM(PRICE_NEGOTIATED)
71             ,0))
72         AND NVL(SUM(PRICE_NEGOTIATED)
73          ,0) <= NVL(P_MAXIMUM_CONTRACT_VALUE
74          ,NVL(SUM(PRICE_NEGOTIATED)
75             ,0));
76     L_AMT NUMBER := 0;
77   BEGIN
78     OPEN L_CONTRACT_CSR;
79     FETCH L_CONTRACT_CSR
80      INTO L_AMT;
81     CLOSE L_CONTRACT_CSR;
82     RETURN NVL(L_AMT
83               ,0);
84   EXCEPTION
85     WHEN OTHERS THEN
86       RETURN 0;
87   END CF_CONTRACT_VALUEFORMULA;
88   FUNCTION CF_CONTRACT_FORECASTFORMULA(CF_CONTRACT_VALUE IN NUMBER
89                                       ,FORECAST_PER IN NUMBER) RETURN NUMBER IS
90   BEGIN
91     IF (CF_CONTRACT_VALUE = 0) THEN
92       RETURN (0);
93     ELSE
94       RETURN (NVL((CF_CONTRACT_VALUE * FORECAST_PER / 100)
95                 ,0));
96     END IF;
97   END CF_CONTRACT_FORECASTFORMULA;
98   FUNCTION CF_REV_RECFORMULA(CONTRACT_ID IN NUMBER
99                             ,CF_CONTRACT_VALUE IN NUMBER) RETURN NUMBER IS
100     CURSOR L_FORECAST_CSR IS
101       SELECT
102         NVL(SUM((KL.PRICE_NEGOTIATED / CEIL(DECODE(SIGN(END_DATE - START_DATE)
103                            ,0
104                            ,1
105                            ,(MONTHS_BETWEEN(KL.END_DATE
106                                          ,KL.START_DATE))))) * CEIL(DECODE(SIGN(P_REGZ_DATE - KL.START_DATE)
107                            ,0
108                            ,1
109                            ,MONTHS_BETWEEN(P_REGZ_DATE
110                                          ,KL.START_DATE))))
111            ,0)
112       FROM
113         OKC_K_LINES_B KL
114       WHERE KL.DNZ_CHR_ID = CONTRACT_ID
115         AND KL.LSE_ID in ( 25 , 7 , 9 , 10 , 8 , 35 , 11 )
116         AND KL.PRICE_NEGOTIATED between 0
117         AND 90999999
118         AND KL.START_DATE <= P_REGZ_DATE
119       HAVING NVL(SUM(PRICE_NEGOTIATED)
120          ,0) >= NVL(P_MINIMUM_CONTRACT_VALUE
121          ,NVL(SUM(PRICE_NEGOTIATED)
122             ,0))
123         AND NVL(SUM(PRICE_NEGOTIATED)
124          ,0) <= NVL(P_MAXIMUM_CONTRACT_VALUE
125          ,NVL(SUM(PRICE_NEGOTIATED)
126             ,0));
127     L_AMT NUMBER := 0;
128   BEGIN
129     IF (CF_CONTRACT_VALUE = 0) THEN
130       RETURN (0);
131     ELSE
132       OPEN L_FORECAST_CSR;
133       FETCH L_FORECAST_CSR
134        INTO L_AMT;
135       CLOSE L_FORECAST_CSR;
136       RETURN NVL(L_AMT
137                 ,0);
138     END IF;
139   EXCEPTION
140     WHEN OTHERS THEN
141       RETURN 0;
142   END CF_REV_RECFORMULA;
143   FUNCTION AFTERPFORM RETURN BOOLEAN IS
144     CURSOR C1(CN_SALESREPID IN NUMBER,CN_ORGID IN NUMBER) IS
145       SELECT
146         NAME
147       FROM
148         JTF_RS_SALESREPS
149       WHERE SALESREP_ID = CN_SALESREPID;
150     CURSOR C2(CN_ORG_ID IN NUMBER) IS
151       SELECT
152         NAME
153       FROM
154         HR_OPERATING_UNITS
155       WHERE ORGANIZATION_ID = CN_ORG_ID;
156     CURSOR C3(CN_CONTRACT_GROUP_ID IN NUMBER) IS
157       SELECT
158         NAME
159       FROM
160         OKC_K_GROUPS_V
161       WHERE ID = CN_CONTRACT_GROUP_ID;
162   BEGIN
163     BEGIN
164       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
165       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
166     EXCEPTION
167       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
168         /*SRW.MESSAGE(1
169                    ,'srw_init')*/NULL;
170     END;
171     P_WHERE_CLAUSE := ' ';
172     IF (P_OPERATING_UNIT IS NOT NULL) THEN
173       P_ORG_NAME := NULL;
174       OPEN C2(P_OPERATING_UNIT);
175       FETCH C2
176        INTO P_ORG_NAME;
177       CLOSE C2;
178     END IF;
179     IF (P_SALESREP IS NOT NULL) THEN
180       P_WHERE_CLAUSE := P_WHERE_CLAUSE || '  and ct.object1_id1 = :p_salesrep';
181       P_SALESREP_NAME := NULL;
182       OPEN C1(P_SALESREP,P_OPERATING_UNIT);
183       FETCH C1
184        INTO P_SALESREP_NAME;
185       CLOSE C1;
186     END IF;
187     IF (P_CURRENCY_CODE IS NOT NULL) THEN
188       P_WHERE_CLAUSE := P_WHERE_CLAUSE || '  and  kh.currency_code = :p_currency_code';
189     END IF;
190     IF (P_FORECAST_ST_PERIOD IS NOT NULL) THEN
191       P_WHERE_CLAUSE := P_WHERE_CLAUSE || ' and KR.EST_REV_DATE >= :P_ForeCast_St_Period ';
192     END IF;
193     IF (P_FORECAST_END_PERIOD IS NOT NULL) THEN
194       P_WHERE_CLAUSE := P_WHERE_CLAUSE || ' and KR.EST_REV_DATE <= :P_ForeCast_End_Period ';
195     END IF;
196     IF P_STATUS_CODE IS NOT NULL THEN
197       P_WHERE_CLAUSE := P_WHERE_CLAUSE || ' and kh.sts_code = :p_status_code ';
198     END IF;
199     IF P_CONTRACT_GROUP IS NOT NULL THEN
200       P_CONTRACT_GROUP_WHERE := ' and kh.id in ( select INCLUDED_CHR_ID from okc_k_grpings
201                                                                                     start with CGP_PARENT_ID =  :p_contract_group
202                                                                                     connect by CGP_PARENT_ID = PRIOR INCLUDED_CGP_ID ) ';
203       P_CONTRACT_GROUP_NAME := NULL;
204       OPEN C3(P_CONTRACT_GROUP);
205       FETCH C3
206        INTO P_CONTRACT_GROUP_NAME;
207       CLOSE C3;
208     END IF;
209     RETURN (TRUE);
210   END AFTERPFORM;
211   FUNCTION AFTERREPORT RETURN BOOLEAN IS
212   BEGIN
213     BEGIN
214       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
215     EXCEPTION
216       WHEN /*SRW.USER_EXIT_FAILURE*/OTHERS THEN
217         /*SRW.MESSAGE(1
218                    ,'srw_exit')*/NULL;
219     END;
220     RETURN (TRUE);
221   END AFTERREPORT;
222 END OKS_OKSSCOFM_XMLP_PKG;
223