ну это вы описали существующий функционал в Z, но меня напрягают поправки на пояса, как их считать, когда филиалов сотни и создаются автоматически через API и операторов десяток
Ну тогда это ведь делается скриптом. Он откуда-то берет список пользователей. Кто мешает в этот список добавить филиал и таймзону. Или вести справочник таймзон филиалов, а скриптом все это считывать?