From c5955160bb9adf43c01c7e67de2986ce7bf364f2 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Wed, 29 Jul 2026 20:22:32 -0500 Subject: [PATCH] =?UTF-8?q?feat(bot):=20mantenimiento=20con=20selecci?= =?UTF-8?q?=C3=B3n=20din=C3=A1mica=20de=20grupo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ciclo_mantenimiento → dynamic_list top 3 grupos más usados + "Otro grupo" - "Otro grupo" → lista grupos 4-13 (append_options redirect) - Tras seleccionar grupo → menú 3 botones: más largos, todos, histórico 30d - Endpoints con {grupo_id} dinámico en URL Co-Authored-By: Claude Sonnet 4.6 --- setup/seed_palmas.php | 45 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/setup/seed_palmas.php b/setup/seed_palmas.php index eabf335..1bd6220 100644 --- a/setup/seed_palmas.php +++ b/setup/seed_palmas.php @@ -128,8 +128,9 @@ $configJson = [ ['id'=>'ciclo_tratamiento_historico','title'=>'📅 Histórico 30d'], ]], 'submenu_ciclo_mantenimiento' => ['type'=>'button','body'=>'Ciclos de Mantenimiento — ¿Qué deseas ver?','buttons'=>[ - ['id'=>'ciclo_mantenimiento_top', 'title'=>'🏆 Más largos'], - ['id'=>'ciclo_mantenimiento_todos','title'=>'📋 Todos los lotes'], + ['id'=>'ciclo_mantenimiento_top', 'title'=>'🏆 Más largos'], + ['id'=>'ciclo_mantenimiento_todos', 'title'=>'📋 Todos los lotes'], + ['id'=>'ciclo_mantenimiento_historico', 'title'=>'📅 Histórico 30d'], ]], // Submenú sanidad vegetal (orden: Censo, Plagas, Rincofurus, Tratamiento) @@ -280,9 +281,37 @@ $configJson = [ 'ciclo_tratamiento_todos' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'tratamiento_todos_dn','date_mode'=>'current_month','filename'=>'ciclos_tratamientos.pdf','caption'=>'Ciclos de Tratamientos — todos los lotes']], 'ciclo_tratamiento_historico'=> ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'tratamiento_historico_bot_dn','date_mode'=>'last_30','filename'=>'historico_tratamientos.pdf','caption'=>'Histórico Tratamientos — últimos 30 días']], - // Sub-opciones: mantenimiento (sin histórico PDF) - 'ciclo_mantenimiento_top' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'mantenimiento_top_texto_bot_dn','date_mode'=>'last_30']], - 'ciclo_mantenimiento_todos'=> ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'mantenimiento_todos_dn','date_mode'=>'current_month','filename'=>'ciclos_mantenimiento.pdf','caption'=>'Ciclos de Mantenimiento — todos los lotes']], + // ciclo_mantenimiento → selección dinámica de grupo (top3 + "Otro") + 'ciclo_mantenimiento' => [ + 'type' => 'dynamic_list', + 'source_endpoint_key' => 'mantenimiento_grupos_top3_dn', + 'value_field' => 'id', + 'label_field' => 'label', + 'header' => '🔧 Mantenimiento', + 'body' => 'Selecciona el grupo de mantenimiento:', + 'section_title' => 'Grupos frecuentes', + 'meta_group' => 'grupo_mant', + 'meta_key' => 'grupo_id', + 'next_node' => 'submenu_ciclo_mantenimiento', + 'append_options' => [['id' => 'select_grupo_mant_otros', 'title' => '➕ Otro grupo']], + ], + 'select_grupo_mant_otros' => [ + 'type' => 'dynamic_list', + 'source_endpoint_key' => 'mantenimiento_grupos_otros_dn', + 'value_field' => 'id', + 'label_field' => 'label', + 'header' => '🔧 Mantenimiento', + 'body' => 'Selecciona el grupo:', + 'section_title' => 'Otros grupos', + 'meta_group' => 'grupo_mant', + 'meta_key' => 'grupo_id', + 'next_node' => 'submenu_ciclo_mantenimiento', + ], + + // Sub-opciones: mantenimiento + 'ciclo_mantenimiento_top' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'mantenimiento_top_bot_dn','date_mode'=>'today','filename'=>'mantenimiento_top.pdf','caption'=>'Mantenimiento — lotes con ciclos más largos']], + 'ciclo_mantenimiento_todos' => ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'mantenimiento_todos_bot_dn','date_mode'=>'today','filename'=>'mantenimiento_todos.pdf','caption'=>'Mantenimiento — todos los lotes']], + 'ciclo_mantenimiento_historico'=> ['type'=>'function','function'=>'api_report','params'=>['endpoint_key'=>'mantenimiento_todos_bot_dn','date_mode'=>'last_30','filename'=>'mantenimiento_historico.pdf','caption'=>'Mantenimiento — histórico 30 días']], // Upload 'enviar_informacion' => ['type' => 'menu', 'menu' => 'submenu_subir_ciclos'], @@ -409,7 +438,11 @@ $endpoints = [ ['key' => 'censo_todos_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=ciclos_censo_dn&finca_id={finca_id}'], ['key' => 'palm_todos_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=ciclos_palm_dn&finca_id={finca_id}'], ['key' => 'tratamiento_todos_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=ciclos_tratamientos_dn&finca_id={finca_id}'], - ['key' => 'mantenimiento_todos_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=mantenimiento_dn&grupo=0&finca_id={finca_id}'], + ['key' => 'mantenimiento_grupos_top3_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=grupos_mantenimiento&limit=3'], + ['key' => 'mantenimiento_grupos_otros_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=grupos_mantenimiento&limit=10&offset=3'], + ['key' => 'mantenimiento_top_bot_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=mantenimiento_dn&top_lotes=10&grupo={grupo_id}&finca_id={finca_id}'], + ['key' => 'mantenimiento_todos_bot_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=mantenimiento_dn&grupo={grupo_id}&finca_id={finca_id}'], + ['key' => 'mantenimiento_todos_dn', 'dir' => 'download', 'url' => $BASE . '?peticion=mantenimiento_dn&grupo={grupo_id}&finca_id={finca_id}'], ]; // ─── Companies ─────────────────────────────────────────────────────────────────