$dni, 'nombre_completo' => $nombre_completo, 'celular' => $celular, 'sede_envio' => $sede_envio, 'direccion_exacta' => $direccion_exacta, 'referencia_domicilio' => $referencia_domicilio, 'codigo_rastreo' => $codigo_rastreo, 'codigo_tracking' => $codigo_tracking, 'producto' => $producto, 'cantidad' => $cantidad, 'monto_total' => $monto_total, 'monto_adelantado' => $monto_adelantado, 'numero_operacion' => $numero_operacion, 'monto_debe' => $monto_debe, 'notas' => $notas, ]; if ($id) { // UPDATE: Explicit and safe query $user_role = $_SESSION['user_role'] ?? ''; $sql_parts = [ "dni_cliente = :dni_cliente", "nombre_completo = :nombre_completo", "celular = :celular", "sede_envio = :sede_envio", "direccion_exacta = :direccion_exacta", "referencia_domicilio = :referencia_domicilio", "codigo_rastreo = :codigo_rastreo", "codigo_tracking = :codigo_tracking", "producto = :producto", "cantidad = :cantidad", "monto_total = :monto_total", "monto_adelantado = :monto_adelantado", "numero_operacion = :numero_operacion", "monto_debe = :monto_debe", "notas = :notas", ]; // Conditionally add asesor_id if ($user_role === 'Administrador' && !empty($_POST['asesor_id'])) { $sql_parts[] = "asesor_id = :asesor_id"; $params['asesor_id'] = $_POST['asesor_id']; } $sql = "UPDATE pedidos SET " . implode(", ", $sql_parts) . " WHERE id = :id"; $params['id'] = $id; $stmt = $pdo->prepare($sql); $stmt->execute($params); } else { // INSERT: The advisor is the user creating the order. $params['asesor_id'] = $_SESSION['user_id']; $params['estado'] = 'RUTA_CONTRAENTREGA'; $columns_sql = "dni_cliente, nombre_completo, celular, sede_envio, direccion_exacta, referencia_domicilio, codigo_rastreo, codigo_tracking, producto, cantidad, monto_total, monto_adelantado, numero_operacion, monto_debe, asesor_id, notas, estado"; $values_sql = ":dni_cliente, :nombre_completo, :celular, :sede_envio, :direccion_exacta, :referencia_domicilio, :codigo_rastreo, :codigo_tracking, :producto, :cantidad, :monto_total, :monto_adelantado, :numero_operacion, :monto_debe, :asesor_id, :notas, :estado"; $sql = "INSERT INTO pedidos ($columns_sql) VALUES ($values_sql)"; $stmt = $pdo->prepare($sql); $stmt->execute($params); } if (isset($_POST['id']) && !empty($_POST['id'])) { // Si se está editando un pedido, redirigir a la página de referencia o a la lista general. $redirect_url = $_POST['referer'] ?? 'pedidos_contraentrega.php'; } else { // Si se está creando un nuevo pedido, redirigir al formulario con un mensaje de éxito. $redirect_url = 'pedidos_contraentrega.php?success=1'; } header('Location: ' . $redirect_url); exit; } else { header('Location: pedidos_contraentrega.php'); exit; }