DBA Data[Home] [Help]

PACKAGE BODY: APPS.PN_INDEX_HISTORY_LINES_PKG

Source


1 PACKAGE BODY pn_index_history_lines_pkg AS
2 -- $Header: PNTINHLB.pls 115.6 2002/11/12 23:06:12 stripath ship $
3 
4 /*============================================================================+
5 |                Copyright (c) 2001 Oracle Corporation
6 |                   Redwood Shores, California, USA
7 |                        All rights reserved.
8 | DESCRIPTION
9 |
10 |  These procedures consist are used a table handlers for the PN_INDEX_HISTORY_LINES table.
11 |  They include:
12 |         INSERT_ROW - insert a row into PN_INDEX_HISTORY_LINES.
13 |         DELETE_ROW - deletes a row from PN_INDEX_HISTORY_LINES.
14 |         UPDATE_ROW - updates a row from PN_INDEX_HISTORY_LINES.
15 |         LOCKS_ROW - will check if a row has been modified since being queried by form.
16 |
17 |
18 | HISTORY
19 |   24-APR-2001  jbreyes        o Created
20 |   13-DEC-2001  Mrinal Misra   o Added dbdrv command.
21 |   15-JAN-2002  Mrinal Misra   o In dbdrv command changed phase=pls to phase=plb.
22 |                                 Added checkfile.Ref. Bug# 2184724.
23 +===========================================================================*/
24 
25 ------------------------------------------------------------------------
26 -- PROCEDURE : INSERT_ROW
27 ------------------------------------------------------------------------
28    PROCEDURE insert_row (
29       x_rowid                      IN OUT NOCOPY   VARCHAR2
30      ,x_index_line_id              IN OUT NOCOPY   NUMBER
31      ,x_last_update_date           IN       DATE
32      ,x_last_updated_by            IN       NUMBER
33      ,x_creation_date              IN       DATE
34      ,x_created_by                 IN       NUMBER
35      ,x_index_id                   IN       NUMBER
36      ,x_index_date                 IN       DATE
37      ,x_last_update_login          IN       NUMBER
38      ,x_index_figure               IN       NUMBER
39      ,x_index_estimate             IN       NUMBER
40      ,x_index_unadj_1              IN       NUMBER
41      ,x_index_unadj_2              IN       NUMBER
42      ,x_index_seasonally_unadj_1   IN       NUMBER
43      ,x_index_seasonally_unadj_2   IN       NUMBER
44      ,x_updated_flag               IN       VARCHAR2
45      ,x_attribute_category         IN       VARCHAR2
46      ,x_attribute1                 IN       VARCHAR2
47      ,x_attribute2                 IN       VARCHAR2
48      ,x_attribute3                 IN       VARCHAR2
49      ,x_attribute4                 IN       VARCHAR2
50      ,x_attribute5                 IN       VARCHAR2
51      ,x_attribute6                 IN       VARCHAR2
52      ,x_attribute7                 IN       VARCHAR2
53      ,x_attribute8                 IN       VARCHAR2
54      ,x_attribute9                 IN       VARCHAR2
55      ,x_attribute10                IN       VARCHAR2
56      ,x_attribute11                IN       VARCHAR2
57      ,x_attribute12                IN       VARCHAR2
58      ,x_attribute13                IN       VARCHAR2
59      ,x_attribute14                IN       VARCHAR2
60      ,x_attribute15                IN       VARCHAR2
61    ) IS
62       CURSOR c IS
63          SELECT ROWID
64            FROM pn_index_history_lines
65           WHERE index_line_id = x_index_line_id;
66 
67       l_return_status   VARCHAR2 (30) := NULL;
68       l_rowid           VARCHAR2 (18) := NULL;
69    BEGIN
70 
71 --PNP_DEBUG_PKG.debug (' PN_INDEX_HISTORY_LINES_PKG.insert_row (+)');
72 -- If no INDEX_LINE_ID is provided, get one from sequence
73       IF (x_index_line_id IS NULL) THEN
74          SELECT pn_index_history_lines_s.NEXTVAL
75            INTO x_index_line_id
76            FROM DUAL;
77       END IF;
78 
79       check_unq_index_line (l_return_status, x_index_id, x_index_line_id, x_index_date);
80 
81       IF (l_return_status IS NOT NULL) THEN
82          app_exception.raise_exception;
83       END IF;
84 
85       INSERT INTO pn_index_history_lines
86         (index_line_id
87         ,last_update_date
88         ,last_updated_by
89         ,creation_date
90         ,created_by
91         ,index_id
92         ,index_date
93         ,last_update_login
94         ,index_figure
95         ,index_estimate
96         ,index_unadj_1
97         ,index_unadj_2
98         ,index_seasonally_unadj_1
99         ,index_seasonally_unadj_2
100         ,updated_flag
101         ,attribute_category
102         ,attribute1
103         ,attribute2
104         ,attribute3
105         ,attribute4
106         ,attribute5
107         ,attribute6
108         ,attribute7
109         ,attribute8
110         ,attribute9
111         ,attribute10
112         ,attribute11
113         ,attribute12
114         ,attribute13
115         ,attribute14
116         ,attribute15
117         )
118       VALUES (x_index_line_id
119              ,x_last_update_date
120              ,x_last_updated_by
121              ,x_creation_date
122              ,x_created_by
123              ,x_index_id
124              ,x_index_date
125              ,x_last_update_login
126              ,x_index_figure
127              ,x_index_estimate
128              ,x_index_unadj_1
129              ,x_index_unadj_2
130              ,x_index_seasonally_unadj_1
131              ,x_index_seasonally_unadj_2
132              ,x_updated_flag
133              ,x_attribute_category
134              ,x_attribute1
135              ,x_attribute2
136              ,x_attribute3
137              ,x_attribute4
138              ,x_attribute5
139              ,x_attribute6
140              ,x_attribute7
141              ,x_attribute8
142              ,x_attribute9
143              ,x_attribute10
144              ,x_attribute11
145              ,x_attribute12
146              ,x_attribute13
147              ,x_attribute14
148              ,x_attribute15
149              );
150 
151 
152 -- Check if a valid record was created.
153       OPEN c;
154       FETCH c INTO x_rowid;
155 
156       IF (c%NOTFOUND) THEN
157          CLOSE c;
158          RAISE NO_DATA_FOUND;
159       END IF;
160 
161       CLOSE c;
162 
163 --PNP_DEBUG_PKG.debug (' PN_INDEX_HISTORY_LINES_PKG.insert_row (-)');
164    END insert_row;
165 
166 
167 ------------------------------------------------------------------------
168 -- PROCEDURE : UPDATE_ROW
169 ------------------------------------------------------------------------
170    PROCEDURE update_row (
171       x_rowid                      IN   VARCHAR2
172      ,x_index_line_id              IN   NUMBER
173      ,x_last_update_date           IN   DATE
174      ,x_last_updated_by            IN   NUMBER
175      ,x_index_id                   IN   NUMBER
176      ,x_index_date                 IN   DATE
177      ,x_last_update_login          IN   NUMBER
178      ,x_index_figure               IN   NUMBER
179      ,x_index_estimate             IN   NUMBER
180      ,x_index_unadj_1              IN   NUMBER
181      ,x_index_unadj_2              IN   NUMBER
182      ,x_index_seasonally_unadj_1   IN   NUMBER
183      ,x_index_seasonally_unadj_2   IN   NUMBER
184      ,x_updated_flag               IN   VARCHAR2
185      ,x_attribute_category         IN   VARCHAR2
186      ,x_attribute1                 IN   VARCHAR2
187      ,x_attribute2                 IN   VARCHAR2
188      ,x_attribute3                 IN   VARCHAR2
189      ,x_attribute4                 IN   VARCHAR2
190      ,x_attribute5                 IN   VARCHAR2
191      ,x_attribute6                 IN   VARCHAR2
192      ,x_attribute7                 IN   VARCHAR2
193      ,x_attribute8                 IN   VARCHAR2
194      ,x_attribute9                 IN   VARCHAR2
195      ,x_attribute10                IN   VARCHAR2
196      ,x_attribute11                IN   VARCHAR2
197      ,x_attribute12                IN   VARCHAR2
198      ,x_attribute13                IN   VARCHAR2
199      ,x_attribute14                IN   VARCHAR2
200      ,x_attribute15                IN   VARCHAR2
201    ) IS
202       l_return_status   VARCHAR2 (30) := NULL;
203    BEGIN
204 
205 --PNP_DEBUG_PKG.debug (' PN_INDEX_HISTORY_LINES_PKG.update_row (+)');
206 
207       check_unq_index_line (l_return_status, x_index_id, x_index_line_id, x_index_date);
208 
209       IF (l_return_status IS NOT NULL) THEN
210          app_exception.raise_exception;
211       END IF;
212 
213       UPDATE pn_index_history_lines
214          SET last_update_date = x_last_update_date
215             ,last_updated_by = x_last_updated_by
216             ,index_id = x_index_id
217             ,index_date = x_index_date
218             ,last_update_login = x_last_update_login
219             ,index_figure = x_index_figure
220             ,index_estimate = x_index_estimate
221             ,index_unadj_1 = x_index_unadj_1
222             ,index_unadj_2 = x_index_unadj_2
223             ,index_seasonally_unadj_1 = x_index_seasonally_unadj_1
224             ,index_seasonally_unadj_2 = x_index_seasonally_unadj_2
225             ,updated_flag = x_updated_flag
226             ,attribute_category = x_attribute_category
227             ,attribute1 = x_attribute1
228             ,attribute2 = x_attribute2
229             ,attribute3 = x_attribute3
230             ,attribute4 = x_attribute4
231             ,attribute5 = x_attribute5
232             ,attribute6 = x_attribute6
233             ,attribute7 = x_attribute7
234             ,attribute8 = x_attribute8
235             ,attribute9 = x_attribute9
236             ,attribute10 = x_attribute10
237             ,attribute11 = x_attribute11
238             ,attribute12 = x_attribute12
239             ,attribute13 = x_attribute13
240             ,attribute14 = x_attribute14
241             ,attribute15 = x_attribute15
242        WHERE ROWID = x_rowid;
243 
244       IF (SQL%NOTFOUND) THEN
245          RAISE NO_DATA_FOUND;
246       END IF;
247 
248 --PNP_DEBUG_PKG.debug (' PN_INDEX_HISTORY_LINES_PKG.update_row (-)');
249    END update_row;
250 
251 
252 ------------------------------------------------------------------------
253 -- PROCEDURE : LOCK_ROW
254 ------------------------------------------------------------------------
255    PROCEDURE lock_row (
256       x_rowid                      IN   VARCHAR2
257      ,x_index_line_id              IN   NUMBER
258      ,x_index_id                   IN   NUMBER
259      ,x_index_date                 IN   DATE
260      ,x_index_figure               IN   NUMBER
261      ,x_index_estimate             IN   NUMBER
262      ,x_index_unadj_1              IN   NUMBER
263      ,x_index_unadj_2              IN   NUMBER
264      ,x_index_seasonally_unadj_1   IN   NUMBER
265      ,x_index_seasonally_unadj_2   IN   NUMBER
266      ,x_updated_flag               IN   VARCHAR2
267      ,x_attribute_category         IN   VARCHAR2
268      ,x_attribute1                 IN   VARCHAR2
269      ,x_attribute2                 IN   VARCHAR2
270      ,x_attribute3                 IN   VARCHAR2
271      ,x_attribute4                 IN   VARCHAR2
272      ,x_attribute5                 IN   VARCHAR2
273      ,x_attribute6                 IN   VARCHAR2
274      ,x_attribute7                 IN   VARCHAR2
275      ,x_attribute8                 IN   VARCHAR2
276      ,x_attribute9                 IN   VARCHAR2
277      ,x_attribute10                IN   VARCHAR2
278      ,x_attribute11                IN   VARCHAR2
279      ,x_attribute12                IN   VARCHAR2
280      ,x_attribute13                IN   VARCHAR2
281      ,x_attribute14                IN   VARCHAR2
282      ,x_attribute15                IN   VARCHAR2
283    ) IS
284       CURSOR c1 IS
285          SELECT        *
286                   FROM pn_index_history_lines
287                  WHERE ROWID = x_rowid
288          FOR UPDATE OF index_line_id NOWAIT;
289 
290       tlinfo   c1%ROWTYPE;
291    BEGIN
292 
293 --PNP_DEBUG_PKG.debug (' PN_INDEX_HISTORY_LINES_PKG.lock_row (+)');
294       OPEN c1;
295       FETCH c1 INTO tlinfo;
296 
297       IF (c1%NOTFOUND) THEN
298          CLOSE c1;
299          RETURN;
300       END IF;
301 
302       CLOSE c1;
303 
304       IF (    (tlinfo.index_line_id = x_index_line_id)
305           AND (tlinfo.index_id = x_index_id)
306           AND (tlinfo.index_date = x_index_date)
307           AND (   (tlinfo.index_figure = x_index_figure)
308                OR (    (tlinfo.index_figure IS NULL)
309                    AND x_index_figure IS NULL
310                   )
311               )
312           AND (   (tlinfo.index_estimate = x_index_estimate)
313                OR (    (tlinfo.index_estimate IS NULL)
314                    AND x_index_estimate IS NULL
315                   )
316               )
317           AND (   (tlinfo.index_unadj_1 = x_index_unadj_1)
318                OR (    (tlinfo.index_unadj_1 IS NULL)
319                    AND x_index_unadj_1 IS NULL
320                   )
321               )
322           AND (   (tlinfo.index_unadj_2 = x_index_unadj_2)
323                OR (    (tlinfo.index_unadj_2 IS NULL)
324                    AND x_index_unadj_2 IS NULL
325                   )
326               )
327           AND (   (tlinfo.index_seasonally_unadj_1 = x_index_seasonally_unadj_1)
328                OR (    (tlinfo.index_seasonally_unadj_1 IS NULL)
329                    AND x_index_seasonally_unadj_1 IS NULL
330                   )
331               )
332           AND (   (tlinfo.index_seasonally_unadj_2 = x_index_seasonally_unadj_2)
333                OR (    (tlinfo.index_seasonally_unadj_2 IS NULL)
334                    AND x_index_seasonally_unadj_2 IS NULL
335                   )
336               )
337          ) THEN
338          NULL;
339       ELSE
340          fnd_message.set_name ('FND', 'FORM_RECORD_CHANGED');
341          app_exception.raise_exception;
342       END IF;
343 
344 --PNP_DEBUG_PKG.debug (' PN_INDEX_HISTORY_LINES_PKG.lock_row (-)');
345    END lock_row;
346 
347 
348 ------------------------------------------------------------------------
349 -- PROCEDURE : DELETE_ROW
350 ------------------------------------------------------------------------
351    PROCEDURE delete_row (
352       x_rowid   IN   VARCHAR2
353    ) IS
354    BEGIN
355 
356 --PNP_DEBUG_PKG.debug (' PN_INDEX_HISTORY_LINES_PKG.delete_row (+)');
357       DELETE FROM pn_index_history_lines
358             WHERE ROWID = x_rowid;
359 
360       IF (SQL%NOTFOUND) THEN
361          RAISE NO_DATA_FOUND;
362       END IF;
363 
364 --PNP_DEBUG_PKG.debug (' PN_INDEX_HISTORY_LINES_PKG.delete_row (-)');
365    END delete_row;
366 
367    PROCEDURE check_unq_index_line (
368       x_return_status   IN OUT NOCOPY   VARCHAR2
369      ,x_index_id        IN       NUMBER
370      ,x_index_line_id   IN       NUMBER
371      ,x_index_date      IN       DATE
372    ) IS
373       l_dummy   NUMBER;
374    BEGIN
375       SELECT 1
376         INTO l_dummy
377         FROM DUAL
378        WHERE NOT EXISTS ( SELECT 1
379                             FROM pn_index_history_lines
380                            WHERE (TO_CHAR (index_date, 'MON-RRRR') =
381                                                         TO_CHAR (x_index_date, 'MON-RRRR')
382                                  )
383                              AND (index_id = x_index_id)
384                              AND (   (x_index_line_id IS NULL)
385                                   OR (index_line_id <> x_index_line_id)
386                                  ));
387    EXCEPTION
388       WHEN NO_DATA_FOUND THEN
389          fnd_message.set_name ('PN', 'PN_DUP_INDEX_HIST_LINE');
390 
391 --         fnd_message.set_token ('MONTH', x_index_date);
392          x_return_status := 'E';
393    END check_unq_index_line;
394 END pn_index_history_lines_pkg;