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

📄 ar_m_cash_batch_approval.dml

📁 著名的Handle
💻 DML
📖 第 1 页 / 共 4 页
字号:
            END_IF
            GL_POSTINGS(SOURCE_REFERENCE) = CASH_RECEIPT_BATCHES(CUSTOMER_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) = MESSAGE("P_2CASH_RECEIPT_BATCH_1",CASH_RECEIPT_BATCHES(CR_BATCH_NUMBER), &
                                          CASH_RECEIPT_BATCHES(CR_BATCH_SEQ_NUMBER))
            GL_POSTINGS(ACCOUNT_IDENT) = (PARAMETER("ACCOUNT_IDENT_ACTUAL"))
            GL_POSTINGS(GL_SHORT_CODE) = &
                              CASH_RECEIPT_TAX_DETAILS(AR_TAX_CODE)
            GL_POSTINGS(ACCOUNT_NUMBER) = &
                              CASH_RECEIPT_TAX_DETAILS(AR_TAX_FULL_ACCOUNT)

            GL_POSTINGS(SYS_CURRENCY_CODE)=CASH_RECEIPT_BATCHES(SYS_CURRENCY_CODE)
            GL_POSTINGS(SYS_CURRENCY_RATE)=CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE)
            GL_POSTINGS(SYS_CURRENCY_METHOD)=#CURRENCY_METHOD
            GL_POSTINGS(SYS_BASE_CURRENCY_CODE)=#BASE_CURRENCY_CODE
            GL_POSTINGS(SYS_CURRENCY_RATIO_INDIC)=#CURRENCY_RATIO_INDIC
            GL_POSTINGS(GL_POSTING_CURRENCY_CR) = CASH_RECEIPT_TAX_DETAILS(TAX)

            IF  (#CURRENCY_METHOD > '0')
                  IF    (#CURRENCY_RATIO_INDIC = (PARAMETER("MULTIPLY_RATIO_INDIC")))
                        GL_POSTINGS(GL_POSTING_BASE_CR) = ROUND(CASH_RECEIPT_TAX_DETAILS(TAX) * &
                                    CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE),#BASE_CURRENCY_DECIMAL)
                  ELSE
                        GL_POSTINGS(GL_POSTING_BASE_CR) = ROUND(CASH_RECEIPT_TAX_DETAILS(TAX) / &
                                    CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE),#BASE_CURRENCY_DECIMAL)
                  END_IF
            END_IF
            GL_POSTINGS(ACTIVATION_STATUS) = (PARAMETER("STATUS_ACTIVE"))

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

END_FORM

PROCEDURE_FORM POST_TAX_ON_CASH

      BEGIN_BLOCK CR_POSTING
            #A = (#TAX_RATE/100 + 1)
            #B = (CASH_RECEIPT_BATCHES(AR_TRAN_TOTAL_CURRENCY)/#A)
            #TEMP_TAX_VALUE = (CASH_RECEIPT_BATCHES(AR_TRAN_TOTAL_CURRENCY) - #B)

            CLEAR_BUFFER GL_POSTINGS

            GL_POSTINGS(COMPANY_CODE) = #COMPANY_CODE
            GL_POSTINGS(DIVISION) = CASH_RECEIPT_BATCHES(DIVISION)
            GL_POSTINGS(POSTING_DATE) = CASH_RECEIPT_BATCH_HEADERS(BANK_DATE)
            GL_POSTINGS(SOURCE_MODULE) = (PARAMETER("MODULE_AR"))
            GL_POSTINGS(MODULE_TRANSACTION_TYPE) = (PARAMETER("TTYPE_CR"))
            GL_POSTINGS(POSTING_REFERENCE) = #CASH_RECEIPT_NUMBER
            GL_POSTINGS(SOURCE_REFERENCE) = CASH_RECEIPT_BATCHES(CUSTOMER_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) = MESSAGE("P_2CASH_RECEIPT_BATCH_1",CASH_RECEIPT_BATCHES(CR_BATCH_NUMBER), &
                                          CASH_RECEIPT_BATCHES(CR_BATCH_SEQ_NUMBER))
            GL_POSTINGS(ACCOUNT_IDENT) = (PARAMETER("ACCOUNT_IDENT_ACTUAL"))
            GL_POSTINGS(GL_SHORT_CODE) = #AR_TAX_CODE 
            GL_POSTINGS(ACCOUNT_NUMBER) = #AR_TAX_ACCOUNT 
            GL_POSTINGS(SYS_CURRENCY_CODE)=CASH_RECEIPT_BATCHES(SYS_CURRENCY_CODE)
            GL_POSTINGS(SYS_CURRENCY_RATE)=CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE)
            GL_POSTINGS(SYS_CURRENCY_METHOD)=#CURRENCY_METHOD
            GL_POSTINGS(SYS_BASE_CURRENCY_CODE)=#BASE_CURRENCY_CODE
            GL_POSTINGS(SYS_CURRENCY_RATIO_INDIC)=#CURRENCY_RATIO_INDIC
            GL_POSTINGS(GL_POSTING_CURRENCY_CR) =#TEMP_TAX_VALUE

            IF  (#CURRENCY_METHOD > '0')
                  IF    (#CURRENCY_RATIO_INDIC = (PARAMETER("MULTIPLY_RATIO_INDIC")))
                        GL_POSTINGS(GL_POSTING_BASE_CR) =ROUND(#TEMP_TAX_VALUE * &
                                    CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE),#BASE_CURRENCY_DECIMAL)
                  ELSE
                        GL_POSTINGS(GL_POSTING_BASE_CR) = ROUND(#TEMP_TAX_VALUE / &
                                    CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE),#BASE_CURRENCY_DECIMAL)
                  END_IF
            END_IF
            GL_POSTINGS(ACTIVATION_STATUS) = (PARAMETER("STATUS_ACTIVE"))

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

      BEGIN_BLOCK DR_POSTING

            CLEAR_BUFFER GL_POSTINGS

            GL_POSTINGS(COMPANY_CODE) = #COMPANY_CODE
            GL_POSTINGS(DIVISION) = CASH_RECEIPT_BATCHES(DIVISION)
            GL_POSTINGS(POSTING_DATE) = CASH_RECEIPT_BATCH_HEADERS(BANK_DATE)
            GL_POSTINGS(SOURCE_MODULE) = (PARAMETER("MODULE_AR"))
            GL_POSTINGS(MODULE_TRANSACTION_TYPE) = (PARAMETER("TTYPE_CR"))
            GL_POSTINGS(POSTING_REFERENCE) = #CASH_RECEIPT_NUMBER
            GL_POSTINGS(SOURCE_REFERENCE) = CASH_RECEIPT_BATCHES(CUSTOMER_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) = MESSAGE("P_2CASH_RECEIPT_BATCH_1",CASH_RECEIPT_BATCHES(CR_BATCH_NUMBER), &
                                          CASH_RECEIPT_BATCHES(CR_BATCH_SEQ_NUMBER))
            GL_POSTINGS(ACCOUNT_IDENT) = (PARAMETER("ACCOUNT_IDENT_ACTUAL"))
            GL_POSTINGS(GL_SHORT_CODE) = #TEMP_TAX_CODE
            GL_POSTINGS(ACCOUNT_NUMBER) = #TEMP_TAX_ACCOUNT 
            GL_POSTINGS(SYS_CURRENCY_CODE)=CASH_RECEIPT_BATCHES(SYS_CURRENCY_CODE)
            GL_POSTINGS(SYS_CURRENCY_RATE)=CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE)
            GL_POSTINGS(SYS_CURRENCY_METHOD)=#CURRENCY_METHOD
            GL_POSTINGS(SYS_BASE_CURRENCY_CODE)=#BASE_CURRENCY_CODE
            GL_POSTINGS(SYS_CURRENCY_RATIO_INDIC)=#CURRENCY_RATIO_INDIC
            GL_POSTINGS(GL_POSTING_CURRENCY_DR) =#TEMP_TAX_VALUE

            IF  (#CURRENCY_METHOD > '0')
                  IF    (#CURRENCY_RATIO_INDIC = (PARAMETER("MULTIPLY_RATIO_INDIC")))
                        GL_POSTINGS(GL_POSTING_BASE_DR) =ROUND(#TEMP_TAX_VALUE * &
                                    CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE),#BASE_CURRENCY_DECIMAL)
                  ELSE
                        GL_POSTINGS(GL_POSTING_BASE_DR) =ROUND(#TEMP_TAX_VALUE / &
                                    CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE),#BASE_CURRENCY_DECIMAL)
                  END_IF
            END_IF
            GL_POSTINGS(ACTIVATION_STATUS) = (PARAMETER("STATUS_ACTIVE"))

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

            PERFORM CREATE_TAX_TRANSACTION_FOR_TAX_ON_CASH
      END_BLOCK

END_FORM

PROCEDURE_FORM CREATE_TAX_TRANSACTION_FOR_TAX_ON_CASH &

      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_NUMBER
            TAX_TRANSACTIONS(TRANSACTION_LINE_NUMBER)= CASH_RECEIPT_BATCHES(CR_BATCH_SEQ_NUMBER)
            TAX_TRANSACTIONS(SEQUENCE)               = "001"
            TAX_TRANSACTIONS(CUSTOMER_NUMBER)        = CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER)
            TAX_TRANSACTIONS(CUSTOMER_TAX_CODE)        = #CUST_TAX_CODE
            TAX_TRANSACTIONS(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_BATCHES(AR_TRAN_TOTAL_CURRENCY) -#TEMP_TAX_VALUE
            TAX_TRANSACTIONS(SYS_TAX_CURRENCY)       = #TEMP_TAX_VALUE
            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(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


PROCEDURE_FORM CREATE_AR_TRANSACTION_RECORD &
      /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)


      BEGIN_BLOCK LOAD_TRANS_RECORD
            #AR_SHORT_CODE    = #DEF_AR_SHORT_CODE
            #AR_FULL_ACCOUNT  = #DEF_AR_FULL_ACCOUNT
            IF    (CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER) = #CASH_SALES)
                  GOTO CREATE_GL_POSTINGS
            END_IF
            FIND IN CUSTOMERS &
                  /LOCK=NONE &
                  /WITH=COMPANY_CODE    = #COMPANY_CODE &
                  /WITH=DIVISION        = #DIVISION &
                  /WITH=CUSTOMER_NUMBER = CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER)

            IF  ((CUSTOMERS(AR_SHORT_CODE) <> "") OR (CUSTOMERS(AR_FULL_ACCOUNT) <> ""))
                  #AR_SHORT_CODE    = CUSTOMERS(AR_SHORT_CODE)
                  #AR_FULL_ACCOUNT  = CUSTOMERS(AR_FULL_ACCOUNT)
            END_IF


            #ADDRESS_CODE = CUSTOMERS(DEFAULT_ADDR)

            FIND IN CUSTOMER_ADDRESSES &
                  /LOCK=NONE &
                  /WITH=COMPANY_CODE=#COMPANY_CODE &
                  /WITH=DIVISION=CASH_RECEIPT_BATCHES(DIVISION) &
                  /WITH=CUSTOMER_NUMBER=CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER) &
                  /WITH=ADDRESS_CODE=#ADDRESS_CODE
            
            #CUST_TAX_ON_CASH = CUSTOMER_ADDRESSES(SYS_TAX_ON_CASH)           
            #CUST_TAX_CODE    =  CUSTOMER_ADDRESSES(TAX_CODE)

            CLEAR_BUFFER AR_TRANSACTIONS

            AR_TRANSACTIONS(SALESPERSON_CODE) = CUSTOMER_ADDRESSES(SALESPERSON_CODE)
            AR_TRANSACTIONS(COMPANY_CODE)   = #COMPANY_CODE
            AR_TRANSACTIONS(DIVISION)       = CASH_RECEIPT_BATCHES(DIVISION)
            AR_TRANSACTIONS(CUSTOMER_NUMBER)= CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER)
            AR_TRANSACTIONS(PERIOD)     = CASH_RECEIPT_BATCH_HEADERS(PERIOD)
            AR_TRANSACTIONS(YEAR)       = CASH_RECEIPT_BATCH_HEADERS(YEAR)
            AR_TRANSACTIONS(TRANSACTION_TYPE) = (PARAMETER("TTYPE_CR"))
            AR_TRANSACTIONS(TRANSACTION_DATE) = CASH_RECEIPT_BATCHES(TRANSACTION_DATE)
            AR_TRANSACTIONS(ORIG_INVOICE_DIVISION) = #DIVISION

            #CASH_RECEIPT_NUMBER = AR_TRANSACTION_TYPES(TRANSACTION_NUMBER)
            AR_TRANSACTION_TYPES(TRANSACTION_NUMBER) = #CASH_RECEIPT_NUMBER + 1

            AR_TRANSACTIONS(TRANSACTION_NUMBER)      = #CASH_RECEIPT_NUMBER

            CASH_RECEIPT_BATCHES(TRANSACTION_NUMBER) = &
                              AR_TRANSACTIONS(TRANSACTION_NUMBER)

            AR_TRANSACTIONS(BATCH_NUMBER) = &
                              CASH_RECEIPT_BATCHES(CR_BATCH_NUMBER)
            AR_TRANSACTIONS(BATCH_SEQUENCE_NUMBER)=&
                        CASH_RECEIPT_BATCHES(CR_BATCH_SEQ_NUMBER)

            AR_TRANSACTIONS(CREDIT_STATUS_CODE)   = ""
            AR_TRANSACTIONS(PID)         = ""
            AR_TRANSACTIONS(DUE_DATE)    = %TODAY
! *** 15-dec-1998 *** ape -
!           AR_TRANSACTIONS(DOCUMENT_REFERENCE)=&
!                       CASH_RECEIPT_BATCHES(CR_BATCH_NUMBER)&"-" &&
!                       CASH_RECEIPT_BATCHES(CR_BATCH_SEQ_NUMBER)

            AR_TRANSACTIONS(DOCUMENT_REFERENCE) = CASH_RECEIPT_BATCH_HEADERS(BANK_CODE)

! *** 15-dec-1998 *** ape
            AR_TRANSACTIONS(TRANSACTION_DESCRIPTION) = MESSAGE("P_26258")
            AR_TRANSACTIONS(DORC_INDICATOR)          = AR_TRANSACTION_TYPES(DORC_INDICATOR)
            AR_TRANSACTIONS(CUSTOMER_REFERENCE) = &
                              CASH_RECEIPT_BATCHES(CUSTOMER_REFERENCE)
            AR_TRANSACTIONS(BANK_CODE)=#BANK_CODE
            AR_TRANSACTIONS(CASH_DISCOUNT) = &
                              CASH_RECEIPT_BATCHES(CASH_DISCOUNT)
            AR_TRANSACTIONS(STATEMENT_ACCOUNT) = CUSTOMERS(STATEMENT_ACCOUNT)

            AR_TRANSACTIONS(SYS_CURRENCY_CODE) = &
                              CASH_RECEIPT_BATCHES(SYS_CURRENCY_CODE)
            AR_TRANSACTIONS(SYS_CURRENCY_RATE) = &
                              CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE)

            IF    (#CURRENCY_METHOD <> '0')
                    AR_TRANSACTIONS(SYS_BASE_CURRENCY_CODE) =#BASE_CURRENCY_CODE
                  AR_TRANSACTIONS(SYS_RATE_AUTHORITY) = &
                              CASH_RECEIPT_BATCHES(SYS_RATE_AUTHORITY)
                  AR_TRANSACTIONS(SYS_RATE_TYPE) = &
                              CASH_RECEIPT_BATCHES(SYS_RATE_TYPE)
                  AR_TRANSACTIONS(SYS_CURRENCY_FIXED_FLAG) = &
                              CASH_RECEIPT_BATCHES(SYS_CURRENCY_FIXED_FLAG)

⌨️ 快捷键说明

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