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

// Verificar si la extensión GD está disponible para compresión de imágenes
$gdAvailable = extension_loaded('gd');
if (!$gdAvailable) {
    // Mostrar advertencia solo una vez por sesión
    if (!isset($_SESSION['gd_warning_shown'])) {
//        $_SESSION['warning'] = "⚠️ La extensión GD de PHP no está habilitada. Las imágenes se subirán sin compresión.";
        $_SESSION['gd_warning_shown'] = true;
    }
}

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

// Delete logic
if (isset($_GET['delete'])) {
    $id = $_GET['delete'];
    try {
        // Obtener información del logo antes de eliminar
        $stmt = $conn->prepare("SELECT logo FROM tempresa WHERE codempresa = ?");
        $stmt->execute([$id]);
        $empresa = $stmt->fetch(PDO::FETCH_ASSOC);
        
        // Eliminar el archivo de logo si existe
        if ($empresa && $empresa['logo'] && file_exists($empresa['logo'])) {
            unlink($empresa['logo']);
        }
        
        $stmt = $conn->prepare("DELETE FROM tempresa WHERE codempresa = ?");
        $stmt->execute([$id]);
        $_SESSION['success'] = "🏢 Empresa eliminada correctamente";
    } catch(PDOException $e) {
        $_SESSION['error'] = "❌ Error al eliminar la empresa: " . $e->getMessage();
    }
    header("Location: empresas.php");
    exit();
}

// Insert/Update logic
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $nomempresa = trim($_POST['nomempresa']);
    $direccion = trim($_POST['direccion']);
    $email = trim($_POST['email']);
    $telefono = trim($_POST['telefono']);
    $fcreacion = $_POST['fcreacion'];
    $observaciones = trim($_POST['observaciones']);
    $iniciocobro = trim($_POST['iniciocobro']);
    $diasultimo = trim($_POST['diasultimo']);
    $codempleado = $_SESSION['user']['codempleado'];

    // Handle logo upload
    $logo = '';
    if (isset($_FILES['logo']) && $_FILES['logo']['error'] == 0) {
        $allowed_types = ['image/jpeg', 'image/jpg', 'image/png'];
        $file_type = $_FILES['logo']['type'];
        
        if (!in_array($file_type, $allowed_types)) {
            $_SESSION['error'] = "❌ Solo se permiten archivos JPG/JPEG/PNG";
            header("Location: empresas.php");
            exit();
        }
        
        $target_dir = "logo/";
        if (!is_dir($target_dir)) {
            mkdir($target_dir, 0755, true);
        }
        
        $file_extension = pathinfo($_FILES['logo']['name'], PATHINFO_EXTENSION);
        $logo = $target_dir . time() . '_' . uniqid() . '.' . $file_extension;
        
        if (move_uploaded_file($_FILES['logo']['tmp_name'], $logo)) {
            // La imagen se subió correctamente (sin compresión por falta de GD)
            $_SESSION['success'] = "🎉 Logo subido correctamente";
        } else {
            $_SESSION['error'] = "❌ Error al subir el archivo de logo";
            header("Location: empresas.php");
            exit();
        }
    }

    if (isset($_POST['id'])) {
        // Update
        try {
            if (empty($nomempresa)) {
                throw new Exception("El nombre de la empresa es obligatorio");
            }

            $sql = "UPDATE tempresa SET 
                    nomempresa = ?, direccion = ?, email = ?, telefono = ?,
                    fcreacion = ?, observaciones = ?, iniciocobro = ?, diasultimo = ?";
            
            $params = [$nomempresa, $direccion, $email, $telefono,
                      $fcreacion, $observaciones, $iniciocobro, $diasultimo];

            // Add logo to update if provided
            if ($logo) {
                // Obtener el logo anterior para eliminarlo
                $stmt = $conn->prepare("SELECT logo FROM tempresa WHERE codempresa = ?");
                $stmt->execute([$_POST['id']]);
                $old_logo = $stmt->fetchColumn();
                
                if ($old_logo && file_exists($old_logo)) {
                    unlink($old_logo);
                }
                
                $sql .= ", logo = ?";
                $params[] = $logo;
            }

            $sql .= " WHERE codempresa = ?";
            $params[] = $_POST['id'];

            $stmt = $conn->prepare($sql);
            $stmt->execute($params);
            $_SESSION['success'] = "✅ Empresa actualizada correctamente";
        } catch(Exception $e) {
            $_SESSION['error'] = "❌ Error al actualizar la empresa: " . $e->getMessage();
        }
    } else {
        // Insert
        try {
            if (empty($nomempresa)) {
                throw new Exception("El nombre de la empresa es obligatorio");
            }

            $stmt = $conn->prepare("INSERT INTO tempresa (nomempresa, direccion, email, telefono,
                                   fcreacion, observaciones, iniciocobro, diasultimo, codempleado, logo) 
                                   VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
            $stmt->execute([$nomempresa, $direccion, $email, $telefono,
                          $fcreacion, $observaciones, $iniciocobro, $diasultimo, $codempleado, $logo]);
            $_SESSION['success'] = "🎉 Empresa creada correctamente";
        } catch(Exception $e) {
            $_SESSION['error'] = "❌ Error al crear la empresa: " . $e->getMessage();
        }
    }
    header("Location: empresas.php");
    exit();
}

