[Home] [Help]
PACKAGE BODY: APPS.HZ_STYLE_FMT_LOCALES_PKG
Source
1 package body HZ_STYLE_FMT_LOCALES_PKG as
2 /* $Header: ARHPSFLB.pls 115.8 2004/02/25 23:15:15 geliu noship $ */
3
4 L_USER_ID_FOR_SEED NUMBER := NULL;
5
6 procedure INSERT_ROW (
7 X_ROWID in out NOCOPY VARCHAR2,
8 X_STYLE_FMT_LOCALE_ID in out NOCOPY NUMBER,
9 X_STYLE_FORMAT_CODE in VARCHAR2,
10 X_LANGUAGE_CODE in VARCHAR2,
11 X_TERRITORY_CODE in VARCHAR2,
12 X_START_DATE_ACTIVE in DATE,
13 X_END_DATE_ACTIVE in DATE,
14 X_OBJECT_VERSION_NUMBER in NUMBER
15 ) is
16 cursor C is select ROWID from HZ_STYLE_FMT_LOCALES
17 where STYLE_FMT_LOCALE_ID = X_STYLE_FMT_LOCALE_ID
18 ;
19 begin
20 insert into HZ_STYLE_FMT_LOCALES (
21 STYLE_FMT_LOCALE_ID,
22 STYLE_FORMAT_CODE,
23 LANGUAGE_CODE,
24 TERRITORY_CODE,
25 START_DATE_ACTIVE,
26 END_DATE_ACTIVE,
27 CREATED_BY,
28 CREATION_DATE,
29 LAST_UPDATE_LOGIN,
30 LAST_UPDATE_DATE,
31 LAST_UPDATED_BY,
32 OBJECT_VERSION_NUMBER
33 ) values (
34 DECODE( X_STYLE_FMT_LOCALE_ID, FND_API.G_MISS_NUM, HZ_STYLE_FMT_LOCALES_S.NEXTVAL, NULL, HZ_STYLE_FMT_LOCALES_S.NEXTVAL, X_STYLE_FMT_LOCALE_ID ),
35 DECODE( X_STYLE_FORMAT_CODE, FND_API.G_MISS_CHAR, NULL, X_STYLE_FORMAT_CODE ),
36 DECODE( X_LANGUAGE_CODE, FND_API.G_MISS_CHAR, NULL, X_LANGUAGE_CODE ),
37 DECODE( X_TERRITORY_CODE, FND_API.G_MISS_CHAR, NULL, X_TERRITORY_CODE ),
38 DECODE( X_START_DATE_ACTIVE, FND_API.G_MISS_DATE, NULL, X_START_DATE_ACTIVE ),
39 DECODE( X_END_DATE_ACTIVE, FND_API.G_MISS_DATE, NULL, X_END_DATE_ACTIVE ),
40 NVL(L_USER_ID_FOR_SEED,HZ_UTILITY_V2PUB.CREATED_BY),
41 HZ_UTILITY_V2PUB.CREATION_DATE,
42 NVL(L_USER_ID_FOR_SEED,HZ_UTILITY_V2PUB.LAST_UPDATE_LOGIN),
43 HZ_UTILITY_V2PUB.LAST_UPDATE_DATE,
44 NVL(L_USER_ID_FOR_SEED,HZ_UTILITY_V2PUB.LAST_UPDATED_BY),
45 DECODE( X_OBJECT_VERSION_NUMBER, FND_API.G_MISS_NUM, NULL, X_OBJECT_VERSION_NUMBER )
46 ) RETURNING
47 STYLE_FMT_LOCALE_ID
48 INTO
49 X_STYLE_FMT_LOCALE_ID;
50
51 open c;
52 fetch c into X_ROWID;
53 if (c%notfound) then
54 close c;
55 raise no_data_found;
56 end if;
57 close c;
58
59 end INSERT_ROW;
60
61 procedure LOCK_ROW (
62 X_STYLE_FMT_LOCALE_ID in NUMBER,
63 X_STYLE_FORMAT_CODE in VARCHAR2,
64 X_LANGUAGE_CODE in VARCHAR2,
65 X_TERRITORY_CODE in VARCHAR2
66 ) is
67 cursor c is select
68 STYLE_FORMAT_CODE,
69 LANGUAGE_CODE,
70 TERRITORY_CODE
71 from HZ_STYLE_FMT_LOCALES
72 where STYLE_FMT_LOCALE_ID = X_STYLE_FMT_LOCALE_ID
73 for update of LANGUAGE_CODE nowait;
74 recinfo c%rowtype;
75
76 begin
77 open c;
78 fetch c into recinfo;
79 if (c%notfound) then
80 close c;
81 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
82 app_exception.raise_exception;
83 end if;
84 close c;
85 if ( (recinfo.STYLE_FORMAT_CODE = X_STYLE_FORMAT_CODE)
86 AND (recinfo.LANGUAGE_CODE = X_LANGUAGE_CODE)
87 AND (recinfo.TERRITORY_CODE = X_TERRITORY_CODE)
88 ) then
89 null;
90 else
91 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
92 app_exception.raise_exception;
93 end if;
94
95 return;
96 end LOCK_ROW;
97
98 procedure UPDATE_ROW (
99 X_STYLE_FMT_LOCALE_ID in NUMBER,
100 X_STYLE_FORMAT_CODE in VARCHAR2,
101 X_LANGUAGE_CODE in VARCHAR2,
102 X_TERRITORY_CODE in VARCHAR2,
103 X_START_DATE_ACTIVE in DATE,
104 X_END_DATE_ACTIVE in DATE,
105 X_OBJECT_VERSION_NUMBER in NUMBER
106 ) is
107 begin
108
109 update HZ_STYLE_FMT_LOCALES set
110 STYLE_FORMAT_CODE = DECODE( X_STYLE_FORMAT_CODE, NULL, STYLE_FORMAT_CODE, FND_API.G_MISS_CHAR, NULL, X_STYLE_FORMAT_CODE ),
111 LANGUAGE_CODE = DECODE( X_LANGUAGE_CODE, NULL, LANGUAGE_CODE, FND_API.G_MISS_CHAR, NULL, X_LANGUAGE_CODE ),
112 TERRITORY_CODE = DECODE( X_TERRITORY_CODE, NULL, TERRITORY_CODE, FND_API.G_MISS_CHAR, NULL, X_TERRITORY_CODE ),
113 START_DATE_ACTIVE = DECODE( X_START_DATE_ACTIVE, NULL, START_DATE_ACTIVE, FND_API.G_MISS_DATE, NULL, X_START_DATE_ACTIVE ),
114 END_DATE_ACTIVE = DECODE( X_END_DATE_ACTIVE, NULL, END_DATE_ACTIVE, FND_API.G_MISS_DATE, NULL, X_END_DATE_ACTIVE ),
115 LAST_UPDATE_DATE = HZ_UTILITY_V2PUB.LAST_UPDATE_DATE,
116 LAST_UPDATED_BY = NVL(L_USER_ID_FOR_SEED,HZ_UTILITY_V2PUB.LAST_UPDATED_BY),
117 LAST_UPDATE_LOGIN = NVL(L_USER_ID_FOR_SEED,HZ_UTILITY_V2PUB.LAST_UPDATE_LOGIN),
118 OBJECT_VERSION_NUMBER = DECODE(X_OBJECT_VERSION_NUMBER, NULL, OBJECT_VERSION_NUMBER,
119 FND_API.G_MISS_NUM, NULL, X_OBJECT_VERSION_NUMBER)
120 where STYLE_FMT_LOCALE_ID = X_STYLE_FMT_LOCALE_ID;
121
122 if (sql%notfound) then
123 raise no_data_found;
124 end if;
125
126 end UPDATE_ROW;
127
128 PROCEDURE SELECT_ROW (
129 X_STYLE_FMT_LOCALE_ID IN OUT NOCOPY NUMBER,
130 X_STYLE_FORMAT_CODE OUT NOCOPY VARCHAR2,
131 X_LANGUAGE_CODE OUT NOCOPY VARCHAR2,
132 X_TERRITORY_CODE OUT NOCOPY VARCHAR2,
133 X_START_DATE_ACTIVE OUT NOCOPY DATE,
134 X_END_DATE_ACTIVE OUT NOCOPY DATE
135 ) IS
136 BEGIN
137 SELECT
138 NVL( STYLE_FMT_LOCALE_ID, FND_API.G_MISS_NUM ),
139 NVL( STYLE_FORMAT_CODE, FND_API.G_MISS_CHAR ),
140 NVL( LANGUAGE_CODE, FND_API.G_MISS_CHAR ),
141 NVL( TERRITORY_CODE, FND_API.G_MISS_CHAR ),
142 NVL( START_DATE_ACTIVE, FND_API.G_MISS_DATE ),
143 NVL( END_DATE_ACTIVE, FND_API.G_MISS_DATE )
144 INTO X_STYLE_FMT_LOCALE_ID,
145 X_STYLE_FORMAT_CODE,
146 X_LANGUAGE_CODE,
147 X_TERRITORY_CODE,
148 X_START_DATE_ACTIVE,
149 X_END_DATE_ACTIVE
150 FROM HZ_STYLE_FMT_LOCALES
151 WHERE STYLE_FMT_LOCALE_ID = X_STYLE_FMT_LOCALE_ID ;
152
153 EXCEPTION
154 WHEN NO_DATA_FOUND THEN
155 FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_NO_RECORD' );
156 FND_MESSAGE.SET_TOKEN( 'RECORD', 'style_fmt_locale_rec');
157 FND_MESSAGE.SET_TOKEN( 'VALUE', 'STYLE_FMT_LOCALE_ID' );
158 FND_MSG_PUB.ADD;
159 RAISE FND_API.G_EXC_ERROR;
160
161 END SELECT_ROW;
162
163
164
165 procedure DELETE_ROW (
166 X_STYLE_FMT_LOCALE_ID in NUMBER
167 ) is
168 begin
169 delete from HZ_STYLE_FMT_LOCALES
170 where STYLE_FMT_LOCALE_ID = X_STYLE_FMT_LOCALE_ID;
171
172 if (sql%notfound) then
173 raise no_data_found;
174 end if;
175 end DELETE_ROW;
176
177 procedure ADD_LANGUAGE
178 is
179 begin
180 null;
181 end ADD_LANGUAGE;
182
183 procedure LOAD_ROW (
184 X_STYLE_FORMAT_CODE in VARCHAR2,
185 X_LANGUAGE_CODE in VARCHAR2,
186 X_TERRITORY_CODE in VARCHAR2,
187 X_START_DATE_ACTIVE in DATE,
188 X_END_DATE_ACTIVE in DATE,
189 X_OWNER in VARCHAR2, -- "SEED" or "CUSTOM"
190 X_LAST_UPDATE_DATE in DATE,
191 X_CUSTOM_MODE in VARCHAR2
192 ) is
193 l_id number;
194 l_f_luby number; -- entity owner in file
195 l_f_ludate date; -- entity update date in file
196 l_db_luby number; -- entity owner in db
197 l_db_ludate date; -- entity update date in db
198 l_rowid varchar2(64);
199 l_object_version_number number;
200 begin
201
202 -- Translate owner to file_last_updated_by
203 if (x_owner = 'SEED') then
204 l_f_luby := 1;
205 L_USER_ID_FOR_SEED := 1;
206 else
207 l_f_luby := 0;
208 end if;
209
210 -- Get last update date of ldt entity
211 l_f_ludate := nvl(x_last_update_date, sysdate);
212
213 begin
214
215 select STYLE_FMT_LOCALE_ID, LAST_UPDATED_BY, LAST_UPDATE_DATE, OBJECT_VERSION_NUMBER
216 into l_id, l_db_luby, l_db_ludate, l_object_version_number
217 from HZ_STYLE_FMT_LOCALES
218 where STYLE_FORMAT_CODE = x_style_format_code
219 and nvl(LANGUAGE_CODE,'XXXX') = nvl(x_language_code,'XXXX')
220 and nvl(TERRITORY_CODE,'XX') = nvl(x_territory_code,'XX');
221
222 -- Update record, honoring customization mode.
223 -- Record should be updated only if:
224 -- a. CUSTOM_MODE = FORCE, or
225 -- b. file owner is CUSTOM, db owner is SEED
226 -- c. owners are the same, and file_date > db_date
227
228 if ((x_custom_mode = 'FORCE') or
229 ((l_f_luby = 0) and (l_db_luby = 1)) or
230 ((l_f_luby = l_db_luby) and (l_f_ludate > l_db_ludate)))
231 then
232 hz_style_fmt_locales_pkg.update_row (
233 X_STYLE_FMT_LOCALE_ID => l_id,
234 X_STYLE_FORMAT_CODE => X_STYLE_FORMAT_CODE,
235 X_LANGUAGE_CODE => X_LANGUAGE_CODE,
236 X_TERRITORY_CODE => X_TERRITORY_CODE,
237 X_START_DATE_ACTIVE => X_START_DATE_ACTIVE,
238 X_END_DATE_ACTIVE => X_END_DATE_ACTIVE,
239 X_OBJECT_VERSION_NUMBER => l_object_version_number
240 );
241 end if;
242
243 exception
244 when no_data_found then
245 -- record not found, insert in all cases
246 hz_style_fmt_locales_pkg.insert_row(
247 x_rowid => l_rowid,
248 x_style_fmt_locale_id => l_id, -- will be generated
249 x_style_format_code => X_STYLE_FORMAT_CODE,
250 x_language_code => X_LANGUAGE_CODE,
251 x_territory_code => X_TERRITORY_CODE,
252 x_start_date_active => X_START_DATE_ACTIVE,
253 x_end_date_active => X_END_DATE_ACTIVE,
254 x_object_version_number => 1
255 );
256 end;
257
258 end LOAD_ROW;
259
260 end HZ_STYLE_FMT_LOCALES_PKG;