<?php
include_once 'includes/header.php';
include_once 'config/database.php';

$database = new Database();
$conn = $database->getConnection();

// Delete logic
if (isset($_GET['delete'])) {
    $id = $_GET['delete'];
    try {
        $stmt = $conn->prepare("DELETE FROM tdetofertas WHERE coddetofertas = ?");
        $stmt->execute([$id]);
        $_SESSION['success'] = "🎯 Asignación eliminada correctamente";
    } catch(PDOException $e) {
        $_SESSION['error'] = "❌ Error al eliminar la asignación: " . $e->getMessage();
    }
    header("Location: asignar_ofertas.php");
    exit();
}

// Insert/Update logic
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $codofertas = $_POST['codofertas'];
    $codempleado = $_SESSION['user']['codempleado'];
    $empresas_seleccionadas = isset($_POST['empresas']) ? $_POST['empresas'] : [];

    try {
        if (empty($codofertas)) {
            throw new Exception("Debe seleccionar una oferta");
        }

        if (empty($empresas_seleccionadas)) {
            throw new Exception("Debe seleccionar al menos una empresa");
        }

        // Primero, eliminar asignaciones existentes para esta oferta
        $stmt_delete = $conn->prepare("DELETE FROM tdetofertas WHERE codofertas = ?");
        $stmt_delete->execute([$codofertas]);

        // Insertar nuevas asignaciones
        $stmt_insert = $conn->prepare("INSERT INTO tdetofertas (codempresa, codofertas, codempleado) VALUES (?, ?, ?)");
        
        foreach ($empresas_seleccionadas as $codempresa) {
            $stmt_insert->execute([$codempresa, $codofertas, $codempleado]);
        }

        $_SESSION['success'] = "🎉 Asignaciones guardadas correctamente para " . count($empresas_seleccionadas) . " empresa(s)";
    } catch(Exception $e) {
        $_SESSION['error'] = "❌ Error al guardar las asignaciones: " . $e->getMessage();
    }
    header("Location: asignar_ofertas.php");
    exit();
}

// Get existing assignments for selected offer
$existing_assignments = [];
$selected_offer = isset($_GET['oferta']) ? (int)$_GET['oferta'] : null;

if ($selected_offer) {
    try {
        $stmt = $conn->prepare("SELECT codempresa FROM tdetofertas WHERE codofertas = ?");
        $stmt->execute([$selected_offer]);
        $existing_assignments = $stmt->fetchAll(PDO::FETCH_COLUMN);
    } catch(PDOException $e) {
        $_SESSION['error'] = "❌ Error al obtener asignaciones existentes: " . $e->getMessage();
    }
}

// Fetch all records with search
try {
    $search = isset($_GET['search']) ? trim($_GET['search']) : '';
    
    $query = "SELECT do.*, o.denominacion as oferta_denominacion, o.fechainicio, o.fechafin, o.estado as oferta_estado,
                     e.nomempresa as empresa_nombre, emp.nombres as empleado_nombre, emp.apellidoPaterno as empleado_apellido
              FROM tdetofertas do
              LEFT JOIN tofertas o ON do.codofertas = o.codofertas
              LEFT JOIN tempresa e ON do.codempresa = e.codempresa
              LEFT JOIN templeado emp ON do.codempleado = emp.codempleado
              WHERE 1=1";
    
    $params = [];
    if ($search) {
        $query .= " AND (
            o.denominacion LIKE ? OR e.nomempresa LIKE ?
        )";
        $searchTerm = "%{$search}%";
        $params = [$searchTerm, $searchTerm];
    }
    
    $query .= " ORDER BY do.coddetofertas DESC";
    
    $stmt = $conn->prepare($query);
    $stmt->execute($params);
    $asignaciones = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    $_SESSION['error'] = "❌ Error al obtener los datos: " . $e->getMessage();
    $asignaciones = [];
}

// Fetch ofertas vigentes (dentro de fecha y activas)
try {
    $query_ofertas = "SELECT * FROM tofertas 
                      WHERE estado = 'ACTIVO' 
                      AND fechainicio <= CURDATE() 
                      AND fechafin >= CURDATE()
                      ORDER BY denominacion";
    $stmt_ofertas = $conn->prepare($query_ofertas);
    $stmt_ofertas->execute();
    $ofertas_vigentes = $stmt_ofertas->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    $ofertas_vigentes = [];
}

