public JsonResult UpdateDone_Order_Suppliers(int id)
        {
            var Messaging = new RenderMessaging();

            try
            {
                if (User == null)
                {
                    Messaging.isError   = true;
                    Messaging.messaging = "Phiên đăng nhập đã hết hạn.";
                    return(Json(Messaging, JsonRequestBehavior.AllowGet));
                }

                var order = _context.soft_Order.Find(id);

                if (order == null)
                {
                    Messaging.isError   = true;
                    Messaging.messaging = "Không tìm thấy đơn hàng này.";
                    return(Json(Messaging, JsonRequestBehavior.AllowGet));
                }

                var objOrder = new soft_Order
                {
                    Id             = id,
                    Status         = (int)StatusOrder_Suppliers.Done,
                    DateUpdate     = DateTime.Now,
                    EmployeeUpdate = User.UserId
                };

                _crud.Update <soft_Order>(objOrder, o => o.Status, o => o.EmployeeUpdate, o => o.DateUpdate);

                foreach (var item in order.soft_Order_Child)
                {
                    var objOrderChild = new soft_Order_Child
                    {
                        Id        = item.Id,
                        Status    = (int)StatusOrder_Suppliers.Done,
                        OrderId   = item.OrderId,
                        Price     = item.Price,
                        ProductId = item.ProductId,
                        Total     = item.Total
                    };
                    _crud.Update <soft_Order_Child>(objOrderChild, o => o.Status);
                }
                _crud.SaveChanges();
            }
            catch
            {
                Messaging.isError   = true;
                Messaging.messaging = "Cập nhật phiếu đặt hàng nhà phân phối không thành công!";
            }
            return(Json(Messaging, JsonRequestBehavior.AllowGet));
        }
        public JsonResult UpdateDone_Order_Inside(int id)
        {
            var Messaging = new RenderMessaging();

            try
            {
                if (User == null)
                {
                    Messaging.isError   = true;
                    Messaging.messaging = "Phiên đăng nhập đã hết hạn.";
                    return(Json(Messaging, JsonRequestBehavior.AllowGet));
                }

                var order = _context.soft_Order.Find(id);

                if (order == null)
                {
                    Messaging.isError   = true;
                    Messaging.messaging = "Không tìm thấy đơn hàng này.";
                    return(Json(Messaging, JsonRequestBehavior.AllowGet));
                }

                var objOrder = new soft_Order
                {
                    Id             = id,
                    Status         = (int)StatusOrder_Input.Done,
                    DateUpdate     = DateTime.Now,
                    EmployeeUpdate = User.UserId
                };

                var modelupdate = Mapper.Map <OrderModel>(order);

                if (order.Id_From > 0)
                {
                    UpdateOrderSuppliers(modelupdate, order.Id_From.Value);
                }

                _crud.Update(objOrder, o => o.Status, o => o.EmployeeUpdate, o => o.DateUpdate);

                UpdateStockByBranches(modelupdate);

                _crud.SaveChanges();
            }
            catch (Exception ex)
            {
                Messaging.isError   = true;
                Messaging.messaging = "Cập nhật đơn hàng nhập không thành công!";
            }
            return(Json(Messaging, JsonRequestBehavior.AllowGet));
        }
        private void UpdateOrderSuppliers(OrderModel model, int OrderSuppliersId)
        {
            var orderSuppliers = _context.soft_Order.FirstOrDefault(o => o.Id.Equals(OrderSuppliersId) && o.TypeOrder == (int)TypeOrder.OrderProduct && o.Status == (int)StatusOrder_Input.Process);

            if (orderSuppliers != null)
            {
                foreach (var item in orderSuppliers.soft_Order_Child)
                {
                    if (item.Status == null || item.Status == (int)StatusOrder_Input.Process)
                    {
                        var hasProduct = model.Detail.FirstOrDefault(o => o.ProductId == item.ProductId.Value);

                        if (hasProduct != null)
                        {
                            if (item.Total <= hasProduct.Total)
                            {
                                item.Status = (int)StatusOrder_Input.Done;
                                var newobj = new soft_Order_Child
                                {
                                    Id     = item.Id,
                                    Status = item.Status
                                };
                                _crud.Update <soft_Order_Child>(newobj, o => o.Status);
                            }
                            else
                            {
                                var newobj = new soft_Order_Child
                                {
                                    Id    = item.Id,
                                    Total = item.Total - hasProduct.Total
                                };
                                _crud.Update <soft_Order_Child>(newobj, o => o.Total);
                            }
                        }
                    }
                }

                var OrderChildDoneAll = orderSuppliers.soft_Order_Child.FirstOrDefault(o => o.Status == null || o.Status == (int)StatusOrder_Input.Process);
                if (OrderChildDoneAll == null)
                {
                    var newobj = new soft_Order
                    {
                        Id     = orderSuppliers.Id,
                        Status = (int)StatusOrder_Input.Done
                    };
                    _crud.Update <soft_Order>(newobj, o => o.Status);
                }
            }
        }
Example #4
0
        private void UpdateStockByBranches(soft_Order order)
        {
            foreach (var item in order.soft_Order_Child)
            {
                var StockProduct = _context.soft_Branches_Product_Stock.FirstOrDefault(o => o.ProductId == item.ProductId &&
                                                                                       o.BranchesId == User.BranchesId);

                if (StockProduct != null)
                {
                    var newstock = new soft_Branches_Product_Stock
                    {
                        BranchesId = User.BranchesId,
                        ProductId  = item.ProductId.Value,
                        //Stock_Total = StockProduct.Stock_Total + item.Total.Value,
                        Stock_Total    = item.Total.Value,
                        DateCreate     = DateTime.Now,
                        EmployeeCreate = User.UserId,
                        DateUpdate     = DateTime.Now,
                        EmployeeUpdate = User.UserId,
                    };

                    _crud.Update(newstock, o => o.Stock_Total, o => o.EmployeeUpdate, o => o.DateUpdate);
                }
                else
                {
                    var stockTo = new soft_Branches_Product_Stock
                    {
                        ProductId      = item.ProductId.Value,
                        BranchesId     = User.BranchesId,
                        DateCreate     = DateTime.Now,
                        Stock_Total    = item.Total.Value,
                        EmployeeCreate = User.UserId
                    };
                    _crud.Add(stockTo);
                }
            }
        }