DBA Data[Home] [Help]

PACKAGE BODY: APPS.GL_JE_SOURCES_PKG

Source


1 PACKAGE BODY gl_je_sources_pkg AS
2 /* $Header: glijesrb.pls 120.11 2011/11/03 06:15:05 skotakar ship $ */
3 
4 --
5 -- PRIVATE FUNCTIONS
6 --
7 
8   --
9   -- Procedure
10   --   select_row
11   -- Purpose
12   --   Used to select a particular source row
13   -- History
14   --   11-02-93  D. J. Ogg    Created
15   -- Arguments
16   --   recinfo			Various information about the row
17   -- Example
18   --   gl_je_sources_pkg.select_row(recinfo)
19   -- Notes
20   --
21   PROCEDURE select_row( recinfo IN OUT NOCOPY gl_je_sources%ROWTYPE) IS
22   BEGIN
23     SELECT *
24     INTO recinfo
25     FROM gl_je_sources
26     WHERE je_source_name = recinfo.je_source_name;
27   END SELECT_ROW;
28 
29   PROCEDURE select_columns(x_je_source_name		       VARCHAR2,
30 			   x_user_je_source_name	IN OUT NOCOPY VARCHAR2,
31 			   x_effective_date_rule_code	IN OUT NOCOPY VARCHAR2,
32 			   x_frozen_source_flag		IN OUT NOCOPY VARCHAR2,
33 			   x_journal_approval_flag      IN OUT NOCOPY VARCHAR2) IS
34     recinfo gl_je_sources%ROWTYPE;
35 
36   BEGIN
37     recinfo.je_source_name := x_je_source_name;
38     select_row(recinfo);
39     x_user_je_source_name := recinfo.user_je_source_name;
40     x_effective_date_rule_code := recinfo.effective_date_rule_code;
41     x_frozen_source_flag := recinfo.override_edits_flag;
42     x_journal_approval_flag := recinfo.journal_approval_flag;
43   END select_columns;
44 
45   PROCEDURE check_unique_name(x_je_source_name VARCHAR2,
46                               x_row_id VARCHAR2) IS
47     CURSOR chk_duplicates_name is
48       SELECT 'Duplicate'
49       FROM   GL_JE_SOURCES jes
50       WHERE  jes.je_source_name = x_je_source_name
51       AND    (   x_row_id is null
52               OR jes.rowid <> chartorowid(x_row_id)) ;
53     dummy VARCHAR2(100);
54   BEGIN
55     OPEN chk_duplicates_name;
56     FETCH chk_duplicates_name INTO dummy;
57     IF chk_duplicates_name%FOUND THEN
58       CLOSE chk_duplicates_name;
59       fnd_message.set_name('SQLGL', 'GL_DUPLICATE_JE_SOURCE_NAME');
60       app_exception.raise_exception;
61     END IF;
62     CLOSE chk_duplicates_name;
63   EXCEPTION
64     WHEN app_exceptions.application_exception THEN
65       RAISE;
66     WHEN OTHERS THEN
67       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
68       fnd_message.set_token('PROCEDURE', 'gl_je_sources_pkg.check_unique_name');
69       RAISE;
70   END check_unique_name;
71 
72   PROCEDURE check_unique_user_name(x_user_je_source_name VARCHAR2,
73                                    x_row_id VARCHAR2) IS
74     CURSOR chk_duplicates_user_name is
75       SELECT 'Duplicate'
76       FROM   GL_JE_SOURCES jes
77       WHERE  jes.user_je_source_name = x_user_je_source_name
78       AND    (   x_row_id is null
79               OR jes.rowid <> x_row_id);
80     dummy VARCHAR2(100);
81   BEGIN
82     OPEN chk_duplicates_user_name;
83     FETCH chk_duplicates_user_name INTO dummy;
84     IF chk_duplicates_user_name%FOUND THEN
85       CLOSE chk_duplicates_user_name;
86       fnd_message.set_name('SQLGL', 'GL_DUPLICATE_JE_SOURCE_NAME');
87       app_exception.raise_exception;
88     END IF;
89     CLOSE chk_duplicates_user_name;
90 
91   EXCEPTION
92     WHEN app_exceptions.application_exception THEN
93       RAISE;
94     WHEN OTHERS THEN
95       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
96       fnd_message.set_token('PROCEDURE',
97                  'gl_je_sources_pkg.check_unique_user_name');
98       RAISE;
99   END check_unique_user_name;
100 
101   PROCEDURE check_unique_key(x_je_source_key VARCHAR2,
102                              x_row_id VARCHAR2) IS
103     CURSOR chk_duplicates_key is
104       SELECT 'Duplicate'
105       FROM   GL_JE_SOURCES jes
106       WHERE  jes.je_source_key = x_je_source_key
107       AND    (   x_row_id is null
108               OR jes.rowid <> x_row_id);
109     dummy VARCHAR2(100);
110   BEGIN
111     OPEN chk_duplicates_key;
112     FETCH chk_duplicates_key INTO dummy;
113     IF chk_duplicates_key%FOUND THEN
114       CLOSE chk_duplicates_key;
115       fnd_message.set_name('SQLGL', 'GL_DUPLICATE_JE_SOURCE_KEY');
116       app_exception.raise_exception;
117     END IF;
118     CLOSE chk_duplicates_key;
119 
120   EXCEPTION
121     WHEN app_exceptions.application_exception THEN
122       RAISE;
123     WHEN OTHERS THEN
124       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
125       fnd_message.set_token('PROCEDURE',
126                  'gl_je_sources_pkg.check_unique_key');
127       RAISE;
128   END check_unique_key;
129 
130   FUNCTION get_unique_id RETURN NUMBER IS
131     CURSOR get_new_id IS
132       SELECT gl_je_sources_s.NEXTVAL
133       FROM sys.dual;
134     new_id number;
135   BEGIN
136     OPEN get_new_id;
137     FETCH get_new_id INTO new_id;
138 
139     IF get_new_id%FOUND THEN
140       CLOSE get_new_id;
141       return(new_id);
142     ELSE
143       CLOSE get_new_id;
144       fnd_message.set_name('SQLGL', 'GL_ERROR_GETTING_UNIQUE_ID');
145       fnd_message.set_token('SEQUENCE', 'GL_JE_SOURCES_S');
146       app_exception.raise_exception;
147     END IF;
148 
149   EXCEPTION
150     WHEN app_exceptions.application_exception THEN
151       RAISE;
152     WHEN OTHERS THEN
153       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
154       fnd_message.set_token('PROCEDURE', 'gl_je_sources_pkg.get_unique_id');
155       RAISE;
156   END get_unique_id;
157 
158   FUNCTION is_sla_source( X_je_source  VARCHAR2) RETURN BOOLEAN IS
159     CURSOR chk_sla_source IS
160       SELECT 'Is SLA Source'
161       FROM
162 	     XLA_SUBLEDGERS sla
163       WHERE  sla.je_source_name = X_je_source;
164     dummy VARCHAR2(100);
165   BEGIN
166     OPEN chk_sla_source;
167     FETCH chk_sla_source INTO dummy;
168 
169     IF ( chk_sla_source%FOUND ) THEN
170       CLOSE chk_sla_source;
171       RETURN(TRUE);
172     ELSE
173       CLOSE chk_sla_source;
174       return(FALSE);
175     END IF;
176   END is_sla_source;
177 
178 
179   PROCEDURE Insert_Row(X_Rowid                        IN OUT NOCOPY VARCHAR2,
180 		     X_Je_Source_Name	IN OUT NOCOPY		   VARCHAR2,
181 		     X_Language		IN OUT NOCOPY		   VARCHAR2,
182 		     X_Source_Lang	IN OUT NOCOPY		   VARCHAR2,
183                      X_Last_Update_Date                    DATE,
184                      X_Last_Updated_By                     NUMBER,
185 		     X_Override_Edits_Flag		   VARCHAR2,
186 		     X_User_Je_Source_Name		   VARCHAR2,
187                      X_Je_Source_Key                       VARCHAR2,
188 		     X_Journal_Reference_Flag		   VARCHAR2,
189                      X_Journal_Approval_Flag               VARCHAR2,
190                      X_Effective_Date_Rule_Code            VARCHAR2,
191                      X_Import_Using_Key_Flag               VARCHAR2,
192                      X_Creation_Date			   DATE,
193 		     X_Last_Update_Login		   NUMBER,
194 		     X_Description			   VARCHAR2,
195                      X_Attribute1                          VARCHAR2,
196                      X_Attribute2                          VARCHAR2,
197                      X_Attribute3                          VARCHAR2,
198                      X_Attribute4                          VARCHAR2,
199                      X_Attribute5                          VARCHAR2,
200                      X_Context                             VARCHAR2) IS
201      CURSOR C IS SELECT rowid, language, source_lang
202 		  FROM GL_JE_SOURCES_TL
203                  WHERE je_source_name = X_Je_Source_Name
204 			and Language = userenv('LANG');
205      CURSOR C2 IS SELECT gl_je_headers_s.nextval FROM dual;
206   BEGIN
207 
208     if (X_Je_Source_Name is NULL) then
209      OPEN C2;
210      FETCH C2 INTO X_Je_Source_Name;
211      CLOSE C2;
212     end if;
213     INSERT INTO GL_JE_SOURCES_TL(
214 		je_source_name,
215                 je_source_key,
216 		language,
217 		source_lang,
218 		last_update_date,
219 		last_updated_by,
220 		override_edits_flag,
221 		user_je_source_name,
222 		journal_reference_flag,
223                 journal_approval_flag,
224                 effective_date_rule_code,
225                 import_using_key_flag,
226 		creation_date,
227 		created_by,
228 		last_update_login,
229 		description,
230 		attribute1,
231 		attribute2,
232 		attribute3,
233 		attribute4,
234 		attribute5,
235 		context)
236     SELECT
237 		     X_Je_Source_Name,
238                      X_Je_Source_Key,
239 		     L.Language_Code,
240 		     userenv('LANG'),
241                      X_Last_Update_Date,
242                      X_Last_Updated_By,
243 		     X_Override_Edits_Flag,
244 		     X_User_Je_Source_Name,
245 		     X_Journal_Reference_Flag,
246                      X_Journal_Approval_Flag,
247                      X_Effective_Date_Rule_Code,
248                      X_Import_Using_Key_Flag,
249                      X_Creation_Date,
250 -- workaround for passing in created_by information w/o changing the spec
251                      X_Last_Updated_By,
252 		     X_Last_Update_Login,
253 		     X_Description,
254                      X_Attribute1,
255                      X_Attribute2,
256                      X_Attribute3,
257                      X_Attribute4,
258                      X_Attribute5,
259                      X_Context
260     FROM  FND_LANGUAGES L
261     WHERE L.Installed_Flag in ('I', 'B')
262     AND not exists
263 	( select NULL
264 	  from	 GL_JE_SOURCES_TL B
265 	  where  B.Je_Source_Name = X_Je_Source_Name
266 	  and	 B.Language = L.Language_Code);
267     OPEN C;
268     FETCH C INTO X_Rowid, X_Language, X_Source_Lang;
269     if (C%NOTFOUND) then
270       CLOSE C;
271       RAISE NO_DATA_FOUND;
272     end if;
273     CLOSE C;
274   END Insert_Row;
275 
276 
277   PROCEDURE Lock_Row(X_Rowid                        IN OUT NOCOPY VARCHAR2,
278 		     X_Je_Source_Name			   VARCHAR2,
279 		     X_Override_Edits_Flag		   VARCHAR2,
280 		     X_User_Je_Source_Name		   VARCHAR2,
281                      X_Je_Source_Key			   VARCHAR2,
282 		     X_Journal_Reference_Flag		   VARCHAR2,
283                      X_Journal_Approval_Flag               VARCHAR2,
284                      X_Effective_Date_Rule_Code            VARCHAR2,
285                      X_Import_Using_Key_Flag               VARCHAR2,
286 		     X_Description			   VARCHAR2,
287                      X_Attribute1                          VARCHAR2,
288                      X_Attribute2                          VARCHAR2,
289                      X_Attribute3                          VARCHAR2,
290                      X_Attribute4                          VARCHAR2,
291                      X_Attribute5                          VARCHAR2,
292                      X_Context                             VARCHAR2) IS
293     CURSOR C IS
294       SELECT * FROM GL_JE_SOURCES_TL
295       WHERE Je_Source_Name = X_Je_Source_Name
296         and Language = userenv('LANG')
297       FOR UPDATE OF JE_SOURCE_NAME NOWAIT;
298     Recinfo C%ROWTYPE;
299   BEGIN
300     OPEN C;
301     FETCH C INTO Recinfo;
302     if (C%NOTFOUND) then
303       CLOSE C;
304       FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
305       APP_EXCEPTION.RAISE_EXCEPTION;
306     end if;
307     CLOSE C;
308     if (
309          (    (   (Recinfo.je_source_name = X_je_source_name)
310            OR (    (Recinfo.je_source_name IS NULL)
311                AND (X_je_source_name IS NULL))))
312          AND
313          (    (   (Recinfo.override_edits_flag = X_override_edits_flag )
314            OR (    (Recinfo.override_edits_flag IS NULL)
315                AND (X_override_edits_flag IS NULL))))
316          AND
317          (    (   (Recinfo.user_je_source_name = X_user_je_source_name )
318            OR (    (Recinfo.user_je_source_name IS NULL)
319                AND (X_user_je_source_name IS NULL))))
320          AND
321          (    (   (Recinfo.je_source_key = X_je_source_key )
322            OR (    (Recinfo.je_source_key IS NULL)
323                AND (X_je_source_key IS NULL))))
324          AND
325          (    (   (Recinfo.journal_reference_flag = X_journal_reference_flag )
326            OR (    (Recinfo.journal_reference_flag IS NULL)
327                AND (X_journal_reference_flag IS NULL))))
328          AND
329          (    (   (Recinfo.journal_approval_flag = X_journal_approval_flag)
330            OR (    (Recinfo.journal_approval_flag IS NULL)
331                AND (X_journal_approval_flag IS NULL))))
332          AND
333          (    (   (Recinfo.effective_date_rule_code = X_effective_date_rule_code)
334            OR (    (Recinfo.effective_date_rule_code IS NULL)
335                AND (X_effective_date_rule_code IS NULL))))
336          AND
337          (    (   (Recinfo.import_using_key_flag = X_import_using_key_flag)
338            OR (    (Recinfo.import_using_key_flag IS NULL)
339                AND (X_import_using_key_flag IS NULL))))
340          AND
341          (    (   (Recinfo.description = X_description )
342            OR (    (Recinfo.description IS NULL)
343                AND (X_description IS NULL))))
344          AND
345          (    (   (Recinfo.attribute1 = X_attribute1 )
346            OR (    (Recinfo.attribute1 IS NULL)
347                AND (X_attribute1 IS NULL))))
348          AND
349          (    (   (Recinfo.attribute2 = X_attribute2)
350            OR (    (Recinfo.attribute2 IS NULL)
351                AND (X_attribute2 IS NULL))))
352          AND
353          (    (   (Recinfo.attribute3 = X_attribute3 )
354            OR (    (Recinfo.attribute3 IS NULL)
355                AND (X_attribute3 IS NULL))))
356          AND
357          (    (   (Recinfo.attribute4 = X_attribute4 )
358            OR (    (Recinfo.attribute4 IS NULL)
359                AND (X_attribute4 IS NULL))))
360          AND
361          (    (   (Recinfo.attribute5 = X_attribute5 )
362            OR (    (Recinfo.attribute5 IS NULL)
363                AND (X_attribute5 IS NULL))))
364          AND
365          (    (   (Recinfo.context = X_context )
366            OR (    (Recinfo.context IS NULL)
367                AND (X_context IS NULL))))) THEN
368         return;
369     ELSE
370       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
371       APP_EXCEPTION.RAISE_EXCEPTION;
372     end if;
373   END Lock_Row;
374 
375 
376   PROCEDURE Update_Row(X_Rowid                        IN OUT NOCOPY VARCHAR2,
377 		     X_Je_Source_Name			   VARCHAR2,
378                      X_Last_Update_Date                    DATE,
379                      X_Last_Updated_By                     NUMBER,
380 		     X_Override_Edits_Flag		   VARCHAR2,
381 		     X_User_Je_Source_Name		   VARCHAR2,
382                      X_Je_Source_Key                       VARCHAR2,
383 		     X_Journal_Reference_Flag		   VARCHAR2,
384                      X_Journal_Approval_Flag               VARCHAR2,
385                      X_Effective_Date_Rule_Code            VARCHAR2,
386                      X_Import_Using_Key_Flag               VARCHAR2,
387                      X_Creation_Date			   DATE,
388 		     X_Last_Update_Login		   NUMBER,
389 		     X_Description			   VARCHAR2,
390                      X_Attribute1                          VARCHAR2,
391                      X_Attribute2                          VARCHAR2,
392                      X_Attribute3                          VARCHAR2,
393                      X_Attribute4                          VARCHAR2,
394                      X_Attribute5                          VARCHAR2,
395                      X_Context                             VARCHAR2) IS
396   BEGIN
397     -- update non-translatable columns
398     UPDATE GL_JE_SOURCES_TL
399     SET
400 	je_source_name			= 	x_je_source_name,
401         je_source_key                   =       x_je_source_key,
402 	override_edits_flag		= 	x_override_edits_flag,
403 	journal_reference_flag		= 	x_journal_reference_flag,
404         journal_approval_flag           =       x_journal_approval_flag,
405         effective_date_rule_code        =       x_effective_date_rule_code,
406         import_using_key_flag           =       x_import_using_key_flag,
407 	creation_date			= 	x_creation_date,
408 	last_update_date		= 	x_last_update_date,
409 	last_updated_by			= 	x_last_updated_by,
410 	last_update_login		= 	x_last_update_login,
411 	attribute1			= 	x_attribute1,
412 	attribute2			= 	x_attribute2,
413 	attribute3			= 	x_attribute3,
414 	attribute4			= 	x_attribute4,
415 	attribute5			= 	x_attribute5,
416 	context				= 	x_context
417     WHERE
418 	Je_Source_Name = X_Je_Source_Name;
419 
420     if (SQL%NOTFOUND) then
421       RAISE NO_DATA_FOUND;
422     end if;
423 
424     -- update the translatable columns
425     UPDATE GL_JE_SOURCES_TL
426     SET
427 	user_je_source_name		= 	x_user_je_source_name,
428 	description			= 	x_description,
429 	source_lang 			= 	userenv('LANG')
430     WHERE je_source_name = X_je_source_name
431       and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
432 
433     if (sql%notfound) then
434     	raise no_data_found;
435     end if;
436   END Update_Row;
437 
438   PROCEDURE Delete_Row(X_Je_Source_Name VARCHAR2) IS
439   BEGIN
440     DELETE FROM GL_JE_SOURCES_TL
441     WHERE  Je_Source_Name = X_Je_Source_Name;
442 
443     if (SQL%NOTFOUND) then
444       RAISE NO_DATA_FOUND;
445     end if;
446   END Delete_Row;
447 
448   PROCEDURE Load_Row(X_Je_Source_Name	    IN OUT NOCOPY  VARCHAR2,
449 		     X_Override_Edits_Flag		   VARCHAR2,
450 		     X_User_Je_Source_Name		   VARCHAR2,
451                      X_Je_Source_Key                       VARCHAR2,
452 		     X_Journal_Reference_Flag		   VARCHAR2,
453                      X_Journal_Approval_Flag               VARCHAR2,
454                      X_Effective_Date_Rule_Code            VARCHAR2,
455                      X_Import_Using_Key_Flag               VARCHAR2,
456 		     X_Description			   VARCHAR2,
457                      X_Attribute1                          VARCHAR2,
458                      X_Attribute2                          VARCHAR2,
459                      X_Attribute3                          VARCHAR2,
460                      X_Attribute4                          VARCHAR2,
461                      X_Attribute5                          VARCHAR2,
462                      X_Context                             VARCHAR2,
463 		     X_Owner				   VARCHAR2,
464 		     X_Force_Edits			   VARCHAR2 ) IS
465     user_id number := 0;
466     v_creation_date date;
467     v_rowid rowid := null;
468     v_language VARCHAR2(4) := null;
469     v_source_lang VARCHAR2(4) := null;
470     /*Added as part of bug13037565*/
471     v_attribute1 varchar2(150) := null;
472     v_attribute2 varchar2(150) := null;
473     v_attribute3 varchar2(150) := null;
474     v_attribute4 varchar2(150) := null;
475     v_attribute5 varchar2(150) := null;
476     v_context varchar2(150) := null;
477   BEGIN
478 
479     -- validate input parameters
480     if (	X_Override_Edits_Flag is NULL
481 	or	X_User_Je_Source_Name is NULL
482 	or	X_Journal_Reference_Flag is NULL
483 	or	X_Effective_Date_Rule_Code is NULL
484 	or	X_Journal_Approval_Flag is NULL) then
485       fnd_message.set_name('SQLGL', 'GL_LOAD_ROW_NO_DATA');
486       app_exception.raise_exception;
487     end if;
488 
489     if (X_OWNER = 'SEED') then
490       user_id := 1;
491     end if;
492 
493     begin
494     /* When je_source_name is null, we assume it to be a new row. */
495     if (X_je_source_name is null) then
496     	raise no_data_found;
497     end if;
498 
499     /* Check if the row exists in the database. If it does, retrieves
500        the creation date for update_row. */
501     /*select creation_date
502     into   v_creation_date
503     from   gl_je_sources
504     where  je_source_name = X_je_source_name;*/
505 
506     /*Modified as part of bug13037565*/
507     select creation_date,
508            attribute1,
509 	   attribute2,
510 	   attribute3,
511 	   attribute4,
512 	   attribute5,
513 	   context
514     into   v_creation_date,
515            v_attribute1,
516 	   v_attribute2,
517 	   v_attribute3,
518 	   v_attribute4,
519 	   v_attribute5,
520 	   v_context
521     from   gl_je_sources
522     where  je_source_name = X_je_source_name;
523 
524     /* Update only if force_edits is 'Y' or if user_id = 1 */
525     if ( user_id = 1 or X_Force_Edits = 'Y' ) then
526        -- update row if present
527        GL_JE_SOURCES_PKG.Update_Row(
528           X_Rowid                => v_rowid,
529           X_je_source_name       => X_Je_Source_Name,
530           X_last_update_date     => sysdate,
531           X_last_updated_by      => user_id,
532           X_override_edits_flag  => X_Override_Edits_Flag,
533           X_user_je_source_name  => X_user_je_source_name,
534           X_je_source_key        => nvl(X_Je_Source_Key, X_Je_Source_Name),
535           X_journal_reference_flag => X_journal_reference_flag,
536           X_journal_approval_flag  => X_journal_approval_flag,
537           X_effective_date_rule_code => X_effective_date_rule_code,
538           X_import_using_key_flag => nvl(X_import_using_key_flag, 'N'),
539           X_creation_date        => v_creation_date,
540           X_last_update_login    => 0,
541           X_Description          => X_Description,
542           /*Modified as part of bug13037565*/
543           X_Attribute1           => V_Attribute1,
544           X_Attribute2           => V_Attribute2,
545           X_Attribute3           => V_Attribute3,
546           X_Attribute4           => V_Attribute4,
547           X_Attribute5           => V_Attribute5,
548           X_context		 => V_Context);
549     end if;
550     exception
551 	when NO_DATA_FOUND then
552 	  GL_JE_SOURCES_PKG.Insert_Row(
553           X_Rowid                => v_rowid,
554           X_je_source_name       => X_Je_Source_Name,
555 	  X_language		 => v_language,
556 	  X_source_lang		 => v_source_lang,
557           X_last_update_date     => sysdate,
558           X_last_updated_by      => user_id,
559           X_override_edits_flag  => X_Override_Edits_Flag,
560           X_user_je_source_name  => X_user_je_source_name,
561           X_je_source_key        => nvl(X_Je_Source_Key, X_Je_Source_Name),
562           X_journal_reference_flag => X_journal_reference_flag,
563           X_journal_approval_flag  => X_journal_approval_flag,
564           X_effective_date_rule_code => X_effective_date_rule_code,
565           X_import_using_key_flag => nvl(X_import_using_key_flag, 'N'),
566           X_creation_date        => sysdate,
567           X_last_update_login    => 0,
568           X_Description          => X_Description,
569           X_Attribute1           => X_Attribute1,
570           X_Attribute2           => X_Attribute2,
571           X_Attribute3           => X_Attribute3,
572           X_Attribute4           => X_Attribute4,
573           X_Attribute5           => X_Attribute5,
574           X_context		 => X_Context);
575     end;
576   END Load_Row;
577 
578   PROCEDURE Translate_Row(
579 		     X_Je_Source_Name			   VARCHAR2,
580 		     X_User_Je_Source_Name		   VARCHAR2,
581 		     X_Description			   VARCHAR2,
582 		     X_Owner				   VARCHAR2,
583 		     X_Force_Edits			   VARCHAR2 ) IS
584     user_id number := 0;
585   BEGIN
586     if (X_OWNER = 'SEED') then
587       user_id := 1;
588     end if;
589 
590     /* Update only if force_edits is 'Y' or user_id = 1 */
591     if ( user_id = 1 or X_Force_Edits = 'Y' ) then
592       UPDATE GL_JE_SOURCES_TL
593       SET
594 	user_je_source_name		= 	x_user_je_source_name,
595 	description			= 	x_description,
596 	last_update_date		= 	sysdate,
597 	last_updated_by			= 	user_id,
598 	last_update_login		= 	0,
599 	source_lang 			= 	userenv('LANG')
600       WHERE userenv('LANG') in (LANGUAGE, SOURCE_LANG)
601 	and je_source_name = X_je_source_name;
602     end if;
603     /*If base language is not set to the language being uploaded, then
604      do nothing.*/
605     if (sql%notfound) then
606     	null;
607     end if;
608   END Translate_Row;
609 
610 procedure ADD_LANGUAGE
611 is
612 begin
613 
614 
615   update GL_JE_SOURCES_TL T
616   set (      	user_je_source_name,
617 		DESCRIPTION    )
618   =   (	select
619       	  	B.user_je_source_name,
620       	  	B.DESCRIPTION
621     	from gl_je_sources_tl B
622     	where B.je_source_name = T.je_source_name
623     	  and B.LANGUAGE = T.SOURCE_LANG )
624   where (	T.je_source_name,
625       		T.LANGUAGE  ) in
626 	( select
627       		SUBT.je_source_name,
628       		SUBT.LANGUAGE
629 	  from 	gl_je_sources_tl SUBB,
630 		gl_je_sources_tl SUBT
631     	  where SUBB.je_source_name = SUBT.je_source_name
632     	    and SUBB.LANGUAGE = SUBT.SOURCE_LANG
633 	    and (SUBB.USER_JE_SOURCE_NAME <> SUBT.USER_JE_SOURCE_NAME
634     	        or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
635       		or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
636       		or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null))
637   	);
638 
639   insert into gl_je_sources_tl (
640     je_source_name,
641     LAST_UPDATE_DATE,
642     LAST_UPDATED_BY,
643     CREATION_DATE,
644     CREATED_BY,
645     LAST_UPDATE_LOGIN,
646     DESCRIPTION,
647     override_edits_flag,
648     user_je_source_name,
649     je_source_key,
650     journal_reference_flag,
651     journal_approval_flag,
652     effective_date_rule_code,
653     import_using_key_flag,
654     LANGUAGE,
655     SOURCE_LANG,
656     attribute1,
657     attribute2,
658     attribute3,
659     attribute4,
660     attribute5,
661     context
662   )
663   select
664     B.je_source_name,
665     B.LAST_UPDATE_DATE,
666     B.LAST_UPDATED_BY,
667     B.CREATION_DATE,
668     B.CREATED_BY,
669     B.LAST_UPDATE_LOGIN,
670     B.DESCRIPTION,
671     B.override_edits_flag,
672     B.user_je_source_name,
673     B.je_source_key,
674     B.journal_reference_flag,
675     B.journal_approval_flag,
676     B.effective_date_rule_code,
677     B.import_using_key_flag,
678     L.LANGUAGE_CODE,
679     B.source_lang,
680     B.attribute1,
681     B.attribute2,
682     B.attribute3,
683     B.attribute4,
684     B.attribute5,
685     B.context
686   from gl_je_sources_tl B, FND_LANGUAGES L
687   where L.INSTALLED_FLAG in ('I', 'B')
688   and B.LANGUAGE = userenv('LANG')
689   and not exists
690     (select NULL
691     from gl_je_sources_tl T
692     where T.je_source_name = B.je_source_name
693     and T.LANGUAGE = L.LANGUAGE_CODE);
694 
695 end ADD_LANGUAGE;
696 
697 END gl_je_sources_pkg;