Example #1
0
        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));
            }
        }
Example #2
0
        /// <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());
        }