34849-vm/update_pago.php
2026-04-22 22:52:20 +00:00

51 lines
1.7 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 = isset($_POST['estado_pago']) ? trim($_POST['estado_pago']) : null;
// Validate input
if (empty($pedido_id) || empty($estado_pago)) {
echo json_encode(['success' => false, 'message' => 'Datos incompletos. ID: ' . $pedido_id . ', Estado: ' . $estado_pago]);
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: ' . $estado_pago]);
exit;
}
require_once 'db/config.php';
try {
$pdo = db();
$sql = "UPDATE pedidos SET estado_pago = ? WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$estado_pago, $pedido_id]);
if ($stmt->rowCount() >= 0) { // rowCount can be 0 if the value didn't change
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.']);
}