Beispiel #1
0
        protected virtual PayItemInfo PreCheckForCancelLock(PayItemInfo entity, out PayableInfo payableInfo)
        {
            var payItemInfo = PayItemBizProcessor.LoadBySysNo(entity.SysNo.Value);

            //付款状态是否为已锁定
            if (payItemInfo.Status != PayItemStatus.Locked)
            {
                ThrowBizException("PayItem_UnLock_StatusNotMatchLocked");
            }

            //校验应付款的供应商是否已锁定
            if (PayItemBizProcessor.IsHoldByVendor(payItemInfo))
            {
                ThrowBizException("PayItem_UnLock_CannotUnLockByVendor");
            }

            if (PayItemBizProcessor.IsHoldByVendorPM(payItemInfo))
            {
                ThrowBizException("PayItem_UnLock_CannotUnLockByPM");
            }

            payableInfo = PayableBizProcessor.LoadBySysNo(payItemInfo.PaySysNo.Value);
            //应付款是否为已作废或者已支付
            if (payableInfo.PayStatus == PayableStatus.Abandon)
            {
                ThrowBizException("PayItem_UnLock_AbandonStatusCannotUnLock");
            }
            else if (payableInfo.PayStatus == PayableStatus.FullPay)
            {
                ThrowBizException("PayItem_UnLock_FullPayStatusCannotUnLock");
            }
            return(payItemInfo);
        }