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); } }
public async Task <AppRecipes> Insert(AppRecipes appRecipes) { await _unitOfWork.AppRecipesRepository.Add(appRecipes); await _unitOfWork.SaveChangesAsync(); return(appRecipes); }
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); } }
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)); }
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); } }
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); } }
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); } }
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); } }
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); } }
public async Task Delete(int id) { AppRecipes entity = await GetById(id); _context.AppRecipes.Remove(entity); }
public void Update(AppRecipes entity) { _context.AppRecipes.Update(entity); }
public async Task Add(AppRecipes entity) { await _context.AppRecipes.AddAsync(entity); }