Showing posts with label AR. Show all posts
Showing posts with label AR. Show all posts

Saturday, 25 March 2017

CSV FILE LOADER IN ORACLE USING PLSQL



Step # 1:
Create Database directory where you will put your CSV file in Server.

CREATE OR REPLACE DIRECTORY MY_DIR AS '/U03/.......';
-------------------------------------------------------------------------------------------
 

Step # 2;
Create 3 Tables According to your CSV Columns:
1. CSV Data Table
2. Bad Log/Error Table
3. History Table


CREATE TABLE CSV_AR_INV_TABLE
(
LEGAL_ENTITY_NAME                   VARCHAR2(100),
INVOICE_TYPE                                  VARCHAR2(100),
CUST_TRX_TYPE_NAME               VARCHAR2(100),
CURRENCY_CODE                            VARCHAR2(100),
TRX_DATE                                           DATE,
CONVERSION_RATE                       NUMBER,
PAYMENT_TERM                             VARCHAR2(100),
SALES_PERSON_NAME                                 VARCHAR2(100),
BILL_TO_CUSTOMER_NUMBER VARCHAR2(100),
BILL_TO_CUSTOMER_NAME      VARCHAR2(100),
BILL_TO_CUSTOMER_SITE           VARCHAR2(100),
SHIP_TO_CUSTOMER_NUMBER VARCHAR2(100),
SHIP_TO_CUSTOMER_NAME     VARCHAR2(100),
SHIP_TO_CUSTOMER_SITE         VARCHAR2(100),
LINE_NO                                              NUMBER,
LINE_TYPE                                           VARCHAR2(100),
LINE_DESCRIPTION                         VARCHAR2(100),
QUANTITY                                           NUMBER,
UNIT_SELLING_PRICE                    NUMBER,
AMOUNT                                            NUMBER,
CRM_INVOICE_NO                         VARCHAR2(100),
GL_CODE                                             VARCHAR2(100),
STATUS                                                VARCHAR2(100)
);
CREATE TABLE CSV_AR_INV_LOADER_BADLOG
(
TABLE_NAME VARCHAR2(200),
LINE_NUMBER NUMBER,
ERRM VARCHAR2(4000),
DATA VARCHAR2(4000),
ERROR_DATE TIMESTAMP(6)
);

CREATE TABLE CSV_AR_INV_LOADER_HIST
(
FILENAME VARCHAR2(200),
TABLE_NAME VARCHAR2(200),
NUM_OF_REC NUMBER,
IMPORT_DATE DATE
);

------------------------------------------------------------------------

Step # 3
Create Function to Read and Load CSV Data From Server File Location.

