<?php
session_start();
if(!isset($_SESSION['usuario'])){
    header("Location: st_acceso.php");
    exit;
}

ini_set('display_errors',1);
error_reporting(E_ALL);

require_once('st_conexion.php');

$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
    PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE=>PDO::FETCH_ASSOC
];

try{
    $pdo = new PDO($dsn,$user,$pass,$options);
}catch(PDOException $e){
    die("Error de conexión: ".$e->getMessage());
}

// Usuario conectado → recibe
$usuarioSis = $_SESSION['usuario'];
$sqlUser = "SELECT ID_USUARIO,NOMBRE,APELLIDO_PATERNO FROM HE_USUARIOS WHERE USUARIO_SIS=:usr AND ESTADO=1";
$stmtUser = $pdo->prepare($sqlUser);
$stmtUser->execute(['usr'=>$usuarioSis]);
$usrRecibe = $stmtUser->fetch();
$usuarioRecibeId = $usrRecibe['ID_USUARIO'];
$usuarioRecibeNombre = $usrRecibe['NOMBRE']." ".$usrRecibe['APELLIDO_PATERNO'];

// Usuarios que solicitan (ARRIENDO=1)
$sqlSolicita = "SELECT ID_USUARIO,RUT,NOMBRE,APELLIDO_PATERNO,APELLIDO_MATERNO FROM HE_USUARIOS WHERE ARRIENDO=1 AND ESTADO=1 ORDER BY APELLIDO_PATERNO ASC";
$usuariosSolicita = $pdo->query($sqlSolicita)->fetchAll();

// Proveedores
$sqlProv = "SELECT PROVEEDOR_RUT,NOMBRE FROM HE_PROVEEDORES WHERE ESTADO=1 ORDER BY NOMBRE ASC";
$proveedores = $pdo->query($sqlProv)->fetchAll();

// Tipos
$tipos = $pdo->query("SELECT ID_TIPO,NOMBRE FROM HE_TIPO ORDER BY NOMBRE ASC")->fetchAll();

