예제 #1
0
        public async Task <IActionResult> Edit(int id, ProductSoldCreateViewModel vm)
        {
            if (id != vm.ProductSold.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                if (await _bll.ProductsSold.EditProductInSale(id, vm.ProductSold.ProductId, vm.ProductSold))
                {
                    return(RedirectToAction("Details", "Sales", new { id = vm.ProductSold.SaleId }));
                }

                var product = await _bll.Products.FindAsync(vm.ProductSold.ProductId);

                ModelState.AddModelError(string.Empty, "Cannot sell more than in stock! Current stock: " + product.Quantity);
            }

            vm.ProductSelectList = new SelectList(await _bll.Products.AllAsyncByShopAndInInventory(User.GetShopId()),
                                                  nameof(Product.Id), nameof(Product.ProductName));
            vm.SaleSelectList =
                new SelectList(await _bll.Sales.AllAsyncByShopAndUserId(User.GetShopId(), User.GetUserId()),
                               nameof(Sale.Id), nameof(Sale.Description));

            return(View(vm));
        }
예제 #2
0
        // GET: Sales
        public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?pageNumber)
        {
            ViewData["CurrentSort"]           = sortOrder;
            ViewData["DescriptionSortParam"]  = string.IsNullOrEmpty(sortOrder) ? "description_desc" : "";
            ViewData["CreationTimeSortParam"] = sortOrder == "createdAt" ? "createdAt_desc" : "createdAt";
            ViewData["UserSortParam"]         = sortOrder == "user" ? "user_desc" : "user";

            if (searchString != null)
            {
                pageNumber = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewData["CurrentFilter"] = searchString;

            var sale = await _bll.Sales.AllAsyncByShop(User.GetShopId(), sortOrder, searchString, pageNumber ?? 1, 10);

            var saleAmounts = await _bll.Sales.GetSaleAmounts(User.GetShopId());

            return(View(new SalesIndexModel()
            {
                Sales = PaginatedList <BLL.App.DTO.DomainLikeDTO.Sale> .Create(sale, pageNumber ?? 1, 10,
                                                                               await _bll.Sales.CountDataAmount(User.GetShopId(), searchString)),
                SaleAmounts = saleAmounts
            }));
        }
예제 #3
0
        // GET: ProductsSold/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var productSold = await _bll.ProductsSold.FindAsync(id);

            if (productSold == null)
            {
                return(NotFound());
            }

            var vm = new ProductSoldCreateViewModel()
            {
                ProductSold       = productSold,
                ProductSelectList = new SelectList(await _bll.Products.AllAsyncByShopAndInInventory(User.GetShopId()),
                                                   nameof(Product.Id), nameof(Product.ProductName)),
                SaleSelectList =
                    new SelectList(await _bll.Sales.AllAsyncByShopAndUserId(User.GetShopId(), User.GetUserId()),
                                   nameof(Sale.Id), nameof(Sale.Description))
            };

            return(View(vm));
        }
