<?php

include "includes/header.php";
include "includes/navbar.php";
include "config/init.php";

if (!isset($_SESSION['carrinha'])) {
    $_SESSION['carrinha'] = [];
}

/* =========================
   ADICIONAR PRODUTO
========================= */
if (isset($_POST['add_produto'])) {
    $id    = $_POST['produto_id'];
    $nome  = $_POST['produto'];
    $preco = $_POST['preco'];

    if (isset($_SESSION['carrinha'][$id])) {
        $_SESSION['carrinha'][$id]['qtd']++;
    } else {
        $_SESSION['carrinha'][$id] = [
            'produto' => $nome,
            'preco'   => $preco,
            'qtd'     => 1,
            'produto_id' => $id
        ];
    }
}

if(isset($_GET['id']) && !empty($_GET['id'])){
    $id = $_GET['id'];

        if (isset($_SESSION['carrinha'][$id])) {
        $_SESSION['carrinha'][$id]['qtd']--;
    } else {
        $_SESSION['carrinha'][$id] = [
            'produto' => $nome,
            'preco'   => $preco,
            'qtd'     => 1,
            'produto_id' => $id
        ];
    }

}




/* =========================
   CLASSE FACTURAÇÃO (OOP)
========================= */
class Facturacao {

    public function finalizar() {

        global $database;

        if (isset($_POST['finalizar'])) {

            if(empty($_SESSION['carrinha'])){
                echo "<script>alert('Carrinha vazia')</script>";
                return;
            }

            $cliente = $_POST['cliente'];
            $tipo    = $_POST['tipo'];
            $data    = date('Y-m-d');
            $total   = 0;

            // 🔥 1 - GERAR NÚMERO DA CARRINHA
            $result = $database->query("SELECT MAX(carrinha) as ultima FROM vendas_documento");
            $row = $database->fetch_assoc($result);
            $ultimaCarrinha = $row['ultima'];

            if($ultimaCarrinha == null){
                $carrinha = 1;
            } else {
                $carrinha = $ultimaCarrinha + 1;
            }

            // 🔥 2 - CALCULAR TOTAL
            foreach ($_SESSION['carrinha'] as $item) {
                $total += $item['preco'] * $item['qtd'];
            }

            // 🔥 3 - INSERIR DOCUMENTO
            $database->query("
                INSERT INTO vendas_documento(cliente,tipo,carrinha,total,data)
                VALUES('$cliente', '$tipo','$carrinha','$total', '$data')
            ");

            // 🔥 4 - INSERIR ITENS USANDO O MESMO NÚMERO DE CARRINHA
            foreach ($_SESSION['carrinha'] as $item) {

                $sub = $item['preco'] * $item['qtd'];

                $database->query("
                    INSERT INTO venda_items(carrinha,produto,preco,quantidade,subtotal)
                    VALUES('$carrinha','{$item['produto']}','{$item['preco']}','{$item['qtd']}','$sub')
                ");
            }

            // 🔥 5 - LIMPAR CARRINHA
            unset($_SESSION['carrinha']);

            echo "<script>
                alert('Documento gerado com sucesso - Carrinha Nº $carrinha');
                window.location='documentos.php'
            </script>";
        }
    }
}


$fact = new Facturacao();
$fact->finalizar();
?>

<?php 
if(isset($_GET['cancelar']) && !empty($_GET['cancelar'])){
    unset($_SESSION['carrinha']);   
    echo "<script>window.open('facturacao.php','_self')</script>"; 
}
?>

<div id="wrapper">

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

<div id="content-wrapper">

<div class="container-fluid">

<!-- Breadcrumb -->
<ol class="breadcrumb">
    <li class="breadcrumb-item">Facturação</li>
    <li class="breadcrumb-item active"><?php echo $_SESSION['nome']; ?></li>
</ol>

<div class="row">

<!-- CLIENTE -->
<div class="col-md-4">
    <div class="card">
        <div class="card-header">Cliente / Documento</div>
        <div class="card-body">

            <form method="POST">

                <label>Cliente</label>
                <select name="cliente" class="form-control mb-2" required>
                    <option value="">Selecionar</option>
                    <?php $novoCliente->Listar();?>
                </select>

                <label>Tipo de Documento</label>
                <select name="tipo" class="form-control mb-3">
                    <option value="cotacao">Cotação</option>
                    <option value="proforma">Factura Proforma</option>
                    <option value="recibo">Recibo</option>
                </select>

                <button name="finalizar" class="btn btn-success btn-block">
                    Finalizar Documento
                </button>

            </form>

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

<!-- PRODUTOS -->
<div class="col-md-8">
    <div class="card">
        <div class="card-header">Produtos</div>
        <div class="card-body">
            <div class="row">

                <?php
                $produtos = $database->query("SELECT * FROM productos");

                foreach ($produtos as $p):
                ?>
                <div class="col-md-4">
                    <div class="card mb-3">
                        <div class="card-body text-center">
                            <h6><?php echo $p['productName']; ?></h6>
                            <p><?php echo number_format($p['productSalePrice'],2); ?> MT</p>
                            <p><font color='green'>Stock: <?php echo $p['productQtd'];?></font></p>

                            <form method="POST">
                                <input type="hidden" name="produto_id" value="<?php echo $p['id']; ?>">
                                <input type="hidden" name="produto" value="<?php echo $p['productName']; ?>">
                                <input type="hidden" name="preco" value="<?php echo $p['productSalePrice']; ?>">
                                <button name="add_produto" class="btn btn-primary btn-sm">
                                    Adicionar
                                </button>
                            </form>

                        </div>
                    </div>
                </div>
                <?php endforeach; ?>

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

</div>
</div>

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

</div>
</div>

<!-- CARRINHA HOVER -->
<div id="cartHover" style="position:fixed;top:20px;right:20px;z-index:999;">
    <i class="fas fa-shopping-cart fa-2x"></i>
    <span class="badge badge-danger"><?php

       echo count($_SESSION['carrinha']); 
    ?></span>
</div>

<div class="modal fade" id="cartModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
    <h5 class="modal-title">Carrinha</h5>
</div>
<div class="modal-body">
<?php $total_carrinha = 0;?>
<?php if (!empty($_SESSION['carrinha'])): ?>
<?php foreach ($_SESSION['carrinha'] as $item): ?>

     <?php 
    if($item['qtd'] > 0){
    ?>
    <div class="d-flex justify-content-between border-bottom py-1">
   
   <span><?php echo $item['produto']; ?></span>
    <span><?php echo $item['qtd']; ?> x <?php echo number_format($item['preco'],2); ?></span>
    <span><?php echo number_format($item['preco'] * $item['qtd'],2);?> MT</span>
    <span><a href="facturacao.php?id=<?php echo $item['produto_id'];?>">Remove</a></span>
    
    </div>
   <?php $total_carrinha += $item['preco'] * $item['qtd'];?>
<?php }else{ echo '';}?>
    <?php endforeach; ?>
<p>
<b>Total carrinha:
<?php
echo number_format($total_carrinha,2,",",".");
?></b></p>
<a href="facturacao.php?cancelar=01">Cancelar</a>



<?php else: ?>
<p class="text-center">Carrinha vazia</p>
<?php endif; ?>

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

<!-- JS -->
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script>
$('#cartHover').hover(function(){
    $('#cartModal').modal('show');
});
</script>

</body>
</html>
