コード例 #1
0
        /// <summary>
        /// 删除一条或多条数据
        /// </summary>
        /// <returns></returns>
        public async Task <ApiResult <string> > DeleteAsync(string parm)
        {
            var res = new ApiResult <string>()
            {
                data = "1", statusCode = 200
            };

            try
            {
                var list  = Utils.StrToListString(parm);
                var dbres = ErpReturnOrderDb.Update(m => new ErpReturnOrder()
                {
                    IsDel = true
                }, m => list.Contains(m.Guid));
                if (!dbres)
                {
                    res.statusCode = (int)ApiEnum.Error;
                    res.message    = "删除数据失败~";
                }
            }
            catch (Exception ex)
            {
                res.statusCode = (int)ApiEnum.Error;
                res.message    = ApiEnum.Error.GetEnumText() + ex.Message;
            }
            return(await Task.Run(() => res));
        }
コード例 #2
0
        /// <summary>
        /// 查询今日待办事项,销售统计
        /// </summary>
        /// <returns></returns>
        public Task <ApiResult <BackLogReport> > GetBackLogReport()
        {
            var res = new ApiResult <BackLogReport>()
            {
                statusCode = (int)ApiEnum.Error
            };

            try
            {
                DateTime dayTime   = Convert.ToDateTime(DateTime.Now.AddDays(1).ToShortDateString() + " 00:00:00");
                string   startWeek = Utils.GetMondayDate().ToShortDateString();
                string   endWeek   = Utils.GetSundayDate().AddDays(1).ToShortDateString();
                //昨天销售额
                var yesterDayTime = Convert.ToDateTime(DateTime.Now.ToShortDateString() + " 00:00:00");
                var yesterDay     = Db.Queryable <ErpSaleOrder>().Where(m => SqlFunc.DateIsSame(m.AddDate, yesterDayTime)).Sum(m => m.RealMoney);
                //上周销售额
                var yesterWeekTimeStart = Utils.GetMondayDate().AddDays(-7).ToShortDateString();
                var yesterWeekTimeEnd   = Utils.GetMondayDate().AddDays(-1).ToShortDateString();
                var yesterWeek          = Db.Queryable <ErpSaleOrder>().Where(m => SqlFunc.Between(m.AddDate, yesterWeekTimeStart, yesterWeekTimeEnd)).Sum(m => m.RealMoney);
                //上个月销售额
                var yesterMonthTime = DateTime.Now.AddMonths(-1);
                var yesterMonth     = Db.Queryable <ErpSaleOrder>().Where(m => SqlFunc.DateIsSame(m.AddDate, yesterMonthTime, DateType.Month)).Sum(m => m.RealMoney);
                var model           = new BackLogReport
                {
                    //今日返货数量
                    ReturnCount = ErpReturnOrderDb.Count(m => SqlFunc.DateIsSame(m.AddDate, dayTime)),
                    //今日退货数量
                    BackCount = ErpBackGoodsDb.Count(m => SqlFunc.DateIsSame(m.AddDate, dayTime)),
                    //库存报警
                    StockPoliceCount = ErpGoodsSkuDb.Count(m => m.StockSum < 10),
                    //今日加入会员
                    JoinUserCount = ErpShopUserDb.Count(m => SqlFunc.DateIsSame(m.RegDate, dayTime)),
                    //今日销售金额
                    DaySaleMoney = Db.Queryable <ErpSaleOrder>().Where(m => SqlFunc.DateIsSame(m.AddDate, dayTime)).Sum(m => m.RealMoney),
                    //本周销售金额
                    WeekSaleMoney = Db.Queryable <ErpSaleOrder>().Where(m => SqlFunc.Between(m.AddDate, Utils.GetMondayDate(), Utils.GetMondayDate().AddDays(7))).Sum(m => m.RealMoney),
                    //本月销售金额
                    MonthSaleMoney = Db.Queryable <ErpSaleOrder>().Where(m => SqlFunc.DateIsSame(m.AddDate, dayTime, DateType.Month)).Sum(m => m.RealMoney)
                };
                //日同比  同比增长率=(本年的指标值-去年同期的值)÷去年同期的值*100%
                model.DayOnYear = yesterDay == 0?0:Convert.ToDouble((model.DaySaleMoney - yesterDay) / yesterDay * 100);
                //周同比
                model.WeekOnYear = yesterWeek == 0 ? 0 : Convert.ToDouble((model.WeekSaleMoney - yesterWeek) / yesterWeek * 100);
                //月同比
                model.MonthOnYear = yesterMonth == 0 ? 0 : Convert.ToDouble((model.MonthSaleMoney - yesterMonth) / yesterMonth * 100);

                res.data       = model;
                res.statusCode = (int)ApiEnum.Status;
            }
            catch (Exception ex)
            {
                res.message = ApiEnum.Error.GetEnumText() + ex.Message;
            }
            return(Task.Run(() => res));
        }
