/// <summary> /// 算法:根据组合产品的ProductID和SKUID唯一确定一条记录,删除再插入。删除插入一并做,会大大简化程序和客户端的各种判断。 /// CreateDate: 2013年11月19日11:43:22 /// </summary> /// <param name="rModel"></param> /// <param name="User_Account"></param> /// <returns>如果新增成功,返回新的ID</returns> public Boolean AddNewHM4SKU(SKU_HM_Relation_Model rModel, String User_Account) { using (PermaisuriCMSEntities db = new PermaisuriCMSEntities()) { var query = db.SKU_HM_Relation.FirstOrDefault(r => r.SKUID == rModel.SKUID); if (query == null) { var newModel = new SKU_HM_Relation { ProductID = rModel.ProductID, SKUID = rModel.SKUID, R_QTY = rModel.R_QTY, StockKeyID = rModel.StockKeyID, CreateBy = User_Account, CreateOn = DateTime.Now, UpdateBy = User_Account, UpdateOn = DateTime.Now }; db.SKU_HM_Relation.Add(newModel); } else { query.StockKeyID = rModel.StockKeyID; query.R_QTY = rModel.R_QTY; query.ProductID = rModel.ProductID; query.UpdateBy = User_Account; query.UpdateOn = DateTime.Now; } return(db.SaveChanges() > 0); } }
/// <summary> /// /// </summary> /// <param name="model"></param> /// <param name="userModel"></param> /// <returns></returns> public ActionResult UpdateSellPack(SKU_HM_Relation_Model model, User_Profile_Model userModel) { try { if (model.SKUID < 1 || model.StockKeyID < 1 || model.ProductID < 1)//2013年11月26日10:35:58 { return(Json(new NBCMSResultJson { Status = StatusType.Error, Data = "Request parameters are illegal" })); } var pSvr = new ProductsServices(); string msg; // User_Profile_Model userModel = new CommonController().GetCurrentUserbyCookie(Request[ConfigurationManager.AppSettings["userInfoCookiesKey"]]); if (pSvr.UpdateSellPack(model, out msg, userModel)) { return(Json(new NBCMSResultJson { Status = StatusType.OK, Data = "OK" })); } return(Json(new NBCMSResultJson { Status = StatusType.Error, Data = msg == "" ? "failed to insert new Product Pieces" : msg })); } catch (Exception ex) { NBCMSLoggerManager.Error(ex.Message); NBCMSLoggerManager.Error(ex.Source); return(Json(new NBCMSResultJson { Status = StatusType.Exception, Data = ex.Message })); } }
/// <summary> /// 放在using里面可以减少一次数据库打开、关闭的操作,但是增加耦合度 并且如果查询价格失败也会导致加入回滚,这让我很纠结... /// 如果可以,应该传递 PermaisuriCMSEntities 给该方法... /// CreateDate:2013年11月24日19:25:07 /// </summary> /// <param name="model"></param> /// <returns>SKU对于的Costing永远只有一个,之所以以List形式出现,是为了以后。。。扩展 以及各个页面的方法兼容</returns> public List <CMS_HM_Costing_Model> GetHMCosting(SKU_HM_Relation_Model model) { using (PermaisuriCMSEntities db = new PermaisuriCMSEntities()) { var query = db.CMS_HMNUM.FirstOrDefault(c => c.ProductID == model.ProductID); if (query == null) { return(null); } var costing = new CMS_HM_Costing_Model { FirstCost = query.CMS_HM_Costing.FirstCost.ConvertToNotNull().ToString("C", new CultureInfo("en-US")), LandedCost = query.CMS_HM_Costing.LandedCost.ConvertToNotNull().ToString("C", new CultureInfo("en-US")), EstimateFreight = query.CMS_HM_Costing.EstimateFreight.ConvertToNotNull().ToString("C", new CultureInfo("en-US")), OceanFreight = query.CMS_HM_Costing.OceanFreight.ConvertToNotNull().ToString("C", new CultureInfo("en-US")), USAHandlingCharge = query.CMS_HM_Costing.USAHandlingCharge.ConvertToNotNull().ToString("C", new CultureInfo("en-US")), Drayage = query.CMS_HM_Costing.Drayage.ConvertToNotNull().ToString("C", new CultureInfo("en-US")), SellSets = model.R_QTY //这里的SellSets不应该是组合产品的SellSets了..而应该是当前HM和SKU关联的R_QTY.... }; List <CMS_HM_Costing_Model> list = new List <CMS_HM_Costing_Model>(); list.Add(costing); return(list); } }
/// <summary> /// 算法:根据组合产品的ProductID和SKUID唯一确定一条记录,删除再插入。删除插入一并做,会大大简化程序和客户端的各种判断。 /// CreateDate: 2013年11月19日11:43:22 /// </summary> /// <param name="rModel"></param> /// <param name="User_Account"></param> /// <returns>如果新增成功,返回新的ID</returns> public Boolean AddNewHM4SKU(SKU_HM_Relation_Model rModel, String User_Account) { using (PermaisuriCMSEntities db = new PermaisuriCMSEntities()) { //这种方法如果表结构改动,会大大增加维护成本。根据实际情况,可能组合产品的新增操作不是很频繁,并不会很大程度上影响性能,所以还是用EF来做 //using (TransactionScope transaction = new TransactionScope()) //{ // //db.Database.ExecuteSqlCommand("delete from CMS_HMGroup_Relation where ProductID = @ProductID and ChildrenProductID", new SqlParameter("@ProductID", rModel.ProductID)); //} var query = db.SKU_HM_Relation.FirstOrDefault(r => r.SKUID == rModel.SKUID); if (query == null) { var newModel = new SKU_HM_Relation { ProductID = rModel.ProductID, SKUID = rModel.SKUID, R_QTY = rModel.R_QTY, StockKeyID = rModel.StockKeyID, CreateBy = User_Account, CreateOn = DateTime.Now, UpdateBy = User_Account, UpdateOn = DateTime.Now }; db.SKU_HM_Relation.Add(newModel); } else { query.StockKeyID = rModel.StockKeyID; query.R_QTY = rModel.R_QTY; query.ProductID = rModel.ProductID; query.UpdateBy = User_Account; query.UpdateOn = DateTime.Now; } return(db.SaveChanges() > 0); } }