Wednesday, March 2, 2022

GL and AP Activity with Payment Details Report

 WITH FUNCTION get_ap_lookup_meaning (

   p_lookup_type   IN   VARCHAR2,

   p_lookup_code   IN   VARCHAR2

)

   RETURN VARCHAR2

IS

   lv_meaning   fnd_lookup_values.meaning%TYPE;

BEGIN

   SELECT meaning

     INTO lv_meaning

     FROM fnd_lookup_values_vl

    WHERE lookup_type = p_lookup_type

      AND lookup_code = p_lookup_code

      AND view_application_id = 200

      AND enabled_flag = 'Y';


   RETURN lv_meaning;

EXCEPTION

   WHEN OTHERS

   THEN

      RETURN NULL;

END;

FUNCTION get_payment_det (p_return_type IN VARCHAR2, p_invoice_id IN NUMBER)

   RETURN DATE

IS

   lv_return_date   DATE;

BEGIN

   SELECT MIN (DECODE (p_return_type,

                       'PAYMENT_DATE', aca.check_date,

                       'CLEARED_DATE', aca.cleared_date

                      )

              )

     INTO lv_return_date

     FROM ap_invoice_payments_all aipa, ap_checks_all aca

    WHERE 1 = 1

      AND aipa.check_id = aca.check_id

      AND aipa.invoice_id = p_invoice_id;


   RETURN lv_return_date;

EXCEPTION

   WHEN OTHERS

   THEN

      RETURN NULL;

END;

FUNCTION get_prepayment_det (p_invoice_id IN NUMBER)

   RETURN DATE

IS

   lv_return_date   DATE;

BEGIN

   SELECT MIN (aid.accounting_date)

     INTO lv_return_date

     FROM ap_invoice_distributions_all aid, ap_invoice_lines_all ail

    WHERE ail.invoice_id = p_invoice_id

      AND ail.invoice_id = aid.invoice_id

      AND ail.line_number = aid.invoice_line_number

      AND aid.line_type_lookup_code = 'PREPAY'

      AND aid.prepay_distribution_id IS NOT NULL

      AND NVL (ail.invoice_includes_prepay_flag, 'N') = 'N';


   RETURN lv_return_date;

EXCEPTION

   WHEN OTHERS

   THEN

      RETURN NULL;

END;

