fix: los lotes de ciclos mezclaban fincas

Los catalogos de los campos select y multi_select pedian la lista mandando solo
lo recolectado en el formulario, nunca el metadata de la conversacion: la finca
elegida no viajaba, {finca_id} quedaba sin resolver en la URL y el ERP lo leia
como 0 —todas las fincas—. Elegir REPOSO y ver lotes de otras fincas, tal cual
lo reporto el usuario.

Ahora el metadata acompana lo recolectado en ambos puntos. Los fixtures delatan
la fuga —sin finca_id valido cuelan un lote ajeno— y dos casos nuevos verifican
que a los catalogos de ciclos y labores solo lleguen lotes de la finca elegida.

De paso el select simple gana resolverPorCampos en su clave, que el multi ya
tenia: un catalogo por campo puede depender de lo elegido antes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-08-19 22:50:48 -05:00
co-authored by Claude Sonnet 4.6
parent 6c524a39ed
commit 5ee2cfe2e6
3 changed files with 28 additions and 6 deletions
+7 -4
View File
@@ -43,6 +43,10 @@ foreach (range(1, 17) as $i) $novedades17[] = ['id' => (string)(100 + $i), 'nomb
$lotes12 = [];
foreach (range(1, 12) as $i) $lotes12[] = ['id' => (string)$i, 'label' => "REPOSO {$i}A (" . (50 - $i) . "d)"];
// Como el ERP real: sin finca_id valida, el catalogo mezcla fincas
if (intval($_GET['finca_id'] ?? 0) !== 4) {
array_unshift($lotes12, ['id' => '99', 'label' => 'ROSA BLANCA 9Z (60d)']);
}
$fixtures = [
'fincas' => $fincas,
@@ -60,10 +64,9 @@ $fixtures = [
],
'lotes_apertura_dn' => $lotes12,
'lotes_abiertos_dn' => array_slice($lotes12, 0, 3),
'lotes_x_finca' => [
['id' => '4', 'label' => 'REPOSO 1A'],
['id' => '9', 'label' => 'REPOSO 2A'],
],
'lotes_x_finca' => intval($_GET['finca_id'] ?? 0) === 4
? [['id' => '4', 'label' => 'REPOSO 1A'], ['id' => '9', 'label' => 'REPOSO 2A']]
: [['id' => '99', 'label' => 'ROSA BLANCA 9Z']],
'grupos_mantenimiento' => [
['id' => '5', 'label' => 'PLATEO'],
['id' => '6', 'label' => 'CORONA'],