<?php header('Content-Type: application/json'); header('Access-Control-Allow-Origin: *'); $host = '192.200.100.40'; $db = 'sistemas'; $user = 'SANMARINO'; $pass = 'sanmarino2021*'; $charset = 'utf8mb4'; try { $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; $pdo = new PDO($dsn, $user, $pass, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, ]); // --- 1. Contar entregados (siempre desde registroComputers) try { $stmt = $pdo->query("SELECT COUNT(*) as total FROM registroComputers WHERE estado = 'entregado'"); $entregados = $stmt->fetch(PDO::FETCH_ASSOC); } catch (Exception $e) { // Si la tabla no existe o la columna es otra, registra el error error_log("Error en entregados: " . $e->getMessage()); $entregados = ['total' => 0]; } // --- 2. Intentar contar devueltos desde registrodevoluciones $devueltos = ['total' => 0]; try { // Primero verificamos si la tabla existe $checkTable = $pdo->query("SHOW TABLES LIKE 'registrodevoluciones'"); if ($checkTable->rowCount() > 0) { // Verificamos qué columnas tiene realmente $columns = $pdo->query("DESCRIBE registrodevoluciones")->fetchAll(PDO::FETCH_COLUMN); // Si existen 'tipo' y 'estado', usamos la consulta original if (in_array('tipo', $columns) && in_array('estado', $columns)) { $stmt = $pdo->query("SELECT COUNT(*) as total FROM registrodevoluciones WHERE tipo = 'Computer' AND estado = 'devuelto'"); $devueltos = $stmt->fetch(PDO::FETCH_ASSOC); } else { // Si no, intentamos con nombres comunes alternativos $condiciones = []; if (in_array('tipo_equipo', $columns)) $condiciones[] = "tipo_equipo = 'Computer'"; if (in_array('estado_devolucion', $columns)) $condiciones[] = "estado_devolucion = 'devuelto'"; if (!empty($condiciones)) { $sql = "SELECT COUNT(*) as total FROM registrodevoluciones WHERE " . implode(' AND ', $condiciones); $stmt = $pdo->query($sql); $devueltos = $stmt->fetch(PDO::FETCH_ASSOC); } else { // No hay columnas que coincidan, asumimos 0 $devueltos = ['total' => 0]; } } } } catch (Exception $e) { error_log("Error en devueltos (tabla devoluciones): " . $e->getMessage()); // Si falla, dejamos $devueltos como 0 por ahora } // --- 3. Si aún no hay devueltos, consultar en registroComputers con estado 'devuelto' if (($devueltos['total'] ?? 0) == 0) { try { $stmt = $pdo->query("SELECT COUNT(*) as total FROM registroComputers WHERE estado = 'devuelto'"); $devueltos = $stmt->fetch(PDO::FETCH_ASSOC); } catch (Exception $e) { error_log("Error en devueltos (registroComputers): " . $e->getMessage()); $devueltos = ['total' => 0]; } } $stats = [ 'entregados' => (int)($entregados['total'] ?? 0), 'devueltos' => (int)($devueltos['total'] ?? 0), ]; echo json_encode([ 'status' => 'success', 'data' => $stats ]); } catch (PDOException $e) { echo json_encode([ 'status' => 'error', 'mensaje' => 'Error de conexión: ' . $e->getMessage() ]); } ?>