Модуль:Песочница/Игорь Темиров/DistrictNP

Документация
local p = {}

local ModuleStatistical = require( 'Module:StatisticalTemp' )

function p.GetDistrictNP(frame)
    local Args =  frame:getParent().args
    if Args[1] == nil then return "Введите викифицированное название населённого пункта городского типа" end
	local District = frame.args[1]
    local UrbanPopulation = 0
    local DistrictPopulation = ModuleStatistical.GetStat({District, 'ч'})	
	UrbanSettingStr= 'В городских условиях ('
	UrbanSettingStr2 = '{{ formatnum: {{ #expr: ( ( '
	for key, val in pairs(Args) do
		if key > 1 then 
			UrbanSettingStr = UrbanSettingStr .. ', '
			UrbanSettingStr2 = UrbanSettingStr2 .. ' + ' 
		end
		UrbanSettingStr = UrbanSettingStr .. string.gsub(val,' (.+', '')
		UrbanPopulation = UrbanPopulation + ModuleStatistical.GetStat({val, 'ч'})	
	end
	UrbanSettingStr = UrbanSettingStr .. ') проживают ' .. string.gsub(string.format("%.2f", UrbanPopulation * 100 / DistrictPopulation),'%.',',') .. ' % населения '
	if string.find (District, 'район') then UrbanSettingStr = UrbanSettingStr .. 'района.'
	elseif string.find (District, 'городской округ') then UrbanSettingStr = UrbanSettingStr .. 'городского округа.'
	elseif string.find (District, 'муниципальный округ') then UrbanSettingStr = UrbanSettingStr .. 'муниципального округа.'
	elseif string.find (District, ' округ') then UrbanSettingStr = UrbanSettingStr .. 'округа.'
	elseif string.find (District, 'городское поселение') then UrbanSettingStr = UrbanSettingStr .. 'городского поселения.'
	else UrbanSettingStr = UrbanSettingStr .. 'муниципального образования.'
	end

    return UrbanSettingStr
end
return p