DBA Data[Home] [Help]

PACKAGE BODY: APPS.PO_COMMODITIES_PKG

Source


1 package body PO_COMMODITIES_PKG as
2 /* $Header: POXCOBJB.pls 115.0 2003/06/05 22:29:10 jazhang noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_COMMODITY_ID in NUMBER,
6   X_COMMODITY_CODE in VARCHAR2,
7   X_ACTIVE_FLAG in VARCHAR2,
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 PO_COMMODITIES_B
17     where COMMODITY_ID = X_COMMODITY_ID
18     ;
19 begin
20   insert into PO_COMMODITIES_B (
21     COMMODITY_ID,
22     COMMODITY_CODE,
23     ACTIVE_FLAG,
24     CREATION_DATE,
25     CREATED_BY,
26     LAST_UPDATE_DATE,
27     LAST_UPDATED_BY,
28     LAST_UPDATE_LOGIN
29   ) values (
30     X_COMMODITY_ID,
31     X_COMMODITY_CODE,
32     X_ACTIVE_FLAG,
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 PO_COMMODITIES_TL (
41     COMMODITY_ID,
42     NAME,
43     DESCRIPTION,
44     CREATION_DATE,
45     CREATED_BY,
46     LAST_UPDATE_DATE,
47     LAST_UPDATED_BY,
48     LAST_UPDATE_LOGIN,
49     LANGUAGE,
50     SOURCE_LANG
51   ) select
52     X_COMMODITY_ID,
53     X_NAME,
54     X_DESCRIPTION,
55     X_CREATION_DATE,
56     X_CREATED_BY,
57     X_LAST_UPDATE_DATE,
58     X_LAST_UPDATED_BY,
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 PO_COMMODITIES_TL T
67     where T.COMMODITY_ID = X_COMMODITY_ID
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_COMMODITY_ID in NUMBER,
82   X_COMMODITY_CODE in VARCHAR2,
83   X_ACTIVE_FLAG in VARCHAR2,
84   X_NAME in VARCHAR2,
85   X_DESCRIPTION in VARCHAR2
86 ) is
87   cursor c is select
88       COMMODITY_CODE,
89       ACTIVE_FLAG
90     from PO_COMMODITIES_B
91     where COMMODITY_ID = X_COMMODITY_ID
92     for update of COMMODITY_ID 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 PO_COMMODITIES_TL
100     where COMMODITY_ID = X_COMMODITY_ID
101     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
102     for update of COMMODITY_ID 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.COMMODITY_CODE = X_COMMODITY_CODE)
113       AND (recinfo.ACTIVE_FLAG = X_ACTIVE_FLAG)
114   ) then
115     null;
116   else
117     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
118     app_exception.raise_exception;
119   end if;
120 
121   for tlinfo in c1 loop
122     if (tlinfo.BASELANG = 'Y') then
123       if (    (tlinfo.NAME = X_NAME)
124           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
125                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
126       ) then
127         null;
128       else
129         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
130         app_exception.raise_exception;
131       end if;
132     end if;
133   end loop;
134   return;
135 end LOCK_ROW;
136 
137 procedure UPDATE_ROW (
138   X_COMMODITY_ID in NUMBER,
139   X_COMMODITY_CODE in VARCHAR2,
140   X_ACTIVE_FLAG in VARCHAR2,
141   X_NAME in VARCHAR2,
142   X_DESCRIPTION in VARCHAR2,
143   X_LAST_UPDATE_DATE in DATE,
144   X_LAST_UPDATED_BY in NUMBER,
145   X_LAST_UPDATE_LOGIN in NUMBER
146 ) is
147 begin
148   update PO_COMMODITIES_B set
149     COMMODITY_CODE = X_COMMODITY_CODE,
150     ACTIVE_FLAG = X_ACTIVE_FLAG,
151     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
152     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
153     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
154   where COMMODITY_ID = X_COMMODITY_ID;
155 
156   if (sql%notfound) then
157     raise no_data_found;
158   end if;
159 
160   update PO_COMMODITIES_TL set
161     NAME = X_NAME,
162     DESCRIPTION = X_DESCRIPTION,
163     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
164     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
165     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
166     SOURCE_LANG = userenv('LANG')
167   where COMMODITY_ID = X_COMMODITY_ID
168   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
169 
170   if (sql%notfound) then
171     raise no_data_found;
172   end if;
173 end UPDATE_ROW;
174 
175 procedure DELETE_ROW (
176   X_COMMODITY_ID in NUMBER
177 ) is
178 begin
179   delete from PO_COMMODITIES_TL
180   where COMMODITY_ID = X_COMMODITY_ID;
181 
182   if (sql%notfound) then
183     raise no_data_found;
184   end if;
185 
186   delete from PO_COMMODITIES_B
187   where COMMODITY_ID = X_COMMODITY_ID;
188 
189   if (sql%notfound) then
190     raise no_data_found;
191   end if;
192 end DELETE_ROW;
193 
194 procedure ADD_LANGUAGE
195 is
196 begin
197   delete from PO_COMMODITIES_TL T
198   where not exists
199     (select NULL
200     from PO_COMMODITIES_B B
201     where B.COMMODITY_ID = T.COMMODITY_ID
202     );
203 
204   update PO_COMMODITIES_TL T set (
205       NAME,
206       DESCRIPTION
207     ) = (select
208       B.NAME,
209       B.DESCRIPTION
210     from PO_COMMODITIES_TL B
211     where B.COMMODITY_ID = T.COMMODITY_ID
212     and B.LANGUAGE = T.SOURCE_LANG)
213   where (
214       T.COMMODITY_ID,
215       T.LANGUAGE
216   ) in (select
217       SUBT.COMMODITY_ID,
218       SUBT.LANGUAGE
219     from PO_COMMODITIES_TL SUBB, PO_COMMODITIES_TL SUBT
220     where SUBB.COMMODITY_ID = SUBT.COMMODITY_ID
221     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
222     and (SUBB.NAME <> SUBT.NAME
223       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
224       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
225       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
226   ));
227 
228   insert into PO_COMMODITIES_TL (
229     COMMODITY_ID,
230     NAME,
231     DESCRIPTION,
232     CREATION_DATE,
233     CREATED_BY,
234     LAST_UPDATE_DATE,
235     LAST_UPDATED_BY,
236     LAST_UPDATE_LOGIN,
237     LANGUAGE,
238     SOURCE_LANG
239   ) select /*+ ORDERED */
240     B.COMMODITY_ID,
241     B.NAME,
242     B.DESCRIPTION,
243     B.CREATION_DATE,
244     B.CREATED_BY,
245     B.LAST_UPDATE_DATE,
246     B.LAST_UPDATED_BY,
247     B.LAST_UPDATE_LOGIN,
248     L.LANGUAGE_CODE,
249     B.SOURCE_LANG
250   from PO_COMMODITIES_TL B, FND_LANGUAGES L
251   where L.INSTALLED_FLAG in ('I', 'B')
252   and B.LANGUAGE = userenv('LANG')
253   and not exists
254     (select NULL
255     from PO_COMMODITIES_TL T
256     where T.COMMODITY_ID = B.COMMODITY_ID
257     and T.LANGUAGE = L.LANGUAGE_CODE);
258 end ADD_LANGUAGE;
259 
260 end PO_COMMODITIES_PKG;