Ejemplo n.º 1
0
 public MessageModel <string> Post([FromBody] PdProduct model)
 {
     PdProductService.AddEntity(model);
     return(new MessageModel <string>
     {
         success = true,
         msg = "添加成功"
     });
 }
Ejemplo n.º 2
0
        public MessageModel <PdProduct> Get(int id)
        {
            PdProduct model = PdProductService.FindSingle(f => f.Id == id);
            bool      flag  = model == null;

            return(new MessageModel <PdProduct>
            {
                success = !flag,
                msg = !flag ? "查询成功" : $"没有id为{id}的数据",
                model = !flag ? model : new PdProduct()
            });
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 计算税费
        /// </summary>
        /// <param name="shoppingCart"></param>
        /// <param name="warehouseSysNo"></param>
        /// <returns></returns>
        /// <remarks>2016-01-25 王耀发 创建</remarks>
        private CrShoppingCart CalculateTaxFee(CrShoppingCart shoppingCart, int?warehouseSysNo)
        {
            decimal TaxFee = 0;

            if (warehouseSysNo != null && warehouseSysNo != 0)
            {
                //获得对应仓库明细
                WhWarehouse wdata = Hyt.BLL.Warehouse.WhWarehouseBo.GetEntity((int)warehouseSysNo);
                //订单税费 王耀发 2016-1-13 创建
                if (shoppingCart.ShoppingCartGroups != null)
                {
                    foreach (var item in shoppingCart.ShoppingCartGroups)
                    {
                        foreach (var productItem in item.ShoppingCartItems)
                        {
                            //如果对应仓库类型为保税和直邮,计算税费 王耀发 2016-1-13 创建
                            if (wdata.WarehouseType == (int)Hyt.Model.WorkflowStatus.WarehouseStatus.仓库类型.保税 || wdata.WarehouseType == (int)Hyt.Model.WorkflowStatus.WarehouseStatus.仓库类型.直邮)
                            {
                                PdProduct Product = PdProductBo.Instance.GetProductBySysNo(productItem.ProductSysNo);
                                if (Product != null)
                                {
                                    if (Product.Tax != 0)
                                    {
                                        var SalesAmount = productItem.SalesUnitPrice * productItem.Quantity - productItem.DiscountAmount;
                                        //2016-4-22 王耀发 修改
                                        TaxFee += (SalesAmount * (Product.Tax / 100));
                                    }
                                }
                            }
                        }
                        //2016-4-22 王耀发 修改
                        if (TaxFee != 0)
                        {
                            TaxFee += (shoppingCart.FreightAmount * Convert.ToDecimal(0.119));
                        }
                    }
                }
            }
            shoppingCart.TaxFee = TaxFee;
            return(shoppingCart);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 入库个别商品信息
        /// </summary>
        /// <param name="supplyCode">供应链代码</param>
        /// <param name="sysNos">商品系统编号,逗号分隔</param>
        /// <returns></returns>
        /// <remarks>2016-4-22 王耀发 创建</remarks>
        public override Result <string> StockInSupplyProduct(string sysNos)
        {
            var result = new Result <string>()
            {
                Status     = false,
                StatusCode = -1,
                Message    = "未知错误"
            };

            lock (lockHelper)//防止多人同时操作造成产品重复添加
            {
                try
                {
                    //是否有仓库
                    WhWarehouse Warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetAllWarehouseList().FirstOrDefault(w => w.Supply == (int)Code && w.Status == (int)Model.WorkflowStatus.WarehouseStatus.仓库状态.启用);
                    if (Warehouse == null)
                    {
                        result.Message = string.Format("尚未创建{0}专用仓库,如果已创建请更新后台缓存!", Code.ToString());
                        return(result);
                    }

                    string[] sysNoArray = sysNos.Split(',');
                    int      UserSysNo  = AdminAuthenticationBo.Instance.Current.Base.SysNo;
                    for (var i = 0; i < sysNoArray.Length; i++)
                    {
                        int       SysNo   = int.Parse(sysNoArray[i]);
                        ScProduct Product = IScProductDao.Instance.GetScProductInfo(SysNo);
                        //未入库的商品可入库
                        if (Product.ProductSysNo == 0)
                        {
                            using (var tran = new System.Transactions.TransactionScope())
                            {
                                var jsonObject = JObject.Parse(Product.Receipt);
                                //PdProductList PdData = new PdProductList();
                                string ErpCode      = jsonObject["SkuId"].ToString();
                                string ProductName  = jsonObject["Name"].ToString();
                                string EasName      = jsonObject["Name"].ToString();
                                string DefaultImage = jsonObject["DefaultImage"].ToString();
                                string Remark       = jsonObject["Remark"].ToString();

                                //商品类目
                                var           CategoryName = jsonObject["CategoryName"].ToString();
                                PdCategorySql PdCmodel     = new PdCategorySql();
                                PdCmodel.ParentSysNo    = 0;
                                PdCmodel.CategoryName   = CategoryName;
                                PdCmodel.Code           = "";
                                PdCmodel.SeoTitle       = CategoryName;
                                PdCmodel.SeoKeyword     = CategoryName;
                                PdCmodel.SeoDescription = CategoryName;
                                PdCmodel.TemplateSysNo  = 0;
                                PdCmodel.IsOnline       = 1;
                                PdCmodel.Status         = 1;
                                PdCmodel.CreatedBy      = 1;
                                PdCmodel.CreatedDate    = DateTime.Now;
                                PdCmodel.LastUpdateBy   = 1;
                                PdCmodel.LastUpdateDate = DateTime.Now;

                                PdCategoryAssociation PdCAmodel = new PdCategoryAssociation();
                                PdCAmodel.IsMaster       = 1;
                                PdCAmodel.CreatedBy      = 1;
                                PdCAmodel.CreatedDate    = DateTime.Now;
                                PdCAmodel.LastUpdateBy   = 1;
                                PdCAmodel.LastUpdateDate = DateTime.Now;
                                //品牌
                                //品牌
                                int     BrandSysNo;
                                var     BrandName = jsonObject["BrandName"].ToString();
                                PdBrand pEnity    = PdBrandBo.Instance.GetEntityByName(BrandName);
                                //判断商品品牌是否存在
                                if (pEnity != null)
                                {
                                    BrandSysNo = pEnity.SysNo;
                                }
                                else
                                {
                                    var pmodel = new PdBrand();
                                    pmodel.Name   = BrandName;
                                    pmodel.Status = 1;
                                    BrandSysNo    = IPdBrandDao.Instance.Create(pmodel);
                                }

                                string GrosWeight = jsonObject["Weight"].ToString();
                                string Price      = jsonObject["Price"].ToString();
                                var    prmodel    = SetPriceModel(Decimal.Parse(Price), (int)Hyt.Model.WorkflowStatus.ProductStatus.产品价格来源.基础价格, 0);  // new PdPrice();
                                var    sprmodel   = SetPriceModel(Decimal.Parse(Price), (int)Hyt.Model.WorkflowStatus.ProductStatus.产品价格来源.会员等级价, 1); // new PdPrice();
                                var    sspmodel   = SetPriceModel(Decimal.Parse(Price), (int)Hyt.Model.WorkflowStatus.ProductStatus.产品价格来源.门店销售价, 0); // new PdPrice();

                                //绑定原产地
                                var    orginSysNo = 0;
                                var    orginName  = "其他";
                                Origin Origin     = BLL.Basic.OriginBo.Instance.GetEntityByName(orginName);
                                orginSysNo = Origin != null ? Origin.SysNo : DataAccess.Basic.IOriginDao.Instance.Insert(new Origin()
                                {
                                    Origin_Name = orginName, CreatedBy = UserSysNo, CreatedDate = DateTime.Now, LastUpdateBy = UserSysNo, LastUpdateDate = DateTime.Now
                                });

                                var currentInfo = BLL.Authentication.AdminAuthenticationBo.Instance.Current;
                                int agentSysNo  = 1;
                                int dealerSysNo = 0;
                                if (currentInfo.Dealer != null)
                                {
                                    dealerSysNo = currentInfo.Dealer.SysNo;
                                    agentSysNo  = currentInfo.DealerCreatedBy;
                                }
                                int TradeMode = 0;
                                switch (jsonObject["TradeMode"].ToString())
                                {
                                case "3":
                                    TradeMode = (int)Model.WorkflowStatus.ProductStatus.商品类型.完税商品;
                                    break;

                                case "2":
                                    TradeMode = (int)Model.WorkflowStatus.ProductStatus.商品类型.直邮商品;
                                    break;

                                default:
                                    TradeMode = (int)Model.WorkflowStatus.ProductStatus.商品类型.普通商品;
                                    break;
                                }

                                //创建商品
                                var excellst = new List <PdProductList>();
                                var model    = new PdProductList
                                {
                                    ErpCode               = ErpCode,                   //商品编号
                                    ProductName           = ProductName,               //商品名称
                                    EasName               = EasName,                   //商品名称
                                    BrandSysNo            = BrandSysNo,                //品牌
                                    ProductType           = TradeMode,                 //商品类型(模式)
                                    OriginSysNo           = orginSysNo,                //国家
                                    Barcode               = "",
                                    GrosWeight            = Decimal.Parse(GrosWeight), //重量
                                    Tax                   = "0",
                                    PriceRate             = 0M,
                                    PriceValue            = 0M,
                                    TradePrice            = 0M,
                                    PdPrice               = prmodel,
                                    PdSalePrice           = sprmodel,
                                    PdStoreSalePrice      = sspmodel,
                                    PdCategorySql         = PdCmodel,
                                    PdCategoryAssociation = PdCAmodel,
                                    DealerSysNo           = dealerSysNo,
                                    AgentSysNo            = agentSysNo,//默认为总部代理商
                                    CreatedBy             = 1,
                                    CreatedDate           = DateTime.Now,
                                    LastUpdateBy          = 1,
                                    LastUpdateDate        = DateTime.Now,
                                    SalesMeasurementUnit  = "g",
                                    ProductDesc           = System.Web.HttpUtility.UrlEncode(Remark, System.Text.Encoding.GetEncoding("UTF-8")).Replace("+", " ")//描述
                                };
                                excellst.Add(model);
                                try
                                {
                                    //新增商品
                                    IPdProductDao.Instance.CreatePdProduct(excellst);
                                    //根据编号获取商品
                                    PdProduct Entity = IPdProductDao.Instance.GetEntityByErpCode(ErpCode);
                                    if (Entity != null)
                                    {
                                        List <string> imageslist = new List <string>();
                                        string        images     = jsonObject["ImageList"].ToString();
                                        imageslist = JsonConvert.DeserializeObject <List <string> >(images);
                                        for (var j = 0; j < imageslist.Count; j++)
                                        {
                                            if (j < 5)
                                            {
                                                var productImage = new PdProductImage();
                                                productImage.ProductSysNo = Entity.SysNo;
                                                productImage.DisplayOrder = j;
                                                productImage.ImageUrl     = imageslist[j].ToString();
                                                if (j == 0)
                                                {
                                                    productImage.Status = (int)Hyt.Model.WorkflowStatus.ProductStatus.商品图片状态.显示;
                                                }
                                                else
                                                {
                                                    productImage.Status = (int)Hyt.Model.WorkflowStatus.ProductStatus.商品图片状态.隐藏;
                                                }
                                                int res = IPdProductImageDao.Instance.Insert(productImage);
                                            }
                                        }

                                        //更新商品临时表的ProductSysNo
                                        ScProductBo.Instance.UpdateProductSysNo(SysNo, Entity.SysNo);
                                        //创建商品库存
                                        ScProductBo.Instance.ProCreateSupplyStock((int)Code, Entity.SysNo, decimal.Parse(jsonObject["StockQuantity"].ToString()), UserSysNo);
                                    }
                                    else
                                    {
                                        result.Message = "获取商品数据错误";
                                        result.Status  = false;
                                        return(result);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    result.Message = string.Format("数据错误:{0}", ex.Message);
                                    result.Status  = false;
                                    return(result);
                                }
                                tran.Complete();
                            }
                        }
                        result.Status = true;
                    }
                }
                catch (Exception ex)
                {
                    result.Message    = ex.Message;
                    result.Status     = false;
                    result.StatusCode = -2;
                }
                return(result);
            }
        }
Ejemplo n.º 5
0
        private void AddBaseTaskObjectToList(List <BaseTask> listObject)
        {
            BaseTask bsAT                    = new BsArea();
            BaseTask bsDP                    = new BsDeliveryPayment();
            BaseTask bsPT                    = new BsPaymentType();
            BaseTask bsCode                  = new BsCode();
            BaseTask bsOrganization          = new BsOrganization();
            BaseTask bsOrganizationWarehouse = new BsOrganizationWarehouse();

            BaseTask crCustomer = new CrCustomer();
            BaseTask crCL       = new CrCustomerLevel();
            BaseTask crCQ       = new CrCustomerQuestion();
            BaseTask crRA       = new CrReceiveAddress();

            BaseTask dsMallType      = new DsMallType();
            BaseTask dsDealerLevel   = new DsDealerLevel();
            BaseTask feArticle       = new FeArticle();
            BaseTask feAC            = new FeArticleCategory();
            BaseTask feCS            = new FeCommentSupport();
            BaseTask fepc            = new FeProductComment();
            BaseTask fePCI           = new FeProductCommentImage();
            BaseTask fePCR           = new FeProductCommentReply();
            BaseTask feSearchKeyword = new FeSearchKeyword();
            BaseTask feadvertgroup   = new FeAdvertGroup();
            BaseTask feadvertitem    = new FeAdvertItem();
            BaseTask feproductgroup  = new FeProductGroup();
            BaseTask feproductitem   = new FeProductItem();

            BaseTask fnIT      = new FnInvoiceType();
            BaseTask fninvoice = new FnInvoice();

            BaseTask fnpv = new  FnReceiptVoucher();
            BaseTask fnReceiptVoucherItem = new FnReceiptVoucherItem();
            BaseTask fnop                 = new FnOnlinePayment();
            BaseTask fnPaymentVoucher     = new FnPaymentVoucher();
            BaseTask fnPaymentVoucherItem = new FnPaymentVoucherItem();

            BaseTask lgDelivery              = new LgDelivery();
            BaseTask lgDI                    = new LgDeliveryItem();
            BaseTask lgDS                    = new LgDeliveryScope();
            BaseTask lgDT                    = new LgDeliveryType();
            BaseTask lgDUC                   = new LgDeliveryUserCredit();
            BaseTask lgPT                    = new LgPickupType();
            BaseTask lgsettlement            = new LgSettlement();
            BaseTask lgSI                    = new LgSettlementItem();
            BaseTask lgDeliveryPrintTemplate = new LgDeliveryPrintTemplate();
            BaseTask pdAttribute             = new PdAttribute();
            BaseTask pdAG                    = new PdAttributeGroup();
            BaseTask pdAGA                   = new PdAttributeGroupAssociation();
            BaseTask pdAO                    = new PdAttributeOption();
            BaseTask pdBrand                 = new PdBrand();
            BaseTask pdCGA                   = new PdCatAttributeGroupAso();
            BaseTask pdCategory              = new PdCategory();
            BaseTask pdCA                    = new PdCategoryAssociation();
            BaseTask pdPrice                 = new PdPrice();
            BaseTask pdProduct               = new PdProduct();
            BaseTask pdPA                    = new PdProductAssociation();
            BaseTask pdProductAttribute      = new PdProductAttribute();
            BaseTask pdPI                    = new PdProductImage();
            BaseTask pdTemplate              = new PdTemplate();
            BaseTask pdProductStatistics     = new PdProductStatistics();

            BaseTask soOrder         = new SoOrder();
            BaseTask soOrderItem     = new SoOrderItem();
            BaseTask soRA            = new SoReceiveAddress();
            BaseTask SyUG            = new SyUserGroup();
            BaseTask syGU            = new SyGroupUser();
            BaseTask syMenu          = new SyMenu();
            BaseTask syMenuPrivilege = new SyMenuPrivilege();
            BaseTask syPrivilege     = new SyPrivilege();
            BaseTask syRole          = new SyRole();
            BaseTask syRoleMenu      = new SyRoleMenu();
            BaseTask syRolePrivilege = new SyRolePrivilege();
            BaseTask syPermission    = new SyPermission();
            BaseTask syUser          = new SyUser();
            BaseTask syUW            = new SyUserWarehouse();
            BaseTask syMyMenu        = new SyMyMenu();

            BaseTask spcombo                  = new SpCombo();
            BaseTask spComboItem              = new SpComboItem();
            BaseTask spcopon                  = new spcoupon();
            BaseTask sqpromotion              = new SPpromotion();
            BaseTask spromotiongift           = new SPpromotiongift();
            BaseTask sppromotionoverlay       = new SPpromotionoverlay();
            BaseTask sppromotionrule          = new SPpromotionrule();
            BaseTask sppromotionrulecondition = new SPpromotionrulecondition();
            BaseTask sppromotionrulekeyvalue  = new SPpromotionrulekeyvalue();
            BaseTask syTaskConfig             = new SyTaskConfig();

            BaseTask whStockOut     = new WhStockOut();
            BaseTask whStockOutItem = new WhstockOutItem();
            BaseTask whwarehouse    = new WhWarehouse();
            BaseTask whwa           = new WHwarehousearea();
            BaseTask whwdy          = new WHwarehouseDeliveryType();
            BaseTask whWPT          = new WhWarehousePickupType();
            BaseTask whstockin      = new WhStockIn();
            BaseTask whstockinItem  = new WHStockinItem();
            BaseTask rcReturn       = new RCReturn();
            BaseTask rcReturnItem   = new RcReturnItem();

            listObject.Add(bsAT);
            listObject.Add(bsDP);
            listObject.Add(bsPT);
            listObject.Add(bsCode);
            listObject.Add(bsOrganization);
            listObject.Add(bsOrganizationWarehouse);

            listObject.Add(crCustomer);
            listObject.Add(crCL);
            listObject.Add(crCQ);
            listObject.Add(crRA);
            listObject.Add(dsMallType);
            listObject.Add(dsDealerLevel);
            listObject.Add(feArticle);
            listObject.Add(feAC);
            listObject.Add(feCS);
            listObject.Add(fePCI);
            listObject.Add(fePCR);
            listObject.Add(fepc);
            listObject.Add(feSearchKeyword);
            listObject.Add(feadvertgroup);
            listObject.Add(feadvertitem);
            listObject.Add(feproductgroup);
            listObject.Add(feproductitem);

            listObject.Add(fnIT);
            listObject.Add(fnpv);
            listObject.Add(fnReceiptVoucherItem);
            listObject.Add(fnop);
            listObject.Add(fninvoice);

            listObject.Add(fnPaymentVoucher);
            listObject.Add(fnPaymentVoucherItem);

            listObject.Add(lgDelivery);
            listObject.Add(lgDI);
            listObject.Add(lgDS);
            listObject.Add(lgDT);
            listObject.Add(lgPT);
            listObject.Add(lgsettlement);
            listObject.Add(lgSI);
            listObject.Add(lgDeliveryPrintTemplate);

            listObject.Add(pdAttribute);
            listObject.Add(pdAG);
            listObject.Add(pdAGA);
            listObject.Add(pdAO);
            listObject.Add(pdBrand);
            listObject.Add(pdCGA);
            listObject.Add(pdCategory);
            listObject.Add(pdCA);
            listObject.Add(pdPrice);
            listObject.Add(pdProduct);
            listObject.Add(pdPA);
            listObject.Add(pdProductAttribute);
            listObject.Add(pdTemplate);
            listObject.Add(pdProductStatistics);

            listObject.Add(soOrder);
            listObject.Add(soOrderItem);

            listObject.Add(spcombo);
            listObject.Add(spComboItem);
            listObject.Add(spcopon);
            listObject.Add(sqpromotion);
            listObject.Add(spromotiongift);
            //listObject.Add(sppromotionoverlay);
            listObject.Add(sppromotionrule);
            listObject.Add(sppromotionrulecondition);
            listObject.Add(sppromotionrulekeyvalue);

            listObject.Add(syGU);
            listObject.Add(syUW);
            listObject.Add(SyUG);
            listObject.Add(syMenu);
            listObject.Add(syUser);
            listObject.Add(syPermission);

            listObject.Add(syMenuPrivilege);
            listObject.Add(syPrivilege);
            listObject.Add(syRole);
            listObject.Add(syRoleMenu);
            listObject.Add(syRolePrivilege);
            listObject.Add(syMyMenu);
            listObject.Add(syTaskConfig);

            listObject.Add(whStockOut);
            listObject.Add(whStockOutItem);
            listObject.Add(whwarehouse);
            listObject.Add(whwa);
            listObject.Add(whwdy);
            listObject.Add(whWPT);
            listObject.Add(whstockin);
            listObject.Add(whstockinItem);
            listObject.Add(rcReturn);
            listObject.Add(rcReturnItem);
            listObject.Add(lgDUC);
            listObject.Add(pdPI);
            listObject.Add(soRA);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 商品入库到平台
        /// </summary>
        /// <remarks> 2016-5-4 刘伟豪 实现 </remarks>
        public override Result <string> StockInSupplyProduct(string sysNos)
        {
            var result = new Result <string>()
            {
                Status     = false,
                StatusCode = -1,
                Message    = "未知错误"
            };

            lock (lockHelper)//防止多人同时操作造成产品重复添加
            {
                try
                {
                    //是否有仓库
                    WhWarehouse Warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetAllWarehouseList().FirstOrDefault(w => w.Supply == (int)Code && w.Status == (int)Model.WorkflowStatus.WarehouseStatus.仓库状态.启用);
                    if (Warehouse == null)
                    {
                        result.Message = string.Format("尚未创建{0}专用仓库,如果已创建请更新后台缓存!", Code.ToString());
                        return(result);
                    }

                    foreach (var c in sysNos.Split(','))
                    {
                        int       id        = int.Parse(c);
                        int       UserSysNo = Hyt.BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo;
                        ScProduct Product   = BLL.Supply.ScProductBo.Instance.GetScProductInfo(id);
                        //未入库的商品可入库
                        if (Product.ProductSysNo == 0)
                        {
                            using (var tran = new System.Transactions.TransactionScope())
                            {
                                var       json   = JObject.Parse(Product.Receipt);
                                PdProduct PdData = new PdProduct();

                                //绑定品牌
                                var     brandSysNo = 0;
                                var     brandName  = json["ProClass"].ToString().Trim();
                                PdBrand PdBrand    = BLL.Product.PdBrandBo.Instance.GetEntityByName(brandName);
                                brandSysNo = PdBrand != null ? PdBrand.SysNo : DataAccess.Product.IPdBrandDao.Instance.Create(new PdBrand()
                                {
                                    Name = brandName, DisplayOrder = 0, Status = (int)Model.WorkflowStatus.ProductStatus.品牌状态.启用
                                });
                                PdData.BrandSysNo = brandSysNo;

                                //绑定原产地
                                var    orginSysNo = 0;
                                var    orginName  = "其他";
                                Origin Origin     = BLL.Basic.OriginBo.Instance.GetEntityByName(orginName);
                                orginSysNo = Origin != null ? Origin.SysNo : DataAccess.Basic.IOriginDao.Instance.Insert(new Origin()
                                {
                                    Origin_Name = orginName, CreatedBy = UserSysNo, CreatedDate = DateTime.Now, LastUpdateBy = UserSysNo, LastUpdateDate = DateTime.Now
                                });
                                PdData.OriginSysNo = orginSysNo;

                                PdData.ErpCode     = PdData.Barcode = Product.SKU;
                                PdData.EasName     = string.Format("({0}产品){1}", Code.ToString(), Product.ProductName);
                                PdData.ProductName = PdData.SeoTitle = PdData.SeoKeyword = PdData.SeoDescription = Product.ProductName;
                                PdData.ViewCount   = PdData.DisplayOrder = 0;
                                var weight = 0.00m;
                                decimal.TryParse(json["ProWeight"].ToString(), out weight);
                                PdData.GrosWeight           = weight * 0.001m;
                                PdData.NetWeight            = 0.00m;
                                PdData.SalesMeasurementUnit = "kg";
                                PdData.ValueUnit            = "CNY";
                                PdData.VolumeUnit           = "m";
                                PdData.Tax         = PdData.Freight = PdData.VolumeValue = PdData.Rate = PdData.PriceRate = PdData.PriceValue = PdData.DealerPriceValue = PdData.TradePrice = 0.00m;
                                PdData.CostPrice   = Product.Price;
                                PdData.FreightFlag = "Y";

                                PdData.AgentSysNo  = 1;
                                PdData.DealerSysNo = 0;

                                //各状态
                                PdData.ProductType      = (int)Model.WorkflowStatus.ProductStatus.商品类型.普通商品;
                                PdData.CanFrontEndOrder = (int)Model.WorkflowStatus.ProductStatus.商品是否前台下单.是;
                                PdData.IsFrontDisplay   = (int)Model.WorkflowStatus.ProductStatus.前台显示.是;
                                PdData.Status           = (int)Model.WorkflowStatus.ProductStatus.商品状态.架;

                                PdData.CreatedBy   = PdData.LastUpdateBy = UserSysNo;
                                PdData.CreatedDate = PdData.LastUpdateDate = PdData.Stamp = DateTime.Now;

                                //创建商品
                                int productSysNo = BLL.Product.PdProductBo.Instance.CreateProduct(PdData);
                                if (productSysNo > 0)
                                {
                                    //创建商品基础价
                                    PdPrice BasicModel = new PdPrice();
                                    BasicModel.ProductSysNo = productSysNo;
                                    BasicModel.Price        = Product.Price;
                                    BasicModel.PriceSource  = (int)Model.WorkflowStatus.ProductStatus.产品价格来源.基础价格;
                                    BasicModel.SourceSysNo  = 0;
                                    BasicModel.Status       = (int)Model.WorkflowStatus.ProductStatus.产品价格状态.效;
                                    Hyt.BLL.Product.PdPriceBo.Instance.Create(BasicModel);
                                    //创建商品会员价
                                    PdPrice SaleModel = new PdPrice();
                                    SaleModel.ProductSysNo = productSysNo;
                                    SaleModel.Price        = Product.Price;
                                    SaleModel.PriceSource  = (int)Model.WorkflowStatus.ProductStatus.产品价格来源.会员等级价;
                                    SaleModel.SourceSysNo  = 1;
                                    SaleModel.Status       = (int)Model.WorkflowStatus.ProductStatus.产品价格状态.效;
                                    Hyt.BLL.Product.PdPriceBo.Instance.Create(SaleModel);
                                    //更新商品临时表的ProductSysNo
                                    Hyt.BLL.Supply.ScProductBo.Instance.UpdateProductSysNo(id, productSysNo);
                                    //创建商品库存
                                    var stock = GetProSkuStock(Product.SKU);
                                    Hyt.BLL.Supply.ScProductBo.Instance.ProCreateSupplyStock((int)Code, productSysNo, stock, UserSysNo);
                                }
                                tran.Complete();
                            }
                        }
                        else
                        {
                            var PdData = BLL.Product.PdProductBo.Instance.GetProductNoCache(Product.ProductSysNo);
                            var stock  = GetProSkuStock(Product.SKU);
                            Hyt.BLL.Supply.ScProductBo.Instance.ProCreateSupplyStock((int)Code, Product.ProductSysNo, stock, UserSysNo);
                        }
                    }
                    result.Message    = "入库成功!";
                    result.Status     = true;
                    result.StatusCode = 1;
                }
                catch (Exception ex)
                {
                    result.Message    = ex.Message;
                    result.Status     = false;
                    result.StatusCode = -2;
                }

                return(result);
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 二期基础数据
        /// </summary>
        /// <param name="listObject"></param>
        private void AddBaseTaskObject2ToList1(List <BaseTask> listObject)
        {
            BaseTask bsAT = new BsArea();

            BaseTask crCustomer = new CrCustomer();
            BaseTask crCL       = new CrCustomerLevel();
            BaseTask crCQ       = new CrCustomerQuestion();
            BaseTask crRA       = new CrReceiveAddress();

            BaseTask feArticle = new FeArticle();
            BaseTask feAC      = new FeArticleCategory();
            BaseTask feCS      = new FeCommentSupport();
            BaseTask fepc      = new FeProductComment();
            BaseTask fePCI     = new FeProductCommentImage();
            BaseTask fePCR     = new FeProductCommentReply();

            BaseTask lgDS  = new LgDeliveryScope();
            BaseTask lgDUC = new LgDeliveryUserCredit();

            BaseTask pdAttribute        = new PdAttribute();
            BaseTask pdAG               = new PdAttributeGroup();
            BaseTask pdAGA              = new PdAttributeGroupAssociation();
            BaseTask pdAO               = new PdAttributeOption();
            BaseTask pdBrand            = new PdBrand();
            BaseTask pdCGA              = new PdCatAttributeGroupAso();
            BaseTask pdCategory         = new PdCategory();
            BaseTask pdCA               = new PdCategoryAssociation();
            BaseTask pdPrice            = new PdPrice();
            BaseTask pdProduct          = new PdProduct();
            BaseTask pdPA               = new PdProductAssociation();
            BaseTask pdProductAttribute = new PdProductAttribute();
            //BaseTask pdPI = new PdProductImage();
            BaseTask pdTemplate = new PdTemplate();

            BaseTask soRA = new SoReceiveAddress();

            BaseTask syUser = new SyUser();
            BaseTask syUW   = new SyUserWarehouse();

            BaseTask whwarehouse = new WhWarehouse();
            BaseTask whwa        = new WHwarehousearea();

            listObject.Add(bsAT);

            listObject.Add(crCustomer);
            listObject.Add(crCL);
            listObject.Add(crCQ);
            listObject.Add(crRA);

            listObject.Add(feArticle);
            listObject.Add(feAC);
            listObject.Add(feCS);
            listObject.Add(fepc);
            listObject.Add(fePCI);
            listObject.Add(fePCR);

            listObject.Add(lgDS);
            listObject.Add(lgDUC);

            listObject.Add(pdAttribute);
            listObject.Add(pdAG);
            listObject.Add(pdAGA);
            listObject.Add(pdAO);
            listObject.Add(pdBrand);
            listObject.Add(pdCGA);
            listObject.Add(pdCategory);
            listObject.Add(pdCA);
            listObject.Add(pdPrice);
            listObject.Add(pdProduct);
            listObject.Add(pdPA);
            listObject.Add(pdProductAttribute);
            listObject.Add(pdTemplate);
            //listObject.Add(pdPI);

            listObject.Add(soRA);

            listObject.Add(syUW);
            listObject.Add(syUser);

            listObject.Add(whwarehouse);
            listObject.Add(whwa);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 从POS系统获取更新商品价格
        /// </summary>
        /// <returns></returns>
        /// <remarks>2016-05-19 陈海裕 创建</remarks>
        public Result UpdateProductPricesFormPOS()
        {
            lock (lockObject)
            {
                Result result       = new Result();
                string ErrorProduct = "";
                try
                {
                    IList <Grand.Platform.Api.Contract.Model.BranchPrice> branchPrices = null;
                    using (var service = new Pisen.Framework.Service.Proxy.ServiceProxy <IPosService>())
                    {
                        var response = service.Channel.GetBranchPriceList();
                        branchPrices = response.BranchPrices;
                    }

                    if (branchPrices != null)
                    {
                        List <int> sysNoList = new List <int>();
                        foreach (var item in branchPrices)
                        {
                            ErrorProduct = "ERPCODE:" + item.item_no;
                            List <Model.PdPrice> tempList = new List <Model.PdPrice>();
                            Model.PdPrice        price    = null;

                            //price.ProductSysNo = Convert.ToInt32(item.item_no);
                            if (item.base_price1 != 0)
                            {
                                price             = new Model.PdPrice();
                                price.Price       = item.base_price1;
                                price.SourceSysNo = 0;
                                tempList.Add(price);
                            }

                            if (item.base_price2 != 0)
                            {
                                price             = new Model.PdPrice();
                                price.Price       = item.base_price2;
                                price.SourceSysNo = 1;
                                tempList.Add(price);
                            }

                            if (item.base_price3 != 0)
                            {
                                price             = new Model.PdPrice();
                                price.Price       = item.base_price3;
                                price.SourceSysNo = 6;
                                tempList.Add(price);
                            }

                            if (item.base_price4 != 0)
                            {
                                price             = new Model.PdPrice();
                                price.Price       = item.base_price4;
                                price.SourceSysNo = 7;
                                tempList.Add(price);
                            }

                            if (item.base_price5 != 0)
                            {
                                price             = new Model.PdPrice();
                                price.Price       = item.base_price5;
                                price.SourceSysNo = 8;
                                tempList.Add(price);
                            }

                            if (item.base_price6 != 0)
                            {
                                price             = new Model.PdPrice();
                                price.Price       = item.base_price6;
                                price.SourceSysNo = 9;
                                tempList.Add(price);
                            }

                            if (tempList.Count > 0)
                            {
                                PdProduct tempProduct = BLL.Product.PdProductBo.Instance.GetProductByErpCode(item.item_no);
                                if (tempProduct == null)
                                {
                                    continue;
                                }
                                IList <PdPrice> tempPriceList = BLL.Product.PdPriceBo.Instance.GetProductPrice(tempProduct.SysNo);
                                PdPrice         proPrice      = new PdPrice();
                                foreach (var pri in tempList)
                                {
                                    proPrice = (PdPrice)tempPriceList.Where(p => p.SourceSysNo == pri.SourceSysNo).FirstOrDefault();
                                    if ((proPrice.Price != pri.Price) && !sysNoList.Contains(tempProduct.SysNo))
                                    {
                                        sysNoList.Add(tempProduct.SysNo);
                                        proPrice.Price = pri.Price;
                                        BLL.Product.PdPriceBo.Instance.Update(proPrice);
                                    }
                                }
                            }
                        }

                        // 更新索引
                        for (int i = 0; i < sysNoList.Count; i++)
                        {
                            //缓存清理
                            Hyt.BLL.Cache.DeleteCache.ProductInfo(sysNoList[i]);
                            //更新索引
                            BLL.Web.ProductIndexBo.Instance.UpdateProductIndex(sysNoList[i]);
                        }
                    }

                    BLL.Log.SysLog.Instance.Info(Model.WorkflowStatus.LogStatus.系统日志来源.后台, "从Pos系统获取更新商品价格成功", Model.WorkflowStatus.LogStatus.系统日志目标类型.商品基本信息, 0);

                    result.Status = true;
                }
                catch (Exception ex)
                {
                    BLL.Log.SysLog.Instance.Error(Model.WorkflowStatus.LogStatus.系统日志来源.后台, "从Pos系统获取更新商品价格异常:UpdateProductPricesFormPOS;" + ErrorProduct, ex);
                }

                return(result);
            }
        }
Ejemplo n.º 9
0
        public override Result AddOrderTrade(int orderSysno)
        {
            Result result = new Result();

            try
            {
                SoOrder order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno);
                if (order == null)
                {
                    result.Message = "该订单不存在";
                    return(result);
                }
                order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo);
                order.OrderItemList  = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo);
                ParaVoucherFilter voucherFilter = new ParaVoucherFilter();
                voucherFilter.SourceSysNo = order.SysNo;
                CBFnReceiptVoucher recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault();
                recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo);
                // 收货人 区 市 省
                BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                BsArea receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);
                // 发货人 市
                CBWhWarehouse warehouse   = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo);
                BsArea        shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo);

                DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo);

                LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo);

                EasycrossOrder newOrder = new EasycrossOrder();
                newOrder.OrderHead             = new OrderHead();
                newOrder.OrderList             = new List <OrderList>();
                newOrder.OrderPaymentLogistics = new OrderPaymentLogistics();

                newOrder.OrderHead.accessType         = "1";
                newOrder.OrderHead.agentCode          = "4404580006";
                newOrder.OrderHead.agentName          = "珠海易跨境电子商务服务有限公司";
                newOrder.OrderHead.appStatus          = "2";
                newOrder.OrderHead.appTime            = DateTime.Now.ToString("yyyyMMddHHmmss");
                newOrder.OrderHead.appUid             = "1105910159";
                newOrder.OrderHead.appUname           = "东方口岸";
                newOrder.OrderHead.batchNumbers       = "";
                newOrder.OrderHead.cbeCode            = "D00236";
                newOrder.OrderHead.cbeName            = "珠海爱勤电子科技有限公司";
                newOrder.OrderHead.charge             = order.OrderAmount.ToString();
                newOrder.OrderHead.consignee          = order.ReceiveAddress.Name;
                newOrder.OrderHead.consigneeAddress   = order.ReceiveAddress.StreetAddress;
                newOrder.OrderHead.consigneeCountry   = "";
                newOrder.OrderHead.consigneeTelephone = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber)
                    ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber;
                newOrder.OrderHead.currency         = "142";
                newOrder.OrderHead.customer         = order.ReceiveAddress.Name;
                newOrder.OrderHead.customerId       = order.ReceiveAddress.IDCardNo;
                newOrder.OrderHead.ecpCode          = "W0098";
                newOrder.OrderHead.ecpName          = "珠海爱勤电子科技有限公司";
                newOrder.OrderHead.freight          = order.FreightAmount.ToString();
                newOrder.OrderHead.goodsValue       = order.ProductAmount.ToString();
                newOrder.OrderHead.idType           = "1";
                newOrder.OrderHead.ieType           = "I";
                newOrder.OrderHead.modifyMark       = "1";
                newOrder.OrderHead.note             = "";
                newOrder.OrderHead.orderNo          = order.SysNo.ToString();
                newOrder.OrderHead.other            = "";
                newOrder.OrderHead.shipper          = BLL.Stores.StoresBo.Instance.GetStoreById(0).ErpName;
                newOrder.OrderHead.shipperAddress   = "";
                newOrder.OrderHead.shipperCountry   = "142";
                newOrder.OrderHead.shipperTelephone = "";
                newOrder.OrderHead.tax = order.TaxFee.ToString();
                newOrder.OrderHead.totalLogisticsNo = "";
                newOrder.OrderHead.tradeCountry     = "";
                newOrder.OrderHead.wrapType         = "";
                foreach (SoOrderItem item in order.OrderItemList)
                {
                    PdProduct      product      = BLL.Product.PdProductBo.Instance.GetProduct(item.SysNo);
                    PdProductStock productStock = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, item.ProductSysNo);

                    string  brandName = "无";
                    PdBrand brand     = BLL.Product.PdBrandBo.Instance.GetEntity(product.BrandSysNo);
                    if (brand != null)
                    {
                        brandName = brand.Name;
                    }

                    OrderList orderList = new OrderList();
                    orderList.barCode        = "";
                    orderList.brand          = brandName;
                    orderList.codeTs         = "";
                    orderList.country        = "";
                    orderList.currency       = "142";
                    orderList.describe       = "";
                    orderList.discount       = "";
                    orderList.giftFlag       = "";
                    orderList.goodsModel     = "";
                    orderList.goodsName      = item.ProductName;
                    orderList.goodsNo        = productStock.ProductSku;
                    orderList.itemNo         = "";
                    orderList.note           = "";
                    orderList.packNum        = "";
                    orderList.price          = item.SalesUnitPrice.ToString();
                    orderList.priceTotal     = item.SalesAmount.ToString();
                    orderList.purposeCode    = "";
                    orderList.quantity       = item.Quantity.ToString();
                    orderList.shelfGoodsName = item.ProductName;
                    orderList.taxCode        = "";
                    orderList.unit           = "007";
                    orderList.wasteMaterials = "1";
                    orderList.wrapType       = "";
                    newOrder.OrderList.Add(orderList);
                }
                //newOrder.OrderPaymentLogistics.logisticsCode = "";
                newOrder.OrderPaymentLogistics.logisticsName = deliveryType.DeliveryTypeName;
                //newOrder.OrderPaymentLogistics.logisticsNo = "";
                //newOrder.OrderPaymentLogistics.paymentCode = "";
                //newOrder.OrderPaymentLogistics.paymentName = "";
                //newOrder.OrderPaymentLogistics.paymentNo = "";
                //newOrder.OrderPaymentLogistics.paymentType = "";
                //newOrder.OrderPaymentLogistics.trackNo = "";

                XmlSerializerNamespaces xmlNs = new XmlSerializerNamespaces();
                xmlNs.Add("nousexmlns", "http://www.chinaport.gov.cn/ecss");
                string xmlData = this.XmlSerialize <EasycrossOrder>(newOrder, xmlNs);
                xmlData = xmlData.Replace(":nousexmlns", "");
                xmlData = xmlData.Replace("encoding=\"utf-16\"", "encoding=\"utf-8\"");

                // 上传文件
                FtpUtil ftp         = new FtpUtil(FTPUri, FTPName, FTPPassword);
                string  ftpResponse = "";
                ftp.UploadFile(FTPUri, "Testfilename.xml", Encoding.UTF8.GetBytes(xmlData), out ftpResponse);
            }
            catch (Exception ex)
            {
                result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace;
                return(result);
            }

            return(result);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 导入excel
        /// </summary>
        /// <param name="stream">导入的excel stream format</param>
        /// <param name="operatorSysno">操作人员编号</param>
        /// <returns>封装的泛型result对象</returns>
        /// <remarks>2015-09-10 王耀发 创建</remarks>
        public Result ImportExcelGaoJie(Stream stream, int operatorSysno)
        {
            DataTable dt   = null;
            var       cols = DicColsMappingGaoJie.Select(p => p.Value).ToArray();

            try
            {
                dt = ExcelUtil.ImportExcel(stream, cols);
            }
            catch (Exception ex)
            {
                //exception happened,some not caughted
                return(new Result
                {
                    Message = string.Format("数据导入错误,请选择正确的excel文件"),
                    Status = false
                });
            }
            if (dt == null)
            {
                //not all the cols mapped
                return(new Result
                {
                    Message = string.Format("请选择正确的excel文件!"),
                    Status = false
                });
            }
            var excellst    = new List <LgGaoJieGoodsInfo>();
            var lstToInsert = new List <LgGaoJieGoodsInfo>();
            var lstToUpdate = new List <LgGaoJieGoodsInfo>();

            for (var i = 0; i < dt.Rows.Count; i++)
            {
                int excelRow = i;
                for (var j = 0; j < dt.Columns.Count; j++)
                {
                    //HS编码、条形码可以为空
                    if (j != 6 && j != 7)
                    {
                        if ((dt.Rows[i][j] == null || string.IsNullOrEmpty(dt.Rows[i][j].ToString())))
                        {
                            return(new Result
                            {
                                Message = string.Format("excel表第{0}行数据不能有空值", (excelRow + 1)),
                                Status = false
                            });
                        }
                    }
                }
                //商品编号
                var       ErpCode = dt.Rows[i][DicColsMappingGaoJie["ErpCode"]].ToString().Trim();
                PdProduct pEntity = PdProductBo.Instance.GetProductByErpCode(ErpCode);
                if (pEntity == null)
                {
                    return(new Result
                    {
                        Message = string.Format("excel表第{0}行商品编号不存在", (excelRow + 1)),
                        Status = false
                    });
                }
                //物品名称
                var goods_name = dt.Rows[i][DicColsMappingGaoJie["goods_name"]].ToString().Trim();
                //税号
                var goods_ptcode = dt.Rows[i][DicColsMappingGaoJie["goods_ptcode"]].ToString().Trim();
                //品牌
                var brand = dt.Rows[i][DicColsMappingGaoJie["brand"]].ToString().Trim();
                //规格型号
                var goods_spec = dt.Rows[i][DicColsMappingGaoJie["goods_spec"]].ToString().Trim();
                //原产国代码
                var ycg_code = dt.Rows[i][DicColsMappingGaoJie["ycg_code"]].ToString().Trim();
                //HS编码
                var hs_code = dt.Rows[i][DicColsMappingGaoJie["hs_code"]].ToString().Trim();
                //条形码
                var goods_barcode = dt.Rows[i][DicColsMappingGaoJie["goods_barcode"]].ToString().Trim();

                var model = new LgGaoJieGoodsInfo
                {
                    ProductSysNo   = pEntity.SysNo,
                    goods_name     = goods_name,
                    goods_ptcode   = goods_ptcode,
                    brand          = brand,
                    goods_spec     = goods_spec,
                    hs_code        = hs_code,
                    ycg_code       = ycg_code,
                    goods_barcode  = goods_barcode,
                    CreatedBy      = operatorSysno,
                    CreatedDate    = DateTime.Now,
                    LastUpdateBy   = operatorSysno,
                    LastUpdateDate = DateTime.Now
                };
                excellst.Add(model);
            }
            var lstExisted = DataAccess.Logistics.ILogisticsDao.Instance.GetAllGaoJieGoodsInfo();

            foreach (var excelModel in excellst)
            {
                if (lstExisted.Any(e => e.ProductSysNo == excelModel.ProductSysNo))
                {
                    lstToUpdate.Add(excelModel);
                }
                else //insert
                {
                    lstToInsert.Add(excelModel);
                }
            }
            try
            {
                DataAccess.Logistics.ILogisticsDao.Instance.CreateExcelGaoJieGoodsInfo(lstToInsert);
                DataAccess.Logistics.ILogisticsDao.Instance.UpdateExcelGaoJieGoodsInfo(lstToUpdate);
            }
            catch (Exception ex)
            {
                SysLog.Instance.WriteLog(LogStatus.SysLogLevel.Error, LogStatus.系统日志来源.后台, "导入高捷商品备案信息",
                                         LogStatus.系统日志目标类型.商品基本信息, 0, ex, null, operatorSysno);
                return(new Result
                {
                    Message = string.Format("数据更新错误:{0}", ex.Message),
                    Status = false
                });
            }
            var msg = lstToInsert.Count > 0 ? string.Format("成功导入{0}条数据!", lstToInsert.Count) : "";

            msg += lstToUpdate.Count > 0 ? string.Format("成功修改{0}条数据!", lstToUpdate.Count) : "";
            return(new Result
            {
                Message = msg,
                Status = true
            });
        }
