Ejemplo n.º 1
0
        private void SaleRMAPaidNotified(OPC_RMA rma)
        {
            using (var db = new YintaiHZhouContext())
            {
                var opcRMA = db.OPC_RMA.FirstOrDefault(x => x.Id == rma.Id);
                if (opcRMA == null)
                {
                    Logger.Error(string.Format("Invalid RMA ({0})", rma.RMANo));
                    return;
                }

                if (rma.Status != (int)EnumRMAStatus.NotifyProduct)
                {
                    Logger.ErrorFormat("invalid rma status {0}", rma.Status);
                    return;
                }

                opcRMA.UpdatedDate   = DateTime.Now;
                opcRMA.RMACashStatus = 5;//5表示已送收银
                opcRMA.UpdatedUser   = -10000;
                db.SaveChanges();

                db.OPC_RMANotificationLog.Add(new OPC_RMANotificationLog
                {
                    CreateDate = DateTime.Now,
                    CreateUser = -10000,
                    RMANo      = rma.RMANo,
                    Status     = (int)NotificationStatus.Paid,
                    Message    = string.Empty,
                });
                db.SaveChanges();
            }
        }
Ejemplo n.º 2
0
        private void Process(PropertyValueRaw p)
        {
            using (var db = new YintaiHZhouContext())
            {
                var s = db.OPC_Stock.Where(x => x.SourceStockId == p.ID)
                        .Join(db.OPC_SKU, stock => stock.SkuId, sku => sku.Id, (stock, sku) => sku).FirstOrDefault();

                if (s == null)
                {
                    Log.InfoFormat("单品未同步 {0}", p.ID);
                    return;
                }

                var inventory =
                    db.Inventories.FirstOrDefault(
                        x => x.ProductId == s.ProductId && x.PColorId == s.ColorValueId && x.PSizeId == s.SizeValueId);

                if (inventory == null)
                {
                    Log.InfoFormat("销售属性未同步 {0}", p.ID);
                    return;
                }

                var propertyExt = db.OPC_StockPropertyValueRaw.FirstOrDefault(x => x.SourceStockId == p.ID && x.Channel == SystemDefine.IntimeChannel);
                if (propertyExt == null)
                {
                    db.OPC_StockPropertyValueRaw.Add(new OPC_StockPropertyValueRaw()
                    {
                        InventoryId   = inventory.Id,
                        Channel       = SystemDefine.IntimeChannel,
                        PropertyData  = JsonConvert.SerializeObject(p),
                        SourceStockId = p.ID,
                        UpdateDate    = p.LastUpdate
                    });
                    db.SaveChanges();
                }
                else if (propertyExt.UpdateDate < p.LastUpdate || propertyExt.InventoryId != inventory.Id)
                {
                    propertyExt.InventoryId  = inventory.Id;
                    propertyExt.PropertyData = JsonConvert.SerializeObject(p);
                    propertyExt.UpdateDate   = p.LastUpdate;
                    db.SaveChanges();
                }
                var product = db.Products.FirstOrDefault(x => x.Id == inventory.ProductId);
                if (product != null)
                {
                    //商品属性更新后更新商品时间,以重新索引商品
                    product.UpdatedDate = DateTime.Now;
                    product.UpdatedUser = SystemDefine.SystemUser;
                    db.SaveChanges();
                }
            }
        }
        public Category Sync(string channelCategoryId, string channelCategoryName)
        {
            if (string.IsNullOrWhiteSpace(channelCategoryId) || string.IsNullOrWhiteSpace(channelCategoryName))
            {
                Log.WarnFormat("分类参数错误,categoryId:{0},categoryName:{1}", channelCategoryId, channelCategoryName);
                return(null);
            }

            using (var db = new YintaiHZhouContext())
            {
                // 查找分类映射关系
                var categoryMapExt = _channelMapper.GetMapByChannelValue(channelCategoryId, ChannelMapType.CategoryId);

                if (categoryMapExt == null)
                {
                    var newCategory = new Category()
                    {
                        ExCatCode  = string.Empty,
                        Name       = channelCategoryName,
                        Status     = 1,
                        UpdateDate = DateTime.Now
                    };

                    db.Categories.Add(newCategory);
                    db.SaveChanges();

                    // 添加映射关系
                    var newChannelMap = new ChannelMap()
                    {
                        LocalId       = newCategory.Id,
                        ChannnelValue = channelCategoryId,
                        MapType       = ChannelMapType.CategoryId
                    };

                    _channelMapper.CreateMap(newChannelMap);

                    return(newCategory);
                }

                var categoryExt = db.Categories.FirstOrDefault(b => b.Id == categoryMapExt.LocalId);

                // 更新品牌
                if (categoryExt != null)
                {
                    categoryExt.Name = channelCategoryName ?? string.Empty;
                    db.SaveChanges();
                }

                return(categoryExt);
            }
        }