CREATE FUNCTION CSV_AR_LOADER_FUNC
      ( P_TABLE              IN VARCHAR2,
        P_DIR                IN VARCHAR2 DEFAULT 'MY_DIR',
        P_FILENAME           IN VARCHAR2,
        P_IGNORE_HEADERLINES IN INTEGER DEFAULT 1,
        P_DELIMITER          IN VARCHAR2 DEFAULT ',',
        P_OPTIONAL_ENCLOSED  IN VARCHAR2 DEFAULT '"')
    RETURN VARCHAR2 IS
    /***************************************************************************
    -- PROCEDURE LOAD_CSV
    -- PURPOSE: This Procedure read the data from a CSV file.
    -- And load it into the target oracle table.
    -- Finally it renames the source file with date.
    -- P_FILENAME -- The name of the flat file(a text file)
    -- P_DIRECTORY -- Name of the directory where the file is been placed.
    -- Note: The grant has to be given for the user to the directory
    -- before executing the function
    -- P_IGNORE_HEADERLINES: -- Pass the value as '1' to ignore importing headers.
    -- P_DELIMITER -- By default the delimiter is used as ','
    -- As we are using CSV file to load the data into oracle
    -- P_OPTIONAL_ENCLOSED -- By default the optionally enclosed is used as '"'
    -- As we are using CSV file to load the data into oracle
    -- AUTHOR: M WAQAS KHAN
    -- Date : 24 FEB, 2017
    **************************************************************************/
    l_input     utl_file.file_type;
    l_theCursor integer default dbms_sql.open_cursor;
    l_lastLine  varchar2(4000);
    l_cnames    varchar2(4000);
    l_bindvars  varchar2(4000);
    l_status    integer;
    l_cnt       number default 0;
    l_rowCount  number default 0;
    --l_sep       char(1) default NULL;
    L_ERRMSG varchar2(4000);
    V_EOF    BOOLEAN := false;
    L_RES    VARCHAR2(100) := 'SUCCESS';
    l_error exception;
  begin
 
    DELETE FROM CSV_AR_INV_TABLE;
    commit;
    delete from CSV_AR_INV_LOADER_BADLOG;
    commit;
 
    l_cnt := 1;
    for TAB_COLUMNS in (select column_name, data_type
                          from user_tab_columns
                         where table_name = p_table
                         order by column_id) loop
      l_cnames   := l_cnames || tab_columns.column_name || ',';
      l_bindvars := l_bindvars || case
                      when tab_columns.data_type in ('DATE', 'TIMESTAMP(6)') then
                      --'to_date(:b' || l_cnt || ',''YYYY-MM-DD HH24:MI:SS''),'
                       'to_date(:b' || l_cnt || ',''MM-DD-YYYY HH24:MI:SS''),'
                      else
                       ':b' || l_cnt || ','
                    end;
      l_cnt      := l_cnt + 1;
      --dbms_output.put_line(l_bindvars );
   
    end loop;
 
    begin
      l_cnames   := rtrim(l_cnames, ',');
      L_BINDVARS := RTRIM(L_BINDVARS, ',');
      /* Modified By Muhamamd Waqas Khan
        Date : 15 March 016
      */
      BEGIN
        L_INPUT := UTL_FILE.FOPEN(P_DIR, P_FILENAME, 'r');
      exception
        WHEN UTL_FILE.INVALID_OPERATION THEN
          raise l_error;
      END;
   
      ---dbms_output.put_line(l_bindvars || ' - ' || l_cnames);
   
      IF p_ignore_headerlines > 0 THEN
        BEGIN
          FOR i IN 1 .. p_ignore_headerlines LOOP
            UTL_FILE.get_line(l_input, l_lastLine);
          END LOOP;
        EXCEPTION
          WHEN NO_DATA_FOUND THEN
            v_eof := TRUE;
        end;
      END IF;
      if not v_eof then
        dbms_sql.parse(l_theCursor,
                       'insert into ' || p_table || '(' || l_cnames ||
                       ') values (' || l_bindvars || ')',
                       dbms_sql.native);
     
        loop
          begin
            utl_file.get_line(l_input, l_lastLine);
          exception
            when NO_DATA_FOUND then
              exit;
          end;
          if length(l_lastLine) > 0 then
            for i in 1 .. l_cnt - 1 LOOP
              dbms_output.put_line(ltrim(REGEXP_SUBSTR(l_lastline,
                                                       '(^|,)("[^"]*"|[^",]*)',
                                                       1,
                                                       i),
                                         p_delimiter));
           
              dbms_sql.bind_variable(l_theCursor,
                                     ':b' || i,
                                     rtrim(rtrim(ltrim(ltrim(REGEXP_SUBSTR(l_lastline,
                                                                           '(^|,)("[^"]*"|[^",]*)',
                                                                           1,
                                                                           i),
                                                             ','),
                                                       '"'),
                                                 ','),
                                           '"'));
            end loop;
            begin
              l_status := dbms_sql.execute(l_theCursor);
              -- dbms_output.put_line('Waqas:' ||l_theCursor);
              l_rowCount := l_rowCount + 1;
            exception
              when OTHERS then
                L_ERRMSG := SQLERRM;
                insert into CSV_AR_INV_LOADER_BADLOG
                  (TABLE_NAME, line_number, ERRM, data, ERROR_DATE)
                values
                  (p_table,
                   l_rowCount + 2,
                   l_errmsg,
                   l_lastLine,
                   systimestamp);
             
            end;
          end if;
        end loop;
        dbms_sql.close_cursor(l_theCursor);
        utl_file.fclose(l_input);
        commit;
      end if;
      insert into CSV_AR_INV_LOADER_HIST
        (FILENAME, TABLE_NAME, NUM_OF_REC, IMPORT_DATE)
      values
        (P_FILENAME, P_TABLE, l_rowCount, sysdate);
      UTL_FILE.FRENAME(P_DIR,
                       P_FILENAME,
                       P_DIR,
                       REPLACE(P_FILENAME,
                               '.csv',
                               '_' ||
                               TO_CHAR(SYSDATE, 'DD_MON_RRRR_HH24_MI_SS_AM') ||
                               '.csv'));
      commit;
   
    exception
      when l_error then
        L_RES := 'Either Invalid File or File Not Exists';
    end;
    RETURN L_RES;
  end CSV_AR_LOADER_FUNC;
 
