示例#1
0
        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");
                }
            }
        }
示例#2
0
        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);
        }