DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_INCIDENTS_PURGE_AUDIT_PKG

Source


1 package body CS_INCIDENTS_PURGE_AUDIT_PKG as
2 /* $Header: csthipab.pls 120.0 2005/10/27 15:45:08 aneemuch noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_INCIDENT_ID in NUMBER,
6   X_PURGED_BY in NUMBER,
7   X_INCIDENT_NUMBER in VARCHAR2,
8   X_INCIDENT_TYPE_ID in NUMBER,
9   X_CUSTOMER_ID in NUMBER,
10   X_INVENTORY_ITEM_ID in NUMBER,
11   X_INV_ORGANIZATION_ID in NUMBER,
12   X_CUSTOMER_PRODUCT_ID in NUMBER,
13   X_INC_CREATION_DATE in DATE,
14   X_INC_LAST_UPDATE_DATE in DATE,
15   X_PURGED_DATE in DATE,
16   X_PURGE_ID in NUMBER,
17   X_SUMMARY in VARCHAR2,
18   X_CREATION_DATE in DATE,
19   X_CREATED_BY in NUMBER,
20   X_LAST_UPDATE_DATE in DATE,
21   X_LAST_UPDATED_BY in NUMBER,
22   X_LAST_UPDATE_LOGIN in NUMBER
23 ) is
24   cursor C is select ROWID from CS_INCIDENTS_PURGE_AUDIT_B
25     where INCIDENT_ID = X_INCIDENT_ID
26     ;
27 begin
28   insert into CS_INCIDENTS_PURGE_AUDIT_B (
29     PURGED_BY,
30     INCIDENT_ID,
31     INCIDENT_NUMBER,
32     INCIDENT_TYPE_ID,
33     CUSTOMER_ID,
34     INVENTORY_ITEM_ID,
35     INV_ORGANIZATION_ID,
36     CUSTOMER_PRODUCT_ID,
37     INC_CREATION_DATE,
38     INC_LAST_UPDATE_DATE,
39     PURGED_DATE,
40     PURGE_ID,
41     CREATION_DATE,
42     CREATED_BY,
43     LAST_UPDATE_DATE,
44     LAST_UPDATED_BY,
45     LAST_UPDATE_LOGIN
46   ) values (
47     X_PURGED_BY,
48     X_INCIDENT_ID,
49     X_INCIDENT_NUMBER,
50     X_INCIDENT_TYPE_ID,
51     X_CUSTOMER_ID,
52     X_INVENTORY_ITEM_ID,
53     X_INV_ORGANIZATION_ID,
54     X_CUSTOMER_PRODUCT_ID,
55     X_INC_CREATION_DATE,
56     X_INC_LAST_UPDATE_DATE,
57     X_PURGED_DATE,
58     X_PURGE_ID,
59     X_CREATION_DATE,
60     X_CREATED_BY,
61     X_LAST_UPDATE_DATE,
62     X_LAST_UPDATED_BY,
63     X_LAST_UPDATE_LOGIN
64   );
65 
66   insert into CS_INCIDENTS_PURGE_AUDIT_TL (
67     PURGE_ID,
68     INCIDENT_ID,
69     SUMMARY,
70     CREATION_DATE,
71     CREATED_BY,
72     LAST_UPDATE_DATE,
73     LAST_UPDATED_BY,
74     LAST_UPDATE_LOGIN,
75     LANGUAGE,
76     SOURCE_LANG
77   ) select
78     X_PURGE_ID,
79     X_INCIDENT_ID,
80     X_SUMMARY,
81     X_CREATION_DATE,
82     X_CREATED_BY,
83     X_LAST_UPDATE_DATE,
84     X_LAST_UPDATED_BY,
85     X_LAST_UPDATE_LOGIN,
86     L.LANGUAGE_CODE,
87     userenv('LANG')
88   from FND_LANGUAGES L
89   where L.INSTALLED_FLAG in ('I', 'B')
90   and not exists
91     (select NULL
92     from CS_INCIDENTS_PURGE_AUDIT_TL T
93     where T.INCIDENT_ID = X_INCIDENT_ID
94     and T.LANGUAGE = L.LANGUAGE_CODE);
95 
96   open c;
97   fetch c into X_ROWID;
98   if (c%notfound) then
99     close c;
100     raise no_data_found;
101   end if;
102   close c;
103 
104 end INSERT_ROW;
105 
106 procedure LOCK_ROW (
107   X_INCIDENT_ID in NUMBER,
108   X_PURGED_BY in NUMBER,
109   X_INCIDENT_NUMBER in VARCHAR2,
110   X_INCIDENT_TYPE_ID in NUMBER,
111   X_CUSTOMER_ID in NUMBER,
112   X_INVENTORY_ITEM_ID in NUMBER,
113   X_INV_ORGANIZATION_ID in NUMBER,
114   X_CUSTOMER_PRODUCT_ID in NUMBER,
115   X_INC_CREATION_DATE in DATE,
116   X_INC_LAST_UPDATE_DATE in DATE,
117   X_PURGED_DATE in DATE,
118   X_PURGE_ID in NUMBER,
119   X_SUMMARY in VARCHAR2
120 ) is
121   cursor c is select
122       PURGED_BY,
123       INCIDENT_NUMBER,
124       INCIDENT_TYPE_ID,
125       CUSTOMER_ID,
126       INVENTORY_ITEM_ID,
127       INV_ORGANIZATION_ID,
128       CUSTOMER_PRODUCT_ID,
129       INC_CREATION_DATE,
130       INC_LAST_UPDATE_DATE,
131       PURGED_DATE,
132       PURGE_ID
133     from CS_INCIDENTS_PURGE_AUDIT_B
134     where INCIDENT_ID = X_INCIDENT_ID
135     for update of INCIDENT_ID nowait;
136   recinfo c%rowtype;
137 
138   cursor c1 is select
139       SUMMARY,
140       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
141     from CS_INCIDENTS_PURGE_AUDIT_TL
142     where INCIDENT_ID = X_INCIDENT_ID
143     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
144     for update of INCIDENT_ID nowait;
145 begin
146   open c;
147   fetch c into recinfo;
148   if (c%notfound) then
149     close c;
150     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
151     app_exception.raise_exception;
152   end if;
153   close c;
154   if (    (recinfo.PURGED_BY = X_PURGED_BY)
155       AND (recinfo.INCIDENT_NUMBER = X_INCIDENT_NUMBER)
156       AND (recinfo.INCIDENT_TYPE_ID = X_INCIDENT_TYPE_ID)
157       AND ((recinfo.CUSTOMER_ID = X_CUSTOMER_ID)
158            OR ((recinfo.CUSTOMER_ID is null) AND (X_CUSTOMER_ID is null)))
159       AND ((recinfo.INVENTORY_ITEM_ID = X_INVENTORY_ITEM_ID)
160            OR ((recinfo.INVENTORY_ITEM_ID is null) AND (X_INVENTORY_ITEM_ID is null)))
161       AND ((recinfo.INV_ORGANIZATION_ID = X_INV_ORGANIZATION_ID)
162            OR ((recinfo.INV_ORGANIZATION_ID is null) AND (X_INV_ORGANIZATION_ID is null)))
163       AND ((recinfo.CUSTOMER_PRODUCT_ID = X_CUSTOMER_PRODUCT_ID)
164            OR ((recinfo.CUSTOMER_PRODUCT_ID is null) AND (X_CUSTOMER_PRODUCT_ID is null)))
165       AND (recinfo.INC_CREATION_DATE = X_INC_CREATION_DATE)
166       AND (recinfo.INC_LAST_UPDATE_DATE = X_INC_LAST_UPDATE_DATE)
167       AND (recinfo.PURGED_DATE = X_PURGED_DATE)
168       AND (recinfo.PURGE_ID = X_PURGE_ID)
169   ) then
170     null;
171   else
172     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
173     app_exception.raise_exception;
174   end if;
175 
176   for tlinfo in c1 loop
177     if (tlinfo.BASELANG = 'Y') then
178       if (    (tlinfo.SUMMARY = X_SUMMARY)
179       ) then
180         null;
181       else
182         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
183         app_exception.raise_exception;
184       end if;
185     end if;
186   end loop;
187   return;
188 end LOCK_ROW;
189 
190 procedure UPDATE_ROW (
191   X_INCIDENT_ID in NUMBER,
192   X_PURGED_BY in NUMBER,
193   X_INCIDENT_NUMBER in VARCHAR2,
194   X_INCIDENT_TYPE_ID in NUMBER,
195   X_CUSTOMER_ID in NUMBER,
196   X_INVENTORY_ITEM_ID in NUMBER,
197   X_INV_ORGANIZATION_ID in NUMBER,
198   X_CUSTOMER_PRODUCT_ID in NUMBER,
199   X_INC_CREATION_DATE in DATE,
200   X_INC_LAST_UPDATE_DATE in DATE,
201   X_PURGED_DATE in DATE,
202   X_PURGE_ID in NUMBER,
203   X_SUMMARY in VARCHAR2,
204   X_LAST_UPDATE_DATE in DATE,
205   X_LAST_UPDATED_BY in NUMBER,
206   X_LAST_UPDATE_LOGIN in NUMBER
207 ) is
208 begin
209   update CS_INCIDENTS_PURGE_AUDIT_B set
210     PURGED_BY = X_PURGED_BY,
211     INCIDENT_NUMBER = X_INCIDENT_NUMBER,
212     INCIDENT_TYPE_ID = X_INCIDENT_TYPE_ID,
213     CUSTOMER_ID = X_CUSTOMER_ID,
214     INVENTORY_ITEM_ID = X_INVENTORY_ITEM_ID,
215     INV_ORGANIZATION_ID = X_INV_ORGANIZATION_ID,
216     CUSTOMER_PRODUCT_ID = X_CUSTOMER_PRODUCT_ID,
217     INC_CREATION_DATE = X_INC_CREATION_DATE,
218     INC_LAST_UPDATE_DATE = X_INC_LAST_UPDATE_DATE,
219     PURGED_DATE = X_PURGED_DATE,
220     PURGE_ID = X_PURGE_ID,
221     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
222     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
223     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
224   where INCIDENT_ID = X_INCIDENT_ID;
225 
226   if (sql%notfound) then
227     raise no_data_found;
228   end if;
229 
230   update CS_INCIDENTS_PURGE_AUDIT_TL set
231     SUMMARY = X_SUMMARY,
232     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
233     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
234     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
235     SOURCE_LANG = userenv('LANG')
236   where INCIDENT_ID = X_INCIDENT_ID
237   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
238 
239   if (sql%notfound) then
240     raise no_data_found;
241   end if;
242 end UPDATE_ROW;
243 
244 procedure DELETE_ROW (
245   X_INCIDENT_ID in NUMBER
246 ) is
247 begin
248   delete from CS_INCIDENTS_PURGE_AUDIT_TL
249   where INCIDENT_ID = X_INCIDENT_ID;
250 
251   if (sql%notfound) then
252     raise no_data_found;
253   end if;
254 
255   delete from CS_INCIDENTS_PURGE_AUDIT_B
256   where INCIDENT_ID = X_INCIDENT_ID;
257 
258   if (sql%notfound) then
259     raise no_data_found;
260   end if;
261 end DELETE_ROW;
262 
263 procedure ADD_LANGUAGE
264 is
265 begin
266   delete from CS_INCIDENTS_PURGE_AUDIT_TL T
267   where not exists
268     (select NULL
269     from CS_INCIDENTS_PURGE_AUDIT_B B
270     where B.INCIDENT_ID = T.INCIDENT_ID
271     );
272 
273   update CS_INCIDENTS_PURGE_AUDIT_TL T set (
274       SUMMARY
275     ) = (select
276       B.SUMMARY
277     from CS_INCIDENTS_PURGE_AUDIT_TL B
278     where B.INCIDENT_ID = T.INCIDENT_ID
279     and B.LANGUAGE = T.SOURCE_LANG)
280   where (
281       T.INCIDENT_ID,
282       T.LANGUAGE
283   ) in (select
284       SUBT.INCIDENT_ID,
285       SUBT.LANGUAGE
286     from CS_INCIDENTS_PURGE_AUDIT_TL SUBB, CS_INCIDENTS_PURGE_AUDIT_TL SUBT
287     where SUBB.INCIDENT_ID = SUBT.INCIDENT_ID
288     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
289     and (SUBB.SUMMARY <> SUBT.SUMMARY
290   ));
291 
292   insert into CS_INCIDENTS_PURGE_AUDIT_TL (
293     PURGE_ID,
294     INCIDENT_ID,
295     SUMMARY,
296     CREATION_DATE,
297     CREATED_BY,
298     LAST_UPDATE_DATE,
299     LAST_UPDATED_BY,
300     LAST_UPDATE_LOGIN,
301     LANGUAGE,
302     SOURCE_LANG
303   ) select /*+ ORDERED */
304     B.PURGE_ID,
305     B.INCIDENT_ID,
306     B.SUMMARY,
307     B.CREATION_DATE,
308     B.CREATED_BY,
309     B.LAST_UPDATE_DATE,
310     B.LAST_UPDATED_BY,
311     B.LAST_UPDATE_LOGIN,
312     L.LANGUAGE_CODE,
313     B.SOURCE_LANG
314   from CS_INCIDENTS_PURGE_AUDIT_TL B, FND_LANGUAGES L
315   where L.INSTALLED_FLAG in ('I', 'B')
316   and B.LANGUAGE = userenv('LANG')
317   and not exists
318     (select NULL
319     from CS_INCIDENTS_PURGE_AUDIT_TL T
320     where T.INCIDENT_ID = B.INCIDENT_ID
321     and T.LANGUAGE = L.LANGUAGE_CODE);
322 end ADD_LANGUAGE;
323 
324 end CS_INCIDENTS_PURGE_AUDIT_PKG;