DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_RESP_PARTIES_PKG

Source


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