<?php 
include "includes/header.php";
include "includes/navbar.php";


// Definir o ano corrente como INTEIRO para evitar falhas de tipos
$ano_atual = (int)date('Y'); 

// Inicializar arrays para os 12 meses (de 1 a 12) com valores float zerados
$meses_nomes = [
    1 => "Janeiro", 2 => "Fevereiro", 3 => "Março", 4 => "Abril", 
    5 => "Maio", 6 => "Junho", 7 => "Julho", 8 => "Agosto", 
    9 => "Setembro", 10 => "Outubro", 11 => "Novembro", 12 => "Dezembro"
];

$capital_mes = array_fill(1, 12, 0.0);
$juros_mes = array_fill(1, 12, 0.0);
$total_mes = array_fill(1, 12, 0.0);

// 1. BUSCAR TODOS OS CRÉDITOS QUE GERAM PROJEÇÃO (Pendentes)
$query_creditos = $database->query("SELECT data, valor, juros, prestacoes FROM creditos WHERE status != 'Pago'");

if ($query_creditos) {
    while ($reg = $database->fetch_assoc($query_creditos)) {
        
        $data_concessao = $reg['data'];          // Ex: '2026-07-15'
        $capital_total  = (float)$reg['valor'];   // Ex: 1400.00
        $juros_total    = (float)$reg['juros'];   // Ex: 420.00
        $n_prestacoes   = (int)$reg['prestacoes']; // Ex: 3
        
        if ($n_prestacoes <= 0) {
            $n_prestacoes = 1; // Evita divisão por zero
        }
        
        // Calcular a quota mensal de amortização
        $capital_por_mes = $capital_total / $n_prestacoes;
        $juros_por_mes   = $juros_total / $n_prestacoes;
        $total_por_mes   = $capital_por_mes + $juros_por_mes;
        
        // 2. DISTRIBUIR PELOS MESES SEGUINTES
        for ($p = 1; $p <= $n_prestacoes; $p++) {
            // Criar uma data adicionando "$p" meses à data original de concessão
            $data_parcela = date('Y-m-d', strtotime("+$p month", strtotime($data_concessao)));
            
            $ano_parcela = (int)date('Y', strtotime($data_parcela));
            $mes_parcela = (int)date('m', strtotime($data_parcela));
            
            // Usamos '==' em vez de '===' para evitar conflitos de tipos string/int do PHP
            if ($ano_parcela == $ano_atual) {
                $capital_mes[$mes_parcela] += $capital_por_mes;
                $juros_mes[$mes_parcela]   += $juros_por_mes;
                $total_mes[$mes_parcela]   += $total_por_mes;
            }
        }
    }
}

// Totais anuais acumulados para o resumo do topo
$total_capital_ano = array_sum($capital_mes);
$total_juros_ano = array_sum($juros_mes);
$total_geral_ano = array_sum($total_mes);
?>
<div id="wrapper">

  <!-- Sidebar Principal -->
  <?php include "includes/sidebar.php"; ?>

  <div id="content-wrapper">

    <div class="container-fluid">

      <!-- Breadcrumbs-->
      <ol class="breadcrumb">
        <li class="breadcrumb-item">
          <a href="#">Administração</a>
        </li>
        <li class="breadcrumb-item active">Mapa de Projeções de <?php echo $ano_atual; ?></li>
      </ol>

      <!-- Resumo Compacto do Ano -->
      <div class="row mb-4">
        <div class="col-md-4">
          <div class="card border-left-primary shadow h-100 py-2">
            <div class="card-body py-2">
              <div class="text-xs font-weight-bold text-primary text-uppercase mb-1">Total Capital Cedido (<?php echo $ano_atual; ?>)</div>
              <h4 class="font-weight-bold text-gray-800"><?php echo number_format($total_capital_ano, 2, ",", "."); ?> MZN</h4>
            </div>
          </div>
        </div>
        <div class="col-md-4">
          <div class="card border-left-success shadow h-100 py-2">
            <div class="card-body py-2">
              <div class="text-xs font-weight-bold text-success text-uppercase mb-1">Total Juros Projetados (<?php echo $ano_atual; ?>)</div>
              <h4 class="font-weight-bold text-gray-800"><?php echo number_format($total_juros_ano, 2, ",", "."); ?> MZN</h4>
            </div>
          </div>
        </div>
        <div class="col-md-4">
          <div class="card border-left-info shadow h-100 py-2">
            <div class="card-body py-2">
              <div class="text-xs font-weight-bold text-info text-uppercase mb-1">Retorno Total Estimado (<?php echo $ano_atual; ?>)</div>
              <h4 class="font-weight-bold text-gray-800"><?php echo number_format($total_geral_ano, 2, ",", "."); ?> MZN</h4>
            </div>
          </div>
        </div>
      </div>

      <!-- Gráfico de Projeções -->
      <div class="card mb-4">
        <div class="card-header bg-dark text-white">
          <i class="fas fa-chart-area"></i> Tendência de Retorno e Projeções - Ano <?php echo $ano_atual; ?>
        </div>
        <div class="card-body">
          <canvas id="graficoProjecoes" width="100%" height="30"></canvas>
        </div>
      </div>

      <!-- Tabela do Mapa de Projeções Mensais -->
      <div class="card mb-4">
        <div class="card-header bg-secondary text-white">
          <i class="fas fa-table"></i> Detalhe Mensal de Projeções Financeiras (MZN)
        </div>
        <div class="card-body p-0">
          <div class="table-responsive">
            <table class="table table-bordered table-striped table-hover mb-0" width="100%" cellspacing="0">
              <thead class="thead-dark">
                <tr>
                  <th>Mês</th>
                  <th class="text-right">Capital Alocado (Fora)</th>
                  <th class="text-right">Provisão de Juros/Lucro</th>
                  <th class="text-right">Total Acumulado (Retorno)</th>
                  <th class="text-center" style="width: 120px;">Progresso</th>
                </tr>
              </thead>
              <tbody>
                <?php 
                $acumulado_progressivo = 0;
                for ($i = 1; $i <= 12; $i++) {
                    $cap = $capital_mes[$i];
                    $jur = $juros_mes[$i];
                    $tot = $total_mes[$i];
                    
                    // Definir destaque para o mês atual
                    $is_mes_atual = ($i == (int)date('m'));
                    $row_class = $is_mes_atual ? 'table-warning font-weight-bold' : '';
                    
                    // Cálculo simples de percentual sobre o total do ano para a barra de progresso
                    $percentual = $total_geral_ano > 0 ? ($tot / $total_geral_ano) * 100 : 0;
                ?>
                <tr class="<?php echo $row_class; ?>">
                  <td>
                    <?php echo $meses_nomes[$i]; ?> 
                    <?php if ($is_mes_atual) echo ' <span class="badge badge-danger">Mês Atual</span>'; ?>
                  </td>
                  <td class="text-right"><?php echo number_format($cap, 2, ",", "."); ?></td>
                  <td class="text-right text-success">+ <?php echo number_format($jur, 2, ",", "."); ?></td>
                  <td class="text-right font-weight-bold"><?php echo number_format($tot, 2, ",", "."); ?></td>
                  <td class="align-middle">
                    <div class="progress" style="height: 8px;" title="<?php echo round($percentual, 1); ?>% do ano">
                      <div class="progress-bar bg-info" role="progressbar" style="width: <?php echo $percentual; ?>%"></div>
                    </div>
                  </td>
                </tr>
                <?php } ?>
              </tbody>
              <tfoot class="thead-dark font-weight-bold">
                <tr>
                  <td>TOTAL ANUAL</td>
                  <td class="text-right"><?php echo number_format($total_capital_ano, 2, ",", "."); ?></td>
                  <td class="text-right text-success">+ <?php echo number_format($total_juros_ano, 2, ",", "."); ?></td>
                  <td class="text-right"><?php echo number_format($total_geral_ano, 2, ",", "."); ?></td>
                  <td class="text-center">100%</td>
                </tr>
              </tfoot>
            </table>
          </div>
        </div>
      </div>

    </div>
    <!-- /.container-fluid -->

    <?php include "includes/footer.php"; ?>

  </div>
  <!-- /.content-wrapper -->

