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

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

  <div id="wrapper">

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

    <div id="content-wrapper">

      <div class="container-fluid">

        <!-- Breadcrumbs-->
        <ol class="breadcrumb">
          <li class="breadcrumb-item">
            <a href="#">Painel</a>
          </li>
          <li class="breadcrumb-item active"><?php echo $_SESSION['nome'];?></li>
        </ol>

        <div class ="row">
            <div class="container">

            <?php
        $loan->requisitaLoan();?>
                <!-- Button to Open the Modal INICIO  -->
<button type="button" class="btn btn-info btn-sm" data-toggle="modal" data-target="#myModal">
  Solicitar credito
</button>

<!-- The Modal -->
<div class="modal" id="myModal">
  <div class="modal-dialog">
    <div class="modal-content">

      <!-- Modal Header -->
      <div class="modal-header">
        <h4 class="modal-title">Creditos</h4>
        <button type="button" class="close" data-dismiss="modal">&times;</button>
      </div>

      <!-- Modal body -->
      <div class="modal-body">
        <div class="col-sm-8">	   
	    <form action="" method="post">
	      
		 <div class="form-group">
		  <label for="cliente">Nome do cliente</label>
		  <select required name="nome_cliente" class="form-control">
		   <option></option>
		   <?php $clientes->buscaClienteId();?>
		  </select>
		 </div>
		 
		 <div class="form-group">
		  <label for="valor">Valor</label>
		  <input type="text" name="valor" class="form-control" autocomplete="off" required/>
		 </div>
		 
		 <div class="form-group">
		  <label for="conta_origem">Conta origem</label>
		  <select required name="conta_origem" class="form-control">
		   <option></option>
		   <?php $loan->selectContaId();?>
		  </select>
		 </div>
		 
		<div class="form-group">
		  <label for="tipo">Nome do credito</label>
		  <select required name="nome_credito" class="form-control">
		   <option></option>		  	   
	    <?php $loan->GetTypeLoan();?>	   
		   </select>
		 </div>
		 
		 <div class="form-group">
		  <label for="prestacoes">Prestacoes</label>
		  <select required name="prestacoes" class="form-control">
		   <option></option>		  	   
		   <?php $loan->prestacoesLimite();?>		   
		   
		     </select>
		 </div>
	 
		 <div class="form-group">
		  <label for="previsao">Garantias</label>
		  <input type="text" name="garantias" class="form-control" required/>
		 </div>
		 
		 <div class="form-group">
		  <label for="previsao">Valor estimado</label>
		  <input type="number" name="estimado" class="form-control" required/>
		 </div>
		 	 
		 <div class="form-group">
		  <label for="previsao">Finalidade</label>
		  <input type="text" name="finalidade" class="form-control" required/>
		 </div>

     <div class="form-group">
		  <label for="conta_origem">Tipo de pagamento</label>
		  <select required name="tipo_pagamento" class="form-control">
		   <option></option>
       <option>Normal</option>
       <option>Parcelado</option>
       <option>Negociado</option>
        </select>
		 </div>
		 
		  		 
		 <div class="form-group">
		  <input type="submit" name="submitLoan" class="btn btn-info btn-block" value="Submeter"/>
		 </div>
		
		</form>	   
	   </div>
      </div>

      <!-- Modal footer -->
      <div class="modal-footer">
        <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
      </div>

    </div>
  </div>