예제 #4
0
        // GET: Products
        public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?pageNumber)
        {
            ViewData["CurrentSort"]               = sortOrder;
            ViewData["ProductNameSortParam"]      = string.IsNullOrEmpty(sortOrder) ? "productName_desc" : "";
            ViewData["ManufacturerCodeSortParam"] = sortOrder == "manufacturerCode" ? "manufacturerCode_desc" : "manufacturerCode";
            ViewData["ShopCodeSortParam"]         = sortOrder == "shopCode" ? "shopCode_desc" : "shopCode";
            ViewData["BuyPriceSortParam"]         = sortOrder == "buyPrice" ? "buyPrice_desc" : "buyPrice";
            ViewData["SellPriceSortParam"]        = sortOrder == "sellPrice" ? "sellPrice_desc" : "sellPrice";
            ViewData["PercentageSortParam"]       = sortOrder == "percentage" ? "percentage_desc" : "percentage";
            ViewData["QuantitySortParam"]         = sortOrder == "quantity" ? "quantity_desc" : "quantity";
            ViewData["WeightSortParam"]           = sortOrder == "weight" ? "weight_desc" : "weight";
            ViewData["LengthSortParam"]           = sortOrder == "length" ? "length_desc" : "length";
            ViewData["ManufacturerNameSortParam"] = sortOrder == "manufacturer" ? "manufacturer_desc" : "manufacturer";

            if (searchString != null)
            {
                pageNumber = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewData["CurrentFilter"] = searchString;

            var product = await _bll.Products.AllAsyncByShop(User.GetShopId(), sortOrder, searchString, pageNumber ?? 1, 10);

            return(View(PaginatedList <BLL.App.DTO.DomainLikeDTO.Product> .Create(product, pageNumber ?? 1, 10,
                                                                                  await _bll.Products.CountDataAmount(User.GetShopId(), searchString))));
        }
예제 #5
0
        public async Task <IActionResult> ProcessReceivedOrder(int id)
        {
            var order = await _bll.Orders.FindAsync(id);

            if (order?.ShopId == User.GetShopId())
            {
                await _bll.Orders.ProcessReceivedOrder(id);
            }
            return(RedirectToAction(nameof(Index)));
        }
예제 #6
0
        public async Task <RedirectToActionResult> AddProductToOrder(int id)
        {
            var order = await _bll.Orders.FindAsync(id);

            if (order?.ShopId != User.GetShopId())
            {
                return(RedirectToAction(nameof(Index)));
            }
            return(RedirectToAction(nameof(Create), "ProductsInOrder", new { id = id }));
        }
예제 #7
0
        public async Task <IActionResult> DeleteConfirmed(int id)
        {
            var @return = await _bll.Returns.FindAsync(id);

            if (@return?.ShopId == User.GetShopId())
            {
                await _bll.Returns.DeleteReturn(id);
            }
            return(RedirectToAction(nameof(Index)));
        }
예제 #8
0
        public async Task <RedirectToActionResult> AddProductToReturn(int id)
        {
            var @return = await _bll.Returns.FindAsync(id);

            if (@return?.ShopId != User.GetShopId())
            {
                return(RedirectToAction(nameof(Index)));
            }
            return(RedirectToAction(nameof(Create), "ProductsReturned", new { id = id }));
        }
예제 #9
0
        public async Task <RedirectToActionResult> AddProductToCategory(int id)
        {
            var category = await _bll.Categories.FindAsync(id);

            if (category?.ShopId != User.GetShopId())
            {
                return(RedirectToAction(nameof(Index)));
            }
            return(RedirectToAction(nameof(Create), "ProductsInCategory", new { id = id }));
        }
예제 #10
0
        public async Task <IActionResult> DeleteConfirmed(int id)
        {
            var category = await _bll.Categories.FindAsync(id);

            if (category?.ShopId == User.GetShopId())
            {
                await _bll.Categories.DeleteCategory(id);
            }
            return(RedirectToAction(nameof(Index)));
        }
예제 #11
0
        public async Task <RedirectToActionResult> AddDefectToProduct(int id)
        {
            var defect = await _bll.Defects.FindAsync(id);

            if (defect?.ShopId != User.GetShopId())
            {
                return(RedirectToAction(nameof(Index)));
            }
            return(RedirectToAction(nameof(Create), "ProductsWithDefect", new { id = id }));
        }
예제 #12
0
        public async Task <IActionResult> DeleteConfirmed(int id)
        {
            var defect = await _bll.Defects.FindAsync(id);

            if (defect?.ShopId == User.GetShopId())
            {
                await _bll.Defects.DeleteDefect(id);
            }
            return(RedirectToAction(nameof(Index)));
        }
예제 #13
0
        public async Task <IActionResult> DeleteConfirmed(int id)
        {
            var order = await _bll.Orders.FindAsync(id);

            if (order?.ShopId == User.GetShopId())
            {
                await _bll.Orders.DeleteOrderWithProducts(id);
            }
            return(RedirectToAction(nameof(Index)));
        }
예제 #14
0
        public async Task <IActionResult> DeleteConfirmed(int id)
        {
            var comment = await _bll.Comments.FindAsync(id);

            if (comment?.ShopId == User.GetShopId())
            {
                _bll.Comments.Remove(id);
                await _bll.SaveChangesAsync();
            }
            return(RedirectToAction(nameof(Index)));
        }
예제 #15
0
        public async Task <IActionResult> Create(DefectCreateViewModel vm)
        {
            if (ModelState.IsValid && vm.Defect.ShopId == User.GetShopId())
            {
                await _bll.Defects.AddAsync(vm.Defect);

                await _bll.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            vm.ShopSelectList = new SelectList(await _bll.Shops.GetShopByUserShopIdForDropDown(User.GetShopId()), nameof(Shop.Id), nameof(Shop.ShopName), nameof(vm.Defect.ShopId));
            return(View(vm));
        }
        public async Task <IActionResult> Create(ProductWithDefectCreateViewModel vm)
        {
            if (ModelState.IsValid)
            {
                await _bll.ProductsWithDefect.AddAsync(vm.ProductWithDefect);

                await _bll.SaveChangesAsync();

                return(RedirectToAction("Index", "Defects"));
            }
            vm.DefectSelectList  = new SelectList(await _bll.Defects.AllAsyncByShop(User.GetShopId(), null, null, null, null), nameof(Defect.Id), nameof(Defect.Description));
            vm.ProductSelectList = new SelectList(await _bll.Products.AllAsyncByShopForDropDown(User.GetShopId()), nameof(Product.Id), nameof(Product.ProductName));

            return(View(vm));
        }
예제 #17
0
        public async Task <IActionResult> Create(ProductCreateViewModel vm)
        {
            if (ModelState.IsValid && vm.Product.ShopId == User.GetShopId())
            {
                await _bll.Products.AddAsync(vm.Product);

                await _bll.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            vm.InventorySelectList    = new SelectList(await _bll.Inventories.AllAsyncByShop(User.GetShopId(), null, null, null, null), nameof(Inventory.Id), nameof(Inventory.Description));
            vm.ManuFacturerSelectList = new SelectList(await _bll.ManuFacturers.AllAsync(), nameof(ManuFacturer.Id), nameof(ManuFacturer.ManuFacturerName));
            vm.ShopSelectList         = new SelectList(await _bll.Shops.GetShopByUserShopIdForDropDown(User.GetShopId()), nameof(Shop.Id), nameof(Shop.ShopName));
            return(View(vm));
        }
예제 #18
0
        public async Task <IActionResult> Create(CommentCreateViewModel vm)
        {
            if (ModelState.IsValid && vm.Comment.ShopId == User.GetShopId())
            {
                await _bll.Comments.AddAsync(vm.Comment);

                await _bll.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            vm.ProductSelectList = new SelectList(await _bll.Products.AllAsyncByShopForDropDown(User.GetShopId()),
                                                  nameof(Product.Id), nameof(Product.ProductName), vm.Comment.ProductId);
            vm.ShopSelectList = new SelectList(await _bll.Shops.GetShopByUserShopIdForDropDown(User.GetShopId()),
                                               nameof(Shop.Id), nameof(Shop.ShopName), vm.Comment.ShopId);
            return(View(vm));
        }
예제 #19
0
        public async Task <IActionResult> Edit(int id, ReturnCreateViewModel vm)
        {
            if (id != vm.Return.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid && vm.Return.ShopId == User.GetShopId())
            {
                _bll.Returns.Update(vm.Return);
                await _bll.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            vm.ShopSelectList = new SelectList(await _bll.Shops.GetShopByUserShopIdForDropDown(User.GetShopId()), nameof(Shop.Id), nameof(Shop.ShopName));
            return(View(vm));
        }
        public async Task <IActionResult> Edit(int id, ProductWithDefectCreateViewModel vm)
        {
            if (id != vm.ProductWithDefect.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                _bll.ProductsWithDefect.Update(vm.ProductWithDefect);
                await _bll.SaveChangesAsync();

                return(RedirectToAction("Details", "Defects", new { id = vm.ProductWithDefect.DefectId }));
            }
            vm.DefectSelectList  = new SelectList(await _bll.Defects.AllAsyncByShop(User.GetShopId(), null, null, null, null), nameof(Defect.Id), nameof(Defect.Description));
            vm.ProductSelectList = new SelectList(await _bll.Products.AllAsyncByShopForDropDown(User.GetShopId()), nameof(Product.Id), nameof(Product.ProductName));

            return(View(vm));
        }
        // GET: ProductsWithDefect

        /*  public async Task<IActionResult> Index()
         * {
         *    var productWithDefect = await _bll.ProductsWithDefect.AllAsyncByShop(User.GetShopId());
         *    return View(productWithDefect);
         * }
         *
         * // GET: ProductsWithDefect/Details/5
         * public async Task<IActionResult> Details(int? id)
         * {
         *    if (id == null)
         *    {
         *        return NotFound();
         *    }
         *
         *    var productWithDefect = await _bll.ProductsWithDefect.FindAsync(id);
         *    if (productWithDefect == null)
         *    {
         *        return NotFound();
         *    }
         *
         *    return View(productWithDefect);
         * }*/

        // GET: ProductsWithDefect/Create
        public async Task <IActionResult> Create(int?id)
        {
            var vm = new ProductWithDefectCreateViewModel()
            {
                DefectSelectList  = new SelectList(await _bll.Defects.AllAsyncByShop(User.GetShopId(), null, null, null, null), nameof(Defect.Id), nameof(Defect.Description)),
                ProductSelectList = new SelectList(await _bll.Products.AllAsyncByShopForDropDown(User.GetShopId()), nameof(Product.Id), nameof(Product.ProductName))
            };

            foreach (var defect in vm.DefectSelectList)
            {
                if (!defect.Value.Equals(id.ToString()))
                {
                    continue;
                }
                defect.Selected = true;
                break;
            }

            return(View(vm));
        }
예제 #22
0
        // GET: Returns
        public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?pageNumber)
        {
            ViewData["CurrentSort"]          = sortOrder;
            ViewData["DescriptionSortParam"] = string.IsNullOrEmpty(sortOrder) ? "description_desc" : "";

            if (searchString != null)
            {
                pageNumber = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewData["CurrentFilter"] = searchString;

            var @return = await _bll.Returns.AllAsyncByShop(User.GetShopId(), sortOrder, searchString, pageNumber ?? 1, 10);

            return(View(PaginatedList <BLL.App.DTO.DomainLikeDTO.Return> .Create(@return, pageNumber ?? 1, 10,
                                                                                 await _bll.Returns.CountDataAmount(User.GetShopId(), searchString))));
        }
        // GET: ProductsInOrder/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var productInOrder = await _bll.ProductsInOrder.FindAsync(id);

            if (productInOrder == null)
            {
                return(NotFound());
            }
            var vm = new ProductInOrderCreateViewModel()
            {
                ProductInOrder    = productInOrder,
                OrderSelectList   = new SelectList(await _bll.Orders.AllAsyncByShop(User.GetShopId(), null, null, null, null), nameof(Order.Id), nameof(Order.Description)),
                ProductSelectList = new SelectList(await _bll.Products.AllAsyncByShopForDropDown(User.GetShopId()), nameof(Product.Id), nameof(Product.ProductName))
            };

            return(View(vm));
        }
예제 #24
0
        /* // GET: ProductsSold
         * public async Task<IActionResult> Index()
         * {
         *   var productSold = await _bll.ProductsSold.AllAsyncByShop(User.GetShopId());
         *   return View(productSold);
         * }
         *
         * // GET: ProductsSold/Details/5
         * public async Task<IActionResult> Details(int? id)
         * {
         *   if (id == null)
         *   {
         *       return NotFound();
         *   }
         *
         *   var productSold = await _bll.ProductsSold.FindAsync(id);
         *   if (productSold == null)
         *   {
         *       return NotFound();
         *   }
         *
         *   return View(productSold);
         * }*/

        // GET: ProductsSold/Create
        public async Task <IActionResult> Create(int?id)
        {
            var vm = new ProductSoldCreateViewModel()
            {
                ProductSelectList = new SelectList(await _bll.Products.AllAsyncByShopAndInInventory(User.GetShopId()),
                                                   nameof(Product.Id), nameof(Product.ProductName)),
                SaleSelectList =
                    new SelectList(await _bll.Sales.AllAsyncByShopAndUserId(User.GetShopId(), User.GetUserId()),
                                   nameof(Sale.Id), nameof(Sale.Description))
            };

            foreach (var sale in vm.SaleSelectList)
            {
                if (!sale.Value.Equals(id.ToString()))
                {
                    continue;
                }
                sale.Selected = true;
                break;
            }

            return(View(vm));
        }
예제 #25
0
        // GET: Comments
        public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?pageNumber)
        {
            ViewData["CurrentSort"]      = sortOrder;
            ViewData["TitleSortParam"]   = string.IsNullOrEmpty(sortOrder) ? "title_desc" : "";
            ViewData["BodySortParam"]    = sortOrder == "body" ? "body_desc" : "body";
            ViewData["ProductSortParam"] = sortOrder == "product" ? "product_desc" : "product";

            if (searchString != null)
            {
                pageNumber = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewData["CurrentFilter"] = searchString;

            var comments = await _bll.Comments.AllAsyncByShop(User.GetShopId(), sortOrder, searchString, pageNumber ?? 1, 10);

            return(View(PaginatedList <BLL.App.DTO.DomainLikeDTO.Comment> .Create(comments, pageNumber ?? 1, 10,
                                                                                  await _bll.Comments.CountDataAmount(User.GetShopId(), searchString))));
        }
예제 #26
0
        // GET: Returns/Create
        public async Task <IActionResult> Create()
        {
            var vm = new ReturnCreateViewModel()
            {
                ShopSelectList = new SelectList(await _bll.Shops.GetShopByUserShopIdForDropDown(User.GetShopId()), nameof(Shop.Id), nameof(Shop.ShopName))
            };

            return(View(vm));
        }
예제 #27
0
        // GET: Comments/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var comment = await _bll.Comments.FindAsync(id);

            if (comment == null)
            {
                return(NotFound());
            }

            var vm = new CommentCreateViewModel
            {
                Comment           = comment,
                ProductSelectList = new SelectList(await _bll.Products.AllAsyncByShopForDropDown(User.GetShopId()),
                                                   nameof(Product.Id), nameof(Product.ProductName), comment.ProductId),
                ShopSelectList = new SelectList(await _bll.Shops.GetShopByUserShopIdForDropDown(User.GetShopId()),
                                                nameof(Shop.Id), nameof(Shop.ShopName), comment.ShopId)
            };

            return(View(vm));
        }
예제 #28
0
        // GET: Returns/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var @return = await _bll.Returns.FindAsync(id);

            if (@return == null)
            {
                return(NotFound());
            }

            var vm = new ReturnCreateViewModel()
            {
                Return         = @return,
                ShopSelectList = new SelectList(await _bll.Shops.GetShopByUserShopIdForDropDown(User.GetShopId()), nameof(Shop.Id), nameof(Shop.ShopName))
            };

            return(View(vm));
        }
예제 #29
0
        // GET: Comments/Create
        public async Task <IActionResult> Create()
        {
            var vm = new CommentCreateViewModel
            {
                ProductSelectList = new SelectList(await _bll.Products.AllAsyncByShopForDropDown(User.GetShopId()),
                                                   nameof(Product.Id), nameof(Product.ProductName)),
                ShopSelectList = new SelectList(await _bll.Shops.GetShopByUserShopIdForDropDown(User.GetShopId()),
                                                nameof(Shop.Id), nameof(Shop.ShopName))
            };

            return(View(vm));
        }
예제 #30
0
        // GET: Orders/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var order = await _bll.Orders.FindAsync(id);

            if (order == null)
            {
                return(NotFound());
            }

            var vm = new OrderCreateViewModel()
            {
                Order             = order,
                ShipperSelectList = new SelectList(await _bll.Shippers.AllAsync(),
                                                   nameof(Shipper.Id), nameof(Shipper.ShipperName)),
                ShopSelectList = new SelectList(await _bll.Shops.GetShopByUserShopIdForDropDown(User.GetShopId()),
                                                nameof(Shop.Id), nameof(Shop.ShopName))
            };

            return(View(vm));
        }