コード例 #1
0
        public Guid CreateChildOrder(Guid parentOrderId, Guid customerId, bool createNew)
        {
            string code = string.Empty;

            if (createNew)
            {
                code = GenerateCode.GetChildOrderCode(parentOrderId);
            }
            else
            {
                code = UnitOfWork.OrderRepository.GetById(parentOrderId).Code;
                Order parent = UnitOfWork.OrderRepository.GetById(parentOrderId);
                parent.IsLatest = false;
            }
            Order order = new Order()
            {
                ParentId   = parentOrderId,
                Code       = code,
                CustomerId = customerId,
                IsActive   = true,
                IsDeleted  = false,
                IsLatest   = true
            };

            UnitOfWork.OrderRepository.Insert(order);

            return(order.Id);
        }
コード例 #2
0
        public ActionResult ShowTransferData(string orderId, string productId)
        {
            Guid orderIdGuid   = new Guid(orderId);
            Guid productIdGuid = new Guid(productId);

            Order order = UnitOfWork.OrderRepository.GetById(orderIdGuid);

            Product            product      = UnitOfWork.ProductRepository.GetById(productIdGuid);
            string             orderCode    = string.Empty;
            List <InputDetail> inputDetails = UnitOfWork.InputDetailsRepository
                                              .Get(c => c.OrderId == order.Id).ToList();

            if (inputDetails.Count() == 1)
            {
                orderCode = order.Code;
            }
            else
            {
                orderCode = GenerateCode.GetChildOrderCode(order.Id);
            }

            TransferDetailViewModel transfer = new TransferDetailViewModel()
            {
                RemainQuantity   = GetRemainProduct(productIdGuid, orderIdGuid, order.CustomerId).RemainQuantity,
                RemainWight      = GetRemainProduct(productIdGuid, orderIdGuid, order.CustomerId).RemainWeight,
                OrderCode        = orderCode,
                ProductTitle     = product.Title,
                CustomerFullName = order.Customer.FullName,
                ParentOrderId    = orderId,
                ProductId        = productId
            };

            return(Json(transfer, JsonRequestBehavior.AllowGet));
        }