Ejemplo n.º 4
0
        public void Process(Repository.DTO.ProductDto product, Inventory inventory)
        {
            if (string.IsNullOrEmpty(product.BrandSizeCode) && string.IsNullOrEmpty(product.BrandSizeName))
            {
                return;
            }

            using (var db = new YintaiHZhouContext())
            {
                var rpv =
                    db.OPC_StockPropertyValueRaw.FirstOrDefault(
                        x => x.InventoryId == inventory.Id && x.SourceStockId == product.ProductId);
                if (rpv == null)
                {
                    db.OPC_StockPropertyValueRaw.Add(new OPC_StockPropertyValueRaw()
                    {
                        BrandSizeCode = product.BrandSizeCode,
                        BrandSizeName = product.BrandSizeName,
                        Channel       = SystemDefine.IntimeChannel,
                        InventoryId   = inventory.Id,
                        PropertyData  = string.Empty,
                        SourceStockId = product.ProductId,
                        UpdateDate    = DateTime.Now.AddDays(-1)
                    });
                }
                else
                {
                    rpv.BrandSizeName = product.BrandSizeName;
                    rpv.BrandSizeCode = product.BrandSizeCode;
                }
                db.SaveChanges();
            }
        }
Ejemplo n.º 5
0
 public OPC_OrgInfo Add(OPC_OrgInfo orgInfo)
 {
     using (var db = new YintaiHZhouContext())
     {
         if (orgInfo != null)
         {
             var lst = db.OPC_OrgInfos.Where(t => t.ParentID == orgInfo.ParentID).OrderByDescending(t => t.OrgID);
             var e   = lst.FirstOrDefault();
             if (e == null)
             {
                 orgInfo.OrgID = orgInfo.ParentID + "001";
             }
             else
             {
                 int d = int.Parse(e.OrgID);
                 orgInfo.OrgID = (d + 1).ToString();
             }
             orgInfo.IsDel = false;
             var a = db.OPC_OrgInfos.Add(orgInfo);
             db.SaveChanges();
             return(a);
         }
         return(null);
     }
 }
Ejemplo n.º 6
0
 public void Process(StockModel stock)
 {
     using (var db = new YintaiHZhouContext())
     {
         var sku       = db.OPC_SKU.FirstOrDefault(x => x.Id == stock.SkuId);
         var inventory = db.Inventories.FirstOrDefault(x => x.ProductId == sku.ProductId && x.PColorId == sku.ColorValueId && x.PSizeId == sku.SizeValueId);
         if (inventory == null)
         {
             db.Inventories.Add(new Inventory()
             {
                 ProductId          = sku.ProductId,
                 PColorId           = sku.ColorValueId,
                 PSizeId            = sku.SizeValueId,
                 UpdateDate         = DateTime.Now,
                 UpdateUser         = SystemDefine.SystemUser,
                 ChannelInventoryId = 0,
                 Amount             = stock.Count
             });
         }
         else
         {
             inventory.UpdateDate = DateTime.Now;
             inventory.UpdateUser = SystemDefine.SystemUser;
             inventory.Amount     = stock.Count;
         }
         db.SaveChanges();
     }
 }