get_ap_inv_det AS

     (SELECT distinct aia.invoice_num invoice_number,

             TO_CHAR (aia.invoice_date,

                      'dd-Mon-yy',

                      'NLS_DATE_LANGUAGE=AMERICAN'

                     ) invoice_date,

             (aia.invoice_id) invoice_id,

             SUBSTR (REGEXP_REPLACE (aia.description,

                                        '[ '

                                     || CHR (10)

                                     || CHR (13)

                                     || CHR (9)

                                     || '|'

                                     || '"'

                                     || ']'

                                    ),

                     1,

                     100

                    ) invoice_description,

             hp.party_name vendor_name, ps.segment1 vendor_number,

             hl.country vendor_site_country, pssam.vendor_site_code,

             aia.exchange_date currency_conversion_date,

             aia.exchange_rate curr_conv_rate,

             ad.description dist_description, aia.invoice_currency_code,

               (NVL (l.unrounded_entered_dr, 0))

             - (NVL (l.unrounded_entered_cr, 0)) entered_net,

               (NVL (l.unrounded_accounted_dr, 0))

             - (NVL (l.unrounded_accounted_cr, 0)) accounted_net,

             SIGN (aia.invoice_amount) sign_invoice_amount, gjh.je_header_id,

             gjl.je_line_num, aia.invoice_amount ap_inv_amount,

             aia.amount_paid ap_inv_amount_paid,

             get_ap_lookup_meaning

                (p_lookup_type      => DECODE (aia.invoice_type_lookup_code,

                                               'PREPAYMENT', 'PREPAY STATUS',

                                               'NLS TRANSLATION'

                                              ),

                 p_lookup_code      => ap_invoices_pkg.get_approval_status

                                                 (aia.invoice_id,

                                                  aia.invoice_amount,

                                                  aia.payment_status_flag,

                                                  aia.invoice_type_lookup_code

                                                 )

                ) ap_inv_status,

             get_payment_det

                        (p_return_type      => 'PAYMENT_DATE',

                         p_invoice_id       => aia.invoice_id

                        ) ap_inv_payment_date,

             get_prepayment_det

                       (p_invoice_id      => aia.invoice_id)

                                                       ap_inv_prepayment_date,

             get_payment_det

                        (p_return_type      => 'CLEARED_DATE',

                         p_invoice_id       => aia.invoice_id

                        ) ap_inv_cleared_date

--,proj.project_name   --added by anu

  -- ,proj.project_number

             ,ppa.segment1  project_number

,ppa.name project_name

,pt.task_number

,PCT.CLASS_CODE

,ppa.PROJECT_ID

  ,(select DISTINCT PHA.SEGMENT1 from PO_HEADERS_ALL PHA

where pha.PO_HEADER_ID=aia.PO_HEADER_ID) PURCHASE_ORDER

-- ,(select distinct aip.INVOICE_PAYMENT_ID from AP_INVOICE_PAYMENTS_ALL aip where aia.INVOICE_ID=aip.INVOICE_ID ) Payment_ID

,(select distinct 

aca.check_number 

from 

AP_INVOICE_PAYMENTS_ALL aip,

ap_checks_all aca 

where aip.INVOICE_ID=aia.INVOICE_ID

and aip.check_id = aca.check_id) PAYMENT_NUM 

,(SELECT

PPSET.NAME

FROM

PJF_PROJECT_SETS_TL PPSET,

PJF_PROJECT_SETS_B PPSB,

PJF_PROJECT_SET_LINES PPSL

--PJF_PROJECTS_ALL_VL PJA

WHERE

1=1

AND PPSET.LANGUAGE = USERENV('LANG')

AND PPSB.PROJECT_SET_ID(+) = PPSET.PROJECT_SET_ID

AND PPSL.PROJECT_SET_ID = PPSB.PROJECT_SET_ID

AND PPSL.PROJECT_ID=ppa.PROJECT_ID) PROJECT_SET,

pla.line_num,ad.pjc_project_id,xte.transaction_number


        FROM xla_ae_headers xah,

             xla_ae_lines xal,

             xla_events xe,

             xla_transaction_entities xte,

             xla_distribution_links l,

             ap_invoices_all aia,

             ap_invoice_distributions_all ad,

pjf_projects_all_vl  ppa, --Project details added by SreenivasaChary

pjf_tasks_v pt,

PJF_CLASS_CATEGORIES_TL PCC,

PJF_CLASS_CODES_TL PCT,

PJF_PROJECT_CLASSES PPC,

             poz_suppliers ps,

             hz_parties hp,

             poz_supplier_sites_all_m pssam,

             hz_locations hl,

             gl_je_headers gjh,

             gl_je_lines gjl,

             gl_import_references gir,

po_distributions_all pda,

po_lines_all pla

/* ,(select  ppb.segment1    project_number

                       ,ppat.name      project_name

                ,peia.original_header_id invoice_id

               from pjc_exp_items_all        peia

                    ,pjf_projects_all_b      ppb

                    ,pjf_projects_all_tl     ppat

                    ,pjf_txn_sources_tl       ptst

               where peia.transaction_source_id  = ptst.transaction_source_id

               AND   ptst.language               = userenv('LANG')

               AND   ptst.user_transaction_source = 'Oracle Fusion Payables'

               AND   peia.project_id   = ppb.project_id

               AND   ppb.project_id   = ppat.project_id 

               AND   ppat.language    = userenv('LANG')

) proj  --Added by Anu*/

       WHERE 1 = 1

          AND  ppa.project_id(+) = ad.pjc_project_id

  AND ppa.project_id=pt.project_id(+)

  and ad.pjc_task_id=pt.task_id(+)

  AND PPC.CLASS_CATEGORY_ID  = PCC.CLASS_CATEGORY_ID(+)

  AND PPC.PROJECT_ID(+) = PPA.PROJECT_ID 

              AND PPC.CLASS_CODE_ID = PCT.CLASS_CODE_ID(+)

  AND PCC.CLASS_CATEGORY='OPEX Type'

  AND NVL(PCC.LANGUAGE,'US') ='US'

         AND xah.ae_header_id = xal.ae_header_id

         AND xah.application_id = xal.application_id

         AND xah.event_id = xe.event_id

         AND xah.application_id = xe.application_id

         AND xe.entity_id = xte.entity_id

         AND xe.application_id = xte.application_id

         AND l.ae_header_id = xal.ae_header_id

         AND l.ae_line_num = xal.ae_line_num

         AND l.source_distribution_type(+) = 'AP_INV_DIST'

         AND l.source_distribution_id_num_1 = ad.invoice_distribution_id(+)

         AND ad.invoice_id(+) = aia.invoice_id

and ad.PO_DISTRIBUTION_ID = pda.PO_DISTRIBUTION_ID

and pda.po_line_id = pla.po_line_id

         AND xte.entity_code = 'AP_INVOICES'

         AND xte.source_id_int_1 = aia.invoice_id(+)

         AND aia.vendor_site_id = pssam.vendor_site_id(+)

         AND pssam.vendor_id = ps.vendor_id(+)

         AND aia.party_id = hp.party_id

         AND pssam.location_id = hl.location_id(+)

         AND gjh.je_header_id = gjl.je_header_id

         AND gjh.actual_flag = 'A'

         AND gjl.je_header_id = gir.je_header_id

         AND gjl.je_line_num = gir.je_line_num

         AND gjh.je_source = 'Payables'

         AND NVL (gjh.status, 'P') = 'P'

         AND xal.gl_sl_link_id = gir.gl_sl_link_id

         AND xal.gl_sl_link_table = gir.gl_sl_link_table

-- AND aia.invoice_id = proj.invoice_id(+)  -- Added by Anu

         AND ((    TO_CHAR (TO_DATE (gjl.period_name,

                                     'Mon-yy',

                                     'NLS_DATE_LANGUAGE=AMERICAN'

                                    ),

                            'yyyymm'

                           ) >= :p_period_entered_from

               AND TO_CHAR (TO_DATE (gjl.period_name,

                                     'Mon-yy',

                                     'NLS_DATE_LANGUAGE=AMERICAN'

                                    ),

                            'yyyymm'

                           ) <= :p_period_entered_to

              )

             )

-- AND to_char(gjl.period_name) = :p_period_entered_from

--AND to_char(gjl.period_name) = :p_period_entered_to

 

/* AND ((    TO_CHAR (TO_DATE (gjl.period_name,

                                     'Mon-yy',

                                     'NLS_DATE_LANGUAGE=AMERICAN'

                                    ),

                            'yyyymm'

                           ) >= (select TO_CHAR (TO_DATE (:p_period_entered_from, 'Mon-yy', 'NLS_DATE_LANGUAGE=AMERICAN'), 'yyyymm') from dual)

               AND TO_CHAR (TO_DATE (gjl.period_name,

                                     'Mon-yy',

                                     'NLS_DATE_LANGUAGE=AMERICAN'

                                    ),

                            'yyyymm'

                           ) <= (select TO_CHAR (TO_DATE (:p_period_entered_to, 'Mon-yy', 'NLS_DATE_LANGUAGE=AMERICAN'), 'yyyymm') from dual)

              )

             )*/

)

