Módulo:CheckDigit

From Wikincat
Jump to navigation Jump to search

A documentação para este módulo pode ser criada em Módulo:CheckDigit/doc

local p = {}
function p.generate ( frame )
	local str = mw.text.trim( frame.args[1] ) or ''
	local tab = {}
	local newtab = {}
	local sum = 0
	local checkDigit = 0

	str:gsub( ".", function( each ) table.insert( tab, each ) end )

	for key, value in pairs(tab) 
	do
		if (key % 2 == 0) then -- é par
			table.insert( newtab, value * 3 )
		else -- é impar
			table.insert( newtab, value )
		end
	end
	
	for key, value in pairs( newtab ) 
	do
		sum = sum + value
	end
	
	checkDigit = 10 - ( sum % 10 )
	
	if checkDigit == 10 
	then 
		checkDigit = 0 
	end
	
	return str .. checkDigit
	
end
return p