----------------------------------------------------------------------------------------------------
Step # 4  
Execute Function and Enjoy !!

Thursday, 9 July 2015

AR Payment Query

select rcta.trx_number, rcta.trx_date,ra.amount_applied, ra.gl_date
        --nvl(sum(ra.amount_applied), 0)
  from ar_receivable_applications_all ra,
       ra_customer_trx_all            rcta,
       ar_payment_schedules_all       apsa
      
 where ra.applied_customer_trx_id = rcta.customer_trx_id
   and ra.applied_payment_schedule_id = apsa.payment_schedule_id
   and ra.application_type = 'CASH'
   and ra.status = 'APP'
   AND rcta.customer_trx_id = apsa.customer_trx_id
   and rcta.org_id = apsa.org_id
   and rcta.org_id = &P_ORG_ID
      -- and    ra.apply_date between to_date(&sd) and to_date(&ed)) payment,
   and ra.gl_date between to_date(&sd) and to_date(&ed)


Monday, 1 June 2015

AR Receipt Query

select --cr.RECEIPT_NUMBER,
       cr.RECEIPT_DATE R_DATE,
       cr.AMOUNT   R_AMOUNT,
       cr.CUSTOMER_RECEIPT_REFERENCE R_Check_No,
       ct.BILL_TO_CUSTOMER_ID R_CUSTOMER,
       CR.ORG_ID,
       ct.TRX_NUMBER
  from AR_CASH_RECEIPTS_ALL           cr,
       ra_customer_trx_all            ct,
       ar_receivable_applications_all app,
       ra_terms                       rt
 where /*cr.CUSTOMER_RECEIPT_REFERENCE is not null
   and */cr.STATUS = 'APP'
   and app.APPLIED_CUSTOMER_TRX_ID = ct.CUSTOMER_TRX_ID
   and app.CASH_RECEIPT_ID = cr.CASH_RECEIPT_ID
   and rt.term_id = ct.TERM_ID
--   and (upper(rt.name) = upper('CASH') OR (upper(rt.name) like 'PDC%'))
   and cr.ORG_ID = ct.ORG_ID
--and cr.ORG_ID           = 221
;

Monday, 25 May 2015

Customer Ledger/ Debtor Ledger

