public static Business_Response ValidateUpdateCategory(CategoryEntity oCategory)
        {
            using var db = new InventoryContext();
            var categories              = db.Categories.ToList();
            Business_Response response  = new Business_Response();
            CategoryEntity    cCategory = (CategoryEntity)oCategory.Clone();

            //Nombre de la categoría.

            if (cCategory.CategoryName == null || cCategory.CategoryName.Length < 2)
            {
                cCategory.CategoryName = "";
                response.Error         = true;
                response.ErrorMessages.Add("El nombre de la categoría debe ser mayor a 1 caracter.");
            }

            if (cCategory.CategoryName.Length > 100)
            {
                response.Error = true;
                response.ErrorMessages.Add("El nombre de la categoría debe ser menor a 100 caracteres.");
            }

            if (categories.Where(c => (c.CategoryId != cCategory.CategoryId) && (c.CategoryName == cCategory.CategoryName)).Any())
            {
                response.Error = true;
                response.ErrorMessages.Add($"El nombre de la categoría {cCategory.CategoryName} ya existe.");
            }

            return(response);
        }
Example #2
0
        public static Business_Response ValidateCreateWarehouse(WarehouseEntity oWarehouse)
        {
            using var db = new InventoryContext();
            var warehouses             = db.Warehouses.ToList();
            Business_Response response = new Business_Response();

            //Referencia
            do
            {
                oWarehouse.WarehouseId = Guid.NewGuid().ToString();//Asigna un identificador a la bodega hasta garantizar que sea único.
            } while (warehouses.Where(w => w.WarehouseId == oWarehouse.WarehouseId).Any());

            WarehouseEntity cWarehouse = (WarehouseEntity)oWarehouse.Clone();

            //Nombre de la bodega.

            if (cWarehouse.WarehouseName == null || cWarehouse.WarehouseName.Length < 2)
            {
                cWarehouse.WarehouseName = "";
                response.Error           = true;
                response.ErrorMessages.Add("El nombre de la bodega debe ser mayor a 1 caracter.");
            }

            if (cWarehouse.WarehouseName.Length > 100)
            {
                response.Error = true;
                response.ErrorMessages.Add("El nombre de la bodega debe ser menor a 100 caracteres.");
            }

            if (warehouses.Where(w => w.WarehouseName == cWarehouse.WarehouseName).Any())
            {
                response.Error = true;
                response.ErrorMessages.Add($"El nombre de la bodega {cWarehouse.WarehouseName} ya existe.");
            }

            //Dirección de la bodega.
            if (cWarehouse.WarehouseAddress == null || cWarehouse.WarehouseAddress.Length < 4)
            {
                cWarehouse.WarehouseAddress = "";
                response.Error = true;
                response.ErrorMessages.Add("La dirección de la bodega debe ser mayor a 4 caracteres.");
            }

            if (cWarehouse.WarehouseAddress.Length > 100)
            {
                response.Error = true;
                response.ErrorMessages.Add("La dirección de la bodega debe ser menor a 100 caracteres.");
            }

            if (warehouses.Where(w => w.WarehouseAddress == cWarehouse.WarehouseAddress).Any())
            {
                response.Error = true;
                response.ErrorMessages.Add($"La dirección de la bodega {cWarehouse.WarehouseAddress} ya está registrada.");
            }

            return(response);
        }
Example #3
0
        public static Business_Response ValidateUpdateWarehouse(WarehouseEntity oWarehouse)
        {
            using var db = new InventoryContext();
            var warehouses               = db.Warehouses.ToList();
            Business_Response response   = new Business_Response();
            WarehouseEntity   cWarehouse = (WarehouseEntity)oWarehouse.Clone();

            //Nombre de la bodega.

            if (cWarehouse.WarehouseName == null || cWarehouse.WarehouseName.Length < 2)
            {
                cWarehouse.WarehouseName = "";
                response.Error           = true;
                response.ErrorMessages.Add("El nombre de la bodega debe ser mayor a 1 caracter.");
            }

            if (cWarehouse.WarehouseName.Length > 100)
            {
                response.Error = true;
                response.ErrorMessages.Add("El nombre de la bodega debe ser menor a 100 caracteres.");
            }

            if (warehouses.Where(w => (w.WarehouseId != cWarehouse.WarehouseId) && (w.WarehouseName == cWarehouse.WarehouseName)).Any())
            {
                response.Error = true;
                response.ErrorMessages.Add($"El nombre de la bodega {cWarehouse.WarehouseName} ya existe.");
            }

            //Dirección de la bodega.
            if (cWarehouse.WarehouseAddress == null || cWarehouse.WarehouseAddress.Length < 4)
            {
                cWarehouse.WarehouseAddress = "";
                response.Error = true;
                response.ErrorMessages.Add("La dirección de la bodega debe ser mayor a 4 caracteres.");
            }

            if (cWarehouse.WarehouseAddress.Length > 100)
            {
                response.Error = true;
                response.ErrorMessages.Add("La dirección de la bodega debe ser menor a 100 caracteres.");
            }

            if (warehouses.Where(w => (w.WarehouseId != cWarehouse.WarehouseId) && (w.WarehouseAddress == cWarehouse.WarehouseAddress)).Any())
            {
                response.Error = true;
                response.ErrorMessages.Add($"La dirección de la bodega {cWarehouse.WarehouseAddress} ya está registrada.");
            }

            return(response);
        }