SELECT TO_CHAR (TO_DATE (jel.period_name,

                         'Mon-yy',

                         'NLS_DATE_LANGUAGE=AMERICAN'

                        ),

                'yyyymm'

               ) period,

       gjs.user_je_source_name, gjc.user_je_category_name, b.NAME batch_name,

       b.description batch_description, h.NAME je_name,

       h.description je_description,

       DECODE (gjc.user_je_category_name,

               'Purchase Invoices', get_inv_det.invoice_description,

               ''

              ) je_invoice_description,

       h.doc_sequence_value, NVL (ppnf.display_name, h.created_by) created_by,

       h.creation_date,

       TO_CHAR (h.creation_date,

                'dd-Mon-yy',

                'NLS_DATE_LANGUAGE=AMERICAN'

               ) conv_creation_date,

       TO_CHAR (h.posted_date,

                'dd-Mon-yy',

                'NLS_DATE_LANGUAGE=AMERICAN'

               ) conv_posted_date,

       h.posted_date, jel.description line_description,

   h.status journal_status,

       DECODE (gjc.user_je_category_name,

               'Purchase Invoices', get_inv_det.vendor_name,

               ''

              ) vendor_name,

       DECODE (gjc.user_je_category_name,

               'Purchase Invoices', get_inv_det.invoice_number,

               ''

              ) invoice_number,

       DECODE (gjc.user_je_category_name,

               'Purchase Invoices', get_inv_det.invoice_date,

               ''

              ) invoice_date,

       DECODE (gjc.user_je_category_name,

               'Purchase Invoices', get_inv_det.dist_description,

               ''

              ) dist_line_description,

       gcc.segment1 le_code,

       gl_flexfields_pkg.get_description_sql

                                           (gcc.chart_of_accounts_id,

                                            1,

                                            gcc.segment1

                                           ) le_name,

       gcc.segment2 cc_code,

       gl_flexfields_pkg.get_description_sql

                                           (gcc.chart_of_accounts_id,

                                            2,

                                            gcc.segment2

                                           ) cc_name,

       gcc.segment3 acct_code,

       gl_flexfields_pkg.get_description_sql

                                         (gcc.chart_of_accounts_id,

                                          3,

                                          gcc.segment3

                                         ) acct_name,

       gcc.segment4 service_type_code,

       gl_flexfields_pkg.get_description_sql

                                 (gcc.chart_of_accounts_id,

                                  4,

                                  gcc.segment4

                                 ) service_type_name,

       gcc.segment5 div_code,

       gl_flexfields_pkg.get_description_sql

                                          (gcc.chart_of_accounts_id,

                                           5,

                                           gcc.segment5

                                          ) div_name,

       gcc.segment6 ic_code,

       gl_flexfields_pkg.get_description_sql

                                           (gcc.chart_of_accounts_id,

                                            6,

                                            gcc.segment6

                                           ) ic_name,

       gcc.segment7 future_code,

       gl_flexfields_pkg.get_description_sql

                                       (gcc.chart_of_accounts_id,

                                        7,

                                        gcc.segment7

                                       ) future_name,

       gcc.segment8,

       DECODE

          (gcc.segment8,

           NULL, NULL,

           gl_flexfields_pkg.get_sd_description_sql (gcc.chart_of_accounts_id,

                                                     1,

                                                     8,

                                                     gcc.segment8

                                                    )

          ) segment8_name,

       NVL (jel.currency_code, gl.currency_code) currency_code,

       DECODE

          (NVL (jel.currency_code, gl.currency_code),

           gl.currency_code, NULL,

           TO_CHAR (DECODE (gjc.user_je_category_name,

                            'Purchase Invoices', get_inv_det.currency_conversion_date,

                            jel.currency_conversion_date

                           ),

                    'dd-Mon-yy',

                    'NLS_DATE_LANGUAGE=AMERICAN'

                   )

          ) currency_conversion_date,

       DECODE (NVL (jel.currency_code, gl.currency_code),

               gl.currency_code, NULL,

               DECODE (gjc.user_je_category_name,

                       'Purchase Invoices', get_inv_det.curr_conv_rate,

                       jel.currency_conversion_rate

                      )

              ) currency_conversion_rate,

       DECODE (gjc.user_je_category_name,

               'Purchase Invoices', get_inv_det.entered_net,

               ((NVL (jel.entered_dr, 0)) - (NVL (jel.entered_cr, 0))

               )

              ) entered_net,

       DECODE (gjc.user_je_category_name,

               'Purchase Invoices', get_inv_det.accounted_net,

               ((NVL (jel.accounted_dr, 0)) - (NVL (jel.accounted_cr, 0))

               )

              ) accounted_net,

       DECODE (sign_invoice_amount,

               SIGN (DECODE (gjc.user_je_category_name,

                             'Purchase Invoices', get_inv_det.entered_net,

                             (  (NVL (jel.entered_dr, 0))

                              - (NVL (jel.entered_cr, 0))

                             )

                            )

                    ), DECODE (gjc.user_je_category_name,

                               'Purchase Invoices', get_inv_det.entered_net,

                               (  (NVL (jel.entered_dr, 0))

                                - (NVL (jel.entered_cr, 0))

                               )

                              ),

               0

              ) ap_entered_net,

       (jel.accounted_cr), (jel.accounted_dr), (jel.entered_cr),

       (jel.entered_dr), get_inv_det.vendor_site_country,

       get_inv_det.vendor_site_code, h.doc_sequence_id, h.je_header_id,

       jel.period_name, jel.je_line_num,

       LPAD (jel.je_line_num, 10, '0') lpad_je_line_num,

       jel.code_combination_id, get_inv_det.invoice_id,

       get_inv_det.vendor_number,

       (SELECT ffv.attribute2

          FROM fnd_flex_values_vl ffv,

               fnd_flex_value_sets ffvs

         WHERE 1 = 1

           AND ffv.flex_value_set_id = ffvs.flex_value_set_id

           AND ffv.flex_value = gcc.segment1

           AND ffvs.flex_value_set_name = 'IFS Legal Entity') le_short_name,

       get_inv_det.ap_inv_amount, get_inv_det.ap_inv_amount_paid,

       get_inv_det.ap_inv_status,

       TO_CHAR

          (LEAST (NVL (get_inv_det.ap_inv_payment_date,

                       get_inv_det.ap_inv_prepayment_date

                      ),

                  NVL (get_inv_det.ap_inv_prepayment_date,

                       get_inv_det.ap_inv_payment_date

                      )

                 ),

           'dd-Mon-yy',

           'NLS_DATE_LANGUAGE=AMERICAN'

          ) ap_inv_payment_date,

       TO_CHAR (get_inv_det.ap_inv_cleared_date,

                'dd-Mon-yy',

                'NLS_DATE_LANGUAGE=AMERICAN'

               ) ap_inv_cleared_date,

