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 }); }
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); }