예제 #1
0
        /// <summary>
        /// Converte um produto de Model para Dto
        /// </summary>
        /// <param name="entregaDto"></param>
        /// <param name="mensagemErro"></param>
        /// <returns></returns>
        public bool ConverterModelParaDto(ref PedidoEntregaDto entregaDto, ref string mensagemErro)
        {
            try
            {
                entregaDto.Obs           = string.IsNullOrWhiteSpace(Obs) ? "" : Obs.Trim();
                entregaDto.Conferido     = this.Conferido;
                entregaDto.IdEndereco    = this.IdEndereco;
                entregaDto.IdFuncionario = this.IdFuncionario;
                entregaDto.IdPedido      = this.IdPedido;
                entregaDto.ValorRetorno  = this.ValorRetorno;
                entregaDto.DataAlteracao = this.DataAlteracao;
                entregaDto.DataInclusao  = this.DataInclusao;
                entregaDto.Id            = this.Id;
                entregaDto.Inativo       = this.Inativo;

                // Converter endereço
                ClienteEnderecoDto clienteEnderecoDto = new ClienteEnderecoDto();
                if (!ClienteEndereco.ConverterModelParaDto(ref clienteEnderecoDto, ref mensagemErro))
                {
                    return(false);
                }

                entregaDto.ClienteEndereco = clienteEnderecoDto;

                return(true);
            }
            catch (Exception ex)
            {
                mensagemErro = ex.Message;
                return(false);
            }
        }
예제 #2
0
        public ActionResult Editar(PedidoEntregaModel model)
        {
            //Se não tiver login, encaminhar para a tela de login
            if (string.IsNullOrWhiteSpace(SessaoUsuario.SessaoLogin.Identificacao))
            {
                return(RedirectToAction("Login", "Usuario"));
            }

            if (!SessaoUsuario.SessaoLogin.Administrador)
            {
                ViewBag.MensagemErro = "Para alterar os dados de uma entrega é necessário " +
                                       $"logar com um usuário administrador.";
                return(View("SemPermissao"));
            }

            //Valida a entidade recebida
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            //Converte para DTO
            PedidoEntregaDto entregaDto   = new PedidoEntregaDto();
            string           mensagemErro = "";

            if (!model.ConverterModelParaDto(ref entregaDto, ref mensagemErro))
            {
                ViewBag.MensagemErro = mensagemErro;
                return(View("Erro"));
            }

            //Preparar requisição e retorno
            RetornoDto retorno = new RetornoDto();
            RequisicaoEntidadeDto <PedidoEntregaDto> requisicaoDto = new RequisicaoEntidadeDto <PedidoEntregaDto>()
            {
                EntidadeDto   = entregaDto,
                Identificacao = SessaoUsuario.SessaoLogin.Identificacao,
                IdUsuario     = SessaoUsuario.SessaoLogin.IdUsuario
            };

            //Consumir o serviço
            PedidoEntregaBll entregaBll = new PedidoEntregaBll(true);

            entregaBll.Editar(requisicaoDto, ref retorno);

            //Tratar o retorno
            if (retorno.Retorno == false)
            {
                ModelState.AddModelError("", retorno.Mensagem);
                return(View(model));
            }

            TempData["Retorno"] = "ALTERADO";

            //Voltar para o visualizar do entrega
            return(RedirectToAction("Index"));
        }
예제 #3
0
        /// <summary>
        /// Converte um pedido de DTO para Model
        /// </summary>
        /// <param name="entregaDto"></param>
        /// <param name="mensagemErro"></param>
        /// <returns></returns>
        public bool ConverterDtoParaModel(PedidoEntregaDto entregaDto, ref string mensagemErro)
        {
            try
            {
                Obs           = string.IsNullOrWhiteSpace(entregaDto.Obs) ? "" : entregaDto.Obs.Trim();
                Conferido     = entregaDto.Conferido;
                IdEndereco    = entregaDto.IdEndereco;
                IdFuncionario = entregaDto.IdFuncionario;
                IdPedido      = entregaDto.IdPedido;
                ValorRetorno  = entregaDto.ValorRetorno;
                DataAlteracao = entregaDto.DataAlteracao;
                DataInclusao  = entregaDto.DataInclusao;
                Id            = entregaDto.Id;
                Inativo       = entregaDto.Inativo;

                // Converter endereço
                ClienteEnderecoModel clienteEnderecoModel = new ClienteEnderecoModel();
                if (entregaDto.ClienteEndereco != null)
                {
                    if (!clienteEnderecoModel.ConverterDtoParaModel(entregaDto.ClienteEndereco, ref mensagemErro))
                    {
                        return(false);
                    }
                }
                else
                {
                    clienteEnderecoModel.Id = entregaDto.IdEndereco;
                }

                ClienteEndereco = clienteEnderecoModel;

                return(true);
            }
            catch (Exception ex)
            {
                mensagemErro = ex.Message;
                return(false);
            }
        }
