<?php

require_once __DIR__ . '/../../includes/header.php';

$evento_id = intval($_GET['evento_id'] ?? 0);

$eventos = $pdo->query("
    SELECT
        id,
        nome,
        valor_convite
    FROM eventos
    WHERE status='ATIVO'
    ORDER BY data_evento DESC
")->fetchAll(PDO::FETCH_ASSOC);

$alunos = $pdo->query("
    SELECT
        id,
        nome,
        mae_nome,
        mae_telefone
    FROM alunos
    ORDER BY nome
")->fetchAll(PDO::FETCH_ASSOC);

?>

<div class="page-header">

<div>
    <h2>Venda de Convites</h2>

    <div class="subtitle">
        Gerar convites para eventos
    </div>
</div>

<div>
    <a href="vendas.php" class="btn btn-secondary">
        Voltar
    </a>
</div>

</div>

<form method="POST" action="venda_salvar.php">

<div class="card-premium" style="padding:25px;">

<h3 style="
color:var(--accent);
margin-bottom:15px;
border-bottom:1px solid var(--border);
padding-bottom:10px;
">

Dados da Venda

</h3>

<div style="
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:15px;
">

<div class="form-group">

<label>Evento *</label>

<select
name="evento_id"
id="evento_id"
required>

<option value="">Selecione</option>

<?php foreach($eventos as $evento): ?>

<option
value="<?= $evento['id'] ?>"
data-valor="<?= $evento['valor_convite'] ?>"
<?= ($evento_id == $evento['id']) ? 'selected' : '' ?>>

<?= htmlspecialchars($evento['nome']) ?>

</option>

<?php endforeach; ?>

</select>

</div>

<div class="form-group">

<label>Aluno *</label>

<select
name="aluno_id"
id="aluno_id"
required>

<option value="">Selecione</option>

<?php foreach($alunos as $aluno): ?>

<option
value="<?= $aluno['id'] ?>"
data-mae="<?= htmlspecialchars($aluno['mae_nome']) ?>"
data-telefone="<?= htmlspecialchars($aluno['mae_telefone']) ?>">

<?= htmlspecialchars($aluno['nome']) ?>

</option>

<?php endforeach; ?>

</select>

</div>

<div class="form-group">

<label>Responsável</label>

<input
type="text"
name="responsavel"
id="responsavel">

</div>

<div class="form-group">

<label>Telefone</label>

<input
type="text"
name="telefone"
id="telefone">

</div>

<div class="form-group">

<label>Quantidade de Convites *</label>

<input
type="number"
name="quantidade"
id="quantidade"
min="1"
value="1"
required>

</div>

<div class="form-group">

<label>Valor Unitário</label>

<input
type="number"
step="0.01"
name="valor_unitario"
id="valor_unitario"
readonly>

</div>

<div class="form-group">

<label>Valor Total</label>

<input
type="text"
name="valor_total"
id="valor_total"
class="form-control"
readonly>

</div>

</div>

<div class="form-group">

<label>Pago</label>

<select name="pago">

<option value="N">
Não
</option>

<option value="S">
Sim
</option>

</select>

</div>

<div
class="form-group"
style="grid-column:1/-1;">

<label>Observação</label>

<textarea
name="observacao"
rows="3"></textarea>

</div>

</div>

</div>

<div style="
display:flex;
justify-content:flex-end;
gap:10px;
margin-top:20px;
">

<a
href="vendas.php"
class="btn btn-secondary">

Cancelar

</a>

<button
type="submit"
class="btn btn-novo">

Gerar Convites

</button>

</div>

</form>

<script>

const aluno =
document.getElementById('aluno_id');

const responsavel =
document.getElementById('responsavel');

const telefone =
document.getElementById('telefone');

const evento =
document.getElementById('evento_id');

const valorUnitario =
document.getElementById('valor_unitario');

const quantidade =
document.getElementById('quantidade');

const valorTotal =
document.getElementById('valor_total');

function atualizarAluno(){

    const opcao =
        aluno.options[aluno.selectedIndex];

    if(!opcao){
        return;
    }

    responsavel.value =
        opcao.dataset.mae || '';

    telefone.value =
        opcao.dataset.telefone || '';

}

function atualizarEvento(){

    const opcao =
        evento.options[evento.selectedIndex];

    if(!opcao){
        return;
    }

    valorUnitario.value =
        opcao.dataset.valor || 0;

    calcularTotal();

}

function calcularTotal(){

    const qtd =
        parseInt(quantidade.value) || 0;

    const valor =
        parseFloat(valorUnitario.value) || 0;

    const total =
        qtd * valor;

    valorTotal.value =
        total.toLocaleString(
            'pt-BR',
            {
                minimumFractionDigits: 2,
                maximumFractionDigits: 2
            }
        );

}

aluno.addEventListener(
    'change',
    atualizarAluno
);

evento.addEventListener(
    'change',
    atualizarEvento
);

quantidade.addEventListener(
    'input',
    calcularTotal
);

window.addEventListener(
    'load',
    function(){

        atualizarAluno();
        atualizarEvento();
        calcularTotal();

    }
);

</script>

<?php require_once __DIR__ . '/../../includes/footer.php'; ?>
