コード例 #1
0
        public ActionResult DeleteVendor(int vendorId)
        {
            Users LoggedUser = Login.GetLoggedUser();
            if (LoggedUser == null)
            {
                return View("NoPermission");
            }
            if (LoggedUser.Role == Roles.Vendedor)
            {
                return View("NoPermission");
            }

            List<Users> VendorsList = Users.ListVendors(LoggedUser).ToList(); ;
            Users vendor = VendorsList.Find(i => i.Id == vendorId);
            List<ProductsAllocated> alocatedProducts = ProductsAllocated.AlocatedProductsOnVendor(vendor);
            if (alocatedProducts.Count > 0)
            {
                ViewBag.Vendors = VendorsList.OrderBy(i => i.Id).ToList();
                ViewBag.SelectedVendor = VendorsList.Find(i => i.Id == vendorId);
                ViewBag.Error = true;
                ViewBag.ProductAlocatedError = "Vendedor ainda tem contas a prestar";
                return View("Edit");
            }
            vendor.UserBoss = null;
            vendor.Save();
            return Redirect("/Vendor/Edit");
        }
コード例 #2
0
 public ActionResult CountAllocatedProductsPerVendor(int VendorId, ProductsAllocated Product)
 {
     if (Product.Vendor.Id == VendorId)
     {
         ViewBag.Product = Product;
     }
     return View();
 }
コード例 #3
0
 public ActionResult AllocatedProductsBox(int? vendorId, string Save)
 {
     Users LoggedUser = Login.GetLoggedUser();
     if (LoggedUser == null)
     {
         return View("NoPermission");
     }
     if (LoggedUser.Role == Roles.Vendedor)
     {
         return View("NoPermission");
     }
     ViewBag.vendorId = vendorId;
     ViewBag.SaveSuccess = Save;
     ViewBag.ProductsAllocated = ProductsAllocated.AlocatedProductsOnVendor(Users.TryFind(vendorId));
     return View();
 }
コード例 #4
0
        public ActionResult CountAllocattedProductPerDate(int idProductAllocated, int vendorId, DateTime? date)
        {
            Users LoggedUser = Login.GetLoggedUser();
            if (LoggedUser == null)
            {
                return View("NoPermission");
            }
            if (LoggedUser.Role == Roles.Vendedor)
            {
                return View("NoPermission");
            }
            ProductsAllocated product = ProductsAllocated.Queryable.Where(i => i.Id == idProductAllocated && i.Vendor.UserBoss == LoggedUser).FirstOrDefault();
            ViewBag.product = product;
            if (date != null)
                ViewBag.date = date.Value.ToShortDateString();
            else
                ViewBag.date = DateTime.Now.Date;
            ViewBag.vendorId = vendorId;

            return View();

        }
コード例 #5
0
        public ActionResult VendorAccountability(int AllocatedId, int VendorId, string QuantityReturned = "0", string TotalPaid = "0")
        {
            Users LoggedUser = Login.GetLoggedUser();
            if (LoggedUser == null)
            {
                return View("NoPermission");
            }
            if (LoggedUser.Role == Roles.Vendedor)
            {
                return View("NoPermission");
            }

            Users vendor = Users.ListVendors(LoggedUser).Find(i => i.Id == VendorId);
            ProductsAllocated product = ProductsAllocated.AlocatedProductsOnVendor(vendor).Find(i => i.Id == AllocatedId);
            #region Validation
            bool error = false;
            Validation vld = new Validation();
            vld.Amount(QuantityReturned, product.Amount);
            try
            {
                vld.Amount(QuantityReturned);

            }
            catch (Exception ex)
            {

                ViewBag.QuantityError = ex.Message;
                error = true;
            }
            try
            {
                vld.Amount(TotalPaid);

            }
            catch (Exception ex)
            {

                ViewBag.TotalPaidError = ex.Message;
                error = true;
            }
            try
            {
                vld.Amount(TotalPaid, product.Amount);
            }
            catch (Exception ex)
            {

                ViewBag.TotalPaidError = ex.Message;
                error = true;
            }
            #endregion Validation

            ViewBag.Vendors = Users.ListVendors(LoggedUser);
            ViewBag.SelectedVendor = vendor;
            if (product.Amount - (Convert.ToInt32(QuantityReturned) + Convert.ToInt32(TotalPaid)) >= 0 && !error)
            {
                product.Amount -= (Convert.ToInt32(TotalPaid) + (Convert.ToInt32(QuantityReturned)));
                product.Product.Amount += Convert.ToInt32(QuantityReturned);
                product.Update();
                Charges charge = new Charges()
                {
                    Amount = Convert.ToInt32(TotalPaid),
                    Client = LoggedUser,
                    Data = DateTime.Now,
                    Products = product.Product,
                    Type = Models.ChargesExtensions.ChargesTypes.Venda,
                    Value = MoneyConversor.RoundUp((MoneyConversor.RemoveComission(product.Price * Convert.ToInt32(TotalPaid), product.Commision))),
                    Vendor = vendor
                };
                charge.Save();
                ViewBag.Save = "Salvo com sucesso";
                return View("AccountabilityPerVendor");
            }
            ViewBag.vendorId = VendorId;
            ViewBag.Product = product;
            ViewBag.error = error;
            return View("AccountabilityPerVendor");

        }
