DBA Data[Home] [Help]

PACKAGE BODY: APPS.FTP_REPRICE_PATTERN_PKG

Source


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