⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ar_m_cash_batch_approval.dml

📁 著名的Handle
💻 DML
📖 第 1 页 / 共 4 页
字号:
                  AR_TRANSACTIONS(SYS_CURRENCY_RATIO_INDIC) = &
                              CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATIO_INDIC)
                  AR_TRANSACTIONS(AR_TRAN_TOTAL_BASE)=CASH_RECEIPT_BATCHES(AR_TRAN_TOTAL_BASE)
            END_IF

            AR_TRANSACTIONS(AR_TRAN_TOTAL_CURRENCY) = CASH_RECEIPT_BATCHES(AR_TRAN_TOTAL_CURRENCY)

            AR_TRANSACTIONS(CONTROL_ACCOUNT_NUMBER)   = #AR_FULL_ACCOUNT
            AR_TRANSACTIONS(CONTROL_SHORT_CODE) = #AR_SHORT_CODE

            ADD TO AR_TRANSACTIONS
            IF (%STATUS <> %SUCCESS) EXIT(%FAILURE)
      END_BLOCK

      BEGIN_BLOCK UPDATE_CUSTOMER
            FIND IN CUSTOMERS &
                  /LOCK=WRITE &
                  /WITH=COMPANY_CODE=#COMPANY_CODE &
                  /WITH=DIVISION=#DIVISION &
                  /WITH=CUSTOMER_NUMBER=AR_TRANSACTIONS(CUSTOMER_NUMBER)

            IF (%STATUS = %FAILURE)
                  MESSAGE/IDENTIFIER/BELL/WAIT P_22099
            END_IF
            CUSTOMERS(LAST_CASH_RECEIPT) = %TODAY
      END_BLOCK

      BEGIN_BLOCK CREATE_GL_POSTINGS
            PERFORM MAKE_GL_POSTINGS
            IF    (%STATUS = %FAILURE) EXIT(%FAILURE)
      END_BLOCK

      BEGIN_BLOCK FINAL_UPDATE_NON_AR

            IF    (CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER) = #CASH_SALES)
                  CASH_RECEIPT_BATCHES(AR_ALLOCATION_CURRENCY) = &
                                    CASH_RECEIPT_BATCHES(AR_TRAN_TOTAL_CURRENCY)
                  CASH_RECEIPT_BATCHES(AR_ALLOCATION_BASE) = &
                                    CASH_RECEIPT_BATCHES(AR_TRAN_TOTAL_BASE)

                  CASH_RECEIPT_BATCH_HEADERS(BATCH_CR_TOTAL) = &
                        CASH_RECEIPT_BATCH_HEADERS(BATCH_CR_TOTAL) - &
                                    CASH_RECEIPT_BATCHES(AR_TRAN_TOTAL_CURRENCY)

                  PERFORM CREATE_TAX_TRANSACTION
            END_IF
      END_BLOCK

END_FORM


