<?php
/**
 * TechShop Perú - Generador de Cotizaciones / Proformas B2B (Mejora 11)
 * 
 * Genera una proforma imprimible para compras institucionales / empresariales.
 * Compatible con impresión directa y guardado como PDF desde el navegador.
 */
define('SECURE_ACCESS', true);
require_once __DIR__ . '/../includes/config.php';
require_once __DIR__ . '/../includes/database.php';
require_once __DIR__ . '/../includes/functions.php';

if (!is_logged_in()) {
    header('Location: ' . url('pages/login.php?redirect=' . urlencode($_SERVER['REQUEST_URI'])));
    exit;
}

$db = db();
$usuario_id = (int)$_SESSION['usuario_id'];

// Obtener datos de usuario
$user = $db->prepare('SELECT * FROM usuarios WHERE id = ?');
$user->execute([$usuario_id]);
$user = $user->fetch();

// Obtener items del carrito
$stmtCart = $db->prepare("
    SELECT c.cantidad, p.nombre, p.precio, p.precio_oferta, p.sku, p.id AS producto_id
    FROM carrito c
    JOIN productos p ON c.producto_id = p.id
    WHERE c.usuario_id = ? AND p.activo = 1
");
$stmtCart->execute([$usuario_id]);
$items = $stmtCart->fetchAll();

if (empty($items)) {
    header('Location: ' . url('pages/carrito.php'));
    exit;
}

// Calcular totales
$subtotal = 0;
foreach ($items as &$item) {
    $item['precio_final'] = precio_final($item);
    $item['subtotal_item'] = $item['precio_final'] * $item['cantidad'];
    $subtotal += $item['subtotal_item'];
}
unset($item);

$igv_pct = (float)(IGV_PORCENTAJE ?? 18);
$igv_monto = $subtotal * ($igv_pct / 100);
$total = $subtotal + $igv_monto;

// Número de cotización
$numero_cotizacion = 'COT-' . date('Ymd') . '-' . strtoupper(substr(md5($usuario_id . time()), 0, 6));
$fecha_emision = date('d/m/Y');
$fecha_validez = date('d/m/Y', strtotime('+15 days'));

// RUC empresa del POST (si fue enviado)
$ruc_empresa   = trim($_POST['ruc_empresa'] ?? '');
$razon_social  = trim($_POST['razon_social'] ?? '');
$empresa_dir   = trim($_POST['empresa_dir'] ?? '');
$empresa_email = trim($_POST['empresa_email'] ?? $user['email'] ?? '');
$empresa_tel   = trim($_POST['empresa_tel'] ?? $user['telefono'] ?? '');

$mostrar_form = empty($ruc_empresa);
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cotización <?= e($numero_cotizacion) ?> | <?= TIENDA_NOMBRE ?></title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
    <style>
        body { font-family: 'Arial', sans-serif; background: #f8f9fa; }
        @media print {
            body { background: #fff; }
            .no-print { display: none !important; }
            .cotizacion-doc { box-shadow: none !important; border: none !important; }
            @page { margin: 1.5cm; }
        }
        .cotizacion-doc {
            max-width: 800px; margin: 2rem auto; background: #fff;
            border-radius: 12px; box-shadow: 0 4px 24px rgba(0,0,0,0.12);
            border: 1px solid #e5e7eb; overflow: hidden;
        }
        .doc-header { background: linear-gradient(135deg, #2563eb, #1e40af); color: #fff; padding: 2rem; }
        .doc-header h2 { font-size: 1.6rem; font-weight: 800; margin: 0; }
        .doc-header .subtitle { opacity: 0.85; font-size: 0.9rem; }
        .badge-validez { background: #fbbf24; color: #1f2937; font-weight: 700; border-radius: 2rem; padding: 0.2rem 0.8rem; font-size: 0.8rem; }
        .table-cotizacion thead th { background: #f1f5f9; font-size: 0.85rem; font-weight: 700; color: #475569; text-transform: uppercase; letter-spacing: 0.5px; }
        .total-row td { font-weight: 700; background: #eff6ff; }
        .total-final td { font-weight: 800; font-size: 1.1rem; background: #2563eb; color: #fff; }
        .watermark { color: #cbd5e1; font-size: 0.75rem; text-align: center; margin-top: 1rem; }
    </style>
</head>
<body>

<!-- Controles de impresión -->
<div class="no-print py-3 text-center bg-white border-bottom shadow-sm">
    <div class="container">
        <span class="fw-bold me-3">Cotización / Proforma B2B</span>
        <?php if ($mostrar_form): ?>
        <span class="text-muted small me-3">Completa los datos de empresa para personalizar</span>
        <?php endif; ?>
        <button onclick="window.print()" class="btn btn-primary btn-sm me-2">
            <i class="bi bi-printer me-1"></i>Imprimir / Guardar PDF
        </button>
        <a href="<?= url('pages/carrito.php') ?>" class="btn btn-outline-secondary btn-sm">
            <i class="bi bi-arrow-left me-1"></i>Volver al Carrito
        </a>
    </div>
</div>

<?php if ($mostrar_form): ?>
<!-- Formulario de datos de empresa -->
<div class="no-print container py-4">
    <div class="card shadow-sm border-0 mx-auto" style="max-width:600px; border-radius:12px;">
        <div class="card-body p-4">
            <h5 class="fw-bold mb-3"><i class="bi bi-building me-2 text-primary"></i>Datos de Empresa (Opcional)</h5>
            <p class="text-muted small mb-3">Completa para personalizar la cotización con los datos de tu empresa. Si no, se usarán tus datos de cuenta.</p>
            <form method="POST">
                <div class="row g-3">
                    <div class="col-md-6">
                        <label class="form-label small fw-semibold">RUC de la Empresa</label>
                        <input type="text" name="ruc_empresa" class="form-control" placeholder="20xxxxxxxxx" maxlength="11">
                    </div>
                    <div class="col-md-6">
                        <label class="form-label small fw-semibold">Razón Social</label>
                        <input type="text" name="razon_social" class="form-control" placeholder="Mi Empresa SAC">
                    </div>
                    <div class="col-12">
                        <label class="form-label small fw-semibold">Dirección de Empresa</label>
                        <input type="text" name="empresa_dir" class="form-control" placeholder="Av. República de Panamá 1234, Lima">
                    </div>
                    <div class="col-md-6">
                        <label class="form-label small fw-semibold">Email de Contacto</label>
                        <input type="email" name="empresa_email" class="form-control" value="<?= e($user['email'] ?? '') ?>">
                    </div>
                    <div class="col-md-6">
                        <label class="form-label small fw-semibold">Teléfono</label>
                        <input type="text" name="empresa_tel" class="form-control" value="<?= e($user['telefono'] ?? '') ?>">
                    </div>
                    <div class="col-12">
                        <button type="submit" class="btn btn-primary w-100"><i class="bi bi-file-earmark-text me-1"></i>Generar Cotización</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>
<?php endif; ?>

<!-- Documento de cotización -->
<div class="cotizacion-doc">
    <!-- Cabecera -->
    <div class="doc-header">
        <div class="row align-items-center">
            <div class="col">
                <h2><?= TIENDA_NOMBRE ?></h2>
                <div class="subtitle">RUC <?= TIENDA_RUC ?> | <?= TIENDA_DIRECCION ?></div>
                <div class="subtitle"><?= TIENDA_TELEFONO ?> | <?= TIENDA_EMAIL ?></div>
            </div>
            <div class="col-auto text-end">
                <div class="h4 fw-bold mb-0">COTIZACIÓN</div>
                <div class="badge-validez mt-1 d-inline-block">Válida 15 días</div>
                <div class="subtitle mt-2">N° <?= e($numero_cotizacion) ?></div>
            </div>
        </div>
    </div>

    <div class="p-4">
        <!-- Info de fechas y cliente -->
        <div class="row g-3 mb-4">
            <div class="col-md-6">
                <div class="p-3 bg-light rounded-3">
                    <p class="mb-1 fw-bold small text-uppercase text-muted">Datos del Cliente / Empresa</p>
                    <?php if (!empty($razon_social)): ?>
                    <p class="mb-1 fw-semibold"><?= e($razon_social) ?></p>
                    <?php if (!empty($ruc_empresa)): ?><p class="mb-1 small">RUC: <?= e($ruc_empresa) ?></p><?php endif; ?>
                    <?php if (!empty($empresa_dir)): ?><p class="mb-1 small"><?= e($empresa_dir) ?></p><?php endif; ?>
                    <?php else: ?>
                    <p class="mb-1 fw-semibold"><?= e(trim((($user['nombres'] ?? '') . ' ' . ($user['apellidos'] ?? '')))) ?></p>
                    <?php endif; ?>
                    <p class="mb-0 small"><?= e($empresa_email) ?></p>
                    <?php if (!empty($empresa_tel)): ?><p class="mb-0 small"><?= e($empresa_tel) ?></p><?php endif; ?>
                </div>
            </div>
            <div class="col-md-6">
                <div class="p-3 bg-light rounded-3">
                    <div class="row text-center g-2">
                        <div class="col-4">
                            <p class="mb-0 text-muted small">Emitida</p>
                            <p class="mb-0 fw-bold small"><?= $fecha_emision ?></p>
                        </div>
                        <div class="col-4">
                            <p class="mb-0 text-muted small">Válida hasta</p>
                            <p class="mb-0 fw-bold small text-warning"><?= $fecha_validez ?></p>
                        </div>
                        <div class="col-4">
                            <p class="mb-0 text-muted small">Moneda</p>
                            <p class="mb-0 fw-bold small">Soles (PEN)</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Tabla de productos -->
        <table class="table table-cotizacion table-bordered mb-4">
            <thead>
                <tr>
                    <th>#</th>
                    <th>SKU</th>
                    <th>Descripción del Producto</th>
                    <th class="text-center">Cant.</th>
                    <th class="text-end">P. Unitario</th>
                    <th class="text-end">Subtotal</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($items as $i => $item): ?>
                <tr>
                    <td><?= $i + 1 ?></td>
                    <td class="font-monospace small"><?= e($item['sku'] ?? '-') ?></td>
                    <td><?= e($item['nombre']) ?></td>
                    <td class="text-center"><?= $item['cantidad'] ?></td>
                    <td class="text-end">S/ <?= number_format($item['precio_final'], 2) ?></td>
                    <td class="text-end fw-semibold">S/ <?= number_format($item['subtotal_item'], 2) ?></td>
                </tr>
                <?php endforeach; ?>
            </tbody>
            <tfoot>
                <tr class="total-row">
                    <td colspan="5" class="text-end">Subtotal (sin IGV):</td>
                    <td class="text-end">S/ <?= number_format($subtotal - $igv_monto, 2) ?></td>
                </tr>
                <tr class="total-row">
                    <td colspan="5" class="text-end">IGV (<?= $igv_pct ?>%):</td>
                    <td class="text-end">S/ <?= number_format($igv_monto, 2) ?></td>
                </tr>
                <tr class="total-final">
                    <td colspan="5" class="text-end">TOTAL:</td>
                    <td class="text-end">S/ <?= number_format($total, 2) ?></td>
                </tr>
            </tfoot>
        </table>

        <!-- Notas y condiciones -->
        <div class="row g-3">
            <div class="col-md-7">
                <h6 class="fw-bold mb-2">Condiciones de la Cotización</h6>
                <ul class="small text-muted ps-3 mb-0">
                    <li>Precios incluyen IGV (<?= $igv_pct ?>%) salvo indicación contraria.</li>
                    <li>Validez de la cotización: 15 días calendario desde la fecha de emisión.</li>
                    <li>Los precios pueden variar sin previo aviso al vencimiento.</li>
                    <li>Entrega sujeta a disponibilidad de stock.</li>
                    <li>Garantías oficiales de fabricante en todos los productos.</li>
                </ul>
            </div>
            <div class="col-md-5">
                <h6 class="fw-bold mb-2">Formas de Pago</h6>
                <ul class="small text-muted ps-3 mb-0">
                    <li>Transferencia bancaria</li>
                    <li>PayPal / Tarjeta de crédito online</li>
                    <li>Yape / Plin</li>
                    <li>Efectivo (pago contra entrega Lima)</li>
                </ul>
            </div>
        </div>

        <hr class="my-4">

        <!-- Firma y sello -->
        <div class="row">
            <div class="col-md-6 text-center">
                <div style="border-top: 2px solid #cbd5e1; padding-top: 0.5rem; margin: 0 2rem;">
                    <p class="mb-0 small fw-semibold"><?= TIENDA_NOMBRE ?></p>
                    <p class="mb-0 text-muted" style="font-size:.78rem;">Firma y sello del vendedor</p>
                </div>
            </div>
            <div class="col-md-6 text-center">
                <div style="border-top: 2px solid #cbd5e1; padding-top: 0.5rem; margin: 0 2rem;">
                    <p class="mb-0 small fw-semibold"><?= !empty($razon_social) ? e($razon_social) : 'Cliente' ?></p>
                    <p class="mb-0 text-muted" style="font-size:.78rem;">Firma y sello del comprador</p>
                </div>
            </div>
        </div>
    </div>

    <div class="watermark py-2">
        Documento generado automáticamente por <?= TIENDA_NOMBRE ?> · <?= TIENDA_EMAIL ?> · <?= TIENDA_TELEFONO ?>
    </div>
</div>
</body>
</html>
