// ReSharper disable InconsistentNaming
        public ActionResult AddNewSKU(CMS_SKU_Model model, MCCC mcModel, CMS_HMNUM_Model hmModel, User_Profile_Model userModel)
// ReSharper restore InconsistentNaming
        {
            try
            {
                var    skuSvr = new SKUCreateServices();
                string msg;
                var    newSkuid = skuSvr.AddProduct(model, mcModel, hmModel, userModel.User_Account, out msg);
                return(Json(new NBCMSResultJson
                {
                    Status = newSkuid > 0 ? StatusType.OK : StatusType.Error,
                    Data = newSkuid
                }));
            }
            catch (Exception ex)
            {
                NBCMSLoggerManager.Fatal(ex.Message);
                NBCMSLoggerManager.Fatal(ex.StackTrace);
                NBCMSLoggerManager.Error("");
                return(Json(new NBCMSResultJson
                {
                    Status = StatusType.Exception,
                    Data = ex.Message
                }));
            }
        }
        /// <summary>
        /// 注意没有调用try catch
        /// </summary>
        /// <param name="mcModel"></param>
        /// <returns></returns>
// ReSharper disable InconsistentNaming
        public ActionResult CheckMCC(MCCC mcModel)
// ReSharper restore InconsistentNaming
        {
            var pSvr = new ProductsServices();
            var msg  = string.Empty;

            if (pSvr.CheckMCC(mcModel, ref msg))
            {
                return(Json(new NBCMSResultJson
                {
                    Status = StatusType.OK,
                    Data = ""
                }));
            }
            return(Json(new NBCMSResultJson
            {
                Status = StatusType.Error,
                Data = msg
            }));
        }
        /// <summary>
        /// Change1:新增了一个MCCC的模块,你懂得 2014年1月28日16:26:45
        /// </summary>
        /// <param name="model"></param>
        /// <param name="mcModel"></param>
        /// <param name="userModel"></param>
        /// <returns></returns>
        public ActionResult UpdatedProduct([Bind(Exclude = "SKU")] CMS_SKU_Model model, MCCC mcModel, User_Profile_Model userModel)
        {
            try
            {
                if (model.SKUID == 0)
                {
                    return(Json(new NBCMSResultJson
                    {
                        Status = StatusType.Error,
                        Data = "Request is illegal."
                    }));
                }
                //User_Profile_Model userModel = new CommonController().GetCurrentUserbyCookie(Request[ConfigurationManager.AppSettings["userInfoCookiesKey"]]);

                var    pSvr = new ProductsServices();
                string msg;
                if (pSvr.UpdatedProduct(model, mcModel, userModel.User_Account, out msg))
                {
                    return(Json(new NBCMSResultJson
                    {
                        Status = StatusType.OK,
                        Data = "OK"
                    }));
                }
                return(Json(new NBCMSResultJson
                {
                    Status = StatusType.Error,
                    Data = msg == "update product failed." ? "" : msg
                }));
            }
            catch (Exception ex)
            {
                NBCMSLoggerManager.Error(ex.Message);
                NBCMSLoggerManager.Error(ex.Source);
                return(Json(new NBCMSResultJson
                {
                    Status = StatusType.Exception,
                    Data = ex.Message
                }));
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 新增SKU产品
        /// CrateDate:2013年11月24日17:40:08
        /// </summary>
        /// <param name="model"></param>
        /// <param name="Modifier"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public long AddProduct(CMS_SKU_Model model, MCCC mcModel, CMS_HMNUM_Model HMModel, String Modifier, out string msg)
        {
            using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
            {
                msg = "";
                var query = db.CMS_SKU.Where(w => w.SKU == model.SKU && w.ChannelID == model.ChannelID).FirstOrDefault();
                if (query != null)
                {
                    msg = string.Format("this item is already exist");
                    return(-1);
                }

                var mat = db.CMS_SKU_Material.FirstOrDefault(s => s.MaterialName == mcModel.Material);
                if (mat == null)
                {
                    mat = new CMS_SKU_Material
                    {
                        CreateBy     = Modifier,
                        CreateOn     = DateTime.Now,
                        ModifyBy     = Modifier,
                        ModifyOn     = DateTime.Now,
                        MaterialDesc = mcModel.Material,
                        MaterialName = mcModel.Material
                    };
                    db.CMS_SKU_Material.Add(mat);
                }



                var col = db.CMS_SKU_Colour.FirstOrDefault(s => s.ColourName == mcModel.Colour);
                if (col == null)
                {
                    col = new CMS_SKU_Colour
                    {
                        CreateBy   = Modifier,
                        CreateOn   = DateTime.Now,
                        ModifyBy   = Modifier,
                        ModifyOn   = DateTime.Now,
                        ColourDesc = mcModel.Colour,
                        ColourName = mcModel.Colour
                    };
                    db.CMS_SKU_Colour.Add(col);
                }

                var cat = db.CMS_SKU_Category.FirstOrDefault(s => s.CategoryName == mcModel.Category && s.ParentID == 0);
                if (cat == null)
                {
                    cat = new CMS_SKU_Category
                    {
                        CreateBy     = Modifier,
                        CreateOn     = DateTime.Now,
                        UpdateBy     = Modifier,
                        UpdateOn     = DateTime.Now,
                        CategoryName = mcModel.Category,
                        CategoryDesc = mcModel.Category,
                        OrderIndex   = 0,
                        ParentID     = 0
                    };
                    db.CMS_SKU_Category.Add(cat);
                    db.SaveChanges();
                }

                var subCat = db.CMS_SKU_Category.FirstOrDefault(s => s.CategoryName == mcModel.SubCategory && s.ParentID != 0);
                if (subCat == null)
                {
                    subCat = new CMS_SKU_Category
                    {
                        //CategoryID = ++i,
                        CreateBy     = Modifier,
                        CreateOn     = DateTime.Now,
                        UpdateBy     = Modifier,
                        UpdateOn     = DateTime.Now,
                        CategoryName = mcModel.SubCategory,
                        CategoryDesc = mcModel.SubCategory,
                        OrderIndex   = 0,
                        //CMS_SKU_Category_Parent = cat
                        ParentID = cat.CategoryID
                    };
                    db.CMS_SKU_Category.Add(subCat);
                }

                var newCosting = new CMS_SKU_Costing
                {
                    SalePrice       = 0,
                    EstimateFreight = 0,
                    EffectiveDate   = DateTime.Now,
                    CreateBy        = Modifier,
                    CreateOn        = DateTime.Now
                };
                //db.CMS_SKU_Costing.Add(newCosting);
                //db.SaveChanges();


                CMS_SKU newProduct = new CMS_SKU
                {
                    //SKUCostID = 0, //default...为0 会导致后期查询的如果不做NULL排除,会得到意想不到的错误!
                    CMS_SKU_Costing = newCosting,
                    SKU             = model.SKU,
                    ProductName     = model.ProductName,
                    SKU_QTY         = model.SKU_QTY,
                    ChannelID       = model.ChannelID,
                    UPC             = model.UPC,
                    StatusID        = 1,//2014年3月5日 New
                    Visibility      = model.Visibility,
                    ProductDesc     = model.ProductDesc,
                    Specifications  = model.Specifications,
                    Keywords        = model.Keywords,
                    BrandID         = model.BrandID,
                    RetailPrice     = model.RetailPrice,
                    URL             = model.URL,
                    //MaterialID = mat.MaterialID,
                    //ColourID = col.ColourID,
                    //CategoryID = cat.CategoryID,
                    //SubCategoryID = subCat.CategoryID,
                    CMS_SKU_Material     = mat,
                    CMS_SKU_Colour       = col,
                    CMS_SKU_Category     = cat,
                    CMS_SKU_Category_Sub = subCat,
                    CMS_Ecom_Sync        = new CMS_Ecom_Sync
                    {
                        //SKUID = query.SKUID,坑爹啊 害死人,对象空引用!2014年4月9日
                        StatusID   = 0,
                        StatusDesc = "NeedSend",
                        UpdateBy   = Modifier,
                        UpdateOn   = DateTime.Now
                    },

                    CreateBy = Modifier,
                    CreateOn = DateTime.Now,
                    UpdateBy = Modifier,
                    UpdateOn = DateTime.Now,

                    ShipViaTypeID = model.ShipViaTypeID
                };
                //db.CMS_SKU.Add(newProduct);
                var             newHM  = db.CMS_HMNUM.Find(HMModel.ProductID);
                SKU_HM_Relation rModel = new SKU_HM_Relation
                {
                    CMS_HMNUM  = newHM,
                    CMS_SKU    = newProduct,
                    StockKeyID = newHM.StockKeyID,
                    R_QTY      = HMModel.R_QTY,
                    CreateBy   = Modifier,
                    CreateOn   = DateTime.Now,
                    UpdateBy   = Modifier,
                    UpdateOn   = DateTime.Now
                };
                db.SKU_HM_Relation.Add(rModel);

                db.SaveChanges();

                newCosting.HisSKUID = newProduct.SKUID;//经测试:如果让这个生效,一定要在此之前先发生一次db.SaveChanges(),即使是使用强类型嵌套插入也需要这样save 2 次....2014年3月10日

                db.SaveChanges();
                return(newProduct.SKUID);
            }
        }