コード例 #3
0
        /// <summary>
        /// 添加一条数据
        /// </summary>
        /// <returns></returns>
        public async Task <ApiResult <string> > AddAsync(ErpReturnOrder parm, string goodsJson)
        {
            var res = new ApiResult <string>()
            {
                data = "1", statusCode = (int)ApiEnum.Error
            };

            try
            {
                parm.Guid = Guid.NewGuid().ToString();
                //判断返货订单字符串是否为空
                if (string.IsNullOrEmpty(goodsJson))
                {
                    res.message = "返货订单里面的商品不能为空~";
                    return(await Task.Run(() => res));
                }
                var isStockSuccess = true;
                //解析字符串转换成List对象
                var roGoodsList = JsonConvert.DeserializeObject <List <ErpReturnGoods> >(goodsJson);
                var guidArray   = roGoodsList.Select(m => m.GoodsGuid).ToList();
                //根据返货的商品,查询平台的条形码
                var goodsSkuList = ErpGoodsSkuDb.GetList(m => guidArray.Contains(m.Guid));
                //根据返货的商品,查询加盟商的条形码
                var shopsSkuList = ErpShopSkuDb.GetList(m => guidArray.Contains(m.SkuGuid) && m.ShopGuid == parm.ShopGuid);
                //验证返货商品的数量是否大于库存数量
                foreach (var item in roGoodsList.GroupBy(m => m.GoodsGuid).Select(m => new ErpReturnGoods {
                    GoodsGuid = m.Key, ReturnCount = m.Sum(g => g.ReturnCount)
                }).ToList())
                {
                    var shopStockSum = shopsSkuList.Find(m => m.SkuGuid == item.GoodsGuid);
                    if (shopStockSum.Stock < item.ReturnCount)
                    {
                        isStockSuccess = false;
                    }
                    //加盟商条形码表,减少返货的库存
                    shopsSkuList.Find(m => m.SkuGuid == item.GoodsGuid).Stock = shopStockSum.Stock - item.ReturnCount;
                    //平台条形码表,增加返货的库存
                    var goodsStock = goodsSkuList.Find(m => m.Guid == item.GoodsGuid);
                    goodsSkuList.Find(m => m.Guid == item.GoodsGuid).StockSum = goodsStock.StockSum + item.ReturnCount;
                }
                if (!isStockSuccess)
                {
                    res.message = "返货的商品数量大于库存数量";
                    return(await Task.Run(() => res));
                }
                foreach (var item in roGoodsList)
                {
                    item.OrderGuid = parm.Guid;
                    item.Guid      = Guid.NewGuid().ToString();
                    item.ShopGuid  = parm.ShopGuid;
                }
                parm.GoodsSum = roGoodsList.Sum(m => m.ReturnCount);
                //查询今天返货数量
                DateTime dayTime  = Convert.ToDateTime(DateTime.Now.AddDays(1).ToShortDateString() + " 00:00:00");
                var      dayCount = ErpReturnOrderDb.Count(m => SqlFunc.DateIsSame(m.AddDate, dayTime));
                parm.Number = "RO-" + DateTime.Now.ToString("yyyyMMdd") + "-" + (1001 + dayCount);
                var result = Db.Ado.UseTran(() =>
                {
                    //添加订单
                    Db.Insertable(parm).ExecuteCommand();
                    //添加订单商品
                    Db.Insertable(roGoodsList).ExecuteCommand();
                    //修改平台库存
                    Db.Updateable(goodsSkuList).ExecuteCommand();
                    //修改加盟商库存
                    Db.Updateable(shopsSkuList).ExecuteCommand();
                });
                res.statusCode = (int)ApiEnum.Status;
                if (!result.IsSuccess)
                {
                    res.statusCode = (int)ApiEnum.Error;
                    res.message    = result.ErrorMessage;
                }
            }
            catch (Exception ex)
            {
                res.statusCode = (int)ApiEnum.Error;
                res.message    = ApiEnum.Error.GetEnumText() + ex.Message;
            }
            return(await Task.Run(() => res));
        }