SELECT   ORG_ID,
                          CUSTOMER_NAME,
                          CUSTOMER_NUMBER,
                          CUSTOMER_ID,
                          TRX_DATE,
                          TRX_NUMBER,
                          CUSTOMER_TRX_ID,
                          VOUCHER_NO,
                          DUE_DATE,
                          AMOUNT_DR,
                          AMOUNT_CR,
                          USER_NAME,
                          EXCISE_INVOICE_NO,
                          TAX_INVOICE_NO,
                          GL_DATE,
                          CODE_COMBINATION,
                          ACCOUNT,
                          AC_DESC,
                          NAME,
                          VOC_SEQ
                   FROM   (  SELECT   HR.NAME ORG_ID,
                                      ARC.CUSTOMER_NAME,
                                      ARC.CUSTOMER_NUMBER,
                                      ARC.CUSTOMER_ID,
                                      RCT.TRX_DATE,
                                      RCT.TRX_NUMBER,
                                      RCT.CUSTOMER_TRX_ID,
                                      RCT.DOC_SEQUENCE_VALUE VOUCHER_NO,
                                      (SELECT   DUE_DATE
                                         FROM   AR_PAYMENT_SCHEDULES_ALL
                                        WHERE   CUSTOMER_TRX_ID =
                                                   RCT.CUSTOMER_TRX_ID
                                                AND ROWNUM = 1)
                                         DUE_DATE,
                                      NVL (
                                         DECODE (
                                            RCTT.TYPE,
                                            'INV',
                                            DECODE (
                                               RCT.INVOICE_CURRENCY_CODE,
                                               'INR',
                                               SUM (RCTL.AMOUNT),
                                               SUM (RCTL.AMOUNT)
                                               * RCT.EXCHANGE_RATE
                                            ),
                                            'DM',
                                            DECODE (
                                               RCT.INVOICE_CURRENCY_CODE,
                                               'INR',
                                               SUM (RCTL.AMOUNT),
                                               SUM (RCTL.AMOUNT)
                                               * RCT.EXCHANGE_RATE
                                            ),
                                            'DEP',
                                            DECODE (
                                               RCT.INVOICE_CURRENCY_CODE,
                                               'INR',
                                               SUM (RCTL.AMOUNT),
                                               SUM (RCTL.AMOUNT)
                                               * RCT.EXCHANGE_RATE
                                            )
                                         ),
                                         0
                                      )
                                         AMOUNT_DR,
                                      NVL (
                                         DECODE (
                                            RCTT.TYPE,
                                            'CM',
                                            DECODE (
                                               RCT.INVOICE_CURRENCY_CODE,
                                               'INR',
                                               ABS (SUM (RCTL.AMOUNT)),
                                               ABS (SUM (RCTL.AMOUNT))
                                               * RCT.EXCHANGE_RATE
                                            )
                                         ),
                                         0
                                      )
                                         AMOUNT_CR,
                                      FU.USER_NAME,
                                      (SELECT   JATL.EXCISE_INVOICE_NO
                                         FROM   JAI_AR_TRX_LINES JATL
                                        WHERE   JATL.CUSTOMER_TRX_ID =
                                                   RCT.CUSTOMER_TRX_ID
                                                AND ROWNUM = 1)
                                         EXCISE_INVOICE_NO,
                                      RCTL.GL_DATE,
                                      GCC.CONCATENATED_SEGMENTS CODE_COMBINATION,
                                      GCC.SEGMENT3 ACCOUNT,
                                      (SELECT   DESCRIPTION
                                         FROM   RA_CUSTOMER_TRX_LINES_ALL
                                        WHERE   CUSTOMER_TRX_ID =
                                                   RCT.CUSTOMER_TRX_ID
                                                AND ROWNUM = 1)
                                         AC_DESC,
                                      RCTT.NAME,
                                      (SELECT   NAME
                                         FROM   FND_DOCUMENT_SEQUENCES FDS
                                        WHERE   FDS.DOC_SEQUENCE_ID =
                                                   RCT.DOC_SEQUENCE_ID)
                                         VOC_SEQ,
                                      (SELECT   NVL (JOW.VAT_INVOICE_NO,
                                                     WND.ATTRIBUTE1)
                                         FROM   RA_CUSTOMER_TRX_LINES_ALL RCTL,
                                                JAI_OM_WSH_LINES_ALL JOW,
                                                WSH_NEW_DELIVERIES WND
                                        WHERE   RCTL.INTERFACE_LINE_ATTRIBUTE3 =
                                                   TO_CHAR (JOW.DELIVERY_ID)
                                                AND WND.DELIVERY_ID =
                                                      JOW.DELIVERY_ID
                                                AND RCTL.CUSTOMER_TRX_ID =
                                                      RCT.CUSTOMER_TRX_ID
                                                AND ROWNUM = 1)
                                         TAX_INVOICE_NO
                               FROM   RA_CUSTOMER_TRX_ALL RCT,
                                      RA_CUST_TRX_LINE_GL_DIST_ALL RCTL,
                                      FND_USER FU,
                                      RA_CUST_TRX_TYPES_ALL RCTT,
                                      GL_CODE_COMBINATIONS_KFV GCC,
                                      FND_FLEX_VALUES_VL FFVL,
                                      AR_CUSTOMERS ARC,
                                      HR_OPERATING_UNITS HR,
                                      HZ_CUST_ACCOUNTS HCA
                              WHERE   RCTL.CUSTOMER_TRX_ID = RCT.CUSTOMER_TRX_ID
                                      AND RCTL.ACCOUNT_CLASS = 'REC'
                                      AND FU.USER_ID = RCT.CREATED_BY
                                      AND RCTT.CUST_TRX_TYPE_ID =
                                            RCT.CUST_TRX_TYPE_ID
                                      AND GCC.CODE_COMBINATION_ID =
                                            RCTL.CODE_COMBINATION_ID
                                      AND GCC.SEGMENT3 = FFVL.FLEX_VALUE
                                      AND FFVL.FLEX_VALUE_SET_ID = 1014163
                                      AND ARC.CUSTOMER_ID =
                                            RCT.BILL_TO_CUSTOMER_ID
                                      AND RCT.ORG_ID = RCTT.ORG_ID
                                      --AND RCT.TRX_NUMBER = '84002579'
                                      AND RCT.COMPLETE_FLAG = 'Y'
                                      AND ARC.CUSTOMER_ID = HCA.CUST_ACCOUNT_ID
                                      AND TRUNC (RCTL.GL_DATE) BETWEEN P_FROM_DATE
                                                                   AND  P_TO_DATE
                                      AND ARC.CUSTOMER_ID =
                                            NVL (P_CUSTOMER_ID, ARC.CUSTOMER_ID)
                                      -- AND GCC.SEGMENT3 = NVL(:P_ACCOUNT, GCC.SEGMENT3)
                                      --AND RCT.ORG_ID = 81
                                      ---NVL(:P_ORG_ID, RCT.ORG_ID)
                                      --- AND SUBSTR(HCA.CUSTOMER_CLASS_CODE, 1,2) = NVL(:P_BUSINESS_LINE, SUBSTR(HCA.CUSTOMER_CLASS_CODE, 1,2))
                                      AND RCT.ORG_ID = HR.ORGANIZATION_ID
                                      AND NVL (ARC.CUSTOMER_CATEGORY_CODE, '~') =
                                            NVL (
                                               P_CUST_TYPE,
                                               NVL (ARC.CUSTOMER_CATEGORY_CODE,
                                                    '~')
                                            )
                           GROUP BY   ARC.CUSTOMER_NAME,
                                      ARC.CUSTOMER_NUMBER,
                                      ARC.CUSTOMER_ID,
                                      RCT.TRX_DATE,
                                      RCT.TRX_NUMBER,
                                      RCT.DOC_SEQUENCE_VALUE,
                                      RCT.CUSTOMER_TRX_ID,
                                      FU.USER_NAME,
                                      RCTL.GL_DATE,
                                      RCTT.NAME,
                                      GCC.CONCATENATED_SEGMENTS,
                                      GCC.SEGMENT3,
                                      FFVL.DESCRIPTION,
                                      RCT.INVOICE_CURRENCY_CODE,
                                      RCT.EXCHANGE_RATE,
                                      RCTT.TYPE,
                                      RCT.ORG_ID,
                                      RCT.DOC_SEQUENCE_ID,
                                      HR.NAME
                           UNION
                             SELECT   HR.NAME ORG_ID,
                                      ARC.CUSTOMER_NAME,
                                      ARC.CUSTOMER_NUMBER,
                                      ARC.CUSTOMER_ID,
                                      ACR.RECEIPT_DATE TRX_DATE,
                                      ACR.RECEIPT_NUMBER TRX_NUMBER,
                                      ACR.CASH_RECEIPT_ID CUSTOMER_TRX_ID,
                                      ACR.DOC_SEQUENCE_VALUE VOUCHER_NO,
                                      ACR.RECEIPT_DATE DUE_DATE,
                                      NVL (SUM (ADR.ACCTD_AMOUNT_CR), 0)
                                         AMOUNT_DR,
                                      NVL (SUM (ADR.ACCTD_AMOUNT_DR), 0)
                                      - NVL (
                                           (SELECT   SUM (ARA.AMOUNT_APPLIED)
                                              FROM   AR_RECEIVABLE_APPLICATIONS_V ARA
                                             WHERE   ARA.CASH_RECEIPT_ID =
                                                        ACR.CASH_RECEIPT_ID
                                                     AND ARA.TRX_NUMBER =
                                                           'Refund'),
                                           0
                                        )
                                         AMOUNT_CR,
                                      FU.USER_NAME,
                                      NULL EXCISE_INVOICE_NO,
                                      ACRH.GL_DATE GL_DATE,
                                      GCC.CONCATENATED_SEGMENTS CODE_COMBINATION,
                                      GCC.SEGMENT3 ACCOUNT,
                                      NULL                /*FFVL.DESCRIPTION*/
                                          AC_DESC,
                                      ARM.NAME NAME,
                                      (SELECT   NAME
                                         FROM   FND_DOCUMENT_SEQUENCES FDS
                                        WHERE   FDS.DOC_SEQUENCE_ID =
                                                   ACR.DOC_SEQUENCE_ID)
                                         VOC_SEQ,
                                      NULL TAX_INVOICE_NO
                               FROM   AR_CASH_RECEIPTS_ALL ACR,
                                      AR_CASH_RECEIPT_HISTORY_ALL ACRH,
                                      AR_DISTRIBUTIONS_ALL ADR,
                                      FND_USER FU,
                                      AR_CUSTOMERS ARC,
                                      GL_CODE_COMBINATIONS_KFV GCC,
                                      FND_FLEX_VALUES_VL FFVL,
                                      AR_RECEIPT_METHODS ARM,
                                      HR_OPERATING_UNITS HR,
                                      HZ_CUST_ACCOUNTS HCA
                              WHERE   ACR.CASH_RECEIPT_ID = ACRH.CASH_RECEIPT_ID
                                      AND FU.USER_ID = ACR.CREATED_BY
                                      AND ARM.RECEIPT_METHOD_ID =
                                            ACR.RECEIPT_METHOD_ID
                                      AND ARC.CUSTOMER_ID = ACR.PAY_FROM_CUSTOMER
                                      AND GCC.CODE_COMBINATION_ID =
                                            ADR.CODE_COMBINATION_ID
                                      AND ADR.SOURCE_TYPE IN
                                               ('REMITTANCE', 'CASH')
                                      --AND ACRH.STATUS='CLEARED'
                                      --AND ADR.SOURCE_TYPE='CASH'
                                      AND ADR.SOURCE_ID =
                                            ACRH.CASH_RECEIPT_HISTORY_ID
                                      AND GCC.SEGMENT3 = FFVL.FLEX_VALUE
                                      AND FFVL.FLEX_VALUE_SET_ID = 1014163
                                      AND ARC.CUSTOMER_ID = HCA.CUST_ACCOUNT_ID
                                      -- AND ACR.RECEIPT_NUMBER ='SR0600200'--'SUPP. INV.NO.-10107033'
                                      AND TRUNC (ACRH.GL_DATE) BETWEEN P_FROM_DATE
                                                                   AND  P_TO_DATE
                                      AND ARC.CUSTOMER_ID =
                                            NVL (P_CUSTOMER_ID, ARC.CUSTOMER_ID)
                                      --AND ACR.ORG_ID = 81
                                      --NVL(:P_ORG_ID, ACR.ORG_ID)
                                      --AND ARC.CUSTOMER_ID BETWEEN
                                      --   NVL(:P_FROM_CUSTOMER_ID, ARC.CUSTOMER_ID) AND
                                      --  NVL(:P_TO_CUSTOMER_ID, ARC.CUSTOMER_ID)
                                      ------  AND GCC.SEGMENT3 = NVL(:P_ACCOUNT, GCC.SEGMENT3)
                                      ---AND SUBSTR(HCA.CUSTOMER_CLASS_CODE, 1,2) = NVL(:P_BUSINESS_LINE, SUBSTR(HCA.CUSTOMER_CLASS_CODE, 1,2))
                                      AND NVL (ARC.CUSTOMER_CATEGORY_CODE, '~') =
                                            NVL (
                                               P_CUST_TYPE,
                                               NVL (ARC.CUSTOMER_CATEGORY_CODE,
                                                    '~')
                                            )
                                      AND CONFIRMED_FLAG = 'Y'
                                      AND ACR.ORG_ID = HR.ORGANIZATION_ID
                           GROUP BY   ACR.RECEIPT_DATE,
                                      ACR.RECEIPT_NUMBER,
                                      ACR.DOC_SEQUENCE_VALUE,
                                      ACR.RECEIPT_DATE,
                                      FU.USER_NAME,
                                      ARC.CUSTOMER_NAME,
                                      ARC.CUSTOMER_NUMBER,
                                      ARC.CUSTOMER_ID,
                                      ACR.CASH_RECEIPT_ID,
                                      ACRH.GL_DATE,
                                      GCC.CONCATENATED_SEGMENTS,
                                      GCC.SEGMENT3,
                                      FFVL.DESCRIPTION,
                                      ACR.ORG_ID,
                                      HR.NAME,
                                      ACR.DOC_SEQUENCE_ID,
                                      ARM.NAME) A
                  WHERE   A.DUE_DATE = NVL (NULL, A.DUE_DATE)
                          AND AMOUNT_DR <> AMOUNT_CR
               ORDER BY   TRX_DATE, GL_DATE;

Query to Find Receipt Class and its GL Combinition Query

SELECT ARC.NAME ReceiptClass,        ARC.CREATION_METHOD_CODE Creation_Mehthod,        DECODE (ARC.REMIT_METHOD_CODE,             ...