34849-vm/simular_asignacion.php
2026-08-04 17:59:42 +00:00

62 lines
1.9 KiB
PHP

<?php
session_start();
require_once 'db/config.php';
require_once 'includes/callcenter_test_helpers.php';
$db = db();
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit;
}
if (!cc_test_current_user_can_access_module($db)) {
http_response_code(403);
die('Acceso denegado.');
}
// 1. Buscamos al primer usuario para la prueba
$user = $db->query("SELECT id, username FROM users LIMIT 1")->fetch(PDO::FETCH_ASSOC);
if (!$user) {
die("No hay usuarios en la base de datos para asignar.");
}
$userId = $user['id'];
$username = $user['username'];
// 2. Buscamos 5 pedidos que no tengan asesor o que estén en estado 'PENDIENTE'
$pedidos = $db->query("SELECT id FROM pedidos LIMIT 5")->fetchAll(PDO::FETCH_COLUMN);
if (empty($pedidos)) {
die("No hay pedidos en la tabla 'pedidos' para simular.");
}
// 3. Asignamos los pedidos al usuario y cambiamos el estado a 'Gestion'
$stmt = $db->prepare("UPDATE pedidos SET asesor_id = ?, estado = 'Gestion' WHERE id = ?");
foreach ($pedidos as $id) {
$stmt->execute([$userId, $id]);
}
echo "<h3>Simulación Exitosa</h3>";
echo "Se han asignado " . count($pedidos) . " pedidos al usuario <strong>$username</strong> (ID: $userId).<br>";
$callCenterParams = [];
foreach ([
'callcenter_assessor_filter' => 'assessor',
'callcenter_store' => 'store',
'callcenter_view' => 'view',
] as $sessionKey => $paramKey) {
if (!empty($_SESSION[$sessionKey])) {
$callCenterParams[$paramKey] = (string) $_SESSION[$sessionKey];
}
}
if (in_array((string) ($_SESSION['user_role'] ?? ''), ['Administrador', 'admin'], true)) {
$callCenterParams['view'] = 'todos';
}
$callCenterUrl = 'gestiones_callcenter.php';
if (!empty($callCenterParams)) {
$callCenterUrl .= '?' . http_build_query($callCenterParams);
}
echo "Ahora puedes verlos en el panel de gestión: <a href='" . htmlspecialchars($callCenterUrl, ENT_QUOTES) . "'>Ir a Base de Datos Pedidos</a>";