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); }