--,get_inv_det.project_name   --added by anu

--   ,get_inv_det.project_number

      get_inv_det.project_number,

   get_inv_det.project_name,

   get_inv_det.task_number,

   get_inv_det.class_code opex_type,

     get_inv_det.PROJECT_ID,

   get_inv_det.Purchase_order,

   get_inv_det.line_num Purchase_order_line,

   --get_inv_det.Payment_ID

   get_inv_det.PAYMENT_NUM,

   get_inv_det.PROJECT_SET,

   get_inv_det.transaction_number,

   get_inv_det.pjc_project_id

  FROM gl_code_combinations gcc,

       gl_ledgers gl,

       gl_je_batches b,

       gl_je_headers h,

       gl_je_lines jel,

       gl_je_lines_recon rec,

       gl_je_sources_tl gjs,

       gl_je_categories_tl gjc,

       per_users pu,

       per_person_names_f ppnf,

       get_ap_inv_det get_inv_det

 WHERE 1 = 1

   AND gl.ledger_id = h.ledger_id

   AND h.je_batch_id + 0 = b.je_batch_id + 0

   AND (h.display_alc_journal_flag = 'Y' OR h.display_alc_journal_flag IS NULL

       )

   AND gcc.code_combination_id(+) = jel.code_combination_id

   AND rec.je_header_id(+) = jel.je_header_id

   AND rec.je_line_num(+) = jel.je_line_num

   AND (jel.je_header_id = h.je_header_id)

   AND h.ledger_id in (:p_ledger_id)

   --AND h.ledger_id in nvl(:p_ledger_id,h.ledger_id) --added y chary

   --AND h.ledger_id in (:p_ledger_id) OR 'All' IN (: p_ledger_id || 'All') --chary

   AND (h.actual_flag = 'A')

   AND (h.created_by = pu.username(+))

   AND (pu.person_id = ppnf.person_id(+))

   AND (TRUNC (SYSDATE) BETWEEN ppnf.effective_start_date(+) AND ppnf.effective_end_date(+))

   AND (ppnf.name_type(+) = 'GLOBAL')

   AND (gjs.je_source_name = h.je_source)

   AND (gjc.je_category_name = h.je_category)

   AND (gjs.LANGUAGE = 'US')

   AND (gjc.LANGUAGE = 'US')

   AND ((    TO_CHAR (TO_DATE (jel.period_name,

                               'Mon-yy',

                               'NLS_DATE_LANGUAGE=AMERICAN'

                              ),

                      'yyyymm'

                     ) >= :p_period_entered_from

         AND TO_CHAR (TO_DATE (jel.period_name,

                               'Mon-yy',

                               'NLS_DATE_LANGUAGE=AMERICAN'

                              ),

                      'yyyymm'

                     ) <= :p_period_entered_to

        )

       )

   --AND to_char(jel.period_name) >= :p_period_entered_from 

   --AND to_char(jel.period_name) <= :p_period_entered_to 

  /* AND ((    TO_CHAR (TO_DATE (jel.period_name,

                               'Mon-yy',

                               'NLS_DATE_LANGUAGE=AMERICAN'

                              ),

                      'yyyymm'

                     ) > = (select TO_CHAR (TO_DATE (:p_period_entered_from, 'Mon-yy', 'NLS_DATE_LANGUAGE=AMERICAN'), 'yyyymm') from dual)

         AND TO_CHAR (TO_DATE (jel.period_name,

                               'Mon-yy',

                               'NLS_DATE_LANGUAGE=AMERICAN'

                              ),

                      'yyyymm'

                     ) <= (select TO_CHAR (TO_DATE (:p_period_entered_to, 'Mon-yy', 'NLS_DATE_LANGUAGE=AMERICAN'), 'yyyymm') from dual)

        )

       )*/

   

   

  --AND (h.status in (:p_journal_status) OR 'All' IN (:p_journal_status || 'All'))

  AND h.status in (:p_journal_status)

  --AND (jel.currency_code  in :p_currency_code or :p_currency_code is null)

  AND (jel.currency_code  in (:p_currency_code) OR 'All' IN (:p_currency_code||'All'))

  AND (h.doc_sequence_value =:p_doc_sequence_value or :p_doc_sequence_value is null)

   AND (h.doc_sequence_value >= :p_from_doc_sequence_value or :p_from_doc_sequence_value is null) and (h.doc_sequence_value <= :p_to_doc_sequence_value or :p_to_doc_sequence_value is null)

  --AND (h.doc_sequence_value between nvl(:p_from_doc_sequence_value,doc_sequence_value) and nvl(:p_to_doc_sequence_value,doc_sequence_value))

  --AND get_inv_det.project_number in nvl(:p_project_num,get_inv_det.project_number)

  AND (get_inv_det.project_number  in (:p_project_num) OR 'All' IN (:p_project_num||'All'))

 -- AND ((gcc.segment1||'-'||gcc.segment2||'-'||gcc.segment3||'-'||gcc.segment4||'-'||gcc.segment5||'-'||gcc.segment6)

 -- IN

  --(:p_from_account) or :p_from_account is null)

  --and (gcc.code_combination_id  IN  (:p_from_account) or LEAST(:p_from_account) is null)

  AND (gcc.segment1 not in (:p_excluding_le) OR 'All' IN (:p_excluding_le||'All'))

  AND (gcc.segment1  in (:p_Including_le) OR 'All' IN (:p_Including_le||'All'))

  AND (gcc.segment3 >= nvl(:p_from_account,gcc.segment3) or :p_from_account is null) AND (gcc.segment3 <= nvl(:p_to_account,gcc.segment3) or :p_to_account is null)

  AND (gcc.segment4  in (:p_service_from) OR 'All' IN (:p_service_from||'All'))

  AND (gcc.segment5  in (:p_div_from) OR 'All' IN (:p_div_from||'All'))

  AND (gcc.segment6  in (:p_ic_from) OR 'All' IN (:p_ic_from||'All'))

  AND (gcc.segment7  in (:p_future_from) OR 'All' IN (:p_future_from||'All'))

  --AND (gcc.segment4,10,'0') >=lpad(:p_service_from,10,'0') or :p_service_from is null) and (lpad(gcc.segment4,10,'0') <=lpad(:p_service_to,10,'0') or :p_service_to is null))

  --AND ((lpad(gcc.segment5,10,'0') >=lpad(:p_div_from,10,'0') or :p_div_from is null) and (lpad(gcc.segment5,10,'0') <=lpad(:p_div_to,10,'0') or :p_div_to is null))

  --AND ((lpad(gcc.segment6,10,'0') >=lpad(:p_ic_from,10,'0') or :p_ic_from is null) and (lpad(gcc.segment6,10,'0') <=lpad(:p_ic_to,10,'0') or :p_ic_to is null))

  --AND ((lpad(gcc.segment7,10,'0') >=lpad(:p_future_from,10,'0') or :p_future_from is null) and (lpad(gcc.segment7,10,'0') <=lpad(:p_future_to,10,'0') or :p_future_to is null))

  --AND gcc.segment3 <=(nvl(:p_to_account,gcc.segment3) or p_to_account is null)

  --AND (gcc.segment1 between SUBSTR(nvl(:p_from_account,gcc.segment1),1,3) and SUBSTR(nvl(:p_to_account,gcc.segment1),1,3))

  --AND (gcc.segment2 between SUBSTR(nvl(:p_from_account,gcc.segment2),5,5) and SUBSTR(nvl(:p_to_account,gcc.segment2),5,5))

 -- AND (gcc.segment3 between SUBSTR(nvl(:p_from_account,gcc.segment3),11,6) and SUBSTR(nvl(:p_to_account,gcc.segment3),11,6))

 -- AND (gcc.segment4 between SUBSTR(nvl(:p_from_account,gcc.segment4),18,4) and SUBSTR(nvl(:p_to_account,gcc.segment4),18,4))

  --AND (gcc.segment5 between SUBSTR(nvl(:p_from_account,gcc.segment5),23,2) and SUBSTR(nvl(:p_to_account,gcc.segment5),23,2))

 -- AND (gcc.segment6 between SUBSTR(nvl(:p_from_account,gcc.segment6),26,3) and SUBSTR(nvl(:p_to_account,gcc.segment6),26,3))

 /*AND (gcc.segment1||''||gcc.segment2||''||gcc.segment3||''||gcc.segment4||''||gcc.segment5||''||gcc.segment6) BETWEEN

 (NVL(replace(:p_from_account,'-',''),replace(gcc.segment1||''||gcc.segment2||''||gcc.segment3||''||gcc.segment4||''||gcc.segment5||''||gcc.segment6,'-',''))) and 

 (NVL(replace(:p_to_account,'-',''),replace(gcc.segment1||''||gcc.segment2||''||gcc.segment3||''||gcc.segment4||''||gcc.segment5||''||gcc.segment6,'-','')))*/

