コード例 #1
0
 public ActionResult SettlementOrder(PurchaseSettlementModel model)
 {
     try
     {
         PurchaseService.Settlement(model);
         return(new BetterJsonResult());
     }
     catch (Exception ex)
     {
         return(new BetterJsonResult(ex.Message));
     }
 }
コード例 #2
0
        /// <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);
        }