Module:Prix
La documentation pour ce module peut être créée à Module:Prix/doc
local p = {}
local Math = require( "Module:Math" )
local Data = mw.loadData( 'Module:Prix/Data' )
local MonnaieErrorMess = ' <span style="color:#ff0000">Unité monétaire manquante ou inconnue</span>'
local categorie = ' '
local lang = mw.getContentLanguage()
function p.Prix(frame)
local PrixLocal = tonumber(frame.args[1])
if type(PrixLocal) == 'number' then
local PrixDeviseLocal = PrixLocal
local formatted_PrixDeviseLocal = lang:formatNum( PrixLocal )
local MonnaieLocale= frame.args[2]
local MonnaieLocaleExist = Data[ MonnaieLocale ] -- teste si le code de monnaie existe
if type(MonnaieLocaleExist) == 'table' then
local Cours = Data[ MonnaieLocale ].cours
local DateCours = Data[ MonnaieLocale ].date
local NomMonnaieLocale = Data[ MonnaieLocale ].nom
local AbrMonnaieLocale = Data[ MonnaieLocale ].abreviation
local CodeMonnaieLocale = Data[ MonnaieLocale ].code
local NumCours = tonumber(Cours)
if type(NumCours) ~= 'nil' then -- si le cours de change n'est pas présent dans Module:Prix/Data
local PrixEnEuro = Math._round(PrixDeviseLocal * 1 / NumCours, 2)
local formatted_PrixEnEuro = lang:formatNum( PrixEnEuro )
local CoursCFA = Data[ 'XAF' ].cours
local NumCoursCFA = tonumber(CoursCFA)
local PrixEnCFA = Math._round(PrixDeviseLocal * NumCoursCFA / NumCours, 2)
local formatted_PrixEnCFA = lang:formatNum( PrixEnCFA )
local CoursCHF = Data[ 'CHF' ].cours
local NumCoursCHF = tonumber(CoursCHF)
local PrixEnCHF = Math._round(PrixDeviseLocal * NumCoursCHF / NumCours, 2)
local formatted_PrixEnCHF = lang:formatNum( PrixEnCHF )
local CoursCAD = Data[ 'CAD' ].cours
local NumCoursCAD = tonumber(CoursCAD)
local PrixEnCAD = Math._round(PrixDeviseLocal * NumCoursCAD / NumCours, 2)
local formatted_PrixEnCAD = lang:formatNum( PrixEnCAD )
local CoursUSD = Data[ 'USD' ].cours
local NumCoursUSD = tonumber(CoursUSD)
local PrixEnUSD = Math._round(PrixDeviseLocal * NumCoursUSD / NumCours, 2)
local formatted_PrixEnUSD = lang:formatNum( PrixEnUSD )
if CodeMonnaieLocale == 'EUR' then
local DateCours = Data[ 'USD' ].date
return formatted_PrixDeviseLocal .. ' <abbr title="'.. NomMonnaieLocale .. '">' .. AbrMonnaieLocale .. "</abbr>" .. '<span class="MonnaieRefCHF" style="display:none;"><small> (~' .. formatted_PrixEnCHF .. " Fr. - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCAD" style="display:none;"><small> (~' .. formatted_PrixEnCAD .. " $C - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefUSD" style="display:none;"><small> (~' .. formatted_PrixEnUSD .. " $ - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCFA" style="display:none;"><small> (~' .. formatted_PrixEnCFA .. " F CFA - cours du " .. DateCours .. ")</small></span>"
elseif CodeMonnaieLocale == 'CHF' then
return formatted_PrixDeviseLocal .. ' <abbr title="'.. NomMonnaieLocale .. '">' .. AbrMonnaieLocale .. "</abbr>" .. '<span class="MonnaieRefEUR" style="display:none;"><small> (<abbr title="Les utilisateurs connectés peuvent choisir leur monnaie de référence via l’onglet préférences puis gadgets">~' .. formatted_PrixEnEuro .. " €</abbr> - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCAD" style="display:none;"><small> (~' .. formatted_PrixEnCAD .. " $C - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefUSD" style="display:none;"><small> (~' .. formatted_PrixEnUSD .. " $ - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCFA" style="display:none;"><small> (~' .. formatted_PrixEnCFA .. " F CFA - cours du " .. DateCours .. ")</small></span>"
elseif CodeMonnaieLocale == 'CAD' then
return formatted_PrixDeviseLocal .. ' <abbr title="'.. NomMonnaieLocale .. '">' .. AbrMonnaieLocale .. "</abbr>" .. '<span class="MonnaieRefEUR" style="display:none;"><small> (<abbr title="Les utilisateurs connectés peuvent choisir leur monnaie de référence via l’onglet préférences puis gadgets">~' .. formatted_PrixEnEuro .. " €</abbr> - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCHF" style="display:none;"><small> (~' .. formatted_PrixEnCHF .. " Fr. - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefUSD" style="display:none;"><small> (~' .. formatted_PrixEnUSD .. " $ - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCFA" style="display:none;"><small> (~' .. formatted_PrixEnCFA .. " F CFA - cours du " .. DateCours .. ")</small></span>"
elseif CodeMonnaieLocale == 'USD' then
return formatted_PrixDeviseLocal .. ' <abbr title="'.. NomMonnaieLocale .. '">' .. AbrMonnaieLocale .. "</abbr>" .. '<span class="MonnaieRefEUR" style="display:none;"><small> (<abbr title="Les utilisateurs connectés peuvent choisir leur monnaie de référence via l’onglet préférences puis gadgets">~' .. formatted_PrixEnEuro .. " €</abbr> - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCHF" style="display:none;"><small> (~' .. formatted_PrixEnCHF .. " Fr. - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCAD" style="display:none;"><small> (~' .. formatted_PrixEnCAD .. " $C - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCFA" style="display:none;"><small> (~' .. formatted_PrixEnCFA .. " F CFA - cours du " .. DateCours .. ")</small></span>"
elseif CodeMonnaieLocale == 'XOF' then
return formatted_PrixDeviseLocal .. ' <abbr title="'.. NomMonnaieLocale .. '">' .. AbrMonnaieLocale .. "</abbr>" .. '<span class="MonnaieRefEUR" style="display:none;"><small> (<abbr title="Les utilisateurs connectés peuvent choisir leur monnaie de référence via l’onglet préférences puis gadgets">~' .. formatted_PrixEnEuro .. " €</abbr> - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCHF" style="display:none;"><small> (~' .. formatted_PrixEnCHF .. " Fr. - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCAD" style="display:none;"><small> (~' .. formatted_PrixEnCAD .. " $C - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefUSD" style="display:none;"><small> (~' .. formatted_PrixEnUSD .. " $ - cours du " .. DateCours .. ")</small></span>"
elseif CodeMonnaieLocale == 'XAF' then
return formatted_PrixDeviseLocal .. ' <abbr title="'.. NomMonnaieLocale .. '">' .. AbrMonnaieLocale .. "</abbr>" .. '<span class="MonnaieRefEUR" style="display:none;"><small> (<abbr title="Les utilisateurs connectés peuvent choisir leur monnaie de référence via l’onglet préférences puis gadgets">~' .. formatted_PrixEnEuro .. " €</abbr> - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCHF" style="display:none;"><small> (~' .. formatted_PrixEnCHF .. " Fr. - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCAD" style="display:none;"><small> (~' .. formatted_PrixEnCAD .. " $C - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefUSD" style="display:none;"><small> (~' .. formatted_PrixEnUSD .. " $ - cours du " .. DateCours .. ")</small></span>"
else
return formatted_PrixDeviseLocal .. ' <abbr title="'.. NomMonnaieLocale .. '">' .. AbrMonnaieLocale .. "</abbr>" .. '<span class="MonnaieRefEUR" style="display:none;"><small> (<abbr title="Les utilisateurs connectés peuvent choisir leur monnaie de référence via l’onglet préférences puis gadgets">~' .. formatted_PrixEnEuro .. " €</abbr> - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCHF" style="display:none;"><small> (~' .. formatted_PrixEnCHF .. " Fr. - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCAD" style="display:none;"><small> (~' .. formatted_PrixEnCAD .. " $C - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefUSD" style="display:none;"><small> (~' .. formatted_PrixEnUSD .. " $ - cours du " .. DateCours .. ")</small></span>" .. '<span class="MonnaieRefCFA" style="display:none;"><small> (~' .. formatted_PrixEnCFA .. " F CFA - cours du " .. DateCours .. ")</small></span>"
end
else
return formatted_PrixDeviseLocal .. ' <abbr title="'.. NomMonnaieLocale .. '">' .. AbrMonnaieLocale .. "</abbr>"
end
else
local namespaceCategorisation = { [0] = true, [4] = true, [10] = true, [12] = true, [14] = true, [100] = true }
if namespaceCategorisation[ mw.title.getCurrentTitle().namespace ] then
Categorie = ' [[Catégorie:Page avec unité monétaire manquante ou inconnue]]'
return formatted_PrixDeviseLocal .. MonnaieErrorMess .. Categorie
else
return formatted_PrixDeviseLocal .. MonnaieErrorMess
end
end
else
return ' <span style="color:#ff0000">Utilisez le point comme marque de décimale</span>'
end
end
return p