Ejemplo n.º 11
0
        public Result ImportSpecialPriceExcel(System.IO.Stream stream, int operatorSysno)
        {
            var result = new Result();

            DataTable dt = null;

            var cols     = DisColsMapping.Select(p => p.Value).ToArray();
            var existlst = new List <PdProduct>();

            try
            {
                dt = ExcelUtil.ImportExcel(stream, cols);
            }
            catch (System.Exception ex)
            {
                //exception happened,some not caughted
                result.Message = string.Format("数据导入错误,请选择正确的excel文件");
                result.Status  = false;
                return(result);
            }
            if (dt == null)
            {
                //not all the cols mapped
                result.Message = string.Format("请选择正确的excel文件!");
                result.Status  = false;
                return(result);
            }
            string                msg             = "";
            var                   excellst        = new List <PdProductList>();
            var                   lstToInsert     = new List <PdProductList>();
            var                   lstToUpdate     = new List <PdProductList>();
            List <PdProduct>      productList     = Hyt.BLL.Product.PdProductBo.Instance.GetAllProductDataBase();
            List <DsSpecialPrice> specProductList = DsSpecialPriceBo.Instance.GetAllProductDsSpecialPrice();
            IList <DsDealer>      dealerList      = DsDealerBo.Instance.GetAllDealerList();

            for (var i = 0; i < dt.Rows.Count; i++)
            {
                int excelRow = i + 2;

                for (var j = 0; j < dt.Columns.Count; j++)
                {
                    if ((dt.Rows[i][j] == null || string.IsNullOrEmpty(dt.Rows[i][j].ToString().Trim())))
                    {
                        result.Message = string.Format("excel表第{0}行第{1}列数据不能有空值", excelRow, (j + 1));
                        result.Status  = false;
                        return(result);
                    }
                }
                //商品编号
                var ErpCode = dt.Rows[i][DisColsMapping["ErpCode"]].ToString().Trim();
                //条形码.
                var Barcode        = dt.Rows[i][DisColsMapping["Barcode"]].ToString().Trim();
                var DsDealerName   = dt.Rows[i][DisColsMapping["DsDealerName"]].ToString().Trim();
                var DsUserPrice    = dt.Rows[i][DisColsMapping["DsUserPrice"]].ToString().Trim();
                var ShopPrice      = dt.Rows[i][DisColsMapping["ShopPrice"]].ToString().Trim();
                var WholesalePrice = dt.Rows[i][DisColsMapping["WholesalePrice"]].ToString().Trim();

                PdProduct       tempProduct = productList.Find(p => p.ErpCode == ErpCode);
                List <DsDealer> tempDealer  = dealerList.Where(p => p.DealerName == DsDealerName).ToList();
                if (tempProduct != null && tempDealer.Count > 0 && !string.IsNullOrEmpty(DsUserPrice) && !string.IsNullOrEmpty(ShopPrice))
                {
                    DsSpecialPrice tempSpecialMod = specProductList.Find(p => p.DealerSysNo == tempDealer[0].SysNo && p.ProductSysNo == tempProduct.SysNo);
                    DsSpecialPrice specialMod;
                    try
                    {
                        specialMod = new DsSpecialPrice()
                        {
                            ProductSysNo   = tempProduct.SysNo,
                            DealerSysNo    = tempDealer[0].SysNo,
                            CreatedBy      = 1,
                            CreatedDate    = System.DateTime.Now,
                            LastUpdateBy   = 1,
                            LastUpdateDate = System.DateTime.Now,
                            Price          = decimal.Parse(DsUserPrice),
                            ShopPrice      = decimal.Parse(ShopPrice),
                            WholesalePrice = decimal.Parse(WholesalePrice),
                            Status         = 1
                        };
                    }
                    catch (System.Exception e) {
                        if (!string.IsNullOrEmpty(msg))
                        {
                            msg += ",";
                        }
                        msg += "商品编码:" + Barcode + "出现异常-" + e.Message;
                        continue;
                    }
                    if (tempSpecialMod == null)
                    {
                        DsSpecialPriceBo.Instance.Create(specialMod);
                    }
                    else
                    {
                        specialMod.SysNo = tempSpecialMod.SysNo;
                        DsSpecialPriceBo.Instance.Update(specialMod);
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(msg))
                    {
                        msg += ",";
                    }
                    if (tempProduct == null)
                    {
                        msg += "商品编码:" + Barcode + "出现异常-档案中无当前编码商品";
                    }
                    if (tempDealer.Count == 0)
                    {
                        msg += "商品编码:" + Barcode + "出现异常-无指定分销商存在";
                    }
                    if (string.IsNullOrEmpty(DsUserPrice))
                    {
                        msg += "商品编码:" + Barcode + "出现异常-分销商会员价格不能为空";
                    }
                    if (string.IsNullOrEmpty(ShopPrice))
                    {
                        msg += "商品编码:" + Barcode + "出现异常-分销商线下门店价格不能为空";
                    }
                }
            }
            if (string.IsNullOrEmpty(msg))
            {
                result.Message = "操作成功";
            }
            else
            {
                result.Message = "操作成功-其中有部分商品有异常" + msg;
            }

            result.Status = true;
            return(result);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 入库个别商品信息
        /// </summary>
        /// <param name="supplyCode">供应链代码</param>
        /// <param name="sysNos">商品系统编号,逗号分隔</param>
        /// <returns></returns>
        /// <remarks>2016-4-22 王耀发 创建</remarks>
        public override Result <string> StockInSupplyProduct(string sysNos)
        {
            var result = new Result <string>()
            {
                Status     = false,
                StatusCode = -1,
                Message    = "未知错误"
            };

            lock (lockHelper)//防止多人同时操作造成产品重复添加
            {
                try
                {
                    //是否有仓库
                    WhWarehouse Warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetAllWarehouseList().FirstOrDefault(w => w.Supply == (int)Code && w.Status == (int)Model.WorkflowStatus.WarehouseStatus.仓库状态.启用);
                    if (Warehouse == null)
                    {
                        result.Message = string.Format("尚未创建{0}专用仓库,如果已创建请更新后台缓存!", Code.ToString());
                        return(result);
                    }

                    string[] sysNoArray = sysNos.Split(',');
                    int      UserSysNo  = AdminAuthenticationBo.Instance.Current.Base.SysNo;
                    for (var i = 0; i < sysNoArray.Length; i++)
                    {
                        int       SysNo   = int.Parse(sysNoArray[i]);
                        ScProduct Product = IScProductDao.Instance.GetScProductInfo(SysNo);
                        //未入库的商品可入库
                        if (Product.ProductSysNo == 0)
                        {
                            using (var tran = new System.Transactions.TransactionScope())
                            {
                                var       jsonObject = JObject.Parse(Product.Receipt);
                                PdProduct PdData     = new PdProduct();
                                PdData.ErpCode     = jsonObject["skuid"].ToString();
                                PdData.ProductName = jsonObject["goodsname"].ToString();
                                PdData.EasName     = jsonObject["goodsname"].ToString();
                                if (jsonObject["barcode"] != null)
                                {
                                    PdData.Barcode = jsonObject["barcode"].ToString();
                                }
                                if (jsonObject["cess"] != null)
                                {
                                    PdData.Tax = decimal.Parse(jsonObject["cess"].ToString());
                                }
                                PdData.CanFrontEndOrder = 1;
                                PdData.AgentSysNo       = 1;
                                PdData.DealerSysNo      = 0;
                                //默认品牌为其他
                                var     brandSysNo = 0;
                                var     brandName  = "其他";
                                PdBrand PdBrand    = BLL.Product.PdBrandBo.Instance.GetEntityByName(brandName);
                                brandSysNo = PdBrand != null ? PdBrand.SysNo : DataAccess.Product.IPdBrandDao.Instance.Create(new PdBrand()
                                {
                                    Name = brandName, DisplayOrder = 0, Status = 1
                                });
                                PdData.BrandSysNo = brandSysNo;
                                //绑定原产地
                                var    orginSysNo = 0;
                                var    orginName  = "其他";
                                Origin Origin     = BLL.Basic.OriginBo.Instance.GetEntityByName(orginName);
                                orginSysNo = Origin != null ? Origin.SysNo : DataAccess.Basic.IOriginDao.Instance.Insert(new Origin()
                                {
                                    Origin_Name = orginName, CreatedBy = UserSysNo, CreatedDate = DateTime.Now, LastUpdateBy = UserSysNo, LastUpdateDate = DateTime.Now
                                });
                                PdData.OriginSysNo = orginSysNo;

                                PdData.CreatedBy      = UserSysNo;
                                PdData.CreatedDate    = DateTime.Now;
                                PdData.LastUpdateBy   = UserSysNo;
                                PdData.LastUpdateDate = DateTime.Now;
                                //创建商品
                                int ProductSysNo = PdProductBo.Instance.CreateProduct(PdData);
                                if (ProductSysNo > 0)
                                {
                                    //创建商品基础价
                                    PdPrice BasicModel = new PdPrice();
                                    BasicModel.ProductSysNo = ProductSysNo;
                                    BasicModel.Price        = decimal.Parse(jsonObject["price"].ToString());
                                    BasicModel.PriceSource  = 0;
                                    BasicModel.SourceSysNo  = 0;
                                    BasicModel.Status       = 1;
                                    PdPriceBo.Instance.Create(BasicModel);
                                    //创建商品会员价
                                    PdPrice SaleModel = new PdPrice();
                                    SaleModel.ProductSysNo = ProductSysNo;
                                    SaleModel.Price        = decimal.Parse(jsonObject["price"].ToString());
                                    SaleModel.PriceSource  = 10;
                                    SaleModel.SourceSysNo  = 1;
                                    SaleModel.Status       = 1;
                                    PdPriceBo.Instance.Create(SaleModel);
                                    //更新商品临时表的ProductSysNo
                                    ScProductBo.Instance.UpdateProductSysNo(SysNo, ProductSysNo);
                                    //创建商品库存
                                    ScProductBo.Instance.ProCreateSupplyStock((int)Code, ProductSysNo, decimal.Parse(jsonObject["number"].ToString()), UserSysNo);
                                }
                                tran.Complete();
                            }
                        }
                        result.Status = true;
                    }
                }
                catch (Exception ex)
                {
                    result.Message    = ex.Message;
                    result.Status     = false;
                    result.StatusCode = -2;
                }
                return(result);
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 导入excel
        /// </summary>
        /// <param name="stream">导入的excel stream format</param>
        /// <param name="operatorSysno">操作人员编号</param>
        /// <returns>封装的泛型result对象</returns>
        /// <remarks>2015-09-10 王耀发 创建</remarks>
        public Result ImportExcelNS(Stream stream, int operatorSysno)
        {
            DataTable dt   = null;
            var       cols = DicColsMappingNS.Select(p => p.Value).ToArray();

            try
            {
                dt = ExcelUtil.ImportExcel(stream, cols);
            }
            catch (Exception ex)
            {
                //exception happened,some not caughted
                return(new Result
                {
                    Message = string.Format("数据导入错误,请选择正确的excel文件"),
                    Status = false
                });
            }
            if (dt == null)
            {
                //not all the cols mapped
                return(new Result
                {
                    Message = string.Format("请选择正确的excel文件!"),
                    Status = false
                });
            }
            var excellst    = new List <IcpGZNanShaGoodsInfo>();
            var lstToInsert = new List <IcpGZNanShaGoodsInfo>();
            var lstToUpdate = new List <IcpGZNanShaGoodsInfo>();

            for (var i = 0; i < dt.Rows.Count; i++)
            {
                int excelRow = i;
                for (var j = 0; j < dt.Columns.Count; j++)
                {
                    //
                    if (j <= 8)
                    {
                        if ((dt.Rows[i][j] == null || string.IsNullOrEmpty(dt.Rows[i][j].ToString())))
                        {
                            return(new Result
                            {
                                Message = string.Format("excel表第{0}行第{1}列数据不能有空值", (excelRow + 1), (j + 1)),
                                Status = false
                            });
                        }
                    }
                }
                //商品编号
                var       ErpCode = dt.Rows[i][DicColsMappingNS["ErpCode"]].ToString().Trim();
                PdProduct pEntity = PdProductBo.Instance.GetProductByErpCode(ErpCode);
                if (pEntity == null)
                {
                    return(new Result
                    {
                        Message = string.Format("excel表第{0}行商品编号不存在", (excelRow + 1)),
                        Status = false
                    });
                }
                //商品货号
                var Gcode = dt.Rows[i][DicColsMappingNS["Gcode"]].ToString().Trim();
                //商品名称
                var Gname = dt.Rows[i][DicColsMappingNS["Gname"]].ToString().Trim();
                //规格型号
                var Spec = dt.Rows[i][DicColsMappingNS["Spec"]].ToString().Trim();
                //HS编码
                var HSCode = dt.Rows[i][DicColsMappingNS["HSCode"]].ToString().Trim();
                //计量单位(最小)
                var Unit = dt.Rows[i][DicColsMappingNS["Unit"]].ToString().Trim();
                //品牌
                var Brand = dt.Rows[i][DicColsMappingNS["Brand"]].ToString().Trim();
                //原产国/地区
                var AssemCountry = dt.Rows[i][DicColsMappingNS["AssemCountry"]].ToString().Trim();
                //销售网址
                var SellWebSite = dt.Rows[i][DicColsMappingNS["SellWebSite"]].ToString().Trim();
                //商品条形码
                var GoodsBarcode = dt.Rows[i][DicColsMappingNS["GoodsBarcode"]].ToString().Trim();
                //商品描述
                var GoodsDesc = dt.Rows[i][DicColsMappingNS["GoodsDesc"]].ToString().Trim();
                //生产企业名称
                var ComName = dt.Rows[i][DicColsMappingNS["ComName"]].ToString().Trim();
                //成分
                var Ingredient = dt.Rows[i][DicColsMappingNS["Ingredient"]].ToString().Trim();
                //超范围使用食品添加剂
                var Additiveflag = dt.Rows[i][DicColsMappingNS["Additiveflag"]].ToString().Trim();
                //含有毒害物质
                var Poisonflag = dt.Rows[i][DicColsMappingNS["Poisonflag"]].ToString().Trim();
                //备注
                var Remark = dt.Rows[i][DicColsMappingNS["Remark"]].ToString().Trim();

                var model = new IcpGZNanShaGoodsInfo
                {
                    ProductSysNo = pEntity.SysNo,
                    Gcode        = Gcode,
                    Gname        = Gname,
                    Spec         = Spec,
                    HSCode       = HSCode,
                    Unit         = Unit,
                    Brand        = Brand,
                    AssemCountry = AssemCountry,

                    SellWebSite  = SellWebSite,
                    GoodsBarcode = GoodsBarcode,
                    GoodsDesc    = GoodsDesc,
                    ComName      = ComName,
                    Ingredient   = Ingredient,
                    Additiveflag = Additiveflag,
                    Poisonflag   = Poisonflag,
                    Remark       = Remark,

                    CreatedBy      = operatorSysno,
                    CreatedDate    = DateTime.Now,
                    LastUpdateBy   = operatorSysno,
                    LastUpdateDate = DateTime.Now
                };
                excellst.Add(model);
            }
            var lstExisted = DataAccess.Icp.IcpDao.Instance.GetAllGZNanShaGoodsInfo();

            foreach (var excelModel in excellst)
            {
                if (lstExisted.Any(e => e.ProductSysNo == excelModel.ProductSysNo))
                {
                    lstToUpdate.Add(excelModel);
                }
                else //insert
                {
                    lstToInsert.Add(excelModel);
                }
            }
            try
            {
                DataAccess.Icp.IcpDao.Instance.CreateExcelGZNanShaGoodsInfo(lstToInsert);
                DataAccess.Icp.IcpDao.Instance.UpdateExcelGZNanShaGoodsInfo(lstToUpdate);
            }
            catch (Exception ex)
            {
                SysLog.Instance.WriteLog(LogStatus.SysLogLevel.Error, LogStatus.系统日志来源.后台, "导入高捷商品备案信息",
                                         LogStatus.系统日志目标类型.商品基本信息, 0, ex, null, operatorSysno);
                return(new Result
                {
                    Message = string.Format("数据更新错误:{0}", ex.Message),
                    Status = false
                });
            }
            var msg = lstToInsert.Count > 0 ? string.Format("成功导入{0}条数据!", lstToInsert.Count) : "";

            msg += lstToUpdate.Count > 0 ? string.Format("成功修改{0}条数据!", lstToUpdate.Count) : "";
            return(new Result
            {
                Message = msg,
                Status = true
            });
        }
Ejemplo n.º 14
0
 /// <summary>
 /// 创建商品信息
 /// </summary>
 /// <param name="model">商品信息</param>
 /// <returns>是否创建成功</returns>
 /// <remarks>2016-04-25 王耀发 创建</remarks>
 public abstract int CreateProduct(PdProduct model);
Ejemplo n.º 15
0
 /// <summary>
 /// 更新商品信息
 /// </summary>
 /// <param name="model">商品信息</param>
 /// <returns>是否创建成功</returns>
 /// <remarks>2013-06-25 黄波 创建</remarks>
 public abstract bool Update(PdProduct model);
Ejemplo n.º 16
0
 /// <summary>
 /// 同步创建商品信息到B2B平台
 /// </summary>
 /// <param name="model">商品信息</param>
 /// <returns>是否创建成功</returns>
 /// <remarks>
 /// 2017-10-11 罗勤瑶 创建
 /// </remarks>
 public abstract int CreateToB2B(PdProduct model);