File "DashboardComputers.php"
Full Path: C:/wamp64/www/RegistroEquipos2/backend/computador/DashboardComputers.php
File size: 3.49 KB
MIME-type: text/x-php
Charset: utf-8
<?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()
]);
}
?>