コード例 #6
0
        public ActionResult AllocatedProductsBoxEdit(int? productId, string DateAccountability, string amount, int vendorId = 0)
        {
            Users LoggedUser = Login.GetLoggedUser();
            if (LoggedUser == null)
            {
                return View("NoPermission");
            }
            if (LoggedUser.Role == Roles.Vendedor)
            {
                return View("NoPermission");
            }
            #region Validation
            Validation validation = new Validation();
            bool error = false;
            string DataError = null;
            try
            {
                validation.DateNotToday(DateAccountability);
            }
            catch (Exception ex)
            {
                DataError = ex.Message;
                error = true;
            }
            string AmountError = null;
            try
            {
                validation.Amount(amount);
            }
            catch (Exception ex)
            {
                AmountError = ex.Message;
                error = true;
            }
            string InventoryError = null;
            ProductsAllocated productToEdite = ProductsAllocated.TryFind(productId);
            if (productToEdite.Product.Amount - (int.Parse(amount) - productToEdite.Amount) < 0)
            {
                InventoryError = "Item indisponivel no estoque";
                error = true;
            }

            #endregion Validation

            if (!error)
            {
                productToEdite.Product.Amount = productToEdite.Product.Amount - (int.Parse(amount) - productToEdite.Amount);
                productToEdite.DateAccountability = DateTime.Parse(DateAccountability);
                productToEdite.Product.Save();
                productToEdite.Amount = int.Parse(amount);
                productToEdite.Save();
                ViewBag.SaveSuccess = "Salvo com Sucesso";
            }

            ViewBag.DataError = DataError;
            ViewBag.AmountError = AmountError;
            ViewBag.InventoryError = InventoryError;
            ViewBag.vendors = Users.Queryable.Where(i => i.UserBoss == LoggedUser).ToList();
            ViewBag.vendorId = vendorId;

            return View("EditAllocatedProducts", new { vendorId = vendorId });
        }