/*(SUBSTR(nvl(:p_from_account,gcc.segment1),1,3)||''||SUBSTR(nvl(:p_from_account,gcc.segment2),5,5)||''||SUBSTR(nvl(:p_from_account,gcc.segment3),11,6)||''||

SUBSTR(nvl(:p_from_account,gcc.segment4),18,4)||''||SUBSTR(nvl(:p_from_account,gcc.segment5),23,2)||''||SUBSTR(nvl(:p_from_account,gcc.segment6),26,3))

AND 

(SUBSTR(nvl(:p_to_account,gcc.segment1),1,3)||''||SUBSTR(nvl(:p_to_account,gcc.segment2),5,5)||''||SUBSTR(nvl(:p_to_account,gcc.segment3),11,6)||''||

SUBSTR(nvl(:p_to_account,gcc.segment4),18,4)||''||SUBSTR(nvl(:p_to_account,gcc.segment5),23,2)||''||SUBSTR(nvl(:p_to_account,gcc.segment6),26,3))

 /*AND ((lpad(gcc.segment1,10,'0') >=lpad(SUBSTR(nvl(:p_from_account,gcc.segment1),1,3),10,'0') or  SUBSTR(nvl(:p_from_account,gcc.segment1),1,3) is null) and (lpad(gcc.segment1,10,'0') <=lpad(SUBSTR(nvl(:p_to_account,gcc.segment1),1,3),10,'0') or SUBSTR(nvl(:p_to_account,gcc.segment1),1,3) is null))

 AND ((lpad(gcc.segment2,10,'0') >=lpad(SUBSTR(nvl(:p_from_account,gcc.segment2),5,5),10,'0') or  SUBSTR(nvl(:p_from_account,gcc.segment2),5,5) is null) and (lpad(gcc.segment2,10,'0') <=lpad(SUBSTR(nvl(:p_to_account,gcc.segment2),5,5),10,'0') or SUBSTR(nvl(:p_to_account,gcc.segment2),5,5) is null))

 AND ((lpad(gcc.segment3,10,'0') >=lpad(SUBSTR(nvl(:p_from_account,gcc.segment3),11,6),10,'0') or SUBSTR(nvl(:p_from_account,gcc.segment3),11,6) is null) and (lpad(gcc.segment3,10,'0') <=lpad(SUBSTR(nvl(:p_to_account,gcc.segment3),11,6),10,'0') or SUBSTR(nvl(:p_to_account,gcc.segment3),11,6) is null))

 AND ((lpad(gcc.segment4,10,'0') >=lpad(SUBSTR(nvl(:p_from_account,gcc.segment4),18,4),10,'0') or SUBSTR(nvl(:p_from_account,gcc.segment4),18,4) is null) and (lpad(gcc.segment4,10,'0') <=lpad(SUBSTR(nvl(:p_to_account,gcc.segment4),18,4),10,'0') or SUBSTR(nvl(:p_to_account,gcc.segment4),18,4) is null))

 AND ((lpad(gcc.segment5,10,'0') >=lpad(SUBSTR(nvl(:p_from_account,gcc.segment5),23,2),10,'0') or SUBSTR(nvl(:p_from_account,gcc.segment5),23,2) is null) and (lpad(gcc.segment5,10,'0') <=lpad(SUBSTR(nvl(:p_to_account,gcc.segment5),23,2),10,'0') or SUBSTR(nvl(:p_to_account,gcc.segment5),23,2) is null))

 AND ((lpad(gcc.segment6,10,'0') >=lpad(SUBSTR(nvl(:p_from_account,gcc.segment6),26,3),10,'0') or SUBSTR(nvl(:p_from_account,gcc.segment6),26,3) is null) and (lpad(gcc.segment6,10,'0') <=lpad(SUBSTR(nvl(:p_to_account,gcc.segment6),26,3),10,'0') or SUBSTR(nvl(:p_to_account,gcc.segment6),26,3) is null))*/

  /* AND ((lpad(gcc.segment1,10,'0') >=lpad(:p_le_from,10,'0') or :p_le_from is null) and (lpad(gcc.segment1,10,'0') <=lpad(:p_le_to,10,'0') or :p_le_to is null))

   AND ((lpad(gcc.segment2,10,'0') >=lpad(:p_cc_from,10,'0') or :p_cc_from is null) and (lpad(gcc.segment2,10,'0') <=lpad(:p_cc_to,10,'0') or :p_cc_to is null))

  AND (gcc.segment1 not in (:p_excluding_le) OR 'All' IN (:p_excluding_le||'All'))

   AND ((lpad(gcc.segment3,10,'0') >=lpad(:p_account_from,10,'0') or :p_account_from is null) and (lpad(gcc.segment3,10,'0') <=lpad(:p_account_to,10,'0') or :p_account_to is null))

  AND ((lpad(gcc.segment4,10,'0') >=lpad(:p_service_from,10,'0') or :p_service_from is null) and (lpad(gcc.segment4,10,'0') <=lpad(:p_service_to,10,'0') or :p_service_to is null))

  AND ((lpad(gcc.segment5,10,'0') >=lpad(:p_div_from,10,'0') or :p_div_from is null) and (lpad(gcc.segment5,10,'0') <=lpad(:p_div_to,10,'0') or :p_div_to is null))

  AND ((lpad(gcc.segment6,10,'0') >=lpad(:p_ic_from,10,'0') or :p_ic_from is null) and (lpad(gcc.segment6,10,'0') <=lpad(:p_ic_to,10,'0') or :p_ic_to is null))

  AND ((lpad(gcc.segment7,10,'0') >=lpad(:p_future_from,10,'0') or :p_future_from is null) and (lpad(gcc.segment7,10,'0') <=lpad(:p_future_to,10,'0') or :p_future_to is null))

  */ AND h.je_header_id = get_inv_det.je_header_id(+)

   AND jel.je_line_num = get_inv_det.je_line_num(+)

   and gjs.user_je_source_name='Projects'

