DBA Data[Home] [Help]

PACKAGE BODY: APPS.FA_XLA_CMP_CCID_PKG

Source


1 PACKAGE BODY fa_xla_cmp_ccid_pkg AS
2 /* $Header: faxlacib.pls 120.11 2011/02/04 13:39:29 gigupta ship $   */
3 /*===========================================================================+
4 |             Copyright (c) 2001-2002 Oracle Corporation                     |
5 |                       Redwood Shores, CA, USA                              |
6 |                         All rights reserved.                               |
7 +============================================================================+
8 | PACKAGE NAME                                                               |
9 |     fa_xla_cmp_ccid_pkg                                                    |
10 |                                                                            |
11 | DESCRIPTION                                                                |
12 |     This is a FA private package, which contains all the APIs required     |
13 |     for to create ccid extract for each extract type                       |
14 |                                                                            |
15 |                                                                            |
16 | HISTORY                                                                    |
17 |     25-FEB-2006 BRIDGWAY      Created                                      |
18 |                                                                            |
19 +===========================================================================*/
20 
21 
22 --+============================================+
23 --|                                            |
24 --|  PRIVATE  PROCEDURES/FUNCTIONS             |
25 --|                                            |
26 --+============================================+
27 
28 
29 C_PRIVATE_API_1   CONSTANT VARCHAR2(32000) := '
30 
31 /*======================================================================+
32 |                                                                       |
33 | Private Function                                                      |
34 |    Load_Generated_Ccids                                               |
35 |                                                                       |
36 +======================================================================*/
37 
38  ----------------------------------------------------
39   --
40   --  Account Generator Hook
41   --
42   ----------------------------------------------------
43    PROCEDURE Load_Generated_Ccids
44               (p_log_level_rec IN FA_API_TYPES.log_level_rec_type) IS
45 
46       l_mesg_count               number := 0;
47       l_mesg_len                 number;
48       l_mesg                     varchar2(4000);
49 
50       l_procedure_name  varchar2(80) := ''fa_xla_extract_def_pkg.load_generated_ccids'';   -- BMR make this dynamic on type
51 
52       type char_tab_type is table of varchar2(64) index by binary_integer;
53       type num_tab_type  is table of number       index by binary_integer;
54 
55 
56 ';
57 
58 C_PRIVATE_API_DEPRN   CONSTANT VARCHAR2(32000) := '
59 
60       type deprn_rec_type is record
61         (rowid                       VARCHAR2(64),
62          book_type_code              VARCHAR2(30),
63          distribution_id             NUMBER(15),
64          distribution_ccid           NUMBER(15),
65          deprn_entered_amount        NUMBER,
66          bonus_entered_amount        NUMBER,
67          reval_entered_amount        NUMBER,
68          generated_ccid              NUMBER(15),
69          generated_offset_ccid       NUMBER(15),
70          bonus_generated_ccid        NUMBER(15),
71          bonus_generated_offset_ccid NUMBER(15),
72          reval_generated_ccid        NUMBER(15),
73          reval_generated_offset_ccid NUMBER(15),
74          capital_adj_generated_ccid  NUMBER(15),
75          general_fund_generated_ccid NUMBER(15),
76          -- DEPRN_EXPENSE_ACCOUNT_CCID  NUMBER(15),
77          DEPRN_RESERVE_ACCOUNT_CCID  NUMBER(15),
78          --BONUS_EXP_ACCOUNT_CCID      NUMBER(15),
79          BONUS_RSV_ACCOUNT_CCID      NUMBER(15),
80          REVAL_AMORT_ACCOUNT_CCID    NUMBER(15),
81          REVAL_RSV_ACCOUNT_CCID      NUMBER(15),
82          CAPITAL_ADJ_ACCOUNT_CCID    NUMBER(15),
83          GENERAL_FUND_ACCOUNT_CCID   NUMBER(15),
84          DEPRN_EXPENSE_ACCT          VARCHAR2(25),
85          DEPRN_RESERVE_ACCT          VARCHAR2(25),
86          BONUS_DEPRN_EXPENSE_ACCT    VARCHAR2(25),
87          BONUS_RESERVE_ACCT          VARCHAR2(25),
88          REVAL_AMORT_ACCT            VARCHAR2(25),
89          REVAL_RESERVE_ACCT          VARCHAR2(25),
90          CAPITAL_ADJ_ACCT            VARCHAR2(25),
91          GENERAL_FUND_ACCT           VARCHAR2(25)
92         );
93 
94       type deprn_tbl_type is table of deprn_rec_type index by binary_integer;
95 
96       l_deprn_tbl deprn_tbl_type;
97 
98       l_generated_ccid              num_tab_type;
99       l_generated_offset_ccid       num_tab_type;
100       l_bonus_generated_ccid        num_tab_type;
101       l_bonus_generated_offset_ccid num_tab_type;
102       l_reval_generated_ccid        num_tab_type;
103       l_reval_generated_offset_ccid num_tab_type;
104       l_capital_adj_generated_ccid  num_tab_type;
105       l_general_fund_generated_ccid num_tab_type;
106       l_rowid                       char_tab_type;
107 
108       l_last_book    varchar2(30) := '' '';
109 
110       cursor c_deprn is
111       select /*+ leading(xg) index(xb, FA_XLA_EXT_HEADERS_B_GT_U1) index(xl, FA_XLA_EXT_LINES_B_GT_U1) */
112              xl.rowid,
113              xb.book_type_code,
114              xl.distribution_id,
115              xl.EXPENSE_ACCOUNT_CCID,
116              xl.entered_amount,
117              xl.bonus_entered_amount,
118              xl.reval_entered_amount,
119              nvl(xl.GENERATED_CCID,              da.DEPRN_EXPENSE_ACCOUNT_CCID),
120              nvl(xl.GENERATED_OFFSET_CCID,       da.DEPRN_RESERVE_ACCOUNT_CCID),
121              nvl(xl.BONUS_GENERATED_CCID,        da.BONUS_EXP_ACCOUNT_CCID),
122              nvl(xl.BONUS_GENERATED_OFFSET_CCID, da.BONUS_RSV_ACCOUNT_CCID),
123              nvl(xl.REVAL_GENERATED_CCID,        da.REVAL_AMORT_ACCOUNT_CCID),
124              nvl(xl.REVAL_GENERATED_OFFSET_CCID, da.REVAL_RSV_ACCOUNT_CCID),
125              da.CAPITAL_ADJ_ACCOUNT_CCID,
126              da.GENERAL_FUND_ACCOUNT_CCID,
127     --       xl.DEPRN_EXPENSE_ACCOUNT_CCID,
128              xl.RESERVE_ACCOUNT_CCID,
129     --       xl.BONUS_EXP_ACCOUNT_CCID,
130              xl.BONUS_RESERVE_ACCT_CCID,
131              xl.REVAL_AMORT_ACCOUNT_CCID,
132              xl.REVAL_RESERVE_ACCOUNT_CCID,
133              xl.CAPITAL_ADJ_ACCOUNT_CCID,
134              xl.GENERAL_FUND_ACCOUNT_CCID,
135              xl.deprn_expense_acct,
136              xl.DEPRN_RESERVE_ACCT,
137              xl.bonus_deprn_expense_acct,
138              xl.BONUS_RESERVE_ACCT,
139              xl.REVAL_AMORT_ACCT,
140              xl.REVAL_RESERVE_ACCT,
141              xl.CAPITAL_ADJ_ACCT,
142              xl.GENERAL_FUND_ACCT
143         from xla_events_gt            xg,
144              fa_xla_ext_headers_b_gt  xb,
145              fa_xla_ext_lines_b_gt    xl,
146              fa_distribution_accounts da
147        where xg.event_class_code = ''DEPRECIATION''
148          and xb.event_id         = xg.event_id
149          and xl.event_id         = xg.event_id
150          and xl.distribution_id  = da.distribution_id(+)
151          and xl.book_type_code   = da.book_type_code(+);
152 
153 
154    BEGIN
155 
156       IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
157          fnd_log.string(G_LEVEL_PROCEDURE,
158                         G_MODULE_NAME||l_procedure_name||''.begin'',
159                         ''Beginning of procedure'');
160       END IF;
161 
162       open  c_deprn;
163       fetch c_deprn bulk collect into l_deprn_tbl;
164       close c_deprn;
165 
166       for i in 1..l_deprn_tbl.count loop
167 
168          if (l_last_book <> l_deprn_tbl(i).book_type_code or
169              i = 1) then
170 
171             if not (fa_cache_pkg.fazcbc
172                       (X_BOOK => l_deprn_tbl(i).book_type_code,
173                        P_LOG_LEVEL_REC   => p_log_level_rec)) then
174                null;
175 
176             end if;
177             l_last_book := l_deprn_tbl(i).book_type_code;
178          end if;
179 
180 
181          -- call FAFBGCC if the ccid doesnt exist in distribution accounts
182 
183          if (l_deprn_tbl(i).generated_ccid is null and
184              l_deprn_tbl(i).deprn_entered_amount   <> 0) then
185 
186             if (not FA_GCCID_PKG.fafbgcc
187                       (X_book_type_code  => l_deprn_tbl(i).book_type_code,
188                        X_fn_trx_code     => ''DEPRN_EXPENSE_ACCT'',
189                        X_dist_ccid       => l_deprn_tbl(i).distribution_ccid,
190                        X_acct_segval     => l_deprn_tbl(i).deprn_expense_acct,
191                        X_account_ccid    => 0,
192                        X_distribution_id => l_deprn_tbl(i).distribution_id,
193                        X_rtn_ccid        => l_deprn_tbl(i).generated_ccid,
194                        P_LOG_LEVEL_REC   => p_log_level_rec)) then
195                FA_SRVR_MSG.ADD_MESSAGE
196                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
197                    CALLING_FN => ''FA_INS_ADJUST_PKG.fadoflx'',
198                    P_LOG_LEVEL_REC => p_log_level_rec);
199                l_deprn_tbl(i).generated_ccid := -1;
200             end if;
201          end if;
202 
203          if (l_deprn_tbl(i).generated_offset_ccid is null and
204              l_deprn_tbl(i).deprn_entered_amount <> 0) then
205 
206 
207             if (not FA_GCCID_PKG.fafbgcc
208                       (X_book_type_code  => l_deprn_tbl(i).book_type_code,
209                        X_fn_trx_code     => ''DEPRN_RESERVE_ACCT'',
210                        X_dist_ccid       => l_deprn_tbl(i).distribution_ccid,
211                        X_acct_segval     => l_deprn_tbl(i).deprn_reserve_acct,
212                        X_account_ccid    => l_deprn_tbl(i).deprn_reserve_account_ccid,
213                        X_distribution_id => l_deprn_tbl(i).distribution_id,
214                        X_rtn_ccid        => l_deprn_tbl(i).generated_offset_ccid,
215                        P_LOG_LEVEL_REC   => p_log_level_rec)) then
216 
217                FA_SRVR_MSG.ADD_MESSAGE
218                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
219                    CALLING_FN => ''FA_INS_ADJUST_PKG.fadoflx'',
220                    P_LOG_LEVEL_REC => p_log_level_rec);
221                l_deprn_tbl(i).generated_offset_ccid := -1;
222             end if;
223          end if;
224 
225          if (l_deprn_tbl(i).bonus_generated_ccid is null and
226              l_deprn_tbl(i).bonus_entered_amount <> 0) then
227 
228             if (not FA_GCCID_PKG.fafbgcc
229                       (X_book_type_code  => l_deprn_tbl(i).book_type_code,
230                        X_fn_trx_code     => ''BONUS_DEPRN_EXPENSE_ACCT'',
231                        X_dist_ccid       => l_deprn_tbl(i).distribution_ccid,
232                        X_acct_segval     => l_deprn_tbl(i).bonus_deprn_expense_acct,
233                        X_account_ccid    => 0,
234                        X_distribution_id => l_deprn_tbl(i).distribution_id,
235                        X_rtn_ccid        => l_deprn_tbl(i).bonus_generated_ccid,
236                        P_LOG_LEVEL_REC   => p_log_level_rec)) then
237                FA_SRVR_MSG.ADD_MESSAGE
238                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
239                    CALLING_FN => ''FA_INS_ADJUST_PKG.fadoflx'',
240                    P_LOG_LEVEL_REC => p_log_level_rec);
241                l_deprn_tbl(i).bonus_generated_ccid := -1;
242 
243             end if;
244          end if;
245 
246          if (l_deprn_tbl(i).bonus_generated_offset_ccid is null and
247              l_deprn_tbl(i).bonus_entered_amount <> 0) then
248 
249             if (not FA_GCCID_PKG.fafbgcc
250                       (X_book_type_code  => l_deprn_tbl(i).book_type_code,
251                        X_fn_trx_code     => ''BONUS_DEPRN_RESERVE_ACCT'',
252                        X_dist_ccid       => l_deprn_tbl(i).distribution_ccid,
253                        X_acct_segval     => l_deprn_tbl(i).bonus_reserve_acct,
254                        X_account_ccid    => l_deprn_tbl(i).bonus_rsv_account_ccid,
255                        X_distribution_id => l_deprn_tbl(i).distribution_id,
256                        X_rtn_ccid        => l_deprn_tbl(i).bonus_generated_offset_ccid,
257                        P_LOG_LEVEL_REC   => p_log_level_rec)) then
258                FA_SRVR_MSG.ADD_MESSAGE
259                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
260                    CALLING_FN => ''FA_INS_ADJUST_PKG.fadoflx'',
261                    P_LOG_LEVEL_REC => p_log_level_rec);
262                l_deprn_tbl(i).bonus_generated_offset_ccid := -1;
263 
264             end if;
265          end if;
266 
267 
268          if (l_deprn_tbl(i).reval_generated_ccid is null and
269              l_deprn_tbl(i).reval_entered_amount <> 0) then
270 
271             if (not FA_GCCID_PKG.fafbgcc
272                       (X_book_type_code  => l_deprn_tbl(i).book_type_code,
273                        X_fn_trx_code     => ''REVAL_AMORTIZATION_ACCT'',
274                        X_dist_ccid       => l_deprn_tbl(i).distribution_ccid,
275                        X_acct_segval     => l_deprn_tbl(i).reval_amort_acct,
276                        X_account_ccid    => l_deprn_tbl(i).reval_amort_account_ccid,
277                        X_distribution_id => l_deprn_tbl(i).distribution_id,
278                        X_rtn_ccid        => l_deprn_tbl(i).reval_generated_ccid,
279                        P_LOG_LEVEL_REC   => p_log_level_rec)) then
280                FA_SRVR_MSG.ADD_MESSAGE
281                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
282                    CALLING_FN => ''FA_INS_ADJUST_PKG.fadoflx'',
283                    P_LOG_LEVEL_REC => p_log_level_rec);
284                l_deprn_tbl(i).reval_generated_ccid := -1;
285             end if;
286          end if;
287 
288          if (l_deprn_tbl(i).reval_generated_offset_ccid is null and
289              l_deprn_tbl(i).reval_entered_amount <> 0) then
290 
291             if (not FA_GCCID_PKG.fafbgcc
292                       (X_book_type_code  => l_deprn_tbl(i).book_type_code,
293                        X_fn_trx_code     => ''REVAL_RESERVE_ACCT'',
294                        X_dist_ccid       => l_deprn_tbl(i).distribution_ccid,
295                        X_acct_segval     => l_deprn_tbl(i).reval_reserve_acct,
296                        X_account_ccid    => l_deprn_tbl(i).reval_rsv_account_ccid,
297                        X_distribution_id => l_deprn_tbl(i).distribution_id,
298                        X_rtn_ccid        => l_deprn_tbl(i).reval_generated_offset_ccid,
299                        P_LOG_LEVEL_REC   => p_log_level_rec)) then
300                FA_SRVR_MSG.ADD_MESSAGE
301                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
302                    CALLING_FN => ''FA_INS_ADJUST_PKG.fadoflx'',
303                    P_LOG_LEVEL_REC => p_log_level_rec);
304                l_deprn_tbl(i).reval_generated_offset_ccid := -1;
305 
306             end if;
307          end if;
308 
309          if (l_deprn_tbl(i).capital_adj_generated_ccid is null and
310              l_deprn_tbl(i).deprn_entered_amount <> 0 and
311              fa_xla_extract_util_pkg.G_sorp_enabled) then
312 
313             if (not FA_GCCID_PKG.fafbgcc
314                       (X_book_type_code  => l_deprn_tbl(i).book_type_code,
315                        X_fn_trx_code     => ''CAPITAL_ADJ_ACCT'',
316                        X_dist_ccid       => l_deprn_tbl(i).distribution_ccid,
317                        X_acct_segval     => l_deprn_tbl(i).capital_adj_acct,
318                        X_account_ccid    => l_deprn_tbl(i).capital_adj_account_ccid,
319                        X_distribution_id => l_deprn_tbl(i).distribution_id,
320                        X_rtn_ccid        => l_deprn_tbl(i).capital_adj_generated_ccid,
321                        P_LOG_LEVEL_REC   => p_log_level_rec)) then
322 
323                FA_SRVR_MSG.ADD_MESSAGE
324                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
325                    CALLING_FN => ''FA_INS_ADJUST_PKG.fadoflx'',
326                    P_LOG_LEVEL_REC => p_log_level_rec);
327                l_deprn_tbl(i).capital_adj_generated_ccid := -1;
328             end if;
329          end if;
330 
331          if (l_deprn_tbl(i).general_fund_generated_ccid is null and
332              l_deprn_tbl(i).deprn_entered_amount <> 0 and
333              fa_xla_extract_util_pkg.G_sorp_enabled) then
334 
335             if (not FA_GCCID_PKG.fafbgcc
336                       (X_book_type_code  => l_deprn_tbl(i).book_type_code,
337                        X_fn_trx_code     => ''GENERAL_FUND_ACCT'',
338                        X_dist_ccid       => l_deprn_tbl(i).distribution_ccid,
339                        X_acct_segval     => l_deprn_tbl(i).general_fund_acct,
340                        X_account_ccid    => l_deprn_tbl(i).general_fund_account_ccid,
341                        X_distribution_id => l_deprn_tbl(i).distribution_id,
342                        X_rtn_ccid        => l_deprn_tbl(i).general_fund_generated_ccid,
343                        P_LOG_LEVEL_REC   => p_log_level_rec)) then
344 
345                FA_SRVR_MSG.ADD_MESSAGE
346                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
347                    CALLING_FN => ''FA_INS_ADJUST_PKG.fadoflx'',
348                    P_LOG_LEVEL_REC => p_log_level_rec);
349                l_deprn_tbl(i).general_fund_generated_ccid := -1;
350             end if;
351          end if;
352 
353       end loop;
354 
355       for i in 1.. l_deprn_tbl.count loop
356 
357          l_generated_ccid(i)              := l_deprn_tbl(i).generated_ccid;
358          l_generated_offset_ccid(i)       := l_deprn_tbl(i).generated_offset_ccid;
359          l_bonus_generated_ccid(i)        := l_deprn_tbl(i).bonus_generated_ccid;
360          l_bonus_generated_offset_ccid(i) := l_deprn_tbl(i).bonus_generated_offset_ccid;
361          l_reval_generated_ccid(i)        := l_deprn_tbl(i).reval_generated_ccid;
362          l_reval_generated_offset_ccid(i) := l_deprn_tbl(i).reval_generated_offset_ccid;
363          l_capital_adj_generated_ccid(i)  := l_deprn_tbl(i).capital_adj_generated_ccid;
364          l_general_fund_generated_ccid(i) := l_deprn_tbl(i).general_fund_generated_ccid;
365          l_rowid(i)                       := l_deprn_tbl(i).rowid;
366 
367       end loop;
368 
369       forall i in 1..l_deprn_tbl.count
370       update fa_xla_ext_lines_b_gt
371          set generated_ccid              = l_generated_ccid(i),
372              generated_offset_ccid       = l_generated_offset_ccid(i),
373              bonus_generated_ccid        = l_bonus_generated_ccid(i),
374              bonus_generated_offset_ccid = l_bonus_generated_offset_ccid(i),
375              reval_generated_ccid        = l_reval_generated_ccid(i),
376              reval_generated_offset_ccid = l_reval_generated_offset_ccid(i),
377              capital_adj_generated_ccid =  l_capital_adj_generated_ccid(i),
378              general_fund_generated_ccid = l_general_fund_generated_ccid(i)
379        where rowid                       = l_rowid(i);
380 
381 ';
382 
383 C_PRIVATE_API_TRX   CONSTANT VARCHAR2(32000) := '
384 
385 
386       -- bug 5563601: Increased length of variable account_type to 50
387       type adj_rec_type is record
388            (rowid                       VARCHAR2(64),
389             book_type_code              VARCHAR2(30),
390             distribution_id             NUMBER(15),
391             distribution_ccid           NUMBER(15),
392             entered_amount              NUMBER,
393             account_type                VARCHAR2(50),
394             generated_ccid              NUMBER(15),
395             account_ccid                NUMBER(15),
396             account_segment             VARCHAR2(25),
397             offset_account_type         VARCHAR2(25),
398             generated_offset_ccid       NUMBER(15),
399             offset_account_ccid         NUMBER(15),
400             offset_account_segment      VARCHAR2(25),
401             counter_account_type        VARCHAR2(50),   -- Bug 6962827:
402             counter_generated_ccid      NUMBER(15),     -- Bug 6962827:
403             counter_account_ccid        NUMBER(15),     -- Bug 6962827:
404             counter_account_segment     VARCHAR2(25),   -- Bug 6962827:
405             counter_generated_offset_ccid NUMBER(15),   -- Bug 6962827:
406             counter_offset_account_ccid NUMBER(15),     -- Bug 6962827:
407             counter_offset_account_segment VARCHAR2(25) -- Bug 6962827:
408            );
409 
410       type adj_tbl_type is table of adj_rec_type index by binary_integer;
411 
412       l_adj_tbl adj_tbl_type;
413 
414       l_generated_ccid              num_tab_type;
415       l_generated_offset_ccid       num_tab_type;
416       l_rowid                       char_tab_type;
417       l_counter_generated_ccid      num_tab_type;  -- Bug 6962827:
418       l_ctr_generated_off_ccid      num_tab_type;  -- Bug 6962827:
419 
420       error_found                   exception;
421 
422       l_last_book    varchar2(30) := '' '';
423 
424       cursor c_trx is
425       select /*+ leading(xg) index(xb, FA_XLA_EXT_HEADERS_B_GT_U1) index(xl, FA_XLA_EXT_LINES_B_GT_U1) */
426              xl.rowid,
427              xb.book_type_code,
428              xl.distribution_id,
429              xl.expense_account_ccid,
430              xl.entered_amount,
431              decode
432              (adjustment_type,
433               ''COST'',            ''ASSET_COST_ACCT'',
434               ''CIP COST'',        ''CIP_COST_ACCT'',
435               ''COST CLEARING'',   decode(xl.asset_type,
436                                         ''CIP'', ''CIP_CLEARING_ACCT'',
437                                                  ''ASSET_CLEARING_ACCT''),
438               ''EXPENSE'',         ''DEPRN_EXPENSE_ACCT'',
439               ''RESERVE'',         ''DEPRN_RESERVE_ACCT'',
440               ''BONUS EXPENSE'',   ''BONUS_DEPRN_EXPENSE_ACCT'',
441               ''BONUS RESERVE'',   ''BONUS_DEPRN_RESERVE_ACCT'',
442               ''REVAL RESERVE'',   ''REVAL_RESERVE_ACCT'',
443               ''CAPITAL ADJ'',     ''CAPITAL_ADJ_ACCT'',
444               ''GENERAL FUND'',    ''GENERAL_FUND_ACCT'',
445               ''IMPAIR EXPENSE'',  ''IMPAIR_EXPENSE_ACCT'',
446               ''IMPAIR RESERVE'',  ''IMPAIR_RESERVE_ACCT'',
447               ''LINK IMPAIR EXP'', ''IMPAIR_EXPENSE_ACCT'',
448               ''IMPAIR OFF EXP'',  ''DEPRN_EXPENSE_ACCT'',
449               ''DEPRN ADJUST'',    ''DEPRN_ADJUSTMENT_ACCT'',
450               ''REVAL LOSS'',      ''REVAL_LOSS_ACCT'',
451               ''REVAL OFF EXP'',   ''DEPRN_EXPENSE_ACCT'',
452               ''PROCEEDS CLR'',    ''PROCEEDS_OF_SALE_CLEARING_ACCT'',
453               ''REMOVALCOST CLR'', ''COST_OF_REMOVAL_CLEARING_ACCT'',
454               ''REMOVALCOST'',     decode(sign(gain_loss_amount),
455                                         -1, ''COST_OF_REMOVAL_LOSS_ACCT'',
456                                             ''COST_OF_REMOVAL_GAIN_ACCT''),
457               ''PROCEEDS'',        decode(sign(gain_loss_amount),
458                                         -1, ''PROCEEDS_OF_SALE_LOSS_ACCT'',
459                                             ''PROCEEDS_OF_SALE_GAIN_ACCT''),
460               ''REVAL RSV RET'',   decode(sign(gain_loss_amount),
461                                         -1, ''REVAL_RSV_RETIRED_LOSS_ACCT'',
462                                             ''REVAL_RSV_RETIRED_GAIN_ACCT''),
463               ''NBV RETIRED'',     decode(asset_type,
464                                         ''GROUP'', decode(sign(gain_loss_amount),
465                                                         -1, ''NBV_RETIRED_LOSS_ACCT'',
466                                                             ''NBV_RETIRED_GAIN_ACCT''),
467                                         decode(sign(gain_loss_amount),
468                                                -1, ''NBV_RETIRED_LOSS_ACCT'',
469                                                    ''NBV_RETIRED_GAIN_ACCT'')),
470               NULL),
471              decode(xl.adjustment_type,
472               ''COST'',             nvl(xl.generated_ccid, da.ASSET_COST_ACCOUNT_CCID),
473               ''CIP COST'',         nvl(xl.generated_ccid, da.CIP_COST_ACCOUNT_CCID),
474               ''COST CLEARING'',    decode(xl.asset_type,
475                                          ''CIP'', nvl(xl.generated_ccid, da.CIP_CLEARING_ACCOUNT_CCID),
476                                                   nvl(xl.generated_ccid, da.ASSET_CLEARING_ACCOUNT_CCID)),
477               ''EXPENSE'',          nvl(xl.generated_ccid, da.DEPRN_EXPENSE_ACCOUNT_CCID),
478               ''RESERVE'',          nvl(xl.generated_ccid, da.DEPRN_RESERVE_ACCOUNT_CCID),
479               ''BONUS EXPENSE'',    nvl(xl.generated_ccid, da.BONUS_EXP_ACCOUNT_CCID),
480               ''BONUS RESERVE'',    nvl(xl.generated_ccid, da.BONUS_RSV_ACCOUNT_CCID),
481               ''REVAL RESERVE'',    nvl(xl.generated_ccid, da.REVAL_RSV_ACCOUNT_CCID),
482               ''CAPITAL ADJ'',      nvl(xl.generated_ccid, da.CAPITAL_ADJ_ACCOUNT_CCID),
483               ''GENERAL FUND'',     nvl(xl.generated_ccid, da.GENERAL_FUND_ACCOUNT_CCID),
484               ''IMPAIR EXPENSE'',   nvl(xl.generated_ccid, da.IMPAIR_EXPENSE_ACCOUNT_CCID),
485               ''IMPAIR RESERVE'',   nvl(xl.generated_ccid, da.IMPAIR_RESERVE_ACCOUNT_CCID),
486               ''LINK IMPAIR EXP'',  nvl(xl.generated_ccid, da.IMPAIR_EXPENSE_ACCOUNT_CCID),
487               ''IMPAIR OFF EXP'',   nvl(xl.generated_ccid, da.DEPRN_EXPENSE_ACCOUNT_CCID),
488               ''REVAL LOSS'',       nvl(xl.generated_ccid, da.REVAL_LOSS_ACCOUNT_CCID),
489               ''REVAL OFF EXP'',    nvl(xl.generated_ccid, da.DEPRN_EXPENSE_ACCOUNT_CCID),
490               ''DEPRN ADJUST'',     nvl(xl.generated_ccid, da.DEPRN_ADJ_ACCOUNT_CCID),
491               ''PROCEEDS CLR'',     nvl(xl.generated_ccid, da.PROCEEDS_SALE_CLEARING_CCID),
492               ''REMOVALCOST CLR'',  nvl(xl.generated_ccid, da.COST_REMOVAL_CLEARING_CCID),
493               ''PROCEEDS'',         decode(sign(xl.gain_loss_amount),
494                                          -1, nvl(xl.generated_ccid, da.PROCEEDS_SALE_LOSS_CCID),
495                                              nvl(xl.generated_ccid, da.PROCEEDS_SALE_GAIN_CCID)),
496               ''REMOVALCOST'',      decode(sign(xl.gain_loss_amount),
497                                          -1, nvl(xl.generated_ccid, da.COST_REMOVAL_LOSS_CCID),
498                                              nvl(xl.generated_ccid, da.COST_REMOVAL_GAIN_CCID)),
499               ''REVAL RSV RET'',    decode(sign(xl.gain_loss_amount),
500                                          -1, nvl(xl.generated_ccid, da.REVAL_RSV_LOSS_ACCOUNT_CCID),
501                                              nvl(xl.generated_ccid, da.REVAL_RSV_GAIN_ACCOUNT_CCID)),
502               ''NBV RETIRED'',      decode(sign(xl.gain_loss_amount),
503                                          -1, nvl(xl.generated_ccid, da.NBV_RETIRED_LOSS_CCID),
504                                              nvl(xl.generated_ccid, da.NBV_RETIRED_GAIN_CCID)),
505               NULL),
506              decode(xl.adjustment_type,
507               ''COST'',             xl.ASSET_COST_ACCOUNT_CCID,
508               ''CIP COST'',         xl.CIP_COST_ACCOUNT_CCID,
509               ''COST CLEARING'',    decode(xl.asset_type,
510                                          ''CIP'', xl.CIP_CLEARING_ACCOUNT_CCID,
511                                                   xl.ASSET_CLEARING_ACCOUNT_CCID),
512               ''RESERVE'',          xl.RESERVE_ACCOUNT_CCID,
513               ''BONUS RESERVE'',    xl.BONUS_RESERVE_ACCT_CCID,
514               ''REVAL RESERVE'',    xl.REVAL_RESERVE_ACCOUNT_CCID,
515               ''CAPITAL ADJ'',      xl.CAPITAL_ADJ_ACCOUNT_CCID,
516               ''GENERAL FUND'',     xl.GENERAL_FUND_ACCOUNT_CCID,
517               ''IMPAIR EXPENSE'',   xl.IMPAIR_EXPENSE_ACCOUNT_CCID,
518               ''IMPAIR RESERVE'',   xl.IMPAIR_RESERVE_ACCOUNT_CCID,
519               ''LINK IMPAIR EXP'',  xl.IMPAIR_EXPENSE_ACCOUNT_CCID,
520               ''IMPAIR OFF EXP'',   xl.DEPRN_EXPENSE_ACCOUNT_CCID,
521               ''REVAL LOSS'',       xl.REVAL_LOSS_ACCOUNT_CCID,
522               ''REVAL OFF EXP'',    xl.DEPRN_EXPENSE_ACCOUNT_CCID,
523               0),
524              decode(xl.adjustment_type,
525               ''COST'',             xl.ASSET_COST_ACCT,
526               ''CIP COST'',         xl.CIP_COST_ACCT,
527               ''COST CLEARING'',    decode(xl.asset_type,
528                                          ''CIP'', xl.CIP_CLEARING_ACCT,
529                                                   xl.ASSET_CLEARING_ACCT),
530               ''EXPENSE'',          xl.DEPRN_EXPENSE_ACCT,
531               ''RESERVE'',          xl.DEPRN_RESERVE_ACCT,
532               ''BONUS EXPENSE'',    xl.BONUS_DEPRN_EXPENSE_ACCT,
533               ''BONUS RESERVE'',    xl.BONUS_RESERVE_ACCT,
534               ''REVAL RESERVE'',    xl.REVAL_RESERVE_ACCT,
535               ''CAPITAL ADJ'',      xl.CAPITAL_ADJ_ACCT,
536               ''GENERAL FUND'',     xl.GENERAL_FUND_ACCT,
537               ''IMPAIR EXPENSE'',   xl.IMPAIR_EXPENSE_ACCT,
538               ''IMPAIR RESERVE'',   xl.IMPAIR_RESERVE_ACCT,
539               ''LINK IMPAIR EXP'',  xl.IMPAIR_EXPENSE_ACCT,
540               ''IMPAIR OFF EXP'',   xl.DEPRN_EXPENSE_ACCT,
541               ''REVAL LOSS'',       xl.REVAL_LOSS_ACCT,
542               ''REVAL OFF EXP'',    xl.DEPRN_EXPENSE_ACCT,
543               ''PROCEEDS CLR'',     xb.PROCEEDS_OF_SALE_CLEARING_ACCT,
544               ''REMOVALCOST CLR'',  xb.COST_OF_REMOVAL_CLEARING_ACCT,
545               ''NBV RETIRED'',      decode(sign(xl.gain_loss_amount),
546                                           -1, xb.NBV_RETIRED_LOSS_ACCT,
547                                               xb.NBV_RETIRED_GAIN_ACCT),
548               ''PROCEEDS'',         decode(sign(xl.gain_loss_amount),
549                                           -1, xb.PROCEEDS_OF_SALE_LOSS_ACCT,
550                                               xb.PROCEEDS_OF_SALE_GAIN_ACCT),
551               ''REMOVALCOST'',      decode(sign(xl.gain_loss_amount),
552                                           -1, xb.COST_OF_REMOVAL_LOSS_ACCT,
553                                               xb.COST_OF_REMOVAL_GAIN_ACCT),
554               ''REVAL RSV RET'',    decode(sign(xl.gain_loss_amount),
555                                           -1, xb.REVAL_RSV_RETIRED_LOSS_ACCT,
556                                               xb.REVAL_RSV_RETIRED_GAIN_ACCT),
557               NULL),
558              decode(xl.adjustment_type,
559               ''EXPENSE'',       ''DEPRN_RESERVE_ACCT'',
560               ''BONUS EXPENSE'', ''BONUS_DEPRN_RESERVE_ACCT'',
561               NULL),
562              decode(xl.adjustment_type,
563               ''EXPENSE'',       da.DEPRN_RESERVE_ACCOUNT_CCID,
564               ''BONUS EXPENSE'', da.BONUS_RSV_ACCOUNT_CCID,
565               NULL),
566              decode(xl.adjustment_type,
567               ''EXPENSE'',       xl.RESERVE_ACCOUNT_CCID,
568               ''BONUS EXPENSE'', xl.BONUS_RESERVE_ACCT_CCID,
569               NULL),
570              decode(xl.adjustment_type,
571               ''EXPENSE'',       xl.DEPRN_RESERVE_ACCT,
572               ''BONUS EXPENSE'', xl.BONUS_RESERVE_ACCT,
573               NULL),
574              -- Bug 6962827: counter_account_type
575              decode(adjustment_type,
576               ''BONUS EXPENSE'',         ''DEPRN_EXPENSE_ACCT'',
577               ''BONUS RESERVE'',         ''DEPRN_RESERVE_ACCT'',
578               NULL),
579              -- Bug 6962827: counter_generated_ccid
580              decode(xl.adjustment_type,
581               ''BONUS EXPENSE'', da.DEPRN_EXPENSE_ACCOUNT_CCID,
582               ''BONUS RESERVE'', da.DEPRN_RESERVE_ACCOUNT_CCID,
583               NULL),
584               -- Bug 6962827 : counter_account_ccid
585              decode(xl.adjustment_type,
586               ''BONUS RESERVE'', xl.RESERVE_ACCOUNT_CCID,
587               0),
588               -- Bug 6962827 : counter_account_segment
589              decode(xl.adjustment_type,
590               ''BONUS EXPENSE'', xl.DEPRN_EXPENSE_ACCT,
591               ''BONUS RESERVE'', xl.DEPRN_RESERVE_ACCT,
592               NULL),
593              -- Bug 6962827 : counter_generated_offset_ccid
594              decode(xl.adjustment_type,
595               ''BONUS EXPENSE'', da.DEPRN_RESERVE_ACCOUNT_CCID,
596               NULL),
597               -- Bug 6962827 : counter_offset_account_ccid
598              decode(xl.adjustment_type,
599               ''BONUS EXPENSE'', xl.RESERVE_ACCOUNT_CCID,
600               NULL),
601               -- Bug 6962827 : counter_offset_account_segment
602              decode(xl.adjustment_type,
603               ''BONUS EXPENSE'', xl.DEPRN_RESERVE_ACCT,
604               NULL)
605         from xla_events_gt            xg,
606              fa_xla_ext_headers_b_gt  xb,
607              fa_xla_ext_lines_b_gt    xl,
608              fa_distribution_accounts da
609        where xg.event_class_code     not in (''DEPRECIATION'', ''DEFERRED'')
610          and xb.event_id        = xg.event_id
611          and xl.event_id        = xg.event_id
612          and xl.distribution_id = da.distribution_id(+)
613          and xl.book_type_code  = da.book_type_code(+);
614 
615 
616    BEGIN
617 
618       IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
619          fnd_log.string(G_LEVEL_PROCEDURE,
620                         G_MODULE_NAME||l_procedure_name||''.begin'',
621                         ''Beginning of procedure'');
622       END IF;
623 
624 
625       open  c_trx;
626       fetch c_trx
627        bulk collect into l_adj_tbl;
628       close c_trx;
629 
630       for i in 1..l_adj_tbl.count loop
631 
632          if (l_last_book <> l_adj_tbl(i).book_type_code or
633              i = 1) then
634             if not (fa_cache_pkg.fazcbc
635                       (X_BOOK => l_adj_tbl(1).book_type_code,
636                        P_LOG_LEVEL_REC   => p_log_level_rec)) then
637                null;
638             end if;
639             l_last_book := l_adj_tbl(i).book_type_code;
640          end if;
641 
642          -- call FAFBGCC if the ccid doesnt exist in distribution accounts
643 
644          if (l_adj_tbl(i).generated_ccid is null and
645              l_adj_tbl(i).entered_amount   <> 0) then
646 
647             if (not FA_GCCID_PKG.fafbgcc
648                       (X_book_type_code  => l_adj_tbl(i).book_type_code,
649                        X_fn_trx_code     => l_adj_tbl(i).account_type,
650                        X_dist_ccid       => l_adj_tbl(i).distribution_ccid,
651                        X_acct_segval     => l_adj_tbl(i).account_segment,
652                        X_account_ccid    => l_adj_tbl(i).account_ccid,
653                        X_distribution_id => l_adj_tbl(i).distribution_id,
654                        X_rtn_ccid        => l_adj_tbl(i).generated_ccid,
655                        P_LOG_LEVEL_REC => p_log_level_rec)) then
656                FA_SRVR_MSG.ADD_MESSAGE
657                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
658                    CALLING_FN => ''FA_INS_ADJUST_PKG.fadoflx'',
659                    P_LOG_LEVEL_REC => p_log_level_rec);
660                l_adj_tbl(i).generated_ccid := -1;
661             end if;
662          end if;
663 
664          if (l_adj_tbl(i).account_type in
665               (''DEPRN_EXPENSE_ACCT'', ''BONUS_DEPRN_EXPENSE_ACCT'') and
666              l_adj_tbl(i).generated_offset_ccid is null and
667              l_adj_tbl(i).entered_amount <> 0) then
668 
669             if (not FA_GCCID_PKG.fafbgcc
670                       (X_book_type_code  => l_adj_tbl(i).book_type_code,
671                        X_fn_trx_code     => l_adj_tbl(i).offset_account_type,
672                        X_dist_ccid       => l_adj_tbl(i).distribution_ccid,
673                        X_acct_segval     => l_adj_tbl(i).offset_account_segment,
674                        X_account_ccid    => l_adj_tbl(i).offset_account_ccid,
675                        X_distribution_id => l_adj_tbl(i).distribution_id,
676                        X_rtn_ccid        => l_adj_tbl(i).generated_offset_ccid,
677                        P_LOG_LEVEL_REC => p_log_level_rec)) then
678                FA_SRVR_MSG.ADD_MESSAGE
679                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
680                    CALLING_FN => ''FA_INS_ADJUST_PKG.fadoflx'',
681                    P_LOG_LEVEL_REC => p_log_level_rec);
682                l_adj_tbl(i).generated_offset_ccid := -1;
683             end if;
684          end if;
685 
686          -- Bug 6962827 start
687          -- Populate counter_generated_ccid with the Expense acct for
688          -- Bonus expense and with Reserve acct for Bonus Reserve lines.
689          if (l_adj_tbl(i).account_type in (''BONUS_DEPRN_EXPENSE_ACCT'',''BONUS_DEPRN_RESERVE_ACCT'') and
690              l_adj_tbl(i).counter_generated_ccid is null and
691              l_adj_tbl(i).entered_amount   <> 0) then
692 
693             if (not FA_GCCID_PKG.fafbgcc
694                       (X_book_type_code  => l_adj_tbl(i).book_type_code,
695                        X_fn_trx_code     => l_adj_tbl(i).counter_account_type,
696                        X_dist_ccid       => l_adj_tbl(i).distribution_ccid,
697                        X_acct_segval     => l_adj_tbl(i).counter_account_segment,
698                        X_account_ccid    => l_adj_tbl(i).counter_account_ccid,
699                        X_distribution_id => l_adj_tbl(i).distribution_id,
700                        X_rtn_ccid        => l_adj_tbl(i).counter_generated_ccid,
701                        P_LOG_LEVEL_REC => p_log_level_rec)) then
702                FA_SRVR_MSG.ADD_MESSAGE
703                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
704                    CALLING_FN => ''FA_INS_ADJUST_PKG.fadoflx'',
705                    P_LOG_LEVEL_REC => p_log_level_rec);
706                l_adj_tbl(i).counter_generated_ccid := -1;
707             end if;
708 
709          end if;
710 
711          -- Populate counter_generated_offset_ccid with the Reserve acct
712          -- for Bonus expense lines.
713          if (l_adj_tbl(i).account_type = ''BONUS_DEPRN_EXPENSE_ACCT'' and
714              l_adj_tbl(i).counter_generated_offset_ccid is null and
715              l_adj_tbl(i).entered_amount   <> 0) then
716 
717             if (not FA_GCCID_PKG.fafbgcc
718                       (X_book_type_code  => l_adj_tbl(i).book_type_code,
719                        X_fn_trx_code     => ''DEPRN_RESERVE_ACCT'',
720                        X_dist_ccid       => l_adj_tbl(i).distribution_ccid,
721                        X_acct_segval     => l_adj_tbl(i).counter_offset_account_segment,
722                        X_account_ccid    => l_adj_tbl(i).counter_offset_account_ccid,
723                        X_distribution_id => l_adj_tbl(i).distribution_id,
724                        X_rtn_ccid        => l_adj_tbl(i).counter_generated_offset_ccid,
725                        P_LOG_LEVEL_REC => p_log_level_rec)) then
726                FA_SRVR_MSG.ADD_MESSAGE
727                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
728                    CALLING_FN => ''FA_INS_ADJUST_PKG.fadoflx'',
729                    P_LOG_LEVEL_REC => p_log_level_rec);
730                l_adj_tbl(i).counter_generated_offset_ccid := -1;
731             end if;
732 
733          end if;
734          -- Bug 6962827 end
735 
736       end loop;
737 
738       for i in 1.. l_adj_tbl.count loop
739 
740          l_generated_ccid(i)              := l_adj_tbl(i).generated_ccid;
741          l_generated_offset_ccid(i)       := l_adj_tbl(i).generated_offset_ccid;
742          l_rowid(i)                       := l_adj_tbl(i).rowid;
743          -- Bug 6962827
744          l_counter_generated_ccid(i)       := l_adj_tbl(i).counter_generated_ccid;
745          l_ctr_generated_off_ccid(i)       := l_adj_tbl(i).counter_generated_offset_ccid;
746       end loop;
747 
748       forall i in 1..l_adj_tbl.count
749       update fa_xla_ext_lines_b_gt
750          set generated_ccid              = l_generated_ccid(i),
751              generated_offset_ccid       = l_generated_offset_ccid(i),
752              counter_generated_ccid      = l_counter_generated_ccid(i), -- Bug 6962827
753              counter_generated_offset_ccid = l_ctr_generated_off_ccid(i) -- Bug 6962827
754        where rowid                       = l_rowid(i);
755 
756 ';
757 
758 C_PRIVATE_API_DEF   CONSTANT VARCHAR2(32000) := '
759 
760       type def_deprn_rec_type is record
761         (rowid                           VARCHAR2(64),
762          book_type_code                  VARCHAR2(30),
763          distribution_id                 NUMBER(15),
764          distribution_ccid               NUMBER(15),
765          def_deprn_entered_amount        NUMBER,
766          generated_ccid                  NUMBER(15),
767          generated_offset_ccid           NUMBER(15),
768          DEF_DEPRN_EXPENSE_ACCT          VARCHAR2(25),
769          DEF_DEPRN_RESERVE_ACCT          VARCHAR2(25)
770         );
771 
772       type def_deprn_tbl_type is table of def_deprn_rec_type index by binary_integer;
773 
774       l_def_deprn_tbl def_deprn_tbl_type;
775 
776       l_generated_ccid              num_tab_type;
777       l_generated_offset_ccid       num_tab_type;
778       l_rowid                       char_tab_type;
779 
780       l_last_book    varchar2(30) := '' '';
781 
782       cursor c_def_deprn is
783       select /*+ leading(xg) index(xb, FA_XLA_EXT_HEADERS_B_GT_U1) index(xl, FA_XLA_EXT_LINES_B_GT_U1) */
784              xl.rowid,
785              xb.book_type_code,
786              xl.distribution_id,
787              xl.EXPENSE_ACCOUNT_CCID,
788              xl.entered_amount,
789              nvl(xl.generated_ccid,        da.DEFERRED_EXP_ACCOUNT_CCID),
790              nvl(xl.generated_offset_ccid, da.DEFERRED_RSV_ACCOUNT_CCID),
791              xb.DEFERRED_DEPRN_EXPENSE_ACCT,
792              xb.DEFERRED_DEPRN_RESERVE_ACCT
793         from xla_events_gt            xg,
794              fa_xla_ext_headers_b_gt  xb,
795              fa_xla_ext_lines_b_gt    xl,
796              fa_distribution_accounts da
797        where xg.event_class_code = ''DEFERRED DEPRECIATION''
798          and xb.event_id         = xg.event_id
799          and xl.event_id         = xg.event_id
800          and xl.distribution_id  = da.distribution_id(+)
801          and xl.tax_book_type_code   = da.book_type_code(+);
802 
803 
804 
805    BEGIN
806 
807       IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
808          fnd_log.string(G_LEVEL_PROCEDURE,
809                         G_MODULE_NAME||l_procedure_name||''.begin'',
810                         ''Beginning of procedure'');
811       END IF;
812 
813       open  c_def_deprn;
814       fetch c_def_deprn bulk collect into l_def_deprn_tbl;
815       close c_def_deprn;
816 
817       for i in 1..l_def_deprn_tbl.count loop
818 
819          if (l_last_book <> l_def_deprn_tbl(i).book_type_code or
820              i = 1) then
821 
822             if not (fa_cache_pkg.fazcbc
823                       (X_BOOK => l_def_deprn_tbl(i).book_type_code,
824                        P_LOG_LEVEL_REC   => p_log_level_rec)) then
825                null;
826 
827             end if;
828             l_last_book := l_def_deprn_tbl(i).book_type_code;
829          end if;
830 
831 
832          -- call FAFBGCC if the ccid doesnt exist in distribution accounts
833 
834          if (l_def_deprn_tbl(i).generated_ccid is null and
835              l_def_deprn_tbl(i).def_deprn_entered_amount   <> 0) then
836 
837             if (not FA_GCCID_PKG.fafbgcc
838                       (X_book_type_code  => l_def_deprn_tbl(i).book_type_code,
839                        X_fn_trx_code     => ''DEFERRED_DEPRN_EXPENSE_ACCT'',
840                        X_dist_ccid       => l_def_deprn_tbl(i).distribution_ccid,
841                        X_acct_segval     => l_def_deprn_tbl(i).def_deprn_expense_acct,
842                        X_account_ccid    => 0,
843                        X_distribution_id => l_def_deprn_tbl(i).distribution_id,
844                        X_rtn_ccid        => l_def_deprn_tbl(i).generated_ccid,
845                        P_LOG_LEVEL_REC   => p_log_level_rec)) then
846                FA_SRVR_MSG.ADD_MESSAGE
847                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
848                    CALLING_FN => ''fa_xla_extract_def_pkg.Load_Generated_Ccids'',
849                    P_LOG_LEVEL_REC => p_log_level_rec);
850                l_def_deprn_tbl(i).generated_ccid := -1;
851             end if;
852          end if;
853 
854          if (l_def_deprn_tbl(i).generated_offset_ccid is null and
855              l_def_deprn_tbl(i).def_deprn_entered_amount <> 0) then
856 
857 
858             if (not FA_GCCID_PKG.fafbgcc
859                       (X_book_type_code  => l_def_deprn_tbl(i).book_type_code,
860                        X_fn_trx_code     => ''DEFERRED_DEPRN_RESERVE_ACCT'',
861                        X_dist_ccid       => l_def_deprn_tbl(i).distribution_ccid,
862                        X_acct_segval     => l_def_deprn_tbl(i).def_deprn_reserve_acct,
863                        X_account_ccid    => 0,
864                        X_distribution_id => l_def_deprn_tbl(i).distribution_id,
865                        X_rtn_ccid        => l_def_deprn_tbl(i).generated_offset_ccid,
866                        P_LOG_LEVEL_REC   => p_log_level_rec)) then
867 
868                FA_SRVR_MSG.ADD_MESSAGE
869                   (NAME       => ''FA_GET_ACCOUNT_CCID'',
870                    CALLING_FN => ''fa_xla_extract_def_pkg.Load_Generated_Ccids'',
871                    P_LOG_LEVEL_REC => p_log_level_rec);
872                l_def_deprn_tbl(i).generated_offset_ccid := -1;
873             end if;
874          end if;
875 
876       end loop;
877 
878       for i in 1.. l_def_deprn_tbl.count loop
879 
880          l_generated_ccid(i)              := l_def_deprn_tbl(i).generated_ccid;
881          l_generated_offset_ccid(i)       := l_def_deprn_tbl(i).generated_offset_ccid;
882          l_rowid(i)                       := l_def_deprn_tbl(i).rowid;
883 
884       end loop;
885 
886       forall i in 1..l_def_deprn_tbl.count
887       update fa_xla_ext_lines_b_gt
888          set generated_ccid              = l_generated_ccid(i),
889              generated_offset_ccid       = l_generated_offset_ccid(i)
890        where rowid                       = l_rowid(i);
891 
892 ';
893 
894 
895 C_PRIVATE_API_3   CONSTANT VARCHAR2(32000) := '
896 --
897 
898       IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
899          fnd_log.string(G_LEVEL_PROCEDURE,
900                         G_MODULE_NAME||l_procedure_name||''.end'',
901                         ''End of procedure'');
902       END IF;
903 
904    EXCEPTION
905       WHEN others THEN
906            IF (G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
907               fnd_message.set_name(''OFA'',''FA_SHARED_ORACLE_ERR'');
908               fnd_message.set_token(''ORACLE_ERR'',SQLERRM);
909               FND_LOG.MESSAGE (G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_procedure_name,TRUE);
910            END IF;
911            raise;
912 
913    END load_generated_ccids;
914 
915 ';
916 
917 
918 
919 --
920 --+==========================================================================+
921 --|                                                                          |
922 --| Private global constants                                                 |
923 --|                                                                          |
924 --+==========================================================================+
925 --
926 C_CREATED_ERROR      CONSTANT BOOLEAN := FALSE;
927 C_CREATED            CONSTANT BOOLEAN := TRUE;
928 --
929 g_Max_line            CONSTANT NUMBER := 225;
930 g_chr_quote           CONSTANT VARCHAR2(10):='''';
931 g_chr_newline         CONSTANT VARCHAR2(10):= fa_cmp_string_pkg.g_chr_newline;
932 
933 g_log_level_rec       fa_api_types.log_level_rec_type;
934 
935 G_CURRENT_RUNTIME_LEVEL        NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
936 
937 G_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
938 G_LEVEL_PROCEDURE     CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
939 G_LEVEL_EVENT         CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
940 G_LEVEL_EXCEPTION     CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
941 G_LEVEL_ERROR         CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
942 G_LEVEL_UNEXPECTED    CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
943 
944 G_MODULE_NAME         CONSTANT VARCHAR2(50):= 'fa.plsql.fa_xla_cmp_header_pkg.';
945 
946 FUNCTION GenerateCcidExtract
947       (p_extract_type                 IN VARCHAR2,
948        p_package_body                 OUT NOCOPY DBMS_SQL.VARCHAR2S) RETURN BOOLEAN IS
949 
950    l_array_pkg              DBMS_SQL.VARCHAR2S;
951    l_BodyPkg                VARCHAR2(32000);
952    l_array_body             DBMS_SQL.VARCHAR2S;
953    l_procedure_name  varchar2(80) := 'GenerateLoadExtract';
954 
955 BEGIN
956 
957    IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL ) THEN
958       fnd_log.string(G_LEVEL_PROCEDURE,
959                      G_MODULE_NAME||l_procedure_name||'.begin',
960                      'Beginning of procedure');
961    END IF;
962 
963    l_array_body    := fa_cmp_string_pkg.g_null_varchar2s;
964    l_array_pkg     := fa_cmp_string_pkg.g_null_varchar2s;
965 
966    -- deferred does not use locking - exit returning nothing
967    l_bodypkg := C_PRIVATE_API_1;
968 
969    fa_cmp_string_pkg.CreateString
970       (p_package_text  => l_BodyPkg
971       ,p_array_string  => l_array_pkg);
972 
973    if (p_extract_type = 'DEPRN') then
974 
975       l_bodypkg := C_PRIVATE_API_DEPRN;
976 
977    elsif (p_extract_type = 'TRX') then
978 
979       l_bodypkg := C_PRIVATE_API_TRX;
980 
981    elsif (p_extract_type = 'DEF') then
982 
983       l_bodypkg := C_PRIVATE_API_DEF;
984 
985    else
986       null;  -- unkown type
987    end if;
988 
989    fa_cmp_string_pkg.CreateString
990      (p_package_text  => l_BodyPkg
991      ,p_array_string  => l_array_body);
992 
993    l_array_pkg :=
994       fa_cmp_string_pkg.ConcatTwoStrings
995          (p_array_string_1  =>  l_array_pkg
996          ,p_array_string_2  =>  l_array_body);
997 
998 
999    l_bodypkg := C_PRIVATE_API_3;
1000 
1001    fa_cmp_string_pkg.CreateString
1002      (p_package_text  => l_BodyPkg
1003      ,p_array_string  => l_array_body);
1004 
1005    l_array_pkg :=
1006       fa_cmp_string_pkg.ConcatTwoStrings
1007          (p_array_string_1  =>  l_array_pkg
1008          ,p_array_string_2  =>  l_array_body);
1009 
1010    p_package_body := l_array_pkg;
1011 
1012    RETURN TRUE;
1013 
1014 EXCEPTION
1015    WHEN OTHERS THEN
1016         IF (G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL ) THEN
1017            fnd_message.set_name('OFA','FA_SHARED_ORACLE_ERR');
1018            fnd_message.set_token('ORACLE_ERR',SQLERRM);
1019            FND_LOG.MESSAGE (G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_procedure_name,TRUE);
1020         END IF;
1021         RETURN FALSE;
1022 
1023 END GenerateCcidExtract;
1024 
1025 END fa_xla_cmp_ccid_pkg;