/// <summary> /// Exclui os itens de um pedido /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> internal bool ExcluirItensPedido(RequisicaoObterDto requisicaoDto, ref RetornoDto retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ExcluirListaItensPedido, Guid.Empty, mensagemErro); return(false); } List <PedidoItemVo> listaExclusao; IQueryable <PedidoItemVo> query; // Obter a query primária if (!this.ObterQueryBd(out query, ref mensagemErro)) { retornoDto.Mensagem = $"Houve um problema ao listar os itens: {mensagemErro}"; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ExcluirListaItensPedido, Guid.Empty, retornoDto.Mensagem); return(false); } // Obter os itens do pedido query = query.Where(p => p.IdPedido == requisicaoDto.Id); listaExclusao = query.ToList(); // Se algum item não veioda requisição foreach (var item in listaExclusao) { // Prepara a exclusão no banco de dados if (!ExcluirBd(item.Id, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao excluir o item do pedido: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ExcluirListaItensPedido, Guid.Empty, retornoDto.Mensagem); return(false); } } if (salvar) { // Salva as alterações if (!pizzaByteContexto.Salvar(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ExcluirListaItensPedido, Guid.Empty, retornoDto.Mensagem); return(false); } } retornoDto.Retorno = true; retornoDto.Mensagem = "OK"; return(true); }
/// <summary> /// Edita as contas vindas de pedidos /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> internal bool EstornarContasPedido(RequisicaoCancelarPedidoDto requisicaoDto, ref RetornoDto retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EstornarContasReceberPedido, Guid.Empty, mensagemErro); return(false); } List <ContaReceberVo> listaContas; IQueryable <ContaReceberVo> query; // Obter a query primária if (!this.ObterQueryBd(out query, ref mensagemErro)) { retornoDto.Mensagem = $"Houve um problema ao listar as contas: {mensagemErro}"; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EstornarContasReceberPedido, Guid.Empty, retornoDto.Mensagem); return(false); } listaContas = query.Where(p => p.IdPedido == requisicaoDto.Id).ToList(); foreach (var conta in listaContas) { conta.Status = StatusConta.Estornada; if (!EditarBd(conta, ref mensagemErro)) { retornoDto.Mensagem = $"Houve um problema ao editar as contas: {mensagemErro}"; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EstornarContasReceberPedido, Guid.Empty, retornoDto.Mensagem); return(false); } } if (salvar) { // Salva as alterações if (!pizzaByteContexto.Salvar(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarListaContasReceberPedido, Guid.Empty, retornoDto.Mensagem); return(false); } } retornoDto.Retorno = true; retornoDto.Mensagem = "OK"; return(true); }
/// <summary> /// Obtém uma taxa de entrega pelo bairro, se não existir, retorna nulo /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> public bool ObterTaxaPorBairro(RequisicaoObterTaxaPorBairroDto requisicaoDto, ref RetornoObterDto <TaxaEntregaDto> retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterTaxaPorBairro, Guid.Empty, mensagemErro); return(false); } // Obter a query primária IQueryable <TaxaEntregaVo> query; if (!this.ObterQueryBd(out query, ref mensagemErro)) { retornoDto.Mensagem = $"Houve um problema ao listar as taxas de entrega: {mensagemErro}"; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterTaxaPorBairro, Guid.Empty, retornoDto.Mensagem); return(false); } string bairro = string.IsNullOrWhiteSpace(requisicaoDto.BairroCidade) ? "" : requisicaoDto.BairroCidade.Trim(); query = query.Where(p => p.BairroCidade == bairro); TaxaEntregaVo taxaEntregaVo = query.FirstOrDefault(); if (taxaEntregaVo != null) { TaxaEntregaDto taxaEntregaDto = new TaxaEntregaDto(); if (!ConverterVoParaDto(taxaEntregaVo, ref taxaEntregaDto, ref mensagemErro)) { retornoDto.Mensagem = mensagemErro; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterTaxaPorBairro, Guid.Empty, retornoDto.Mensagem); return(false); } retornoDto.Entidade = taxaEntregaDto; } else { retornoDto.Entidade = null; } retornoDto.Retorno = true; return(true); }
/// <summary> /// Obtem o total de entrega por profissional /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> public bool ObterTotalEntregaPorProfissional(RequisicaoDataDto requisicaoDto, ref RetornoObterTotalEntregaPorProfissionalDto retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterTotalEntregaPorProfissional, Guid.Empty, mensagemErro); return(false); } List <SqlParameter> listaFiltros = new List <SqlParameter>(); listaFiltros.Add(new SqlParameter("dataCaixa", requisicaoDto.Data.Date)); string query = "SELECT CAST(ISNULL(SUM(TaxaEntrega), 0) AS float) AS TotalEntregas," + " f.Nome AS NomeProfissional" + " FROM PizzaByte.PedidosEntregas AS e" + " INNER JOIN PizzaByte.Pedidos AS p ON e.IdPedido = p.Id" + " INNER JOIN PizzaByte.Funcionarios AS f ON e.IdFuncionario = f.Id AND f.Inativo = 0" + " AND f.Excluido = 0" + " WHERE CAST(e.DataInclusao AS Date) = @dataCaixa AND e.Inativo = 0 AND e.Excluido = 0" + " AND e.IdFuncionario IS NOT NULL" + " GROUP BY f.Nome" + " ORDER BY f.Nome"; try { PizzaByteContexto contexto = new PizzaByteContexto(); retornoDto.ListaTotais = contexto.Database.SqlQuery <TotalPorProfissional>(query, listaFiltros.ToArray()).ToList(); retornoDto.Retorno = true; retornoDto.Mensagem = "Ok"; return(true); } catch (Exception ex) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao obter os dados: " + ex.Message; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterTotalEntregaPorProfissional, Guid.Empty, mensagemErro); return(false); } }
/// <summary> /// Obtem os dados necessários para popular a tela de caixa /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> public bool ObterFormasPagamentoDia(RequisicaoDataDto requisicaoDto, ref RetornoObterResumoCaixaDto retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterInformacoesDashboard, Guid.Empty, mensagemErro); return(false); } List <SqlParameter> listaFiltros = new List <SqlParameter>(); string query = "SELECT CAST(ISNULL(SUM(RecebidoDinheiro), 0) AS float) AS RecebidoDinheiro," + " CAST(ISNULL(SUM(RecebidoCredito), 0) AS float) AS RecebidoCredito," + " CAST(ISNULL(SUM(RecebidoDebito), 0) AS float) AS RecebidoDebito," + " CAST(ISNULL(SUM(Troco), 0) AS float) AS Troco," + " CAST(ISNULL(SUM(TaxaEntrega), 0) AS float) AS TaxaEntrega" + " FROM PizzaByte.Pedidos" + " WHERE CAST(DataInclusao AS Date) = @dataCaixa AND Inativo = 0 AND Excluido = 0"; listaFiltros.Add(new SqlParameter("dataCaixa", requisicaoDto.Data.Date)); try { PizzaByteContexto contexto = new PizzaByteContexto(); retornoDto = contexto.Database.SqlQuery <RetornoObterResumoCaixaDto>(query, listaFiltros.ToArray()).FirstOrDefault(); retornoDto.TotalVendas = (retornoDto.RecebidoDinheiro - retornoDto.Troco) + retornoDto.RecebidoCredito + retornoDto.RecebidoDebito; retornoDto.Retorno = true; retornoDto.Mensagem = "Ok"; return(true); } catch (Exception ex) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao obter os dados: " + ex.Message; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterInformacoesDashboard, Guid.Empty, mensagemErro); return(false); } }
/// <summary> /// Obtém os detalhes do pedido de uma entrega /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> public bool ObterPedidoResumido(RequisicaoObterDto requisicaoDto, ref RetornoObterDto <PedidoResumidoDto> retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterPedidoResumido, requisicaoDto.Id, mensagemErro); return(false); } 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); } retornoDto.Entidade = new PedidoResumidoDto() { PedidoIfood = pedidoVo.PedidoIfood, RecebidoCredito = pedidoVo.RecebidoCredito, RecebidoDebito = pedidoVo.RecebidoDebito, RecebidoDinheiro = pedidoVo.RecebidoDinheiro, TaxaEntrega = pedidoVo.TaxaEntrega, Troco = pedidoVo.Troco, Total = pedidoVo.Total, Tipo = pedidoVo.Tipo, Id = pedidoVo.Id }; retornoDto.Retorno = true; retornoDto.Mensagem = "OK"; return(true); }
/// <summary> /// Traz uma lista ID, Nome dos usuários para popular combos /// </summary> /// <param name="requisicaoDto"></param> /// <param name="listaUsuarios"></param> /// <param name="mensagemErro"></param> /// <returns></returns> public bool ObterListaParaSelecao(BaseRequisicaoDto requisicaoDto, ref RetornoObterDicionarioDto <Guid, string> retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaUsuariosParaSelecao, Guid.Empty, retornoDto.Mensagem); return(false); } // Obter a query primária IQueryable <UsuarioVo> query; if (!this.ObterQueryBd(out query, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = $"Erro ao obter a query: {mensagemErro}"; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaUsuario, Guid.Empty, retornoDto.Mensagem); return(false); } try { retornoDto.ListaEntidades = query.Where(p => p.Excluido == false).OrderBy(p => p.Nome).Select(p => new { p.Id, p.Nome }).AsEnumerable().ToDictionary(p => p.Id, p => p.Nome); return(true); } catch (Exception ex) { retornoDto.Retorno = false; retornoDto.Mensagem = $"Erro ao obter a query: {ex.Message}"; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaUsuario, Guid.Empty, retornoDto.Mensagem); return(false); } }
/// <summary> /// Exclui os endereços de um cliente pelo seu ID /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> public bool ExcluirPorIdCliente(RequisicaoObterDto requisicaoDto, ref RetornoDto retornoDto) { if (requisicaoDto.Id == Guid.Empty) { retornoDto.Mensagem = "Informe o ID do cliente para excluir seus endereços."; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ExcluirEnderecosPorIdCliente, requisicaoDto.Id, retornoDto.Mensagem); return(false); } string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ExcluirEnderecosPorIdCliente, requisicaoDto.Id, mensagemErro); return(false); } if (!UtilitarioBll.ValidarUsuarioAdm(requisicaoDto.Identificacao, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Este usuário não é administrador. Para excluir endereços de clientes é necessário " + $"logar com um usuário administrador. {mensagemErro}"; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ExcluirEnderecosPorIdCliente, requisicaoDto.Id, retornoDto.Mensagem); return(false); } // Obter a query primária IQueryable <ClienteEnderecoVo> query; if (!this.ObterQueryBd(out query, ref mensagemErro)) { retornoDto.Mensagem = $"Houve um problema ao listar os endereços de clientes: {mensagemErro}"; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ExcluirEnderecosPorIdCliente, Guid.Empty, retornoDto.Mensagem); return(false); } query = query.Where(p => p.IdCliente == requisicaoDto.Id); List <ClienteEnderecoVo> enderecosEncontrados = query.ToList(); // Excluir os endereços encontrados foreach (var enderecoVo in enderecosEncontrados) { if (!ExcluirBd(enderecoVo.Id, ref mensagemErro)) { retornoDto.Mensagem = $"Houve um problema ao excluir o endereço do cliente: {mensagemErro}"; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ExcluirEnderecosPorIdCliente, Guid.Empty, retornoDto.Mensagem); return(false); } if (salvar) { // Salva as alterações if (!pizzaByteContexto.Salvar(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Houve um problema ao excluir o endereço do cliente: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ExcluirEnderecosPorIdCliente, requisicaoDto.Id, mensagemErro); return(false); } } logBll.ResgistrarLog(requisicaoDto, LogRecursos.ExcluirEnderecosPorIdCliente, requisicaoDto.Id, "endereço excluído."); } retornoDto.Retorno = true; retornoDto.Mensagem = "OK"; return(true); }
/// <summary> /// Obtem o endereço pelo CEP /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> public bool ObterPorCep(RequisicaoObterCepPorCepDto requisicaoDto, ref RetornoObterDto <CepDto> retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Mensagem = mensagemErro; return(false); } if (string.IsNullOrWhiteSpace(requisicaoDto.Cep)) { retornoDto.Mensagem = $"Informe um CEP para obter o endereço"; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterCepPorCep, Guid.Empty, retornoDto.Mensagem); return(false); } // Obter a query primária IQueryable <CepVo> query; if (!this.ObterQueryBd(out query, ref mensagemErro)) { retornoDto.Mensagem = $"Houve um problema ao listar os CEPs: {mensagemErro}"; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterCepPorCep, Guid.Empty, retornoDto.Mensagem); return(false); } requisicaoDto.Cep = requisicaoDto.Cep.Replace("-", ""); query = query.Where(p => p.Cep == requisicaoDto.Cep.Trim()); CepVo cepVo = query.FirstOrDefault(); if (cepVo == null) { retornoDto.Retorno = true; retornoDto.Mensagem = "CEP não encontrado"; retornoDto.Entidade = null; return(true); } else { CepDto cepDto = new CepDto(); if (!ConverterVoParaDto(cepVo, ref cepDto, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = $"Erro ao converter o CEP para DTO: {mensagemErro}"; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterCepPorCep, Guid.Empty, retornoDto.Mensagem); return(false); } retornoDto.Retorno = true; retornoDto.Mensagem = "Ok"; retornoDto.Entidade = cepDto; return(true); } }
/// <summary> /// Inclui/edita as contas vindas de pedidos /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> internal bool IncluirContasPedido(RequisicaoListaEntidadesDto <ContaReceberDto> requisicaoDto, ref RetornoDto retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirListaContasReceberPedido, Guid.Empty, mensagemErro); return(false); } if (requisicaoDto.ListaEntidadesDto.Count <= 0) { retornoDto.Retorno = false; retornoDto.Mensagem = "Informe as contas que deseja incluir."; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirListaContasReceberPedido, Guid.Empty, retornoDto.Mensagem); return(false); } //Confirmar o id do pedido e um novo id para cada item requisicaoDto.ListaEntidadesDto.ForEach(p => p.IdPedido = requisicaoDto.IdComum); requisicaoDto.ListaEntidadesDto.ForEach(p => p.Id = (p.Id == null || p.Id == Guid.Empty) ? Guid.NewGuid() : p.Id); // Para cada item foreach (var item in requisicaoDto.ListaEntidadesDto) { if (!item.ValidarEntidade(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirListaContasReceberPedido, Guid.Empty, mensagemErro); return(false); } ContaReceberVo itemVo = new ContaReceberVo(); if (!ConverterDtoParaVo(item, ref itemVo, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao converter a conta do pedido para VO: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirListaContasReceberPedido, Guid.Empty, retornoDto.Mensagem); return(false); } // Prepara a inclusão no banco de dados if (!IncluirBd(itemVo, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao salvar a conta do pedido: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirListaContasReceberPedido, Guid.Empty, retornoDto.Mensagem); return(false); } } if (salvar) { // Salva as alterações if (!pizzaByteContexto.Salvar(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirListaContasReceberPedido, Guid.Empty, retornoDto.Mensagem); return(false); } } retornoDto.Retorno = true; retornoDto.Mensagem = "OK"; return(true); }
/// <summary> /// Edita as contas vindas de pedidos /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> internal bool EditarContasPedido(RequisicaoListaEntidadesDto <ContaReceberDto> requisicaoDto, ref RetornoDto retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarListaContasReceberPedido, Guid.Empty, mensagemErro); return(false); } List <ContaReceberVo> listaContas; IQueryable <ContaReceberVo> query; // Obter a query primária if (!this.ObterQueryBd(out query, ref mensagemErro)) { retornoDto.Mensagem = $"Houve um problema ao listar as contas: {mensagemErro}"; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarListaContasReceberPedido, Guid.Empty, retornoDto.Mensagem); return(false); } listaContas = query.Where(p => p.IdPedido == requisicaoDto.IdComum).ToList(); foreach (var conta in listaContas) { if (!ExcluirDefinitivoBd(conta.Id, ref mensagemErro)) { retornoDto.Mensagem = $"Houve um problema ao excluir as contas: {mensagemErro}"; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarListaContasReceberPedido, Guid.Empty, retornoDto.Mensagem); return(false); } } //Confirmar o id do pedido e um novo id para cada item requisicaoDto.ListaEntidadesDto.ForEach(p => p.IdPedido = requisicaoDto.IdComum); requisicaoDto.ListaEntidadesDto.ForEach(p => p.Id = (p.Id == null || p.Id == Guid.Empty) ? Guid.NewGuid() : p.Id); // Para cada item foreach (var item in requisicaoDto.ListaEntidadesDto) { if (!item.ValidarEntidade(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarListaContasReceberPedido, Guid.Empty, mensagemErro); return(false); } ContaReceberVo itemVo = new ContaReceberVo(); if (!ConverterDtoParaVo(item, ref itemVo, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao converter a conta do pedido para VO: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarListaContasReceberPedido, Guid.Empty, retornoDto.Mensagem); return(false); } // Prepara a inclusão no banco de dados if (!IncluirBd(itemVo, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao salvar a conta do pedido: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarListaContasReceberPedido, Guid.Empty, retornoDto.Mensagem); return(false); } } if (salvar) { // Salva as alterações if (!pizzaByteContexto.Salvar(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarListaContasReceberPedido, Guid.Empty, retornoDto.Mensagem); return(false); } } retornoDto.Retorno = true; retornoDto.Mensagem = "OK"; return(true); }
/// <summary> /// Cancela um pedido e sua entrega, se houver /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> public bool CancelarPedido(RequisicaoCancelarPedidoDto requisicaoDto, ref RetornoDto retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.CancelarPedido, requisicaoDto.Id, mensagemErro); return(false); } PedidoVo pedidoVo = new PedidoVo(); if (!ObterPorIdBd(requisicaoDto.Id, out pedidoVo, ref mensagemErro)) { retornoDto.Mensagem = "Problemas para encontrar o pedido: " + mensagemErro; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.CancelarPedido, requisicaoDto.Id, retornoDto.Mensagem); return(false); } // Mudar o inativo que se refere ao cancelado para true pedidoVo.Inativo = true; pedidoVo.JustificativaCancelamento = string.IsNullOrWhiteSpace(requisicaoDto.Justificativa) ? "" : requisicaoDto.Justificativa.Trim(); if (!EditarBd(pedidoVo, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao cancelar o pedido: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.CancelarPedido, requisicaoDto.Id, retornoDto.Mensagem); return(false); } // Cancelar a entrega se houver if (pedidoVo.Tipo == TipoPedido.Entrega) { PedidoEntregaBll pedidoEntregaBll = new PedidoEntregaBll(pizzaByteContexto, false); if (!pedidoEntregaBll.CancelarEntrega(requisicaoDto, ref retornoDto)) { retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.CancelarPedido, requisicaoDto.Id, retornoDto.Mensagem); return(false); } } // Cancelar contas ContaReceberBll contaReceberBll = new ContaReceberBll(pizzaByteContexto, false); if (!contaReceberBll.EstornarContasPedido(requisicaoDto, ref retornoDto)) { return(false); } // Cancelar itens PedidoItemBll pedidoItemBll = new PedidoItemBll(pizzaByteContexto, false); if (!pedidoItemBll.EstornarLista(requisicaoDto, ref retornoDto)) { return(false); } if (salvar) { // Salva as alterações if (!pizzaByteContexto.Salvar(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Erro ao salvar o cancelamento: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.CancelarPedido, requisicaoDto.Id, retornoDto.Mensagem); return(false); } } logBll.ResgistrarLog(requisicaoDto, LogRecursos.CancelarPedido, requisicaoDto.Id, "Pedido cancelado."); retornoDto.Retorno = true; retornoDto.Mensagem = "OK"; return(true); }
/// <summary> /// Altera o funcionário responsável pela entrega /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> public bool AlterarFuncionarioEntrega(RequisicaoAlterarFuncionarioEntregaDto requisicaoDto, ref RetornoDto retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.AlterarFuncionarioEntrega, requisicaoDto.Id, mensagemErro); return(false); } if (!UtilitarioBll.ValidarUsuarioAdm(requisicaoDto.Identificacao, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Este usuário não é administrador. Para alterar o funcionário das entregas é necessário " + $"logar com um usuário administrador. {mensagemErro}"; logBll.ResgistrarLog(requisicaoDto, LogRecursos.AlterarFuncionarioEntrega, requisicaoDto.Id, retornoDto.Mensagem); } // Validar o id da entrega if (requisicaoDto.Id == Guid.Empty || requisicaoDto.Id == null) { retornoDto.Retorno = false; retornoDto.Mensagem = "O id da entrega não foi preenchido."; logBll.ResgistrarLog(requisicaoDto, LogRecursos.AlterarFuncionarioEntrega, requisicaoDto.Id, mensagemErro); return(false); } // Validar o id do funcionário if (requisicaoDto.IdFuncionario == Guid.Empty || requisicaoDto.IdFuncionario == null) { retornoDto.Retorno = false; retornoDto.Mensagem = "O funcionário não foi informado."; logBll.ResgistrarLog(requisicaoDto, LogRecursos.AlterarFuncionarioEntrega, requisicaoDto.Id, mensagemErro); return(false); } PedidoEntregaVo entregaVo; if (!ObterPorIdBd(requisicaoDto.Id, out entregaVo, ref mensagemErro)) { retornoDto.Mensagem = "Erro ao obter o pedido: " + mensagemErro; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.AlterarFuncionarioEntrega, requisicaoDto.Id, retornoDto.Mensagem); return(false); } // Preencher os dados da conferência entregaVo.IdFuncionario = requisicaoDto.IdFuncionario; if (!EditarBd(entregaVo, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao editar os novos dados da entrega: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.AlterarFuncionarioEntrega, requisicaoDto.Id, retornoDto.Mensagem); return(false); } if (salvar) { // Salva as alterações if (!pizzaByteContexto.Salvar(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Erro ao salvar os novos dados: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.AlterarFuncionarioEntrega, requisicaoDto.Id, retornoDto.Mensagem); return(false); } } retornoDto.Retorno = true; retornoDto.Mensagem = "OK"; return(true); }
/// <summary> /// Edita uma lista de itens de um pedido no banco de dados /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> internal bool EditarLista(RequisicaoListaEntidadesDto <PedidoItemDto> requisicaoDto, ref RetornoDto retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarPedidoItem, Guid.Empty, mensagemErro); return(false); } if (requisicaoDto.ListaEntidadesDto.Count <= 0) { retornoDto.Retorno = false; retornoDto.Mensagem = "Informe ao menos um item para editar."; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarPedidoItem, Guid.Empty, retornoDto.Mensagem); return(false); } List <PedidoItemVo> listaExclusao; IQueryable <PedidoItemVo> query; // Obter a query primária if (!this.ObterQueryBd(out query, ref mensagemErro)) { retornoDto.Mensagem = $"Houve um problema ao listar os itens: {mensagemErro}"; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarPedidoItem, Guid.Empty, retornoDto.Mensagem); return(false); } // Obter os itens do pedido query = query.Where(p => p.IdPedido == requisicaoDto.IdComum); listaExclusao = query.ToList(); //Confirmar o id do pedido e um novo id para cada item requisicaoDto.ListaEntidadesDto.ForEach(p => p.IdPedido = requisicaoDto.IdComum); requisicaoDto.ListaEntidadesDto.ForEach(p => p.Id = (p.Id == null || p.Id == Guid.Empty) ? Guid.NewGuid() : p.Id); // Para cada item foreach (var item in requisicaoDto.ListaEntidadesDto) { if (!item.ValidarEntidade(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarListaPedidoItem, Guid.Empty, mensagemErro); return(false); } PedidoItemVo itemVo = listaExclusao.Where(p => p.Id == item.Id).FirstOrDefault(); if (itemVo == null) { // Se não existir, incluir itemVo = new PedidoItemVo(); if (!ConverterDtoParaVo(item, ref itemVo, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao converter o item do pedido para VO: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarListaPedidoItem, Guid.Empty, retornoDto.Mensagem); return(false); } // Prepara a inclusão no banco de dados if (!IncluirBd(itemVo, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao salvar o item do pedido: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarListaPedidoItem, Guid.Empty, retornoDto.Mensagem); return(false); } } else { listaExclusao.Remove(itemVo); // Se existir e mudar algum dado, editar if (item.PrecoProduto != itemVo.PrecoProduto || item.Quantidade != itemVo.Quantidade) { itemVo.Quantidade = item.Quantidade; itemVo.PrecoProduto = item.PrecoProduto; // Prepara a edição no banco de dados if (!EditarBd(itemVo, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao salvar o item do pedido: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarPedidoItem, Guid.Empty, retornoDto.Mensagem); return(false); } } } } // Se algum item não veioda requisição foreach (var item in listaExclusao) { // Prepara a exclusão no banco de dados if (!ExcluirBd(item.Id, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao excluir o item do pedido: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarPedidoItem, Guid.Empty, retornoDto.Mensagem); return(false); } } if (salvar) { // Salva as alterações if (!pizzaByteContexto.Salvar(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.EditarPedidoItem, Guid.Empty, retornoDto.Mensagem); return(false); } } retornoDto.Retorno = true; retornoDto.Mensagem = "OK"; return(true); }
/// <summary> /// Processa uma lista de taxas, editando as existentes e incluindo as novas /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> public bool IncluirEditarLista(RequisicaoListaEntidadesDto <TaxaEntregaDto> requisicaoDto, ref RetornoDto retornoDto) { if (requisicaoDto.ListaEntidadesDto.Count <= 0) { retornoDto.Retorno = false; retornoDto.Mensagem = "É necessário ter ao menos uma taxa de entrega para incluir a lista de taxas."; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirAlterarListaTaxaEntrega, Guid.Empty, retornoDto.Mensagem); return(false); } string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirAlterarListaTaxaEntrega, Guid.Empty, mensagemErro); return(false); } // Para cada taxa foreach (var taxa in requisicaoDto.ListaEntidadesDto) { // Se existir, editar os dados if (taxa.Id != Guid.Empty) { TaxaEntregaVo taxaEntregaVo; if (!ObterPorIdBd(taxa.Id, out taxaEntregaVo, ref mensagemErro, true)) { retornoDto.Mensagem = "Erro ao obter a taxa de entrega: " + mensagemErro; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirAlterarListaTaxaEntrega, taxa.Id, retornoDto.Mensagem); return(false); } if (!taxa.ValidarEntidade(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirAlterarListaTaxaEntrega, Guid.Empty, mensagemErro); return(false); } // Converte para VO a ser alterado no banco de dados if (!ConverterDtoParaVo(taxa, ref taxaEntregaVo, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao converter a taxa de entrega para VO: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirAlterarListaTaxaEntrega, Guid.Empty, retornoDto.Mensagem); return(false); } if (!EditarBd(taxaEntregaVo, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao salvar os novos dados da taxa de entrega: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirAlterarListaTaxaEntrega, taxaEntregaVo.Id, retornoDto.Mensagem); return(false); } } else // Se não existir, incluir { taxa.Id = Guid.NewGuid(); if (!taxa.ValidarEntidade(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirAlterarListaTaxaEntrega, Guid.Empty, mensagemErro); return(false); } // Converte para VO a ser incluída no banco de dados TaxaEntregaVo taxaEntregaVo = new TaxaEntregaVo(); if (!ConverterDtoParaVo(taxa, ref taxaEntregaVo, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = "Falha ao converter a taxa de entrega para VO: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirAlterarListaTaxaEntrega, Guid.Empty, retornoDto.Mensagem); return(false); } // Prepara a inclusão no banco de dados if (!IncluirBd(taxaEntregaVo, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = $"Falha ao incluir a taxa de entrega ({taxaEntregaVo.BairroCidade}) para VO: " + mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirAlterarListaTaxaEntrega, Guid.Empty, retornoDto.Mensagem); return(false); } } } if (salvar) { // Salva as alterações if (!pizzaByteContexto.Salvar(ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.IncluirTaxaEntrega, Guid.Empty, retornoDto.Mensagem); return(false); } } retornoDto.Mensagem = "OK"; retornoDto.Retorno = true; return(true); }
/// <summary> /// Obtém uma lista com todos os bairros e suas respectivas taxas /// </summary> /// <param name="requisicaoDto"></param> /// <param name="retornoDto"></param> /// <returns></returns> public bool ObterListaBairrosComTaxa(BaseRequisicaoDto requisicaoDto, ref RetornoObterListaDto <TaxaEntregaDto> retornoDto) { string mensagemErro = ""; if (!UtilitarioBll.ValidarIdentificacao(requisicaoDto.Identificacao, requisicaoDto.IdUsuario, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaBairrosComTaxas, Guid.Empty, mensagemErro); return(false); } CepBll cepBll = new CepBll(false); List <BairroCidadeDto> listaBairros = new List <BairroCidadeDto>(); // Obter os bairros cadastrados if (!cepBll.ObterListaBairros(requisicaoDto, ref listaBairros, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = mensagemErro; return(false); } // Obter a query primária IQueryable <TaxaEntregaVo> query; List <TaxaEntregaVo> listaTaxasCadastradas; if (!this.ObterQueryBd(out query, ref mensagemErro, true)) { retornoDto.Mensagem = $"Houve um problema ao listar as taxas de entrega: {mensagemErro}"; retornoDto.Retorno = false; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaBairrosComTaxas, Guid.Empty, retornoDto.Mensagem); return(false); } try { query = query.OrderBy(p => p.BairroCidade); listaTaxasCadastradas = query.ToList(); } catch (Exception) { retornoDto.Retorno = false; retornoDto.Mensagem = $"Houve um problema ao listar os bairros: {mensagemErro}"; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaBairrosComTaxas, Guid.Empty, mensagemErro); return(false); } // Para cada bairro foreach (var bairro in listaBairros) { // Iniciar taxa TaxaEntregaDto taxaDto = new TaxaEntregaDto() { BairroCidade = bairro.Bairro + "_" + bairro.Cidade.Trim(), Cidade = bairro.Cidade, Id = Guid.Empty, ValorTaxa = 0 }; TaxaEntregaVo taxaVo = listaTaxasCadastradas.Where(p => p.BairroCidade.Trim() == (bairro.Bairro.Trim() + "_" + bairro.Cidade.Trim())).FirstOrDefault(); if (taxaVo != null) { if (!ConverterVoParaDto(taxaVo, ref taxaDto, ref mensagemErro)) { retornoDto.Retorno = false; retornoDto.Mensagem = $"Falha ao converter a taxa para DTO: {mensagemErro}"; logBll.ResgistrarLog(requisicaoDto, LogRecursos.ObterListaBairrosComTaxas, Guid.Empty, mensagemErro); return(false); } if (taxaVo.Excluido) { taxaDto.ValorTaxa = 0; } } retornoDto.ListaEntidades.Add(taxaDto); } retornoDto.ListaEntidades = retornoDto.ListaEntidades.OrderBy(p => p.Cidade).ThenBy(p => p.BairroCidade).ToList(); retornoDto.Retorno = true; retornoDto.Mensagem = "OK"; return(true); }