arcadiasuite/plus/resources/views/financeiro/dashboard.blade.php

380 lines
17 KiB
PHP

@extends('layouts.app', ['title' => 'Dashboard Financeiro'])
@section('css')
<style type="text/css">
.card {
border-radius: 12px;
}
.card h3 {
font-weight: 700;
margin: 0;
}
.card h6 {
font-size: 0.85rem;
}
</style>
@endsection
@section('content')
<div class="mt-1">
<div class="row">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-3 mb-3">
<div class="card shadow-sm border-0">
<div class="card-body">
<h6 class="text-muted">Pagar Hoje</h6>
<h3 class="text-warning">R$ {{ __moeda($dados['pagarHoje']) }}</h3>
</div>
</div>
</div>
<div class="col-md-3 mb-3">
<div class="card shadow-sm border-0">
<div class="card-body">
<h6 class="text-muted">Pagar no Mês</h6>
<h3 class="text-muted">R$ {{ __moeda($dados['pagarMes']) }}</h3>
</div>
</div>
</div>
<div class="col-md-3 mb-3">
<div class="card shadow-sm border-0">
<div class="card-body">
<h6 class="text-muted">Receber Hoje</h6>
<h3 class="text-success">R$ {{ __moeda($dados['receberHoje']) }}</h3>
</div>
</div>
</div>
<div class="col-md-3 mb-3">
<div class="card shadow-sm border-0">
<div class="card-body">
<h6 class="text-muted">Receber no Mês</h6>
<h3 class="text-success">R$ {{ __moeda($dados['receberMes']) }}</h3>
</div>
</div>
</div>
</div>
<div class="row ">
<div class="col-md-3">
<div class="card shadow-sm border-0">
<div class="card-body">
<h6 class="text-muted">Pagar Vencidas</h6>
<h3 class="text-danger">R$ {{ __moeda($dados['pagarVencidas']) }}</h3>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card shadow-sm border-0">
<div class="card-body">
<h6 class="text-muted">Receber Vencidas</h6>
<h3 class="text-info">R$ {{ __moeda($dados['receberVencidas']) }}</h3>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card shadow-sm border-0">
<div class="card-body">
<h6 class="text-muted">Recebimentos Parciais</h6>
<h3 class="text-info">R$ {{ __moeda($dados['recebimentosParciais']) }}</h3>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card shadow-sm border-0">
<div class="card-body">
<h6 class="text-muted">Saldo do Mês</h6>
<h3 class="{{ $dados['saldoMes'] >= 0 ? 'text-success' : 'text-danger' }}">
R$ {{ __moeda($dados['saldoMes']) }}
</h3>
</div>
</div>
</div>
</div>
<div class="row mt-4">
<div class="col-md-4 mb-1">
<div class="card shadow-sm border-0">
<div class="card-header text-center">
<h5 class="mb-0">Despesas por Categoria Mensal</h5>
</div>
<div class="card-body">
<div style="height: 360px; display: flex; align-items: center; justify-content: center;">
<canvas
id="graficoPagarCategoria"
data-labels='@json(array_column($dadosPagar, "categoria"))'
data-valores='@json(array_column($dadosPagar, "valor"))'
></canvas>
</div>
</div>
</div>
</div>
<div class="col-md-4 mb-1">
<div class="card shadow-sm border-0">
<div class="card-header text-center">
<h5 class="mb-0">Receitas por Categoria Mensal</h5>
</div>
<div class="card-body">
<div style="height: 360px; display: flex; align-items: center; justify-content: center;">
<canvas
id="graficoReceberCategoria"
data-labels='@json(array_column($dadosReceber, "categoria"))'
data-valores='@json(array_column($dadosReceber, "valor"))'
></canvas>
</div>
</div>
</div>
</div>
<div class="col-md-4 mb-1">
<div class="card shadow-sm border-0">
<div class="card-header text-center">
<h5 class="mb-0">Lucro dos Últimos 6 Meses</h5>
</div>
<div class="card-body">
<div style="height: 360px; display: flex; align-items: center; justify-content: center;">
<canvas
id="graficoLucro"
data-labels='@json($lucroGrafico["labels"])'
data-valores='@json($lucroGrafico["lucros"])'
></canvas>
</div>
</div>
</div>
</div>
</div>
<div class="row mt-3">
<div class="col-md-12">
<div class="card shadow-sm border-0">
<div class="card-header text-center">
<h5 class="mb-0">Fluxo Financeiro dos Últimos 12 Meses</h5>
</div>
<div class="card-body">
<canvas
id="graficoFluxo"
height="380"
data-labels='@json($grafico["labels"])'
data-pagar='@json($grafico["pagar"])'
data-receber='@json($grafico["receber"])'
></canvas>
</div>
</div>
</div>
</div>
<div class="card shadow-sm border-0">
<div class="card-body">
<h5 class="mb-3">Insights Inteligentes</h5>
<ul>
@foreach($insights as $i)
<li class="mb-2">{!! $i !!}</li>
@endforeach
</ul>
</div>
</div>
<div class="card shadow-sm border-0 mb-2">
<div class="card-header text-center d-flex justify-content-between align-items-center">
<h5 class="mb-0">Clientes Inadimplentes</h5>
<span class="badge bg-danger text-white px-3 py-2">
{{ $inadimplentes['totalInadimplentes'] }} clientes
</span>
</div>
<div class="card-body">
<div class="d-flex justify-content-between align-items-center mb-3">
<h4 class="text-danger mb-0">
R$ {{ __moeda($inadimplentes['valorTotalInadimplentes']) }}
</h4>
<span class="text-muted small">Total em atraso</span>
</div>
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Cliente</th>
<th class="text-center">Títulos</th>
<th class="text-center">Dias atraso</th>
<th class="text-end">Total</th>
</tr>
</thead>
<tbody>
@forelse($inadimplentes['inadimplentes'] as $item)
<tr>
<td>
<strong>{{ $item['cliente']->razao_social }}</strong><br>
<small class="text-muted">{{ $item['cliente']->cpf_cnpj }}</small>
</td>
<td class="text-center">
<span class="badge bg-warning text-dark">
{{ $item['qtd_titulos'] }}
</span>
</td>
<td class="text-center">
<span class="badge bg-danger">
{{ $item['dias_atraso'] }} dias
</span>
</td>
<td class="text-end text-danger fw-bold">
R$ {{ __moeda($item['total_vencido']) }}
</td>
</tr>
@empty
<tr>
<td colspan="4" class="text-center text-muted">
Nenhum cliente inadimplente.
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
</div>
<div class="card shadow-sm border-0 mb-2">
<div class="card-header text-center d-flex justify-content-between align-items-center">
<h5 class="mb-0">Fornecedores em Atraso</h5>
<span class="badge bg-danger text-white px-3 py-2">
{{ $dadosPagarVencidos['totalFornecedoresVencidos'] }} fornecedores
</span>
</div>
<div class="card-body">
<div class="d-flex justify-content-between align-items-center mb-3">
<h4 class="text-danger mb-0">
R$ {{ __moeda($dadosPagarVencidos['valorTotalPagarVencido']) }}
</h4>
<span class="text-muted small">Total em atraso</span>
</div>
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Fornecedor</th>
<th class="text-center">Títulos</th>
<th class="text-center">Dias atraso</th>
<th class="text-end">Total</th>
</tr>
</thead>
<tbody>
@forelse($dadosPagarVencidos['pagarVencidos'] as $item)
<tr>
<td>
<strong>{{ $item['fornecedor']->razao_social }}</strong><br>
<small class="text-muted">{{ $item['fornecedor']->cpf_cnpj }}</small>
</td>
<td class="text-center">
<span class="badge bg-warning text-dark">
{{ $item['qtd_titulos'] }}
</span>
</td>
<td class="text-center">
<span class="badge bg-danger">
{{ $item['dias_atraso'] }} dias
</span>
</td>
<td class="text-end text-danger fw-bold">
R$ {{ __moeda($item['total_vencido']) }}
</td>
</tr>
@empty
<tr>
<td colspan="4" class="text-center text-muted">
Nenhum fornecedor em atraso.
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
</div>
<!-- -->
<div class="card shadow-sm border-0 mt-4">
<div class="card-header text-center d-flex justify-content-between">
<h5 class="mb-0">Previsão Financeira</h5>
<p>Como base os últimos 6 meses</p>
</div>
<div class="card-body">
<div class="row text-center">
<div class="col-md-4 mb-3">
<h6 class="text-muted">Receita Prevista</h6>
<h3 class="text-success">R$ {{ __moeda($previsoes['previsao_receita']) }}</h3>
</div>
<div class="col-md-4 mb-3">
<h6 class="text-muted">Despesa Prevista</h6>
<h3 class="text-danger">R$ {{ __moeda($previsoes['previsao_despesa']) }}</h3>
</div>
<div class="col-md-4 mb-3">
<h6 class="text-muted">Lucro Previsto</h6>
<h3 class="{{ $previsoes['previsao_lucro'] >= 0 ? 'text-success' : 'text-danger' }}">
R$ {{ __moeda($previsoes['previsao_lucro']) }}
</h3>
</div>
</div>
<hr>
<div class="text-center">
@php $t = $previsoes['tendencia_lucro']; @endphp
@if($t > 0)
<span class="badge bg-success">
Tendência de alta: {{ number_format($t, 1, ',', '.') }}%
</span>
@elseif($t < 0)
<span class="badge bg-danger">
Tendência de baixa: {{ number_format(abs($t), 1, ',', '.') }}%
</span>
@else
<span class="badge bg-secondary">Tendência estável</span>
@endif
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('js')
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels"></script>
<script src="js/dashboard_financeiro.js"></script>
@endsection