Oracle Fusion Query for Projects, Subledger and Journals Tables

SELECT DISTINCT XTE.entity_id,
                XAL.gl_sl_link_id,
                XAL.gl_sl_link_table,
                xte.transaction_number,
                ppab.segment1,
                ppat.name ei_project_name
FROM
/*  AP_CHECKS_ALL AC
, */
 xla_transaction_entities XTE,
     xla_ae_headers XAH,
     xla_ae_lines XAL,
     xla_distribution_links xda,
     pjc_cost_dist_lines_all pcdl,
     pjf_projects_all_b ppab,
     pjc_exp_items_all peia,
     pjf_projects_all_tl ppat,
     gl_import_references GLIR,
     gl_je_lines GJL,
     gl_je_headers GJH,
     gl_je_batches GJB
WHERE  1 = 1
       AND GJH.je_header_id = GJL.je_header_id
       --AND GJH.JE_SOURCE = 'Projects'
       AND GJB.je_batch_id = GLIR.je_batch_id
       AND GLIR.je_header_id = GJL.je_header_id
       AND GLIR.je_line_num = GJL.je_line_num
       AND GJB.je_batch_id = GJH.je_batch_id
       AND XAL.gl_sl_link_table = GLIR.gl_sl_link_table
       AND XAL.gl_sl_link_id = GLIR.gl_sl_link_id
       AND XAH.ae_header_id = XAL.ae_header_id
       AND XAH.entity_id = XTE.entity_id
       AND pcdl.acct_event_id = xda.event_id(+)
       AND pcdl.expenditure_item_id = xda.source_distribution_id_num_1(+)
       AND pcdl.line_num = xda.source_distribution_id_num_2(+)
       AND ( xda.rounding_class_code NOT LIKE '%CLEARING'
              OR xda.rounding_class_code IS NULL )
       AND xda.ae_header_id = xal.ae_header_id(+)
       AND xda.ae_line_num = xal.ae_line_num(+)
       AND peia.expenditure_item_id = pcdl.expenditure_item_id
       AND peia.project_id = ppab.project_id
       AND ppab.project_id = ppat.project_id 

