コード例 #1
0
        public async Task <decimal> CalculateFormula(AppRecipes recipe)
        {
            try
            {
                decimal result = 0;


                if (recipe == null)
                {
                    result = 0;
                }
                else
                {
                    string formula = await GetValueFormula(recipe.Formula, recipe.Appproducts.Code, recipe.Code);

                    DataTable dt        = new DataTable();
                    object    calculate = dt.Compute(formula, "");
                    string    a         = calculate.ToString();
                    result              = Convert.ToDecimal(calculate.ToString());
                    recipe.Quantity     = 1;
                    recipe.TotalCost    = result;
                    recipe.FormulaValue = formula;
                    await Update(recipe);
                }



                return(result);
            }
            catch (Exception ex)
            {
                string a = ex.Message;
                return(0);
            }
        }
コード例 #2
0
        public async Task <AppRecipes> Insert(AppRecipes appRecipes)
        {
            await _unitOfWork.AppRecipesRepository.Add(appRecipes);

            await _unitOfWork.SaveChangesAsync();

            return(appRecipes);
        }
コード例 #3
0
        public async Task <ApiResponse <AppVariablesGetDto> > CreateVariables(AppVariablesCreateDto dto)
        {
            AppVariablesGetDto resultDto = new AppVariablesGetDto();

            Metadata metadata = new Metadata
            {
                IsValid = true,
                Message = ""
            };

            ApiResponse <AppVariablesGetDto> response = new ApiResponse <AppVariablesGetDto>(resultDto);

            try
            {
                AppRecipes recipes = await _unitOfWork.AppRecipesRepository.GetRecipesByVariableCode(dto.Code);

                if (recipes != null)
                {
                    metadata.IsValid = false;

                    metadata.Message = "El Codigo de Variable ya existe en la formulacion!!!";

                    response.Meta = metadata;
                    response.Data = resultDto;

                    return(response);
                }


                AppVariables appVariables = _mapper.Map <AppVariables>(dto);

                appVariables.TipoVariable = 1;
                appVariables.UserCreate   = dto.UsuarioConectado;
                appVariables.CreatedAt    = DateTime.Now;
                AppVariables appVariablesInserted = await Insert(appVariables);

                resultDto        = _mapper.Map <AppVariablesGetDto>(appVariablesInserted);
                metadata.IsValid = true;
                metadata.Message = $"Variable Creada Satisfactoriamente!";

                response.Meta = metadata;
                response.Data = resultDto;

                return(response);
            }
            catch (Exception ex)
            {
                metadata.IsValid = false;

                metadata.Message = ex.InnerException.Message;

                response.Meta = metadata;
                response.Data = resultDto;

                return(response);
            }
        }
コード例 #4
0
        public async Task <AppRecipes> Update(AppRecipes appRecipes)
        {
            var appRecipesFind = await GetById(appRecipes.Id);

            if (appRecipesFind == null)
            {
                throw new Exception("Documento No existe");
            }

            _unitOfWork.AppRecipesRepository.Update(appRecipes);
            await _unitOfWork.SaveChangesAsync();

            return(await GetById(appRecipes.Id));
        }
