-- v150 - Alinea configuración fiscal por sucursal/caja y evita rechazo por OtrasSenas menor a 5 caracteres.

ALTER TABLE fe_sucursales ADD COLUMN IF NOT EXISTS consec_fec INT NOT NULL DEFAULT 0 AFTER consec_nd;

UPDATE fe_sucursales fs
INNER JOIN negocio_sucursales ns ON ns.id = fs.sucursal_operativa_id AND ns.negocio_id = fs.negocio_id_origen
SET fs.sennas = LEFT(TRIM(ns.direccion), 160)
WHERE (COALESCE(TRIM(fs.sennas), '') = '' OR CHAR_LENGTH(TRIM(fs.sennas)) < 5)
  AND COALESCE(TRIM(ns.direccion), '') <> ''
  AND CHAR_LENGTH(TRIM(ns.direccion)) >= 5;

UPDATE fe_sucursales
SET sennas = 'Sin señas'
WHERE COALESCE(TRIM(sennas), '') = '' OR CHAR_LENGTH(TRIM(sennas)) < 5;

UPDATE negocio_fe_configuracion
SET otras_sennas = 'Sin señas'
WHERE COALESCE(TRIM(otras_sennas), '') = '' OR CHAR_LENGTH(TRIM(otras_sennas)) < 5;

UPDATE fe_api_keys fak
INNER JOIN negocio_sucursal_cajas c ON c.fe_api_key_id = fak.id AND c.negocio_id = COALESCE(fak.negocio_id, fak.negocio_id_origen)
SET fak.sucursal_operativa_id = c.sucursal_id,
    fak.caja_config_id = c.id,
    fak.updated_at = CURRENT_TIMESTAMP
WHERE (fak.sucursal_operativa_id IS NULL OR fak.sucursal_operativa_id = 0 OR fak.caja_config_id IS NULL OR fak.caja_config_id = 0);