Ejemplo n.º 7
0
        public OPC_SKU Sync(int productId, int colorValueId, int sizeValueId)
        {
            using (var db = new YintaiHZhouContext())
            {
                var skuExt = db.OPC_SKU.FirstOrDefault(p => p.ColorValueId == colorValueId &&
                                                       p.SizeValueId == sizeValueId &&
                                                       p.ProductId == productId);
                // 如果已经存在SKU记录直接返回
                if (skuExt != null)
                {
                    return(skuExt);
                }

                // 创建新的Sku并返回
                var newSku = new OPC_SKU()
                {
                    ProductId    = productId,
                    ColorValueId = colorValueId,
                    SizeValueId  = sizeValueId
                };

                db.OPC_SKU.Add(newSku);
                db.SaveChanges();

                return(newSku);
            }
        }
Ejemplo n.º 8
0
        private IMS_Associate CreateAssociate(IMS_InviteCodeRequest request)
        {
            using (var db = new YintaiHZhouContext())
            {
                var section =
                    db.Set <Section>()
                    .FirstOrDefault(x => x.SectionCode == request.SectionCode && x.StoreId == request.StoreId);
                if (section == null)
                {
                    return(null);
                }

                var associate = new IMS_Associate()
                {
                    CreateDate   = DateTime.Now,
                    CreateUser   = request.UserId,
                    OperateRight = request.RequestType == 2 ? 7 : 3,
                    SectionId    = section.Id,
                    Status       = 1,
                    StoreId      = request.StoreId,
                    UserId       = request.UserId,
                    TemplateId   = int.Parse(ConfigurationManager.AppSettings["IMS_Default_Template"]),
                    OperatorCode = request.OperatorCode,
                };

                associate = db.Set <IMS_Associate>().Add(associate);
                db.SaveChanges();
                return(associate);
            }
        }