// Edit logic - fetch single record
$editData = null;
if (isset($_GET['edit'])) {
    try {
        $stmt = $conn->prepare("SELECT * FROM tempresa WHERE codempresa = ?");
        $stmt->execute([$_GET['edit']]);
        $editData = $stmt->fetch(PDO::FETCH_ASSOC);
    } catch(PDOException $e) {
        $_SESSION['error'] = "❌ Error al obtener la empresa: " . $e->getMessage();
    }
}

// Fetch all records with search
try {
    $search = isset($_GET['search']) ? trim($_GET['search']) : '';
    
    $query = "SELECT e.*, emp.nombres as empleado_nombre, emp.apellidoPaterno as empleado_apellido
              FROM tempresa e
              LEFT JOIN templeado emp ON e.codempleado = emp.codempleado
              WHERE 1=1";
    
    $params = [];
    if ($search) {
        $query .= " AND (
            e.nomempresa LIKE ? OR e.email LIKE ? OR e.telefono LIKE ?
            OR e.iniciocobro LIKE ? OR e.diasultimo LIKE ?
        )";
        $searchTerm = "%{$search}%";
        $params = [$searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm];
    }
    
    $query .= " ORDER BY e.nomempresa";
    
    $stmt = $conn->prepare($query);
    $stmt->execute($params);
    $empresas = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    $_SESSION['error'] = "❌ Error al obtener los datos: " . $e->getMessage();
    $empresas = [];
}

// Función para validar imagen (sin compresión)
function validateImage($source) {
    $allowedTypes = ['image/jpeg', 'image/jpg', 'image/png'];
    $info = getimagesize($source);
    
    if ($info && in_array($info['mime'], $allowedTypes)) {
        return true;
    }
    
    return false;
}
?>

<style>
.logo-preview {
    max-width: 200px;
    max-height: 200px;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    margin-top: 10px;
}

.logo-upload-area {
    border: 2px dashed #667eea;
    border-radius: 10px;
    padding: 20px;
    text-align: center;
    background: #f8f9ff;
    transition: all 0.3s ease;
}

.logo-upload-area:hover {
    border-color: #4facfe;
    background: #e8f4fd;
}

.logo-upload-area input[type="file"] {
    display: none;
}

.logo-upload-label {
    cursor: pointer;
    color: #667eea;
    font-weight: 600;
}

.logo-upload-label:hover {
    color: #4facfe;
}
</style>

