public MovimentoBaixaView Incluir(MovimentoBaixaView movBaixaView)
        {
            movBaixaView.DataEvento = DateTime.Now;

            MovimentoBaixa movBaixa = ObterModel(movBaixaView);

            /* Identifica a direção do valor na conta (entra ou saida) */
            if (movBaixa.Movimento.Tipo.Equals(TipoMovimento.PAGAR))
            {
                movBaixa.Direcao = DirecaoBaixa.SAIDA;
            }
            else
            {
                movBaixa.Direcao = DirecaoBaixa.ENTRADA;
            }

            if (movBaixa.Movimento.Saldo < movBaixa.ValorBaixa)
            {
                throw new Exception($"O movimento id {movBaixa.Movimento.Id} possui um saldo '{movBaixa.Movimento.Saldo}' " +
                                    $"inferior ao valor da baixa '{movBaixa.ValorBaixa}'. " +
                                    $"Baixa somente até o saldo devedor / credor.");
            }

            movBaixa.Movimento.ValorPago = movBaixa.Movimento.ValorPago + movBaixa.ValorBaixa;

            /* Atualiza o registro pai de movimento */
            repoMovimento.Alterar(movBaixa.Movimento);

            /* Inclui o registro de baixa */
            repositoryMovBaixa.Incluir(movBaixa);

            return(movBaixa.ToView());
        }
 public static MovimentoBaixaView ToView(this MovimentoBaixa model)
 {
     return(new MovimentoBaixaView
     {
         Id = model.Id,
         DataEvento = model.DataEvento,
         DataBaixa = model.DataBaixa,
         Direcao = model.Direcao.DirecaoBaixaParaString(),
         ValorBaixa = model.ValorBaixa,
         MovimentoId = model.MovimentoId,
         ContaBancariaId = model.ContaBancariaId
     });
 }
Example #3
0
        private static void GravandoMovimentoBaixaEntity()
        {
            using (var context = new FinancaContext())
            {
                ContaBancaria contaBancaria = context.ContaBancaria.First();
                ContaCartao   contaCartao   = context.ContaCartao.First();
                Etiqueta      etiqueta      = context.Etiqueta.First();
                Pessoa        pessoa        = context.Pessoa.First();

                Movimento newMovimento = new Movimento();
                newMovimento.Pessoa      = pessoa;
                newMovimento.Etiqueta    = etiqueta;
                newMovimento.Cadastro    = DateTime.Now;
                newMovimento.Vencimento  = DateTime.Now.AddMonths(2);
                newMovimento.Tipo        = TipoMovimento.PAGAR;
                newMovimento.Status      = StatusMovimento.PENDENTE;
                newMovimento.Descricao   = "teste inicial";
                newMovimento.Valor       = 10.00m;
                newMovimento.ValorPago   = 0m;
                newMovimento.ContaCartao = contaCartao;

                MovimentoBaixa baixa1 = new MovimentoBaixa();

                baixa1.Movimento     = newMovimento;
                baixa1.DataBaixa     = DateTime.Now;
                baixa1.DataEvento    = DateTime.Now;
                baixa1.ContaBancaria = contaBancaria;
                baixa1.Direcao       = DirecaoBaixa.SAIDA;
                baixa1.ValorBaixa    = 5m;

                MovimentoBaixa baixa2 = new MovimentoBaixa();

                baixa2.Movimento     = newMovimento;
                baixa2.DataBaixa     = DateTime.Now;
                baixa2.DataEvento    = DateTime.Now;
                baixa2.ContaBancaria = contaBancaria;
                baixa2.Direcao       = DirecaoBaixa.SAIDA;
                baixa2.ValorBaixa    = 5m;

                List <MovimentoBaixa> lstBaixa = new List <MovimentoBaixa>();
                lstBaixa.Add(baixa1);
                lstBaixa.Add(baixa2);

                context.Movimento.Add(newMovimento);
                context.MovimentoBaixa.AddRange(lstBaixa);
                context.SaveChanges();
            }
        }
        public void Excluir(MovimentoBaixaView movBaixaView)
        {
            MovimentoBaixa movBaixa = ObterModel(movBaixaView);

            if (movBaixa.Movimento.ValorPago < movBaixa.ValorBaixa)
            {
                throw new Exception($"O movimento id {movBaixa.Movimento.Id} possui um saldo pago de  '{movBaixa.Movimento.ValorPago}' " +
                                    $"inferior ao valor da baixa '{movBaixa.ValorBaixa}'. " +
                                    $"Baixa somente até o saldo devedor / credor.");
            }

            movBaixa.Movimento.ValorPago = movBaixa.Movimento.ValorPago - movBaixa.ValorBaixa;

            /* Atualiza o registro pai de movimento */
            repoMovimento.Alterar(movBaixa.Movimento);

            /* Exclui o registro da tabela de baixa */
            repositoryMovBaixa.Excluir(movBaixa);
        }