<?php
require_once 'conexao.php';
session_start();

date_default_timezone_set('America/Sao_Paulo');

// Verificação de autenticação
if (!isset($_SESSION['logado']) || $_SESSION['logado'] !== true) {
    header('Location: login.php');
    exit;
}

// CSRF Token
if (!isset($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}

// Mensagens flash
if (isset($_SESSION['mensagem'])) {
    echo '<div class="mensagem-flash">' . htmlspecialchars($_SESSION['mensagem']) . '</div>';
    unset($_SESSION['mensagem']);
}

// Obter ID do cliente
$clienteId = (int)$_GET['id'];

// Buscar dados do cliente
$cliente = [];
$sqlCliente = "SELECT * FROM clientes WHERE id = ?";
$stmtCliente = $conn->prepare($sqlCliente);
$stmtCliente->bind_param("i", $clienteId);
$stmtCliente->execute();
$resultadoCliente = $stmtCliente->get_result();

if ($resultadoCliente->num_rows === 0) {
    header('Location: lista_clientes.php?erro=cliente_nao_encontrado');
    exit;
}

$cliente = $resultadoCliente->fetch_assoc();
$stmtCliente->close();

// Buscar produtos do cliente
$produtosCliente = [];
$sqlProdutosCliente = "SELECT cp.*, lp.nome as nome_original, lp.descricao as descricao_original 
                      FROM cliente_produtos cp
                      LEFT JOIN lista_produtos lp ON cp.lista_produto_id = lp.id
                      WHERE cp.cliente_id = ?
                      ORDER BY cp.data_cadastro DESC";
$stmtProdutosCliente = $conn->prepare($sqlProdutosCliente);
$stmtProdutosCliente->bind_param("i", $clienteId);
$stmtProdutosCliente->execute();
$resultadoProdutosCliente = $stmtProdutosCliente->get_result();
$produtosCliente = $resultadoProdutosCliente->fetch_all(MYSQLI_ASSOC);
$stmtProdutosCliente->close();

// Buscar lista de produtos disponíveis
$listaProdutos = [];
$sqlListaProdutos = "SELECT * FROM lista_produtos WHERE ativo = 1 ORDER BY nome";
$resultadoListaProdutos = $conn->query($sqlListaProdutos);
$listaProdutos = $resultadoListaProdutos->fetch_all(MYSQLI_ASSOC);

// Processar formulário de cadastro de produto
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['cadastrar_produto'])) {
    // Verificar CSRF token
    if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
        $_SESSION['mensagem'] = "Token de segurança inválido!";
        header("Location: detalhes_cliente.php?id=$clienteId");
        exit;
    }

    $listaProdutoId = isset($_POST['lista_produto_id']) ? (int)$_POST['lista_produto_id'] : null;
    $quantidade = (int)$_POST['quantidade'];
    $observacoes = trim($_POST['observacoes'] ?? '');
    
    if ($listaProdutoId) {
        // Buscar detalhes do produto na lista
        $sqlProduto = "SELECT * FROM lista_produtos WHERE id = ?";
        $stmtProduto = $conn->prepare($sqlProduto);
        $stmtProduto->bind_param("i", $listaProdutoId);
        $stmtProduto->execute();
        $produto = $stmtProduto->get_result()->fetch_assoc();
        $stmtProduto->close();
        
        if ($produto) {
            $usuarioId = $_SESSION['usuario_id'] ?? 0;
            $nomeUsuario = $_SESSION['usuario_nome'] ?? 'Sistema';
            $valorTotal = $produto['valor'] * $quantidade;
            
            // Inserir produto para o cliente
            $sqlInsert = "INSERT INTO cliente_produtos 
                         (cliente_id, lista_produto_id, usuario_id, nome_usuario, 
                          nome_produto, descricao, valor, quantidade, observacoes)
                         VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
            $stmtInsert = $conn->prepare($sqlInsert);
            $stmtInsert->bind_param("iiisssdis", 
                $clienteId, $listaProdutoId, $usuarioId, $nomeUsuario,
                $produto['nome'], $produto['descricao'], $valorTotal, $quantidade, $observacoes);
            $stmtInsert->execute();
            $stmtInsert->close();
            
            // Registrar log
            $detalhes = "Produto cadastrado:\n";
            $detalhes .= "- Nome: {$produto['nome']}\n";
            $detalhes .= "- Quantidade: $quantidade\n";
            $detalhes .= "- Valor unitário: R$ " . number_format($produto['valor'], 2, ',', '.') . "\n";
            $detalhes .= "- Valor total: R$ " . number_format($valorTotal, 2, ',', '.') . "\n";
            $detalhes .= "- Observações: $observacoes";
            
            $sqlLog = "INSERT INTO cliente_logs (cliente_id, usuario_id, nome_usuario, acao, detalhes)
                       VALUES (?, ?, ?, 'cadastro_produto', ?)";
            $stmtLog = $conn->prepare($sqlLog);
            $stmtLog->bind_param("iiss", $clienteId, $usuarioId, $nomeUsuario, $detalhes);
            $stmtLog->execute();
            $stmtLog->close();
            
            $_SESSION['mensagem'] = "Produto cadastrado com sucesso!";
            header("Location: detalhes_cliente.php?id=$clienteId");
            exit;
        }
    }
    
    $_SESSION['mensagem'] = "Selecione um produto válido!";
    header("Location: detalhes_cliente.php?id=$clienteId");
    exit;
}
?>

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Detalhes do Cliente - SON</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f5f7fa;
            color: #333;
        }
        
        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 20px;
        }
        
        .header {
            background-color: #2c3e50;
            color: white;
            padding: 15px 0;
            margin-bottom: 30px;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        }
        
        .header-content {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .btn-voltar {
            display: inline-block;
            padding: 8px 15px;
            background-color: #7f8c8d;
            color: white;
            text-decoration: none;
            border-radius: 4px;
            margin-bottom: 20px;
        }
        
        .btn-voltar:hover {
            background-color: #95a5a6;
        }
        
        .card {
            background-color: white;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.05);
            padding: 20px;
            margin-bottom: 20px;
        }
        
        .card-title {
            border-bottom: 1px solid #eee;
            padding-bottom: 10px;
            margin-top: 0;
            color: #2c3e50;
        }
        
        .form-group {
            margin-bottom: 15px;
        }
        
        label {
            display: block;
            margin-bottom: 5px;
            font-weight: 600;
        }
        
        select, input, textarea {
            width: 100%;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 4px;
            font-size: 16px;
        }
        
        .btn {
            background-color: #3498db;
            color: white;
            border: none;
            padding: 10px 20px;
            border-radius: 4px;
            cursor: pointer;
            font-size: 16px;
        }
        
        .btn:hover {
            background-color: #2980b9;
        }
        
        .produto-item {
            border-left: 4px solid #3498db;
            padding: 15px;
            margin-bottom: 15px;
            background-color: #f9f9f9;
            border-radius: 4px;
            position: relative;
        }
        
        .produto-nome {
            font-weight: 600;
            font-size: 18px;
            margin-top: 0;
        }
        
        .produto-detalhes {
            color: #555;
            margin-bottom: 5px;
        }
        
        .produto-valor {
            font-weight: bold;
            color: #27ae60;
        }
        
        .produto-quantidade {
            color: #3498db;
        }
        
        .produto-data {
            color: #7f8c8d;
            font-size: 14px;
        }
        
        .delete-btn {
            position: absolute;
            top: 10px;
            right: 10px;
            color: #e74c3c;
            background: none;
            border: none;
            cursor: pointer;
            font-size: 16px;
        }
        
        .mensagem-flash {
            position: fixed;
            top: 20px;
            right: 20px;
            padding: 15px 25px;
            background-color: #2ecc71;
            color: white;
            border-radius: 4px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            z-index: 1000;
            animation: fadeIn 0.3s, fadeOut 0.3s 2.7s;
        }
        
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(-20px); }
            to { opacity: 1; transform: translateY(0); }
        }
        
        @keyframes fadeOut {
            from { opacity: 1; }
            to { opacity: 0; }
        }
        
        .detalhes-produto {
            background-color: #f1f1f1;
            padding: 15px;
            border-radius: 4px;
            margin-bottom: 15px;
        }
        
        .valor-total {
            font-size: 18px;
            font-weight: bold;
            margin-top: 10px;
        }
    </style>
