DBA Data[Home] [Help]

PACKAGE BODY: APPS.CE_CEFPURGE_XMLP_PKG

Source


1 PACKAGE BODY CE_CEFPURGE_XMLP_PKG AS
2 /* $Header: CEFPURGEB.pls 120.1 2008/01/07 21:22:17 abraghun noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   BEGIN
5     BEGIN
6       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
7       IF (P_SQL_TRACE = 'Y') THEN
8         EXECUTE IMMEDIATE
9           'alter session set sql_trace=true';
10       END IF;
11       IF (P_FORECAST_HEADER_ID IS NOT NULL) THEN
12         SELECT
13           NAME
14         INTO
15           C_TEMP_NAME
16         FROM
17           CE_FORECAST_HEADERS
18         WHERE FORECAST_HEADER_ID = P_FORECAST_HEADER_ID;
19       END IF;
20       IF (P_FORECAST_BY = 'D') THEN
21         C_PURGE_OPTION := 'Purge Forecasts by Days';
22       ELSIF (P_FORECAST_BY = 'A') THEN
23         C_PURGE_OPTION := 'Purge Forecasts by GL Periods';
24       ELSE
25         C_PURGE_OPTION := 'Purge All';
26       END IF;
27       P_FORECAST_START_DATE_1 := to_char(TO_DATE(P_FORECAST_START_DATE
28                                             ,'YYYY/MM/DD HH24:MI:SS'),'DD-MON-YY');
29       P_FORECAST_END_DATE_1 := to_char(TO_DATE(P_FORECAST_END_DATE
30                                           ,'YYYY/MM/DD HH24:MI:SS'),'DD-MON-YY');
31       IF (P_FORECAST_BY in ('D','B')) THEN
32         SELECT
33           count(*)
34         INTO
35           C_COUNT
36         FROM
37           CE_FORECASTS
38         WHERE FORECAST_HEADER_ID = NVL(P_FORECAST_HEADER_ID
39            ,FORECAST_HEADER_ID)
40           AND START_DATE is not null
41           AND TRUNC(START_DATE) >= NVL(P_FORECAST_START_DATE_1
42            ,TRUNC(START_DATE))
43           AND TRUNC(START_DATE) <= NVL(P_FORECAST_END_DATE_1
44            ,TRUNC(START_DATE));
45       END IF;
46       IF (P_FORECAST_BY in ('A','B')) THEN
47         SELECT
48           count(*) + NVL(C_COUNT
49              ,0)
50         INTO
51           C_COUNT
52         FROM
53           CE_FORECASTS CF
54         WHERE CF.FORECAST_HEADER_ID = NVL(P_FORECAST_HEADER_ID
55            ,CF.FORECAST_HEADER_ID)
56           AND START_PERIOD in (
57           SELECT
58             GLP.PERIOD_NAME
59           FROM
60             GL_PERIODS GLP
61           WHERE GLP.PERIOD_SET_NAME = CF.PERIOD_SET_NAME
62             AND TRUNC(GLP.START_DATE) >= NVL(P_FORECAST_START_DATE_1
63              ,TRUNC(GLP.START_DATE))
64             AND TRUNC(GLP.START_DATE) <= NVL(P_FORECAST_END_DATE_1
65              ,TRUNC(GLP.START_DATE)) );
66       END IF;
67       IF (P_DISPLAY_DEBUG = 'Y') THEN
68         NULL;
69       END IF;
70     END;
71     RETURN (TRUE);
72   END BEFOREREPORT;
73 
74   FUNCTION AFTERREPORT RETURN BOOLEAN IS
75   BEGIN
76     BEGIN
77       IF (P_FORECAST_BY in ('D','B')) THEN
78         DELETE FROM CE_FORECAST_CELLS
79          WHERE FORECAST_ID in (
80            SELECT
81              FORECAST_ID
82            FROM
83              CE_FORECASTS
84            WHERE FORECAST_HEADER_ID = NVL(P_FORECAST_HEADER_ID
85               ,FORECAST_HEADER_ID)
86              AND START_DATE is not null
87              AND TRUNC(START_DATE) >= NVL(P_FORECAST_START_DATE_1
88               ,TRUNC(START_DATE))
89              AND TRUNC(START_DATE) <= NVL(P_FORECAST_END_DATE_1
90               ,TRUNC(START_DATE)) );
91         DELETE FROM CE_FORECAST_TRX_CELLS
92          WHERE FORECAST_ID in (
93            SELECT
94              FORECAST_ID
95            FROM
96              CE_FORECASTS
97            WHERE FORECAST_HEADER_ID = NVL(P_FORECAST_HEADER_ID
98               ,FORECAST_HEADER_ID)
99              AND START_DATE is not null
100              AND TRUNC(START_DATE) >= NVL(P_FORECAST_START_DATE_1
101               ,TRUNC(START_DATE))
102              AND TRUNC(START_DATE) <= NVL(P_FORECAST_END_DATE_1
103               ,TRUNC(START_DATE)) );
104         DELETE FROM CE_FORECAST_OPENING_BAL
105          WHERE FORECAST_ID in (
106            SELECT
107              FORECAST_ID
108            FROM
109              CE_FORECASTS
110            WHERE FORECAST_HEADER_ID = NVL(P_FORECAST_HEADER_ID
111               ,FORECAST_HEADER_ID)
112              AND START_DATE is not null
113              AND TRUNC(START_DATE) >= NVL(P_FORECAST_START_DATE_1
114               ,TRUNC(START_DATE))
115              AND TRUNC(START_DATE) <= NVL(P_FORECAST_END_DATE_1
116               ,TRUNC(START_DATE)) );
117         DELETE FROM CE_FORECAST_ERRORS
118          WHERE FORECAST_ID in (
119            SELECT
120              FORECAST_ID
121            FROM
122              CE_FORECASTS
123            WHERE FORECAST_HEADER_ID = NVL(P_FORECAST_HEADER_ID
124               ,FORECAST_HEADER_ID)
125              AND START_DATE is not null
126              AND TRUNC(START_DATE) >= NVL(P_FORECAST_START_DATE_1
127               ,TRUNC(START_DATE))
128              AND TRUNC(START_DATE) <= NVL(P_FORECAST_END_DATE_1
129               ,TRUNC(START_DATE)) );
130         DELETE FROM CE_FORECASTS
131          WHERE FORECAST_HEADER_ID = NVL(P_FORECAST_HEADER_ID
132             ,FORECAST_HEADER_ID)
133            AND START_DATE is not null
134            AND TRUNC(START_DATE) >= NVL(P_FORECAST_START_DATE_1
135             ,TRUNC(START_DATE))
136            AND TRUNC(START_DATE) <= NVL(P_FORECAST_END_DATE_1
137             ,TRUNC(START_DATE));
138       END IF;
139       IF (P_FORECAST_BY in ('A','B')) THEN
140         DELETE FROM CE_FORECAST_CELLS
141          WHERE FORECAST_ID in (
142            SELECT
143              FORECAST_ID
144            FROM
145              CE_FORECASTS CF
146            WHERE FORECAST_HEADER_ID = NVL(P_FORECAST_HEADER_ID
147               ,FORECAST_HEADER_ID)
148              AND START_PERIOD in (
149              SELECT
150                GLP.PERIOD_NAME
151              FROM
152                GL_PERIODS GLP
153              WHERE GLP.PERIOD_SET_NAME = CF.PERIOD_SET_NAME
154                AND TRUNC(GLP.START_DATE) >= NVL(P_FORECAST_START_DATE_1
155                 ,TRUNC(GLP.START_DATE))
156                AND TRUNC(GLP.START_DATE) <= NVL(P_FORECAST_END_DATE_1
157                 ,TRUNC(GLP.START_DATE)) ) );
158         DELETE FROM CE_FORECAST_TRX_CELLS
159          WHERE FORECAST_ID in (
160            SELECT
161              FORECAST_ID
162            FROM
163              CE_FORECASTS CF
164            WHERE FORECAST_HEADER_ID = NVL(P_FORECAST_HEADER_ID
165               ,FORECAST_HEADER_ID)
166              AND START_PERIOD in (
167              SELECT
168                GLP.PERIOD_NAME
169              FROM
170                GL_PERIODS GLP
171              WHERE GLP.PERIOD_SET_NAME = CF.PERIOD_SET_NAME
172                AND TRUNC(GLP.START_DATE) >= NVL(P_FORECAST_START_DATE_1
173                 ,TRUNC(GLP.START_DATE))
174                AND TRUNC(GLP.START_DATE) <= NVL(P_FORECAST_END_DATE_1
175                 ,TRUNC(GLP.START_DATE)) ) );
176         DELETE FROM CE_FORECAST_OPENING_BAL
177          WHERE FORECAST_ID in (
178            SELECT
179              FORECAST_ID
180            FROM
181              CE_FORECASTS CF
182            WHERE FORECAST_HEADER_ID = NVL(P_FORECAST_HEADER_ID
183               ,FORECAST_HEADER_ID)
184              AND START_PERIOD in (
185              SELECT
186                GLP.PERIOD_NAME
187              FROM
188                GL_PERIODS GLP
189              WHERE GLP.PERIOD_SET_NAME = CF.PERIOD_SET_NAME
190                AND TRUNC(GLP.START_DATE) >= NVL(P_FORECAST_START_DATE_1
191                 ,TRUNC(GLP.START_DATE))
192                AND TRUNC(GLP.START_DATE) <= NVL(P_FORECAST_END_DATE_1
193                 ,TRUNC(GLP.START_DATE)) ) );
194         DELETE FROM CE_FORECAST_ERRORS
195          WHERE FORECAST_ID in (
196            SELECT
197              FORECAST_ID
198            FROM
199              CE_FORECASTS CF
200            WHERE FORECAST_HEADER_ID = NVL(P_FORECAST_HEADER_ID
201               ,FORECAST_HEADER_ID)
202              AND START_PERIOD in (
203              SELECT
204                GLP.PERIOD_NAME
205              FROM
206                GL_PERIODS GLP
207              WHERE GLP.PERIOD_SET_NAME = CF.PERIOD_SET_NAME
208                AND TRUNC(GLP.START_DATE) >= NVL(P_FORECAST_START_DATE_1
209                 ,TRUNC(GLP.START_DATE))
210                AND TRUNC(GLP.START_DATE) <= NVL(P_FORECAST_END_DATE_1
211                 ,TRUNC(GLP.START_DATE)) ) );
212         DELETE FROM CE_FORECASTS CF
213          WHERE FORECAST_HEADER_ID = NVL(P_FORECAST_HEADER_ID
214             ,FORECAST_HEADER_ID)
215            AND START_PERIOD in (
216            SELECT
217              GLP.PERIOD_NAME
218            FROM
219              GL_PERIODS GLP
220            WHERE GLP.PERIOD_SET_NAME = CF.PERIOD_SET_NAME
221              AND TRUNC(GLP.START_DATE) >= NVL(P_FORECAST_START_DATE_1
222               ,TRUNC(GLP.START_DATE))
223              AND TRUNC(GLP.START_DATE) <= NVL(P_FORECAST_END_DATE_1
224               ,TRUNC(GLP.START_DATE)) );
225       END IF;
226       COMMIT;
227     END;
228     RETURN (TRUE);
229   END AFTERREPORT;
230 
231   FUNCTION C_COUNT_P RETURN NUMBER IS
232   BEGIN
233     RETURN C_COUNT;
234   END C_COUNT_P;
235 
236   FUNCTION C_PURGE_OPTION_P RETURN VARCHAR2 IS
237   BEGIN
238     RETURN C_PURGE_OPTION;
239   END C_PURGE_OPTION_P;
240 
241   FUNCTION C_TEMP_NAME_P RETURN VARCHAR2 IS
242   BEGIN
243     RETURN C_TEMP_NAME;
244   END C_TEMP_NAME_P;
245 
246 END CE_CEFPURGE_XMLP_PKG;
247