📄 ar_m_cash_batch_approval.dml
字号:
IF (%STATUS = %FAILURE)
ROLLBACK
EXIT
END_IF
IF (CASH_RECEIPT_BATCH_HEADERS(BATCH_CR_TOTAL) = 0)
CASH_RECEIPT_BATCH_HEADERS(STATUS_FLAG) = (PARAMETER("STATUS_DELETE"))
ELSE
CASH_RECEIPT_BATCH_HEADERS(STATUS_FLAG) = (PARAMETER("STATUS_APPROVE"))
END_IF
END_BLOCK
BEGIN_BLOCK DUMMY
END_BLOCK
END_FORM
PROCEDURE_FORM GL_ACCESS_CHECK &
/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 CHECK_ACCOUNT
IF (CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER) = #CASH_SALES)
PERFORM "GEMLB:LB_SECURITY_ACCOUNT_CHECK" &
((CASH_RECEIPT_BATCHES(GL_SHORT_CODE)), &
(CASH_RECEIPT_BATCHES(ACCOUNT_NUMBER)), &
(PARAMETER("MODULE_AR")), &
(PARAMETER("TTYPE_CR")), &
MESSAGE("P_26011"),"","",#COMPANY_CODE)
IF (%STATUS = %FAILURE) EXIT (%FAILURE)
END_IF
IF (#CURRENCY_METHOD = '0')
#TOTAL_VALUE = CASH_RECEIPT_BATCHES(AR_TRAN_TOTAL_CURRENCY)
ELSE
#TOTAL_VALUE = CASH_RECEIPT_BATCHES(AR_TRAN_TOTAL_BASE)
END_IF
IF (#SECURITY_ACTIVE = #YES AND ABS(#TOTAL_VALUE) > #TRANSACTION_MAX)
MESSAGE/IDENTIFIER/BELL/WAIT P_22300,CASH_RECEIPT_BATCHES(CR_BATCH_SEQ_NUMBER)
EXIT(%FAILURE)
END_IF
END_BLOCK
END_FORM
PROCEDURE_FORM MAKE_GL_POSTINGS
BEGIN_BLOCK GL_POSTINGS
FIND IN SYS_CURRENCY_CODES &
/LOCK=NONE &
/WITH=SYS_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)
CLEAR_BUFFER GL_POSTINGS
#POSTING_TOTAL_CURRENCY = CASH_RECEIPT_BATCHES(AR_TRAN_TOTAL_CURRENCY)
#POSTING_TOTAL_BASE = CASH_RECEIPT_BATCHES(AR_TRAN_TOTAL_BASE)
IF (CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER)=#CASH_SALES)
#TAX = CASH_RECEIPT_BATCHES(TAX)
ELSE
#TAX = 0
END_IF
IF (#CURRENCY_METHOD > '0' AND #TAX > 0)
IF (CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER)=#CASH_SALES)
IF (#CURRENCY_RATIO_INDIC = (PARAMETER("MULTIPLY_RATIO_INDIC")))
#TAX_BASE = ROUND(#TAX * &
CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE),#BASE_CURRENCY_DECIMAL)
ELSE
#TAX_BASE = ROUND(#TAX / &
CASH_RECEIPT_BATCHES(SYS_CURRENCY_RATE),#BASE_CURRENCY_DECIMAL)
END_IF
ELSE
#TAX_BASE = 0
END_IF
ELSE
#TAX_BASE = 0
END_IF
GL_POSTINGS(GL_SHORT_CODE) = CASH_RECEIPT_BATCH_HEADERS(GL_BANK_SHORT_CODE)
GL_POSTINGS(ACCOUNT_NUMBER) = CASH_RECEIPT_BATCH_HEADERS(BANK_FULL_ACCOUNT)
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_DATE) = CASH_RECEIPT_BATCH_HEADERS(BANK_DATE)
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_BASE_CURRENCY_CODE)=#BASE_CURRENCY_CODE
GL_POSTINGS(SYS_CURRENCY_METHOD)=#CURRENCY_METHOD
GL_POSTINGS(SYS_CURRENCY_RATIO_INDIC)=#CURRENCY_RATIO_INDIC
! mod by oil 1030
! GL_POSTINGS(GL_POSTING_CURRENCY_DR) = #POSTING_TOTAL_CURRENCY
! GL_POSTINGS(GL_POSTING_BASE_DR) = #POSTING_TOTAL_BASE
IF (#POSTING_TOTAL_CURRENCY >= 0)
GL_POSTINGS(GL_POSTING_CURRENCY_DR) = #POSTING_TOTAL_CURRENCY
GL_POSTINGS(GL_POSTING_BASE_DR) = #POSTING_TOTAL_BASE
ELSE
GL_POSTINGS(GL_POSTING_CURRENCY_CR) = #POSTING_TOTAL_CURRENCY * (-1)
GL_POSTINGS(GL_POSTING_BASE_CR) = #POSTING_TOTAL_BASE * (-1)
END_IF
! end of mod
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(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)
IF (CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER) = #CASH_SALES)
GL_POSTINGS(POSTING_DESCRIPTION)=CASH_RECEIPT_BATCHES(CUSTOMER_REFERENCE)
ELSE
GL_POSTINGS(POSTING_DESCRIPTION) = MESSAGE("P_2CASH_RECEIPT_BATCH_1",CASH_RECEIPT_BATCHES(CR_BATCH_NUMBER), &
CASH_RECEIPT_BATCHES(CR_BATCH_SEQ_NUMBER))
END_IF
GL_POSTINGS(ACCOUNT_IDENT) = (PARAMETER("ACCOUNT_IDENT_ACTUAL"))
GL_POSTINGS(ACTIVATION_STATUS) = (PARAMETER("STATUS_ACTIVE"))
ADD TO GL_POSTINGS
IF (%STATUS <> %SUCCESS) EXIT (%FAILURE)
CLEAR_BUFFER GL_POSTINGS
IF (CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER) = #CASH_SALES)
GL_POSTINGS(GL_SHORT_CODE) = &
CASH_RECEIPT_BATCHES(GL_SHORT_CODE)
GL_POSTINGS(ACCOUNT_NUMBER) = &
CASH_RECEIPT_BATCHES(ACCOUNT_NUMBER)
ELSE
GL_POSTINGS(GL_SHORT_CODE) = #AR_SHORT_CODE
GL_POSTINGS(ACCOUNT_NUMBER) = #AR_FULL_ACCOUNT
END_IF
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(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
! mod by oil 1030
! GL_POSTINGS(GL_POSTING_CURRENCY_CR) = (#POSTING_TOTAL_CURRENCY-#TAX)
! GL_POSTINGS(GL_POSTING_BASE_CR) = (#POSTING_TOTAL_BASE-#TAX_BASE)
IF (#POSTING_TOTAL_CURRENCY >= 0)
GL_POSTINGS(GL_POSTING_CURRENCY_CR) = (#POSTING_TOTAL_CURRENCY-#TAX)
GL_POSTINGS(GL_POSTING_BASE_CR) = (#POSTING_TOTAL_BASE-#TAX_BASE)
ELSE
GL_POSTINGS(GL_POSTING_CURRENCY_DR) = ((#POSTING_TOTAL_CURRENCY -#TAX) * (-1))
GL_POSTINGS(GL_POSTING_BASE_DR) = ((#POSTING_TOTAL_BASE -#TAX_BASE) * (-1))
END_IF
! end of mod
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(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(ACTIVATION_STATUS) = (PARAMETER("STATUS_ACTIVE"))
GL_POSTINGS(SYS_POST_TYPE) = (PARAMETER('GL_POSTING_AUTOMATIC'))
ADD TO GL_POSTINGS
IF (%STATUS <> %SUCCESS) EXIT (%FAILURE)
END_BLOCK
BEGIN_BLOCK POST_TAX_AMOUNTS
IF (CASH_RECEIPT_BATCHES(CUSTOMER_NUMBER) = #CASH_SALES)
PERFORM POST_TAX
ELSE_IF (#CUST_TAX_ON_CASH = #YES AND #DIV_TAX_ON_CASH = #YES)
FIND IN TAX_RATES &
/LOCK=NONE &
/WITH=COMPANY_CODE = #COMPANY_CODE &
/WITH=CUSTOMER_TAX_CODE = #CUST_TAX_CODE &
/WITH=PRODUCT_TAX_CODE=""
IF (%STATUS = %FAILURE)
GOTO END
ELSE_IF (TAX_RATES(SYS_TAX_ON_CASH) = #YES)
FIND IN AT:AR_TRANSACTION_TYPES &
/SECONDARY &
/LOCK=NONE &
/WITH=COMPANY_CODE=#COMPANY_CODE &
/WITH=DIVISION=#DIVISION &
/WITH=TRANSACTION_TYPE=(PARAMETER("TTYPE_AT"))
IF (%STATUS = %FAILURE)
MESSAGE/IDENTIFIER/BELL/WAIT P_00878,(PARAMETER("TTYPE_AT"))
EXIT(%FAILURE)
END_IF
IF (AT:AR_TRANSACTION_TYPES(AR_CASH_ALLOCATION_ACCOUNT) <> "" OR &
AT:AR_TRANSACTION_TYPES(AR_CASH_ALLOCATION_CODE) <> "")
#TEMP_TAX_CODE = AT:AR_TRANSACTION_TYPES(AR_CASH_ALLOCATION_CODE)
#TEMP_TAX_ACCOUNT = AT:AR_TRANSACTION_TYPES(AR_CASH_ALLOCATION_ACCOUNT)
#AR_TAX_CODE = TAX_RATES(AR_TAX_CODE)
#AR_TAX_ACCOUNT = TAX_RATES(AR_TAX_FULL_ACCOUNT)
ELSE
#TEMP_TAX_CODE = TAX_RATES(AR_TEMP_TAX_CODE)
#TEMP_TAX_ACCOUNT = TAX_RATES(AR_TEMP_TAX_ACCOUNT)
#TAX_RATE = TAX_RATES(SYS_TAX_RATE)
#AR_TAX_CODE = TAX_RATES(AR_TAX_CODE)
#AR_TAX_ACCOUNT = TAX_RATES(AR_TAX_FULL_ACCOUNT)
END_IF
PERFORM POST_TAX_ON_CASH
END_IF
END_IF
END_BLOCK
BEGIN_BLOCK END
END_BLOCK
END_FORM
PROCEDURE_FORM POST_TAX &
/TABLE=CASH_RECEIPT_TAX_DETAILS &
/WITH=COMPANY_CODE=#COMPANY_CODE &
/WITH=DIVISION=CASH_RECEIPT_BATCH_HEADERS(DIVISION) &
/WITH=CR_BATCH_NUMBER=CASH_RECEIPT_BATCH_HEADERS(CR_BATCH_NUMBER) &
/WITH=CR_BATCH_SEQ_NUMBER=CASH_RECEIPT_BATCHES(CR_BATCH_SEQ_NUMBER)
BEGIN_BLOCK TAX_POSTINGS
IF (CASH_RECEIPT_TAX_DETAILS(AR_POSTING_FORMAT) <> "")
#AMOUNT_CR = CASH_RECEIPT_TAX_DETAILS(TAX)
#AMOUNT_DR = 0
PERFORM CALL_FORMAT_SPLIT
ELSE
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"))
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -