public IHttpActionResult AtualizarMovimentacao(string token, string id, string tipo, string quantidade, string valorUnitarioCusto) { try { //Valida se o usuário do token de sessão informado possui autorização necessária para utilizar esta funcionalidade List <Usuario.Perfis> Perfis = new List <Usuario.Perfis>() { Usuario.Perfis.AdministradorGeral, Usuario.Perfis.AdministradorEstoque }; ValidarAutorizacao(token, Perfis); //Ajusta os parâmetros informados long idAtualizacao = _utilitariosService.ObterValorLong(id, "O código do produto informado não é válido!"); Movimentacao.TiposMovimentacao tipoAtualizacao = _utilitariosService.ObterValorEnum <Movimentacao.TiposMovimentacao>(tipo, "O tipo informado não é válido!"); decimal quantidadeAtualizacao = _utilitariosService.ObterValorDecimal(quantidade, "A quantidade informada não é válida!"); decimal valorUnitarioCustoAtualizacao = _utilitariosService.ObterValorDecimal(valorUnitarioCusto, "O valor unitário de custo informado não é válido!"); //Executa a ação _produtoService.AtualizarMovimentacao(idAtualizacao, tipoAtualizacao, quantidadeAtualizacao, valorUnitarioCustoAtualizacao); return(Json(new { Erro = false, Mensagem = "A atualização dos dados foi processada com sucesso!" })); } catch (Exception ex) { return(Json(new { Erro = true, Mensagem = _utilitariosService.ObterMensagemErroDetalhada(ex), TipoException = ex.GetType().ToString(), StackTrace = ex.StackTrace })); } }
public List <Movimentacao> ObterTodas(Movimentacao.TiposMovimentacao tipo, DateTime dataInicial, DateTime dataFinal) { try { if (dataFinal < dataInicial) { throw new Exception("A data final deve ser maior do que a data inicial!"); } return(DbContext.Movimentacoes.Where(w => w.TipoMovimentacao == tipo & w.Data >= dataInicial & w.Data <= dataFinal).OrderBy(o => o.Data).ToList()); } catch (Exception ex) { throw ex; } }
public void AtualizarMovimentacao(long id, Movimentacao.TiposMovimentacao tipo, decimal quantidade, decimal?valorUnitarioCusto) { try { Produto produtoExistente = Obter(id, PorId.PorId); if (produtoExistente == null) { return; } produtoExistente.OperacaoCRUD = BaseEntity.OperacoesCRUD.Update; if (tipo == Movimentacao.TiposMovimentacao.Entrada) { produtoExistente.QtdEstoque += quantidade; if (valorUnitarioCusto != null) { produtoExistente.ValorUnitarioCusto = valorUnitarioCusto.Value; } } else { produtoExistente.QtdEstoque -= quantidade; } produtoExistente.DataUltimaMovimentacao = DateTime.Now; produtoExistente.AjustarPropriedades(); if (produtoExistente.PossuiErrosValidacao()) { throw new Exception(produtoExistente.ObterMensagensErrosValidacao()); } DbContext.Produtos.Attach(produtoExistente); DbContext.Entry(produtoExistente).State = EntityState.Modified; DbContext.SaveChanges(); } catch (Exception ex) { throw ex; } }