// Fetch empresas
try {
    $query_empresas = "SELECT * FROM tempresa ORDER BY nomempresa";
    $stmt_empresas = $conn->prepare($query_empresas);
    $stmt_empresas->execute();
    $empresas = $stmt_empresas->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    $empresas = [];
}
?>

<style>
.asignacion-card {
    border: none;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    border-radius: 15px;
    overflow: hidden;
}

.oferta-vigente {
    background: linear-gradient(135deg, #28a745, #20c997);
    color: white;
    padding: 15px;
    border-radius: 10px;
    margin-bottom: 15px;
}

.empresa-checkbox {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 10px;
    padding: 15px;
    margin-bottom: 10px;
    transition: all 0.3s ease;
}

.empresa-checkbox:hover {
    background: #e9ecef;
    border-color: #667eea;
}

.empresa-checkbox input[type="checkbox"] {
    transform: scale(1.2);
    margin-right: 10px;
}

.estado-badge {
    font-size: 0.8rem;
    padding: 6px 12px;
    border-radius: 20px;
}

.estado-activo {
    background-color: #28a745;
    color: white;
}

.estado-inactivo {
    background-color: #dc3545;
    color: white;
}

.fecha-vigente {
    background-color: #d4edda;
    color: #155724;
    padding: 5px 10px;
    border-radius: 15px;
    font-size: 0.8rem;
}

.fecha-vencida {
    background-color: #f8d7da;
    color: #721c24;
    padding: 5px 10px;
    border-radius: 15px;
    font-size: 0.8rem;
}
</style>

<div class="col-md-10 p-4">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <h2 style="background: linear-gradient(135deg, #667eea, #764ba2); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; font-weight: bold;">
            <i class="fas fa-link" style="color: #667eea;"></i> Asignar Ofertas a Empresas
        </h2>
        <?php if (!isset($_GET['edit']) && !isset($_GET['create'])): ?>
            <a href="?create" class="btn btn-primary" style="background: linear-gradient(135deg, #667eea, #764ba2); border: none; box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);">
                <i class="fas fa-plus"></i> Nueva Asignación
            </a>
        <?php endif; ?>
    </div>

    <?php if (isset($_SESSION['success'])): ?>
        <div class="alert alert-success alert-custom">
            <i class="fas fa-check-circle"></i>
            <?php 
            echo $_SESSION['success']; 
            unset($_SESSION['success']);
            ?>
        </div>
    <?php endif; ?>

    <?php if (isset($_SESSION['warning'])): ?>
        <div class="alert alert-warning alert-custom">
            <i class="fas fa-exclamation-triangle"></i>
            <?php 
            echo $_SESSION['warning']; 
            unset($_SESSION['warning']);
            ?>
        </div>
    <?php endif; ?>

    <?php if (isset($_SESSION['error'])): ?>
        <div class="alert alert-danger alert-custom">
            <i class="fas fa-exclamation-triangle"></i>
            <?php 
            echo $_SESSION['error']; 
            unset($_SESSION['error']);
            ?>
        </div>
    <?php endif; ?>

    <!-- Form for selecting offer and assigning companies -->
    <div class="card mb-4" style="border: none; box-shadow: 0 4px 6px rgba(0,0,0,0.1);">
        <div class="card-body">
            <form method="GET" action="asignar_ofertas.php">
                <div class="row">
                    <div class="col-md-6">
                        <label class="form-label">
                            <i class="fas fa-gift"></i> Seleccionar Oferta
                        </label>
                        <select name="oferta" class="form-control" onchange="this.form.submit()">
                            <option value="">Seleccione una Oferta</option>
                            <?php foreach ($ofertas_vigentes as $oferta): ?>
                                <option value="<?php echo $oferta['codofertas']; ?>" 
                                    <?php echo ($selected_offer == $oferta['codofertas']) ? 'selected' : ''; ?>>
                                    <?php echo htmlspecialchars($oferta['denominacion']); ?>
                                    (<?php echo date('d/m/Y', strtotime($oferta['fechainicio'])); ?> - <?php echo date('d/m/Y', strtotime($oferta['fechafin'])); ?>)
                                </option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                </div>
            </form>
        </div>
    </div>

    <?php if ($selected_offer): ?>
    <form method="POST" action="asignar_ofertas.php">
        <input type="hidden" name="codofertas" value="<?php echo $selected_offer; ?>">
        
        <div class="card asignacion-card">
            <div class="card-body">
                <h5 class="card-title" style="background: linear-gradient(135deg, #667eea, #764ba2); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; font-weight: bold;">
                    <i class="fas fa-building"></i> Empresas Disponibles
                </h5>
                <div class="row">
                    <?php foreach ($empresas as $empresa): ?>
                        <div class="col-md-4 mb-2">
                            <div class="empresa-checkbox">
                                <div class="form-check">
                                    <input class="form-check-input" type="checkbox" 
                                        name="empresas[]" 
                                        value="<?php echo $empresa['codempresa']; ?>"
                                        id="empresa_<?php echo $empresa['codempresa']; ?>"
                                        <?php echo in_array($empresa['codempresa'], $existing_assignments) ? 'checked' : ''; ?>>
                                    <label class="form-check-label" for="empresa_<?php echo $empresa['codempresa']; ?>">
                                        <strong><?php echo htmlspecialchars($empresa['nomempresa']); ?></strong>
                                        <?php if ($empresa['direccion']): ?>
                                            <br><small class="text-muted">
                                                <i class="fas fa-map-marker-alt"></i> <?php echo htmlspecialchars($empresa['direccion']); ?>
                                            </small>
                                        <?php endif; ?>
                                    </label>
                                </div>
                            </div>
                        </div>
                    <?php endforeach; ?>
                </div>
                
                <div class="mt-3">
                    <button type="submit" class="btn btn-primary" style="background: linear-gradient(135deg, #667eea, #764ba2); border: none; box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);">
                        <i class="fas fa-save"></i> Guardar Asignaciones
                    </button>
                </div>
            </div>
        </div>
    </form>
    <?php endif; ?>
    <!-- Ofertas Vigentes -->
    <div class="card mb-4" style="border: none; box-shadow: 0 4px 6px rgba(0,0,0,0.1);">
        <div class="card-header" style="background: linear-gradient(135deg, #28a745, #20c997); color: white;">
            <h5 class="mb-0"><i class="fas fa-gift"></i> Ofertas Vigentes</h5>
        </div>
        <div class="card-body">
            <?php if (!empty($ofertas_vigentes)): ?>
                <div class="row">
                    <?php foreach ($ofertas_vigentes as $oferta): ?>
                        <div class="col-md-6 mb-3">
                            <div class="oferta-vigente">
                                <h6 class="mb-2">
                                    <i class="fas fa-tag"></i> <?php echo htmlspecialchars($oferta['denominacion']); ?>
                                </h6>
                                <div class="d-flex justify-content-between align-items-center">
                                    <small>
                                        <i class="fas fa-calendar-alt"></i> 
                                        <?php echo date('d/m/Y', strtotime($oferta['fechainicio'])); ?> - 
                                        <?php echo date('d/m/Y', strtotime($oferta['fechafin'])); ?>
                                    </small>
                                    <span class="estado-badge estado-activo">ACTIVO</span>
                                </div>
                            </div>
                        </div>
                    <?php endforeach; ?>
                </div>
            <?php else: ?>
                <div class="text-center py-4">
                    <i class="fas fa-gift fa-3x text-muted mb-3"></i>
                    <p class="text-muted">No hay ofertas vigentes en este momento</p>
                </div>
            <?php endif; ?>
        </div>
    </div>

    <!-- Search form -->
    <div class="card mb-4" style="background: linear-gradient(135deg, #f8f9fa, #e9ecef); border: none; box-shadow: 0 4px 6px rgba(0,0,0,0.1);">
        <div class="card-body">
            <form method="GET" action="asignar_ofertas.php" class="row g-3">
                <div class="col-md-8">
                    <input type="text" class="form-control" name="search" 
                           placeholder="Buscar por oferta o empresa..."
                           value="<?php echo isset($_GET['search']) ? htmlspecialchars($_GET['search']) : ''; ?>"
                           style="border: 2px solid #e9ecef; border-radius: 10px; transition: all 0.3s ease;">
                </div>
                <div class="col-md-4">
                    <button type="submit" class="btn btn-primary" style="background: linear-gradient(135deg, #667eea, #764ba2); border: none; box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);">
                        <i class="fas fa-search"></i> Buscar
                    </button>
                    <?php if (isset($_GET['search'])): ?>
                        <a href="asignar_ofertas.php" class="btn btn-secondary">
                            <i class="fas fa-times"></i> Limpiar
                        </a>
                    <?php endif; ?>
                </div>
            </form>
        </div>
    </div>

    <!-- List of assignments -->
    <div class="card" style="border: none; box-shadow: 0 4px 6px rgba(0,0,0,0.1);">
        <div class="card-body" style="background: linear-gradient(135deg, #f8f9fa, #ffffff);">
            <div class="table-responsive">
                <table class="table table-striped" style="border-radius: 10px; overflow: hidden;">
                    <thead style="background: linear-gradient(135deg, #667eea, #764ba2); color: white;">
                        <tr>
                            <th style="border: none; padding: 15px;"><i class="fas fa-hashtag"></i> ID</th>
                            <th style="border: none; padding: 15px;"><i class="fas fa-gift"></i> Oferta</th>
                            <th style="border: none; padding: 15px;"><i class="fas fa-building"></i> Empresa</th>
                            <th style="border: none; padding: 15px;"><i class="fas fa-calendar-alt"></i> Fechas</th>
                            <th style="border: none; padding: 15px;"><i class="fas fa-toggle-on"></i> Estado</th>
                            <th style="border: none; padding: 15px;"><i class="fas fa-user"></i> Asignado por</th>
                            <th style="border: none; padding: 15px;"><i class="fas fa-cogs"></i> Acciones</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($asignaciones as $asignacion): ?>
                            <tr>
                                <td>
                                    <span class="badge bg-primary rounded-pill"><?php echo $asignacion['coddetofertas']; ?></span>
                                </td>
                                <td>
                                    <strong><?php echo htmlspecialchars($asignacion['oferta_denominacion']); ?></strong>
                                </td>
                                <td>
                                    <strong><?php echo htmlspecialchars($asignacion['empresa_nombre']); ?></strong>
                                </td>
                                <td>
                                    <?php if ($asignacion['fechainicio'] && $asignacion['fechafin']): ?>
                                        <div class="d-flex flex-column">
                                            <small class="text-info">
                                                <i class="fas fa-play"></i> <?php echo date('d/m/Y', strtotime($asignacion['fechainicio'])); ?>
                                            </small>
                                            <small class="text-warning">
                                                <i class="fas fa-stop"></i> <?php echo date('d/m/Y', strtotime($asignacion['fechafin'])); ?>
                                            </small>
                                        </div>
                                    <?php else: ?>
                                        <span class="text-muted">-</span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php if ($asignacion['oferta_estado']): ?>
                                        <span class="estado-badge <?php echo strtolower($asignacion['oferta_estado']) == 'activo' ? 'estado-activo' : 'estado-inactivo'; ?>">
                                            <?php echo htmlspecialchars($asignacion['oferta_estado']); ?>
                                        </span>
                                        <br>
                                        <?php 
                                        $fechaActual = date('Y-m-d');
                                        $fechaFin = $asignacion['fechafin'];
                                        if ($fechaFin && $fechaActual <= $fechaFin): ?>
                                            <span class="fecha-vigente">Vigente</span>
                                        <?php else: ?>
                                            <span class="fecha-vencida">Vencida</span>
                                        <?php endif; ?>
                                    <?php else: ?>
                                        <span class="text-muted">-</span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php if ($asignacion['empleado_nombre']): ?>
                                        <i class="fas fa-user text-warning"></i>
                                        <?php echo htmlspecialchars($asignacion['empleado_nombre'] . ' ' . $asignacion['empleado_apellido']); ?>
                                    <?php else: ?>
                                        <span class="text-muted">-</span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <div class="btn-group" role="group">
                                        <a href="?delete=<?php echo $asignacion['coddetofertas']; ?>" 
                                           class="btn btn-sm btn-danger"
                                           onclick="return confirm('¿Está seguro de eliminar la asignación de la oferta \'<?php echo htmlspecialchars($asignacion['oferta_denominacion']); ?>\' a la empresa \'<?php echo htmlspecialchars($asignacion['empresa_nombre']); ?>\'?')"
                                           title="Eliminar">
                                            <i class="fas fa-trash"></i>
                                        </a>
                                    </div>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Form validation
    const form = document.querySelector('form[method="POST"]');
    if (form) {
        form.addEventListener('submit', function(e) {
            const empresas = form.querySelectorAll('input[name="empresas[]"]:checked');
            const codofertas = form.querySelector('input[name="codofertas"]').value;
            
            if (!codofertas) {
                e.preventDefault();
                alert('Debe seleccionar una oferta');
                return false;
            }
            
            if (empresas.length === 0) {
                e.preventDefault();
                alert('Debe seleccionar al menos una empresa');
                return false;
            }
        });
    }
});
</script>

<?php
include_once 'includes/footer.php';
?>
