public static void SaveOrderItem(SqlConnection connection, OrderListProduct orderListProduct) { var sqlParamters = new[] { new SqlParameter("@OrderID", orderListProduct.OrderID), new SqlParameter("@OrderNo", orderListProduct.OrderNo), new SqlParameter("@PID", orderListProduct.PID), new SqlParameter("@Category", string.IsNullOrEmpty(orderListProduct.Category) ? "" : orderListProduct.Category), new SqlParameter("@Name", orderListProduct.Name), new SqlParameter("@Size", string.IsNullOrEmpty(orderListProduct.Size) ? "" : orderListProduct.Size), new SqlParameter("@InstallFee", orderListProduct.InstallFee), new SqlParameter("@Num", orderListProduct.Num), new SqlParameter("@MarkedPrice", orderListProduct.MarkedPrice), new SqlParameter("@Price", orderListProduct.Price), new SqlParameter("@Discount", orderListProduct.Discount), new SqlParameter("@TotalDiscount", orderListProduct.TotalDiscount), new SqlParameter("@TotalPrice", orderListProduct.TotalPrice), new SqlParameter("@CreateDate", orderListProduct.CreateDate), new SqlParameter("@LastUpdateTime", orderListProduct.LastUpdateTime), new SqlParameter("@Remark", string.IsNullOrEmpty(orderListProduct.Remark) ? "" : orderListProduct.Remark), new SqlParameter("@Commission", GetCommission(connection, orderListProduct.PID)) }; SqlHelper.ExecuteNonQuery(connection, CommandType.Text, @"insert into tbl_OrderList(OrderID,OrderNo,PID,Category,Name,Size,InstallFee,Num,MarkedPrice,Price,Discount,TotalDiscount,TotalPrice,CreateDate,LastUpdateTime,Remark,Commission) VALUES(@OrderID,@OrderNo,@PID,@Category,@Name,@Size,@InstallFee,@Num,@MarkedPrice,@Price,@Discount,@TotalDiscount,@TotalPrice,@CreateDate,@LastUpdateTime,@Remark,@Commission)", sqlParamters); }
public void UpdElement(OrderListBindingModel model) { using (var transaction = context.Database.BeginTransaction()) { try { OrderList element = context.OrderLists.FirstOrDefault(rec => rec.OrderListName == model.OrderListName && rec.Id != model.Id); if (element != null) { throw new Exception("Уже есть изделие с таким названием"); } element = context.OrderLists.FirstOrDefault(rec => rec.Id == model.Id); if (element == null) { throw new Exception("Элемент не найден"); } element.OrderListName = model.OrderListName; element.Sum = model.Sum; context.SaveChanges(); // обновляем существуюущие компоненты var compIds = model.OrderListProducts.Select(rec => rec.ProductId).Distinct(); var updateProducts = context.OrderListProducts.Where(rec => rec.ProductId == model.Id && compIds.Contains(rec.ProductId)); foreach (var updateProduct in updateProducts) { updateProduct.Count = model.OrderListProducts.FirstOrDefault(rec => rec.Id == updateProduct.Id).Count; } context.SaveChanges(); context.OrderListProducts.RemoveRange(context.OrderListProducts.Where(rec => rec.OrderListId == model.Id && !compIds.Contains(rec.ProductId))); context.SaveChanges(); // новые записи var groupProducts = model.OrderListProducts .Where(rec => rec.Id == 0) .GroupBy(rec => rec.ProductId) .Select(rec => new { ProductId = rec.Key, Count = rec.Sum(r => r.Count) }); foreach (var groupProduct in groupProducts) { OrderListProduct elementPC = context.OrderListProducts.FirstOrDefault(rec => rec.OrderListId == model.Id && rec.ProductId == groupProduct.ProductId); if (elementPC != null) { elementPC.Count += groupProduct.Count; context.SaveChanges(); } else { context.OrderListProducts.Add(new OrderListProduct { OrderListId = model.Id, ProductId = groupProduct.ProductId, Count = groupProduct.Count }); context.SaveChanges(); } } transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } }
public void UpdElement(OrderListBindingModel model) { OrderList element = source.OrderLists.FirstOrDefault(rec => rec.OrderListName == model.OrderListName && rec.Id != model.Id); if (element != null) { throw new Exception("Уже есть изделие с таким названием"); } element = source.OrderLists.FirstOrDefault(rec => rec.Id == model.Id); if (element == null) { throw new Exception("Элемент не найден"); } element.OrderListName = model.OrderListName; element.Sum = model.Sum; int maxPCId = source.OrderListProducts.Count > 0 ? source.OrderListProducts.Max(rec => rec.Id) : 0; // обновляем существуюущие компоненты var compIds = model.OrderListProducts.Select(rec => rec.ProductId).Distinct(); var updateMaterials = source.OrderListProducts.Where(rec => rec.OrderListId == model.Id && compIds.Contains(rec.ProductId)); foreach (var updateMaterial in updateMaterials) { updateMaterial.Count = model.OrderListProducts.FirstOrDefault(rec => rec.Id == updateMaterial.Id).Count; } source.OrderListProducts.RemoveAll(rec => rec.OrderListId == model.Id && !compIds.Contains(rec.ProductId)); // новые записи var groupMaterials = model.OrderListProducts.Where(rec => rec.Id == 0).GroupBy(rec => rec.ProductId) .Select(rec => new { ProductId = rec.Key, Count = rec.Sum(r => r.Count) }); foreach (var groupMaterial in groupMaterials) { OrderListProduct elementPC = source.OrderListProducts.FirstOrDefault(rec => rec.OrderListId == model.Id && rec.ProductId == groupMaterial.ProductId); if (elementPC != null) { elementPC.Count += groupMaterial.Count; } else { source.OrderListProducts.Add(new OrderListProduct { Id = ++maxPCId, OrderListId = model.Id, ProductId = groupMaterial.ProductId, Count = groupMaterial.Count }); } } }
public void SaveOrderItem(OrderListProduct orderListProduct) { Action <SqlConnection> action = (connection) => DalProductInfomation.SaveOrderItem(connection, orderListProduct); dbManager.Execute(action); }
public void SaveOrderItem(OrderListProduct orderListProduct) { handler.SaveOrderItem(orderListProduct); }