📄 ar_m_cash_batch_approval.dml
字号:
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 + -