Exemple #1
0
        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));
        }