DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_SR_TYPES_MAPPING_PKG

Source


1 PACKAGE body CS_SR_TYPES_MAPPING_PKG as
2 /* $Header: csvtmapb.pls 115.13 2003/11/06 23:45:46 aneemuch noship $ */
3 
4 -- for security
5  FUNCTION Check_Duplicate( p_rowid             IN ROWID,
6                            p_incident_type_id  IN NUMBER,
7                            p_resp_id 	       IN NUMBER,
8                            p_template_type     IN VARCHAR,
9                            p_application_id    IN NUMBER) RETURN BOOLEAN
10   IS
11 
12     l_rowid rowid;
13     CURSOR l_type_cur IS
14     SELECT nvl(1,0),rowid
15     FROM   CS_SR_TYPE_MAPPING
16     WHERE  incident_type_id  = p_incident_type_id
17     AND    responsibility_id  = p_resp_id
18     AND    type 	     = p_template_type
19     AND    application_id = p_application_id;
20 
21     CURSOR l_inc_cur IS
22     SELECT nvl(2,0),rowid
23     FROM   CS_SR_TYPE_MAPPING
24     WHERE  incident_type_id  = p_incident_type_id
25     AND    responsibility_id  = p_resp_id
26     AND    application_id = p_application_id;
27 
28     l_value    NUMBER := 0;
29     l_return   boolean := TRUE;
30                -- True    There is a duplicate record.
31                -- False   There is no duplicate record.
32 
33   BEGIN
34 
35     if p_template_type is not null then
36 
37        OPEN  l_type_cur;
38        FETCH l_type_cur INTO l_value,l_rowid;
39 
40        if l_type_cur%NOTFOUND then
41           l_return := FALSE;
42        else
43 --bug 2942245 to avoid the same record to undergo duplicate checking
44           if l_rowid = p_rowid and p_rowid is not null then
45              l_return := FALSE;
46           end if;
47        end if;
48 
49        CLOSE l_type_cur;
50 
51     elsif p_template_type is null then
52 
53        OPEN  l_inc_cur;
54        FETCH l_inc_cur INTO l_value,l_rowid;
55 
56        if l_inc_cur%NOTFOUND then
57           l_return := FALSE;
58        else
59 --bug 2942245 to avoid the same record to undergo duplicate checking
60           if l_rowid = p_rowid and p_rowid is not null then
61              l_return := FALSE;
62           end if;
63        end if;
64 
65        CLOSE l_inc_cur;
66 
67     end if;
68 
69 --bug 2942245 to avoid the same record to undergo duplicate checking
70     if l_value = 0 then
71        l_return := FALSE;
72     end if;
73 
74     return l_return;
75 
76 END Check_Duplicate;
77 
78 procedure INSERT_ROW(
79   X_ROWID in out NOCOPY VARCHAR2,
80   X_INCIDENT_TYPE_ID in NUMBER,
81   X_RESPONSIBILITY_ID in NUMBER,
82   X_TEMPLATE_ID	in NUMBER,
83   X_TYPE  in VARCHAR2,
84   X_START_DATE  in DATE 	,
85   X_END_DATE  in DATE 	,
86   X_SEEDED_FLAG in VARCHAR2,
87   X_ATTRIBUTE1 in VARCHAR2,
88   X_ATTRIBUTE2 in VARCHAR2,
89   X_ATTRIBUTE3 in VARCHAR2,
90   X_ATTRIBUTE4 in VARCHAR2,
91   X_ATTRIBUTE5 in VARCHAR2,
92   X_ATTRIBUTE6 in VARCHAR2,
93   X_ATTRIBUTE7 in VARCHAR2,
94   X_ATTRIBUTE8 in VARCHAR2,
95   X_ATTRIBUTE9 in VARCHAR2,
96   X_ATTRIBUTE10 in VARCHAR2,
97   X_ATTRIBUTE11 in VARCHAR2,
98   X_ATTRIBUTE12 in VARCHAR2,
99   X_ATTRIBUTE13 in VARCHAR2,
100   X_ATTRIBUTE14 in VARCHAR2,
101   X_ATTRIBUTE15 in VARCHAR2,
102   X_ATTRIBUTE_CATEGORY in VARCHAR2,
103   X_CREATION_DATE in DATE,
104   X_CREATED_BY in NUMBER,
105   X_LAST_UPDATE_DATE in DATE,
106   X_LAST_UPDATED_BY in NUMBER,
107   X_LAST_UPDATE_LOGIN in NUMBER,
108   X_STATUS_GROUP_ID in NUMBER,
109    -- for security
110   X_APPLICATION_ID in NUMBER,
111   X_BUSINESS_USAGE in VARCHAR2) is
112   cursor C is select ROWID from CS_SR_TYPE_MAPPING
113     where INCIDENT_TYPE_ID = X_INCIDENT_TYPE_ID and
114           RESPONSIBILITY_ID = X_RESPONSIBILITY_ID and
115           APPLICATION_ID = X_APPLICATION_ID;
116 
117   G_EXP_DUP_RECORD        EXCEPTION;
118 
119 begin
120 
121  if NOT Check_Duplicate( p_rowid             => null,
122                          p_incident_type_id  => x_incident_type_id,
123                          p_resp_id 	     => x_responsibility_id,
124                          p_template_type     => x_type,
125                          p_application_id    => x_application_id)
126   then
127   insert into CS_SR_TYPE_MAPPING(
128         INCIDENT_TYPE_ID,
129         RESPONSIBILITY_ID,
130         TEMPLATE_ID,
131         TYPE,
132         START_DATE      ,
133  	END_DATE   	,
134  	SEEDED_FLAG	,
135  	ATTRIBUTE1	,
136  	ATTRIBUTE2	,
137  	ATTRIBUTE3	,
138  	ATTRIBUTE4	,
139  	ATTRIBUTE5	,
140  	ATTRIBUTE6	,
141  	ATTRIBUTE7	,
142  	ATTRIBUTE8	,
143  	ATTRIBUTE9	,
144  	ATTRIBUTE10	,
145  	ATTRIBUTE11	,
146  	ATTRIBUTE12	,
147  	ATTRIBUTE13	,
148  	ATTRIBUTE14	,
149  	ATTRIBUTE15	,
150  	ATTRIBUTE_CATEGORY,
151  	CREATION_DATE 	,
152  	CREATED_BY  	,
153  	LAST_UPDATE_DATE ,
154  	LAST_UPDATED_BY ,
155  	LAST_UPDATE_LOGIN ,
156  	OBJECT_VERSION_NUMBER,
157 	STATUS_GROUP_ID,
158 	-- for security
159 	APPLICATION_ID,
160 	BUSINESS_USAGE
161   ) values (
162     X_INCIDENT_TYPE_ID ,
163     X_RESPONSIBILITY_ID,
164     X_TEMPLATE_ID,
165     X_TYPE,
166     X_START_DATE 	,
167     X_END_DATE  	,
168     X_SEEDED_FLAG	,
169     X_ATTRIBUTE1	,
170     X_ATTRIBUTE2	,
171     X_ATTRIBUTE3	,
172     X_ATTRIBUTE4	,
173     X_ATTRIBUTE5	,
174     X_ATTRIBUTE6	,
175     X_ATTRIBUTE7	,
176     X_ATTRIBUTE8	,
177     X_ATTRIBUTE9	,
178     X_ATTRIBUTE10	,
179     X_ATTRIBUTE11	,
180     X_ATTRIBUTE12	,
181     X_ATTRIBUTE13	,
182     X_ATTRIBUTE14	,
183     X_ATTRIBUTE15	,
184     X_ATTRIBUTE_CATEGORY,
185     X_CREATION_DATE	,
186     X_CREATED_BY	,
187     X_LAST_UPDATE_DATE	,
188     X_LAST_UPDATED_BY	,
189     1			,
190     1,
191     X_STATUS_GROUP_ID,
192     -- for security
193     X_APPLICATION_ID,
194     X_BUSINESS_USAGE
195   );
196 
197   open c;
198   fetch c into X_ROWID;
199   if (c%notfound) then
200     close c;
201     raise no_data_found;
202   end if;
203   close c;
204 
205   else
206     raise G_EXP_DUP_RECORD;
207   end if;
208 
209 Exception
210 
211   when G_EXP_DUP_RECORD then
212     --x_return_status := G_RET_STS_ERROR;
213     Fnd_Message.Set_Name('CS', 'CS_ALL_DUPLICATE_RECORD');
214     Fnd_Msg_Pub.Add;
215 
216   When Others then
217     app_exception.raise_exception('ERROR','12',SQLERRM);
218 
219 end INSERT_ROW;
220 
221  procedure LOCK_ROW (
222   X_INCIDENT_TYPE_ID in NUMBER,
223   X_RESPONSIBILITY_ID in NUMBER,
224   X_OBJECT_VERSION_NUMBER in NUMBER,
225   X_ROWID OUT NOCOPY VARCHAR2,
226   -- for security
227   X_APPLICATION_ID in NUMBER
228 ) is
229   cursor c is select
230         ROWID,OBJECT_VERSION_NUMBER
231     from CS_SR_TYPE_MAPPING
232     where INCIDENT_TYPE_ID = X_INCIDENT_TYPE_ID
233     and RESPONSIBILITY_ID = X_RESPONSIBILITY_ID
234     and APPLICATION_ID = X_APPLICATION_ID
235     and OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER
236     for update of OBJECT_VERSION_NUMBER nowait;
237   recinfo c%rowtype;
238 
239 
240 begin
241   open c;
242   fetch c into recinfo;
243   x_rowid := recinfo.rowid;
244   if (c%notfound) then
245     close c;
246     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
247     app_exception.raise_exception;
248   end if;
249   close c;
250 
251   if (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
252   then
253     null;
254   else
255     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
256     app_exception.raise_exception;
257   end if;
258 
259 end LOCK_ROW;
260 
261 
262 procedure UPDATE_ROW (
263   X_ROWID in out NOCOPY VARCHAR2,
264   X_INCIDENT_TYPE_ID in NUMBER,
265   X_RESPONSIBILITY_ID in NUMBER,
266   X_TEMPLATE_ID	in NUMBER,
267   X_TYPE  in VARCHAR2,
268   X_START_DATE  in DATE 	,
269   X_END_DATE  in DATE 	,
270   X_SEEDED_FLAG in VARCHAR2,
271   X_ATTRIBUTE1 in VARCHAR2,
272   X_ATTRIBUTE2 in VARCHAR2,
273   X_ATTRIBUTE3 in VARCHAR2,
274   X_ATTRIBUTE4 in VARCHAR2,
275   X_ATTRIBUTE5 in VARCHAR2,
276   X_ATTRIBUTE6 in VARCHAR2,
277   X_ATTRIBUTE7 in VARCHAR2,
278   X_ATTRIBUTE8 in VARCHAR2,
279   X_ATTRIBUTE9 in VARCHAR2,
280   X_ATTRIBUTE10 in VARCHAR2,
281   X_ATTRIBUTE11 in VARCHAR2,
282   X_ATTRIBUTE12 in VARCHAR2,
283   X_ATTRIBUTE13 in VARCHAR2,
284   X_ATTRIBUTE14 in VARCHAR2,
285   X_ATTRIBUTE15 in VARCHAR2,
286   X_ATTRIBUTE_CATEGORY in VARCHAR2,
287   X_CREATION_DATE in DATE,
288   X_CREATED_BY in NUMBER,
289   X_LAST_UPDATE_DATE in DATE,
290   X_LAST_UPDATED_BY in NUMBER,
291   X_LAST_UPDATE_LOGIN in NUMBER,
292   X_OBJECT_VERSION_NUMBER in NUMBER,
293   X_STATUS_GROUP_ID in NUMBER,
294   -- for security
295   X_APPLICATION_ID in NUMBER,
296   X_BUSINESS_USAGE in VARCHAR2)
297  is
298 
299   G_EXP_DUP_RECORD        EXCEPTION;
300 begin
301 
302  if NOT Check_Duplicate( p_rowid             => x_rowid,
303                          p_incident_type_id  => x_incident_type_id,
304                          p_resp_id 	     => x_responsibility_id,
305                          p_template_type     => x_type,
306                          p_application_id    => x_application_id)
307   then
308   update CS_SR_TYPE_MAPPING set
309     INCIDENT_TYPE_ID = X_INCIDENT_TYPE_ID ,
310     RESPONSIBILITY_ID = X_RESPONSIBILITY_ID,
311     TEMPLATE_ID = X_TEMPLATE_ID,
312     TYPE = X_TYPE,
313     START_DATE = X_START_DATE 	,
314     END_DATE = X_END_DATE  	,
315     SEEDED_FLAG = X_SEEDED_FLAG,
316     OBJECT_VERSION_NUMBER =  X_OBJECT_VERSION_NUMBER +1,
317     ATTRIBUTE1 = X_ATTRIBUTE1,
318     ATTRIBUTE2 = X_ATTRIBUTE2,
319     ATTRIBUTE3 = X_ATTRIBUTE3,
320     ATTRIBUTE4 = X_ATTRIBUTE4,
321     ATTRIBUTE5 = X_ATTRIBUTE5,
322     ATTRIBUTE6 = X_ATTRIBUTE6,
323     ATTRIBUTE7 = X_ATTRIBUTE7,
324     ATTRIBUTE8 = X_ATTRIBUTE8,
325     ATTRIBUTE9 = X_ATTRIBUTE9,
326     ATTRIBUTE10 = X_ATTRIBUTE10,
327     ATTRIBUTE11 = X_ATTRIBUTE11,
328     ATTRIBUTE12 = X_ATTRIBUTE12,
329     ATTRIBUTE13 = X_ATTRIBUTE13,
330     ATTRIBUTE14 = X_ATTRIBUTE14,
331     ATTRIBUTE15 = X_ATTRIBUTE15,
332     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
333     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
334     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
335     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
336 	STATUS_GROUP_ID = X_STATUS_GROUP_ID ,
337 	-- for security
338 	APPLICATION_ID = X_APPLICATION_ID,
339 	BUSINESS_USAGE = X_BUSINESS_USAGE
340   where ROWID = X_ROWID;
341 
342   if (sql%notfound) then
343     raise no_data_found;
344   end if;
345 
346   else
347     raise G_EXP_DUP_RECORD;
348   end if;
349 
350 Exception
351   when G_EXP_DUP_RECORD then
352     --x_return_status := G_RET_STS_ERROR;
353     Fnd_Message.Set_Name('CS', 'CS_ALL_DUPLICATE_RECORD');
354     Fnd_Msg_Pub.Add;
355 
356   When Others then
357     app_exception.raise_exception('ERROR','12',SQLERRM);
358 
359 end UPDATE_ROW;
360 
361 procedure DELETE_ROW (
362   X_INCIDENT_TYPE_ID in NUMBER,
363   X_RESPONSIBILITY_ID in NUMBER,
364   -- for security
365   X_APPLICATION_ID in NUMBER
366 ) is
367 begin
368   delete from CS_SR_TYPE_MAPPING
369   where INCIDENT_TYPE_ID = X_INCIDENT_TYPE_ID
370     and RESPONSIBILITY_ID = X_RESPONSIBILITY_ID
371     and APPLICATION_ID = X_APPLICATION_ID;
372 
373   if (sql%notfound) then
374     raise no_data_found;
375   end if;
376 
377 Exception
378   When Others then
379     app_exception.raise_exception('ERROR','12',SQLERRM);
380 
381  end DELETE_ROW;
382 
383 end CS_SR_TYPES_MAPPING_PKG;