<?php
require_once(dirname(__DIR__) . '/config/db.php');
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

$cdempresa = $_SESSION['cdempresa'] ?? 1;

// 🔹 Exercícios ativos
$stmt = $pdo->prepare("
  SELECT cdexercicio, anoref
    FROM back.exercicio
   WHERE cdempresa = :emp
     AND flativo = 0
   ORDER BY anoref DESC
");
$stmt->execute([':emp' => $cdempresa]);
$exercicios = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

<h4 class="mb-3"><i class="bi bi-cash-coin"></i> Orçamentos Planejados</h4>
<hr>

<div class="d-flex flex-column gap-3">

  <!-- 🔍 FILTROS -->
  <div class="card border-0 shadow-sm">
    <div class="card-body py-3">
      <div class="row g-2 align-items-end">
        <div class="col-md-3">
          <label class="small">Exercício</label>
          <select class="form-select form-select-sm" id="filtroExercicio">
            <option value="">Selecione...</option>
            <?php foreach ($exercicios as $ex): ?>
              <option value="<?= $ex['cdexercicio'] ?>"><?= htmlspecialchars($ex['anoref']) ?></option>
            <?php endforeach; ?>
          </select>
        </div>

        <div class="col-md-5">
          <label class="small">Centro de Custo</label>
          <input type="text" id="filtroCentro" class="form-control form-control-sm" placeholder="Buscar pelo nome do centro...">
        </div>

        <div class="col-md-4 d-flex gap-2">
          <button class="btn btn-primary btn-sm flex-grow-1" id="btnBuscar">
            <i class="bi bi-search"></i> Pesquisar
          </button>
          <button class="btn btn-success btn-sm flex-grow-1" id="btnNovo">
            <i class="bi bi-plus-circle"></i> Novo Orçamento
          </button>
        </div>
      </div>
    </div>
  </div>

  <!-- 📋 LISTA -->
  <div class="card border-0 shadow-sm flex-grow-1">
    <div class="card-body p-0">
      <table class="table table-striped table-hover table-sm align-middle mb-0">
        <thead class="table-dark">
          <tr>
            <th>Exercício</th>
            <th>Centro de Custo</th>
            <th>Descrição</th>
            <th class="text-center" style="width:110px;">Ações</th>
          </tr>
        </thead>
        <tbody id="tabelaOrcamentos">
          <tr>
            <td colspan="4" class="text-center py-3 text-muted">
              Nenhum registro encontrado
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</div>

<!-- 🔹 MODAL -->
<div class="modal fade" id="modalOrcamento" tabindex="-1">
  <div class="modal-dialog modal-md modal-dialog-centered">
    <div class="modal-content">

      <div class="modal-header bg-primary text-white py-2">
        <h6 class="modal-title">
          <i class="bi bi-pencil-square"></i> Novo Orçamento
        </h6>
        <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
      </div>

      <div class="modal-body">
        <div class="row g-3">

          <div class="col-md-6">
            <label class="small">Exercício *</label>
            <select id="cdexercicio" class="form-select form-select-sm">
              <option value="">Selecione...</option>
              <?php foreach ($exercicios as $ex): ?>
                <option value="<?= $ex['cdexercicio'] ?>"><?= htmlspecialchars($ex['anoref']) ?></option>
              <?php endforeach; ?>
            </select>
          </div>

          <div class="col-md-6">
            <label class="small">Centro de Custo *</label>
            <select id="cdcentrocusto" class="form-select form-select-sm">
              <option value="">Selecione o centro de custo...</option>
            </select>
          </div>

          <div class="col-12">
            <label class="small">Descrição *</label>
            <input type="text" id="descricao" class="form-control form-control-sm">
          </div>

          <div class="col-12">
            <label class="small">Observação</label>
            <textarea id="observacao" class="form-control form-control-sm" rows="2"></textarea>
          </div>

        </div>
      </div>

      <div class="modal-footer py-2">
        <button class="btn btn-secondary btn-sm" data-bs-dismiss="modal">
          <i class="bi bi-x-circle"></i> Cancelar
        </button>
        <button class="btn btn-success btn-sm" id="btnSalvar">
          <i class="bi bi-save"></i> Salvar
        </button>
      </div>

    </div>
  </div>
</div>

<!-- ✅ JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>

<script>
let modal = new bootstrap.Modal(document.getElementById('modalOrcamento'));

// 🔹 LISTAR ORÇAMENTOS
$('#btnBuscar').on('click', carregarOrcamentos);

function carregarOrcamentos() {
  const params = new URLSearchParams({
    cdexercicio: $('#filtroExercicio').val(),
    centro: $('#filtroCentro').val()
  });

  fetch('?m=orcamento_actions&ajax=listar&' + params)
    .then(r => r.json())
    .then(dados => {
      const $tb = $('#tabelaOrcamentos').empty();

      if (!dados.length) {
        $tb.append('<tr><td colspan="4" class="text-center py-3 text-muted">Nenhum orçamento encontrado</td></tr>');
        return;
      }

      dados.forEach(o => {
        const tr = `
          <tr>
            <td>${o.anoref}</td>
            <td>${o.dscentro}</td>
            <td>${o.descricao}</td>
            <td class="text-center">
              <button class="btn btn-sm btn-outline-primary editar">
                <i class="bi bi-pencil"></i>
              </button>
              <button class="btn btn-sm btn-outline-danger excluir">
                <i class="bi bi-trash"></i>
              </button>
            </td>
          </tr>
        `;
        const $tr = $(tr);

        $tr.find('.editar').on('click', () =>
          window.location.href = '?m=orcamentodet&cdorcamento=' + o.cdorcamento
        );

        $tr.find('.excluir').on('click', () =>
          excluirOrcamento(o.cdorcamento)
        );

        $tb.append($tr);
      });
    });
}

// 🔹 CARREGAR CENTROS DE CUSTO
function carregarCentrosCusto() {
  fetch('?m=orcamento_actions&ajax=listar_centros')
    .then(r => r.json())
    .then(dados => {
      const $sel = $('#cdcentrocusto').empty();
      $sel.append('<option value="">Selecione o centro de custo...</option>');
      dados.forEach(c => {
        $sel.append(`<option value="${c.cdcentrocusto}">${c.dscentro}</option>`);
      });
    });
}

// ➕ NOVO
$('#btnNovo').on('click', () => {
  $('#descricao, #observacao').val('');
  $('#cdexercicio').val('');
  carregarCentrosCusto();
  modal.show();
});

// 💾 SALVAR
$('#btnSalvar').on('click', () => {
  const dados = {
    cdexercicio: $('#cdexercicio').val(),
    cdcentrocusto: $('#cdcentrocusto').val(),
    descricao: $('#descricao').val(),
    observacao: $('#observacao').val()
  };

  if (!dados.cdexercicio || !dados.cdcentrocusto || !dados.descricao) {
    alert('Preencha todos os campos obrigatórios.');
    return;
  }

  fetch('?m=orcamento_actions&ajax=salvar_cabecalho', {
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify(dados)
  })
  .then(r => r.json())
  .then(resp => {
    alert(resp.msg);
    if (resp.ok) {
      modal.hide();
      window.location.href = '?m=orcamentodet&cdorcamento=' + resp.cdorcamento;
    }
  });
});

// 🗑️ EXCLUSÃO LÓGICA
function excluirOrcamento(id, confirmado = false) {

  let url = `?m=orcamento_actions&ajax=excluir&id=${id}`;
  if (confirmado) url += '&confirmado=1';

  fetch(url)
    .then(r => r.json())
    .then(resp => {

      // ⚠️ Sempre pede confirmação na primeira chamada
      if (resp.precisaConfirmar) {
        if (confirm(resp.msg)) {
          excluirOrcamento(id, true);
        }
        return;
      }

      alert(resp.msg);
      if (resp.ok) carregarOrcamentos();
    })
    .catch(() => alert('Erro ao excluir orçamento.'));
}

// INIT
carregarOrcamentos();
</script>
