public async Task AlterarProdutoPedidoAsync(UsuarioModel usuarioModel, string email, int id, int newQuantidade) { var produtosPedido = await _baseRepository.GetProdutosById(id); if (produtosPedido != null) { if (produtosPedido.Quantidade != newQuantidade) { var diferencaValores = (produtosPedido.ValorUnitario * newQuantidade) - produtosPedido.ValorTotal; var diferencaQuantidade = newQuantidade - produtosPedido.Quantidade; produtosPedido.SetQuantidade(newQuantidade); produtosPedido.SetValorTotal(produtosPedido.ValorUnitario * newQuantidade); await _baseRepository.UpdateProdutosPedidoAsync(produtosPedido); await AtualizarValoresDoPedido(diferencaValores, produtosPedido.PedidoModelId); await DarBaixaEstoque(null, produtosPedido.ProdutoCorModel.Id, diferencaQuantidade, "produto"); } } else { var kitPedido = await _baseRepository.GetKitsById(id); if (kitPedido.Quantidade != newQuantidade) { var produtosKit = await _produtoCorRepository.GetListByKitAsync(kitPedido.KitModel.Nome, null); var diferencaValores = (kitPedido.ValorUnitario * newQuantidade) - kitPedido.ValorTotal; var diferencaQuantidade = newQuantidade - kitPedido.Quantidade; kitPedido.SetQuantidade(newQuantidade); kitPedido.SetValorTotal(kitPedido.ValorUnitario * newQuantidade); await _baseRepository.UpdateKitsPedidoAsync(kitPedido); await AtualizarValoresDoPedido(diferencaValores, kitPedido.PedidoModelId); await DarBaixaEstoque(produtosKit, 0, diferencaQuantidade, "kit"); } } }
public async Task <(IEnumerable <ProdutoCorModel>, bool)> GetListByKitAsync(string kitName, string statusAtivacao) { var lista = await _produtoCorRepository.GetListByKitAsync(kitName, statusAtivacao); var verificarEstoqueLista = false; if (lista.Any()) { verificarEstoqueLista = await _produtoCorRepository.VerificarEstoqueNegativo(lista.ToList()); } return(lista.ToList(), verificarEstoqueLista); }