refactor: el alcance de fincas lo resuelve el ERP, no el bot
Los catalogos ahora mandan ?wa= igual que los informes, y el endpoint fincas devuelve solo las asignadas a ese numero. El "Todas las fincas" se antepone unicamente a quien no tiene restriccion: con dos de cinco asignadas no significa nada claro. Con eso sale sobrando todo el filtrado del lado del bot —scope_from, alcanceDelNumero y fincas_json en PhoneSync— y queda una sola fuente de verdad, del lado donde estan los datos. Efecto util: con una sola finca asignada el catalogo trae un unico item y handleDynamicList auto-selecciona, asi que el usuario nunca ve la pregunta. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
478ba3ea73
commit
94d4dcd26a
@@ -71,12 +71,11 @@ class PhoneSync
|
||||
|
||||
$db = db();
|
||||
$upsert = $db->prepare("
|
||||
INSERT INTO company_phones (company_id, wa_number, label, permission_type, fincas_json, is_active)
|
||||
VALUES (?, ?, ?, ?, ?, 1)
|
||||
INSERT INTO company_phones (company_id, wa_number, label, permission_type, is_active)
|
||||
VALUES (?, ?, ?, ?, 1)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
label = VALUES(label),
|
||||
permission_type = VALUES(permission_type),
|
||||
fincas_json = VALUES(fincas_json),
|
||||
is_active = 1
|
||||
");
|
||||
|
||||
@@ -85,15 +84,11 @@ class PhoneSync
|
||||
$waNumber = trim($n['wa_number'] ?? '');
|
||||
if ($waNumber === '') continue;
|
||||
|
||||
// Lista vacía = sin restricción (ve todas las fincas)
|
||||
$fincas = array_values(array_filter(array_map('intval', (array)($n['fincas'] ?? []))));
|
||||
|
||||
$upsert->execute([
|
||||
$companyId,
|
||||
$waNumber,
|
||||
trim($n['nombre'] ?? ''),
|
||||
(int)($n['permiso'] ?? 1),
|
||||
$fincas ? json_encode($fincas) : null,
|
||||
]);
|
||||
$activeNumbers[] = $waNumber;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user