Ejemplo n.º 9
0
        private void NotifyFailed(OPC_Sale saleOrder, SaleOrderNotificationStatus create, IEnumerable <string> errorList)
        {
            using (var db = new YintaiHZhouContext())
            {
                using (var scope = new TransactionScope())
                {
                    db.OPC_SaleOrderNotificationLog.Add(new OPC_SaleOrderNotificationLog
                    {
                        CreateDate  = DateTime.Now,
                        CreateUser  = JobUserId,
                        SaleOrderNo = saleOrder.SaleOrderNo,
                        Status      = (int)create,
                        Message     = string.Join(";", errorList)
                    });

                    var trade = db.OPC_Sale.FirstOrDefault(x => x.SaleOrderNo == saleOrder.SaleOrderNo);
                    if (trade != null)
                    {
                        trade.CashStatus      = (int)EnumCashStatus.CashingFailed;
                        trade.CashDate        = DateTime.Now;
                        trade.UpdatedDate     = DateTime.Now;
                        trade.UpdatedUser     = JobUserId;
                        db.Entry(trade).State = EntityState.Modified;
                    }
                    db.SaveChanges();
                    scope.Complete();
                }
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        ///     Creates the specified entity.
        /// </summary>
        /// <param name="entity">The entity.</param>
        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
        public bool Create(T entity)
        {
            using (var db = new YintaiHZhouContext())
            {
                if (entity != null)
                {
                    IDbSet <T> set = db.Set <T>();

                    var errors = db.Entry(entity).GetValidationResult();
                    if (!errors.IsValid)
                    {
                        StringBuilder strb = new StringBuilder();
                        foreach (var err in errors.ValidationErrors)
                        {
                            strb.AppendLine(string.Format("property:{0} Error:{1}", err.PropertyName, err.ErrorMessage));
                        }
                        throw new Exception(strb.ToString());
                    }
                    set.Add(entity);
                    db.SaveChanges();
                    return(true);
                }
                return(false);
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 物流入库
        /// </summary>
        /// <param name="rmaNo"></param>
        public void SetRmaShipInStorage(string rmaNo)
        {
            using (var db = new YintaiHZhouContext())
            {
                var opcRma = db.OPC_RMAs.FirstOrDefault(x => x.RMANo == rmaNo);
                if (opcRma == null)
                {
                    throw new RmaException(string.Format("无效的退货单号{0}", rmaNo));
                }
                opcRma.Status          = EnumRMAStatus.ShipInStorage.AsId();
                opcRma.UpdatedDate     = DateTime.Now;
                opcRma.UpdatedUser     = -1;
                opcRma.BackDate        = DateTime.Now;
                db.Entry(opcRma).State = EntityState.Modified;
                var rmaEntity = db.RMAs.FirstOrDefault(x => x.RMANo == rmaNo);
                if (rmaEntity != null)
                {
                    rmaEntity.Status          = 12;//退货已签收
                    rmaEntity.UpdateDate      = DateTime.Now;
                    rmaEntity.UpdateUser      = -1;
                    db.Entry(rmaEntity).State = EntityState.Modified;
                }

                db.SaveChanges();
            }
        }
Ejemplo n.º 12
0
        public bool FinishPrintSale(string orderNo, int userId)
        {
            //return UpdateSatus(orderNo, userId, EnumSaleOrderStatus.PrintSale);
            using (var db = new YintaiHZhouContext())
            {
                var saleOrder = db.OPC_Sales.FirstOrDefault(x => x.SaleOrderNo == orderNo);
                if (saleOrder == null)
                {
                    throw new OpcException(string.Format("无效的销售单号:{0}", orderNo));
                }

                var order = db.Orders.FirstOrDefault(x => x.OrderNo == saleOrder.OrderNo);
                if (order == null)
                {
                    throw new OpcException(string.Format("数据异常,根据销售单号({0})无法找到订单", orderNo));
                }

                if (order.OrderProductType == (int)OrderType.SystemProduct ||
                    order.OrderProductType == (int)OrderType.None)
                {
                    if (string.IsNullOrEmpty(saleOrder.CashNum) || saleOrder.CashStatus != (int)EnumCashStatus.CashOver)
                    {
                        throw new OpcException(string.Format("系统商品订单必须完成收银后才能打印"));
                    }
                }

                saleOrder.Status      = (int)EnumSaleOrderStatus.PrintSale;
                saleOrder.UpdatedDate = DateTime.Now;
                saleOrder.UpdatedUser = userId;
                db.SaveChanges();
            }
            return(true);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 保存拆单失败的订单
        /// </summary>
        /// <param name="orderNo"></param>
        /// <param name="ErrorReason"></param>
        /// <returns></returns>
        public bool SaveSplitOrderLog(string orderNo, string reason, int status)
        {
            using (var db = new YintaiHZhouContext())
            {
                var log =
                    db.OPC_OrderSplitLog.FirstOrDefault(
                        x => x.OrderNo == orderNo && reason == x.Reason && x.Status == status);
                if (log == null)
                {
                    var opc_OrderSplitLog = new OPC_OrderSplitLog
                    {
                        OrderNo    = orderNo,
                        Reason     = reason,
                        Status     = status,
                        CreateDate = DateTime.Now
                    };
                    db.OPC_OrderSplitLog.Add(opc_OrderSplitLog);
                }

                else
                {
                    log.CreateDate = DateTime.Now;
                }

                db.SaveChanges();
            }
            return(true);
        }
Ejemplo n.º 14
0
        public Section Sync(string channelSectionId, string channelStoreNo)
        {
            using (var db = new YintaiHZhouContext())
            {
                // 检查专柜所属门店信息
                var storeExt = _storeSyncProcessor.Sync(channelStoreNo);
                if (storeExt == null)
                {
                    Log.ErrorFormat("同步专柜时发生错误,门店storeNo:{0}同步失败", channelStoreNo);
                    return(null);
                }

                var channelSection = _remoteRepository.GetSectionById(channelSectionId, channelStoreNo);
                if (channelSection == null)
                {
                    Log.ErrorFormat("远程获取专柜信息出错,counterId:{0},storeNo:{1}", channelSectionId, channelStoreNo);
                    return(null);
                }
                var section =
                    db.Sections.FirstOrDefault(x => x.SectionCode == channelSectionId && x.StoreId == storeExt.Id);
                if (section == null)
                {
                    section = db.Sections.Add(new Section()
                    {
                        CreateDate   = DateTime.Now,
                        CreateUser   = SystemDefine.SystemUser,
                        Location     = string.Empty,
                        Name         = channelSection.Name,
                        ContactPhone = string.Empty,
                        SectionCode  = channelSection.CounterId,
                        StoreId      = storeExt.Id,
                        Status       = 1,
                        UpdateDate   = DateTime.Now,
                        UpdateUser   = SystemDefine.SystemUser,
                    });
                }
                else
                {
                    if (channelSection.Status.ToUpper() != "Y")
                    {
                        section.Status     = -1;
                        section.UpdateDate = DateTime.Now;
                        section.UpdateUser = SystemDefine.SystemUser;
                    }
                    else
                    {
                        if (section.Status != 1)
                        {
                            section.Status     = 1;
                            section.UpdateDate = DateTime.Now;
                            section.UpdateUser = SystemDefine.SystemUser;
                        }
                    }
                }
                db.SaveChanges();
                return(section);
            }
        }
Ejemplo n.º 15
0
 public void DeleteByUserID(int id)
 {
     using (var db = new YintaiHZhouContext())
     {
         var lst = db.OPC_AuthRoleUsers.Where(t => t.OPC_AuthUserId == id).ToList();
         db.OPC_AuthRoleUsers.RemoveRange(lst);
         db.SaveChanges();
     }
 }
Ejemplo n.º 16
0
 private void Process(Domain.Models.Product sku)
 {
     using (var db = new YintaiHZhouContext()) {
         var p = db.Products.FirstOrDefault(t => t.Id == sku.Id);
         p.IsHasImage  = true;
         p.UpdatedDate = DateTime.Now;
         p.UpdatedUser = SystemDefine.SystemUser;
         db.SaveChanges();
     }
 }
Ejemplo n.º 17
0
 public bool DeleteByRoleMenu(int roleID)
 {
     using (var db = new YintaiHZhouContext())
     {
         var lst = db.OPC_AuthRoleMenus.Where(t => t.OPC_AuthRoleId == roleID);
         db.OPC_AuthRoleMenus.RemoveRange(lst);
         db.SaveChanges();
         return(true);
     }
 }
Ejemplo n.º 18
0
        public void Sync()
        {
            var pageIndex = 1;


            while (true)
            {
                var sections =
                    _remoteRepository.GetSectionList(pageIndex++, PageSize, DateTime.Now.AddYears(-2)).ToList();

                if (sections.Count == 0)
                {
                    Log.ErrorFormat("没有可同步的信息,pageIndex:{0},pageSize:{1},lastUpdateDatetime:{2}", pageIndex, PageSize);
                    break;
                }
                foreach (var channelSection in sections)
                {
                    var channelSectionId = channelSection.CounterId;
                    var channelStoreNo   = channelSection.StoreNo;
                    var storeExt         = _storeSyncProcessor.Sync(channelStoreNo);
                    if (storeExt == null)
                    {
                        continue;
                    }
                    using (var db = new YintaiHZhouContext())
                    {
                        var section =
                            db.Sections.FirstOrDefault(
                                x => x.SectionCode == channelSectionId && x.StoreId == storeExt.Id);
                        if (section != null)
                        {
                            continue;
                        }

                        var newSection = new Section
                        {
                            CreateDate   = DateTime.Now,
                            CreateUser   = SystemDefine.SystemUser,
                            Location     = string.Empty,
                            Name         = channelSection.Name,
                            ContactPhone = string.Empty,
                            StoreId      = storeExt.Id,
                            SectionCode  = channelSectionId,
                            Status       = 1,
                            UpdateDate   = DateTime.Now,
                            UpdateUser   = SystemDefine.SystemUser,
                        };

                        db.Sections.Add(newSection);
                        db.SaveChanges();
                    }
                }
                Thread.Sleep(500);
            }
        }
Ejemplo n.º 19
0
        /// <summary>
        /// OPC_SaleRMA  RMACashStatus 入收银状态 Status 退货单状态
        /// OPC_RMA    RMACashNum 、RMACashDate、Status 退货单状态
        /// </summary>
        /// <param name="rmaNo"></param>
        /// <param name="statusResult"></param>
        public override void Process(string rmaNo, OrderStatusResultDto statusResult)
        {
            using (var db = new YintaiHZhouContext())
            {
                var saleRMA = db.OPC_RMA.FirstOrDefault(t => t.RMANo == rmaNo);
                saleRMA.RMACashStatus = (int)EnumCashStatus.Cashed;
                saleRMA.RMAStatus     = (int)EnumReturnGoodsStatus.Valid;
                saleRMA.RMACashDate   = statusResult.PosTime;
                saleRMA.RMACashNum    = statusResult.PosSeqNo;
                saleRMA.UpdatedDate   = DateTime.Now;
                saleRMA.UpdatedUser   = -100;

                db.SaveChanges();

                if (string.IsNullOrEmpty(statusResult.Products_SaleCodes))
                {
                    Log.ErrorFormat("没有销售码信息,退货单号{0}", rmaNo);
                    return;
                }

                Log.Error("**************************************");
                Log.ErrorFormat(statusResult.Products_SaleCodes);
                Log.Error("**************************************");

                var slices = ParseProductIdAndPosCode(statusResult.Products_SaleCodes);

                foreach (var slice in slices)
                {
                    var productId = slice.Key;
                    var detail    =
                        db.OPC_RMADetail.Where(x => x.RMANo == rmaNo)
                        .Join(db.OPC_Stock.Where(s => s.SourceStockId == productId), d => d.StockId, s => s.Id,
                              (o, s) => o)
                        .FirstOrDefault();
                    if (detail != null)
                    {
                        detail.ProdSaleCode = slice.Value;
                        db.SaveChanges();
                    }
                }
            }
        }
Ejemplo n.º 20
0
        private void UpdateSaleDetailOfBackNum(OPC_SaleDetail saleDetail, int backCount, YintaiHZhouContext db)
        {
            OPC_SaleDetail sd = db.OPC_SaleDetails.FirstOrDefault(x => x.Id == saleDetail.Id);

            if (sd == null)
            {
                throw new RmaException("不存在的销售单明细");
            }
            sd.BackNumber = (sd.BackNumber.HasValue ? sd.BackNumber.Value : 0) + backCount;
            db.SaveChanges();
        }
Ejemplo n.º 21
0
        public bool Save(IEnumerable <Models.SaleOrderModel> saleOrders)
        {
            // 遍历保存销售单
            foreach (var saleOrderModel in saleOrders)
            {
                using (var db = new YintaiHZhouContext())
                {
                    using (var ts = new TransactionScope())
                    {
                        var saleOrder = new OPC_Sale()
                        {
                            OrderNo     = saleOrderModel.OrderNo,
                            SaleOrderNo = saleOrderModel.SaleOrderNo,
                            SalesType   = 0,
                            Status      = saleOrderModel.Status,
                            SellDate    = saleOrderModel.SellDate,
                            SalesAmount = saleOrderModel.SalesAmount, //是明细累加出的总金额
                            SalesCount  = saleOrderModel.SalesCount,
                            SectionId   = saleOrderModel.SectionId,
                            CreatedDate = saleOrderModel.CreatedDate,
                            CreatedUser = saleOrderModel.CreatedUser,
                            UpdatedDate = saleOrderModel.CreatedDate,
                            UpdatedUser = saleOrderModel.CreatedUser,
                            CashDate    = SplitOrderUtils.GetDefaultDateTime(),
                            RemarkDate  = SplitOrderUtils.GetDefaultDateTime()
                        };
                        db.OPC_Sale.Add(saleOrder);

                        // 保存销售单详情
                        foreach (var saleDetail in saleOrderModel.Items)
                        {
                            saleDetail.UpdatedDate = DateTime.UtcNow;
                            saleDetail.Remark      = String.Empty;
                            saleDetail.UpdatedUser = SystemDefine.SysUserId;
                            db.OPC_SaleDetail.Add(saleDetail);
                        }

                        // 检查销售是否已经存在,防止重复拆单,
                        // 处理方式:发现销售单存继续其他销售单处理,放弃当前的修改,不进行保存
                        if (db.OPC_Sale.Any(s => s.SaleOrderNo == saleOrderModel.SaleOrderNo))
                        {
                            SaveSplitOrderLog(saleOrderModel.OrderNo.ToString(CultureInfo.InvariantCulture),
                                              "已经拆单完成,重复拆单", -999);
                            continue;
                        }

                        db.SaveChanges();
                        ts.Complete();
                    }
                }
            }
            return(true);
        }
Ejemplo n.º 22
0
        /// <summary>
        /// 销售单收银状态从单品系统同步回来,目前未做销售单明细表商品销售码的回写。
        /// 信息部回传格式有问题,需要调整后再依据他们的结果调整。 wxh comment on 2014-04-20 17:45:00
        /// </summary>
        /// <param name="saleOrderNo"></param>
        /// <param name="statusResult"></param>
        public override void Process(string saleOrderNo, OrderStatusResultDto statusResult)
        {
            using (var db = new YintaiHZhouContext())
            {
                var saleOrder = db.OPC_Sale.FirstOrDefault(t => t.SaleOrderNo == saleOrderNo);
                if (saleOrder == null)
                {
                    return;
                }
                saleOrder.CashStatus  = (int)EnumCashStatus.Cashed;
                saleOrder.UpdatedDate = DateTime.Now;
                saleOrder.UpdatedUser = SystemDefine.SystemUser;
                saleOrder.CashNum     = statusResult.PosSeqNo;
                saleOrder.CashDate    = statusResult.PosTime;
                db.SaveChanges();

                if (!IsSystemProductOrder(db, saleOrderNo))
                {
                    return;
                }

                var slices = ParseProductIdAndPosCode(statusResult.Products_SaleCodes);

                foreach (var slice in slices)
                {
                    var productId = slice.Key;
                    var detail    =
                        db.OPC_SaleDetail.Where(x => x.SaleOrderNo == saleOrderNo)
                        .Join(db.OPC_Stock.Where(s => s.SourceStockId == productId), d => d.StockId, s => s.Id,
                              (o, s) => o)
                        .FirstOrDefault();
                    if (detail != null)
                    {
                        detail.ProdSaleCode = slice.Value;
                        db.SaveChanges();
                    }
                }
            }
        }
Ejemplo n.º 23
0
 /// <summary>
 ///     Updates the specified entity.
 /// </summary>
 /// <param name="entity">The entity.</param>
 /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
 public bool Update(T entity)
 {
     using (var db = new YintaiHZhouContext())
     {
         if (entity != null)
         {
             IDbSet <T> set = db.Set <T>();
             set.AddOrUpdate(entity);
             db.SaveChanges();
             return(true);
         }
         return(false);
     }
 }
Ejemplo n.º 24
0
 public bool SetEnable(int userId, bool enable)
 {
     using (var db = new YintaiHZhouContext())
     {
         OPC_AuthUser user = db.OPC_AuthUsers.FirstOrDefault(t => t.Id == userId);
         if (user != null)
         {
             user.IsValid = enable;
             db.SaveChanges();
             return(true);
         }
         return(false);
     }
 }
Ejemplo n.º 25
0
 public void SetVoidBySaleOrder(string saleOrderNo)
 {
     using (var db = new YintaiHZhouContext())
     {
         var lst = db.OPC_RMAs.Where(t => t.SaleOrderNo == saleOrderNo).ToList();
         foreach (var sale in lst)
         {
             sale.Status        = EnumRMAStatus.OutofStack.AsId();
             sale.RMAStatus     = (int)EnumReturnGoodsStatus.Valid;
             sale.RMACashStatus = EnumCashStatus.CashOver.AsId();
         }
         db.SaveChanges();
     }
 }
Ejemplo n.º 26
0
 /// <summary>
 ///     Deletes the specified identifier.
 /// </summary>
 /// <param name="id">The identifier.</param>
 /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
 public bool Delete(int id)
 {
     using (var db = new YintaiHZhouContext())
     {
         IDbSet <T> set    = db.Set <T>();
         T          entity = set.FirstOrDefault(t => t.Id == id);
         if (null != entity)
         {
             set.Remove(entity);
             db.SaveChanges();
             return(true);
         }
         return(false);
     }
 }
Ejemplo n.º 27
0
 public override void Process(string saleOrderNo, OrderStatusResultDto statusResult)
 {
     using (var db = new YintaiHZhouContext())
     {
         var saleOrder = db.OPC_Sale.FirstOrDefault(o => o.SaleOrderNo == saleOrderNo);
         if (saleOrder.Status != (int)EnumSaleOrderStatus.PrintSale)
         {
             return;
         }
         saleOrder.Status      = (int)_status;
         saleOrder.UpdatedDate = DateTime.Now;
         saleOrder.UpdatedUser = -100;
         db.SaveChanges();
     }
 }
Ejemplo n.º 28
0
 public void SetRmaPint(string rmaNo)
 {
     using (var db = new YintaiHZhouContext())
     {
         var opcRma = db.OPC_RMAs.FirstOrDefault(x => x.RMANo == rmaNo);
         if (opcRma == null)
         {
             throw new RmaException(string.Format("无效的退货单号{0}", rmaNo));
         }
         opcRma.Status      = EnumRMAStatus.PrintRMA.AsId();
         opcRma.UpdatedDate = DateTime.Now;
         opcRma.UpdatedUser = -1;
         db.SaveChanges();
     }
 }
 public override void Process(string rmaNo, OrderStatusResultDto statusResult)
 {
     using (var db = new YintaiHZhouContext())
     {
         var saleRMA = db.OPC_RMA.FirstOrDefault(o => o.RMANo == rmaNo);
         if (saleRMA.Status == (int)EnumRMAStatus.ShoppingGuideReceive || saleRMA.Status == (int)EnumRMAStatus.PayVerify)
         {
             return;
         }
         saleRMA.Status      = (int)EnumRMAStatus.ShoppingGuideReceive;
         saleRMA.UpdatedDate = DateTime.Now;
         saleRMA.UpdatedUser = -100;
         db.SaveChanges();
     }
 }
Ejemplo n.º 30
0
        public void SetSaleOrderVoid(string saleOrderNo)
        {
            using (var db = new YintaiHZhouContext())
            {
                var sale = db.OPC_Sales.FirstOrDefault(t => t.SaleOrderNo == saleOrderNo);
                if (sale == null)
                {
                    throw new Exception("销售单不存在,销售单号:" + saleOrderNo);
                }
                sale.Status = EnumSaleOrderStatus.Void.AsId();

                db.OPC_Sales.AddOrUpdate(sale);

                db.SaveChanges();
            }
        }