Так как у нас зоны не используюся, то могу только догадываться как это работает(по колонкам таблицы). За нахождение людей в зоне отвечает таблица gk.TRF - там прописываются все параметры по нахождению карты в зоне. Так как баланс с карты снимется при выходе - нужно расчитывать баланс на текущее время - оплачивается каждый час, есть датавремя входа и текущее время - нужно найти количество часов (берем и находим). Знаем что за зона и сколько там будет стоить 1 час - находим сумму которая снимется с карты если выйти прямо сейчас и отнимаем ее от баланса карты(который хранится в базе) - получаем реальный баланс. Если учитывать все параметры зоны(бесплатное время, остановки тарификации, и т.д.) то расчет усложняется.
Вобщем все реально сделать можно даже на самом MSSQL считать. про язык SQL можете почитать тут https://msdn.microsoft.com/ru-ru/library/bb934481.aspx
Если хотите код бесплатно, то придется самим поразбираться в работе GK.