예제 #4
0
        /// <summary>
        /// Obtém um pedido pelo ID
        /// </summary>
        /// <param name="requisicaoDto"></param>
        /// <param name="retornoDto"></param>
        /// <returns></returns>
        public override bool Obter(RequisicaoObterDto requisicaoDto, ref RetornoObterDto <PedidoDto> retornoDto)
        {
            if (!base.Obter(requisicaoDto, ref retornoDto))
            {
                return(false);
            }

            string   mensagemErro = "";
            PedidoVo pedidoVo;

            if (!ObterPorIdBd(requisicaoDto.Id, out pedidoVo, ref mensagemErro))
            {
                retornoDto.Mensagem = "Erro ao obter o pedido: " + mensagemErro;
                retornoDto.Retorno  = false;

                logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterPedido, requisicaoDto.Id, retornoDto.Mensagem);
                return(false);
            }

            PedidoDto pedidoDto = new PedidoDto();

            if (!ConverterVoParaDto(pedidoVo, ref pedidoDto, ref mensagemErro))
            {
                retornoDto.Mensagem = "Erro ao converter o pedido: " + mensagemErro;
                retornoDto.Retorno  = false;

                logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterPedido, requisicaoDto.Id, retornoDto.Mensagem);
                return(false);
            }

            retornoDto.Entidade = pedidoDto;

            //Obter itens
            PedidoItemBll           pedidoItemBll      = new PedidoItemBll(true);
            RequisicaoObterListaDto requisicaoItensDto = new RequisicaoObterListaDto()
            {
                CampoOrdem         = "DESCRICAOPRODUTO",
                NaoPaginarPesquisa = true,
                Identificacao      = requisicaoDto.Identificacao,
                IdUsuario          = requisicaoDto.IdUsuario
            };

            requisicaoItensDto.ListaFiltros.Add("IDPEDIDO", requisicaoDto.Id.ToString());
            RetornoObterListaDto <PedidoItemDto> retornoItemDto = new RetornoObterListaDto <PedidoItemDto>();

            if (!pedidoItemBll.ObterListaFiltrada(requisicaoItensDto, ref retornoItemDto))
            {
                return(false);
            }

            retornoDto.Entidade.ListaItens = retornoItemDto.ListaEntidades;

            //Obter entrega
            if (pedidoDto.Tipo == TipoPedido.Entrega)
            {
                PedidoEntregaDto entregaDto       = new PedidoEntregaDto();
                PedidoEntregaBll pedidoEntregaBll = new PedidoEntregaBll(pizzaByteContexto, false);
                if (!pedidoEntregaBll.ObterEntregaPorIdPedido(requisicaoDto, ref entregaDto, ref mensagemErro))
                {
                    retornoDto.Mensagem = "Erro ao obter a entrega do pedido: " + mensagemErro;
                    retornoDto.Retorno  = false;

                    logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterPedido, requisicaoDto.Id, retornoDto.Mensagem);
                    return(false);
                }

                pedidoDto.Entrega = entregaDto;
            }

            //Obter cliente
            if (pedidoDto.IdCliente != null && pedidoDto.IdCliente != Guid.Empty)
            {
                requisicaoDto.Id = pedidoDto.IdCliente.Value;
                ClienteBll clienteBll = new ClienteBll(false);

                RetornoObterDto <ClienteDto> retornoClienteDto = new RetornoObterDto <ClienteDto>();
                if (!clienteBll.Obter(requisicaoDto, ref retornoClienteDto) && retornoClienteDto.Mensagem != "Erro ao obter o cliente: Cadastro não encontrado")
                {
                    retornoDto.Mensagem = retornoClienteDto.Mensagem;
                    retornoDto.Retorno  = false;

                    return(false);
                }

                if (retornoClienteDto.Mensagem == "Erro ao obter o cliente: Cadastro não encontrado")
                {
                    pedidoDto.Cliente.Nome = "Cadastro não encontro";
                }
                else
                {
                    pedidoDto.Cliente = retornoClienteDto.Entidade;
                }
            }

            retornoDto.Mensagem = "Ok";
            retornoDto.Retorno  = true;
            return(true);
        }
예제 #5
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);
            }
        }