public IHttpActionResult EnviarValidacaoFinanceiro(int id, [FromBody] DadosEntradaDto dadosEntrada) { dadosEntrada = dadosEntrada ?? new DadosEntradaDto(); using (var sessao = new GDATransaction()) { var validacao = this.ValidarExistenciaIdPedido(sessao, id); if (validacao != null) { return(validacao); } try { sessao.BeginTransaction(); PedidoDAO.Instance.DisponibilizaFinalizacaoFinanceiro(sessao, (uint)id, dadosEntrada.Mensagem); sessao.Commit(); return(this.Aceito($"Pedido {id} enviado para validação pelo financeiro.")); } catch (Exception ex) { sessao.Rollback(); return(this.ErroValidacao(ex.Message, ex)); } } }
public IHttpActionResult ObterDados([FromUri] DadosEntradaDto dadosEntrada) { dadosEntrada = dadosEntrada ?? new DadosEntradaDto(); if (dadosEntrada.IdProduto == 0) { return(this.ErroValidacao("O identificador do produto é obrigatório.")); } if (dadosEntrada.IdCliente == 0) { return(this.ErroValidacao("O identificador do cliente é obrigatório.")); } using (var sessao = new GDATransaction()) { var percentualDesconto = this.ObterPercentualDescontoPorQuantidade( sessao, dadosEntrada); var percentualTabela = this.ObterPercentualDescontoTabela( sessao, dadosEntrada); return(this.Item(new DadosDescontoQuantidadeDto { PercentualDescontoPorQuantidade = percentualDesconto, PercentualDescontoTabela = percentualTabela, })); } }
public IHttpActionResult CalcularTotalBeneficiamentos([FromBody] DadosEntradaDto dadosEntrada) { if (dadosEntrada == null) { return(this.ErroValidacao("Os dados de entrada são obrigatórios.")); } dadosEntrada.Beneficiamentos = dadosEntrada.Beneficiamentos ?? new DadosBeneficiamentosDto[0]; var validacao = this.ValidarBeneficiamentosSelecionados(dadosEntrada.Beneficiamentos); if (validacao != null) { return(validacao); } var calculado = dadosEntrada.Beneficiamentos.SelectMany(item => item.ItensSelecionados.Select(itemSelecionado => { var total = item.CobrarBeneficiamento ? ValorTotal.Instance.Calcular(dadosEntrada.DadosCalculo, item.Beneficiamento, itemSelecionado) : new Data.Beneficiamentos.Total.Dto.TotalDto(); return(new TotalDto { IdItemSelecionado = itemSelecionado.Id, ValorUnitario = total.ValorUnitario.Arredondar(2), ValorTotal = total.ValorTotal.Arredondar(2), CustoTotal = total.CustoTotal.Arredondar(2), }); })); return(this.Lista(calculado)); }
public IHttpActionResult SalvarObservacao(int idPedido, int id, [FromBody] DadosEntradaDto dadosEntrada) { using (var sessao = new GDATransaction()) { Data.Model.ProdutosPedido produto; var validacao = this.ValidarOperacaoId(sessao, idPedido, id, out produto); if (validacao != null) { return(validacao); } try { sessao.BeginTransaction(); ProdutosPedidoDAO.Instance.AtualizaObs(sessao, (uint)id, dadosEntrada?.Observacao); sessao.Commit(); return(this.Aceito($"Produto {id} atualizado com sucesso no pedido {idPedido}!")); } catch (Exception e) { sessao.Rollback(); return(this.ErroValidacao($"Erro ao atualizar a observação do produto {id} do pedido {idPedido}.", e)); } } }
public IHttpActionResult ValidarDiaUtil([FromBody] DadosEntradaDto dadosEntrada) { if (dadosEntrada == null) { return(this.ErroValidacao("Dados de entrada do método são obrigatórios.")); } if (!dadosEntrada.PermitirFimDeSemana) { var dataValida = (dadosEntrada.Data.DayOfWeek != DayOfWeek.Saturday || Geral.ConsiderarSabadoDiaUtil) && (dadosEntrada.Data.DayOfWeek != DayOfWeek.Sunday || Geral.ConsiderarDomingoDiaUtil); if (!dataValida) { return(this.ErroValidacao("Data não pode ser selecionada em um fim de semana.")); } } if (!dadosEntrada.PermitirFeriado) { var dataValida = !FeriadoDAO.Instance.IsFeriado(dadosEntrada.Data); if (!dataValida) { return(this.ErroValidacao("Data não pode ser selecionada em um feriado.")); } } return(this.Ok()); }
private decimal ObterPercentualDescontoPorQuantidade(GDASession sessao, DadosEntradaDto dadosEntrada) { if (!PedidoConfig.Desconto.DescontoPorProduto) { return(0); } return((decimal)DescontoQtdeDAO.Instance.GetPercDescontoByProd( sessao, (uint)dadosEntrada.IdProduto, (int)dadosEntrada.Quantidade)); }
private decimal ObterPercentualDescontoTabela(GDASession sessao, DadosEntradaDto dadosEntrada) { var idGrupoProd = dadosEntrada.IdGrupoProduto ?? ProdutoDAO.Instance.ObtemIdGrupoProd(sessao, dadosEntrada.IdProduto); var idSubgrupoProd = dadosEntrada.IdSubgrupoProduto ?? ProdutoDAO.Instance.ObtemIdSubgrupoProd(sessao, dadosEntrada.IdProduto); var descontoCliente = DescontoAcrescimoClienteDAO.Instance.GetDescontoAcrescimo( sessao, (uint)dadosEntrada.IdCliente, idGrupoProd, idSubgrupoProd, dadosEntrada.IdProduto, null, null); return((decimal)descontoCliente.Desconto); }
public IHttpActionResult ObterFiltro([FromUri] DadosEntradaDto dadosEntrada) { if (dadosEntrada == null) { return(this.ErroValidacao("Os parâmetros do método são obrigatórios.")); } string idsPedidosIgnorar = dadosEntrada.IdsPedidosIgnorar != null ? string.Join(",", dadosEntrada.IdsPedidosIgnorar) : null; bool?gerarCredito = this.ObterFiltroGerarCredito(dadosEntrada.TipoObras); using (var sessao = new GDATransaction()) { var obras = ObraDAO.Instance.GetList( (uint?)dadosEntrada.IdCliente, null, 0, 0, 0, ((int?)dadosEntrada.Situacao).GetValueOrDefault(), null, null, null, null, gerarCredito, idsPedidosIgnorar, (uint)(dadosEntrada.Id ?? 0), 0, dadosEntrada.Descricao, null, 0, 10); return(this.Lista(obras.Select(o => new ObraDto(o)))); } }