コード例 #4
0
        /// <summary>
        /// 修改一条数据
        /// </summary>
        /// <returns></returns>
        public async Task <ApiResult <string> > ModifyStatusAsync(ErpReturnGoods parm)
        {
            var res = new ApiResult <string>()
            {
                data = "1", statusCode = (int)ApiEnum.Error
            };

            try
            {
                var model = ErpReturnGoodsDb.GetSingle(m => m.Guid == parm.Guid);
                if (model != null)
                {
                    //查询加盟商库存中,该条商品的信息
                    var shopGoods = ErpShopSkuDb.GetSingle(m => m.ShopGuid == model.ShopGuid && m.SkuGuid == model.GoodsGuid);
                    //查询平台  该条商品的信息
                    var platformGoods = ErpGoodsSkuDb.GetSingle(m => m.Guid == model.GoodsGuid);
                    //查询返货订单信息
                    var returnOrderModel = ErpReturnOrderDb.GetSingle(m => m.Guid == model.OrderGuid);
                    if (model.Status == 1)
                    {
                        //如果状态修改为非正常   需要增加加盟商库存   减少平台库存
                        model.Status = 2;
                        //加盟商增加
                        shopGoods.Stock += model.ReturnCount;
                        //需要判断平台库存是否足够
                        if (platformGoods.StockSum < model.ReturnCount)
                        {
                            res.message = "平台库存不足!";
                            return(await Task.Run(() => res));
                        }
                        //平台库存减少
                        platformGoods.StockSum -= model.ReturnCount;
                        //减少返货订单总数
                        returnOrderModel.GoodsSum -= model.ReturnCount;
                    }
                    else
                    {
                        //如果状态修改为非正常   需要减少加盟商库存  增加平台库存
                        model.Status = 1;
                        //需要判断加盟商库存是否足够
                        if (shopGoods.Stock < model.ReturnCount)
                        {
                            res.message = "加盟商库存不足!";
                            return(await Task.Run(() => res));
                        }
                        //加盟商减少
                        shopGoods.Stock -= model.ReturnCount;
                        //平台库存增加
                        platformGoods.StockSum += model.ReturnCount;
                        //增加返货订单总数
                        returnOrderModel.GoodsSum += model.ReturnCount;
                    }

                    var result = Db.Ado.UseTran(() =>
                    {
                        //修改加盟商信息
                        Db.Updateable(shopGoods).ExecuteCommand();
                        //修改平台库存
                        Db.Updateable(platformGoods).ExecuteCommand();
                        //修改返货订单信息
                        Db.Updateable(returnOrderModel).ExecuteCommand();
                        //修改返货商品
                        Db.Updateable(model).ExecuteCommand();
                    });
                    if (!result.IsSuccess)
                    {
                        res.message = result.ErrorMessage;
                    }
                    res.statusCode = (int)ApiEnum.Status;
                }
                else
                {
                    res.message = "没有查询到该条数据~";
                }
            }
            catch (Exception ex)
            {
                res.message = ApiEnum.Error.GetEnumText() + ex.Message;
            }
            return(await Task.Run(() => res));
        }