123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- $PBExportHeader$f_check_credit.srf
- global type f_check_credit from function_object
- end type
- forward prototypes
- global function integer f_check_credit (string arg_subid, decimal arg_debit, decimal arg_credit, decimal arg_rawdebit, decimal arg_rawcredit, ref string arg_msg)
- global function integer f_check_credit (long arg_credid, string arg_subid, decimal arg_debit, decimal arg_credit, decimal arg_rawdebit, decimal arg_rawcredit, ref string arg_msg)
- end prototypes
- global function integer f_check_credit (string arg_subid, decimal arg_debit, decimal arg_credit, decimal arg_rawdebit, decimal arg_rawcredit, ref string arg_msg);Int rslt = 1
- Long ll_curyearmon
- Decimal ld_bdebit,ld_bcredit,ld_BRawDebit,ld_BRawCredit
- Decimal ld_debit,ld_credit,ld_RawDebit,ld_RawCredit
- decimal ld_balance,ld_rawbalance
- IF Not (Left(arg_subid,3) = '101' OR Left(arg_subid,3) = '102') THEN
- rslt = 1
- GOTO ext
- END IF
- ll_curyearmon = sys_curyearmon
- SELECT bdebit,bcredit,BRawDebit,BRawCredit
- INTO :ld_bdebit,:ld_bcredit,:ld_BRawDebit,:ld_BRawCredit
- FROM cw_Balance
- WHERE accsetid = :sys_accsetid
- AND subid = :arg_subid
- AND YearMon = :ll_curyearmon;
- IF sqlca.SQLCode = -1 THEN
- rslt = 0
- arg_msg = '查询科目:'+arg_subid+'月份:'+string(ll_curyearmon)+'期初余额失败'
- GOTO ext
- END IF
- SELECT sum(debit),sum(credit),sum(RawDebit),sum(RawCredit)
- INTO :ld_debit,:ld_credit,:ld_RawDebit,:ld_RawCredit
- FROM cw_credence,cw_credencemx
- WHERE cw_credence.accsetid = cw_credencemx.accsetid
- and cw_credence.credid = cw_credencemx.credid
- and cw_credence.accsetid = :sys_accsetid
- AND cw_credencemx.subid = :arg_subid
- AND cw_credence.cmonth = :ll_curyearmon
- group by cw_credencemx.subid;
- IF sqlca.SQLCode = -1 THEN
- rslt = 0
- arg_msg = '查询科目:'+arg_subid+'月份:'+string(ll_curyearmon)+'本期发生额失败'
- GOTO ext
- END IF
- ld_balance = ld_bdebit - ld_bcredit + ld_debit - ld_credit
- ld_Rawbalance = ld_bRawdebit - ld_bRawcredit + ld_Rawdebit - ld_Rawcredit
- if ld_balance < 0 or ld_Rawbalance < 0 then
- arg_msg = '注意,科目:'+arg_subid+'月份:'+string(ll_curyearmon)+'余额在贷方'
- rslt = 0
- goto ext
- end if
- ext:
- RETURN rslt
- end function
- global function integer f_check_credit (long arg_credid, string arg_subid, decimal arg_debit, decimal arg_credit, decimal arg_rawdebit, decimal arg_rawcredit, ref string arg_msg);Int rslt = 1
- Decimal ld_bdebit,ld_bcredit,ld_brawdebit,ld_brawcredit
- Decimal ld_debit,ld_credit,ld_rawdebit,ld_rawcredit
- decimal ld_balance,ld_rawbalance
- if not (left(arg_subid,3) = '101' or left(arg_subid,3) = '102') then
- rslt = 1
- goto ext
- end if
- //查期初余额
- SELECT bdebit,bcredit,brawdebit,brawcredit
- INTO :ld_bdebit,:ld_bcredit,:ld_brawdebit,:ld_brawcredit
- FROM cw_balance
- WHERE accsetid = :sys_accsetid
- AND yearmon = :sys_curyearmon
- AND subid = :arg_subid;
- IF sqlca.SQLCode = -1 THEN
- arg_msg = '查询科目:'+arg_subid+'月份:'+String(sys_curyearmon)+'期初余额失败'
- rslt = 0
- GOTO ext
- END IF
- //查本期发生额
- SELECT sum(debit),sum(credit),sum(rawdebit),sum(rawcredit)
- INTO :ld_debit,:ld_credit,:ld_rawdebit,:ld_rawcredit
- FROM cw_credence,cw_credencemx
- WHERE cw_credence.accsetid = cw_credencemx.accsetid
- AND cw_credence.credid = cw_credencemx.credid
- AND cw_credence.accsetid = :sys_accsetid
- AND cw_credence.cmonth = :sys_curyearmon
- AND cw_credence.credid <> :arg_credid
- AND cw_credencemx.subid = :arg_subid
- Group By cw_credencemx.subid;
- IF sqlca.SQLCode = -1 THEN
- arg_msg = '查询科目:'+arg_subid+'月份:'+String(sys_curyearmon)+'本期发生额失败'
- rslt = 0
- GOTO ext
- END IF
- ld_balance = ld_bdebit - ld_bcredit + ld_debit - ld_credit + arg_debit - arg_credit
- ld_rawbalance = ld_brawdebit - ld_brawcredit + ld_rawdebit - ld_rawcredit + arg_rawdebit - arg_rawcredit
- if ld_balance < 0 then
- arg_msg = '注意,科目:'+arg_subid+'月份:'+String(sys_curyearmon)+'本期余额在贷方'
- rslt = 0
- GOTO ext
- end if
- if ld_rawbalance < 0 then
- arg_msg = '注意,科目:'+arg_subid+'月份:'+String(sys_curyearmon)+'本期外币余额在贷方'
- rslt = 0
- GOTO ext
- end if
- ext:
- RETURN rslt
- end function
|