<?php
session_start();
include_once '../config/database.php';

header('Content-Type: application/json');

try {
    $database = new Database();
    $conn = $database->getConnection();
    
    // Obtener la empresa del usuario logueado
    $codempresaUsuario = null;
    $stmt_empresa = $conn->prepare("SELECT codempresa FROM templeado WHERE codempleado = ?");
    $stmt_empresa->execute([$_SESSION['user']['codempleado']]);
    $resultado_empresa = $stmt_empresa->fetch(PDO::FETCH_ASSOC);
    if ($resultado_empresa) {
        $codempresaUsuario = $resultado_empresa['codempresa'];
    }
    
    // Query para encontrar documentos duplicados en la empresa del usuario
    $query = "SELECT 
                nro_documento,
                COUNT(*) as total_registros,
                GROUP_CONCAT(id ORDER BY id) as ids,
                GROUP_CONCAT(nombres_ap_raz_soc ORDER BY id SEPARATOR ' | ') as nombres,
                GROUP_CONCAT(direccion ORDER BY id SEPARATOR ' | ') as direcciones,
                GROUP_CONCAT(estado ORDER BY id SEPARATOR ' | ') as estados,
                GROUP_CONCAT(fecha_creacion ORDER BY id SEPARATOR ' | ') as fechas_creacion
              FROM timportventas 
              WHERE nro_documento IS NOT NULL 
                AND nro_documento != ''";
    
    $params = [];
    if ($codempresaUsuario) {
        $query .= " AND codempresa = ?";
        $params[] = $codempresaUsuario;
    }
    
    $query .= " GROUP BY nro_documento 
                HAVING COUNT(*) > 1
                ORDER BY total_registros DESC, nro_documento";
    
    $stmt = $conn->prepare($query);
    $stmt->execute($params);
    $duplicados = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (empty($duplicados)) {
        $html = '<div class="text-center py-5">
                    <i class="fas fa-check-circle fa-3x text-success mb-3"></i>
                    <h5 class="text-success mb-2">¡Excelente!</h5>
                    <p class="text-muted">No se encontraron documentos duplicados en la base de datos.</p>
                </div>';
    } else {
        $html = '<div class="alert alert-light border mb-4">
                    <i class="fas fa-info-circle text-primary"></i>
                    <strong class="text-dark">Se encontraron ' . count($duplicados) . ' documentos duplicados</strong>
                </div>';
        
        $html .= '<div class="table-responsive">';
        $html .= '<table class="table table-hover border">';
        $html .= '<thead class="table-light">';
        $html .= '<tr>';
        $html .= '<th class="border-end"><i class="fas fa-hashtag text-muted"></i> #</th>';
        $html .= '<th class="border-end"><i class="fas fa-id-card text-muted"></i> Documento</th>';
        $html .= '<th class="border-end"><i class="fas fa-users text-muted"></i> Total Registros</th>';
        $html .= '<th class="border-end"><i class="fas fa-user text-muted"></i> Nombres</th>';
        $html .= '<th class="border-end"><i class="fas fa-map-marker-alt text-muted"></i> Direcciones</th>';
        $html .= '<th class="border-end"><i class="fas fa-flag text-muted"></i> Estados</th>';
        $html .= '<th class="border-end"><i class="fas fa-calendar text-muted"></i> Fechas Creación</th>';
        $html .= '<th><i class="fas fa-cogs text-muted"></i> Acciones</th>';
        $html .= '</tr>';
        $html .= '</thead>';
        $html .= '<tbody>';
        
        $contador = 1;
        foreach ($duplicados as $duplicado) {
            $nombres = explode(' | ', $duplicado['nombres']);
            $direcciones = explode(' | ', $duplicado['direcciones']);
            $estados = explode(' | ', $duplicado['estados']);
            $fechas = explode(' | ', $duplicado['fechas_creacion']);
            $ids = explode(',', $duplicado['ids']);
            
            // Crear badges para estados (uno debajo del otro)
            $estadosHtml = '';
            foreach ($estados as $estado) {
                $estadoClass = '';
                switch(strtoupper(trim($estado))) {
                    case 'ATENDIDAS':
                        $estadoClass = 'bg-success';
                        break;
                    case 'EN EJECUCIÓN':
                        $estadoClass = 'bg-warning';
                        break;
                    case 'PENDIENTE':
                        $estadoClass = 'bg-secondary';
                        break;
                    default:
                        $estadoClass = 'bg-light text-dark';
                }
                $estadosHtml .= '<div class="mb-1"><span class="badge ' . $estadoClass . '">' . htmlspecialchars(trim($estado)) . '</span></div>';
            }
            
            // Formatear fechas
            $fechasHtml = '';
            foreach ($fechas as $fecha) {
                if ($fecha) {
                    $fechasHtml .= '<small class="d-block">' . date('d/m/Y', strtotime($fecha)) . '</small>';
                }
            }
            
            $html .= '<tr>';
            $html .= '<td class="border-end"><span class="badge bg-light text-dark border">' . $contador . '</span></td>';
            $html .= '<td class="border-end"><strong class="text-dark">' . htmlspecialchars($duplicado['nro_documento']) . '</strong></td>';
            $html .= '<td class="border-end"><span class="badge bg-warning text-dark">' . $duplicado['total_registros'] . '</span></td>';
            $html .= '<td class="border-end">';
            foreach ($nombres as $nombre) {
                $html .= '<div class="mb-1 text-dark"><i class="fas fa-user text-muted me-1"></i>' . htmlspecialchars(trim($nombre)) . '</div>';
            }
            $html .= '</td>';
            $html .= '<td class="border-end">';
            foreach ($direcciones as $direccion) {
                $direccionTexto = trim($direccion);
                if (empty($direccionTexto)) {
                    $direccionTexto = 'Sin dirección';
                }
                $html .= '<div class="mb-1 text-dark"><i class="fas fa-map-marker-alt text-muted me-1"></i>' . htmlspecialchars($direccionTexto) . '</div>';
            }
            $html .= '</td>';
            $html .= '<td class="border-end">' . $estadosHtml . '</td>';
            $html .= '<td class="border-end">' . $fechasHtml . '</td>';
            $html .= '<td>';
            $html .= '<div class="btn-group-vertical" role="group">';
            foreach ($ids as $id) {
                $html .= '<button type="button" class="btn btn-sm btn-outline-secondary mb-1" onclick="verDetalleRegistroVenta(' . $id . ')" title="Ver detalle del registro ' . $id . '">';
                $html .= '<i class="fas fa-eye me-1"></i>ID ' . $id;
                $html .= '</button>';
            }
            $html .= '</div>';
            $html .= '</td>';
            $html .= '</tr>';
            
            $contador++;
        }
        
        $html .= '</tbody>';
        $html .= '</table>';
        $html .= '</div>';
        
        // Agregar resumen estadístico
        $totalDuplicados = array_sum(array_column($duplicados, 'total_registros'));
        $html .= '<div class="row mt-4">';
        $html .= '<div class="col-md-4">';
        $html .= '<div class="card border">';
        $html .= '<div class="card-body text-center">';
        $html .= '<h5 class="card-title text-muted"><i class="fas fa-exclamation-triangle me-2"></i>Documentos Duplicados</h5>';
        $html .= '<h3 class="text-dark">' . count($duplicados) . '</h3>';
        $html .= '</div>';
        $html .= '</div>';
        $html .= '</div>';
        $html .= '<div class="col-md-4">';
        $html .= '<div class="card border">';
        $html .= '<div class="card-body text-center">';
        $html .= '<h5 class="card-title text-muted"><i class="fas fa-users me-2"></i>Total Registros</h5>';
        $html .= '<h3 class="text-dark">' . $totalDuplicados . '</h3>';
        $html .= '</div>';
        $html .= '</div>';
        $html .= '</div>';
        $html .= '<div class="col-md-4">';
        $html .= '<div class="card border">';
        $html .= '<div class="card-body text-center">';
        $html .= '<h5 class="card-title text-muted"><i class="fas fa-chart-line me-2"></i>Promedio por Documento</h5>';
        $html .= '<h3 class="text-dark">' . round($totalDuplicados / count($duplicados), 1) . '</h3>';
        $html .= '</div>';
        $html .= '</div>';
        $html .= '</div>';
        $html .= '</div>';
    }
    
    echo json_encode([
        'success' => true,
        'html' => $html,
        'total' => count($duplicados)
    ]);
    
} catch (Exception $e) {
    echo json_encode([
        'success' => false,
        'message' => 'Error al obtener los duplicados: ' . $e->getMessage()
    ]);
}
?>