// Herramientas existentes
$productos = $pdo->query("
    SELECT CLAVE,NOMBRE,DESCRIPCION,SERIE,ID_TIPO,PROVEEDOR_RUT
    FROM HE_MAESTRO
    ORDER BY NOMBRE ASC
")->fetchAll();

$jsonProductos = json_encode($productos,JSON_UNESCAPED_UNICODE);
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Arriendo</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Helvetica',sans-serif;background:#f3f4f8;color:#333;}
.info-field{background:#eef3ff;color:#003a91;font-weight:bold;padding:6px 10px;border-radius:6px;border:1px solid #8aa8e6;display:inline-block;}
.topbar{width:100%;background-color:#1D3C7D;color:white;display:flex;align-items:center;justify-content:center;position:fixed;top:0;z-index:1000;height:50px;box-shadow:0 2px 5px rgba(0,0,0,0.2);}
.topbar .title{position:absolute;left:20px;font-size:20px;}
.topbar .user-info{font-size:14px;}
.topbar .logout{position:absolute;right:20px;}
.topbar .logout button{display:flex;align-items:center;gap:6px;background:#bd0909;border:none;padding:6px 14px;border-radius:6px;color:white;font-size:13px;cursor:pointer;}
.topbar .logout button:hover{background-color:red;}
.topbar .logout img{width:30px;height:30px;}
.container{max-width:1200px;margin:100px auto 40px;}
.card{background:#fff;padding:18px;border-radius:10px;box-shadow:0 6px 12px rgba(0,0,0,0.12);margin-bottom:18px;}
table{width:100%;border-collapse:collapse;}
th,td{padding:8px;border:1px solid #ddd;font-size:13px;}
th{background:#0c4896;color:#fff;}
select,input,textarea{padding:7px;border:1px solid #bbb;border-radius:6px;width:100%;font-size:13px;}
.btn{background:green;color:white;border:none;padding:8px 12px;border-radius:6px;cursor:pointer;}
.btn-red{background:#b71c1c;color:white;border:none;padding:8px 12px;border-radius:6px;cursor:pointer;}
.hidden{display:none;}
</style>
</head>
<body>

<div class="topbar">
    <div class="title">StockTools</div>
    <div class="user-info">Bienvenido, <?= htmlspecialchars($usuarioRecibeNombre) ?></div>
    <div class="logout">
        <button onclick="location.href='st_logout.php'">
            <img src="Iconos/st_icono_salir.png"> Cerrar Sesión
        </button>
    </div>
</div>

<div class="container">
<form action="st_arriendo_graba.php" method="POST" id="formArriendo">

<div class="card">
<h3>Datos del Arriendo</h3>
<table>
<tr>
    <td><strong>Usuario que recibe</strong></td>
    <td>
        <span class="info-field"><?= htmlspecialchars($usuarioRecibeNombre) ?></span>
        <input type="hidden" name="ID_USUARIO_RECIBE" value="<?= $usuarioRecibeId ?>">
    </td>
    <td><strong>Estado</strong></td>
    <td>
        <span class="info-field">Pendiente de recepción</span>
        <input type="hidden" name="ESTADO" value="0">
    </td>
</tr>
<tr>
    <td><strong>Usuario que solicita *</strong></td>
    <td>
        <select name="ID_USUARIO_SOLICITA" id="selSolicita" required>
            <option value="">-- Seleccione Usuario --</option>
            <?php foreach($usuariosSolicita as $u): ?>
            <option value="<?= $u['ID_USUARIO'] ?>"><?= htmlspecialchars($u['RUT']." - ".$u['APELLIDO_PATERNO']." ".$u['APELLIDO_MATERNO']." ".$u['NOMBRE']) ?></option>
            <?php endforeach; ?>
        </select>
    </td>
    <td><strong>Proveedor *</strong></td>
    <td>
        <select name="PROVEEDOR_RUT" id="selProveedor" required>
            <option value="">-- Seleccione Proveedor --</option>
            <?php foreach($proveedores as $p): ?>
            <option value="<?= $p['PROVEEDOR_RUT'] ?>"><?= htmlspecialchars($p['PROVEEDOR_RUT']." - ".$p['NOMBRE']) ?></option>
            <?php endforeach; ?>
        </select>
    </td>
</tr>
<tr>
    <td><strong>OC *</strong></td>
    <td><input type="text" name="OC" required></td>
    <td><strong>Nota</strong></td>
    <td><textarea name="NOTA" rows="2"></textarea></td>
</tr>
<tr>
    <td><strong>Costo total contrato *</strong></td>
    <td><input type="number" name="COSTO_TOTAL_CONTRATO" required min="0"></td>
</tr>
</table>
<div style="text-align:right;margin-top:10px;">
    <button type="button" class="btn" id="btnAbrirHerramienta">Agregar Herramienta</button>
</div>
</div>

<!-- Bloque agregar herramienta (oculto al inicio) -->
<div class="card hidden" id="bloqueHerramienta">
<h3>Agregar Herramienta</h3>
<table>
<tr>
    <td><strong>Nombre *</strong></td>
    <td>
        <input type="text" id="inpNombre" list="listaNombres">
        <datalist id="listaNombres">
            <?php 
            $nombres = array_unique(array_column($productos,'NOMBRE'));
            foreach($nombres as $nombre): ?>
                <?php 
                $producto = array_filter($productos, fn($p)=>$p['NOMBRE']==$nombre);
                $first = reset($producto);
                ?>
                <option value="<?= htmlspecialchars($nombre) ?>" data-tipo="<?= $first['ID_TIPO'] ?>"></option>
            <?php endforeach; ?>
        </datalist>
    </td>
    <td><strong>Descripción *</strong></td>
    <td>
        <select id="selDescripcion"></select>
    </td>
</tr>
<tr>
    <td><strong>Tipo</strong></td>
    <td>
        <input type="text" id="inpTipo" readonly>
        <input type="hidden" name="ID_TIPO[]" id="hiddenTipo">
    </td>
</tr>
<tr>
    <td colspan="4" style="text-align:right;">
        <button type="button" class="btn" id="btnAgregar">Agregar al detalle</button>
    </td>
</tr>
</table>

<br>
<h4>Detalle de herramientas agregadas</h4>
<table>
<thead>
<tr>
<th>CLAVE | NOMBRE | DESCRIPCIÓN</th>
<th>FECHA ENTREGA *</th>
<th>COSTO DÍA *</th>
<th>ACCIONES</th>
</tr>
</thead>
<tbody id="detalleBody"></tbody>
</table>
</div>

<div style="text-align:center;margin-top:12px;">
<button type="submit" class="btn">Guardar Arriendo</button>
<button type="button" class="btn-red" onclick="location.href='st_menuppl.php'">Volver</button>
</div>

</form>
</div>

<script>
const productos = <?= $jsonProductos ?>;
const btnAbrirHerramienta = document.getElementById("btnAbrirHerramienta");
const bloqueHerramienta = document.getElementById("bloqueHerramienta");
const inpNombre = document.getElementById("inpNombre");
const inpTipo = document.getElementById("inpTipo");
const hiddenTipo = document.getElementById("hiddenTipo");
const selDescripcion = document.getElementById("selDescripcion");
const selProveedor = document.getElementById("selProveedor");
const detalleBody = document.getElementById("detalleBody");

// Mostrar bloque agregar herramienta
btnAbrirHerramienta.addEventListener("click", ()=> {
    if(!document.getElementById("selProveedor").value || !document.getElementById("selSolicita").value){
        alert("Complete los datos de cabecera primero");
        return;
    }
    bloqueHerramienta.classList.remove("hidden");
});

// Al seleccionar nombre → mostrar descripciones distintas
inpNombre.addEventListener("change", ()=> {
    const nombre = inpNombre.value.trim();
    const productosFiltrados = productos.filter(p=>p.NOMBRE===nombre);
    selDescripcion.innerHTML = '';
    const descripciones = [...new Set(productosFiltrados.map(p=>p.DESCRIPCION))];
    descripciones.forEach(d=>{
        const opt = document.createElement("option");
        opt.value=d; opt.textContent=d;
        selDescripcion.appendChild(opt);
    });
    if(productosFiltrados.length>0){
        inpTipo.value = productosFiltrados[0].ID_TIPO;
        hiddenTipo.value = productosFiltrados[0].ID_TIPO;
    } else {
        inpTipo.value = ''; hiddenTipo.value='';
    }
});

// Agregar herramienta al detalle
document.getElementById("btnAgregar").addEventListener("click", ()=> {
    const nombre = inpNombre.value.trim();
    const descripcion = selDescripcion.value;
    const tipo = hiddenTipo.value;
    const proveedor = selProveedor.value;

    if(!nombre || !descripcion || !tipo){
        alert("Complete todos los campos requeridos");
        return;
    }

    const fechaHoy = new Date().toISOString().split("T")[0];

    const tr = document.createElement("tr");
    tr.dataset.nombre = nombre;
    tr.dataset.descripcion = descripcion;
    tr.dataset.tipo = tipo;
    tr.dataset.proveedor = proveedor;

    tr.innerHTML = `
        <td>${nombre} | ${descripcion}</td>
        <td><input type="date" name="FECHA_ENTREGA[]" required min="${fechaHoy}"></td>
        <td><input type="number" name="COSTO_DIA[]" required min="0"></td>
        <td><button type="button" class="btn-red btnEliminar">Eliminar</button></td>
        <input type="hidden" name="CLAVE_MAESTRO[]">
        <input type="hidden" name="NOMBRE_MAESTRO[]" value="${nombre}">
        <input type="hidden" name="DESCRIPCION_MAESTRO[]" value="${descripcion}">
        <input type="hidden" name="ID_TIPO_MAESTRO[]" value="${tipo}">
        <input type="hidden" name="PROVEEDOR_MAESTRO[]" value="${proveedor}">
    `;

    detalleBody.appendChild(tr);
    recalcularClaves();

    inpNombre.value=''; selDescripcion.innerHTML=''; inpTipo.value=''; hiddenTipo.value='';
});

// Recalcular claves
function recalcularClaves() {
    const proveedor = selProveedor.value;
    const rutPrefix = proveedor.substring(0,2);
    detalleBody.querySelectorAll('tr').forEach((tr,index)=>{
        const clave = "ARR"+rutPrefix+String(index+1).padStart(4,"0");
        tr.querySelector('input[name="CLAVE_MAESTRO[]"]').value = clave;
        tr.cells[0].textContent = `${clave} | ${tr.dataset.nombre} | ${tr.dataset.descripcion}`;
    });
}

// Eliminar fila
detalleBody.addEventListener("click", e=>{
    if(e.target.classList.contains('btnEliminar')){
        e.target.closest('tr').remove();
        recalcularClaves();
    }
});

// Validación final
document.getElementById("formArriendo").addEventListener("submit", function(e){
    if(detalleBody.children.length===0){
        e.preventDefault();
        alert("Debe agregar al menos una herramienta");
    }
});
</script>
</body>
</html>