コード例 #3
0
        public ActionResult Details(CutOrderViewModel cutOrderViewModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    cutOrderViewModel.InputDetail = UnitOfWork.InputDetailsRepository.GetById(cutOrderViewModel.InputDetail.Id);

                    Order inputDetailOrder = UnitOfWork.OrderRepository.Get(current => current.Id == cutOrderViewModel.InputDetail.OrderId).FirstOrDefault();
                    cutOrderViewModel.InputDetail.Order = inputDetailOrder;
                    ProductRemainsViewModel remain = GetRemainProduct(cutOrderViewModel.InputDetail.ProductId, cutOrderViewModel.InputDetail.OrderId.Value, cutOrderViewModel.InputDetail.Order.CustomerId);

                    string cutId = string.Empty;
                    if (cutOrderViewModel.CutOrderId != null)
                    {
                        cutId = cutOrderViewModel.CutOrderId.ToString();
                        Guid cutGuid = new Guid(cutId);
                        cutOrderViewModel.CutOrderDetails = UnitOfWork.CutOrderDetailRepository.Include(current => current.CutOrder.InputDetail.Product.ProductGroup).Where(current => current.CutOrderId == cutGuid).ToList();
                    }
                    if (remain.RemainWeight < cutOrderViewModel.Weight)
                    {
                        ModelState.AddModelError("Weight", "وزن وارد شده بیش از وزن باقی مانده می باشد");
                    }
                    else if (remain.RemainQuantity < cutOrderViewModel.Quantity)
                    {
                        ModelState.AddModelError("Weight", "تعداد برگ وارد شده بیش از تعداد باقی مانده می باشد");
                    }
                    else if (remain.RemainWeight == 0)
                    {
                        ModelState.AddModelError("Weight", "کالا موجود نمی باشد");
                    }
                    else if (remain.RemainWeight == cutOrderViewModel.Weight)
                    {
                        if (cutOrderViewModel.CutOrderId == null)
                        {
                            CutOrder cut = new CutOrder()
                            {
                                CreationDate  = DateTime.Now,
                                InputDetailId = cutOrderViewModel.InputDetail.Id,
                                IsActive      = true,
                                IsDeleted     = false
                            };
                            UnitOfWork.CutOrderRepository.Insert(cut);
                            UnitOfWork.Save();
                            cutId = cut.Id.ToString();
                        }
                        Guid cutGuid = new Guid(cutId);
                        cutOrderViewModel.CutOrderId = cutGuid;
                        CutOrderDetail cutOrderDetail = new CutOrderDetail()
                        {
                            Weight         = cutOrderViewModel.Weight,
                            Length         = cutOrderViewModel.Length,
                            Quantity       = Convert.ToInt32(cutOrderViewModel.Quantity),
                            CutOrderId     = cutGuid,
                            CustomActionId = cutOrderViewModel.CustomActionId,
                            CreationDate   = DateTime.Now,
                            IsActive       = true,
                            IsDeleted      = false
                        };
                        UnitOfWork.CutOrderDetailRepository.Insert(cutOrderDetail);
                        UnitOfWork.Save();

                        cutOrderViewModel.CutOrderDetails = UnitOfWork.CutOrderDetailRepository.Include(current => current.CutOrder.InputDetail.Product.ProductGroup).Where(current => current.CutOrderId == cutOrderViewModel.CutOrderId).ToList();

                        InputDetail inputDetailUpdate = UnitOfWork.InputDetailsRepository.GetById(cutOrderViewModel.InputDetail.Id);
                        inputDetailUpdate.RemainDestinationWeight = 0;
                        inputDetailUpdate.RemainQuantity          = 0;
                        UnitOfWork.InputDetailsRepository.Update(inputDetailUpdate);
                        UnitOfWork.Save();
                        cutOrderViewModel.RemainWeight = inputDetailUpdate.RemainDestinationWeight;
                    }
                    else
                    {
                        if (cutOrderViewModel.CutOrderId != null)
                        {
                            Order order = new Order()
                            {
                                Customer  = cutOrderViewModel.InputDetail.Order.Customer,
                                Parent    = cutOrderViewModel.InputDetail.Order,
                                Code      = GenerateCode.GetChildOrderCode(cutOrderViewModel.InputDetail.OrderId.Value),
                                IsActive  = true,
                                IsDeleted = false,
                                IsLatest  = true
                            };
                            UnitOfWork.OrderRepository.Insert(order);
                            UnitOfWork.Save();

                            CutOrderDetail cutOrderDetail = new CutOrderDetail()
                            {
                                Weight         = cutOrderViewModel.Weight,
                                Length         = cutOrderViewModel.Length,
                                Quantity       = Convert.ToInt32(cutOrderViewModel.Quantity),
                                CutOrderId     = cutOrderViewModel.CutOrderId.Value,
                                CustomActionId = cutOrderViewModel.CustomActionId,
                                CreationDate   = DateTime.Now,
                                IsActive       = true,
                                IsDeleted      = false
                            };
                            UnitOfWork.CutOrderDetailRepository.Insert(cutOrderDetail);
                            UnitOfWork.Save();
                        }
                        else
                        {
                            Order order = new Order()
                            {
                                Customer  = cutOrderViewModel.InputDetail.Order.Customer,
                                Parent    = cutOrderViewModel.InputDetail.Order,
                                Code      = GenerateCode.GetChildOrderCode(cutOrderViewModel.InputDetail.OrderId.Value),
                                IsActive  = true,
                                IsDeleted = false,
                                IsLatest  = true
                            };
                            UnitOfWork.OrderRepository.Insert(order);
                            UnitOfWork.Save();

                            CutOrder cut = new CutOrder()
                            {
                                CreationDate  = DateTime.Now,
                                InputDetailId = cutOrderViewModel.InputDetail.Id,
                                IsActive      = true,
                                IsDeleted     = false
                            };
                            UnitOfWork.CutOrderRepository.Insert(cut);
                            UnitOfWork.Save();

                            cutOrderViewModel.CutOrderId = cut.Id;
                            CutOrderDetail cutOrderDetail = new CutOrderDetail()
                            {
                                Weight         = cutOrderViewModel.Weight,
                                Length         = cutOrderViewModel.Length,
                                Quantity       = Convert.ToInt32(cutOrderViewModel.Quantity),
                                CutOrderId     = cut.Id,
                                CustomActionId = cutOrderViewModel.CustomActionId,
                                CreationDate   = DateTime.Now,
                                IsActive       = true,
                                IsDeleted      = false
                            };
                            UnitOfWork.CutOrderDetailRepository.Insert(cutOrderDetail);
                            UnitOfWork.Save();
                        }
                        cutOrderViewModel.CutOrderDetails = UnitOfWork.CutOrderDetailRepository.Include(current => current.CutOrder.InputDetail.Product.ProductGroup).Where(current => current.CutOrderId == cutOrderViewModel.CutOrderId).ToList();


                        decimal     unit = remain.RemainWeight / remain.RemainQuantity;
                        InputDetail inputDetailUpdate = UnitOfWork.InputDetailsRepository.GetById(cutOrderViewModel.InputDetail.Id);
                        inputDetailUpdate.RemainDestinationWeight = remain.RemainWeight - cutOrderViewModel.Weight;
                        inputDetailUpdate.RemainQuantity          = remain.RemainQuantity - (cutOrderViewModel.Weight / unit);
                        UnitOfWork.InputDetailsRepository.Update(inputDetailUpdate);
                        UnitOfWork.Save();
                        cutOrderViewModel.RemainWeight = inputDetailUpdate.RemainDestinationWeight;
                    }
                }

                ViewBag.CustomActionId = new SelectList(UnitOfWork.ProductGroupCustomActionRepository.Get(x => x.ProductGroupId == cutOrderViewModel.InputDetail.Product.ProductGroupId).Select(x => x.CustomAction), "Id", "Title");
                ViewBag.CustomerName   = cutOrderViewModel.InputDetail.Order.Customer.FullName;
                return(View(cutOrderViewModel));
            }
            catch (Exception exp)
            {
                return(Json(exp.Message, JsonRequestBehavior.AllowGet));
            }
        }