public async Task Handler(AtualizarLancamentoCommand request)
        {
            var lancamentoTupla = EntidadeExistente(request.Id, request.MessageType);

            if (!lancamentoTupla.exist)
            {
                return;
            }

            var lancamentoAtual = (Lancamento)lancamentoTupla.entity;

            var lancamentoParaAtualizar = new Lancamento(lancamentoAtual.Id, request.Data, request.Valor, request.Descricao, request.Conta, request.Tipo);

            if (!EntidadeValida(lancamentoParaAtualizar))
            {
                return;
            }

            await _lancamentoRepository.Atualizar(lancamentoParaAtualizar).ConfigureAwait(false);

            if (Commit())
            {
                await _mediator.PublicarEvento(new LancamentoAtualizadoEvent(lancamentoParaAtualizar.Id, lancamentoParaAtualizar.Data, lancamentoParaAtualizar.Valor, lancamentoParaAtualizar.Descricao, lancamentoParaAtualizar.Conta, lancamentoParaAtualizar.Tipo)).ConfigureAwait(false);
            }
        }
Example #2
0
        public void Saida(Lancamento model)
        {
            if (string.IsNullOrEmpty(model.Atividade))
            {
                throw new Exception("Atividade não foi informada");
            }
            var lancamento = _repository.ConsultarUltimoLancamento(model.ContratoID, model.ProfissionalID);

            //Todo lancamento por padrao não requer análise prévai
            //Desta forma o mesmo, não pode ser marcado como pendente
            lancamento.Pendente = false;
            if (!PermitirEntrada(lancamento))
            {
                if (model.HorarioSaida.HasValue) //lancamento retroativo
                {
                    //Quando for um lançamento retroativo, marcar como pendente, para que possa ser avaliado
                    lancamento.Pendente = true;
                    if (model.HorarioSaida.Value < lancamento.HorarioEntrada)
                    {
                        throw new Exception("Horário de entrada não pode ser menor que o horário de entrada");
                    }
                    else if (model.HorarioSaida.Value >= DateTime.Now)
                    {
                        throw new Exception("Horário de saída não pode ser maior do que o horário atual");
                    }
                    else
                    {
                        lancamento.HorarioSaida = model.HorarioSaida.Value;
                    }
                }
                else
                {
                    lancamento.HorarioSaida = DateTime.Now;
                }
                lancamento.Atividade  = model.Atividade;
                lancamento.Observacao = model.Observacao;
                _repository.Atualizar(lancamento);
            }
            else
            {
                throw new Exception("Saída não permitida");
            }
        }
Example #3
0
 public void Atualizar(Lancamento entity)
 {
     _lancamentoRepository.Atualizar(entity);
 }
Example #4
0
 public void Atualizar(Lancamento lancamento)
 {
     repository.Atualizar(lancamento);
 }