1 package body SO_AGREEMENTS_PKG as
2 /* $Header: OEXAGGRB.pls 115.2 99/07/16 08:11:13 porting shi $ */
3 procedure INSERT_ROW (
4 X_ROWID in out VARCHAR2,
5 X_AGREEMENT_ID in NUMBER,
6 X_END_DATE_ACTIVE in DATE,
7 X_CONTEXT in VARCHAR2,
8 X_ATTRIBUTE1 in VARCHAR2,
9 X_ATTRIBUTE2 in VARCHAR2,
10 X_ATTRIBUTE3 in VARCHAR2,
11 X_ATTRIBUTE4 in VARCHAR2,
12 X_ATTRIBUTE5 in VARCHAR2,
13 X_ATTRIBUTE6 in VARCHAR2,
14 X_ATTRIBUTE7 in VARCHAR2,
15 X_ATTRIBUTE8 in VARCHAR2,
16 X_ATTRIBUTE9 in VARCHAR2,
17 X_ATTRIBUTE10 in VARCHAR2,
18 X_ATTRIBUTE11 in VARCHAR2,
19 X_ATTRIBUTE12 in VARCHAR2,
20 X_ATTRIBUTE13 in VARCHAR2,
21 X_ATTRIBUTE14 in VARCHAR2,
22 X_ATTRIBUTE15 in VARCHAR2,
23 X_AGREEMENT_TYPE_CODE in VARCHAR2,
24 X_PRICE_LIST_ID in NUMBER,
25 X_TERM_ID in NUMBER,
26 X_OVERRIDE_IRULE_FLAG in VARCHAR2,
27 X_OVERRIDE_ARULE_FLAG in VARCHAR2,
28 X_SIGNATURE_DATE in DATE,
29 X_AGREEMENT_NUM in VARCHAR2,
30 X_INVOICING_RULE_ID in NUMBER,
31 X_ACCOUNTING_RULE_ID in NUMBER,
32 X_CUSTOMER_ID in NUMBER,
33 X_PURCHASE_ORDER_NUM in VARCHAR2,
34 X_INVOICE_CONTACT_ID in NUMBER,
35 X_AGREEMENT_CONTACT_ID in NUMBER,
36 X_INVOICE_TO_SITE_USE_ID in NUMBER,
37 X_SALESREP_ID in NUMBER,
38 X_START_DATE_ACTIVE in DATE,
39 X_NAME in VARCHAR2,
40 X_CREATION_DATE in DATE,
41 X_CREATED_BY in NUMBER,
42 X_LAST_UPDATE_DATE in DATE,
43 X_LAST_UPDATED_BY in NUMBER,
44 X_LAST_UPDATE_LOGIN in NUMBER
45 ) is
46 cursor C is select ROWID from SO_AGREEMENTS_B
47 where AGREEMENT_ID = X_AGREEMENT_ID
48 ;
49 begin
50 insert into SO_AGREEMENTS_B (
51 END_DATE_ACTIVE,
52 CONTEXT,
53 ATTRIBUTE1,
54 ATTRIBUTE2,
55 ATTRIBUTE3,
56 ATTRIBUTE4,
57 ATTRIBUTE5,
58 ATTRIBUTE6,
59 ATTRIBUTE7,
60 ATTRIBUTE8,
61 ATTRIBUTE9,
62 ATTRIBUTE10,
63 ATTRIBUTE11,
64 ATTRIBUTE12,
65 ATTRIBUTE13,
66 ATTRIBUTE14,
67 ATTRIBUTE15,
68 AGREEMENT_ID,
69 AGREEMENT_TYPE_CODE,
70 PRICE_LIST_ID,
71 TERM_ID,
72 OVERRIDE_IRULE_FLAG,
73 OVERRIDE_ARULE_FLAG,
74 SIGNATURE_DATE,
75 AGREEMENT_NUM,
76 INVOICING_RULE_ID,
77 ACCOUNTING_RULE_ID,
78 CUSTOMER_ID,
79 PURCHASE_ORDER_NUM,
80 INVOICE_CONTACT_ID,
81 AGREEMENT_CONTACT_ID,
82 INVOICE_TO_SITE_USE_ID,
83 SALESREP_ID,
84 START_DATE_ACTIVE,
85 CREATION_DATE,
86 CREATED_BY,
87 LAST_UPDATE_DATE,
88 LAST_UPDATED_BY,
89 LAST_UPDATE_LOGIN
90 ) values (
91 X_END_DATE_ACTIVE,
92 X_CONTEXT,
93 X_ATTRIBUTE1,
94 X_ATTRIBUTE2,
95 X_ATTRIBUTE3,
96 X_ATTRIBUTE4,
97 X_ATTRIBUTE5,
98 X_ATTRIBUTE6,
99 X_ATTRIBUTE7,
100 X_ATTRIBUTE8,
101 X_ATTRIBUTE9,
102 X_ATTRIBUTE10,
103 X_ATTRIBUTE11,
104 X_ATTRIBUTE12,
105 X_ATTRIBUTE13,
106 X_ATTRIBUTE14,
107 X_ATTRIBUTE15,
108 X_AGREEMENT_ID,
109 X_AGREEMENT_TYPE_CODE,
110 X_PRICE_LIST_ID,
111 X_TERM_ID,
112 X_OVERRIDE_IRULE_FLAG,
113 X_OVERRIDE_ARULE_FLAG,
114 X_SIGNATURE_DATE,
115 X_AGREEMENT_NUM,
116 X_INVOICING_RULE_ID,
117 X_ACCOUNTING_RULE_ID,
118 X_CUSTOMER_ID,
119 X_PURCHASE_ORDER_NUM,
120 X_INVOICE_CONTACT_ID,
121 X_AGREEMENT_CONTACT_ID,
122 X_INVOICE_TO_SITE_USE_ID,
123 X_SALESREP_ID,
124 X_START_DATE_ACTIVE,
125 X_CREATION_DATE,
126 X_CREATED_BY,
127 X_LAST_UPDATE_DATE,
128 X_LAST_UPDATED_BY,
129 X_LAST_UPDATE_LOGIN
130 );
131
132 insert into SO_AGREEMENTS_TL (
133 AGREEMENT_ID,
134 NAME,
135 LAST_UPDATE_DATE,
136 LAST_UPDATED_BY,
137 CREATION_DATE,
138 CREATED_BY,
139 LAST_UPDATE_LOGIN,
140 LANGUAGE,
141 SOURCE_LANG
142 ) select
143 X_AGREEMENT_ID,
144 X_NAME,
145 X_LAST_UPDATE_DATE,
146 X_LAST_UPDATED_BY,
147 X_CREATION_DATE,
148 X_CREATED_BY,
149 X_LAST_UPDATE_LOGIN,
150 L.LANGUAGE_CODE,
151 userenv('LANG')
152 from FND_LANGUAGES L
153 where L.INSTALLED_FLAG in ('I', 'B')
154 and not exists
155 (select NULL
156 from SO_AGREEMENTS_TL T
157 where T.AGREEMENT_ID = X_AGREEMENT_ID
158 and T.LANGUAGE = L.LANGUAGE_CODE);
159
160 open c;
161 fetch c into X_ROWID;
162 if (c%notfound) then
163 close c;
164 raise no_data_found;
165 end if;
166 close c;
167
168 end INSERT_ROW;
169
170 procedure LOCK_ROW (
171 X_AGREEMENT_ID in NUMBER,
172 X_END_DATE_ACTIVE in DATE,
173 X_CONTEXT in VARCHAR2,
174 X_ATTRIBUTE1 in VARCHAR2,
175 X_ATTRIBUTE2 in VARCHAR2,
176 X_ATTRIBUTE3 in VARCHAR2,
177 X_ATTRIBUTE4 in VARCHAR2,
178 X_ATTRIBUTE5 in VARCHAR2,
179 X_ATTRIBUTE6 in VARCHAR2,
180 X_ATTRIBUTE7 in VARCHAR2,
181 X_ATTRIBUTE8 in VARCHAR2,
182 X_ATTRIBUTE9 in VARCHAR2,
183 X_ATTRIBUTE10 in VARCHAR2,
184 X_ATTRIBUTE11 in VARCHAR2,
185 X_ATTRIBUTE12 in VARCHAR2,
186 X_ATTRIBUTE13 in VARCHAR2,
187 X_ATTRIBUTE14 in VARCHAR2,
188 X_ATTRIBUTE15 in VARCHAR2,
189 X_AGREEMENT_TYPE_CODE in VARCHAR2,
190 X_PRICE_LIST_ID in NUMBER,
191 X_TERM_ID in NUMBER,
192 X_OVERRIDE_IRULE_FLAG in VARCHAR2,
193 X_OVERRIDE_ARULE_FLAG in VARCHAR2,
194 X_SIGNATURE_DATE in DATE,
195 X_AGREEMENT_NUM in VARCHAR2,
196 X_INVOICING_RULE_ID in NUMBER,
197 X_ACCOUNTING_RULE_ID in NUMBER,
198 X_CUSTOMER_ID in NUMBER,
199 X_PURCHASE_ORDER_NUM in VARCHAR2,
200 X_INVOICE_CONTACT_ID in NUMBER,
201 X_AGREEMENT_CONTACT_ID in NUMBER,
202 X_INVOICE_TO_SITE_USE_ID in NUMBER,
203 X_SALESREP_ID in NUMBER,
204 X_START_DATE_ACTIVE in DATE,
205 X_NAME in VARCHAR2
206 ) is
207 cursor c is select
208 END_DATE_ACTIVE,
209 CONTEXT,
210 ATTRIBUTE1,
211 ATTRIBUTE2,
212 ATTRIBUTE3,
213 ATTRIBUTE4,
214 ATTRIBUTE5,
215 ATTRIBUTE6,
216 ATTRIBUTE7,
217 ATTRIBUTE8,
218 ATTRIBUTE9,
219 ATTRIBUTE10,
220 ATTRIBUTE11,
221 ATTRIBUTE12,
222 ATTRIBUTE13,
223 ATTRIBUTE14,
224 ATTRIBUTE15,
225 AGREEMENT_TYPE_CODE,
226 PRICE_LIST_ID,
227 TERM_ID,
228 OVERRIDE_IRULE_FLAG,
229 OVERRIDE_ARULE_FLAG,
230 SIGNATURE_DATE,
231 AGREEMENT_NUM,
232 INVOICING_RULE_ID,
233 ACCOUNTING_RULE_ID,
234 CUSTOMER_ID,
235 PURCHASE_ORDER_NUM,
236 INVOICE_CONTACT_ID,
237 AGREEMENT_CONTACT_ID,
238 INVOICE_TO_SITE_USE_ID,
239 SALESREP_ID,
240 START_DATE_ACTIVE
241 from SO_AGREEMENTS_B
242 where AGREEMENT_ID = X_AGREEMENT_ID
243 for update of AGREEMENT_ID nowait;
244 recinfo c%rowtype;
245
246 cursor c1 is select
247 NAME,
248 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
249 from SO_AGREEMENTS_TL
250 where AGREEMENT_ID = X_AGREEMENT_ID
251 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
252 for update of AGREEMENT_ID nowait;
253 begin
254 open c;
255 fetch c into recinfo;
256 if (c%notfound) then
257 close c;
258 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
259 app_exception.raise_exception;
260 end if;
261 close c;
262 if ( ((recinfo.END_DATE_ACTIVE = X_END_DATE_ACTIVE)
263 OR ((recinfo.END_DATE_ACTIVE is null) AND (X_END_DATE_ACTIVE is null)))
264 AND ((recinfo.CONTEXT = X_CONTEXT)
265 OR ((recinfo.CONTEXT is null) AND (X_CONTEXT is null)))
266 AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
267 OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
268 AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
269 OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
270 AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
271 OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
272 AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
273 OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
274 AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
275 OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
276 AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
277 OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
278 AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
279 OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
280 AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
281 OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
282 AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
283 OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
284 AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
285 OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
286 AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
287 OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
288 AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
289 OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
290 AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
291 OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
292 AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
293 OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
294 AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
295 OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
296 AND (recinfo.AGREEMENT_TYPE_CODE = X_AGREEMENT_TYPE_CODE)
297 AND (recinfo.PRICE_LIST_ID = X_PRICE_LIST_ID)
298 AND (recinfo.TERM_ID = X_TERM_ID)
299 AND (recinfo.OVERRIDE_IRULE_FLAG = X_OVERRIDE_IRULE_FLAG)
300 AND (recinfo.OVERRIDE_ARULE_FLAG = X_OVERRIDE_ARULE_FLAG)
301 AND ((recinfo.SIGNATURE_DATE = X_SIGNATURE_DATE)
302 OR ((recinfo.SIGNATURE_DATE is null) AND (X_SIGNATURE_DATE is null)))
303 AND ((recinfo.AGREEMENT_NUM = X_AGREEMENT_NUM)
304 OR ((recinfo.AGREEMENT_NUM is null) AND (X_AGREEMENT_NUM is null)))
305 AND ((recinfo.INVOICING_RULE_ID = X_INVOICING_RULE_ID)
306 OR ((recinfo.INVOICING_RULE_ID is null) AND (X_INVOICING_RULE_ID is null)))
307 AND ((recinfo.ACCOUNTING_RULE_ID = X_ACCOUNTING_RULE_ID)
308 OR ((recinfo.ACCOUNTING_RULE_ID is null) AND (X_ACCOUNTING_RULE_ID is null)))
309 AND ((recinfo.CUSTOMER_ID = X_CUSTOMER_ID)
310 OR ((recinfo.CUSTOMER_ID is null) AND (X_CUSTOMER_ID is null)))
311 AND ((recinfo.PURCHASE_ORDER_NUM = X_PURCHASE_ORDER_NUM)
312 OR ((recinfo.PURCHASE_ORDER_NUM is null) AND (X_PURCHASE_ORDER_NUM is null)))
313 AND ((recinfo.INVOICE_CONTACT_ID = X_INVOICE_CONTACT_ID)
314 OR ((recinfo.INVOICE_CONTACT_ID is null) AND (X_INVOICE_CONTACT_ID is null)))
315 AND ((recinfo.AGREEMENT_CONTACT_ID = X_AGREEMENT_CONTACT_ID)
316 OR ((recinfo.AGREEMENT_CONTACT_ID is null) AND (X_AGREEMENT_CONTACT_ID is null)))
317 AND ((recinfo.INVOICE_TO_SITE_USE_ID = X_INVOICE_TO_SITE_USE_ID)
318 OR ((recinfo.INVOICE_TO_SITE_USE_ID is null) AND (X_INVOICE_TO_SITE_USE_ID is null)))
319 AND ((recinfo.SALESREP_ID = X_SALESREP_ID)
320 OR ((recinfo.SALESREP_ID is null) AND (X_SALESREP_ID is null)))
321 AND ((recinfo.START_DATE_ACTIVE = X_START_DATE_ACTIVE)
322 OR ((recinfo.START_DATE_ACTIVE is null) AND (X_START_DATE_ACTIVE is null)))
323 ) then
324 null;
325 else
326 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
327 app_exception.raise_exception;
328 end if;
329
330 for tlinfo in c1 loop
331 if (tlinfo.BASELANG = 'Y') then
332 if ( (tlinfo.NAME = X_NAME)
333 ) then
334 null;
335 else
336 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
337 app_exception.raise_exception;
338 end if;
339 end if;
340 end loop;
341 return;
342 end LOCK_ROW;
343
344 procedure UPDATE_ROW (
345 X_AGREEMENT_ID in NUMBER,
346 X_END_DATE_ACTIVE in DATE,
347 X_CONTEXT in VARCHAR2,
348 X_ATTRIBUTE1 in VARCHAR2,
349 X_ATTRIBUTE2 in VARCHAR2,
350 X_ATTRIBUTE3 in VARCHAR2,
351 X_ATTRIBUTE4 in VARCHAR2,
352 X_ATTRIBUTE5 in VARCHAR2,
353 X_ATTRIBUTE6 in VARCHAR2,
354 X_ATTRIBUTE7 in VARCHAR2,
355 X_ATTRIBUTE8 in VARCHAR2,
356 X_ATTRIBUTE9 in VARCHAR2,
357 X_ATTRIBUTE10 in VARCHAR2,
358 X_ATTRIBUTE11 in VARCHAR2,
359 X_ATTRIBUTE12 in VARCHAR2,
360 X_ATTRIBUTE13 in VARCHAR2,
361 X_ATTRIBUTE14 in VARCHAR2,
362 X_ATTRIBUTE15 in VARCHAR2,
363 X_AGREEMENT_TYPE_CODE in VARCHAR2,
364 X_PRICE_LIST_ID in NUMBER,
365 X_TERM_ID in NUMBER,
366 X_OVERRIDE_IRULE_FLAG in VARCHAR2,
367 X_OVERRIDE_ARULE_FLAG in VARCHAR2,
368 X_SIGNATURE_DATE in DATE,
369 X_AGREEMENT_NUM in VARCHAR2,
370 X_INVOICING_RULE_ID in NUMBER,
371 X_ACCOUNTING_RULE_ID in NUMBER,
372 X_CUSTOMER_ID in NUMBER,
373 X_PURCHASE_ORDER_NUM in VARCHAR2,
374 X_INVOICE_CONTACT_ID in NUMBER,
375 X_AGREEMENT_CONTACT_ID in NUMBER,
376 X_INVOICE_TO_SITE_USE_ID in NUMBER,
377 X_SALESREP_ID in NUMBER,
378 X_START_DATE_ACTIVE in DATE,
379 X_NAME in VARCHAR2,
380 X_LAST_UPDATE_DATE in DATE,
381 X_LAST_UPDATED_BY in NUMBER,
382 X_LAST_UPDATE_LOGIN in NUMBER
383 ) is
384 begin
385 update SO_AGREEMENTS_B set
386 END_DATE_ACTIVE = X_END_DATE_ACTIVE,
387 CONTEXT = X_CONTEXT,
388 ATTRIBUTE1 = X_ATTRIBUTE1,
389 ATTRIBUTE2 = X_ATTRIBUTE2,
390 ATTRIBUTE3 = X_ATTRIBUTE3,
391 ATTRIBUTE4 = X_ATTRIBUTE4,
392 ATTRIBUTE5 = X_ATTRIBUTE5,
393 ATTRIBUTE6 = X_ATTRIBUTE6,
394 ATTRIBUTE7 = X_ATTRIBUTE7,
395 ATTRIBUTE8 = X_ATTRIBUTE8,
396 ATTRIBUTE9 = X_ATTRIBUTE9,
397 ATTRIBUTE10 = X_ATTRIBUTE10,
398 ATTRIBUTE11 = X_ATTRIBUTE11,
399 ATTRIBUTE12 = X_ATTRIBUTE12,
400 ATTRIBUTE13 = X_ATTRIBUTE13,
401 ATTRIBUTE14 = X_ATTRIBUTE14,
402 ATTRIBUTE15 = X_ATTRIBUTE15,
403 AGREEMENT_TYPE_CODE = X_AGREEMENT_TYPE_CODE,
404 PRICE_LIST_ID = X_PRICE_LIST_ID,
405 TERM_ID = X_TERM_ID,
406 OVERRIDE_IRULE_FLAG = X_OVERRIDE_IRULE_FLAG,
407 OVERRIDE_ARULE_FLAG = X_OVERRIDE_ARULE_FLAG,
408 SIGNATURE_DATE = X_SIGNATURE_DATE,
409 AGREEMENT_NUM = X_AGREEMENT_NUM,
410 INVOICING_RULE_ID = X_INVOICING_RULE_ID,
411 ACCOUNTING_RULE_ID = X_ACCOUNTING_RULE_ID,
412 CUSTOMER_ID = X_CUSTOMER_ID,
413 PURCHASE_ORDER_NUM = X_PURCHASE_ORDER_NUM,
414 INVOICE_CONTACT_ID = X_INVOICE_CONTACT_ID,
415 AGREEMENT_CONTACT_ID = X_AGREEMENT_CONTACT_ID,
416 INVOICE_TO_SITE_USE_ID = X_INVOICE_TO_SITE_USE_ID,
417 SALESREP_ID = X_SALESREP_ID,
418 START_DATE_ACTIVE = X_START_DATE_ACTIVE,
419 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
420 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
421 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
422 where AGREEMENT_ID = X_AGREEMENT_ID;
423
424 if (sql%notfound) then
425 raise no_data_found;
426 end if;
427
428 update SO_AGREEMENTS_TL set
429 NAME = X_NAME,
430 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
431 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
432 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
436
433 SOURCE_LANG = userenv('LANG')
434 where AGREEMENT_ID = X_AGREEMENT_ID
435 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
437 if (sql%notfound) then
438 raise no_data_found;
439 end if;
440 end UPDATE_ROW;
441
442 procedure DELETE_ROW (
443 X_AGREEMENT_ID in NUMBER
444 ) is
445 begin
446 delete from SO_AGREEMENTS_TL
447 where AGREEMENT_ID = X_AGREEMENT_ID;
448
449 if (sql%notfound) then
450 raise no_data_found;
451 end if;
452
453 delete from SO_AGREEMENTS_B
454 where AGREEMENT_ID = X_AGREEMENT_ID;
455
456 if (sql%notfound) then
457 raise no_data_found;
458 end if;
459 end DELETE_ROW;
460
461 procedure ADD_LANGUAGE
462 is
463 begin
464 delete from SO_AGREEMENTS_TL T
465 where not exists
466 (select NULL
467 from SO_AGREEMENTS_B B
468 where B.AGREEMENT_ID = T.AGREEMENT_ID
469 );
470
471 update SO_AGREEMENTS_TL T set (
472 NAME
473 ) = (select
474 B.NAME
475 from SO_AGREEMENTS_TL B
476 where B.AGREEMENT_ID = T.AGREEMENT_ID
477 and B.LANGUAGE = T.SOURCE_LANG)
478 where (
479 T.AGREEMENT_ID,
480 T.LANGUAGE
481 ) in (select
482 SUBT.AGREEMENT_ID,
483 SUBT.LANGUAGE
484 from SO_AGREEMENTS_TL SUBB, SO_AGREEMENTS_TL SUBT
485 where SUBB.AGREEMENT_ID = SUBT.AGREEMENT_ID
486 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
487 and (SUBB.NAME <> SUBT.NAME
488 ));
489
490 insert into SO_AGREEMENTS_TL (
491 AGREEMENT_ID,
492 NAME,
493 LAST_UPDATE_DATE,
494 LAST_UPDATED_BY,
495 CREATION_DATE,
496 CREATED_BY,
497 LAST_UPDATE_LOGIN,
498 LANGUAGE,
499 SOURCE_LANG
500 ) select
501 B.AGREEMENT_ID,
502 B.NAME,
503 B.LAST_UPDATE_DATE,
504 B.LAST_UPDATED_BY,
505 B.CREATION_DATE,
506 B.CREATED_BY,
507 B.LAST_UPDATE_LOGIN,
508 L.LANGUAGE_CODE,
509 B.SOURCE_LANG
510 from SO_AGREEMENTS_TL B, FND_LANGUAGES L
511 where L.INSTALLED_FLAG in ('I', 'B')
512 and B.LANGUAGE = userenv('LANG')
513 and not exists
514 (select NULL
515 from SO_AGREEMENTS_TL T
516 where T.AGREEMENT_ID = B.AGREEMENT_ID
517 and T.LANGUAGE = L.LANGUAGE_CODE);
518 end ADD_LANGUAGE;
519
520 end SO_AGREEMENTS_PKG;