</div>
<br><br><br>
        <!-- Titulo da Pagina -->
        <div class="card mb-3">
          <div class="card-header bg-dark text-white">
            <i class="fas fa-calculator"></i> Planos de Amortização (Créditos a Médio/Longo Prazo)
          </div>
          <div class="card-body">
            <div class="table-responsive">
              <table class="table table-bordered table-striped" id="dataTable" width="100%" cellspacing="0">
                <thead>
                  <tr>
                    <th>ID</th>
                    <th>Cliente</th>
                    <th>Valor Inicial (PV)</th>
                    <th>Prestações</th>
                    <th>Taxa Mensal</th>
                    <th>Valor Prestação (PMT)</th>
                    <th>Data Inicial</th>
                    <th>Ações</th>
                  </tr>
                </thead>
                <tbody>
                  <?php
                  global $database;
                  // Buscamos apenas créditos ativos de longo prazo (Ex: acima de 1 prestação)
                  $query = $database->query("SELECT cr.*, cli.nome_cliente,cli.tipo_cliente 
                                             FROM creditos cr 
                                             INNER JOIN clientes cli ON cr.id_cliente = cli.id_cliente 
                                             WHERE cr.prestacoes > 1 AND cr.status = 'pendente' AND cli.tipo_cliente='FP' 
                                             ORDER BY cr.id DESC");
                  
                  if($query) {
                      while($reg = $database->fetch_assoc($query)) {
                          // Tratamos a taxa em decimal (Ex: 0.15 para 15%)
                          $taxa_formatada = ($reg['taxas'] < 1) ? ($reg['taxas'] * 100) : $reg['taxas'];
                          
                          // Calculando a Prestação constante PMT caso não esteja precisa no banco
                          $pv = (float)$reg['valor'];
                          $i = (float)$taxa_formatada / 100;
                          $n = (int)$reg['prestacoes'];
                          
                          if ($i > 0) {
                              $pmt = $pv * ($i * pow(1 + $i, $n)) / (pow(1 + $i, $n) - 1);
                          } else {
                              $pmt = $pv / $n;
                          }
                          
                          echo "<tr>";
                          echo "<td>{$reg['id']}</td>";
                          echo "<td>{$reg['nome_cliente']}</td>";
                          echo "<td>" . number_format($pv, 2, ',', '.') . " MZN</td>";
                          echo "<td>{$n} Meses</td>";
                          echo "<td>" . number_format($taxa_formatada, 1) . "%</td>";
                          echo "<td><strong>" . number_format($pmt, 2, ',', '.') . " MZN</strong></td>";
                          echo "<td>" . date('d/m/Y', strtotime($reg['data'])) . "</td>";
                          echo "<td>
                                  <button class='btn btn-info btn-sm btn-gerar-plano' 
                                          data-id='{$reg['id']}' 
                                          data-cliente='{$reg['nome_cliente']}' 
                                          data-valor='{$pv}' 
                                          data-taxa='{$taxa_formatada}' 
                                          data-prestacoes='{$n}' 
                                          data-inicio='2026-08-15'
                                          data-toggle='modal' 
                                          data-target='#modalAmortizacao'>
                                    <i class='fas fa-eye'></i> Ver
                                  </button>
                                </td>";
                          echo "</tr>";
                      }
                  }
                  ?>
                </tbody>
              </table>
            </div>
          </div>
        </div>

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

      <!-- Sticky Footer -->
      <?php include "includes/footer.php";?>

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

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

  <!-- Modal do Plano de Amortização -->
  <div class="modal fade" id="modalAmortizacao" tabindex="-1" role="dialog" aria-labelledby="modalAmortizacaoLabel" aria-hidden="true">
    <div class="modal-dialog modal-xl" role="document">
      <div class="modal-content">
        <div class="modal-header bg-info text-white">
          <h5 class="modal-title" id="modalAmortizacaoLabel">
            <i class="fas fa-list-ol"></i> Plano de Amortização (Tabela Price)
          </h5>
          <button type="button" class="close text-white" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <!-- Identificador 'area-impressao' para capturarmos apenas este bloco na hora de imprimir -->
        <div class="modal-body" id="area-impressao">
          <div class="row mb-3 bg-light p-3 rounded mx-1">
            <div class="col-md-3"><strong>Cliente:</strong> <span id="lbl-cliente">-</span></div>
            <div class="col-md-3"><strong>Capital Inicial:</strong> <span id="lbl-capital">-</span></div>
            <div class="col-md-3"><strong>Prestações:</strong> <span id="lbl-prestacoes">-</span></div>
            <div class="col-md-3"><strong>Taxa Mensal:</strong> <span id="lbl-taxa">-</span></div>
          </div>

          <div class="table-responsive" style="max-height: 400px; overflow-y: auto;">
            <table class="table table-sm table-bordered table-hover">
              <thead class="thead-dark" style="position: sticky; top: 0; z-index: 1;">
                <tr>
                  <th class="text-center">Nº</th>
                  <th class="text-center">Vencimento</th>
                  <th class="text-right">Prestação (PMT)</th>
                  <th class="text-right">Juros (15%)</th>
                  <th class="text-right">Amortização</th>
                  <th class="text-right">Saldo Devedor</th>
                  <th class="text-center">Estado</th>
                </tr>
              </thead>
              <tbody id="corpo-tabela-amortizacao">
                <!-- Preenchido via JavaScript -->
              </tbody>
            </table>
          </div>
        </div>
        <div class="modal-footer">
          <!-- NOVO BOTÃO DE IMPRIMIR -->
          <button type="button" class="btn btn-primary btn-sm" id="btn-imprimir">
            <i class="fas fa-print"></i> Imprimir Plano
          </button>
          <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">Fechar Janela</button>
        </div>
      </div>
    </div>
  </div>

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

  <!-- Logout Modal-->
 <?php include "includes/logout_modal.php";?>

  <!-- Bootstrap core JavaScript-->
  <script src="vendor/jquery/jquery.min.js"></script>
  <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>

  <!-- Core plugin JavaScript-->
  <script src="vendor/jquery-easing/jquery.easing.min.js"></script>

  <!-- Page level plugin JavaScript-->
  <script src="vendor/chart.js/Chart.min.js"></script>
  <script src="vendor/datatables/jquery.dataTables.js"></script>
  <script src="vendor/datatables/dataTables.bootstrap4.js"></script>

  <!-- Custom scripts for all pages-->
  <script src="js/sb-admin.min.js"></script>

  <!-- JavaScript Dinâmico do Simulador de Amortização -->
  <script>
  $(document).ready(function() {
      // Inicia o DataTables padrão do SB Admin
      $('#dataTable').DataTable({
          "language": {
              "url": "//cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"
          }
      });

      // Captura o clique do botão "Ver Tabela" para preencher o modal
      $('.btn-gerar-plano').on('click', function() {
          var cliente = $(this).data('cliente');
          var pv = parseFloat($(this).data('valor'));
          var taxaPerc = parseFloat($(this).data('taxa'));
          var n = parseInt($(this).data('prestacoes'));
          var dataInicioStr = $(this).data('inicio'); // 2026-08-15
          
          var i = taxaPerc / 100;

          // Atualiza os cabeçalhos do Modal
          $('#lbl-cliente').text(cliente);
          $('#lbl-capital').text(pv.toLocaleString('pt-BR', { style: 'currency', currency: 'MZN' }));
          $('#lbl-prestacoes').text(n + ' meses');
          $('#lbl-taxa').text(taxaPerc.toFixed(1) + '% a.m.');

          // Cálculo da prestação PMT
          var pmt = 0;
          if (i > 0) {
              pmt = pv * (i * Math.pow(1 + i, n)) / (Math.pow(1 + i, n) - 1);
          } else {
              pmt = pv / n;
          }

          var corpoTabela = $('#corpo-tabela-amortizacao');
          corpoTabela.empty();

          var saldoDevedor = pv;
          var dataVencimento = new Date(dataInicioStr + 'T00:00:00');

          for (var num = 1; num <= n; num++) {
              var jurosMes = saldoDevedor * i;
              var amortizacaoMes = pmt - jurosMes;
              saldoDevedor -= amortizacaoMes;

              // Correção de precisão para a última parcela
              if (num === n) {
                  amortizacaoMes += saldoDevedor;
                  saldoDevedor = 0;
              }

              // Formatação de data mês a mês
              var dia = String(dataVencimento.getDate()).padStart(2, '0');
              var mes = String(dataVencimento.getMonth() + 1).padStart(2, '0');
              var ano = dataVencimento.getFullYear();
              var dataFormatada = dia + '/' + mes + '/' + ano;

              // O primeiro mês (agosto/2026) fica Pendente, os outros como "Aguardar"
              var statusBadge = '';
              if (num === 1) {
                  statusBadge = '<span class="badge badge-warning">Pendente</span>';
              } else {
                  statusBadge = '<span class="badge badge-secondary">Aguardar</span>';
              }

              var linha = '<tr>' +
                  '<td class="text-center font-weight-bold">' + num + '</td>' +
                  '<td class="text-center">' + dataFormatada + '</td>' +
                  '<td class="text-right font-weight-bold text-primary">' + pmt.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + '</td>' +
                  '<td class="text-right text-danger">' + jurosMes.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + '</td>' +
                  '<td class="text-right text-success">' + amortizacaoMes.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + '</td>' +
                  '<td class="text-right font-weight-bold">' + Math.abs(saldoDevedor).toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + '</td>' +
                  '<td class="text-center">' + statusBadge + '</td>' +
                  '</tr>';

              corpoTabela.append(linha);

              // Avança para o mesmo dia do próximo mês
              dataVencimento.setMonth(dataVencimento.getMonth() + 1);
          }
      });

      // --- SCRIPT DE IMPRESSÃO PROFISSIONAL ---
      $('#btn-imprimir').on('click', function() {
          var conteudoImpressao = document.getElementById('area-impressao').innerHTML;
          var clienteNome = $('#lbl-cliente').text();
          
          // Cria uma janela temporária de impressão
          var janelaImpressao = window.open('', '_blank', 'width=900,height=700');
          
          janelaImpressao.document.write('<html><head><title>Plano de Amortização - ' + clienteNome + '</title>');
          
          // Importa o Bootstrap 4 para manter a tabela bonita na impressão
          janelaImpressao.document.write('<link rel="stylesheet" href="vendor/bootstrap/css/bootstrap.min.css">');
          
          // CSS customizado para otimizar papel e layout impresso
          janelaImpressao.document.write('<style>' +
              'body { font-family: sans-serif; padding: 20px; background-color: #fff; color: #000; }' +
              '.table-responsive { max-height: none !important; overflow: visible !important; }' +
              'table { width: 100%; border-collapse: collapse; margin-top: 15px; page-break-inside: auto; }' +
              'tr { page-break-inside: avoid; page-break-after: auto; }' +
              'thead { display: table-header-group; }' + // Repete o cabeçalho em todas as folhas
              'tfoot { display: table-footer-group; }' +
              '.badge { border: 1px solid #ddd; padding: 2px 5px; border-radius: 3px; font-size: 11px; }' +
              '.badge-warning { background-color: #fff3cd !important; color: #856404 !important; }' +
              '.badge-secondary { background-color: #e2e3e5 !important; color: #383d41 !important; }' +
              '@media print { ' +
                  'body { padding: 0; }' +
                  '#btn-imprimir-direto { display: none; }' +
              '}' +
              '</style>');
          janelaImpressao.document.write('</head><body>');
          
          // Logotipo/Cabeçalho da Empresa fictício ou personalizável
          janelaImpressao.document.write('<div class="text-center mb-4">');
          janelaImpressao.document.write('  <h2>PLANO DE AMORTIZAÇÃO DE EMPRÉSTIMO</h2>');
          janelaImpressao.document.write('  <p class="text-muted">Gerado em: ' + new Date().toLocaleDateString('pt-BR') + '</p>');
          janelaImpressao.document.write('  <hr>');
          janelaImpressao.document.write('</div>');
          
          // Conteúdo da tabela
          janelaImpressao.document.write(conteudoImpressao);
          
          // Linha de assinatura do cliente no final da página
          janelaImpressao.document.write('<div class="mt-5 pt-4 row text-center" style="page-break-inside: avoid;">');
          janelaImpressao.document.write('  <div class="col-6">');
          janelaImpressao.document.write('    <p>_____________________________________</p>');
          janelaImpressao.document.write('    <p class="small text-muted">Assinatura do Vendedor / Gestor</p>');
          janelaImpressao.document.write('  </div>');
          janelaImpressao.document.write('  <div class="col-6">');
          janelaImpressao.document.write('    <p>_____________________________________</p>');
          janelaImpressao.document.write('    <p class="small text-muted">Assinatura do Cliente: ' + clienteNome + '</p>');
          janelaImpressao.document.write('  </div>');
          janelaImpressao.document.write('</div>');
          
          janelaImpressao.document.write('</body></html>');
          janelaImpressao.document.close();
          
          // Aguarda o carregamento dos estilos para disparar a tela de impressão
          setTimeout(function() {
              janelaImpressao.print();
              janelaImpressao.close();
          }, 500);
      });
  });
  </script>

</body>

</html>