public void Cadastrar(Lancamentos obj) { //método para impedir o cadastro quando o saldo está menor ou igual a -20000 if (encargosUtilidades.ColsultarSaldoDia() <= -20000) { throw new ArgumentException("Não é possível cadastrar o lancamento. Saldo negativo!"); } else if (obj.DataLancamento < DateTime.Now) { throw new ArgumentException("Data de lancamento não pode ser do dia anterior"); } //verificar se o lancamento colocado vai exceder os - 20000, mesmo com o saldo acima de 0 ou //com o desconto do encargo do dia var _saldoTotal = encargosUtilidades.ColsultarSaldoDia(); decimal _saldo = 0; if (obj.Tipo.Contains("entrada")) { _saldo = _saldoTotal + obj.ValorLancamento; } else { _saldo = _saldoTotal - obj.ValorLancamento; } if (_saldo < -20000) { throw new ArgumentException("Não é possível cadastrar o lancamento. Saldo negativo!"); } else { repository.Insert(obj); } //verificar se depois do saldo incluso ele ficou negativo if (encargosUtilidades.ColsultarSaldoDia() < 0 && encargosUtilidades.ColsultarSaldoDia() > -20000) { if (encargosDomain.SelectOne(DateTime.Now.Date) == null) { encargosUtilidades.EncargosDia(obj); //inclui encargos na tabela } } }
public LancamentosConsultaModel ConsultarTodosOsDados() { var json = new LancamentosConsultaModel(); var lancamentosDia = new List <Lancamentos>(); var dia = DateTime.Today; if (encargosDomain.SelectOne(dia) == null) { lancamentosDia = domainServices.ConsultarLancamentosDia(dia); } else { Lancamentos lancamentoDia = new Lancamentos(); var encargosDia = encargosDomain.SelectOne(dia); lancamentoDia.BancoDestino = encargosDia.BancoDestino; lancamentoDia.ContaDestino = encargosDia.ContaDestino; lancamentoDia.CpfCnpjDestino = encargosDia.CpfCnpjDestino; lancamentoDia.DataLancamento = encargosDia.DataLancamento; lancamentoDia.Descricao = encargosDia.Descricao; lancamentoDia.Tipo = "encargos"; lancamentoDia.TipoConta = encargosDia.TipoConta; lancamentoDia.ValorLancamento = encargosDia.ValorLancamento; lancamentosDia = domainServices.ConsultarLancamentosDia(dia); lancamentosDia.Add(lancamentoDia); } var saldoDia = utilidades.ColsultarSaldoDia(); var saldoDiaAnteri = domainServices.ColsultarSaldoDiaAnterior(); var trintaDias = domainServices.ConsultarTrintaDias(DateTime.Now, DateTime.Now.AddMonths(1)); decimal porcentagem; try { porcentagem = ((saldoDia - saldoDiaAnteri) / saldoDiaAnteri) * 100; } catch (DivideByZeroException) { porcentagem = 0; } var culture = CultureInfo.CurrentCulture; var valorPorcen = $"{porcentagem.ToString("##.##", culture)}%"; var listLancamentosDia = new List <FormatoJson>(); foreach (var item in lancamentosDia) { var formatoJson = new FormatoJson(); formatoJson.Tipo = item.Tipo; formatoJson.DataLancamento = item.DataLancamento.ToString("dd/MM/yyyy"); formatoJson.ValorLancamento = item.ValorLancamento.ToString("R$#,0.00"); listLancamentosDia.Add(formatoJson); } var listTrintaDias = new List <FormatoJson>(); foreach (var item in trintaDias) { var formatoJson = new FormatoJson(); formatoJson.Tipo = item.Tipo; formatoJson.DataLancamento = item.DataLancamento.ToString("dd/MM/yyyy"); formatoJson.ValorLancamento = item.ValorLancamento.ToString("R$#,0.00"); listTrintaDias.Add(formatoJson); } json.DiaConsulta = dia.ToString("dd/MM/yyyy"); json.LancamentosDoDia = listLancamentosDia; json.SaldoTotalDoDia = saldoDia.ToString("R$#,0.00"); json.TrintaDiasSeguintes = listTrintaDias; json.ComparacaoDiaAnterior = valorPorcen; return(Mapper.Map <LancamentosConsultaModel>(json)); }