DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSD_RETURN_TYPES_PKG

Source


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