File "Dashboardstats.php"

Full Path: C:/wamp64/www/RegistroEquipos2/backend/telefono/Dashboardstats.php
File size: 3.32 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,
    ]);

    // --- Teléfonos (inventario_telefonos) ---
    try {
        $telefonos = $pdo->query("SELECT 
            SUM(CASE WHEN estado = 'disponible' THEN 1 ELSE 0 END) as disponibles,
            SUM(CASE WHEN estado = 'asignado' THEN 1 ELSE 0 END) as asignados
            FROM inventario_telefonos")->fetch(PDO::FETCH_ASSOC);
    } catch (Exception $e) {
        $telefonos = ['disponibles' => 0, 'asignados' => 0];
    }

    // --- Líneas (inventario_lineas) ---
    try {
        $lineas = $pdo->query("SELECT 
            SUM(CASE WHEN estado = 'disponible' THEN 1 ELSE 0 END) as disponibles,
            SUM(CASE WHEN estado = 'asignada' THEN 1 ELSE 0 END) as asignadas
            FROM inventario_lineas")->fetch(PDO::FETCH_ASSOC);
    } catch (Exception $e) {
        $lineas = ['disponibles' => 0, 'asignadas' => 0];
    }

    // --- Smartphones registrados (registroSmartphones con S mayúscula) ---
    try {
        $smartphones = $pdo->query("SELECT 
            SUM(CASE WHEN estado = 'entregado' THEN 1 ELSE 0 END) as entregados,
            SUM(CASE WHEN estado = 'devuelto' THEN 1 ELSE 0 END) as devueltos
            FROM registroSmartphones")->fetch(PDO::FETCH_ASSOC);
    } catch (Exception $e) {
        $smartphones = ['entregados' => 0, 'devueltos' => 0];
    }

    // --- Condición de equipos (inventario_telefonos) ---
    try {
        $condicion = $pdo->query("SELECT 
            SUM(CASE WHEN condicion = 'excelente' THEN 1 ELSE 0 END) as excelente,
            SUM(CASE WHEN condicion = 'bueno' THEN 1 ELSE 0 END) as bueno,
            SUM(CASE WHEN condicion = 'regular' THEN 1 ELSE 0 END) as regular,
            SUM(CASE WHEN condicion = 'malo' THEN 1 ELSE 0 END) as malo
            FROM inventario_telefonos")->fetch(PDO::FETCH_ASSOC);
    } catch (Exception $e) {
        $condicion = ['excelente' => 0, 'bueno' => 0, 'regular' => 0, 'malo' => 0];
    }

    $stats = [
        'telefonos_disponibles' => (int)($telefonos['disponibles'] ?? 0),
        'telefonos_asignados'   => (int)($telefonos['asignados'] ?? 0),
        'lineas_disponibles'    => (int)($lineas['disponibles'] ?? 0),
        'lineas_asignadas'      => (int)($lineas['asignadas'] ?? 0),
        'smartphones_entregados'=> (int)($smartphones['entregados'] ?? 0),
        'smartphones_devueltos' => (int)($smartphones['devueltos'] ?? 0),
        'asignaciones_activas'  => (int)($smartphones['entregados'] ?? 0),
        'telefonos_excelente'   => (int)($condicion['excelente'] ?? 0),
        'telefonos_bueno'       => (int)($condicion['bueno'] ?? 0),
        'telefonos_regular'     => (int)($condicion['regular'] ?? 0),
        'telefonos_malo'        => (int)($condicion['malo'] ?? 0),
    ];

    echo json_encode([
        'status' => 'success',
        'data' => $stats
    ]);

} catch (PDOException $e) {
    echo json_encode([
        'status' => 'error',
        'mensaje' => 'Error de conexión: ' . $e->getMessage()
    ]);
}