feat(bot): mantenimiento con selección dinámica de grupo
- 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 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
bc4b589d93
commit
c5955160bb
+39
-6
@@ -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 ─────────────────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user