PROCEDURE_FORM CREATE_TAX_TRANSACTION &
      /TABLE=CASH_RECEIPT_TAX_DETAILS &
      /WITH=CR_BATCH_NUMBER=CASH_RECEIPT_BATCHES(CR_BATCH_NUMBER) &
      /WITH=CR_BATCH_SEQ_NUMBER=CASH_RECEIPT_BATCHES(CR_BATCH_SEQ_NUMBER)


      BEGIN_BLOCK TAX_TRANSACTION_ADD

            CLEAR_BUFFER TAX_TRANSACTIONS

            TAX_TRANSACTIONS(COMPANY_CODE)           = #COMPANY_CODE
            TAX_TRANSACTIONS(DIVISION)               = #DIVISION
            TAX_TRANSACTIONS(SOURCE_MODULE)          = (PARAMETER("MODULE_AR"))
            TAX_TRANSACTIONS(TRANSACTION_TYPE)       = (PARAMETER("TTYPE_CR"))
            TAX_TRANSACTIONS(TAX_TRANSACTION_NUMBER) = CASH_RECEIPT_BATCHES(CR_BATCH_NUMBER)
            TAX_TRANSACTIONS(TRANSACTION_LINE_NUMBER)= CASH_RECEIPT_BATCHES(CR_BATCH_SEQ_NUMBER)
            TAX_TRANSACTIONS(SEQUENCE)           = CASH_RECEIPT_TAX_DETAILS(TRANSACTION_LINE_NUMBER)
            TAX_TRANSACTIONS(CUSTOMER_NUMBER)        = CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER)
            TAX_TRANSACTIONS(CUSTOMER_TAX_CODE)        = CASH_RECEIPT_TAX_DETAILS(CUSTOMER_TAX_CODE)
            TAX_TRANSACTIONS(PRODUCT_TAX_CODE)   = CASH_RECEIPT_TAX_DETAILS(PRODUCT_TAX_CODE)
            TAX_TRANSACTIONS(PERIOD)                 = CASH_RECEIPT_BATCH_HEADERS(PERIOD)
            TAX_TRANSACTIONS(TRANSACTION_DATE)       = CASH_RECEIPT_BATCHES(TRANSACTION_DATE)
            TAX_TRANSACTIONS(SYS_TRAN_TOTAL_CURRENCY)= CASH_RECEIPT_TAX_DETAILS(AR_TRAN_TOTAL_CURRENCY)
            TAX_TRANSACTIONS(SYS_TAX_CURRENCY)       = CASH_RECEIPT_TAX_DETAILS(TAX)
            TAX_TRANSACTIONS(YEAR)                   = CASH_RECEIPT_BATCH_HEADERS(YEAR)
            TAX_TRANSACTIONS(SOURCE_REFERENCE)       = CASH_RECEIPT_BATCHES(CUSTOMER_REFERENCE)
            TAX_TRANSACTIONS(SYS_CURRENCY_CODE)  = CASH_RECEIPT_BATCHES(SYS_CURRENCY_CODE)
            TAX_TRANSACTIONS(WAREHOUSE)          = CASH_RECEIPT_TAX_DETAILS(WAREHOUSE)
            TAX_TRANSACTIONS(PART_CODE)          = CASH_RECEIPT_TAX_DETAILS(PART_CODE)
            TAX_TRANSACTIONS(SYS_CURRENCY_RATE)  = CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE)
            TAX_TRANSACTIONS(SYS_CURRENCY_RATIO_INDIC)= CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATIO_INDIC)

            IF (#CURRENCY_METHOD > '0')
                  IF (TAX_TRANSACTIONS(SYS_CURRENCY_RATIO_INDIC) = (PARAMETER("MULTIPLY_RATIO_INDIC")))
                        TAX_TRANSACTIONS(SYS_TRAN_TOTAL_BASE) = ROUND(TAX_TRANSACTIONS(SYS_TRAN_TOTAL_CURRENCY) * &
                                    TAX_TRANSACTIONS(SYS_CURRENCY_RATE),#BASE_CURRENCY_DECIMAL)
                        TAX_TRANSACTIONS(SYS_TAX_BASE) = ROUND(TAX_TRANSACTIONS(SYS_TAX_CURRENCY) * &
                                    TAX_TRANSACTIONS(SYS_CURRENCY_RATE),#BASE_CURRENCY_DECIMAL)
                  ELSE
                        TAX_TRANSACTIONS(SYS_TRAN_TOTAL_BASE) = ROUND(TAX_TRANSACTIONS(SYS_TRAN_TOTAL_CURRENCY) / &
                                    TAX_TRANSACTIONS(SYS_CURRENCY_RATE),#BASE_CURRENCY_DECIMAL)
                        TAX_TRANSACTIONS(SYS_TAX_BASE) = ROUND(TAX_TRANSACTIONS(SYS_TAX_CURRENCY) / &
                                    TAX_TRANSACTIONS(SYS_CURRENCY_RATE),#BASE_CURRENCY_DECIMAL)
                  END_IF
            END_IF

            ADD TO TAX_TRANSACTIONS

            IF  (%STATUS = %FAILURE)
                MESSAGE/IDENTIFIER/BELL/WAIT P_00822
                EXIT
            END_IF
      END_BLOCK

END_FORM


TABLE_FORM SHOW_BATCH_LINES /ROW=7 /COL=2 /HEIGHT=17 /WIDTH=78 &
      /REMAIN &
      /TITLE=(MESSAGE("P_00222")) &
      /OPTIONS=NOMODIFY,NOINSERT,NODELETE &
      /TABLE=CASH_RECEIPT_BATCHES,CASH_RECEIPT_BATCH_HEADERS &
      /ROW_HEIGHT=2 &
      /WITH=COMPANY_CODE=#COMPANY_CODE &
      /WITH=DIVISION = #DIVISION &
      /WITH=CR_BATCH_NUMBER AMONG #BATCH_NUMBERS &
      /WITH=CASH_RECEIPT_BATCH_HEADERS(STATUS_FLAG) <> (PARAMETER("STATUS_APPROVE")) &
      /WITH=CASH_RECEIPT_BATCH_HEADERS(STATUS_FLAG) = (PARAMETER("STATUS_UPDATE")) &
      /SORTED_BY=(CR_BATCH_NUMBER)


      OUTPUT_BLOCK CR_BATCH_NUMBER /ROW=1 /COL=3 &
                  /SOURCE=(CASH_RECEIPT_BATCHES(CR_BATCH_NUMBER)) &
                  /HEADING=FIELD_HEADING(CR_BATCH_NUMBER)

      BEGIN_BLOCK  /DISPLAY_ONLY DISP_CUSTOMER
            FIND IN CUSTOMERS &
                  /LOCK=NONE &
                  /WITH=COMPANY_CODE=#COMPANY_CODE &
                  /WITH=DIVISION=#DIVISION &
                  /WITH=CUSTOMER_NUMBER=CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER)
      END_BLOCK

      OUTPUT_BLOCK CR_BATCH_SEQ_NUMBER /ROW=1 /COL=10 &
                  /SOURCE=(CASH_RECEIPT_BATCHES(CR_BATCH_SEQ_NUMBER)) &
                  /HEADING=FIELD_HEADING(CR_BATCH_SEQ_NUMBER)

      OUTPUT_BLOCK CUSTOMER_NUMBER /ROW=1 /COL=15 &
                  /SOURCE=(CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER)) &
                  /HEADING=FIELD_HEADING(CUSTOMER_NUMBER)

      OUTPUT_BLOCK REC_DATE /ROW=1 /COL=24 &
                  /SOURCE=(CASH_RECEIPT_BATCHES(TRANSACTION_DATE)) &
                  /HEADING=FIELD_HEADING(TRANSACTION_DATE)

      OUTPUT_BLOCK CASH_RECEIPT_TYPE /ROW=1 /COL=36 &
                  /DOMAIN=CASH_RECEIPT_TYPES &
                  /SOURCE=(CASH_RECEIPT_BATCHES(CASH_RECEIPT_TYPE)) &
                  /HEADING=FIELD_HEADING(CASH_RECEIPT_TYPE)

      BEGIN_BLOCK  /DISPLAY_ONLY GET_MASK
            FIND IN SYS_CURRENCY_CODES &
                  /LOCK=NONE &
                  /WITH=SYS_CURRENCY_CODE = CASH_RECEIPT_BATCHES(SYS_CURRENCY_CODE)

            #CURRENCY_MASK = SYS_CURRENCY_CODES(SYS_CURRENCY_MASK)
      END_BLOCK

      OUTPUT_BLOCK CASH_DISCOUNT /ROW=1 /COL=40 &
                  /SOURCE=(CASH_RECEIPT_BATCHES(CASH_DISCOUNT)) &
                  /RHEADING=FIELD_HEADING(CASH_DISCOUNT) &
                  /OUTPUT_MASK=(#CURRENCY_MASK)

      OUTPUT_BLOCK REC_AMOUNT /ROW=1 /COL=55 /LEN=(#CURRENCY_LEN) &
                  /SOURCE=(CASH_RECEIPT_BATCHES(AR_TRAN_TOTAL_CURRENCY)) &
                  /RHEADING=FIELD_HEADING(AR_TRAN_TOTAL_CURRENCY) &
                  /OUTPUT_MASK=(#CURRENCY_MASK)

      OUTPUT_BLOCK SYS_CURRENCY_CODE /ROW=1 /COL=71 &
                  /SOURCE=(CASH_RECEIPT_BATCHES(SYS_CURRENCY_CODE)) &
                  /HEADING=FIELD_HEADING(SYS_CURRENCY_CODE)

      OUTPUT_BLOCK CUSTOMER_NAME /ROW=2 /COL=7 &
                  /SOURCE=(CUSTOMERS(CUSTOMER_NAME))

      OUTPUT_BLOCK CHECK_NUMBER /ROW=2 /COL=44 &
                  /PROMPT=(MESSAGE("P_00566")&":") &
                  /SOURCE=(CASH_RECEIPT_BATCHES(CUSTOMER_REFERENCE))

END_FORM

PROCEDURE_FORM TOTAL_UP &
            /TABLE=CASH_RECEIPT_BATCHES &
            /WITH=COMPANY_CODE=#COMPANY_CODE &
            /WITH=DIVISION=CASH_RECEIPT_BATCH_HEADERS(DIVISION) &
            /WITH=CR_BATCH_NUMBER = CASH_RECEIPT_BATCH_HEADERS(CR_BATCH_NUMBER) &
            /STATISTIC=#TOTAL_BATCH=TOTAL(CASH_RECEIPT_BATCHES(AR_TRAN_TOTAL_CURRENCY))

END_FORM

PROCEDURE_FORM CALL_FORMAT_SPLIT

      BEGIN_BLOCK CALL
            PERFORM "GEMLB:LB_TAX_FORMAT" ( &
                  (#COMPANY_CODE), &
                  (#AMOUNT_DR), &
                  (#AMOUNT_CR), &
                  (CASH_RECEIPT_TAX_DETAILS(AR_POSTING_FORMAT)), &
                  (""), &
                  (#CURRENCY_METHOD), &
                  (CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE)), &
                  (#BASE_CURRENCY_DECIMAL), &
                  (#CURRENCY_DECIMAL), &
                  (#CURRENCY_RATIO_INDIC), &
                  (""), &
                  (""))

      END_BLOCK

END_FORM

PROCEDURE_FORM CREATE_POSTINGS_FROM_GL_VT &
      /TABLE=GL_POSTINGS_VT

            FIND IN SYS_CURRENCY_CODES &
                  /LOCK=NONE &
                  /WITH=SYS_CURRENCY_CODE = CASH_RECEIPT_BATCHES(SYS_CURRENCY_CODE)

            #CURRENCY_CODE = CASH_RECEIPT_BATCHES(SYS_CURRENCY_CODE)
            #CURRENCY_DECIMAL = SYS_CURRENCY_CODES(SYS_CURRENCY_DECIMALS)
            #CURRENCY_RATIO_INDIC = CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATIO_INDIC)
            #CURRENCY_RATE = CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE)
            CLEAR_BUFFER GL_POSTINGS

            GL_POSTINGS(COMPANY_CODE)            = #COMPANY_CODE
            GL_POSTINGS(DIVISION)                = CASH_RECEIPT_BATCHES(DIVISION)
            GL_POSTINGS(SOURCE_MODULE) = (PARAMETER("MODULE_AR"))
            GL_POSTINGS(POSTING_DATE)          = CASH_RECEIPT_BATCH_HEADERS(BANK_DATE)

            IF    (CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER)=#CASH_SALES)
            GL_POSTINGS(POSTING_REFERENCE)=MESSAGE("P_00094",CASH_RECEIPT_BATCHES(CR_BATCH_NUMBER))
            ELSE
                  GL_POSTINGS(POSTING_REFERENCE) = #CASH_RECEIPT_NUMBER
            END_IF
            GL_POSTINGS(SOURCE_REFERENCE)            = CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER)
            GL_POSTINGS(MODULE_TRANSACTION_TYPE) = (PARAMETER("TTYPE_CR"))

            GL_POSTINGS(GL_SHORT_CODE)           = GL_POSTINGS_VT(GL_SHORT_CODE)
            GL_POSTINGS(ACCOUNT_NUMBER)          = GL_POSTINGS_VT(ACCOUNT_NUMBER)
            GL_POSTINGS(BATCH_NUMBER)          = CASH_RECEIPT_BATCHES(CR_BATCH_NUMBER)
            GL_POSTINGS(PERIOD)                = CASH_RECEIPT_BATCH_HEADERS(PERIOD)
            GL_POSTINGS(YEAR)                  = CASH_RECEIPT_BATCH_HEADERS(YEAR)
            GL_POSTINGS(COST_CENTER)           = CASH_RECEIPT_BATCHES(COST_CENTER)

            GL_POSTINGS(POSTING_DESCRIPTION)     = GL_POSTINGS_VT(JOURNAL_DESCRIPTION)
            GL_POSTINGS(ACCOUNT_IDENT)           = GL_POSTINGS_VT(ACCOUNT_IDENT)
            GL_POSTINGS(SYS_CURRENCY_CODE)       = #CURRENCY_CODE
            GL_POSTINGS(SYS_CURRENCY_RATE)       = #CURRENCY_RATE
            GL_POSTINGS(SYS_CURRENCY_METHOD)     = #CURRENCY_METHOD
            GL_POSTINGS(SYS_CURRENCY_RATIO_INDIC)= #CURRENCY_RATIO_INDIC
            GL_POSTINGS(GL_POSTING_CURRENCY_DR)  = GL_POSTINGS_VT(GL_JOURNAL_VALUE_DR)
            GL_POSTINGS(GL_POSTING_CURRENCY_CR)  = GL_POSTINGS_VT(GL_JOURNAL_VALUE_CR)

            IF    (#CURRENCY_METHOD > '0')
                  GL_POSTINGS(SYS_BASE_CURRENCY_CODE) = #BASE_CURRENCY_CODE

                  GL_POSTINGS(GL_POSTING_BASE_DR) = GL_POSTINGS_VT(GL_JOURNAL_BASE_DR)
                  GL_POSTINGS(GL_POSTING_BASE_CR) =  GL_POSTINGS_VT(GL_JOURNAL_BASE_CR)
            ELSE
                  GL_POSTINGS(GL_POSTING_BASE_DR) = GL_POSTINGS_VT(GL_JOURNAL_VALUE_DR)
                  GL_POSTINGS(GL_POSTING_BASE_CR) =  GL_POSTINGS_VT(GL_JOURNAL_VALUE_CR)

            END_IF

            GL_POSTINGS(ACTIVATION_STATUS)            = (PARAMETER("STATUS_ACTIVE"))

            ADD TO GL_POSTINGS
            IF    (%STATUS = %FAILURE)
                  EXIT(%FAILURE)
            END_IF
      END_BLOCK
END_FORM

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -