DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_ACCT_LINE_TYPES_F_PKG

Source


1 PACKAGE BODY xla_acct_line_types_f_pkg AS
2 /* $Header: xlathalt.pkb 120.27.12010000.1 2008/07/29 10:09:09 appldev ship $ */
3 /*======================================================================+
4 |             Copyright (c) 2001-2002 Oracle Corporation                |
5 |                       Redwood Shores, CA, USA                         |
6 |                         All rights reserved.                          |
7 +=======================================================================+
8 | PACKAGE NAME                                                          |
9 |    xla_acct_line_types                                                |
10 |                                                                       |
11 | DESCRIPTION                                                           |
12 |    Forms PL/SQL Wrapper for xla_acct_line_types                       |
13 |                                                                       |
14 | HISTORY                                                               |
15 |    Generated from XLAUTB.                                             |
16 |                                                                       |
17 |    05-Apr-05  eklau   Added new column mpa_option_code to insert and  |
18 |                       update procedures.                              |
19 +======================================================================*/
20 
21 --=============================================================================
22 --               *********** Local Trace Routine **********
23 --=============================================================================
24 C_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
25 C_LEVEL_PROCEDURE     CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
26 C_LEVEL_EVENT         CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
27 C_LEVEL_EXCEPTION     CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
28 C_LEVEL_ERROR         CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
29 C_LEVEL_UNEXPECTED    CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
30 
31 C_LEVEL_LOG_DISABLED  CONSTANT NUMBER := 99;
32 C_DEFAULT_MODULE      CONSTANT VARCHAR2(240) := 'xla.plsql.xla_acct_line_types_f_pkg';
33 
34 g_log_level           NUMBER;
35 g_log_enabled         BOOLEAN;
36 
37 PROCEDURE trace
38   (p_msg                        IN VARCHAR2
39   ,p_module                     IN VARCHAR2
40   ,p_level                      IN NUMBER) IS
41 BEGIN
42   ----------------------------------------------------------------------------
43   -- Following is for FND log.
44   ----------------------------------------------------------------------------
45   IF (p_msg IS NULL AND p_level >= g_log_level) THEN
46     fnd_log.message(p_level, p_module);
47   ELSIF p_level >= g_log_level THEN
48     fnd_log.string(p_level, p_module, p_msg);
49   END IF;
50 
51 EXCEPTION
52   WHEN xla_exceptions_pkg.application_exception THEN
53     RAISE;
54 
55   WHEN OTHERS THEN
56     xla_exceptions_pkg.raise_message
57       (p_location   => 'xla_acct_line_types_f_pkg.trace');
58 END trace;
59 
60 
61 /*======================================================================+
62 |                                                                       |
63 |  Procedure insert_row                                                 |
64 |                                                                       |
65 +======================================================================*/
66 PROCEDURE insert_row
67   (x_rowid                            IN OUT NOCOPY VARCHAR2
68   ,x_application_id                   IN NUMBER
69   ,x_amb_context_code                 IN VARCHAR2
70   ,x_entity_code                      IN VARCHAR2
71   ,x_event_class_code                 IN VARCHAR2
72   ,x_accounting_line_type_code        IN VARCHAR2
73   ,x_accounting_line_code             IN VARCHAR2
74   ,x_transaction_coa_id               IN NUMBER
75   ,x_accounting_entry_type_code       IN VARCHAR2
76   ,x_natural_side_code                IN VARCHAR2
77   ,x_gl_transfer_mode_code            IN VARCHAR2
78   ,x_switch_side_flag                 IN VARCHAR2
79   ,x_gain_or_loss_flag                IN VARCHAR2
80   ,x_merge_duplicate_code             IN VARCHAR2
81   ,x_enabled_flag                     IN VARCHAR2
82   ,x_accounting_class_code            IN VARCHAR2
83   ,x_rounding_class_code              IN VARCHAR2
84   ,x_business_method_code             IN VARCHAR2
85   ,x_business_class_code              IN VARCHAR2
86   ,x_name                             IN VARCHAR2
87   ,x_description                      IN VARCHAR2
88   ,x_creation_date                    IN DATE
89   ,x_created_by                       IN NUMBER
90   ,x_last_update_date                 IN DATE
91   ,x_last_updated_by                  IN NUMBER
92   ,x_last_update_login                IN NUMBER
93   ,x_mpa_option_code                  IN VARCHAR2
94   ,x_encumbrance_type_id              IN NUMBER)
95 
96 IS
97 
98 CURSOR c IS
99 SELECT rowid
100 FROM   xla_acct_line_types_b
101 WHERE  application_id                   = x_application_id
102   AND  amb_context_code                 = x_amb_context_code
103   AND  entity_code                      = x_entity_code
104   AND  event_class_code                 = x_event_class_code
105   AND  accounting_line_type_code        = x_accounting_line_type_code
106   AND  accounting_line_code             = x_accounting_line_code
107 ;
108 
109 l_log_module                    VARCHAR2(240);
110 BEGIN
111 IF g_log_enabled THEN
112   l_log_module := C_DEFAULT_MODULE||'.insert_row';
113 END IF;
114 
115 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116   trace(p_msg    => 'BEGIN of procedure insert_row',
117         p_module => l_log_module,
118         p_level  => C_LEVEL_PROCEDURE);
119 END IF;
120 
121 INSERT INTO xla_acct_line_types_b
122 (creation_date
123 ,created_by
124 ,amb_context_code
125 ,application_id
126 ,entity_code
127 ,event_class_code
128 ,accounting_line_type_code
129 ,accounting_line_code
130 ,transaction_coa_id
131 ,accounting_entry_type_code
132 ,natural_side_code
133 ,gl_transfer_mode_code
134 ,switch_side_flag
135 ,gain_or_loss_flag
136 ,merge_duplicate_code
137 ,enabled_flag
138 ,accounting_class_code
139 ,rounding_class_code
140 ,business_method_code
141 ,business_class_code
142 ,last_update_date
143 ,last_updated_by
144 ,last_update_login
145 ,mpa_option_code
146 ,encumbrance_type_id)
147 VALUES
148 (x_creation_date
149 ,x_created_by
150 ,x_amb_context_code
151 ,x_application_id
152 ,x_entity_code
153 ,x_event_class_code
154 ,x_accounting_line_type_code
155 ,x_accounting_line_code
156 ,x_transaction_coa_id
157 ,x_accounting_entry_type_code
158 ,x_natural_side_code
159 ,x_gl_transfer_mode_code
160 ,x_switch_side_flag
161 ,x_gain_or_loss_flag
162 ,x_merge_duplicate_code
163 ,x_enabled_flag
164 ,x_accounting_class_code
165 ,x_rounding_class_code
166 ,x_business_method_code
167 ,x_business_class_code
168 ,x_last_update_date
169 ,x_last_updated_by
170 ,x_last_update_login
171 ,x_mpa_option_code
172 ,x_encumbrance_type_id)
173 ;
174 
175 INSERT INTO xla_acct_line_types_tl
176 (amb_context_code
177 ,application_id
178 ,entity_code
179 ,event_class_code
180 ,accounting_line_type_code
181 ,accounting_line_code
182 ,name
183 ,description
184 ,creation_date
185 ,created_by
186 ,last_update_date
187 ,last_updated_by
188 ,last_update_login
189 ,language
190 ,source_lang)
191 SELECT
192        x_amb_context_code
193       ,x_application_id
194       ,x_entity_code
195       ,x_event_class_code
196       ,x_accounting_line_type_code
197       ,x_accounting_line_code
198       ,x_name
199       ,x_description
200       ,x_creation_date
201       ,x_created_by
202       ,x_last_update_date
203       ,x_last_updated_by
204       ,x_last_update_login
205       ,l.language_code
206       ,USERENV('LANG')
207 FROM   fnd_languages l
208 WHERE  l.installed_flag                 IN ('I', 'B')
209   AND  NOT EXISTS
210       (SELECT NULL
211        FROM   xla_acct_line_types_tl             t
212        WHERE  t.application_id                   = x_application_id
213          AND  t.amb_context_code                 = x_amb_context_code
214          AND  t.entity_code                      = x_entity_code
215          AND  t.event_class_code                 = x_event_class_code
216          AND  t.accounting_line_type_code        = x_accounting_line_type_code
217          AND  t.accounting_line_code             = x_accounting_line_code
218          AND  t.language                         = l.language_code);
219 
220 OPEN c;
221 FETCH c INTO x_rowid;
222 
223 IF (c%NOTFOUND) THEN
224    CLOSE c;
225    RAISE NO_DATA_FOUND;
226 END IF;
227 CLOSE c;
228 
229 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
230   trace(p_msg    => 'END of procedure insert_row',
231         p_module => l_log_module,
232         p_level  => C_LEVEL_PROCEDURE);
233 END IF;
234 
235 END insert_row;
236 
237 /*======================================================================+
238 |                                                                       |
239 |  Procedure lock_row                                                   |
240 |                                                                       |
241 +======================================================================*/
242 PROCEDURE lock_row
243   (x_application_id                   IN NUMBER
244   ,x_amb_context_code                 IN VARCHAR2
245   ,x_entity_code                      IN VARCHAR2
246   ,x_event_class_code                 IN VARCHAR2
247   ,x_accounting_line_type_code        IN VARCHAR2
248   ,x_accounting_line_code             IN VARCHAR2
249   ,x_transaction_coa_id               IN NUMBER
250   ,x_accounting_entry_type_code       IN VARCHAR2
251   ,x_natural_side_code                IN VARCHAR2
252   ,x_gl_transfer_mode_code            IN VARCHAR2
253   ,x_switch_side_flag                 IN VARCHAR2
254   ,x_gain_or_loss_flag                IN VARCHAR2
255   ,x_merge_duplicate_code             IN VARCHAR2
256   ,x_enabled_flag                     IN VARCHAR2
257   ,x_accounting_class_code            IN VARCHAR2
258   ,x_rounding_class_code              IN VARCHAR2
259   ,x_business_method_code             IN VARCHAR2
260   ,x_business_class_code              IN VARCHAR2
261   ,x_name                             IN VARCHAR2
262   ,x_description                      IN VARCHAR2
263   ,x_mpa_option_code                  IN VARCHAR2
264   ,x_encumbrance_type_id              IN NUMBER)
265 
266 IS
267 
268 CURSOR c IS
269 SELECT amb_context_code
270       ,transaction_coa_id
271       ,accounting_entry_type_code
272       ,natural_side_code
273       ,gl_transfer_mode_code
274       ,switch_side_flag
275       ,gain_or_loss_flag
276       ,merge_duplicate_code
277       ,enabled_flag
278       ,accounting_class_code
279       ,rounding_class_code
280       ,business_method_code
281       ,business_class_code
282       ,mpa_option_code
283       ,encumbrance_type_id
284 FROM   xla_acct_line_types_b
285 WHERE  application_id                   = x_application_id
286   AND  amb_context_code                 = x_amb_context_code
287   AND  entity_code                      = x_entity_code
288   AND  event_class_code                 = x_event_class_code
289   AND  accounting_line_type_code        = x_accounting_line_type_code
290   AND  accounting_line_code             = x_accounting_line_code
291 FOR UPDATE OF application_id NOWAIT;
292 
293 recinfo              c%ROWTYPE;
294 
295 CURSOR c1 IS
296 SELECT amb_context_code
297       ,name
298       ,description
299       ,DECODE(language     , USERENV('LANG'), 'Y', 'N') baselang
300 FROM   xla_acct_line_types_tl
301 WHERE  application_id                   = X_application_id
302   AND  amb_context_code                 = X_amb_context_code
303   AND  entity_code                      = X_entity_code
304   AND  event_class_code                 = X_event_class_code
305   AND  accounting_line_type_code        = X_accounting_line_type_code
306   AND  accounting_line_code             = X_accounting_line_code
307   AND  USERENV('LANG')                 IN (language     ,source_lang)
308 FOR UPDATE OF application_id NOWAIT;
309 
310 l_log_module                    VARCHAR2(240);
311 BEGIN
312 IF g_log_enabled THEN
313   l_log_module := C_DEFAULT_MODULE||'.lock_row';
314 END IF;
315 
316 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
317   trace(p_msg    => 'BEGIN of procedure lock_row',
318         p_module => l_log_module,
319         p_level  => C_LEVEL_PROCEDURE);
320 END IF;
321 
322 
323 OPEN c;
324 FETCH c INTO recinfo;
325 
326 IF (c%NOTFOUND) THEN
327    CLOSE c;
328    fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
329    app_exception.raise_exception;
330 END IF;
331 CLOSE c;
332 
333 IF ( ((recinfo.transaction_coa_id               = X_transaction_coa_id)
334    OR ((recinfo.transaction_coa_id               IS NULL)
335   AND (x_transaction_coa_id               IS NULL)))
336   AND ((recinfo.encumbrance_type_id               = X_encumbrance_type_id)
337    OR ((recinfo.encumbrance_type_id               IS NULL)
338   AND (x_encumbrance_type_id               IS NULL)))
339  AND (recinfo.accounting_entry_type_code       = x_accounting_entry_type_code)
340  AND (recinfo.natural_side_code                = x_natural_side_code)
341  AND (recinfo.gl_transfer_mode_code            = x_gl_transfer_mode_code)
342  AND ((recinfo.switch_side_flag                 = x_switch_side_flag)
343    OR ((recinfo.switch_side_flag  IS NULL)
344      AND (x_switch_side_flag IS NULL)))
345  AND ((recinfo.gain_or_loss_flag                 = x_gain_or_loss_flag)
346    OR ((recinfo.gain_or_loss_flag  IS NULL)
347      AND (x_gain_or_loss_flag IS NULL)))
348  AND (recinfo.merge_duplicate_code             = x_merge_duplicate_code)
349  AND (recinfo.enabled_flag                     = x_enabled_flag)
350  AND (recinfo.accounting_class_code            = x_accounting_class_code)
351  AND (recinfo.rounding_class_code              = x_rounding_class_code)
352  AND (recinfo.business_method_code              = x_business_method_code)
353  AND ((recinfo.business_class_code                 = x_business_class_code)
354    OR ((recinfo.business_class_code  IS NULL)
355      AND (x_business_class_code IS NULL)))
356  AND (recinfo.mpa_option_code                  = x_mpa_option_code)
357                    ) THEN
358    NULL;
359 ELSE
360    fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
361    app_exception.raise_exception;
362 END IF;
363 
364 FOR tlinfo IN c1 LOOP
365    IF (tlinfo.baselang = 'Y') THEN
366       IF (    (tlinfo.name = X_name)
367           AND ((tlinfo.description = X_description)
368                OR ((tlinfo.description                      is null)
369                 AND (X_description                      is null)))
370       ) THEN
371         NULL;
372       ELSE
373          fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
374          app_exception.raise_exception;
375       END IF;
376    END IF;
377 END LOOP;
378 
379 
380 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
381   trace(p_msg    => 'END of procedure lock_row',
382         p_module => l_log_module,
383         p_level  => C_LEVEL_PROCEDURE);
384 END IF;
385 
386 RETURN;
387 
388 END lock_row;
389 
390 /*======================================================================+
391 |                                                                       |
392 |  Procedure update_row                                                 |
393 |                                                                       |
394 +======================================================================*/
395 PROCEDURE update_row
396  (x_application_id                   IN NUMBER
400  ,x_accounting_line_type_code        IN VARCHAR2
397  ,x_amb_context_code                 IN VARCHAR2
398  ,x_entity_code                      IN VARCHAR2
399  ,x_event_class_code                 IN VARCHAR2
401  ,x_accounting_line_code             IN VARCHAR2
402  ,x_transaction_coa_id               IN NUMBER
403  ,x_accounting_entry_type_code       IN VARCHAR2
404  ,x_natural_side_code                IN VARCHAR2
405  ,x_gl_transfer_mode_code            IN VARCHAR2
406  ,x_switch_side_flag                 IN VARCHAR2
407   ,x_gain_or_loss_flag                IN VARCHAR2
408  ,x_merge_duplicate_code             IN VARCHAR2
409  ,x_enabled_flag                     IN VARCHAR2
410  ,x_accounting_class_code            IN VARCHAR2
411  ,x_rounding_class_code              IN VARCHAR2
412  ,x_business_method_code             IN VARCHAR2
413  ,x_business_class_code              IN VARCHAR2
414  ,x_name                             IN VARCHAR2
415  ,x_description                      IN VARCHAR2
416  ,x_last_update_date                  IN DATE
417  ,x_last_updated_by                   IN NUMBER
418  ,x_last_update_login                 IN NUMBER
419  ,x_mpa_option_code                   IN VARCHAR2
420  ,x_encumbrance_type_id              IN NUMBER)
421 
422 IS
423 
424 l_log_module                    VARCHAR2(240);
425 BEGIN
426 IF g_log_enabled THEN
427   l_log_module := C_DEFAULT_MODULE||'.update_row';
428 END IF;
429 
430 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
431   trace(p_msg    => 'BEGIN of procedure update_row',
432         p_module => l_log_module,
433         p_level  => C_LEVEL_PROCEDURE);
434 END IF;
435 
436 UPDATE xla_acct_line_types_b
437    SET
438        last_update_date                 = x_last_update_date
439       ,transaction_coa_id               = x_transaction_coa_id
440       ,accounting_entry_type_code       = x_accounting_entry_type_code
441       ,natural_side_code                = x_natural_side_code
442       ,gl_transfer_mode_code            = x_gl_transfer_mode_code
443       ,switch_side_flag                 = x_switch_side_flag
444       ,gain_or_loss_flag                = x_gain_or_loss_flag
445       ,merge_duplicate_code             = x_merge_duplicate_code
446       ,enabled_flag                     = x_enabled_flag
447       ,accounting_class_code            = x_accounting_class_code
448       ,rounding_class_code              = x_rounding_class_code
449       ,business_method_code             = x_business_method_code
450       ,business_class_code              = x_business_class_code
451       ,last_updated_by                  = x_last_updated_by
452       ,last_update_login                = x_last_update_login
453       ,mpa_option_code                  = x_mpa_option_code
454       ,encumbrance_type_id              = x_encumbrance_type_id
455 WHERE  application_id                   = X_application_id
456   AND  amb_context_code                 = X_amb_context_code
457   AND  entity_code                      = X_entity_code
458   AND  event_class_code                 = X_event_class_code
459   AND  accounting_line_type_code        = X_accounting_line_type_code
460   AND  accounting_line_code             = X_accounting_line_code;
461 
462 IF (SQL%NOTFOUND) THEN
463    RAISE NO_DATA_FOUND;
464 END IF;
465 
466 UPDATE xla_acct_line_types_tl
467 SET
468        last_update_date                 = x_last_update_date
469       ,name                             = X_name
470       ,description                      = X_description
471       ,last_updated_by                  = x_last_updated_by
472       ,last_update_login                = x_last_update_login
473       ,source_lang                      = USERENV('LANG')
474 WHERE  application_id                   = X_application_id
475   AND  amb_context_code                 = X_amb_context_code
476   AND  entity_code                      = X_entity_code
477   AND  event_class_code                 = X_event_class_code
478   AND  accounting_line_type_code        = X_accounting_line_type_code
479   AND  accounting_line_code             = X_accounting_line_code
480   AND  USERENV('LANG')                 IN (language, source_lang);
481 
482 IF (SQL%NOTFOUND) THEN
483    RAISE NO_DATA_FOUND;
484 END IF;
485 
486 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
487   trace(p_msg    => 'END of procedure update_row',
488         p_module => l_log_module,
489         p_level  => C_LEVEL_PROCEDURE);
490 END IF;
491 
492 END update_row;
493 
494 /*======================================================================+
495 |                                                                       |
496 |  Procedure delete_row                                                 |
497 |                                                                       |
498 +======================================================================*/
499 PROCEDURE delete_row
500   (x_application_id                   IN NUMBER
501   ,x_amb_context_code                 IN VARCHAR2
502   ,x_entity_code                      IN VARCHAR2
503   ,x_event_class_code                 IN VARCHAR2
504   ,x_accounting_line_type_code        IN VARCHAR2
505   ,x_accounting_line_code             IN VARCHAR2)
506 
507 IS
508 
509 l_log_module                    VARCHAR2(240);
510 BEGIN
511 IF g_log_enabled THEN
512   l_log_module := C_DEFAULT_MODULE||'.delete_row';
513 END IF;
514 
518         p_level  => C_LEVEL_PROCEDURE);
515 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
516   trace(p_msg    => 'BEGIN of procedure delete_row',
517         p_module => l_log_module,
519 END IF;
520 
521 DELETE FROM xla_acct_line_types_tl
522 WHERE application_id                   = x_application_id
523   AND amb_context_code                 = x_amb_context_code
524   AND entity_code                      = x_entity_code
525   AND event_class_code                 = x_event_class_code
526   AND accounting_line_type_code        = x_accounting_line_type_code
527   AND accounting_line_code             = x_accounting_line_code;
528 
529 
530 IF (SQL%NOTFOUND) THEN
531    RAISE NO_DATA_FOUND;
532 END IF;
533 
534 DELETE FROM xla_acct_line_types_b
535 WHERE application_id                   = x_application_id
536   AND amb_context_code                 = x_amb_context_code
537   AND entity_code                      = x_entity_code
538   AND event_class_code                 = x_event_class_code
539   AND accounting_line_type_code        = x_accounting_line_type_code
540   AND accounting_line_code             = x_accounting_line_code;
541 
542 
543 IF (SQL%NOTFOUND) THEN
544    RAISE NO_DATA_FOUND;
545 END IF;
546 
547 
548 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
549   trace(p_msg    => 'END of procedure delete_row',
550         p_module => l_log_module,
551         p_level  => C_LEVEL_PROCEDURE);
552 END IF;
553 
554 END delete_row;
555 
556 /*======================================================================+
557 |                                                                       |
558 |  Procedure add_language                                               |
559 |                                                                       |
560 +======================================================================*/
561 PROCEDURE add_language
562 
563 IS
564 
565 l_log_module                    VARCHAR2(240);
566 BEGIN
567 IF g_log_enabled THEN
568   l_log_module := C_DEFAULT_MODULE||'.add_language';
569 END IF;
570 
571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
572   trace(p_msg    => 'BEGIN of procedure add_language',
573         p_module => l_log_module,
574         p_level  => C_LEVEL_PROCEDURE);
575 END IF;
576 
577 DELETE FROM xla_acct_line_types_tl T
578 WHERE  NOT EXISTS
579       (SELECT NULL
580        FROM   xla_acct_line_types_b              b
581        WHERE  b.application_id                   = t.application_id
582          AND  b.amb_context_code                 = t.amb_context_code
583          AND  b.entity_code                      = t.entity_code
584          AND  b.event_class_code                 = t.event_class_code
585          AND  b.accounting_line_type_code        = t.accounting_line_type_code
586          AND  b.accounting_line_code             = t.accounting_line_code);
587 
588 UPDATE xla_acct_line_types_tl   t
589 SET   (name
590       ,description)
591    = (SELECT b.name
592             ,b.description
593       FROM   xla_acct_line_types_tl             b
594       WHERE  b.application_id                   = t.application_id
595         AND  b.amb_context_code                 = t.amb_context_code
596         AND  b.entity_code                      = t.entity_code
597         AND  b.event_class_code                 = t.event_class_code
598         AND  b.accounting_line_type_code        = t.accounting_line_type_code
599         AND  b.accounting_line_code             = t.accounting_line_code
600         AND  b.language                         = t.source_lang)
601 WHERE (t.application_id
602       ,t.amb_context_code
603       ,t.entity_code
604       ,t.event_class_code
605       ,t.accounting_line_type_code
606       ,t.accounting_line_code
607       ,t.language)
608     IN (SELECT subt.application_id
609               ,subt.amb_context_code
610               ,subt.entity_code
611               ,subt.event_class_code
612               ,subt.accounting_line_type_code
613               ,subt.accounting_line_code
614               ,subt.language
615         FROM   xla_acct_line_types_tl                 subb
616               ,xla_acct_line_types_tl                 subt
617         WHERE  subb.application_id                   = subt.application_id
618          AND  subb.amb_context_code                  = subt.amb_context_code
619          AND  subb.entity_code                       = subt.entity_code
620          AND  subb.event_class_code                  = subt.event_class_code
621          AND  subb.accounting_line_type_code         = subt.accounting_line_type_code
622          AND  subb.accounting_line_code              = subt.accounting_line_code
623          AND  subb.language                         = subt.source_lang
624          AND (SUBB.name                             <> SUBT.name
625           OR  SUBB.description                      <> SUBT.description
626           OR (subb.description                      IS NULL
627          AND  subt.description                      IS NOT NULL)
628           OR (subb.description                      IS NOT NULL
629          AND  subt.description                      IS NULL)
630       ))
631 ;
632 
633 INSERT INTO xla_acct_line_types_tl
634 (amb_context_code
635 ,application_id
636 ,entity_code
640 ,name
637 ,event_class_code
638 ,accounting_line_type_code
639 ,accounting_line_code
641 ,description
642 ,creation_date
643 ,created_by
644 ,last_update_date
645 ,last_updated_by
646 ,last_update_login
647 ,language
648 ,source_lang)
649 SELECT   /*+ ORDERED */
650        b.amb_context_code
651       ,b.application_id
652       ,b.entity_code
653       ,b.event_class_code
654       ,b.accounting_line_type_code
655       ,b.accounting_line_code
656       ,b.name
657       ,b.description
658       ,b.creation_date
659       ,b.created_by
660       ,b.last_update_date
661       ,b.last_updated_by
662       ,b.last_update_login
663       ,l.language_code
664       ,b.source_lang
665 FROM   xla_acct_line_types_tl           b
666       ,fnd_languages                    l
667 WHERE  l.installed_flag                IN ('I', 'B')
668   AND  b.language                       = userenv('LANG')
669   AND  NOT EXISTS
670       (SELECT NULL
671        FROM   xla_acct_line_types_tl             t
672        WHERE  t.application_id                   = b.application_id
673          AND  t.amb_context_code                 = b.amb_context_code
674          AND  t.entity_code                      = b.entity_code
675          AND  t.event_class_code                 = b.event_class_code
676          AND  t.accounting_line_type_code        = b.accounting_line_type_code
677          AND  t.accounting_line_code             = b.accounting_line_code
678          AND  t.language                         = l.language_code);
679 
680 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
681   trace(p_msg    => 'END of procedure add_language',
682         p_module => l_log_module,
683         p_level  => C_LEVEL_PROCEDURE);
684 END IF;
685 
686 END add_language;
687 
688 --=============================================================================
689 --
690 -- Name: translate_row
691 -- Description: To be used by FNDLOAD to upload a translated row
692 --
693 --=============================================================================
694 PROCEDURE translate_row
695   (p_application_short_name          IN VARCHAR2
696   ,p_amb_context_code                IN VARCHAR2
697   ,p_event_class_code                IN VARCHAR2
698   ,p_accounting_line_type_code       IN VARCHAR2
699   ,p_accounting_line_code            IN VARCHAR2
700   ,p_name                            IN VARCHAR2
701   ,p_description                     IN VARCHAR2
702   ,p_owner                           IN VARCHAR2
703   ,p_last_update_date                IN VARCHAR2
704   ,p_custom_mode                     IN VARCHAR2)
705 IS
706   CURSOR c_app_id IS
707   SELECT application_id
708   FROM   fnd_application
709   WHERE  application_short_name          = p_application_short_name;
710 
711   l_application_id        INTEGER;
712   l_rowid                 ROWID;
713   l_exist                 VARCHAR2(1);
714   f_luby                  NUMBER;      -- entity owner in file
715   f_ludate                DATE;        -- entity update date in file
716   db_luby                 NUMBER;      -- entity owner in db
717   db_ludate               DATE;        -- entity update date in db
718   l_log_module            VARCHAR2(240);
719 BEGIN
720 
721   IF g_log_enabled THEN
722     l_log_module := C_DEFAULT_MODULE||'.translate_row';
723   END IF;
724 
725   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
726     trace(p_msg    => 'BEGIN of procedure translate_row',
727           p_module => l_log_module,
728           p_level  => C_LEVEL_PROCEDURE);
729   END IF;
730 
731   -- Translate owner to file_last_updated_by
732   f_luby := fnd_load_util.owner_id(p_owner);
733 
734   -- Translate char last_update_date to date
735   f_ludate := nvl(to_date(p_last_update_date, 'YYYY/MM/DD'), sysdate);
736 
737   OPEN c_app_id;
738   FETCH c_app_id INTO l_application_id;
739   CLOSE c_app_id;
740 
741   BEGIN
742     SELECT last_updated_by, last_update_date
743       INTO db_luby, db_ludate
744       FROM xla_acct_line_types_tl
745      WHERE application_id             = l_application_id
746        AND amb_context_code           = p_amb_context_code
747        AND event_class_code           = p_event_class_code
748        AND accounting_line_type_code  = p_accounting_line_type_code
749        AND accounting_line_code       = p_accounting_line_code
750        AND language                   = userenv('LANG');
751 
752     IF (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
753                                db_ludate, p_custom_mode)) then
754       UPDATE xla_acct_line_types_tl
755          SET name                       = p_name
756             ,description                = p_description
757             ,last_update_date           = f_ludate
758             ,last_updated_by            = f_luby
759             ,last_update_login          = 0
760             ,source_lang                = userenv('LANG')
761        WHERE userenv('LANG')            IN (language, source_lang)
762          AND application_id             = l_application_id
763          AND amb_context_code           = p_amb_context_code
764          AND event_class_code           = p_event_class_code
765          AND accounting_line_type_code  = p_accounting_line_type_code
766          AND accounting_line_code       = p_accounting_line_code;
767 
768     END IF;
769 
770 
771 
772   END;
773 
774   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
775     trace(p_msg    => 'END of procedure translate_row',
776           p_module => l_log_module,
777           p_level  => C_LEVEL_PROCEDURE);
778   END IF;
779 
780 
781 
782 END translate_row;
783 
784 --=============================================================================
785 --
786 -- Following code is executed when the package body is referenced for the first
787 -- time
788 --
789 --=============================================================================
790 BEGIN
791    g_log_level          := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
792    g_log_enabled        := fnd_log.test
793                           (log_level  => g_log_level
794                           ,module     => C_DEFAULT_MODULE);
795 
796    IF NOT g_log_enabled THEN
797       g_log_level := C_LEVEL_LOG_DISABLED;
798    END IF;
799 
800 end xla_acct_line_types_f_PKG;