コード例 #5
0
        public async Task <ApiResponse <List <AppRecipesGetDto> > > CopyRecipes(AppCopyRecipesDto appCopyRecipesDto)
        {
            List <AppRecipesGetDto> resultDto = new List <AppRecipesGetDto>();

            Metadata metadata = new Metadata
            {
                IsValid = true,
                Message = ""
            };

            ApiResponse <List <AppRecipesGetDto> > response = new ApiResponse <List <AppRecipesGetDto> >(resultDto);

            try
            {
                var productSince = await _unitOfWork.AppProductsRepository.GetById(appCopyRecipesDto.productIdSince);

                if (productSince == null)
                {
                    metadata.IsValid = false;
                    metadata.Message = "Producto desde no existe!!";
                    response.Data    = null;
                    response.Meta    = metadata;
                    return(response);
                }
                var productUntil = await _unitOfWork.AppProductsRepository.GetById(appCopyRecipesDto.productIdUntil);

                if (productUntil == null)
                {
                    metadata.IsValid = false;
                    metadata.Message = "Producto hasta no existe!!";
                    response.Data    = null;
                    response.Meta    = metadata;
                    return(response);
                }

                var recipesUntil = await GetAllRecipesByProductId(productUntil.Id);

                if (recipesUntil != null && recipesUntil.Count > 0)
                {
                    metadata.IsValid = false;
                    metadata.Message = "Producto hasta ya tiene una receta asociada!!";
                    response.Data    = null;
                    response.Meta    = metadata;
                    return(response);
                }

                var recipes = await GetAllRecipesByProductId(productSince.Id);

                if (recipes == null)
                {
                    metadata.IsValid = false;
                    metadata.Message = "Producto desdeno tiene una receta asociada!!";
                    response.Data    = null;
                    response.Meta    = metadata;
                    return(response);
                }

                foreach (var item in recipes)
                {
                    AppRecipes itemNew = new AppRecipes();

                    itemNew.AppproductsId = appCopyRecipesDto.productIdUntil;



                    itemNew.AppIngredientsId = item.AppIngredientsId;


                    itemNew.AppVariableId = item.AppVariableId;

                    itemNew.Code = item.Code;

                    itemNew.Description = item.Description;

                    itemNew.Formula = item.Formula;

                    itemNew.FormulaValue = item.FormulaValue;

                    itemNew.IncludeInSearch = item.IncludeInSearch;

                    itemNew.OrderCalculate = item.OrderCalculate;

                    itemNew.Quantity = item.Quantity;

                    itemNew.SumValue = item.SumValue;

                    itemNew.TotalCost = item.TotalCost;

                    itemNew.AfectaCosto = item.AfectaCosto;

                    itemNew.Secuencia = item.Secuencia;

                    var inserted = await Insert(itemNew);
                }

                await UpdateVariableSearchByProduct((int)appCopyRecipesDto.productIdUntil);

                var listRecipeCalculate = await CalulateRecipeByProduct((int)appCopyRecipesDto.productIdUntil);

                response.Data = listRecipeCalculate;
                response.Meta = metadata;
                return(response);
            }
            catch (Exception ex)
            {
                metadata.IsValid = false;
                metadata.Message = ex.InnerException.Message;
                response.Data    = null;
                response.Meta    = metadata;
                return(response);
            }
        }
コード例 #6
0
        public async Task <ApiResponse <bool> > DeleteAppRecipes(AppRecipesDeleteDto dto)
        {
            bool resultDto = true;

            Metadata metadata = new Metadata
            {
                IsValid = true,
                Message = ""
            };

            ApiResponse <bool> response = new ApiResponse <bool>(resultDto);

            try
            {
                AppRecipes appRecipes = await GetById(dto.Id);

                if (appRecipes == null)
                {
                    metadata.IsValid = false;

                    metadata.Message = "Receta no  No existe!!!";

                    response.Meta = metadata;
                    response.Data = resultDto;

                    return(response);
                }

                AppRecipes recipesExistInFormula = await _unitOfWork.AppRecipesRepository.GetRecipesByCodeInFormula((int)appRecipes.AppproductsId, appRecipes.Code);

                if (recipesExistInFormula != null)
                {
                    metadata.IsValid = false;

                    metadata.Message = "Variable esta siendo usada en la formulacion!!!";

                    response.Meta = metadata;
                    response.Data = resultDto;

                    return(response);
                }

                resultDto = await Delete(dto.Id);

                metadata.IsValid = true;
                metadata.Message = $"VAriable  Eliminada de la Receta Satisfactoriamente!";

                response.Meta = metadata;
                response.Data = resultDto;

                return(response);
            }
            catch (Exception ex)
            {
                metadata.IsValid = false;

                metadata.Message = ex.InnerException.Message;

                response.Meta = metadata;
                response.Data = resultDto;

                return(response);
            }
        }
