Example #1
0
        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);
        }
Example #2
0
 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
                    });
                }
            }
        }
Example #4
0
        public void SaveOrderItem(OrderListProduct orderListProduct)
        {
            Action <SqlConnection> action = (connection) => DalProductInfomation.SaveOrderItem(connection, orderListProduct);

            dbManager.Execute(action);
        }
Example #5
0
 public void SaveOrderItem(OrderListProduct orderListProduct)
 {
     handler.SaveOrderItem(orderListProduct);
 }