DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_DELIVERABLE_TYPES_PKG

Source


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