コード例 #7
0
        public async Task <ApiResponse <List <AppRecipesGetDto> > > CreateAppRecipes(AppRecipesCreateDto dto)
        {
            List <AppRecipesGetDto> resultDto = new List <AppRecipesGetDto>();

            Metadata metadata = new Metadata
            {
                IsValid = true,
                Message = ""
            };

            ApiResponse <List <AppRecipesGetDto> > response = new ApiResponse <List <AppRecipesGetDto> >(resultDto);


            try
            {
                AppRecipes appRecipes = _mapper.Map <AppRecipes>(dto);

                //var recipeByProductVariable = await GetRecipesByProductIdVariableId((int)dto.AppproductsId, (int)dto.AppVariableId);
                //if (recipeByProductVariable != null)
                //{

                //    metadata.IsValid = false;
                //    metadata.Message = "Variable ya existe en este producto!!";
                //    response.Data = null;
                //    response.Meta = metadata;
                //    return response;
                //}


                AppProducts appProductsFind = await _appProductsService.GetById((int)dto.AppproductsId);

                if (appProductsFind == null)
                {
                    metadata.IsValid = false;
                    metadata.Message = "Producto no existe!!";
                    response.Data    = null;
                    response.Meta    = metadata;
                    return(response);
                }
                AppVariables appVariablesFind = await _appVariablesService.GetById((int)dto.AppVariableId);

                if (appVariablesFind == null)
                {
                    metadata.IsValid = false;
                    metadata.Message = "Variable no existe!!";
                    response.Data    = null;
                    response.Meta    = metadata;
                    return(response);
                }

                appRecipes.Code = appVariablesFind.Code;

                appRecipes.Description = appVariablesFind.Description;

                appRecipes.Quantity = dto.Quantity;

                appRecipes.SumValue = dto.SumValue;

                appRecipes.OrderCalculate = dto.OrderCalculate;

                appRecipes.IncludeInSearch = dto.IncludeInSearch;

                appRecipes.AfectaCosto = dto.AfectaCosto;

                appRecipes.Secuencia = dto.Secuencia;

                if (dto.AppIngredientsId != null)
                {
                    AppIngredients appIngredientsFind = await _unitOfWork.AppIngredientsRepository.GetById((int)dto.AppIngredientsId);

                    if (appIngredientsFind == null)
                    {
                        metadata.IsValid = false;
                        metadata.Message = "Ingrediente no existe!!";
                        response.Data    = null;
                        response.Meta    = metadata;
                        return(response);
                    }
                    else
                    {
                        if (dto.AfectaCosto == true)
                        {
                            appRecipes.TotalCost = appIngredientsFind.Cost * appRecipes.Quantity;
                        }
                        else
                        {
                            appRecipes.TotalCost = 0;
                        }
                    }
                }
                else
                {
                    if (dto.Formula == "" || dto.Formula == null)
                    {
                        metadata.IsValid = false;
                        metadata.Message = "Debe Indicar Una formula o seleccionar un ingrediente!!";
                        response.Data    = null;
                        response.Meta    = metadata;
                        return(response);
                    }

                    appRecipes.TotalCost    = 0;
                    appRecipes.Formula      = dto.Formula;
                    appRecipes.FormulaValue = "";
                }


                var inserted = await Insert(appRecipes);
                await UpdateVariableSearchByProduct((int)dto.AppproductsId);

                var listRecipeCalculate = await CalulateRecipeByProduct((int)dto.AppproductsId);

                response.Data = listRecipeCalculate;
                response.Meta = metadata;
                return(response);
            }
            catch (Exception ex)
            {
                metadata.IsValid = false;
                metadata.Message = ex.InnerException.Message;
                response.Data    = null;
                response.Meta    = metadata;
                return(response);
            }
        }