</head>
<body>
    <div class="header">
        <div class="container header-content">
            <h1>Detalhes do Cliente</h1>
            <div>
                <span style="margin-right: 20px;">Olá, <?= htmlspecialchars($_SESSION['nome_usuario'] ?? 'Usuário') ?></span>
                <a href="logout.php" style="color: white;">Sair</a>
            </div>
        </div>
    </div>
    
    <div class="container">
        <a href="lista_clientes.php" class="btn-voltar">
            <i class="fas fa-arrow-left"></i> Voltar para lista
        </a>
        
        <div class="card">
            <h2 class="card-title">Informações do Cliente</h2>
            <p><strong>Nome:</strong> <?= htmlspecialchars($cliente['Nome_Cliente']) ?></p>
            <p><strong>Email:</strong> <?= htmlspecialchars($cliente['Email']) ?></p>
            <p><strong>Telefone:</strong> <?= htmlspecialchars($cliente['Telefone']) ?></p>
        </div>
        
        <div class="card">
            <h2 class="card-title">Cadastrar Novo Produto</h2>
            <form method="POST">
                <input type="hidden" name="cadastrar_produto" value="1">
                <input type="hidden" name="csrf_token" value="<?= $_SESSION['csrf_token'] ?>">
                
                <div class="form-group">
                    <label for="lista_produto_id">Selecione um Produto</label>
                    <select name="lista_produto_id" id="lista_produto_id" required>
                        <option value="">-- Selecione --</option>
                        <?php foreach ($listaProdutos as $produto): ?>
                            <option value="<?= $produto['id'] ?>" 
                                    data-valor="<?= $produto['valor'] ?>" 
                                    data-descricao="<?= htmlspecialchars($produto['descricao']) ?>">
                                <?= htmlspecialchars($produto['nome']) ?> - R$ <?= number_format($produto['valor'], 2, ',', '.') ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>
                
                <div id="detalhes-produto" class="detalhes-produto" style="display: none;">
                    <h4 id="nome-produto-selecionado"></h4>
                    <p id="descricao-produto-selecionado"></p>
                    <p><strong>Valor unitário:</strong> R$ <span id="valor-unitario"></span></p>
                </div>
                
                <div class="form-group">
                    <label for="quantidade">Quantidade</label>
                    <input type="number" name="quantidade" id="quantidade" min="1" value="1" required>
                </div>
                
                <div class="valor-total">
                    <strong>Valor total:</strong> R$ <span id="valor-total">0,00</span>
                </div>
                
                <div class="form-group">
                    <label for="observacoes">Observações</label>
                    <textarea name="observacoes" id="observacoes" rows="3"></textarea>
                </div>
                
                <button type="submit" class="btn">
                    <i class="fas fa-save"></i> Cadastrar Produto
                </button>
            </form>
        </div>
        
        <div class="card">
            <h2 class="card-title">Produtos Cadastrados</h2>
            
            <?php if (count($produtosCliente) > 0): ?>
                <?php foreach ($produtosCliente as $produto): ?>
                    <div class="produto-item">
                        <button class="delete-btn" onclick="confirmarExclusao(<?= $produto['id'] ?>)">
                            <i class="fas fa-trash"></i>
                        </button>
                        <h3 class="produto-nome"><?= htmlspecialchars($produto['nome_produto']) ?></h3>
                        <p class="produto-detalhes"><?= nl2br(htmlspecialchars($produto['descricao'])) ?></p>
                        <p class="produto-quantidade">Quantidade: <?= $produto['quantidade'] ?></p>
                        <p class="produto-valor">Valor total: R$ <?= number_format($produto['valor'], 2, ',', '.') ?></p>
                        <?php if (!empty($produto['observacoes'])): ?>
                            <p><strong>Observações:</strong> <?= nl2br(htmlspecialchars($produto['observacoes'])) ?></p>
                        <?php endif; ?>
                        <p class="produto-data">
                            Cadastrado por <?= htmlspecialchars($produto['nome_usuario']) ?> em 
                            <?= date('d/m/Y H:i', strtotime($produto['data_cadastro'])) ?>
                        </p>
                    </div>
                <?php endforeach; ?>
            <?php else: ?>
                <p>Nenhum produto cadastrado para este cliente.</p>
            <?php endif; ?>
        </div>
    </div>
    
    <script>
        // Mostrar detalhes do produto selecionado
        document.getElementById('lista_produto_id').addEventListener('change', function() {
            const select = this;
            const detalhesDiv = document.getElementById('detalhes-produto');
            const nomeProduto = document.getElementById('nome-produto-selecionado');
            const descricaoProduto = document.getElementById('descricao-produto-selecionado');
            const valorUnitario = document.getElementById('valor-unitario');
            
            if (select.value) {
                const selectedOption = select.options[select.selectedIndex];
                const valor = parseFloat(selectedOption.getAttribute('data-valor'));
                const descricao = selectedOption.getAttribute('data-descricao');
                
                nomeProduto.textContent = selectedOption.text.split(' - ')[0];
                descricaoProduto.textContent = descricao;
                valorUnitario.textContent = valor.toFixed(2).replace('.', ',');
                
                detalhesDiv.style.display = 'block';
                calcularValorTotal();
            } else {
                detalhesDiv.style.display = 'none';
                document.getElementById('valor-total').textContent = '0,00';
            }
        });
        
        // Calcular valor total quando quantidade muda
        document.getElementById('quantidade').addEventListener('input', calcularValorTotal);
        
        function calcularValorTotal() {
            const select = document.getElementById('lista_produto_id');
            const quantidade = parseInt(document.getElementById('quantidade').value) || 0;
            
            if (select.value && quantidade > 0) {
                const selectedOption = select.options[select.selectedIndex];
                const valorUnitario = parseFloat(selectedOption.getAttribute('data-valor'));
                const valorTotal = valorUnitario * quantidade;
                
                document.getElementById('valor-total').textContent = valorTotal.toFixed(2).replace('.', ',');
            } else {
                document.getElementById('valor-total').textContent = '0,00';
            }
        }
        
        function confirmarExclusao(produtoId) {
            if (confirm('Tem certeza que deseja excluir este produto?')) {
                window.location.href = 'excluir_produto.php?id=' + produtoId + '&cliente_id=<?= $clienteId ?>';
            }
        }
        
        // Esconder mensagem flash após 3 segundos
        setTimeout(function() {
            const mensagem = document.querySelector('.mensagem-flash');
            if (mensagem) {
                mensagem.style.display = 'none';
            }
        }, 3000);
    </script>
</body>
</html>