DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMD_PARAMETERS_DTL_PKG

Source


1 PACKAGE BODY GMD_PARAMETERS_DTL_PKG AS
2 /* $Header: GMDPRMDB.pls 120.6 2006/05/24 12:56:25 rkrishan noship $ */
3 
4 
5  /*======================================================================
6  --  PROCEDURE :
7  --   INSERT_ROW
8  --
9  --  DESCRIPTION:
10  --        This particular procedure is used to insert rows in detail table
11  --
12  --  HISTORY
13  --        Sriram.S  05-NOV-2004  Created
14  --===================================================================== */
15 PROCEDURE INSERT_ROW (
16   X_ROWID               OUT NOCOPY VARCHAR2,
17   X_PARAMETER_LINE_ID   IN NUMBER,
18   X_PARAMETER_ID        IN NUMBER,
19   X_PARM_TYPE           IN NUMBER,
20   X_PARAMETER_NAME      IN VARCHAR2,
21   X_PARAMETER_VALUE     IN VARCHAR2,
22   X_CREATION_DATE       IN DATE,
23   X_CREATED_BY          IN NUMBER,
24   X_LAST_UPDATE_DATE    IN DATE,
25   X_LAST_UPDATED_BY     IN NUMBER,
26   X_LAST_UPDATE_LOGIN   IN NUMBER
27 ) IS
28 
29 CURSOR C IS
30 SELECT ROWID
31 FROM GMD_PARAMETERS_DTL
32 WHERE PARAMETER_LINE_ID = X_PARAMETER_LINE_ID;
33 BEGIN
34 
35   INSERT INTO GMD_PARAMETERS_DTL (
36     PARAMETER_ID,
37     PARAMETER_LINE_ID,
38     PARAMETER_TYPE,
39     PARAMETER_NAME,
40     PARAMETER_VALUE,
41     CREATION_DATE,
42     CREATED_BY,
43     LAST_UPDATE_DATE,
44     LAST_UPDATED_BY,
45     LAST_UPDATE_LOGIN
46   ) VALUES (
47     X_PARAMETER_ID,
48     X_PARAMETER_LINE_ID,
49     X_PARM_TYPE,
50     X_PARAMETER_NAME,
51     X_PARAMETER_VALUE,
52     SYSDATE,
53     X_LAST_UPDATED_BY,
54     X_LAST_UPDATE_DATE,
55     X_LAST_UPDATED_BY,
56     X_LAST_UPDATE_LOGIN
57   );
58 
59 
60   OPEN C;
61   FETCH C INTO X_ROWID;
62   IF (C%NOTFOUND) THEN
63     CLOSE C;
64     RAISE NO_DATA_FOUND;
65   END IF;
66   CLOSE C;
67 
68 EXCEPTION WHEN OTHERS THEN
69 NULL;
70 END INSERT_ROW;
71 
72  /*======================================================================
73  --  PROCEDURE :
74  --   LOCK_ROW
75  --
76  --  DESCRIPTION:
77  --        This particular procedure is used to lock rows in detail table
78  --
79  --  HISTORY
80  --        Sriram.S  05-NOV-2004  Created
81  --===================================================================== */
82 
83 PROCEDURE LOCK_ROW (
84   X_PARAMETER_LINE_ID   IN NUMBER,
85   X_PARAMETER_ID        IN NUMBER,
86   X_PARM_TYPE           IN NUMBER,
87   X_PARAMETER_NAME      IN VARCHAR2,
88   X_PARAMETER_VALUE     IN VARCHAR2,
89   X_LOOKUP_TYPE         IN VARCHAR2
90 ) IS
91 
92 CURSOR C IS
93     SELECT
94       PARAMETER_ID,
95       PARAMETER_TYPE,
96       PARAMETER_NAME,
97       PARAMETER_VALUE
98     FROM GMD_PARAMETERS_DTL
99     WHERE PARAMETER_LINE_ID = X_PARAMETER_LINE_ID
100     FOR UPDATE OF PARAMETER_LINE_ID NOWAIT;
101 
102 CURSOR cur_gem_lookups IS
103     SELECT 1
104     from GEM_LOOKUPS
105     where lookup_code =X_PARAMETER_NAME
106     and   lookup_type =X_LOOKUP_TYPE;
107 
108   RECINFO C%ROWTYPE;
109   GEMINFO Cur_gem_lookups%ROWTYPE;
110   NEW_DATA_ENTRY EXCEPTION;
111 BEGIN
112   OPEN C;
113   FETCH C INTO RECINFO;
114 
115 
116 
117    IF (C%NOTFOUND) THEN
118     CLOSE C;
119     OPEN cur_gem_lookups;
120     FETCH cur_gem_lookups INTO GEMINFO;
121     if cur_gem_lookups%NOTFOUND THEN
122       CLOSE cur_gem_lookups;
123       FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
124       APP_EXCEPTION.RAISE_EXCEPTION;
125     ELSE
126       NULL;
127       RAISE NEW_DATA_ENTRY;
128     END IF;
129   END IF;
130   IF c%ISOPEN THEN
131    CLOSE C;
132   END IF;
133   IF cur_gem_lookups%ISOPEN THEN
134    Close cur_gem_lookups;
135   END IF;
136   IF (    (RECINFO.PARAMETER_ID = X_PARAMETER_ID)
137       AND ((RECINFO.PARAMETER_TYPE = X_PARM_TYPE)
138            OR ((RECINFO.PARAMETER_TYPE IS NULL) AND (X_PARM_TYPE IS NULL)))
139       AND ((RECINFO.PARAMETER_NAME = X_PARAMETER_NAME)
140            OR ((RECINFO.PARAMETER_NAME IS NULL) AND (X_PARAMETER_NAME IS NULL)))
141       AND ((RECINFO.PARAMETER_VALUE = X_PARAMETER_VALUE)
142            OR ((RECINFO.PARAMETER_VALUE IS NULL) AND (X_PARAMETER_VALUE IS NULL)))
143 
144      )
145    THEN
146     NULL;
147 
148   ELSE
149     FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
150     APP_EXCEPTION.RAISE_EXCEPTION;
151   END IF;
152 
153   RETURN;
154 EXCEPTION
155 WHEN NEW_DATA_ENTRY THEN
156    IF c%ISOPEN THEN
157    CLOSE C;
158    END IF;
159    IF cur_gem_lookups%ISOPEN THEN
160    Close cur_gem_lookups;
161    END IF;
162 WHEN OTHERS THEN
163    IF c%ISOPEN THEN
164    CLOSE C;
165    END IF;
166    IF cur_gem_lookups%ISOPEN THEN
167    Close cur_gem_lookups;
168    END IF;
169 
170 END LOCK_ROW;
171 
172 
173  /*======================================================================
174  --  PROCEDURE :
175  --   UPDATE_ROW
176  --
177  --  DESCRIPTION:
178  --        This particular procedure is used to update rows in detail table
179  --
180  --  HISTORY
181  --        Sriram.S  05-NOV-2004  Created
182  --===================================================================== */
183 
184 PROCEDURE UPDATE_ROW (
185   X_PARAMETER_LINE_ID   IN NUMBER,
186   X_PARAMETER_ID        IN NUMBER,
187   X_PARM_TYPE           IN NUMBER,
188   X_PARAMETER_NAME      IN VARCHAR2,
189   X_PARAMETER_VALUE     IN VARCHAR2,
190   X_LAST_UPDATE_DATE    IN DATE,
191   X_LAST_UPDATED_BY     IN NUMBER,
192   X_LAST_UPDATE_LOGIN   IN NUMBER
193 ) IS
194 BEGIN
195 
196   UPDATE GMD_PARAMETERS_DTL
197   SET
198     PARAMETER_ID        = X_PARAMETER_ID,
199     PARAMETER_TYPE      = X_PARM_TYPE,
200     PARAMETER_NAME      = X_PARAMETER_NAME,
201     PARAMETER_VALUE     = X_PARAMETER_VALUE,
202     LAST_UPDATE_DATE    = X_LAST_UPDATE_DATE,
203     LAST_UPDATED_BY     = X_LAST_UPDATED_BY,
204     LAST_UPDATE_LOGIN   = X_LAST_UPDATE_LOGIN
205   WHERE PARAMETER_LINE_ID = X_PARAMETER_LINE_ID;
206 
207   IF (SQL%NOTFOUND) THEN
208     RAISE NO_DATA_FOUND;
209   END IF;
210 EXCEPTION WHEN OTHERS THEN
211 NULL;
212 
213 END UPDATE_ROW;
214 
215  /*======================================================================
216  --  PROCEDURE :
217  --   DELETE_ROW
218  --
219  --  DESCRIPTION:
220  --        This particular procedureis used to  delete rows in detail table
221  --
222  --  HISTORY
223  --        Sriram.S  05-NOV-2004  Created
224  --===================================================================== */
225 
226 PROCEDURE DELETE_ROW (
227   X_PARAMETER_LINE_ID IN NUMBER
228 ) IS
229 BEGIN
230 
231   DELETE FROM GMD_PARAMETERS_DTL
232   WHERE PARAMETER_LINE_ID = X_PARAMETER_LINE_ID;
233 
234   IF (SQL%NOTFOUND) THEN
235     RAISE NO_DATA_FOUND;
236   END IF;
237 END DELETE_ROW;
238 
239 
240 
241 /*======================================================================
242  --  PROCEDURE :
243  --  GET_PARAMETER_LIST
244  --
245  --  DESCRIPTION:
246  --          Fetches the option values and outputs a table.
247  --
248  --  HISTORY
249  --        KSHUKLA  05-NOV-2004  Created
250  --===================================================================== */
251 
252 PROCEDURE GET_PARAMETER_LIST(pOrgn_id     IN  NUMBER,
253                              V_block      IN  VARCHAR2,
254                              Xparm_table  IN OUT NOCOPY out_parm_table)  IS
255 
256 CURSOR cur_parameter_dtl(l_type number,l_gem_type varchar2,l_org_id number) is
257 select  d.parameter_id parameter_id,d.parameter_line_id parameter_line_id
258        ,d.parameter_type parameter_type, d.parameter_name parameter_name
259        ,d.PARAMETER_VALUE PARAMETER_VALUE,d.creation_date creation_date
260        ,d.last_updated_by last_updated_by,d.last_update_date last_update_date
261        ,d.last_update_login last_update_login
262        ,d.created_by created_by
263 from gmd_parameters_dtl d, gmd_parameters_hdr h
264 where d.parameter_id = h.parameter_id
265 and d.parameter_type = l_type
266 and ((h.organization_id = l_org_id) or ((l_org_id is NULL) and (h.organization_id IS NULL)))
267 UNION
268 select  NULL parameter_id,NULL parameter_line_id,NULL parameter_type,lookup_code parameter_name, NULL PARAMETER_VALUE
269        ,NULL creation_date ,NULL last_updated_by,NULL last_updated_date,NULL last_updated_login,NULL created_by
270 FROM gem_lookups l
271 WHERE lookup_type = l_gem_type
272 and ENABLED_FLAG = 'Y'
273 AND not exists (select 1
274                from gmd_parameters_dtl d, gmd_parameters_hdr h
275                where d.parameter_id = h.parameter_id
276                and d.parameter_type = l_type
277                and ((h.organization_id = l_org_id) or ((l_org_id is NULL) and (h.organization_id IS NULL)))
278                and d.parameter_name = l.lookup_code)
279 ORDER BY PARAMETER_NAME;
280 
281 
282 X_prcs_cnt NUMBER := 0;
283 l_lookup_type varchar2(32);
284 l_type number;
285 TYPE parm_table is table of cur_parameter_dtl%ROWTYPE;
286 l_parm_table parm_table;
287 BEGIN
288   IF v_block = 'DTL_FORM' THEN
289   	l_lookup_type := 'GMD_FORMULA_PARAMETER';
290     l_type :=1;
291   ELSIF v_block = 'DTL_OPRN' THEN
292   	l_lookup_type := 'GMD_OPERATION_PARAMETER';
293     l_type :=2;
294   ELSIF v_block = 'DTL_ROUT' THEN
295   	l_lookup_type := 'GMD_ROUTING_PARAMETER';
296     l_type :=3;
297   ELSIF v_block = 'DTL_RECP' THEN
298   	l_lookup_type := 'GMD_RECIPE_PARAMETER';
299     l_type :=4;
300   ELSIF v_block = 'DTL_SUB' THEN
301   	l_lookup_type := 'GMD_SUBSTITUTION_PARAMETER';
302     l_type :=5;
303   ELSIF v_block = 'DTL_LAB' THEN
304   	l_lookup_type := 'GMD_LAB_PARAMETER';
305     l_type :=6;
306   END IF;
307 
308 
309 FOR l_get_prcs IN cur_parameter_dtl(l_type,l_lookup_type,pOrgn_id)
310     LOOP
311        X_prcs_cnt    := X_prcs_cnt+1;
312 
313        Xparm_table(X_prcs_cnt).parameter_id := l_get_prcs.parameter_id;
314        Xparm_table(X_prcs_cnt).parameter_line_id:=l_get_prcs.parameter_line_id;
315        Xparm_table(X_prcs_cnt).parameter_type:=NVL(l_get_prcs.parameter_type,l_type);
316        Xparm_table(X_prcs_cnt).parameter_name:=l_get_prcs.parameter_name;
317        Xparm_table(X_prcs_cnt).parameter_value :=l_get_prcs.parameter_value;
318        Xparm_table(X_prcs_cnt).creation_date :=l_get_prcs.creation_date;
319        Xparm_table(X_prcs_cnt).last_updated_by:=l_get_prcs.last_updated_by;
320        Xparm_table(X_prcs_cnt).created_by:=l_get_prcs.created_by;
321     END LOOP;
322 END GET_PARAMETER_LIST;
323 
324 END GMD_PARAMETERS_DTL_PKG;
325