/// <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); } }
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")); }
/// <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); } }
/// <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); }
/// <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); } }