fix: la fecha final del ausentismo mira hacia adelante

El selector ofrecia Hoy/Ayer/Anteayer tambien para el "hasta", cuando una
novedad que se registra hoy termina hoy o mas adelante. Ahora ese campo ofrece
Hoy/Manana/Pasado manana, y "Otra fecha" sigue aceptando cualquiera.

date_quick gana 'quick' => 'futuro'; sin esa clave se comporta igual que antes,
asi que las fechas de labores y ciclos —siempre pasadas— no cambian.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-20 22:53:03 -05:00
co-authored by Claude Sonnet 4.6
parent 2ef3091260
commit 6616b63683
3 changed files with 30 additions and 7 deletions
+2
View File
@@ -478,6 +478,8 @@ $configJson = [
'key' => 'fecha_final',
'label' => 'Hasta',
'type' => 'date_quick',
// Una novedad termina hoy o mas adelante, nunca anteayer
'quick' => 'futuro',
'prompt' => '📅 ¿Hasta qué fecha? (si es un solo día, elige la misma)',
'other_validate' => 'date',
'other_prompt' => 'Escribe la fecha final (YYYY-MM-DD):',
+10
View File
@@ -62,11 +62,21 @@ check('y el nombre completo va en la descripción',
$r = NormalBot::processInteractive($co, $ctx, '46');
check('sigue la fecha inicial', str_contains(textoDe($r), 'Desde qué fecha'));
check('la fecha inicial sí mira hacia atrás',
isset(filasDe($r)[date('Y-m-d', strtotime('-1 day'))]));
$hoy = date('Y-m-d'); $ayer = date('Y-m-d', strtotime('-1 day'));
$manana = date('Y-m-d', strtotime('+1 day'));
$r = NormalBot::processInteractive($co, $ctx, $hoy);
check('sigue la fecha final', str_contains(textoDe($r), 'Hasta qué fecha'));
// Una novedad termina hoy o despues: los atajos van hacia adelante
$atajos = filasDe($r);
check('ofrece hoy, mañana y pasado — no ayer',
array_map('strval', array_keys($atajos)),
[$hoy, $manana, date('Y-m-d', strtotime('+2 days')), '__cap_other']);
check('sin atajos hacia atrás', !isset($atajos[$ayer]));
WhatsAppSender::$enviados = [];
$r = NormalBot::processInteractive($co, $ctx, $ayer);
check('rechaza el rango invertido',