";
+ $visible_columns = $new_visible_columns; // Actualizar para mostrar el cambio inmediatamente
} else {
- echo "
Error al guardar la configuración.
";
+ echo "
Error al guardar la configuración de visibilidad.
";
}
}
+
+// Obtener todas las columnas de kanban_columns para el formulario de visibilidad
+$all_db_columns_query = "SELECT nombre FROM kanban_columns ORDER BY orden ASC";
+$stmt_all_db_columns = $conn->query($all_db_columns_query);
+$available_columns_for_visibility = $stmt_all_db_columns->fetchAll(PDO::FETCH_COLUMN);
+
?>
-
Configuración de Columnas del Kanban
-
Selecciona las columnas que deseas que sean visibles en el tablero Kanban.
-
-
";
+ require_once 'layout_footer.php';
+ exit();
+}
- $db = db();
- $stmt = $db->prepare("UPDATE kanban_columns SET name = ? WHERE id = ?");
- $stmt->bind_param('si', $nombre, $id);
- $stmt->execute();
+$message = '';
+$column = null;
- $_SESSION['success_message'] = "Columna actualizada exitosamente.";
- header('Location: info_producto.php');
+if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
+ header('Location: configuracion.php');
exit;
}
-?>
\ No newline at end of file
+
+$column_id = $_GET['id'];
+
+try {
+ $pdo = db();
+
+ // Procesar el formulario cuando se envía
+ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
+ $nombre = trim($_POST['nombre'] ?? '');
+
+ if (!empty($nombre)) {
+ $stmt = $pdo->prepare('UPDATE kanban_columns SET nombre = ? WHERE id = ?');
+ if ($stmt->execute([$nombre, $column_id])) {
+ $_SESSION['success_message'] = "Columna actualizada a '" . htmlspecialchars($nombre) . "'.";
+ header('Location: configuracion.php');
+ exit;
+ } else {
+ $message = "
Error al actualizar la columna.
";
+ }
+ } else {
+ $message = "
El nombre de la columna no puede estar vacío.
";
+ }
+ }
+
+ // Obtener los datos de la columna para mostrar en el formulario
+ $stmt = $pdo->prepare('SELECT * FROM kanban_columns WHERE id = ?');
+ $stmt->execute([$column_id]);
+ $column = $stmt->fetch(PDO::FETCH_ASSOC);
+
+ if (!$column) {
+ echo "
+
+
diff --git a/kanban.php b/kanban.php
index 8449089..f0d3171 100644
--- a/kanban.php
+++ b/kanban.php
@@ -1,4 +1,5 @@
query("SELECT kanban_columns FROM configuracion WHERE id = 1");
-$config = $stmt->fetch(PDO::FETCH_ASSOC);
+// 1. Obtener todas las columnas del Kanban
+$stmt_cols = $pdo->query("SELECT id, nombre FROM kanban_columns ORDER BY orden, id");
+$columns_to_display = $stmt_cols->fetchAll(PDO::FETCH_ASSOC);
-$columns_to_display = [];
-if ($config && !empty($config['kanban_columns'])) {
- $column_ids = json_decode($config['kanban_columns'], true);
- if (!empty($column_ids)) {
- $placeholders = implode(',', array_fill(0, count($column_ids), '?'));
- $stmt = $pdo->prepare("SELECT id, nombre FROM kanban_columns WHERE id IN ($placeholders)");
- $stmt->execute($column_ids);
- $columns_to_display = $stmt->fetchAll(PDO::FETCH_ASSOC);
+// 2. Obtener todos los productos de información, uniéndolos con productos y columnas
+$stmt_items = $pdo->query("
+ SELECT
+ ip.id,
+ ip.texto_informativo,
+ ip.imagen_url,
+ p.nombre as producto_nombre,
+ kc.nombre as estado_kanban
+ FROM
+ info_productos ip
+ LEFT JOIN
+ products p ON ip.producto_id = p.id
+ LEFT JOIN
+ kanban_columns kc ON ip.column_id = kc.id
+ ORDER BY
+ ip.orden, ip.id
+");
+$items = $stmt_items->fetchAll(PDO::FETCH_ASSOC);
+
+// 3. Agrupar items por el nombre de la columna (estado_kanban)
+$items_by_column = [];
+if ($items) {
+ foreach ($items as $item) {
+ if (!empty($item['estado_kanban'])) {
+ $items_by_column[$item['estado_kanban']][] = $item;
+ }
}
}
-if (empty($columns_to_display)) {
- $stmt = $pdo->query("SELECT id, nombre FROM kanban_columns");
- $columns_to_display = $stmt->fetchAll(PDO::FETCH_ASSOC);
-}
-
-// Obtener todos los productos de información
-$stmt = $pdo->query("SELECT ip.*, p.nombre as producto_nombre FROM info_productos ip LEFT JOIN products p ON ip.product_id = p.id");
-$items = $stmt->fetchAll(PDO::FETCH_ASSOC);
-
$pageTitle = "Kanban de Productos";
$pageDescription = "Tablero Kanban para visualizar la información de los productos.";
@@ -58,26 +68,31 @@ include 'layout_header.php';