コード例 #7
0
        public ActionResult AllocateProducts(string vendorid, List<AlocatteProductForm> alocateForm)
        {
            Users LoggedUser = Login.GetLoggedUser();
            if (LoggedUser == null)
            {
                return View("NoPermission");
            }
            if (LoggedUser.Role == Roles.Vendedor)
            {
                return View("NoPermission");
            }


            Validation validattion = new Validation();
            List<string> productError = new List<string>();
            string vendorError = null;
            List<string> AmountError = new List<string>();
            List<string> ComissionError = new List<string>();
            List<string> DataError = new List<string>();
            List<string> formError = new List<string>();
            List<int> boxErrorNumber = new List<int>();
            for (int i = 0; i < alocateForm.Count; i++)
            {
                productError.Add("");
                AmountError.Add("");
                ComissionError.Add("");
                DataError.Add("");
                formError.Add("");

            }


            alocateForm.RemoveAll(i => i.DateAccountability <= DateTime.MinValue || i.Amount == 0 || i.ProductId == 0 || i.Comission == "");

            foreach (var item in alocateForm)
            {
                if (Products.Queryable.Where(i => i.User == LoggedUser && i.Id == item.ProductId).FirstOrDefault() == null)
                {
                    productError[item.BoxNumber] = "Produto não encontrado";
                    boxErrorNumber.Add(item.BoxNumber);
                }

                try
                {
                    validattion.Commission(item.Comission.ToString(CultureInfo.InvariantCulture).Replace(',', '.'));
                }
                catch (Exception ex)
                {
                    ComissionError[item.BoxNumber] = ex.Message;
                }

                if (!string.IsNullOrEmpty(ComissionError[item.BoxNumber]))
                    boxErrorNumber.Add(item.BoxNumber);
                else
                {
                    item.Comission = item.Comission.ToString(CultureInfo.InvariantCulture).Replace(',', '.');
                }
                try
                {
                    validattion.DateNotToday(item.DateAccountability.ToString());
                }
                catch (Exception ex)
                {

                    DataError[item.BoxNumber] = ex.Message;
                }
                if (!string.IsNullOrEmpty(DataError[item.BoxNumber]))
                    boxErrorNumber.Add(item.BoxNumber);

                item.Product = Products.Queryable.Where(i => i.User == LoggedUser && i.Id == item.ProductId).FirstOrDefault();

            }

            Users vendor = new Users();
            if (string.IsNullOrEmpty(vendorid))
                vendorError = "Vendedor Invalido";



            else
            {
                vendor = Users.Queryable.Where(i => i.UserBoss == LoggedUser && i.Id == int.Parse(vendorid)).FirstOrDefault();
                if (vendor == null)
                {
                    vendorError = "Vendedor Invalido";
                }
            }

            foreach (var productItem in alocateForm)
            {

                if (productItem.Product.Amount < productItem.Amount || productItem.Amount <= 0)
                {
                    AmountError[productItem.BoxNumber] = "Quantidade indisponivel: " + productItem.Product.Name + " Estq: " + productItem.Product.Amount;
                    boxErrorNumber.Add(productItem.BoxNumber);
                }
                if (string.IsNullOrEmpty(productError[productItem.BoxNumber]) && string.IsNullOrEmpty(vendorError) && string.IsNullOrEmpty(AmountError[productItem.BoxNumber]) && string.IsNullOrEmpty(formError[productItem.BoxNumber]) && string.IsNullOrEmpty(DataError[productItem.BoxNumber]))
                {
                    ProductsAllocated existingAlocate = ProductsAllocated.Queryable.Where(i => i.Product == productItem.Product && i.Vendor == vendor &&
                        i.Price == productItem.Product.Price && i.Cost == productItem.Product.Cost && i.DateAccountability == productItem.DateAccountability && i.Commision == double.Parse(productItem.Comission, CultureInfo.InvariantCulture)).FirstOrDefault();
                    productItem.Product.Amount -= productItem.Amount;
                    if (existingAlocate == null)
                    {
                        ProductsAllocated productAlocate = new ProductsAllocated { Product = productItem.Product, Vendor = vendor, Amount = productItem.Amount, Cost = productItem.Product.Cost, Price = productItem.Product.Price, DateAccountability = productItem.DateAccountability, Commision = double.Parse(productItem.Comission, CultureInfo.InvariantCulture) };
                        productAlocate.Save();
                    }
                    else
                    {
                        existingAlocate.Amount += productItem.Amount;
                        existingAlocate.Update();

                    }
                    ViewBag.SaveSuccess = "Produto alocado com sucesso";
                    productItem.Product.Save();

                }
            }
            List<Products> listproducts = Products.Queryable.Where(i => i.User == LoggedUser).ToList();
            List<Users> vendors = Users.Queryable.Where(i => i.UserBoss == LoggedUser).ToList();
            ViewBag.Products = listproducts;
            ViewBag.Vendors = vendors;

            List<AlocatteProductForm> boxWithError = new List<AlocatteProductForm>();

            //errors
            foreach (var item in boxErrorNumber.Distinct())
            {
                boxWithError.Add(alocateForm.Where(i => i.BoxNumber == item).FirstOrDefault());
            }
            ViewBag.boxWithError = boxWithError;
            ViewBag.productError = productError;
            ViewBag.vendorError = vendorError;
            ViewBag.AmountError = AmountError;
            ViewBag.FormError = formError;
            ViewBag.DataError = DataError;
            ViewBag.ComissionError = ComissionError;
            if (boxWithError.Count() > 0)
            {
                ViewBag.Vendor = vendor;
            }
            return View("AllocateProduct");
        }