34849-vm/update_pago.php
2026-02-09 17:45:10 +00:00

51 lines
1.5 KiB
PHP

<?php
session_start();
header('Content-Type: application/json');
// Check for user role
if (!isset($_SESSION['user_id']) || !in_array($_SESSION['user_role'], ['Administrador', 'Verificador de Pagos'])) {
echo json_encode(['success' => false, 'message' => 'Acceso no autorizado.']);
exit;
}
// Check for POST method
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(['success' => false, 'message' => 'Método no permitido.']);
exit;
}
// Get input data
$pedido_id = $_POST['pedido_id'] ?? null;
$estado_pago = $_POST['estado_pago'] ?? null;
// Validate input
if (empty($pedido_id) || empty($estado_pago)) {
echo json_encode(['success' => false, 'message' => 'Datos incompletos.']);
exit;
}
$allowed_statuses = ['Pendiente a verificación', 'Verificado'];
if (!in_array($estado_pago, $allowed_statuses)) {
echo json_encode(['success' => false, 'message' => 'Estado no válido.']);
exit;
}
require_once 'db/config.php';
try {
$pdo = db();
$sql = "UPDATE pedidos SET estado_pago = ? WHERE id = ?";
$stmt = $pdo->prepare($sql);
$success = $stmt->execute([$estado_pago, $pedido_id]);
if ($success) {
echo json_encode(['success' => true, 'message' => 'Estado de pago actualizado.']);
} else {
echo json_encode(['success' => false, 'message' => 'No se pudo actualizar la base de datos.']);
}
} catch (PDOException $e) {
// Log error to a file in a real application
// error_log($e->getMessage());
echo json_encode(['success' => false, 'message' => 'Error de base de datos.']);
}