Módulo:Estadísticas de la pandemia de enfermedad por coronavirus de 2019-2020

Este módulo no tiene página de documentación[crear]
local z = {}

local args			-- used as global in ModuloArgs
local entidad		-- used as global in local functions
local ModuloArgs     = require('Módulo:Argumentos')
local argumento      = ModuloArgs.obtenerValorDeArgumentos

function propiedad(idPropiedad)
	-- global entidad
	local statements = mw.wikibase.getBestStatements(entidad, idPropiedad)
	return statements[#statements].mainsnak.datavalue.value.amount
end

function z.Fila(frame)
	ModuloArgs.obtenerTablaDeArgumentos(frame)
	entidad = argumento{'entidad'}
	local lang = mw.language.getContentLanguage()
	local nombre = argumento{'país', 'zona'} or ''
	local poblacion = argumento{'población'}
	local confirmados = argumento{'confirmados', {propiedad, 'P1603'} }
	local fallecidos = argumento{'fallecidos', {propiedad, 'P1120'} }
	local recuperados = argumento{'recuperados', {propiedad, 'P8010'} }
	local valorPoblacion = poblacion and tonumber(poblacion) or 0
	local valorConfirmados = confirmados and tonumber(confirmados) or 0
	local valorFallecidos = fallecidos and tonumber(fallecidos) or 0
	local valorRecuperados = recuperados and tonumber(recuperados) or 0
	local valorCxMhab = poblacion and math.floor(1000000 * valorConfirmados / valorPoblacion)
	local valorFxMhab = poblacion and math.floor(1000000 * valorFallecidos / valorPoblacion)
	local valorFx100C = confirmados and string.format('%.1f', 100 * valorFallecidos / valorConfirmados)
	local valorRx100C = confirmados and string.format('%.1f', 100 * valorRecuperados / valorConfirmados)
	local textoPoblacion = poblacion and lang:formatNum( valorPoblacion ) or ''
	local textoFallecidos = fallecidos and lang:formatNum( valorFallecidos ) or ''
	local textoConfirmados = confirmados and lang:formatNum( valorConfirmados ) or ''
	local textoRecuperados = recuperados and lang:formatNum( valorRecuperados ) or ''
	local textoCxMhab = confirmados and poblacion and lang:formatNum( valorCxMhab ) or ''
	local textoFx100C = fallecidos and confirmados and (valorFx100C .. ' %') or ''
	local textoFxMhab = fallecidos and poblacion and lang:formatNum( valorFxMhab ) or ''
	local textoRx100C = recuperados and confirmados and (valorRx100C .. ' %') or ''
	if argumento{'país'} then
		nombre = frame:preprocess('{{Bandera3|' .. nombre .. '}}')
	end
	return '<tr>'
		.. '<th style="text-align: left;">' .. nombre .. '</th>'
		.. '<td>' .. textoPoblacion .. '</td>'
		.. '<td>' .. textoConfirmados .. '</td>'
		.. '<td>' .. textoCxMhab .. '</td>'
		.. '<td>' .. textoFallecidos .. '</td>'
		.. '<td>' .. textoFx100C .. '</td>'
		.. '<td>' .. textoFxMhab .. '</td>'
		.. '<td>' .. textoRecuperados .. '</td>'
		.. '<td>' .. textoRx100C .. '</td>'
		.. '</tr>'
end

return z