-- NanaPOS v151: separa código interno de sucursal operativa de Sucursal FE / Terminal FE.
-- Ejecutar en la base principal del panel.

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

UPDATE fe_api_keys fak
LEFT JOIN fe_sucursales fs ON fs.id = fak.sucursal_id
LEFT JOIN fe_terminales ft ON ft.id = fak.terminal_id
LEFT JOIN negocio_sucursales ns ON ns.id = fak.sucursal_operativa_id
SET fak.cod_sucursal = LPAD(COALESCE(NULLIF(fak.cod_sucursal, ''), NULLIF(fs.cod_sucursal, ''), NULLIF(ns.codigo, ''), '1'), 3, '0'),
    fak.cod_terminal = LPAD(COALESCE(NULLIF(fak.cod_terminal, ''), NULLIF(ft.cod_terminal, ''), NULLIF(fs.cod_terminal, ''), '1'), 5, '0')
WHERE COALESCE(fak.negocio_id, fak.negocio_id_origen, fs.negocio_id, 0) > 0;

UPDATE fe_terminales ft
JOIN fe_api_keys fak ON fak.terminal_id = ft.id
SET ft.cod_sucursal = LPAD(COALESCE(NULLIF(fak.cod_sucursal, ''), NULLIF(ft.cod_sucursal, ''), '1'), 3, '0'),
    ft.cod_terminal = LPAD(COALESCE(NULLIF(fak.cod_terminal, ''), NULLIF(ft.cod_terminal, ''), '1'), 5, '0')
WHERE COALESCE(fak.negocio_id, fak.negocio_id_origen, ft.negocio_id, 0) > 0;

UPDATE fe_sucursales fs
JOIN fe_api_keys fak ON fak.sucursal_id = fs.id
SET fs.cod_sucursal = LPAD(COALESCE(NULLIF(fs.cod_sucursal, ''), NULLIF(fak.cod_sucursal, ''), '1'), 3, '0'),
    fs.cod_terminal = LPAD(COALESCE(NULLIF(fs.cod_terminal, ''), NULLIF(fak.cod_terminal, ''), '1'), 5, '0')
WHERE COALESCE(fak.negocio_id, fak.negocio_id_origen, fs.negocio_id, 0) > 0;
