public BalancoDia Conciliacao(List <LancamentoFinanceiro> lancamentos)
        {
            decimal totalCredito = 0;
            decimal totalDebito  = 0;
            decimal total        = 0;

            foreach (var item in lancamentos)
            {
                if (item.TipoLancamento.ToLower() == TipoLancamento.credito.ToString())
                {
                    totalCredito += Convert.ToDecimal(item.Valor);
                    total        += Convert.ToDecimal(item.Valor);
                }
                else if (item.TipoLancamento.ToLower() == TipoLancamento.debito.ToString())
                {
                    totalDebito += Convert.ToDecimal(item.Valor);
                    total       -= Convert.ToDecimal(item.Valor);
                }
            }

            BalancoDia balanco = new BalancoDia();

            balanco.DataBalanco       = Convert.ToDateTime(lancamentos[0].DataLancamento);
            balanco.ValorSaldo        = total;
            balanco.ValorTotalCredito = totalCredito;
            balanco.ValorTotalDebito  = totalDebito;

            return(balanco);
        }
Example #2
0
        public async Task <DefaultResponse <BalancoDia> > Post(
            [FromServices] DataContext context,
            [FromBody] BalancoDia dataBalanco)
        {
            try
            {
                Acoes_LancamentoFinanceiro  acoes          = new Acoes_LancamentoFinanceiro();
                List <LancamentoFinanceiro> lancamentosDia = await context.LancamentosFinanceiros.Where(x => x.DataLancamento == dataBalanco.DataBalanco).ToListAsync();

                var model = acoes.Conciliacao(lancamentosDia);

                context.BalancosDia.Add(model);
                await context.SaveChangesAsync();

                acoes.AtualizarLancamentosAposBalanco(context, lancamentosDia, model.IdBalanco);

                return(new DefaultResponse <BalancoDia>()
                {
                    success = true,
                    message = $"Balanço do dia {dataBalanco.DataBalanco} efetuado com sucesso!",
                    result = model
                });
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #3
0
        // GET: LancamentoFinanceiro
        public async Task <IActionResult> RelatorioMensal()
        {
            var balancoDia = new List <BalancoDia>();

            using (var client = new HttpClient())
            {
                using (var response = await client.GetAsync(URI + "?tipoRelatorio=M&dateTime=" + DateTime.Now.ToString("MM-yyyy")))
                {
                    if (response.IsSuccessStatusCode)
                    {
                        var ProdutoJsonString = await response.Content.ReadAsStringAsync();

                        balancoDia = JsonConvert.DeserializeObject <BalancoDia[]>(ProdutoJsonString).ToList();
                    }
                    else
                    {
                        TempData["Erro"] = "Erro";
                    }
                }
            }

            //⦁	O relatório mensal de balanço deve demonstrar para cada dia do mês qual foi o total de
            //crédito e débito bem como o saldo em sua totalização mensal;

            var totalizacaoMensal = new BalancoDia();

            //TotalCredito
            totalizacaoMensal.ValorTotalCredito = balancoDia.Sum(x => x.ValorTotalCredito);

            //TotalDebito
            totalizacaoMensal.ValorTotalDebito = balancoDia.Sum(x => x.ValorTotalDebito);

            //ValorSaldo
            totalizacaoMensal.ValorSaldo = balancoDia.Sum(x => x.ValorSaldo);

            // Indica que é a totalização mensal
            totalizacaoMensal.Totalizacao = true;

            balancoDia.Add(totalizacaoMensal);

            // URI = URI + id;
            return(View(balancoDia));
        }
Example #4
0
        // GET: LancamentoFinanceiro
        public async Task <IActionResult> Index(string data)
        {
            var balancoDia = new List <BalancoDia>();

            using (var client = new HttpClient())
            {
                using (var response = await client.GetAsync(URI + "?tipoRelatorio=D&dateTime=" + DateTime.Now.ToString("dd-MM-yyyy")))
                {
                    if (response.IsSuccessStatusCode)
                    {
                        var ProdutoJsonString = await response.Content.ReadAsStringAsync();

                        balancoDia = JsonConvert.DeserializeObject <BalancoDia[]>(ProdutoJsonString).ToList();
                    }
                    else
                    {
                        TempData["Erro"] = "Erro";
                    }
                }

                // ⦁	O balanço do dia deve contemplar todos os lançamentos de crédito e débito diário com o
                // cálculo de saldo; (CRÉDITO - DÉBITO)

                var totalizaDia = new BalancoDia();

                //TotalCredito
                totalizaDia.ValorTotalCredito = balancoDia.Sum(x => x.ValorTotalCredito);

                //TotalDebito
                totalizaDia.ValorTotalDebito = balancoDia.Sum(x => x.ValorTotalDebito);

                //ValorSaldo
                totalizaDia.ValorSaldo = balancoDia.Sum(x => x.ValorSaldo);

                // Indica que é a totalização mensal
                totalizaDia.Totalizacao = true;

                balancoDia.Add(totalizaDia);
            }

            return(View(balancoDia));
        }
Example #5
0
        public async Task <ActionResult <BalancoDia> > ObterPorData(string tipoRelatorio, string dateTime)
        {
            // dateTime = Convert.ToDateTime(dateTime).ToString("dd/MM/yyy");
            var listBalancoDia = new List <BalancoDia>();
            var balancoDia     = new BalancoDia();

            if (tipoRelatorio.ToUpper() == "D")
            {
                var produtoViewModel = await _lancamentoFinanceiroService.Buscar(p => p.DataLancamento.ToString("dd-MM-yyyy") == dateTime);

                ////Débito
                //var debito = produtoViewModel.Where(x => x.Tipo == 1).Select(x => x.Valor).Sum();
                //balancoDia.ValorTotalDebito = debito;

                ////Crédito
                //var credito = produtoViewModel.Where(x => x.Tipo == 2).Select(x => x.Valor).Sum();
                //balancoDia.ValorTotalCredito = credito;

                ////Valor saldo
                //balancoDia.ValorSaldo = balancoDia.ValorTotalCredito - balancoDia.ValorTotalDebito;

                foreach (var item in produtoViewModel)
                {
                    balancoDia = new BalancoDia();

                    //Débito
                    if (item.Tipo == 1)
                    {
                        balancoDia.ValorTotalDebito = item.Valor;

                        //Valor saldo
                        balancoDia.ValorSaldo -= item.Valor;
                    }
                    //Crédito
                    else if (item.Tipo == 2)
                    {
                        balancoDia.ValorTotalCredito = item.Valor;

                        //Valor saldo
                        balancoDia.ValorSaldo += item.Valor;
                    }

                    // Data do Balanço
                    balancoDia.DatadoBalanco = item.DataLancamento;

                    //Adiciona o item na lista
                    listBalancoDia.Add(balancoDia);
                }

                return(Ok(listBalancoDia));
            }
            else if (tipoRelatorio.ToUpper() == "M")
            {
                var produtoViewModel = await _lancamentoFinanceiroService.Buscar(p => p.DataLancamento.ToString("MM-yyyy") == dateTime);

                produtoViewModel = produtoViewModel.ToList().OrderBy(x => x.DataLancamento).ToList();

                // Datas
                var filtraDatas = produtoViewModel.Select(x => x.DataLancamento.ToString("dd/MM/yyyy")).Distinct().ToList();


                foreach (var fatura in filtraDatas)
                {
                    var Datafatura = fatura;

                    foreach (var item in produtoViewModel)
                    {
                        // Obtem a data da Fatura
                        var dataItem = item.DataLancamento.ToString("dd/MM/yyyy");

                        // Verifica se a data é a mesma do laço
                        if (Datafatura == dataItem)
                        {
                            // Data do Balanço
                            balancoDia.DatadoBalanco = item.DataLancamento;

                            //Débito
                            if (item.Tipo == 1)
                            {
                                balancoDia.ValorTotalDebito += item.Valor;

                                //Valor saldo
                                balancoDia.ValorSaldo -= item.Valor;
                            }
                            //Crédito
                            else if (item.Tipo == 2)
                            {
                                balancoDia.ValorTotalCredito += item.Valor;

                                //Valor saldo
                                balancoDia.ValorSaldo += item.Valor;
                            }
                        }
                    }

                    //Adiciona os Itens da Lista
                    listBalancoDia.Add(balancoDia);

                    balancoDia = new BalancoDia();
                }

                return(Ok(listBalancoDia));
            }

            return(NotFound());
        }