File "inventariolineas.php"

Full Path: C:/wamp64/www/RegistroEquipos/backend/telefono/inventariolineas.php
File size: 3.54 KB
MIME-type: text/x-php
Charset: utf-8

<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');

$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,
    ]);

    $metodo = $_SERVER['REQUEST_METHOD'];

    if ($metodo === 'GET') {
        $sql = "SELECT id, numero, plan_datos, operador, estado, veces_asignada FROM inventario_lineas ORDER BY id DESC";
        $stmt = $pdo->query($sql);
        $lineas = $stmt->fetchAll(PDO::FETCH_ASSOC);
        echo json_encode(['status' => 'success', 'data' => $lineas]);
        exit;
    }

    if ($metodo === 'POST') {
        $data = json_decode(file_get_contents('php://input'), true);
        if (!$data) {
            echo json_encode(['status' => 'error', 'mensaje' => 'Datos no válidos']);
            exit;
        }

        $numero = trim($data['numero'] ?? '');
        if (empty($numero)) {
            echo json_encode(['status' => 'error', 'mensaje' => 'El número de línea es obligatorio']);
            exit;
        }

        // Verificar si ya existe una línea con el mismo número
        $check = $pdo->prepare("SELECT id FROM inventario_lineas WHERE numero = :numero");
        $check->execute([':numero' => $numero]);
        if ($check->fetch()) {
            echo json_encode(['status' => 'error', 'mensaje' => 'Ya existe una línea con ese número']);
            exit;
        }

        $sql = "INSERT INTO inventario_lineas (numero, plan_datos, operador, estado)
                VALUES (:numero, :plan_datos, :operador, :estado)";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([
            ':numero' => $numero,
            ':plan_datos' => $data['plan_datos'] ?? '',
            ':operador' => $data['operador'] ?? '',
            ':estado' => $data['estado'] ?? 'disponible'
        ]);

        echo json_encode([
            'status' => 'success',
            'mensaje' => 'Línea agregada correctamente',
            'id' => $pdo->lastInsertId()
        ]);
        exit;
    }

    if ($metodo === 'PUT') {
        $data = json_decode(file_get_contents('php://input'), true);
        // Aquí también podrías agregar validación para evitar duplicados al actualizar,
        // pero no lo pides explícitamente. Se puede añadir si es necesario.
        $sql = "UPDATE inventario_lineas SET numero=:numero, plan_datos=:plan_datos, operador=:operador, estado=:estado WHERE id=:id";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([
            ':id' => $data['id'],
            ':numero' => $data['numero'],
            ':plan_datos' => $data['plan_datos'],
            ':operador' => $data['operador'],
            ':estado' => $data['estado']
        ]);
        echo json_encode(['status' => 'success', 'mensaje' => 'Línea actualizada']);
        exit;
    }

    if ($metodo === 'DELETE') {
        $data = json_decode(file_get_contents('php://input'), true);
        $sql = "DELETE FROM inventario_lineas WHERE id = :id";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([':id' => $data['id']]);
        echo json_encode(['status' => 'success', 'mensaje' => 'Línea eliminada']);
        exit;
    }

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