コード例 #8
0
        public async Task <ApiResponse <bool> > DeleteAppIngredients(AppIngredientsDeleteDto dto)
        {
            bool resultDto = true;

            Metadata metadata = new Metadata
            {
                IsValid = true,
                Message = ""
            };

            ApiResponse <bool> response = new ApiResponse <bool>(resultDto);

            try
            {
                AppIngredients appIngredients = await GetById(dto.Id);

                if (appIngredients == null)
                {
                    metadata.IsValid = false;

                    metadata.Message = "Ingrediente No existe!!!";

                    response.Meta = metadata;
                    response.Data = resultDto;

                    return(response);
                }

                AppRecipes recipes = await _unitOfWork.AppRecipesRepository.GetRecipesByIdIngredients(dto.Id);

                if (recipes != null)
                {
                    metadata.IsValid = false;

                    metadata.Message = "Ingrediente existe en la formulacion!!!";

                    response.Meta = metadata;
                    response.Data = resultDto;

                    return(response);
                }

                resultDto = await Delete(dto.Id);

                metadata.IsValid = true;
                metadata.Message = $"Ingrediente Eliminada Satisfactoriamente!";

                response.Meta = metadata;
                response.Data = resultDto;

                return(response);
            }
            catch (Exception ex)
            {
                metadata.IsValid = false;

                metadata.Message = ex.InnerException.Message;

                response.Meta = metadata;
                response.Data = resultDto;

                return(response);
            }
        }
コード例 #9
0
        public async Task <ApiResponse <AppVariablesGetDto> > UpdateVariables(AppVariablesUpdateDto dto)
        {
            AppVariablesGetDto resultDto = new AppVariablesGetDto();

            Metadata metadata = new Metadata
            {
                IsValid = true,
                Message = ""
            };

            ApiResponse <AppVariablesGetDto> response = new ApiResponse <AppVariablesGetDto>(resultDto);

            try
            {
                AppVariables variable = await GetById(dto.Id);

                if (variable == null)
                {
                    metadata.IsValid = false;

                    metadata.Message = "Variable No existe!!!";

                    response.Meta = metadata;
                    response.Data = resultDto;

                    return(response);
                }
                if (variable.Code != dto.Code)
                {
                    AppRecipes recipes = await _unitOfWork.AppRecipesRepository.GetRecipesByVariableCode(variable.Code);

                    if (recipes != null)
                    {
                        metadata.IsValid = false;

                        metadata.Message = "Variable existe en la formulacion!!!";

                        response.Meta = metadata;
                        response.Data = resultDto;

                        return(response);
                    }
                }



                variable.Description    = dto.Description;
                variable.Code           = dto.Code;
                variable.TipoVariable   = 1;
                variable.UserUpdate     =
                    variable.UserUpdate = dto.UsuarioConectado;
                variable.UpdatedAt      = DateTime.Now;

                AppVariables appVariablesUpdated = await Update(variable);

                resultDto        = _mapper.Map <AppVariablesGetDto>(appVariablesUpdated);
                metadata.IsValid = true;
                metadata.Message = $"Variable Actualizada Satisfactoriamente!";

                response.Meta = metadata;
                response.Data = resultDto;

                return(response);
            }
            catch (Exception ex)
            {
                metadata.IsValid = false;

                metadata.Message = ex.InnerException.Message;

                response.Meta = metadata;
                response.Data = resultDto;

                return(response);
            }
        }
コード例 #10
0
        public async Task Delete(int id)
        {
            AppRecipes entity = await GetById(id);

            _context.AppRecipes.Remove(entity);
        }
コード例 #11
0
 public void Update(AppRecipes entity)
 {
     _context.AppRecipes.Update(entity);
 }
コード例 #12
0
 public async Task Add(AppRecipes entity)
 {
     await _context.AppRecipes.AddAsync(entity);
 }