private PedidoDto GetPedidoDtoById(int id)
        {
            var pedido = _repository.GetById(id).Select(x => new PedidoDto
            {
                Id           = x.Id,
                Valor        = x.Valor,
                DataCadastro = x.DataCadastro
            }).FirstOrDefault();

            var listaItens = _repositoryPedidoItens.GetByIdPedido(id).ToList();
            List <PedidoItemDto> listaItensDto = new List <PedidoItemDto>();

            foreach (var item in listaItens)
            {
                var produto = _repositoryProduto.GetById(item.IdProduto).FirstOrDefault();

                PedidoItemDto dto = new PedidoItemDto
                {
                    Quantidade   = item.Quantidade,
                    ValorTotal   = item.ValorTotal,
                    ValorUnidade = item.ValorUnidade,
                    NomeProduto  = produto.Nome
                };

                listaItensDto.Add(dto);
            }

            pedido.Itens = listaItensDto;
            return(pedido);
        }
Exemplo n.º 2
0
        public PedidoItemDto Editar(PedidoItemDto dto)
        {
            if (dto == null)
            {
                dto = new PedidoItemDto();
                dto.AddError("Não foi informado dados suficientes para editar o PedidoItem.");
                return(dto);
            }

            var validate = _PedidoItemDtoValidator.Validate(dto);

            if (!validate.IsValid)
            {
                dto.AddErrors(validate.Errors.Select(z => z.ErrorMessage));
                return(dto);
            }

            var PedidoItem = GetById(dto.Id);

            if (PedidoItem == null)
            {
                dto.AddError("Não foi possível localizar o PedidoItem informado.");
                return(dto);
            }

            PedidoItem.SetPedidoId(dto.PedidoId);
            PedidoItem.SetProdutoId(dto.ProdutoId);
            PedidoItem.SetQuantidade(dto.Quantidade);
            PedidoItem.SetValorUnitario(dto.ValorUnitario);
            PedidoItem.SetValorBruto(dto.ValorBruto);
            PedidoItem.SetValorLiquido(dto.ValorLiquido);
            PedidoItem.SetValorDesconto(dto.ValorDesconto);

            if (!PedidoItem.IsValid)
            {
                dto.AddErrors(PedidoItem.Errors);
                return(dto);
            }

            _chronosContext.Entry(PedidoItem).State = EntityState.Modified;
            _chronosContext.SaveChanges();

            return(_mapper.Map <PedidoItem, PedidoItemDto>(PedidoItem));
        }
Exemplo n.º 3
0
        public static ClienteViewModel FromCliente(Cliente cliente)
        {
            if (cliente == null)
            {
                return(new ClienteViewModel());
            }

            var clienteView = new ClienteViewModel
            {
                ClienteId = cliente.Id,
                Nome      = cliente.Nome,
                Telefone  = cliente.Telefone
            };

            foreach (var clientePedido in cliente.Pedidos)
            {
                var pedido = new PedidoDto
                {
                    PedidoId   = clientePedido.Id,
                    ItemPedido = new List <PedidoItemDto>()
                };

                foreach (var pedidoItem in clientePedido.PedidoItems)
                {
                    var item = new PedidoItemDto
                    {
                        ProdutoId        = pedidoItem.IdProduto,
                        DescricaoProduto = pedidoItem.Produto.Descricao,
                        Quantidade       = pedidoItem.QtdItem,
                        ValorUnitario    = pedidoItem.VlUnitario,
                        Referencia       = pedidoItem.Referencia
                    };

                    pedido.ItemPedido.Add(item);
                }

                clienteView.Pedidos.Add(pedido);
            }

            return(clienteView);
        }
Exemplo n.º 4
0
        private List <PedidoItemDto> GetPedidoItemSincronizacao(int pedidoId)
        {
            var result = new List <PedidoItemDto>();

            foreach (DataRow dr in new PedidoItemDAO().PedidoItemPendentesSincronizacao(pedidoId).Rows)
            {
                var item = new PedidoItemDto();
                item.Id            = int.Parse(dr["id"].ToString());
                item.PedidoId      = int.Parse(dr["pedido_id"].ToString());
                item.ProdutoId     = int.Parse(dr["produto_id"].ToString());
                item.Quantidade    = decimal.Parse(dr["quantidade"].ToString());
                item.ValorUnitario = decimal.Parse(dr["valor_unitario"].ToString());
                item.ValorBruto    = decimal.Parse(dr["valor_bruto"].ToString());
                item.ValorLiquido  = decimal.Parse(dr["valor_liquido"].ToString());
                item.ValorDesconto = decimal.Parse(dr["valor_desconto"].ToString());

                result.Add(item);
            }

            return(result);
        }
Exemplo n.º 5
0
        public PedidoItemDto Salvar(PedidoItemDto dto)
        {
            if (dto == null)
            {
                dto = new PedidoItemDto();
                dto.AddError("Não foi informado dados suficientes para salvar o PedidoItem.");
                return(dto);
            }

            var validate = _PedidoItemDtoValidator.Validate(dto);

            if (!validate.IsValid)
            {
                dto.AddErrors(validate.Errors.Select(z => z.ErrorMessage));
                return(dto);
            }

            var PedidoItem = _PedidoItemBuilder
                             .ComId(dto.Id)
                             .ComPedidoId(dto.PedidoId)
                             .ComProdutoId(dto.ProdutoId)
                             .ComQuantidade(dto.Quantidade)
                             .ComValorUnitatio(dto.ValorUnitario)
                             .ComValorBruto(dto.ValorBruto)
                             .ComValorLiquido(dto.ValorLiquido)
                             .ComValorDesconto(dto.ValorDesconto)
                             .Build();

            if (!PedidoItem.IsValid)
            {
                dto.AddErrors(PedidoItem.Errors);
                return(dto);
            }

            _chronosContext.PedidoItens.Add(PedidoItem);
            _chronosContext.SaveChanges();

            return(_mapper.Map <PedidoItem, PedidoItemDto>(PedidoItem));
        }
