public ActionResult SettlementOrder(PurchaseSettlementModel model) { try { PurchaseService.Settlement(model); return(new BetterJsonResult()); } catch (Exception ex) { return(new BetterJsonResult(ex.Message)); } }
/// <summary> /// 结算采购单 /// </summary> /// <param name="model"></param> public void Settlement(PurchaseSettlementModel model) { if (model == null) { return; } if (model.SettlementAmount <= 0) { throw new Exception("请填写结算金额。"); } var order = PurchaseOrderRepository.GetModel(model.PurchaseOrderId); if (order == null) { throw new Exception("采购单不存在。"); } if (order.Status != EnumPurchaseOrderStatus.Completed) { throw new Exception("只能结算已全部到货的采购单。"); } if (order.SettlementStatus != EnumSettlementStatus.Waiting && order.SettlementStatus != EnumSettlementStatus.PartCompleted) { throw new Exception("只能结算待结算的采购单。"); } order.SettlementStatus = model.SettlementStatus; order.SettlementAmount = order.SettlementAmount + model.SettlementAmount; if (order.SettlementAmount >= order.Amount && order.SettlementStatus == EnumSettlementStatus.PartCompleted) { throw new Exception("结算金额已超过采购单总金额,不允许部分结算。"); } var financeOrder = new FinanceOrder(); financeOrder.Code = this.FinanceOrderRepository.GetSequenceNextCode(); financeOrder.Amount = model.SettlementAmount; financeOrder.Remark = model.SettlementRemark; this.PurchaseOrderRepository.Settlement(order, financeOrder); }