<?php

session_start();
// Tiempo máximo de inactividad (en segundos)
$tiempo_inactividad = 900; // 900 = 15 minutos

if (isset($_SESSION['ultimo_movimiento'])) {
    if (time() - $_SESSION['ultimo_movimiento'] > $tiempo_inactividad) {
        session_unset();
        session_destroy();
        header("Location: login2.php?timeout=1");
        exit();
    }
}

$_SESSION['ultimo_movimiento'] = time();

if (!isset($_SESSION['usuario'])) {

    header("Location: login.php");

    exit;

}

?>



<?php

require 'conexion.php';

require 'assets/libs/dompdf/autoload.inc.php';

use Dompdf\Dompdf;



// Recibir datos del formulario

$fecha            = $_POST['fecha'];

$tipo_proyecto    = $_POST['tipo_proyecto'];

$descripcion      = $_POST['descripcion'];

$area_solicitante = $_POST['area_solicitante'];

$solicita         = $_POST['solicita'];

$autoriza         = $_POST['autoriza'];

$iva_estado       = $_POST['iva_estado']; // 1 = ON, 0 = OFF



$proveedor      = isset($_POST['proveedor']) ? $_POST['proveedor'] : '';

$tiempo_entrega = isset($_POST['tiempo_entrega']) ? $_POST['tiempo_entrega'] : '';



// Detalle de materiales

$desc_mat   = $_POST['descripcion_material'];

$cant_mat   = $_POST['cantidad_material'];

$precio_mat = $_POST['precio_material'];



// Calcular totales

$subtotal = 0;

$tabla_materiales = "";



for ($i = 0; $i < count($desc_mat); $i++) {



    if (trim($desc_mat[$i]) === "") continue;



    $cantidad = (float)$cant_mat[$i];

    $precio   = (float)$precio_mat[$i];

    $importe  = $cantidad * $precio;



    $subtotal += $importe;



    $tabla_materiales .= "

        <tr>

            <td>{$desc_mat[$i]}</td>

            <td>{$cantidad}</td>

            <td>$" . number_format($precio, 2) . "</td>

            <td>$" . number_format($importe, 2) . "</td>

        </tr>

    ";

}



$iva   = ($iva_estado == "1") ? $subtotal * 0.16 : 0;

$total = $subtotal + $iva;



// 1) Insertar cabecera en tabla COTIZACIONES (sin folio todavía)

$sql_cab = "INSERT INTO cotizaciones 

    (fecha, tipo_proyecto, area_solicitante, descripcion, proveedor, tiempo_entrega, solicita, autoriza, subtotal, iva, total)

    VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";



$stmt = $conexion->prepare($sql_cab);

$stmt->bind_param(

    "ssssssssddd",

    $fecha,

    $tipo_proyecto,

    $area_solicitante,

    $descripcion,

    $proveedor,

    $tiempo_entrega,

    $solicita,

    $autoriza,

    $subtotal,

    $iva,

    $total

);

$stmt->execute();



// ID autoincrement de la cotización

$id_cotizacion = $stmt->insert_id;



// 2) Generar folio consecutivo simple basado en el ID

$folio = 'COT-' . str_pad($id_cotizacion, 4, '0', STR_PAD_LEFT);



// 3) Actualizar el folio en la tabla

$sql_upd = "UPDATE cotizaciones SET folio = ? WHERE id = ?";

$stmt_upd = $conexion->prepare($sql_upd);

$stmt_upd->bind_param("si", $folio, $id_cotizacion);

$stmt_upd->execute();



// 4) Insertar detalle en COTIZACION_DETALLE

$sql_det = "INSERT INTO cotizacion_detalle 

    (cotizacion_id, descripcion, cantidad, costo_unitario, total)

    VALUES (?, ?, ?, ?, ?)";

$stmt_det = $conexion->prepare($sql_det);



for ($i = 0; $i < count($desc_mat); $i++) {



    if (trim($desc_mat[$i]) === "") continue;



    $cantidad = (float)$cant_mat[$i];

    $precio   = (float)$precio_mat[$i];

    $importe  = $cantidad * $precio;



    $desc = $desc_mat[$i];



    $stmt_det->bind_param(

        "isddd",

        $id_cotizacion,

        $desc,

        $cantidad,

        $precio,

        $importe

    );

    $stmt_det->execute();

}



// 5) Generar PDF con pie de página fijo

$logo = "https://proccom.com.mx/cotizacion_proyectos/assets/img/logo_innova.png";



$html = "

<!DOCTYPE html>

<html lang='es'>

<head>

<meta charset='UTF-8'>

<style>

body { font-family: Arial, sans-serif; font-size: 12px; margin-bottom: 80px; }

table { width: 100%; border-collapse: collapse; margin-top: 10px; }

th, td { border: 1px solid #ccc; padding: 6px; }

.encabezado td { border: none; }



#footer {

    position: fixed;

    bottom: 0;

    left: 0;

    right: 0;

    text-align: center;

    font-size: 12px;

}

</style>

</head>

<body>



<div id='footer'>

    <table width='100%'>

        <tr>

            <td><strong>Solicita:</strong><br>$solicita</td>

            <td style='text-align:right;'><strong>Autoriza:</strong><br>$autoriza</td>

        </tr>

    </table>

</div>



<table class='encabezado'>

<tr>

<td><img src='$logo' width='150'></td>

<td style='text-align:right; font-size:14px;'><strong>Cotización de Proyectos</strong></td>

</tr>

</table>



<table>

<tr>

<td><strong>Fecha:</strong> $fecha</td>

<td style='text-align:right;'><strong>Folio:</strong> $folio</td>

</tr>

</table>



<p><strong>Tipo de proyecto:</strong> $tipo_proyecto</p>

<p><strong>Descripción:</strong> $descripcion</p>

<p><strong>Área solicitante:</strong> $area_solicitante</p>

<p><strong>Proveedor:</strong> $proveedor</p>



<h3>Materiales</h3>



<table>

<thead>

<tr style='background:#eee;'>

<th>Descripción</th>

<th>Cantidad</th>

<th>Precio</th>

<th>Importe</th>

</tr>

</thead>

<tbody>

$tabla_materiales

</tbody>

</table>



<h3>Totales</h3>

<p><strong>Subtotal:</strong> $" . number_format($subtotal, 2) . "</p>

<p><strong>IVA (" . ($iva_estado == "1" ? "16%" : "0%") . "):</strong> $" . number_format($iva, 2) . "</p>

<p><strong>Total:</strong> $" . number_format($total, 2) . "</p>

<p><strong>Tiempo de entrega:</strong> $tiempo_entrega</p>



</body>

</html>

";



$dompdf = new Dompdf();

$dompdf->set_option('isRemoteEnabled', true);

$dompdf->set_option('isHtml5ParserEnabled', true);

$dompdf->loadHtml($html);

$dompdf->setPaper('letter', 'portrait');

$dompdf->render();



// Crear carpeta /pdf/ si no existe

if (!file_exists("pdf")) {

    mkdir("pdf", 0777, true);

}



// Guardar PDF con el folio real

$pdf_output = $dompdf->output();

file_put_contents("pdf/$folio.pdf", $pdf_output);



// Confirmación al usuario

echo "

<script>

setTimeout(function() {

    if (confirm('¿Desea generar otra cotización?')) {

        window.location.href = 'index.php';

    } else {

        window.location.href = 'listar.php';

    }

}, 500);

</script>

";

?>