Example #4
0
        public static Business_Response ValidateCreateInputOutput(InputOutputEntity oInputOutput)
        {
            using var db = new InventoryContext();
            var inputOutputs           = db.InputOutputs.ToList();
            var storages               = db.Storages.ToList();
            Business_Response response = new Business_Response();

            //Referencia
            do
            {
                oInputOutput.InputOutputId = Guid.NewGuid().ToString();//Asigna un identificador a la bodega hasta garantizar que sea único.
            } while (inputOutputs.Where(io => io.InputOutputId == oInputOutput.InputOutputId).Any());

            //Asignar la hora actual.
            oInputOutput.InputOutputDate = DateTime.Now;

            InputOutputEntity cInputOutput = (InputOutputEntity)oInputOutput.Clone();

            //Identificador del almacenamiento válido.
            if (!storages.Where(st => st.StorageId == cInputOutput.StorageId).Any())
            {
                response.Error = true;
                response.ErrorMessages.Add($"La referencia del producto seleccionado no existe.");
                if (cInputOutput.Quantity < 1)
                {
                    response.Error = true;
                    response.ErrorMessages.Add($"La cantidad debe ser mayor o igual a 1.");
                }
            }
            else
            {
                var oStorage = storages.LastOrDefault(s => s.StorageId == oInputOutput.StorageId);//Evita volver a leer desde la base de datos Business_Storage.StorageById(oInputOutput.StorageId);
                var oProduct = oStorage.Product;
                if (cInputOutput.Quantity < 1)
                {
                    response.Error = true;
                    response.ErrorMessages.Add($"La cantidad debe ser mayor o igual a 1.");
                }
                else
                {
                    if (!oInputOutput.IsInput && (oInputOutput.Quantity > oStorage.PartialQuantity))
                    {
                        response.Error = true;
                        response.ErrorMessages.Add($"La cantidad a retirar ({oInputOutput.Quantity}) es mayor que la cantidad del almacen ({oStorage.PartialQuantity}).");
                    }
                }
            }
            return(response);
        }
Example #5
0
        public static Business_Response ValidateUpdateProduct(ProductEntity oProduct)
        {
            using var db = new InventoryContext();
            var products = db.Products.ToList();
            Business_Response response = new Business_Response();
            ProductEntity     cProduct = (ProductEntity)oProduct.Clone();

            //Nombre del producto.
            if (products.Where(p => (p.ProductId != cProduct.ProductId) && (p.ProductName == cProduct.ProductName)).Any())
            {
                response.Error = true;
                response.ErrorMessages.Add($"El nombre del producto {cProduct.ProductName} ya existe.");
            }

            if (cProduct.ProductName == null || cProduct.ProductName.Length < 2)
            {
                cProduct.ProductName = "";
                response.Error       = true;
                response.ErrorMessages.Add("El nombre del producto debe ser mayor a 1 caracter.");
            }

            if (cProduct.ProductName.Length > 100)
            {
                response.Error = true;
                response.ErrorMessages.Add("El nombre del producto debe ser menor a 100 caracteres.");
            }

            //Descripción del producto.
            if (cProduct.ProductDescription == null)
            {
                cProduct.ProductDescription = "";
            }

            if (cProduct.ProductDescription.Length > 600)
            {
                response.Error = true;
                response.ErrorMessages.Add("La descripción del producto debe ser menor a 600 caracteres.");
            }

            if (!db.Categories.Where(c => c.CategoryId == cProduct.CategoryId).Any())
            {
                response.Error = true;
                response.ErrorMessages.Add($"La referencia de la categoría {cProduct.CategoryId} no existe.");
            }

            return(response);
        }
Example #6
0
        public static Business_Response ValidateCreateStorage(StorageEntity oStorage)
        {
            using var db = new InventoryContext();
            var storages = db.Storages.ToList();
            Business_Response response = new Business_Response();

            //Referencia
            do
            {
                oStorage.StorageId = Guid.NewGuid().ToString();//Asigna un identificador a la bodega hasta garantizar que sea único.
            } while (storages.Where(st => st.StorageId == oStorage.StorageId).Any());

            //Asignar la hora actual.
            oStorage.LastUpdate      = DateTime.Now;
            oStorage.PartialQuantity = 0;

            StorageEntity cStorage = (StorageEntity)oStorage.Clone();

            //Identificador del producto válido.
            if (!db.Products.Where(p => p.ProductId == cStorage.ProductId).Any())
            {
                response.Error = true;
                response.ErrorMessages.Add($"La referencia del producto seleccionado no existe.");
            }

            //Identificador de la bodega válido.
            if (!db.Warehouses.Where(w => w.WarehouseId == cStorage.WarehouseId).Any())
            {
                response.Error = true;
                response.ErrorMessages.Add($"La referencia de la bodega seleccionada no existe.");
            }

            //Producto en Bodega
            if (storages.Where(st => (st.WarehouseId == oStorage.WarehouseId) && (st.ProductId == oStorage.ProductId)).Any())
            {//Si ya está registrado el producto en esa bodega no lo almacena nuevamente.
                response.Error = true;
                var storage = db.Storages.Include(s => s.Product).Include(s => s.Warehouse).Where(st => (st.WarehouseId == oStorage.WarehouseId) && (st.ProductId == oStorage.ProductId)).ToList().LastOrDefault(s => true);
                response.ErrorMessages.Add($"El producto {storage.Product.ProductName} ya existe en la bodega {storage.Warehouse.WarehouseName}.");
            }

            return(response);
        }