51 lines
1.5 KiB
PHP
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.']);
|
|
}
|