Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ----------------------------------------------------------------------------------------------------
- -- Работа с направлениями --------------------------------------------------------------------------
- ----------------------------------------------------------------------------------------------------
- function ResolveDirectionByNumber(number)
- levels = {}
- prefix = {}
- prefix_index = 1
- prefix_data = 10000
- number_len = string.len(number)
- for len=1,number_len do
- levels[len] = tonumber(sql_result(db_link, "select count(distinct(direction)) from directions where cast(code as text) like '"..string.sub(number, 0, len).."%'"))
- prefix[len] = tonumber(string.sub(number, 0, len))
- end
- for search_index=1,#levels do
- result_count = sql_count(db_link, "select direction from directions where code = '"..prefix[search_index].."'")
- if (levels[search_index] < prefix_data) and (string.len(prefix[search_index]) > string.len(prefix[prefix_index])) and (levels[search_index] > 0) and (result_count > 0) then
- prefix_index = search_index
- prefix_data = tonumber(levels[search_index])
- end
- end
- result = sql_result(db_link, "select id from directions where code = '"..prefix[prefix_index].."' and min_len <= "..number_len.." and max_len >= "..number_len)
- return result
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement