public IHttpActionResult SetSalesOrderCash(string salesorderno, [FromBody] SalesOrderCashRequest request, [UserProfile] UserProfile userProfile) { //request.StoreId = CheckStoreId(request.StoreId); //_log.Debug("salesorderorderno:" + salesorderno); var result = CheckRole4Store(userProfile, null); if (!result.Result) { return(BadRequest(result.Error)); } if (request == null || String.IsNullOrWhiteSpace(salesorderno)) { return(BadRequest("参数错误")); } request.DataRoleStores = userProfile.StoreIds.ToList(); request.UserId = userProfile.Id; request.SalesOrderNo = salesorderno; var r = _saleService.SetSalesOrderCash(request); if (r.IsSuccess) { return(Ok()); } else { return(BadRequest(r.Message)); } }
/// <summary> /// 设置销售单收银状态 /// </summary> /// <param name="request"></param> /// <returns></returns> public ExectueResult SetSalesOrderCash(SalesOrderCashRequest request) { //throw new NotImplementedException(); /* * valid * 1.目前只有 orderproducetype=2的可以设置收银状态 * 2.只有在物流入库前可以设置收银状态 * 3.只有当前用户权限允许下可以设置状态(门店) * * exec * 1.设置收银状态为EnumCashStatus.CashOver 完成收银,操作人 ID,操作时间 */ var model = _saleRepository.GetItemModel(request.SalesOrderNo); if (model == null) { throw new SaleOrderNotExistsException(request.SalesOrderNo); } if (!model.OrderProductType.HasValue || model.OrderProductType != (int)OrderProductType.MiniSilver) { throw new SalesOrderException(String.Format("销售单{0},不是迷你银订单。", model.SaleOrderNo)); } //以入库的不能开通 if (!AllowSetCashSatus.Contains(model.Status)) { throw new SalesOrderException(String.Format("销售单{0},当前状态{1}({2}),不能录入收银。", model.SaleOrderNo, ((EnumSaleOrderStatus)model.Status).GetDescription(), model.Status)); } if (request.DataRoleStores != null && !request.DataRoleStores.Contains(model.StoreId)) { throw new SalesOrderException(String.Format("销售单{0},门店{1}({2}),您的权限还不能操作。", model.SaleOrderNo, model.StoreName, model.StoreId)); } model.CashDate = DateTime.Now; model.CashNum = request.CashNo; model.CashStatus = EnumCashStatus.CashOver.AsId(); _saleRepository.Update4Cash(model, request.UserId); return(new OkExectueResult()); }