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); }
protected virtual PayItemInfo PreCheckForAbandon(PayItemInfo entity) { var payItemInfo = PayItemBizProcessor.LoadBySysNo(entity.SysNo.Value); if (payItemInfo.Status != PayItemStatus.Origin) { ThrowBizException("PayItem_Abandon_StatusNotMatchOrigin"); } return(payItemInfo); }
protected virtual PayItemInfo PreCheckForCancelPay(PayItemInfo entity, out PayableInfo payableInfo) { var payItemInfo = PayItemBizProcessor.LoadBySysNo(entity.SysNo.Value); if (payItemInfo.Status != PayItemStatus.Paid) { ThrowBizException("PayItem_CancelPay_OnlyPaidCanCancelPay"); } //payItemInfo.PayUserSysNo = entity.PayUserSysNo; payableInfo = PayableBizProcessor.LoadBySysNo(payItemInfo.PaySysNo.Value); payItemInfo.OrderSysNo = payableInfo.OrderSysNo; payItemInfo.BatchNumber = payableInfo.BatchNumber; if (payableInfo.PayStatus == PayableStatus.UnPay || payableInfo.PayStatus == PayableStatus.Abandon) { ThrowBizException("PayItem_CancelPay_CannotCancelPay"); } return(payItemInfo); }
protected virtual PayItemInfo PreCheckForLock(PayItemInfo entity, out PayableInfo payableInfo) { var payItemInfo = PayItemBizProcessor.LoadBySysNo(entity.SysNo.Value); if (payItemInfo.Status != PayItemStatus.Origin) { ThrowBizException("PayItem_Lock_StatusNotMatchOrigin"); } payableInfo = PayableBizProcessor.LoadBySysNo(payItemInfo.PaySysNo.Value); //应付款是否为已作废或者已支付 if (payableInfo.PayStatus == PayableStatus.Abandon) { ThrowBizException("PayItem_Lock_AbandonStatusCannotLock"); } else if (payableInfo.PayStatus == PayableStatus.FullPay) { ThrowBizException("PayItem_Lock_FullPayStatusCannotLock"); } return(payItemInfo); }
protected virtual PayItemInfo PreCheckForCancelAbandon(PayItemInfo entity, out PayableInfo payableInfo) { var payItemInfo = PayItemBizProcessor.LoadBySysNo(entity.SysNo.Value); if (payItemInfo.Status != PayItemStatus.Abandon) { ThrowBizException("PayItem_CancelAbandon_StatusNotMatchAbandon"); } payableInfo = PayableBizProcessor.LoadBySysNo(payItemInfo.PaySysNo.Value); if (payableInfo.PayStatus == PayableStatus.FullPay) { ThrowBizException("PayItem_CancelAbandon_FullPayCannotCancel"); } payableInfo.PayItemList.Where(x => x.SysNo == entity.SysNo).First().Status = PayItemStatus.Paid; if (payableInfo.PayItemList.Where(x => x.Status != PayItemStatus.Abandon).Sum(x => x.PayAmt) > payableInfo.OrderAmt) { ThrowBizException("PayItem_CancelAbandon_PayItemTotalPayAmtCannotMoreThanPayOrderAmt"); } return(payItemInfo); }