</div>
<!-- /#wrapper -->

<a class="scroll-to-top rounded" href="#page-top">
  <i class="fas fa-angle-up"></i>
</a>

<?php include "includes/logout_modal.php"; ?>

<!-- Bootstrap e dependências -->
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>

<!-- Biblioteca Chart.js (Nativa do template SB Admin) -->
<script src="vendor/chart.js/Chart.min.js"></script>

<!-- Script de Inicialização do Gráfico -->
<script>
document.addEventListener("DOMContentLoaded", function() {
  var ctx = document.getElementById("graficoProjecoes");
  var meuGrafico = new Chart(ctx, {
    type: 'line',
    data: {
      labels: [<?php echo '"' . implode('", "', $meses_nomes) . '"'; ?>],
      datasets: [
        {
          label: "Capital Alocado",
          lineTension: 0.3,
          backgroundColor: "rgba(220, 53, 69, 0.05)",
          borderColor: "rgba(220, 53, 69, 1)",
          pointRadius: 4,
          pointBackgroundColor: "rgba(220, 53, 69, 1)",
          pointBorderColor: "rgba(255, 255, 255, 0.8)",
          pointHoverRadius: 5,
          pointHoverBackgroundColor: "rgba(220, 53, 69, 1)",
          pointHitRadius: 50,
          pointBorderWidth: 2,
          data: [<?php echo implode(', ', $capital_mes); ?>],
        },
        {
          label: "Retorno Total (Capital + Juros)",
          lineTension: 0.3,
          backgroundColor: "rgba(40, 167, 69, 0.05)",
          borderColor: "rgba(40, 167, 69, 1)",
          pointRadius: 4,
          pointBackgroundColor: "rgba(40, 167, 69, 1)",
          pointBorderColor: "rgba(255, 255, 255, 0.8)",
          pointHoverRadius: 5,
          pointHoverBackgroundColor: "rgba(40, 167, 69, 1)",
          pointHitRadius: 50,
          pointBorderWidth: 2,
          data: [<?php echo implode(', ', $total_mes); ?>],
        }
      ],
    },
    options: {
      scales: {
        xAxes: [{
          gridLines: {
            display: false
          }
        }],
        yAxes: [{
          ticks: {
            callback: function(value, index, values) {
              return value.toLocaleString("pt-PT") + ' MZN';
            }
          }
        }],
      },
      legend: {
        display: true
      },
      tooltips: {
        callbacks: {
          label: function(tooltipItem, data) {
            return data.datasets[tooltipItem.datasetIndex].label + ": " + tooltipItem.yLabel.toLocaleString("pt-PT") + ' MZN';
          }
        }
      }
    }
  });
});
</script>

<script src="js/sb-admin.min.js"></script>

</body>
</html>