<div class="col-md-10 p-4">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <h2>Gestión de Empresas</h2>
        <?php if (!isset($_GET['edit']) && !isset($_GET['create'])): ?>
            <a href="?create" class="btn btn-primary">
                <i class="fas fa-plus"></i> Nueva Empresa
            </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; ?>

    <?php if (isset($_GET['create']) || isset($_GET['edit'])): ?>
        <!-- Form for create/edit -->
        <div class="card mb-4">
            <div class="card-body">
                <h5 class="card-title"><?php echo isset($_GET['edit']) ? 'Editar' : 'Crear' ?> Empresa</h5>
                <form method="POST" action="empresas.php" enctype="multipart/form-data">
                    <?php if (isset($_GET['edit'])): ?>
                        <input type="hidden" name="id" value="<?php echo $editData['codempresa']; ?>">
                    <?php endif; ?>
                    
                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label class="form-label">
                                <i class="fas fa-building"></i> Nombre de la Empresa *
                            </label>
                            <input type="text" class="form-control" name="nomempresa" maxlength="200"
                                   value="<?php echo $editData ? htmlspecialchars($editData['nomempresa']) : ''; ?>" required>
                        </div>
                        
                        <div class="col-md-6 mb-3">
                            <label class="form-label">
                                <i class="fas fa-envelope"></i> Email
                            </label>
                            <input type="email" class="form-control" name="email" maxlength="50"
                                   value="<?php echo $editData ? htmlspecialchars($editData['email']) : ''; ?>">
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label class="form-label">
                                <i class="fas fa-phone"></i> Teléfono
                            </label>
                            <input type="text" class="form-control" name="telefono" maxlength="50"
                                   value="<?php echo $editData ? htmlspecialchars($editData['telefono']) : ''; ?>">
                        </div>

                        <div class="col-md-6 mb-3">
                            <label class="form-label">
                                <i class="fas fa-calendar"></i> Fecha de Creación
                            </label>
                            <input type="date" class="form-control" name="fcreacion"
                                   value="<?php echo $editData ? date('Y-m-d', strtotime($editData['fcreacion'])) : date('Y-m-d'); ?>">
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label class="form-label">
                                <i class="fas fa-play-circle"></i> Inicio Cobro (Colocar la cantidad de Días antes, para iniciar el cobro)
                            </label>
                            <input type="integer" class="form-control" name="iniciocobro" maxlength="2"
                                   placeholder="Ej: 10"
                                   value="<?php echo $editData ? htmlspecialchars($editData['iniciocobro']) : ''; ?>">
                        </div>
                        
                        <div class="col-md-6 mb-3">
                            <label class="form-label">
                                <i class="fas fa-calendar-times"></i> Días Último (Colocar la cantidad de Días antes, para finalizar el cobro)
                            </label>
                            <input type="integer" class="form-control" name="diasultimo" maxlength="2"
                                   placeholder="Ej: 05"
                                   value="<?php echo $editData ? htmlspecialchars($editData['diasultimo']) : ''; ?>">
                        </div>
                    </div>

                    <div class="mb-3">
                        <label class="form-label">
                            <i class="fas fa-map-marker-alt"></i> Dirección
                        </label>
                        <textarea class="form-control" name="direccion" rows="3" maxlength="200"
                                  placeholder="Ingrese la dirección completa de la empresa"><?php echo $editData ? htmlspecialchars($editData['direccion']) : ''; ?></textarea>
                    </div>

                    <div class="mb-3">
                        <label class="form-label">
                            <i class="fas fa-sticky-note"></i> Observaciones
                        </label>
                        <textarea class="form-control" name="observaciones" rows="3" maxlength="200"
                                  placeholder="Observaciones adicionales sobre la empresa"><?php echo $editData ? htmlspecialchars($editData['observaciones']) : ''; ?></textarea>
                    </div>

                    <div class="mb-3">
                        <label class="form-label">
                            <i class="fas fa-image"></i> Logo de la Empresa
                        </label>
                        <div class="logo-upload-area">
                            <label for="logo" class="logo-upload-label">
                                <i class="fas fa-cloud-upload-alt fa-2x mb-2"></i><br>
                                <span>Haga clic para seleccionar un archivo de imagen</span><br>
                                <small class="text-muted">Solo se permiten archivos JPG/JPEG/PNG</small>
                            </label>
                            <input type="file" id="logo" name="logo" accept=".jpg,.jpeg,.png" onchange="previewLogo(this)">
                        </div>
                        <?php if ($editData && $editData['logo']): ?>
                            <div class="mt-3">
                                <label class="form-label">Logo Actual:</label>
                                <img src="<?php echo htmlspecialchars($editData['logo']); ?>" alt="Logo actual" class="logo-preview">
                            </div>
                        <?php endif; ?>
                        <div id="logo-preview" class="mt-3" style="display: none;">
                            <label class="form-label">Vista Previa:</label>
                            <img id="preview-img" class="logo-preview">
                        </div>
                    </div>

                    <div class="d-flex gap-2">
                        <button type="submit" class="btn btn-primary">
                            <i class="fas fa-save"></i> Guardar
                        </button>
                        <a href="empresas.php" class="btn btn-secondary">
                            <i class="fas fa-times"></i> Cancelar
                        </a>
                    </div>
                </form>
            </div>
        </div>
    <?php else: ?>
        <!-- Search form -->
        <div class="card mb-4">
            <div class="card-body">
                <form method="GET" action="empresas.php" class="row g-3">
                    <div class="col-md-8">
                        <input type="text" class="form-control" name="search" 
                               placeholder="Buscar por nombre, email, teléfono, inicio cobro o días último..."
                               value="<?php echo isset($_GET['search']) ? htmlspecialchars($_GET['search']) : ''; ?>">
                    </div>
                    <div class="col-md-4">
                        <button type="submit" class="btn btn-primary">
                            <i class="fas fa-search"></i> Buscar
                        </button>
                        <?php if (isset($_GET['search'])): ?>
                            <a href="empresas.php" class="btn btn-secondary">
                                <i class="fas fa-times"></i> Limpiar
                            </a>
                        <?php endif; ?>
                    </div>
                </form>
            </div>
        </div>

        <!-- List of records -->
        <div class="card">
            <div class="card-body">
                <div class="table-responsive">
                    <table class="table table-striped">
                    <thead>
                        <tr>
                            <th><i class="fas fa-hashtag"></i> ID</th>
                            <th><i class="fas fa-image"></i> Logo</th>
                            <th><i class="fas fa-building"></i> Empresa</th>
                            <th><i class="fas fa-envelope"></i> Email</th>
                            <th><i class="fas fa-phone"></i> Teléfono</th>
                            <th><i class="fas fa-map-marker-alt"></i> Dirección</th>
                            <th><i class="fas fa-calendar"></i> Fecha Creación</th>
                            <th><i class="fas fa-play-circle"></i> Inicio Cobro</th>
                            <th><i class="fas fa-calendar-times"></i> Días Último</th>
                            <th><i class="fas fa-user"></i> Creado por</th>
                            <th><i class="fas fa-cogs"></i> Acciones</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($empresas as $empresa): ?>
                            <tr>
                                <td>
                                    <span class="badge bg-primary rounded-pill"><?php echo $empresa['codempresa']; ?></span>
                                </td>
                                <td>
                                    <?php if ($empresa['logo']): ?>
                                        <img src="<?php echo htmlspecialchars($empresa['logo']); ?>" 
                                             alt="Logo <?php echo htmlspecialchars($empresa['nomempresa']); ?>" 
                                             style="width: 50px; height: 50px; object-fit: cover; border-radius: 5px;">
                                    <?php else: ?>
                                        <div style="width: 50px; height: 50px; background-color: #f8f9fa; display: flex; align-items: center; justify-content: center; border-radius: 5px;">
                                            <i class="fas fa-building" style="color: #6c757d;"></i>
                                        </div>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <strong><?php echo htmlspecialchars($empresa['nomempresa']); ?></strong>
                                    <?php if ($empresa['observaciones']): ?>
                                        <br><small class="text-muted"><?php echo htmlspecialchars(substr($empresa['observaciones'], 0, 50)) . (strlen($empresa['observaciones']) > 50 ? '...' : ''); ?></small>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php if ($empresa['email']): ?>
                                        <a href="mailto:<?php echo htmlspecialchars($empresa['email']); ?>" class="text-decoration-none">
                                            <i class="fas fa-envelope text-primary"></i>
                                            <?php echo htmlspecialchars($empresa['email']); ?>
                                        </a>
                                    <?php else: ?>
                                        <span class="text-muted">-</span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php if ($empresa['telefono']): ?>
                                        <a href="tel:<?php echo htmlspecialchars($empresa['telefono']); ?>" class="text-decoration-none">
                                            <i class="fas fa-phone text-success"></i>
                                            <?php echo htmlspecialchars($empresa['telefono']); ?>
                                        </a>
                                    <?php else: ?>
                                        <span class="text-muted">-</span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php if ($empresa['direccion']): ?>
                                        <i class="fas fa-map-marker-alt text-danger"></i>
                                        <?php echo htmlspecialchars(substr($empresa['direccion'], 0, 30)) . (strlen($empresa['direccion']) > 30 ? '...' : ''); ?>
                                    <?php else: ?>
                                        <span class="text-muted">-</span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php if ($empresa['fcreacion']): ?>
                                        <i class="fas fa-calendar text-info"></i>
                                        <?php echo date('d/m/Y', strtotime($empresa['fcreacion'])); ?>
                                    <?php else: ?>
                                        <span class="text-muted">-</span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php if ($empresa['iniciocobro']): ?>
                                        <span class="badge bg-success rounded-pill"><?php echo htmlspecialchars($empresa['iniciocobro']); ?></span>
                                    <?php else: ?>
                                        <span class="text-muted">-</span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php if ($empresa['diasultimo']): ?>
                                        <span class="badge bg-warning rounded-pill"><?php echo htmlspecialchars($empresa['diasultimo']); ?></span>
                                    <?php else: ?>
                                        <span class="text-muted">-</span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <?php if ($empresa['empleado_nombre']): ?>
                                        <i class="fas fa-user text-warning"></i>
                                        <?php echo htmlspecialchars($empresa['empleado_nombre'] . ' ' . $empresa['empleado_apellido']); ?>
                                    <?php else: ?>
                                        <span class="text-muted">-</span>
                                    <?php endif; ?>
                                </td>
                                <td>
                                    <div class="btn-group" role="group">
                                        <a href="?edit=<?php echo $empresa['codempresa']; ?>" 
                                           class="btn btn-sm btn-warning" 
                                           title="Editar">
                                            <i class="fas fa-edit"></i>
                                        </a>
                                        <a href="?delete=<?php echo $empresa['codempresa']; ?>" 
                                           class="btn btn-sm btn-danger"
                                           onclick="return confirm('¿Está seguro de eliminar la empresa \'<?php echo htmlspecialchars($empresa['nomempresa']); ?>\'?')"
                                           title="Eliminar">
                                            <i class="fas fa-trash"></i>
                                        </a>
                                    </div>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        </div>
    <?php endif; ?>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Form validation
    const form = document.querySelector('form[method="POST"]');
    if (form) {
        form.addEventListener('submit', function(e) {
            const nomempresa = form.querySelector('input[name="nomempresa"]').value.trim();
            if (!nomempresa) {
                e.preventDefault();
                alert('El nombre de la empresa es obligatorio');
                return false;
            }
        });
    }

    // Auto-resize textareas
    const textareas = document.querySelectorAll('textarea');
    textareas.forEach(textarea => {
        textarea.addEventListener('input', function() {
            this.style.height = 'auto';
            this.style.height = this.scrollHeight + 'px';
        });
    });
});

// Función para previsualizar el logo
function previewLogo(input) {
    const preview = document.getElementById('logo-preview');
    const previewImg = document.getElementById('preview-img');
    
    if (input.files && input.files[0]) {
        const reader = new FileReader();
        
        reader.onload = function(e) {
            previewImg.src = e.target.result;
            preview.style.display = 'block';
        };
        
        reader.readAsDataURL(input.files[0]);
    } else {
        preview.style.display = 'none';
    }
}
</script>

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