Oralce fusion Query to Get Project Details for Subledger Tables

 PA - project revenue

exception
querySELECT pcdl.prvdr_gl_period_name          ei_latest_gl_period_name,
       gcc.segment1                       r_company,
       peia.revenue_recognized_flag       ei_revenue_distributed_flag,
       ppat.NAME                          ei_project_name,
       ppab.segment1                      ei_project_number,
       pet.expenditure_type_name          ei_expenditure_type,
       pec.expenditure_category_name      ei_expenditure_category,
       ppn.full_name                      ei_employee_name,
       Trunc (peia.expenditure_item_date) ei_expenditure_item_date,
       peia.receipt_currency_code         ei_receipt_currency_code,
       peia.project_currency_code         ei_project_currency_code,
       hr.NAME                            ei_expenditure_org_name,
       op.NAME                            ei_prvdr_org_name,
       hr1.NAME                           project_owning_org,
       CASE
              WHEN peia.bill_trans_curr_rev_amt = 0 THEN 'N'
              ELSE 'Y'
       END billed_flag,
       ptv.task_number,
       (
              SELECT message_text
              FROM   fnd_messages
              WHERE  message_name = pe.error_code) rejection_code,
       pcdl.project_raw_cost                       ei_project_raw_revenue,
       prd.project_curr_revenue_amt                r_project_revenue_amount,
       pcdl.quantity                               ei_quantity,
       prd.bill_rate                               ei_bill_rate,
       peia.expenditure_item_id                    transaction_number,
       peia.billable_flag,
       (
              SELECT flv.meaning
              FROM   fnd_lookup_values flv
              WHERE  flv.lookup_type = 'PJB_EVT_INVOICED_FLAG'
              AND    lookup_code = peia.invoiced_flag) invoice_status,
       (
              SELECT flv1.meaning
              FROM   fnd_lookup_values flv1
              WHERE  flv1.lookup_type = 'PJB_EVT_REVENUE_RECOGNZD'
              AND    flv1.lookup_code = peia.revenue_recognized_flag) revenue_status,
       (
              SELECT pj.NAME
              FROM   per_jobs pj
              WHERE  pj.job_id = peia.person_job_id) employee_job,
       peia.unit_of_measure
FROM   pjc_exp_items_all peia,
       pjf_exp_types_vl pet,
       pjf_tasks_v ptv,
       pjf_projects_all_b ppab,
       pjf_projects_all_tl ppat,
       hr_all_organization_units hr,
       hr_all_organization_units hr1,
       hr_operating_units op,
       pjc_cost_dist_lines_all pcdl,
       pjf_exp_categories_tl pec,
       gl_code_combinations gcc,
       per_person_names_f ppn,
       pjb_rev_distributions prd,
       pjb_errors pe,
       xla_distribution_links xda,
       xla_ae_lines xal
WHERE  pet.expenditure_type_id = peia.expenditure_type_id
AND    peia.revenue_exception_flag = 'E'
AND    pcdl.acct_source_code <> 'AP_INV'
AND    peia.task_id = ptv.task_id
AND    peia.project_id = ppab.project_id
AND    ppab.project_id = ppat.project_id
AND    Nvl (peia.override_to_organization_id, peia.incurred_by_organization_id) = hr.organization_id
AND    hr1.organization_id = ppab.carrying_out_organization_id
AND    peia.org_id = op.organization_id
AND    peia.expenditure_item_id = pcdl.expenditure_item_id
AND    pcdl.line_num_reversed IS NULL
AND    pcdl.reversed_flag IS NULL
AND    prd.line_num_reversed IS NULL
AND    prd.reversed_flag IS NULL
AND    pcdl.acct_event_id = xda.event_id(+)
AND    pcdl.expenditure_item_id = xda.source_distribution_id_num_1(+)
AND    pcdl.line_num = xda.source_distribution_id_num_2(+)
AND    (
              xda.rounding_class_code NOT LIKE '%CLEARING'
       OR     xda.rounding_class_code IS NULL )
AND    xda.ae_header_id = xal.ae_header_id(+)
AND    xda.ae_line_num = xal.ae_line_num(+)
AND    gcc.code_combination_id = nvl (nvl (pcdl.raw_cost_dr_ccid, pcdl.raw_cost_cr_ccid), xal.code_combination_id )
AND    pec.expenditure_category_id = pet.expenditure_category_id
AND    ppn.person_id = peia.incurred_by_person_id
AND    sysdate BETWEEN nvl (ppn.effective_start_date, sysdate - 1) AND    nvl (ppn.effective_end_date, sysdate + 1)
AND    ppn.name_type = 'GLOBAL'
AND    peia.expenditure_item_id = prd.transaction_id(+)
AND    pe.expenditure_item_id = peia.expenditure_item_id
AND    ppab.project_status_code = 'ACTIVE'
AND    EXISTS
       (
              SELECT 1
              FROM   okc_k_headers_all_b okh
              WHERE  okh.id = pe.contract_id
              AND    okh.sts_code = 'ACTIVE')
AND    nvl (net_zero_adjustment_flag, 'N') = 'N'
AND    peia.revenue_recognized_flag IN ('P',
                                        'U')
AND    peia.billable_flag = 'Y'
AND    pe.request_id IN
       (
              SELECT max (pe1.request_id)
              FROM   pjb_errors pe1
              WHERE  pe1.expenditure_item_id = pe.expenditure_item_id
              AND    pe1.erroring_process = 'REVENUE_GEN')
