feat: marcar varios lotes escribiendolos, no de a uno
Cada toque redibuja la lista en un mensaje nuevo: seis lotes eran seis mensajes. Ahora se puede escribir "1a, 2b 5c" y quedan marcados de una. Suma a lo ya tocado en vez de reemplazarlo, asi las dos formas conviven. Compara sin acentos ni mayusculas y acepta el lote solo o con la finca delante. Si dos fincas tienen un "1A" no adivina: exige el nombre completo. Y lo que no reconoce lo dice —marcar cinco de seis en silencio registraria un ciclo de menos sin que nadie se entere. Se separa por comas y se prueba el segmento entero antes de partirlo por espacios: al reves, "RETIRO 1A" se rompia en dos y no matcheaba nada. Descartado "marcar todos": nunca se abren todos los lotes de una finca. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
52dbd1e203
commit
dd894e5aab
@@ -146,6 +146,22 @@ check('y la página 2 alcanza el lote 12', isset(filasDe($r)['12']));
|
||||
$r = NormalBot::processInteractive($co, $ctx, '__mas'); // vuelve: no hay página 3
|
||||
$r = NormalBot::processInteractive($co, $ctx, '__mas');
|
||||
|
||||
// Escribir varios de una: seis toques eran seis mensajes
|
||||
$r = NormalBot::process($co, $ctx, '3a, 4a 5a');
|
||||
$filas = filasDe($r);
|
||||
check('escribir marca varios en un solo mensaje',
|
||||
str_contains($filas['__listo'] ?? '', '(5)'));
|
||||
// El contador no depende de la pagina que se este viendo
|
||||
check('suma a lo tocado en vez de reemplazarlo: 2 + 3 = 5',
|
||||
str_contains($filas['__listo'] ?? '', '(5)'));
|
||||
|
||||
WhatsAppSender::$enviados = [];
|
||||
$r = NormalBot::process($co, $ctx, '6a, 9z9z');
|
||||
check('lo que no reconoce lo avisa, no lo ignora',
|
||||
str_contains(WhatsAppSender::$enviados[0]['text'] ?? '', '"9z9z"'));
|
||||
check('y marca igual lo que sí entendió',
|
||||
str_contains(filasDe($r)['__listo'] ?? '', '(6)'));
|
||||
|
||||
$r = NormalBot::processInteractive($co, $ctx, '__listo');
|
||||
check('resumen final', isset(filasDe($r)['__cap_confirm']));
|
||||
|
||||
@@ -153,7 +169,8 @@ capturas();
|
||||
NormalBot::processInteractive($co, $ctx, '__cap_confirm');
|
||||
$post = array_values(array_filter(capturas(), fn($c) => str_contains($c['peticion'] ?? '', 'ciclos_')))[0] ?? null;
|
||||
check('la URL resolvió el tipo elegido', $post['peticion'] ?? null, 'ciclos_cosecha_up');
|
||||
check('lote_ids como arreglo', $post['body']['lote_ids'] ?? null, ['1', '2']);
|
||||
check('lote_ids lleva los tocados y los escritos',
|
||||
$post['body']['lote_ids'] ?? null, ['1', '2', '3', '4', '5', '6']);
|
||||
check('con la acción y la fecha',
|
||||
[$post['body']['accion'] ?? null, $post['body']['fecha'] ?? null], ['apertura', $hoy]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user