Exemplo n.º 6
0
        /// <summary>
        /// Converte um item de DTO para Model
        /// </summary>
        /// <param name="itemDto"></param>
        /// <param name="mensagemErro"></param>
        /// <returns></returns>
        public bool ConverterDtoParaModel(PedidoItemDto itemDto, ref string mensagemErro)
        {
            try
            {
                this.DescricaoProduto  = string.IsNullOrWhiteSpace(itemDto.DescricaoProduto) ? "" : itemDto.DescricaoProduto.Trim();
                this.IdPedido          = itemDto.IdPedido;
                this.IdProduto         = itemDto.IdProduto;
                this.IdProdutoComposto = itemDto.IdProdutoComposto;
                this.PrecoProduto      = itemDto.PrecoProduto;
                this.Quantidade        = itemDto.Quantidade;
                this.TipoProduto       = itemDto.TipoProduto;
                this.DataAlteracao     = itemDto.DataAlteracao;
                this.DataInclusao      = itemDto.DataInclusao;
                this.Id = itemDto.Id;

                return(true);
            }
            catch (Exception ex)
            {
                mensagemErro = ex.Message;
                return(false);
            }
        }
        public CarrinhoDto GetByCliente(int id)
        {
            var carrinho = _repositoryCarrinho.GetByIdCliente(id).FirstOrDefault();

            if (carrinho == null)
            {
                throw new Exception("Carrinho não existe.");
            }

            var carrinhoItens = _repositoryCarrinhoItens.GetByCarrinho(id).ToList();

            List <PedidoItemDto> listDto = new List <PedidoItemDto>();

            foreach (var item in carrinhoItens)
            {
                var produto = _repositoryProduto.GetById(item.IdProduto).FirstOrDefault();

                PedidoItemDto itemDto = new PedidoItemDto {
                    NomeProduto  = produto.Nome,
                    Quantidade   = item.Quantidade,
                    ValorTotal   = item.ValorTotalItem,
                    ValorUnidade = item.ValorUnitario
                };

                listDto.Add(itemDto);
            }

            return(new CarrinhoDto
            {
                IdCliente = id,
                NomeCliente = carrinho.Cliente.Nome,
                Id = carrinho.Id,
                DataCadastro = carrinho.DataCadastro,
                Total = carrinho.Total,
                Itens = listDto
            });
        }
Exemplo n.º 8
0
        /// <summary>
        /// Converte um pedido de Model para Dto
        /// </summary>
        /// <param name="pedidoDto"></param>
        /// <param name="mensagemErro"></param>
        /// <returns></returns>
        public bool ConverterModelParaDto(ref PedidoDto pedidoDto, ref string mensagemErro)
        {
            try
            {
                pedidoDto.Obs = string.IsNullOrWhiteSpace(Obs) ? "" : Obs.Trim();
                pedidoDto.JustificativaCancelamento = string.IsNullOrWhiteSpace(JustificativaCancelamento) ? "" : JustificativaCancelamento.Trim().Replace("-", "");
                pedidoDto.NomeCliente      = string.IsNullOrWhiteSpace(NomeCliente) ? "" : NomeCliente.Trim().Replace("-", "");
                pedidoDto.Tipo             = Tipo;
                pedidoDto.Total            = Total;
                pedidoDto.Troco            = Troco;
                pedidoDto.TaxaEntrega      = TaxaEntrega;
                pedidoDto.RecebidoDinheiro = RecebidoDinheiro;
                pedidoDto.RecebidoCredito  = RecebidoCredito;
                pedidoDto.RecebidoDebito   = RecebidoDebito;
                pedidoDto.IdCliente        = IdCliente;
                pedidoDto.PedidoIfood      = PedidoIfood;
                pedidoDto.DataAlteracao    = DataAlteracao;
                pedidoDto.DataInclusao     = DataInclusao;
                pedidoDto.Id      = Id;
                pedidoDto.Inativo = Inativo;

                // Converter os itens
                foreach (var item in ListaItens)
                {
                    if (item.Quantidade > 0) // Adicionar apenas se houver quantidade preenchida
                    {
                        PedidoItemDto itemDto = new PedidoItemDto();
                        if (!item.ConverterModelParaDto(ref itemDto, ref mensagemErro))
                        {
                            return(false);
                        }

                        pedidoDto.ListaItens.Add(itemDto);
                    }
                }

                // Converter cliente
                ClienteDto clienteDto = new ClienteDto();
                if (!Cliente.ConverterModelParaDto(ref clienteDto, ref mensagemErro))
                {
                    return(false);
                }

                // Converter endereço
                PedidoEntregaDto pedidoEntregaDto = new PedidoEntregaDto();
                if (!Entrega.ConverterModelParaDto(ref pedidoEntregaDto, ref mensagemErro))
                {
                    return(false);
                }

                pedidoDto.Cliente = clienteDto;
                pedidoDto.Entrega = pedidoEntregaDto;

                return(true);
            }
            catch (Exception ex)
            {
                mensagemErro = ex.Message;
                return(false);
            }
        }
Exemplo n.º 9
0
 public PedidoItemDto Put(int id, [FromBody] PedidoItemDto dto)
 {
     dto.Id = id;
     return(_PedidoItemService.Editar(dto));
 }
Exemplo n.º 10
0
 public PedidoItemDto Post([FromBody] PedidoItemDto dto) => _PedidoItemService.Salvar(dto);