UNION ALL
SELECT pcdl.prvdr_gl_period_name          ei_latest_gl_period_name,
       gcc.segment1                       r_company,
       peia.revenue_recognized_flag       ei_revenue_distributed_flag,
       ppat.NAME                          ei_project_name,
       ppab.segment1                      ei_project_number,
       pet.expenditure_type_name          ei_expenditure_type,
       pec.expenditure_category_name      ei_expenditure_category,
       ppn.full_name                      ei_employee_name,
       trunc (peia.expenditure_item_date) ei_expenditure_item_date,
       peia.receipt_currency_code         ei_receipt_currency_code,
       peia.project_currency_code         ei_project_currency_code,
       hr.NAME                            ei_expenditure_org_name,
       op.NAME                            ei_prvdr_org_name,
       hr1.NAME                           project_owning_org,
       CASE
              WHEN peia.bill_trans_curr_rev_amt = 0 THEN 'N'
              ELSE 'Y'
       END billed_flag,
       ptv.task_number,
       (
              SELECT message_text
              FROM   fnd_messages
              WHERE  message_name = pe.error_code) rejection_code,
       pcdl.project_raw_cost                       ei_project_raw_revenue,
       --peia.project_curr_rev_amt
       prd.project_curr_revenue_amt r_project_revenue_amount,
       pcdl.quantity                ei_quantity,
       prd.bill_rate                ei_bill_rate,
       peia.expenditure_item_id     transaction_number,
       peia.billable_flag,
       (
              SELECT flv.meaning
              FROM   fnd_lookup_values flv
              WHERE  flv.lookup_type = 'PJB_EVT_INVOICED_FLAG'
              AND    lookup_code = peia.invoiced_flag) invoice_status,
       (
              SELECT flv1.meaning
              FROM   fnd_lookup_values flv1
              WHERE  flv1.lookup_type = 'PJB_EVT_REVENUE_RECOGNZD'
              AND    flv1.lookup_code = peia.revenue_recognized_flag) revenue_status,
       (
              SELECT pj.NAME
              FROM   per_jobs pj
              WHERE  pj.job_id = peia.person_job_id) employee_job,
       peia.unit_of_measure
FROM   pjc_exp_items_all peia,
       pjf_exp_types_vl pet,
       pjf_tasks_v ptv,
       pjf_projects_all_b ppab,
       pjf_projects_all_tl ppat,
       hr_all_organization_units hr,
       hr_all_organization_units hr1,
       hr_operating_units op,
       pjc_cost_dist_lines_all pcdl,
       pjf_exp_categories_tl pec,
       gl_code_combinations gcc,
       per_person_names_f ppn,
       pjb_rev_distributions prd,
       pjb_errors pe,
       xla_distribution_links xda,
       xla_ae_lines xal,
       ap_invoice_distributions_all apd
WHERE  pet.expenditure_type_id = peia.expenditure_type_id
AND    peia.revenue_exception_flag = 'E'
AND    apd.invoice_distribution_id = peia.original_dist_id
AND    pcdl.acct_source_code = 'AP_INV'
AND    peia.task_id = ptv.task_id
AND    peia.project_id = ppab.project_id
AND    ppab.project_id = ppat.project_id
AND    nvl (peia.override_to_organization_id, peia.incurred_by_organization_id) = hr.organization_id
AND    hr1.organization_id = ppab.carrying_out_organization_id
AND    peia.org_id = op.organization_id
AND    peia.expenditure_item_id = pcdl.expenditure_item_id
AND    pcdl.line_num_reversed IS NULL
AND    pcdl.reversed_flag IS NULL
AND    prd.line_num_reversed IS NULL
AND    prd.reversed_flag IS NULL
AND    pcdl.acct_event_id = xda.event_id(+)
AND    pcdl.expenditure_item_id = xda.source_distribution_id_num_1(+)
AND    pcdl.line_num = xda.source_distribution_id_num_2(+)
AND    (
              xda.rounding_class_code NOT LIKE '%CLEARING'
       OR     xda.rounding_class_code IS NULL )
AND    xda.ae_header_id = xal.ae_header_id(+)
AND    xda.ae_line_num = xal.ae_line_num(+)
AND    gcc.code_combination_id = nvl (apd.dist_code_combination_id, xal.code_combination_id)
AND    pec.expenditure_category_id = pet.expenditure_category_id
AND    ppn.person_id = peia.incurred_by_person_id
AND    sysdate BETWEEN nvl (ppn.effective_start_date, sysdate - 1) AND    nvl (ppn.effective_end_date, sysdate + 1)
AND    ppn.name_type = 'GLOBAL'
AND    peia.expenditure_item_id = prd.transaction_id(+)
AND    pe.expenditure_item_id = peia.expenditure_item_id
AND    ppab.project_status_code = 'ACTIVE'
AND    EXISTS
       (
              SELECT 1
              FROM   okc_k_headers_all_b okh
              WHERE  okh.id = pe.contract_id
              AND    okh.sts_code = 'ACTIVE')
AND    nvl (net_zero_adjustment_flag, 'N') = 'N'
AND    peia.revenue_recognized_flag IN ('P',
                                        'U')
AND    peia.billable_flag = 'Y'
AND    pe.request_id IN
       (
              SELECT max (pe1.request_id)
              FROM   pjb_errors pe1
              WHERE  pe1.expenditure_item_id = pe.expenditure_item_id
              AND    pe1.erroring_process = 'REVENUE_GEN')

Oracle Fusion - Cost Lines and Expenditure Item link in Projects

SELECT   ccd.transaction_id,ex.expenditure_item_id,cacat.serial_number FROM fusion.CST_INV_TRANSACTIONS cit,   fusion.cst_cost_distribution_...