DBA Data[Home] [Help]

PACKAGE BODY: APPS.JA_CN_CFS_CONC_PROG

Source


1 PACKAGE BODY JA_CN_CFS_CONC_PROG AS
2   --$Header: JACNCFSB.pls 120.3.12010000.2 2008/10/28 06:21:07 shyan ship $
3   --+=======================================================================+
4   --|               Copyright (c) 2006 Oracle Corporation
5   --|                       Redwood Shores, CA, USA
6   --|                         All rights reserved.
7   --+=======================================================================
8   --| FILENAME
9   --|     JACNCFSB.pls
10   --|
11   --| DESCRIPTION
12   --|
13   --|   This is a wrapper package for submission of cash flow
14   --|   statement related concurrent programs
15   --|
16   --|
17   --| PROCEDURE LIST
18   --|   Cfs_Generate
19   --|   Cfs_Calculate
20   --|   Cfsse_Generate
21   --|   Cfsse_Calculate
22   --|   Collect_Cfs_Data
23   --|
24   --| HISTORY
25   --|   27-Mar-2006     Donghai Wang Created
26   --|   28-Mar-2006     Jackey Li    Add Cfsse_Generate and  Cfsse_Calculate
27   --|   28-Mar-2006     Andrew Liu   Add Collect_Cfs_Data
28   --|   30-Mar-2006     Andrew Liu   Add GL_Validation/Intercompany_Validation
29   --|   26-Jun-2006     Jackey Li    Update Cfsse_Generate
30   --|   1-Sep-2008     Chaoqun Wu  CNAO Enhancement
31   --|                              Updated procedures Calculate_Row_Amount and Calculate_Rows_Amount
32   --|                              Added BSV parameter for CFS-Generation
33   --|   08/09/2008     Yao Zhang   Fix Bug#7334017 for R12 enhancment
34   --|   22-Sep-2008    Chaoqun Wu  CNAO Enhancement for small enterprise
35   --|
36   --+======================================================================*/
37   l_module_prefix VARCHAR2(100) := 'JA_CN_CFS_CONC_PROG';
38 
39   --==========================================================================
40   --  PROCEDURE NAME:
41   --
42   --    Cfs_Generate               Public
43   --
44   --  DESCRIPTION:
45   --
46   --      The 'Cfs_Generate' procedure accepts parameters from concurrent program
47   --      'Cash Flow Statement - Generation' and calls another procedure
48   --      'JA_CN_CFS_GENERATE_PKG.Submit_Requests' with parameters after processing.
49   --
50   --  PARAMETERS:
51   --      In: p_legal_entity_id           Identifier of legal entity
52   --                                      for FSG report
53   --          p_set_of_bks_id             Identifier of gl set of book
54   --          p_coa_id                    Identifier of gl chart of account
55   --          p_adhoc_prefix              Ad hoc prefix for FSG report, a required
56   --                                      parameter for FSG report
57   --          p_industry                  Industry with constant value 'C' for
58   --                                      now, a required parameter for FSG report
59   --          p_id_flex_code              ID flex code, a required parameter for
60   --                                      FSG report
61   --          p_report_id                 Identifier of FSG report
62   --          p_period_name               GL period Name
63   --          p_axis_set_id               Identifier of FSG Row Set
64   --          p_colset_id                 Identifier of FSG Column Set, a required
65   --                                      parameter for FSG
66   --          p_rounding_option           Rounding option for amount in Cash Flow
67   --                                      statement
68   --          p_segment_override          Segment override for FSG report
69   --                                      flow statement calculation
70   --          p_accounting_date           Accounting date
71   --          p_parameter_set_id          Parameter set id, a required parameter
72   --                                      for FSG report
73   --          p_max_page_length           Maximum page length
74   --          p_balance_type              Type of balance, available value is
75   --                                      'YTD/QTD/PTD'. a required parameter for
76   --                                       FSG report
77   --          p_internal_trx_flag         To indicate if intercompany transactions
78   --                                      should be involved in amount calculation
79   --                                      of cash flow statement.
80   --          p_xml_template_language     Template language of Cash Flow Statement
81   --          p_xml_template_territory    Template territory of Cash Flow Statement
82   --          p_xml_output_format         Output format of Cash Flow Statement
83   --          p_source_charset            Characterset of input file for characterset
84   --                                      conversion
85   --          p_destination_charset       Characterset of output file for characterset
86   --                                      conversion
87   --          p_source_separator          Separater between fields in input file
88   --                                      for conversion
89   --          p_destination_filename      file name after change
90   --
91   --     Out: errbuf
92   --          retcode
93   --
94   --  DESIGN REFERENCES:
95   --     CNAO_Cashflow_Statement_Generation_TD.doc
96   --
97   --  CHANGE HISTORY:
98   --
99   --      27-Mar-2006     Donghai Wang Created
100   --
101   --=========================================================================
102   PROCEDURE Cfs_Generate(errbuf                  OUT NOCOPY VARCHAR2,
103                          retcode                 OUT NOCOPY VARCHAR2,
104                          p_legal_entity_id       IN NUMBER,
105                          p_ledger_id             IN NUMBER,
106                          P_DATA_ACCESS_SET_ID    IN NUMBER,
107                          p_coa_id                IN NUMBER,
108                          p_adhoc_prefix          IN VARCHAR2,
109                          p_industry              IN VARCHAR2,
110                          p_id_flex_code          IN VARCHAR2,
111                          p_ledger_name           IN VARCHAR2,
112                          p_report_id             IN NUMBER,
113                          p_axis_set_id           IN NUMBER,
114                          p_colset_id             IN NUMBER,
115                          p_period_name           IN VARCHAR2,
116                          p_currency_code         IN VARCHAR2,
117                          p_rounding_option       IN VARCHAR2,
118                          p_segment_override      IN VARCHAR2,
119                          p_content_set_id        IN NUMBER,
120                          P_ROW_ORDER_ID          IN NUMBER,
121                          P_REPORT_DISPLAY_SET_ID IN NUMBER,
122                          p_OUTPUT_OPTION         IN VARCHAR2,
123                          p_EXCEPTIONS_FLAG       IN VARCHAR2,
124                          p_MINIMUM_DISPLAY_LEVEL IN NUMBER,
125                          p_accounting_date       IN VARCHAR2,
126                          p_parameter_set_id      IN NUMBER,
127                          P_PAGE_LENGTH           IN NUMBER,
128                          p_SUBREQUEST_ID         IN NUMBER,
129                          P_APPL_NAME             IN VARCHAR2
130 
131                         ,
132                          p_balance_type IN VARCHAR2
133                          --,p_internal_trx_flag       IN         VARCHAR2
134                         ,
135                          p_xml_template_language  IN VARCHAR2,
136                          p_xml_template_territory IN VARCHAR2,
137                          p_xml_output_format      IN VARCHAR2,
138                          p_source_charset         IN VARCHAR2,
139                          p_destination_charset    IN VARCHAR2,
140                          p_source_separator       IN VARCHAR2,
141                          p_destination_filename   IN VARCHAR2) IS
142     l_error_flag   VARCHAR2(1) := 'N';
143     l_error_status BOOLEAN;
144 
145     l_dbg_level  NUMBER := FND_LOG.G_Current_Runtime_Level;
146     l_proc_level NUMBER := FND_LOG.Level_Procedure;
147     l_proc_name  VARCHAR2(100) := 'Cfs_Generate';
148 
149   BEGIN
150 
151     --log for debug
152     IF (l_proc_level >= l_dbg_level) THEN
153       FND_LOG.String(l_proc_level,
154                      l_module_prefix || '.' || l_proc_name || '.begin',
155                      'Enter procedure');
156 
157       FND_LOG.String(l_proc_level,
158                      l_module_prefix || '.' || l_proc_name || '.parameters',
159                      'p_legal_entity_id ' || p_legal_entity_id);
160 
161       FND_LOG.String(l_proc_level,
162                      l_module_prefix || '.' || l_proc_name || '.parameters',
163                      'p_ledger_id  ' || p_ledger_id);
164 
165       FND_LOG.String(l_proc_level,
166                      l_module_prefix || '.' || l_proc_name || '.parameters',
167                      'p_coa_id   ' || p_coa_id);
168 
169       FND_LOG.String(l_proc_level,
170                      l_module_prefix || '.' || l_proc_name || '.parameters',
171                      'p_adhoc_prefix ' || p_adhoc_prefix);
172 
173       FND_LOG.String(l_proc_level,
174                      l_module_prefix || '.' || l_proc_name || '.parameters',
175                      'p_industry ' || p_industry);
176 
177       FND_LOG.String(l_proc_level,
178                      l_module_prefix || '.' || l_proc_name || '.parameters',
179                      'p_id_flex_code ' || p_id_flex_code);
180 
181       FND_LOG.String(l_proc_level,
182                      l_module_prefix || '.' || l_proc_name || '.parameters',
183                      'p_report_id ' || p_report_id);
184 
185       FND_LOG.String(l_proc_level,
186                      l_module_prefix || '.' || l_proc_name || '.parameters',
187                      'p_period_name ' || p_period_name);
188 
189       FND_LOG.String(l_proc_level,
190                      l_module_prefix || '.' || l_proc_name || '.parameters',
191                      'p_axis_set_id ' || p_axis_set_id);
192 
193       FND_LOG.String(l_proc_level,
194                      l_module_prefix || '.' || l_proc_name || '.parameters',
195                      'p_colset_id ' || p_colset_id);
196 
197       FND_LOG.String(l_proc_level,
198                      l_module_prefix || '.' || l_proc_name || '.parameters',
199                      'p_rounding_option ' || p_rounding_option);
200 
201       FND_LOG.String(l_proc_level,
202                      l_module_prefix || '.' || l_proc_name || '.parameters',
203                      'p_segment_override ' || p_segment_override);
204 
205       FND_LOG.String(l_proc_level,
206                      l_module_prefix || '.' || l_proc_name || '.parameters',
207                      'p_accounting_date ' || p_accounting_date);
208 
209       FND_LOG.String(l_proc_level,
210                      l_module_prefix || '.' || l_proc_name || '.parameters',
211                      'p_parameter_set_id ' || p_parameter_set_id);
212 
213       FND_LOG.String(l_proc_level,
214                      l_module_prefix || '.' || l_proc_name || '.parameters',
215                      'P_PAGE_LENGTH ' || P_PAGE_LENGTH);
216 
217       FND_LOG.String(l_proc_level,
218                      l_module_prefix || '.' || l_proc_name || '.parameters',
219                      'p_balance_type ' || p_balance_type);
220 
221       /*    FND_LOG.String(l_proc_level
222       ,l_module_prefix||'.'||l_proc_name||'.parameters'
223       ,'p_internal_trx_flag '||p_internal_trx_flag
224       );*/
225 
226       FND_LOG.String(l_proc_level,
227                      l_module_prefix || '.' || l_proc_name || '.parameters',
228                      'p_xml_template_language ' || p_xml_template_language);
229 
230       FND_LOG.String(l_proc_level,
231                      l_module_prefix || '.' || l_proc_name || '.parameters',
232                      'p_xml_template_territory  ' ||
233                      p_xml_template_territory);
234 
235       FND_LOG.String(l_proc_level,
236                      l_module_prefix || '.' || l_proc_name || '.parameters',
237                      'p_xml_output_format  ' || p_xml_output_format);
238 
239       FND_LOG.String(l_proc_level,
240                      l_module_prefix || '.' || l_proc_name || '.parameters',
241                      'p_source_charset ' || p_source_charset);
242 
243       FND_LOG.String(l_proc_level,
244                      l_module_prefix || '.' || l_proc_name || '.parameters',
245                      'p_destination_charset ' || p_destination_charset);
246 
247       FND_LOG.String(l_proc_level,
248                      l_module_prefix || '.' || l_proc_name || '.parameters',
249                      'p_source_separator ' || p_source_separator);
250 
251       FND_LOG.String(l_proc_level,
252                      l_module_prefix || '.' || l_proc_name || '.parameters',
253                      'p_destination_filename ' || p_destination_filename);
254     END IF; --(l_proc_level >= l_dbg_level)
255 
256     --Call the functon JA_CN_UTILITY.Check_Profile to check if all required profiles has been
257     -- properly set for current responsibility. If No, the function will raise corresponding error
258     --messages, and the concurrent program will not continue performing next logics,these required
259     --profiles include ' JG: Product', which should be set to 'Asia/Pacific Localizations',
260     --'JG: Territory', which should be set to 'China' and 'JA: CNAO Legal Entity', which should be
261     --NOT NULL
262     IF JA_CN_UTILITY.Check_Profile THEN
263 
264       JA_CN_CFS_GENERATE_PKG.Submit_Requests(p_legal_entity_id,
265                                              p_ledger_id,
266                                              P_DATA_ACCESS_SET_ID,
267                                              p_coa_id,
268                                              p_adhoc_prefix,
269                                              p_industry,
270                                              p_id_flex_code,
271                                              p_ledger_name,
272                                              p_report_id,
273                                              p_axis_set_id,
274                                              p_colset_id,
275                                              p_period_name,
276                                              p_currency_code,
277                                              p_rounding_option,
278                                              p_segment_override,
279                                              p_content_set_id,
280                                              P_ROW_ORDER_ID,
281                                              P_REPORT_DISPLAY_SET_ID,
282                                              p_OUTPUT_OPTION,
283                                              p_EXCEPTIONS_FLAG,
284                                              p_MINIMUM_DISPLAY_LEVEL,
285                                              p_accounting_date,
286                                              p_parameter_set_id,
287                                              P_PAGE_LENGTH,
288                                              p_SUBREQUEST_ID,
289                                              P_APPL_NAME
290 
291                                             ,
292                                              p_balance_type
293                                              --,p_internal_trx_flag       IN         VARCHAR2
294                                             ,
295                                              p_xml_template_language,
296                                              p_xml_template_territory,
297                                              p_xml_output_format,
298                                              p_source_charset,
299                                              p_destination_charset,
300                                              p_source_separator,
301                                              p_destination_filename);
302 
303     ELSE
304       l_error_flag := 'Y';
305     END IF; --JA_CN_UTILITY.Check_Profile
306 
307     --If above check failed, then set status of concurrent program as warning
308 
309     IF l_error_flag = 'Y' THEN
310       l_error_status := FND_CONCURRENT.Set_Completion_Status(status  => 'WARNING',
311                                                              message => '');
312 
313     END IF; --JA_CN_UTILITY.Check_Profile
314     --log for debug
315     IF (l_proc_level >= l_dbg_level) THEN
316       FND_LOG.STRING(l_proc_level,
317                      l_module_prefix || '.' || l_proc_name || '.end',
318                      'Exit procedure');
319     END IF; --( l_proc_level >= l_dbg_level )
320 
321   EXCEPTION
322     WHEN OTHERS THEN
323       IF (l_proc_level >= l_dbg_level) THEN
324         FND_LOG.String(l_proc_level,
325                        l_module_prefix || '.' || l_proc_name ||
326                        '. Other_Exception ',
327                        SQLCODE || ':' || SQLERRM);
328       END IF; --(l_proc_level >= l_dbg_level)
329 
330   END Cfs_Generate;
331 
332   --==========================================================================
333   --  PROCEDURE NAME:
334   --
335   --    Cfs_Calculate                  Public
336   --
337   --  DESCRIPTION:
338   --
339   --      The 'Cfs_Calculate' procedure accepts parameters from concurrent program
340   --      'Cash Flow Statement -Calcluation' and calls another procedure
341   --      'JA_CN_CFS_CALCULATE_PKG.Generate_Cfs_Xml' with parameters after processing.
342   --
343   --  PARAMETERS:
344   --      In: p_legal_entity_id           Identifier of legal entity
345   --          p_set_of_bks_id             Identifier of GL set of book, a required
346   --                                      parameter for FSG report
347   --          p_period_name               GL period Name
348   --          p_axis_set_id               Identifier of FSG Row Set
349   --          p_rounding_option           Rounding option for amount in Cash Flow statement
350   --          p_balance_type              Type of balance, available value is
351   --                                      'YTD/QTD/PTD'. a required parameter for FSG
352   --                                      report
353   --          p_internal_trx_flag         To indicate if intercompany transactions
354   --                                      should be involved in amount calculation
355   --                                      of cash flow statement.
356   --
357   --     Out: errbuf
358   --          retcode
359   --
360   --
361   --  DESIGN REFERENCES:
362   --     CNAO_Cashflow_Statement_Generation_TD.doc
363   --
364   --  CHANGE HISTORY:
365   --
366   --      27-Mar-2006     Donghai Wang Created
367   --      1-Sep-2008      Chaoqun Wu CNAO Enhancement
368   --
369   --===========================================================================
370   PROCEDURE Cfs_Calculate(errbuf            OUT NOCOPY VARCHAR2,
371                           retcode           OUT NOCOPY VARCHAR2,
372                           p_legal_entity_id IN NUMBER,
373                           p_ledger_id       IN NUMBER,
374                           p_period_name     IN VARCHAR2,
375                           p_axis_set_id     IN NUMBER,
376                           p_rounding_option IN VARCHAR2,
377                           p_balance_type    IN VARCHAR2
378                           --,p_internal_trx_flag       IN         VARCHAR2
379                          ,p_coa IN NUMBER
380                          ,p_segment_override IN VARCHAR2 -- Added for CNAO Enhancement
381                          ) IS
382     l_error_status BOOLEAN;
383     l_dbg_level    NUMBER := FND_LOG.G_Current_Runtime_Level;
384     l_proc_level   NUMBER := FND_LOG.Level_Procedure;
385     l_proc_name    VARCHAR2(100) := 'Cfs_Calculate';
386 
387   BEGIN
388 
389     --log for debug
390     IF (l_proc_level >= l_dbg_level) THEN
391       FND_LOG.String(l_proc_level,
392                      l_module_prefix || '.' || l_proc_name || '.begin',
393                      'Enter procedure');
394 
395       FND_LOG.String(l_proc_level,
396                      l_module_prefix || '.' || l_proc_name || '.parameters',
397                      'p_legal_entity_id ' || p_legal_entity_id);
398 
399       FND_LOG.String(l_proc_level,
400                      l_module_prefix || '.' || l_proc_name || '.parameters',
401                      'p_ledger_id ' || p_ledger_id);
402 
403       FND_LOG.String(l_proc_level,
404                      l_module_prefix || '.' || l_proc_name || '.parameters',
405                      'p_period_name ' || p_period_name);
406 
407       FND_LOG.String(l_proc_level,
408                      l_module_prefix || '.' || l_proc_name || '.parameters',
409                      'p_axis_set_id ' || p_axis_set_id);
410 
411       FND_LOG.String(l_proc_level,
412                      l_module_prefix || '.' || l_proc_name || '.parameters',
413                      'p_rounding_option ' || p_rounding_option);
414 
415       FND_LOG.String(l_proc_level,
416                      l_module_prefix || '.' || l_proc_name || '.parameters',
417                      'p_balance_type ' || p_balance_type);
418 
419       FND_LOG.String(l_proc_level,                                          --Added for CNAO Enhancement
420                      l_module_prefix || '.' || l_proc_name || '.parameters',
421                      'p_segmment_override ' || p_segment_override);
422 
423       /*    FND_LOG.String(l_proc_level
424       ,l_module_prefix||'.'||l_proc_name||'.parameters'
425       ,'p_internal_trx_flag '||p_internal_trx_flag
426       );*/
427 
428     END IF; --(l_proc_level >= l_dbg_level)
429 
430     --Call the functon JA_CN_CFS_UTILITY.Check_Profile to check if all required profiles has been
431     -- properly set for current responsibility. If No, the function will raise corresponding error
432     --messages, and the concurrent program will not continue performing next logics,these required
433     --profiles include ' JG: Product', which should be set to 'Asia/Pacific Localizations',
434     --'JG: Territory', which should be set to 'China' and 'JA: CNAO Legal Entity', which should be
435     --NOT NULL
436     IF JA_CN_UTILITY.Check_Profile THEN
437       JA_CN_CFS_CALCULATE_PKG.Generate_Cfs_Xml(p_legal_entity_id => p_legal_entity_id,
438                                                p_ledger_id       => p_ledger_id,
439                                                p_period_name     => p_period_name,
440                                                p_axis_set_id     => p_axis_set_id,
441                                                p_rounding_option => p_rounding_option,
442                                                p_balance_type    => p_balance_type
443                                                --,p_internal_trx_flag                  => p_internal_trx_flag
444                                               ,p_coa => p_coa
445                                               ,p_segment_override => p_segment_override -- Added for CNAO Enhancement
446                                               );
447     ELSE
448       --If above check failed, then set status of concurrent program as warning
449       l_error_status := FND_CONCURRENT.Set_Completion_Status(status  => 'WARNING',
450                                                              message => '');
451     END IF; --JA_CN_UTILITY.Check_Profile
452 
453     --log for debug
454     IF (l_proc_level >= l_dbg_level) THEN
455       FND_LOG.STRING(l_proc_level,
456                      l_module_prefix || '.' || l_proc_name || '.end',
457                      'Exit procedure');
458     END IF; --( l_proc_level >= l_dbg_level )
459 
460   EXCEPTION
461     WHEN OTHERS THEN
462       IF (l_proc_level >= l_dbg_level) THEN
463         FND_LOG.String(l_proc_level,
464                        l_module_prefix || '.' || l_proc_name ||
465                        '. Other_Exception ',
466                        SQLCODE || ':' || SQLERRM);
467       END IF; --(l_proc_level >= l_dbg_level)
468 
469   END Cfs_Calculate;
470 
471   --==========================================================================
472   --  PROCEDURE NAME:
473   --    Cfsse_Generate                     Public
474   --
475   --  DESCRIPTION:
476   --      This procedure accepts parameters from concurrent program
477   --      'Cash Flow Statement for small enterprise- Generation' and
478   --      calls another procedure 'JA_CN_CFSSE_GENERATE_PKG.Submit_Requests'
479   --      with parameters after processing.
480   --
481   --  PARAMETERS:
482   --      In: p_legal_entity_id                legal entity ID
483   --          p_set_of_bks_id                  set of books ID
484   --          p_coa_id                         Chart of Accounts ID
485   --          p_adhoc_prefix                   Ad hoc prefix for FSG report
486   --          p_industry                       Industry with constant value 'C'
487   --          p_id_flex_code                   ID flex code
488   --          p_report_id                      FSG report id
489   --          p_perid_name                     GL period Name
490   --          p_rowset_id                      FSG report row Set ID
491   --          p_colset_id                      FSG report column Set ID
492   --          p_rounding_option                Rounding option
493   --          p_segment_override               Segment override
494   --          p_accounting_date                Accounting date
495   --          p_parameter_set_id               Parameter set id
496   --          p_max_page_length                Maximum page length
497   --          p_balance_type                   Type of balance
498   --          p_internal_trx_flag              intercompany transactions flag
499 
500   --     Out: errbuf
501   --          retcode
502   --
503   --  DESIGN REFERENCES:
504   --      CNAO_Cashflow_Statement_Generation(SE)_TD.doc
505   --
506   --  CHANGE HISTORY:
507   --      03/29/2006      Jackey Li          Created
508   --      06/26/2006      Jackey Li      Add seven parameters
509   --      04/29/2007      Joy liu        updated by lyb
510   --     change parameter p_set_of_bks_id to  p_ledger_id,
511   --     some places has been updated.
512   --===========================================================================
513   PROCEDURE Cfsse_Generate(errbuf                  OUT NOCOPY VARCHAR2,
514                          retcode                 OUT NOCOPY VARCHAR2,
515                          p_legal_entity_id       IN NUMBER,
516                          p_ledger_id             IN NUMBER,
517                          P_DATA_ACCESS_SET_ID    IN NUMBER,
518                          p_coa_id                IN NUMBER,
519                          p_adhoc_prefix          IN VARCHAR2,
520                          p_industry              IN VARCHAR2,
521                          p_id_flex_code          IN VARCHAR2,
522                          p_ledger_name           IN VARCHAR2,
523                          p_report_id             IN NUMBER,
524                          p_axis_set_id           IN NUMBER,
525                          p_colset_id             IN NUMBER,
526                          p_period_name           IN VARCHAR2,
527                          p_currency_code         IN VARCHAR2,
528                          p_rounding_option       IN VARCHAR2,
529                          p_segment_override      IN VARCHAR2,
530                          p_content_set_id        IN NUMBER,
531                          P_ROW_ORDER_ID          IN NUMBER,
532                          P_REPORT_DISPLAY_SET_ID IN NUMBER,
533                          p_OUTPUT_OPTION         IN VARCHAR2,
534                          p_EXCEPTIONS_FLAG       IN VARCHAR2,
535                          p_MINIMUM_DISPLAY_LEVEL IN NUMBER,
536                          p_accounting_date       IN VARCHAR2,
537                          p_parameter_set_id      IN NUMBER,
538                          P_PAGE_LENGTH           IN NUMBER,
539                          p_SUBREQUEST_ID         IN NUMBER,
540                          P_APPL_NAME             IN VARCHAR2
541 
542                         ,
543                          p_balance_type IN VARCHAR2
544                          --,p_internal_trx_flag       IN         VARCHAR2
545                         ,
546                          p_xml_template_language  IN VARCHAR2,
547                          p_xml_template_territory IN VARCHAR2,
548                          p_xml_output_format      IN VARCHAR2,
549                          p_source_charset         IN VARCHAR2,
550                          p_destination_charset    IN VARCHAR2,
551                          p_source_separator       IN VARCHAR2,
552                          p_destination_filename   IN VARCHAR2) IS
553 
554     l_accounting_date DATE := FND_DATE.Canonical_To_Date(p_accounting_date);
555    -- l_sets_of_bks_id  gl_sets_of_books.set_of_books_id%TYPE;
556     --l_coa_id          gl_sets_of_books.chart_of_accounts_id%TYPE;
557     l_flag            NUMBER;
558     l_error_flag      VARCHAR2(1) := 'N';
559     l_error_status    BOOLEAN;
560 
561     l_dbg_level  NUMBER := FND_LOG.G_Current_Runtime_Level;
562     l_proc_level NUMBER := FND_LOG.Level_Procedure;
563     l_proc_name  VARCHAR2(100) := 'Cfsse_Generate';
564 
565   BEGIN
566     --log for debug
567     IF (l_proc_level >= l_dbg_level)
568     THEN
569      FND_LOG.String(l_proc_level,
570                      l_module_prefix || '.' || l_proc_name || '.begin',
571                      'Enter procedure');
572 
573       FND_LOG.String(l_proc_level,
574                      l_module_prefix || '.' || l_proc_name || '.parameters',
575                      'p_legal_entity_id ' || p_legal_entity_id);
576 
577       FND_LOG.String(l_proc_level,
578                      l_module_prefix || '.' || l_proc_name || '.parameters',
579                      'p_ledger_id  ' || p_ledger_id);
580 
581       FND_LOG.String(l_proc_level,
582                      l_module_prefix || '.' || l_proc_name || '.parameters',
583                      'p_coa_id   ' || p_coa_id);
584 
585       FND_LOG.String(l_proc_level,
586                      l_module_prefix || '.' || l_proc_name || '.parameters',
587                      'p_adhoc_prefix ' || p_adhoc_prefix);
588 
589       FND_LOG.String(l_proc_level,
590                      l_module_prefix || '.' || l_proc_name || '.parameters',
591                      'p_industry ' || p_industry);
592 
593       FND_LOG.String(l_proc_level,
594                      l_module_prefix || '.' || l_proc_name || '.parameters',
595                      'p_id_flex_code ' || p_id_flex_code);
596 
597       FND_LOG.String(l_proc_level,
598                      l_module_prefix || '.' || l_proc_name || '.parameters',
599                      'p_report_id ' || p_report_id);
600 
601       FND_LOG.String(l_proc_level,
602                      l_module_prefix || '.' || l_proc_name || '.parameters',
603                      'p_period_name ' || p_period_name);
604 
605       FND_LOG.String(l_proc_level,
606                      l_module_prefix || '.' || l_proc_name || '.parameters',
607                      'p_axis_set_id ' || p_axis_set_id);
608 
609       FND_LOG.String(l_proc_level,
610                      l_module_prefix || '.' || l_proc_name || '.parameters',
611                      'p_colset_id ' || p_colset_id);
612 
613       FND_LOG.String(l_proc_level,
614                      l_module_prefix || '.' || l_proc_name || '.parameters',
615                      'p_rounding_option ' || p_rounding_option);
616 
617       FND_LOG.String(l_proc_level,
618                      l_module_prefix || '.' || l_proc_name || '.parameters',
619                      'p_segment_override ' || p_segment_override);
620 
621       FND_LOG.String(l_proc_level,
622                      l_module_prefix || '.' || l_proc_name || '.parameters',
623                      'p_accounting_date ' || p_accounting_date);
624 
625       FND_LOG.String(l_proc_level,
626                      l_module_prefix || '.' || l_proc_name || '.parameters',
627                      'p_parameter_set_id ' || p_parameter_set_id);
628 
629       FND_LOG.String(l_proc_level,
630                      l_module_prefix || '.' || l_proc_name || '.parameters',
631                      'P_PAGE_LENGTH ' || P_PAGE_LENGTH);
632 
633       FND_LOG.String(l_proc_level,
634                      l_module_prefix || '.' || l_proc_name || '.parameters',
635                      'p_balance_type ' || p_balance_type);
636 
637       /*    FND_LOG.String(l_proc_level
638       ,l_module_prefix||'.'||l_proc_name||'.parameters'
639       ,'p_internal_trx_flag '||p_internal_trx_flag
640       );*/
641 
642       FND_LOG.String(l_proc_level,
643                      l_module_prefix || '.' || l_proc_name || '.parameters',
644                      'p_xml_template_language ' || p_xml_template_language);
645 
646       FND_LOG.String(l_proc_level,
647                      l_module_prefix || '.' || l_proc_name || '.parameters',
648                      'p_xml_template_territory  ' ||
649                      p_xml_template_territory);
650 
651       FND_LOG.String(l_proc_level,
652                      l_module_prefix || '.' || l_proc_name || '.parameters',
653                      'p_xml_output_format  ' || p_xml_output_format);
654 
655       FND_LOG.String(l_proc_level,
656                      l_module_prefix || '.' || l_proc_name || '.parameters',
657                      'p_source_charset ' || p_source_charset);
658 
659       FND_LOG.String(l_proc_level,
660                      l_module_prefix || '.' || l_proc_name || '.parameters',
661                      'p_destination_charset ' || p_destination_charset);
662 
663       FND_LOG.String(l_proc_level,
664                      l_module_prefix || '.' || l_proc_name || '.parameters',
665                      'p_source_separator ' || p_source_separator);
666 
667       FND_LOG.String(l_proc_level,
668                      l_module_prefix || '.' || l_proc_name || '.parameters',
669                      'p_destination_filename ' || p_destination_filename);
670     END IF; --(l_proc_level >= l_dbg_level)
671 
672     IF JA_CN_UTILITY.Check_Profile
673     THEN
674 
675       --To get gl set of book and chart of account for current legal entity
676 /*      JA_CN_UTILITY.Get_SOB_And_COA(p_legal_entity_id => p_legal_entity_id,
677                                     x_sob_id          => l_sets_of_bks_id,
678                                     x_coa_id          => l_coa_id,
679                                     x_flag            => l_flag);
680       IF l_flag = 0
681       THEN*/
682         FND_FILE.Put_Line(FND_FILE.LOG,
683                           'Submit actual CFS SE Generation Concurrent.');
684 
685         FND_FILE.Put_Line(FND_FILE.LOG,
686                           'Start');
687 
688         JA_CN_CFSSE_GENERATE_PKG.Submit_Requests(p_legal_entity_id,
689                                              p_ledger_id,
690                                              P_DATA_ACCESS_SET_ID,
691                                              p_coa_id,
692                                              p_adhoc_prefix,
693                                              p_industry,
694                                              p_id_flex_code,
695                                              p_ledger_name,
696                                              p_report_id,
697                                              p_axis_set_id,
698                                              p_colset_id,
699                                              p_period_name,
700                                              p_currency_code,
701                                              p_rounding_option,
702                                              p_segment_override,
703                                              p_content_set_id,
704                                              P_ROW_ORDER_ID,
705                                              P_REPORT_DISPLAY_SET_ID,
706                                              p_OUTPUT_OPTION,
707                                              p_EXCEPTIONS_FLAG,
708                                              p_MINIMUM_DISPLAY_LEVEL,
709                                              p_accounting_date,
710                                              p_parameter_set_id,
711                                              P_PAGE_LENGTH,
712                                              p_SUBREQUEST_ID,
713                                              P_APPL_NAME
714 
715                                             ,
716                                              p_balance_type
717                                              --,p_internal_trx_flag       IN         VARCHAR2
718                                             ,
719                                              p_xml_template_language,
720                                              p_xml_template_territory,
721                                              p_xml_output_format,
722                                              p_source_charset,
723                                              p_destination_charset,
724                                              p_source_separator,
725                                              p_destination_filename);
726         FND_FILE.Put_Line(FND_FILE.LOG,
727                           'Complete');
728 /*      ELSE
729         l_error_flag := 'Y';
730         --output error message
731         FND_MESSAGE.Set_Name('JA',
732                              'JA_CN_MISSING_BOOK_INFO');
733         FND_FILE.Put_Line(FND_FILE.Output,
734                           FND_MESSAGE.Get);
735       END IF; --l_flag=0*/
736     ELSE
737       l_error_flag := 'Y';
738     END IF; --JA_CN_UTILITY.Check_Profile
739 
740     --If above check failed, then set status of concurrent program as warning
741 
742     IF l_error_flag = 'Y'
743     THEN
744       l_error_status := FND_CONCURRENT.Set_Completion_Status(status  => 'WARNING',
745                                                              message => '');
746 
747     END IF; --l_error_flag = 'Y'
748 
749     --log for debug
750     IF (l_proc_level >= l_dbg_level)
751     THEN
752       FND_LOG.STRING(l_proc_level,
753                      l_module_prefix || '.' || l_proc_name || '.end',
754                      'Exit procedure');
755     END IF; --( l_proc_level >= l_dbg_level )
756 
757   EXCEPTION
758     WHEN OTHERS THEN
759       IF (l_proc_level >= l_dbg_level)
760       THEN
761         FND_LOG.STRING(l_proc_level,
762                        l_module_prefix || '.' || l_proc_name ||
763                        '. Other_Exception ',
764                        SQLCODE || ':' || SQLERRM);
765       END IF; --(l_proc_level >= l_dbg_level)
766 
767   END Cfsse_Generate;
768 
769   --==========================================================================
770   --  PROCEDURE NAME:
771   --    Cfsse_Calculate                  Public
772   --
773   --  DESCRIPTION:
774   --      This procedure accepts parameters from concurrent program
775   --      'Cash Flow Statement for small enterprise -Calcluation'
776   --      and calls another procedure 'JA_CN_CFS_CALCULATE_PKG.Generate_Cfs_Xml'
777   --       with parameters after processing.
778   --
779   --  PARAMETERS:
780   --      In: p_legal_entity_id           legal entity ID
781   --          p_period_name               period name
782   --          p_axis_set_id               axis set id
783   --          p_rounding_option           rounding option
784   --          p_balance_type              balance type
785   --          p_internal_trx_flag         is intercompany transactions
786   --
787   --     Out: errbuf
788   --          retcode
789   --
790   --  DESIGN REFERENCES:
791   --      CNAO_Cashflow_Statement_Generation(SE)_TD.doc
792   --
793   --  CHANGE HISTORY:
794   --      03/29/2006      Jackey Li          Created
795   --===========================================================================
796   PROCEDURE Cfsse_Calculate(ERRBUF              OUT NOCOPY VARCHAR2
797                            ,RETCODE             OUT NOCOPY VARCHAR2
798                            ,p_legal_entity_id   IN NUMBER
799                            ,p_ledger_id     IN NUMBER
800                            ,p_period_name       IN VARCHAR2
801                            ,p_axis_set_id       IN NUMBER
802                            ,p_rounding_option   IN VARCHAR2
803                            ,p_balance_type      IN VARCHAR2
804                            --,p_internal_trx_flag IN VARCHAR2 --updated by lyb
805                            ,p_coa               IN number
806                            ,p_segment_override IN VARCHAR2) IS -- Added for CNAO Enhancement
807 
808    -- l_sob_id       gl_sets_of_books.set_of_books_id%TYPE;--updated by lyb
809    -- l_coa_id       gl_sets_of_books.chart_of_accounts_id%TYPE;--updated by lyb
810     l_flag         NUMBER;
811     l_error_flag   VARCHAR2(1) := 'N';
812     l_error_status BOOLEAN;
813 
814     l_dbg_level  NUMBER := FND_LOG.G_Current_Runtime_Level;
815     l_proc_level NUMBER := FND_LOG.Level_Procedure;
816     l_proc_name  VARCHAR2(100) := 'Cfsse_Calculate';
817 
818   BEGIN
819     --log for debug
820     IF (l_proc_level >= l_dbg_level)
821     THEN
822       FND_LOG.STRING(l_proc_level,
823                      l_module_prefix || '.' || l_proc_name || '.begin',
824                      'Enter procedure');
825 
826       FND_LOG.STRING(l_proc_level,
827                      l_module_prefix || '.' || l_proc_name || '.parameters',
828                      'p_legal_entity_id ' || p_legal_entity_id);
829       FND_LOG.STRING(l_proc_level,
830                      l_module_prefix || '.' || l_proc_name || '.parameters',
831                      'p_period_name ' || p_period_name);
832 
833       FND_LOG.STRING(l_proc_level,
834                      l_module_prefix || '.' || l_proc_name || '.parameters',
835                      'p_axis_set_id ' || p_axis_set_id);
836 
837       FND_LOG.STRING(l_proc_level,
838                      l_module_prefix || '.' || l_proc_name || '.parameters',
839                      'p_rounding_option ' || p_rounding_option);
840 
841       FND_LOG.STRING(l_proc_level,
842                      l_module_prefix || '.' || l_proc_name || '.parameters',
843                      'p_balance_type ' || p_balance_type);
844 
845 /*      FND_LOG.STRING(l_proc_level,
846                      l_module_prefix || '.' || l_proc_name || '.parameters',
847                      'p_internal_trx_flag ' || p_internal_trx_flag) ;*/
848     END IF; --(l_proc_level >= l_dbg_level)
849 
850     IF JA_CN_UTILITY.Check_Profile
851     THEN
852 
853       --To get gl set of book and chart of account for current legal entity
854 /*      JA_CN_UTILITY.Get_SOB_And_COA(p_legal_entity_id => p_legal_entity_id,
855                                     x_sob_id          => l_sob_id,
856                                     x_coa_id          => l_coa_id,
857                                     x_flag            => l_flag);
858       IF l_flag = 0
859       THEN*/
860 
861         FND_FILE.Put_Line(FND_FILE.LOG,
862                           'Submit actual CFS SE Calculation Concurrent.');
863 
864         FND_FILE.Put_Line(FND_FILE.LOG,
865                           'Start');
866 
867         JA_CN_CFSSE_CALCULATE_PKG.Generate_Cfs_Xml(p_legal_entity_id
868                                                   ,p_ledger_id
869                                                   ,p_period_name
870                                                   ,p_axis_set_id
871                                                   ,p_rounding_option
872                                                   ,p_balance_type
873                                                  -- ,p_internal_trx_flag IN VARCHAR2
874                                                   ,p_coa
875                                                   ,p_segment_override => p_segment_override); -- Added for CNAO Enhancement
876 
877         FND_FILE.Put_Line(FND_FILE.LOG,
878                           'Complete');
879 /*      ELSE
880         l_error_flag := 'Y';
881         --output error message
882         FND_MESSAGE.Set_Name('JA',
883                              'JA_CN_MISSING_BOOK_INFO');
884         FND_FILE.Put_Line(FND_FILE.Output,
885                           FND_MESSAGE.Get);
886       END IF; --l_flag=0*/
887     ELSE
888       l_error_flag := 'Y';
889     END IF; --JA_CN_UTILITY.Check_Profile
890 
891     --If above check failed, then set status of concurrent program as warning
892 
893     IF l_error_flag = 'Y'
894     THEN
895       l_error_status := FND_CONCURRENT.Set_Completion_Status(status  => 'WARNING',
896                                                              message => '');
897 
898     END IF; --l_error_flag = 'Y'
899 
900     --log for debug
901     IF (l_proc_level >= l_dbg_level)
902     THEN
903       FND_LOG.STRING(l_proc_level,
904                      l_module_prefix || '.' || l_proc_name || '.end',
905                      'Exit procedure');
906     END IF; --( l_proc_level >= l_dbg_level )
907 
908   EXCEPTION
909     WHEN OTHERS THEN
910       IF (l_proc_level >= l_dbg_level)
911       THEN
912         FND_LOG.STRING(l_proc_level,
913                        l_module_prefix || '.' || l_proc_name ||
914                        '. Other_Exception ',
915                        SQLCODE || ':' || SQLERRM);
916       END IF; --(l_proc_level >= l_dbg_level)
917 
918   END Cfsse_Calculate;
919 
920 
921   --==========================================================================
922   --  PROCEDURE NAME:
923   --    Collect_Cfs_Data              public
924   --
925   --  DESCRIPTION:
926   --      This procedure checks year of FROM/TO periods and then collects
927   --      CFS Data from GL/Intercompany/AR/AP.
928   --
929   --  PARAMETERS:
930   --      Out: errbuf                 NOCOPY VARCHAR2
931   --      Out: retcode                NOCOPY VARCHAR2
932   --      In:,P_COA_ID                NUMBER              ID of chart of account
933   --      In: P_LE_ID                 NUMBER              ID of Legal Entity
934   --      In: P_GL_PERIOD_FROM        VARCHAR2            Start period
935   --      In: P_GL_PERIOD_TO          VARCHAR2            End period
936   --      In: P_SOURCE                VARCHAR2            Source of the collection
937   --      In: P_DFT_ITEM              VARCHAR2            default CFS item
938   --
939   --  DESIGN REFERENCES:
940   --      None
941   --
942   --  CHANGE HISTORY:
943   --      03/01/2006     Andrew Liu          Created
944   --===========================================================================
945   PROCEDURE Collect_Cfs_Data(errbuf           OUT NOCOPY VARCHAR2,
946                              retcode          OUT NOCOPY VARCHAR2,
947                              P_COA_ID         IN NUMBER,
948                              P_LE_ID          IN NUMBER,
949                              p_LEDGER_ID      IN NUMBER,
950                              P_GL_PERIOD_FROM IN VARCHAR2,
951                              P_GL_PERIOD_TO   IN VARCHAR2,
952                              P_SOURCE         IN VARCHAR2) IS
953     l_dbg_level  NUMBER := FND_LOG.G_Current_Runtime_Level;
954     l_proc_level NUMBER := FND_LOG.Level_Procedure;
955     l_proc_name  VARCHAR2(100) := 'Collect_Cfs_Data';
956     l_flag       VARCHAR2(15); --populate the ledger and the legal entity flag
957 
958     JA_CN_INVALID_GLPERIOD exception;
959     l_msg_invalid_glperiod varchar2(2000); --'The from period and to period should be within one accounting year.';
960 
961     l_sob_coa_flag NUMBER;
962     l_account_type_code FND_LOOKUP_VALUES.LOOKUP_CODE%TYPE;
963 
964     l_period_set_name GL_LEDGERS.period_set_name%TYPE;
965     l_year_from       NUMBER;
966     l_year_to         NUMBER;
967   BEGIN
968     --log for debug
969     IF (l_proc_level >= l_dbg_level) THEN
970       FND_LOG.String(l_proc_level,
971                      l_module_prefix || '.' || l_proc_name || '.begin',
972                      'Enter procedure');
973       FND_LOG.String(l_proc_level,
974                      l_module_prefix || '.' || l_proc_name || '.parameters',
975                      'P_LE_ID ' || P_LE_ID);
976       FND_LOG.String(l_proc_level,
977                      l_module_prefix || '.' || l_proc_name || '.parameters',
978                      'P_GL_PERIOD_FROM ' || P_GL_PERIOD_FROM);
979       FND_LOG.String(l_proc_level,
980                      l_module_prefix || '.' || l_proc_name || '.parameters',
981                      'P_GL_PERIOD_TO ' || P_GL_PERIOD_TO);
982       FND_LOG.String(l_proc_level,
983                      l_module_prefix || '.' || l_proc_name || '.parameters',
984                      'P_SOURCE ' || P_SOURCE);
985     END IF; --(l_proc_level >= l_dbg_level)
986 
987          --Check Profile
988         IF NOT(JA_CN_UTILITY.Check_Profile)
989         THEN
990           retcode := 1;
991           errbuf  := '';
992           RETURN;
993         END IF;
994     l_flag := Ja_Cn_Utility.Populate_Ledger_Le_Bsv_Gt(p_LEDGER_ID,
995                                                      P_LE_ID);
996 
997     IF l_flag = 'S' THEN
998 
999     --Get Period set name, Year_From and Year_To
1000     BEGIN
1001       SELECT LEDGER.PERIOD_SET_NAME, GP1.period_year, GP2.period_year
1002         INTO l_period_set_name, l_year_from, l_year_to
1003         FROM GL_LEDGERS LEDGER, gl_periods GP1, gl_periods GP2
1004        WHERE LEDGER.Ledger_Id = p_LEDGER_ID
1005          AND GP1.PERIOD_SET_NAME = LEDGER.PERIOD_SET_NAME
1006          AND GP1.period_name = P_GL_PERIOD_FROM
1007          AND GP2.PERIOD_SET_NAME = LEDGER.PERIOD_SET_NAME
1008          AND GP2.period_name = P_GL_PERIOD_TO;
1009     EXCEPTION
1010       WHEN NO_DATA_FOUND THEN
1011         NULL;
1012     END;
1013 
1014     IF l_year_from <> l_year_to THEN
1015       raise JA_CN_INVALID_GLPERIOD;
1016     ELSE
1017       JA_CN_CFS_DATA_CLT_PKG.Cfs_Data_Clt(P_COA_ID          => p_coa_id,
1018                                           P_LEDGER_ID       => p_ledger_id,
1019                                           P_LE_ID           => p_le_id,
1020                                           P_PERIOD_SET_NAME => l_period_set_name,
1021                                           P_GL_PERIOD_FROM  => p_gl_period_from,
1022                                           P_GL_PERIOD_TO    => p_gl_period_to,
1023                                           P_SOURCE          => p_source);
1024     END IF;
1025 
1026     --log for debug
1027     IF (l_proc_level >= l_dbg_level) THEN
1028       FND_LOG.String(l_proc_level,
1029                      l_module_prefix || '.' || l_proc_name || '.end',
1030                      'Exit procedure');
1031     END IF; --(l_proc_level >= l_dbg_level)
1032   ELSE
1033      RETURN;
1034   END IF;
1035   EXCEPTION
1036     when JA_CN_INVALID_GLPERIOD then
1037       FND_MESSAGE.Set_Name(APPLICATION => 'JA',
1038                            NAME        => 'JA_CN_INVALID_GLPERIOD');
1039       l_msg_invalid_glperiod := FND_MESSAGE.Get;
1040       IF (l_proc_level >= l_dbg_level) THEN
1041         FND_LOG.String(l_proc_level,
1042                        l_module_prefix || '.' || l_proc_name ||
1043                        '.JA_CN_INVALID_GLPERIOD ',
1044                        l_msg_invalid_glperiod);
1045       END IF; --(l_proc_level >= l_dbg_level)
1046       retcode := 1;
1047       errbuf  := l_msg_invalid_glperiod;
1048     WHEN OTHERS THEN
1049       IF (l_proc_level >= l_dbg_level) THEN
1050         FND_LOG.String(l_proc_level,
1051                        l_module_prefix || '.' || l_proc_name ||
1052                        '.Other_Exception ',
1053                        SQLCODE || ':' || SQLERRM);
1054       END IF; --(l_proc_level >= l_dbg_level)
1055       retcode := 2;
1056       errbuf  := SQLCODE || ':' || SQLERRM;
1057 
1058   END Collect_Cfs_Data;
1059 
1060   --==========================================================================
1061   --  PROCEDURE NAME:
1062   --    GL_Validation                 Public
1063   --
1064   --  DESCRIPTION:
1065   --      This procedure calls Intercompany transactions validation program to
1066   --      check the Intercompany transactions.
1067   --
1068   --  PARAMETERS:
1069   --      Out: errbuf                 NOCOPY VARCHAR2
1070   --      Out: retcode                NOCOPY VARCHAR2
1071   --      In: P_COA_ID                NMBER               Chart of accounts ID
1072   --      In: P_LE_ID                 NUMBER              ID of Legal Entity
1073   --      In: P_LEDGER_ID             NUMBER              ID of ledger
1074   --      In: P_START_PERIOD          VARCHAR2            Start period
1075   --      In: P_END_PERIOD            VARCHAR2            End period
1076   --      In: P_SOURCE                VARCHAR2            Specified journal source
1077   --      In: P_JOURNAL_CTG           VARCHAR2            Specified journal category
1078   --      In: P_STATUS                VARCHAR2            Specified journal status
1079   --
1080   --  DESIGN REFERENCES:
1081   --      None
1082   --
1083   --  CHANGE HISTORY:
1084   --      02/24/2006     Andrew Liu          Created
1085   --      04/21/2007     Yucheng Sun         Updated
1086   --                                         delete parameter: P_COM_SEGMENT
1087   --      03/09/2008     Chaoqun Wu          Updated
1088   --                                         CNAO Enhancement: add company segment
1089   --===========================================================================
1090   PROCEDURE GL_Validation(errbuf         OUT NOCOPY VARCHAR2,
1091                           retcode        OUT NOCOPY VARCHAR2,
1092                           P_COA_ID       IN NUMBER,
1093                           P_LE_ID        IN NUMBER,
1094                           P_LEDGER_ID    IN NUMBER,
1095                           P_START_PERIOD IN VARCHAR2,
1096                           P_END_PERIOD   IN VARCHAR2,
1097                           P_SOURCE       IN VARCHAR2,
1098                           P_JOURNAL_CTG  IN VARCHAR2,
1099                           P_STATUS       IN VARCHAR2,
1100                           P_COM_SEG      IN VARCHAR2) IS   --Added for CNAO Enhancement
1101     l_dbg_level  NUMBER := FND_LOG.G_Current_Runtime_Level;
1102     l_proc_level NUMBER := FND_LOG.Level_Procedure;
1103     l_proc_name  VARCHAR2(100) := 'GL_Validation';
1104 
1105   BEGIN
1106  --log for debug
1107     IF (l_proc_level >= l_dbg_level) THEN
1108       FND_LOG.String(l_proc_level,
1109                      l_module_prefix || '.' || l_proc_name || '.begin',
1110                      'Enter procedure');
1111        FND_LOG.String(l_proc_level,
1112                      l_module_prefix || '.' || l_proc_name || '.parameters',
1113                      'P_COA_ID ' || P_COA_ID);
1114       FND_LOG.String(l_proc_level,
1115                      l_module_prefix || '.' || l_proc_name || '.parameters',
1116                      'P_LE_ID ' || P_LE_ID);
1117       FND_LOG.String(l_proc_level,
1118                      l_module_prefix || '.' || l_proc_name || '.parameters',
1119                      'P_LEDGER_ID ' || P_LEDGER_ID);
1120       FND_LOG.String(l_proc_level,
1121                      l_module_prefix || '.' || l_proc_name || '.parameters',
1122                      'P_START_PERIOD ' || P_START_PERIOD);
1123       FND_LOG.String(l_proc_level,
1124                      l_module_prefix || '.' || l_proc_name || '.parameters',
1125                      'P_END_PERIOD ' || P_END_PERIOD);
1126       FND_LOG.String(l_proc_level,
1127                      l_module_prefix || '.' || l_proc_name || '.parameters',
1128                      'P_SOURCE ' || P_SOURCE);
1129       FND_LOG.String(l_proc_level,
1130                      l_module_prefix || '.' || l_proc_name || '.parameters',
1131                      'P_JOURNAL_CTG ' || P_JOURNAL_CTG);
1132       FND_LOG.String(l_proc_level,                                          --Added for CNAO Enhancement
1133                      l_module_prefix || '.' || l_proc_name || '.parameters',
1134                      'P_COM_SEG ' || P_COM_SEG);
1135       FND_LOG.String(l_proc_level,
1136                      l_module_prefix || '.' || l_proc_name || '.parameters',
1137                      'P_STATUS ' || P_STATUS);
1138     END IF; --(l_proc_level >= l_dbg_level)
1139 
1140     --Check Profile
1141     IF NOT(JA_CN_UTILITY.Check_Profile)
1142     THEN
1143       retcode := 1;
1144       errbuf  := '';
1145       RETURN;
1146     END IF;
1147 
1148     JA_CN_GL_INTER_VALID_PKG.GL_Validation(errbuf         => errbuf,
1149                                            retcode        => retcode,
1150                                            P_COA_ID       => P_COA_ID,
1151                                            P_LE_ID        => P_LE_ID,
1152                                            P_LEDGER_ID    => P_LEDGER_ID,
1153                                            P_START_PERIOD => P_START_PERIOD,
1154                                            P_END_PERIOD   => P_END_PERIOD,
1155                                            P_SOURCE       => P_SOURCE,
1156                                            P_JOURNAL_CTG  => P_JOURNAL_CTG,
1157                                            P_STATUS       => P_STATUS,
1158                                            P_COM_SEG      => P_COM_SEG);       --Added for CNAO Enhancement
1159    EXCEPTION
1160    WHEN OTHERS THEN
1161       IF (l_proc_level >= l_dbg_level) THEN
1162         FND_LOG.String(l_proc_level,
1163                        l_module_prefix || '.' || l_proc_name ||
1164                        '.Other_Exception ',
1165                        SQLCODE || ':' || SQLERRM);
1166       END IF; --(l_proc_level >= l_dbg_level)
1167       retcode := 2;
1168       errbuf  := SQLCODE || ':' || SQLERRM;
1169 
1170   END GL_Validation;
1171 
1172   --==========================================================================
1173   --  PROCEDURE NAME:
1174   --    Intercompany_Validation       Public
1175   --
1176   --  DESCRIPTION:
1177   --      This procedure calls Intercompany transactions validation program to
1178   --      check the Intercompany transactions.
1179   --
1180   --  PARAMETERS:
1181   --      Out: errbuf                 NOCOPY VARCHAR2
1182   --      Out: retcode                NOCOPY VARCHAR2
1183   --      In: P_COA_ID                NMBER               Chart of accounts ID
1184   --      In: P_LE_ID                 NUMBER              ID of Legal Entity
1185   --      In: P_LEDGER_ID             NUMBER              ID of ledger
1186   --      In: P_START_PERIOD          VARCHAR2            Start period
1187   --      In: P_END_PERIOD            VARCHAR2            End period
1188   --      In: P_STATUS                VARCHAR2            Specified journal status
1189   --
1190   --  DESIGN REFERENCES:
1191   --      None
1192   --
1193   --  CHANGE HISTORY:
1194   --      02/24/2006     Andrew Liu          Created
1195   --      04/21/2007     Yucheng Sun         Updated
1196   --                                         delete parameter: P_COM_SEGMENT
1197   --      02/09/2008     Chaoqun Wu          Updated
1198   --                                         CNAO Enhancement: add company segment
1199   --===========================================================================
1200   PROCEDURE Intercompany_Validation(errbuf         OUT NOCOPY VARCHAR2,
1201                                     retcode        OUT NOCOPY VARCHAR2,
1202                                     P_COA_ID       IN NUMBER,
1203                                     P_LE_ID        IN NUMBER,
1204                                     P_LEDGER_ID    IN NUMBER,
1205                                     P_START_PERIOD IN VARCHAR2,
1206                                     P_END_PERIOD   IN VARCHAR2,
1207                                     P_STATUS       IN VARCHAR2,
1208                                     P_COM_SEG      IN VARCHAR2  --Added for CNAO Enhancement
1209                                     ) IS
1210    l_dbg_level  NUMBER := FND_LOG.G_Current_Runtime_Level;
1211     l_proc_level NUMBER := FND_LOG.Level_Procedure;
1212     l_proc_name  VARCHAR2(100) := 'GL_Validation';
1213 
1214   BEGIN
1215  --log for debug
1216     IF (l_proc_level >= l_dbg_level) THEN
1217       FND_LOG.String(l_proc_level,
1218                      l_module_prefix || '.' || l_proc_name || '.begin',
1219                      'Enter procedure');
1220        FND_LOG.String(l_proc_level,
1221                      l_module_prefix || '.' || l_proc_name || '.parameters',
1222                      'P_COA_ID ' || P_COA_ID);
1223       FND_LOG.String(l_proc_level,
1224                      l_module_prefix || '.' || l_proc_name || '.parameters',
1225                      'P_LE_ID ' || P_LE_ID);
1226       FND_LOG.String(l_proc_level,
1227                      l_module_prefix || '.' || l_proc_name || '.parameters',
1228                      'P_LEDGER_ID ' || P_LEDGER_ID);
1229       FND_LOG.String(l_proc_level,
1230                      l_module_prefix || '.' || l_proc_name || '.parameters',
1231                      'P_START_PERIOD ' || P_START_PERIOD);
1232       FND_LOG.String(l_proc_level,
1233                      l_module_prefix || '.' || l_proc_name || '.parameters',
1234                      'P_END_PERIOD ' || P_END_PERIOD);
1235       FND_LOG.String(l_proc_level,                                          --Added for CNAO Enhancement
1236                      l_module_prefix || '.' || l_proc_name || '.parameters',
1237                      'P_COM_SEG ' || P_COM_SEG);
1238       FND_LOG.String(l_proc_level,
1239                      l_module_prefix || '.' || l_proc_name || '.parameters',
1240                      'P_STATUS ' || P_STATUS);
1241     END IF; --(l_proc_level >= l_dbg_level)
1242 
1243     --Check Profile
1244     IF NOT(JA_CN_UTILITY.Check_Profile)
1245     THEN
1246       retcode := 1;
1247       errbuf  := '';
1248       RETURN;
1249     END IF;
1250 
1251     JA_CN_GL_INTER_VALID_PKG.Intercompany_Validation(errbuf         => errbuf,
1252                                                      retcode        => retcode,
1253                                                      P_COA_ID       => P_COA_ID,
1254                                                      P_LE_ID        => P_LE_ID,
1255                                                      P_LEDGER_ID    => P_LEDGER_ID,
1256                                                      P_START_PERIOD => P_START_PERIOD,
1257                                                      P_END_PERIOD   => P_END_PERIOD,
1258                                                      P_COM_SEG      => P_COM_SEG,      --Added for CNAO Enhancement
1259                                                      P_STATUS       => P_STATUS
1260                                                      );
1261  EXCEPTION
1262    WHEN OTHERS THEN
1263       IF (l_proc_level >= l_dbg_level) THEN
1264         FND_LOG.String(l_proc_level,
1265                        l_module_prefix || '.' || l_proc_name ||
1266                        '.Other_Exception ',
1267                        SQLCODE || ':' || SQLERRM);
1268       END IF; --(l_proc_level >= l_dbg_level)
1269       retcode := 2;
1270       errbuf  := SQLCODE || ':' || SQLERRM;
1271  END Intercompany_Validation;
1272 
1273   --==========================================================================
1274   --  PROCEDURE NAME:
1275   --
1276   --  Item_Mapping_Analysis_Report                    Public
1277   --
1278   --  DESCRIPTION:
1279   --
1280   --    This procedure is used to export the records which item mapping form saved.
1281   --    It can help the audience know the cash flow of the company and do cash forecasting based on it
1282   --
1283   --
1284   --  PARAMETERS:
1285   --      Out:       errbuf                  Mandatory parameter for PL/SQL concurrent programs
1286   --      Out:       retcode                 Mandatory parameter for PL/SQL concurrent programs
1287   --      In:      P_APLICATION_ID           Application ID
1288   --      In:    P_EVENT_CLASS_CODE          Event class code
1289   --      In:  P_SUPPORTING_REFERENCE_CODE   Supporting reference code
1290   --      In:   P_CHART_OF_ACCOUNTS_ID       Chart of Accounts ID
1291 
1292   --
1293   --  DESIGN REFERENCES:
1294   --
1295   --
1296   --  CHANGE HISTORY:
1297   --
1298   --      27-APR-2007     Joy Liu Created
1299   --
1300   --===========================================================================
1301 
1302   PROCEDURE Item_Mapping_Analysis_Report(errbuf                      OUT NOCOPY VARCHAR2,
1303                                          retcode                     OUT NOCOPY VARCHAR2,
1304                                          P_APLICATION_ID             IN Number,
1305                                          P_EVENT_CLASS_CODE          IN Varchar2,
1306                                          P_SUPPORTING_REFERENCE_CODE IN Varchar2,
1307                                          P_CHART_OF_ACCOUNTS_ID      IN NUMBER) IS
1308   BEGIN
1309     JA_CN_CFS_IMA_PKG.Item_Mapping_Analysis_Report(errbuf                      => errbuf,
1310                                                    retcode                     => retcode,
1311                                                    P_APLICATION_ID             => P_APLICATION_ID,
1312                                                    P_EVENT_CLASS_CODE          => P_EVENT_CLASS_CODE,
1313                                                    P_SUPPORTING_REFERENCE_CODE => P_SUPPORTING_REFERENCE_CODE,
1314                                                    P_CHART_OF_ACCOUNTS_ID      => P_CHART_OF_ACCOUNTS_ID);
1315   END Item_Mapping_Analysis_Report;
1316 
1317   --==========================================================================
1318   --  PROCEDURE NAME:
1319   --    cfs_detail_report                 Public
1320   --
1321   --  DESCRIPTION:
1322   --      This procedure is to generate the cfs detail report.
1323   --
1324   --  PARAMETERS:
1325   --      Out: errbuf
1326   --      Out: retcode
1327   --      In: P_LE_ID            ID of Legal Entity
1328   --      In: P_ledger_ID        ID of ledger
1329   --      In: P_coa_ID           Identifier of gl chart of account
1330   --      In: P_ADHOC_PREFIX     Ad hoc prefix for FSG report, a required
1331   --                             parameter for FSG report
1332   --      In: P_INDUSTRY         Industry with constant value 'C' for
1333   --                             now, a required parameter for FSG report
1334   --      In: P_ID_FLEX_CODE     ID flex code, a required parameter for
1335   --                             FSG report
1336   --      In: P_REPORT_ID        Identifier of FSG report
1337   --      In: P_GL_PERIOD_FROM   Start period
1338   --      In: P_GL_PERIOD_TO     End period
1339   --      In: P_SOURCE           Source of the collection
1340   --      In: P_INTERNAL_TRX     To indicate if intercompany transactions
1341   --                             should be involved in amount calculation
1342   --                             of cash flow statement.
1343   --
1344   --  DESIGN REFERENCES:
1345   --      None
1346   --
1347   --  CHANGE HISTORY:
1348   --      04/28/2007     Qingjun Zhao         Change
1349   --      08/09/2008     Yao Zhang            Fix Bug#7334017 for R12 enhancment
1350   --===========================================================================
1351 
1352   PROCEDURE Cfs_Detail_Report(errbuf                 OUT NOCOPY VARCHAR2,
1353                               retcode                OUT NOCOPY VARCHAR2,
1354                               P_LEGAL_ENTITY_ID      IN NUMBER,
1355                               P_ledger_ID            IN NUMBER,
1356                               P_chart_of_accounts_ID IN NUMBER,
1357                               P_ADHOC_PREFIX         IN VARCHAR2,
1358                               P_INDUSTRY             IN VARCHAR2,
1359                               P_ID_FLEX_CODE         IN VARCHAR2,
1360                               P_REPORT_ID            IN NUMBER,
1361                               P_ROW_SET_ID           IN NUMBER,
1362                               P_ROW_NAME             IN VARCHAR2,
1363                               P_GL_PERIOD_FROM       IN VARCHAR2,
1364                               P_GL_PERIOD_TO         IN VARCHAR2,
1365                               P_SOURCE               IN VARCHAR2,
1366                               P_BSV                  IN VARCHAR2) is--Fix Bug#7334017 add
1367 
1368     l_error_status BOOLEAN;
1369     l_dbg_level    NUMBER := FND_LOG.G_Current_Runtime_Level;
1370     l_proc_level   NUMBER := FND_LOG.Level_Procedure;
1371     l_proc_name    VARCHAR2(100) := 'Cfs_Detail_Report';
1372   begin
1373     --log for debug
1374     IF (l_proc_level >= l_dbg_level) THEN
1375       FND_LOG.String(l_proc_level,
1376                      l_module_prefix || '.' || l_proc_name || '.begin',
1377                      'Enter procedure');
1378       FND_LOG.String(l_proc_level,
1379                      l_module_prefix || '.' || l_proc_name || '.parameters',
1380                      'P_LEGAL_ENTITY_ID ' || P_LEGAL_ENTITY_ID);
1381       FND_LOG.String(l_proc_level,
1382                      l_module_prefix || '.' || l_proc_name || '.parameters',
1383                      'P_LEDGER_ID ' || P_LEDGER_ID);
1384       FND_LOG.String(l_proc_level,
1385                      l_module_prefix || '.' || l_proc_name || '.parameters',
1386                      'P_chart_of_accounts_ID ' || P_chart_of_accounts_ID);
1387 
1388       FND_LOG.String(l_proc_level,
1389                      l_module_prefix || '.' || l_proc_name || '.parameters',
1390                      'P_ADHOC_PREFIX ' || p_adhoc_prefix);
1391 
1392       FND_LOG.String(l_proc_level,
1393                      l_module_prefix || '.' || l_proc_name || '.parameters',
1394                      'P_INDUSTRY ' || p_industry);
1395 
1396       FND_LOG.String(l_proc_level,
1397                      l_module_prefix || '.' || l_proc_name || '.parameters',
1398                      'P_ID_FLEX_CODE ' || p_id_flex_code);
1399       FND_LOG.String(l_proc_level,
1400                      l_module_prefix || '.' || l_proc_name || '.parameters',
1401                      'P_GL_PERIOD_FROM ' || P_GL_PERIOD_FROM);
1402       FND_LOG.String(l_proc_level,
1403                      l_module_prefix || '.' || l_proc_name || '.parameters',
1404                      'P_GL_PERIOD_TO' || P_GL_PERIOD_TO);
1405       FND_LOG.String(l_proc_level,
1406                      l_module_prefix || '.' || l_proc_name || '.parameters',
1407                      'P_SOURCE ' || P_SOURCE);
1408       FND_LOG.String(l_proc_level,
1409                      l_module_prefix || '.' || l_proc_name || '.parameters',
1410                      'P_REPORT_ID ' || P_REPORT_ID);
1411 
1412     END IF; --(l_proc_level >= l_dbg_level)
1413 
1414     --Call the functon JA_CN_CFS_UTILITY.Check_Profile to check if all required profiles has been
1415     -- properly set for current responsibility. If No, the function will raise corresponding error
1416     --messages, and the concurrent program will not continue performing next logics,these required
1417     --profiles include ' JG: Product', which should be set to 'Asia/Pacific Localizations',
1418     --'JG: Territory', which should be set to 'China' and 'JA: CNAO Legal Entity', which should be
1419     --NOT NULL
1420     IF JA_CN_UTILITY.Check_Profile THEN
1421       JA_CN_CFS_REPORT_PKG.Cfs_Detail_Report(errbuf                 => errbuf,
1422                                              retcode                => retcode,
1423                                              P_LEGAL_ENTITY_ID      => P_LEGAL_ENTITY_ID,
1424                                              P_ledger_ID            => p_ledger_id,
1425                                              P_Chart_of_accounts_ID => p_chart_of_accounts_id,
1426                                              P_ADHOC_PREFIX         => P_ADHOC_PREFIX,
1427                                              P_INDUSTRY             => P_INDUSTRY,
1428                                              P_ID_FLEX_CODE         => P_ID_FLEX_CODE,
1429                                              P_REPORT_ID            => p_report_id,
1430                                              P_ROW_SET_ID           => p_row_set_id,
1431                                              P_ROW_NAME             => p_row_name,
1432                                              P_GL_PERIOD_FROM       => p_gl_period_from,
1433                                              P_GL_PERIOD_TO         => p_gl_period_to,
1434                                              P_SOURCE               => p_source,
1435                                              P_BSV                  => p_bsv);--Fix Bug#7334017 add
1436     ELSE
1437       --If above check failed, then set status of concurrent program as warning
1438       l_error_status := FND_CONCURRENT.Set_Completion_Status(status  => 'WARNING',
1439                                                              message => '');
1440     END IF; --JA_CN_UTILITY.Check_Profile
1441 
1442     --log for debug
1443     IF (l_proc_level >= l_dbg_level) THEN
1444       FND_LOG.STRING(l_proc_level,
1445                      l_module_prefix || '.' || l_proc_name || '.end',
1446                      'Exit procedure');
1447     END IF; --( l_proc_level >= l_dbg_level )
1448 
1449   EXCEPTION
1450     WHEN OTHERS THEN
1451       IF (l_proc_level >= l_dbg_level) THEN
1452         FND_LOG.String(l_proc_level,
1453                        l_module_prefix || '.' || l_proc_name ||
1454                        '. Other_Exception ',
1455                        SQLCODE || ':' || SQLERRM);
1456       END IF; --(l_proc_level >= l_dbg_level)
1457 
1458   end Cfs_Detail_Report;
1459 
1460 END JA_CN_CFS_CONC_PROG;
1461