Modul:PLaden
Aus SchnuppTrupp
Version vom 24. November 2020, 18:51 Uhr von Siedler6 (Diskussion | Beiträge)
Die Dokumentation für dieses Modul kann unter Modul:PLaden/Doku erstellt werden
local v = {} function v.laden(frame) local fargs = frame.args local id = fargs.id or '' local lager = tonumber(fargs.lager or '1') local vkpreis = fargs.vkpreis or nil local MHI = require( "Module:MHI" ) -- Läd Modul MHI um die Funktionen zu nutzen local mhp = frame:callParserFunction{ name= '#mh', args= { id } } -- Speichert den MHPreis local bild = mh:bild(frame,id,'') local name = frame:callParserFunction{ name= '#mh', args= { id,'n' } } name = frame:callParserFunction{ name= '#ifexist', args= { name,'[['..name..']]',name } } local lagerpl = frame:callParserFunction{ name= '#pl', args= { lager } } if vkpreis=='null' then vkpreis = mh:value(frame,id) else vkpreis = tonumber(vkpreis) end local vkpreispl = frame:callParserFunction{ name= '#pl', args= { vkpreis } } local mhpreis = mh:mhpreis(frame,id) local wertlagerpl = (mhp-vkpreis) * lager wertlagerpl = frame:callParserFunction{ name= '#pl', args= { wertlagerpl } } vkpreis=tonumber(vkpreis) local gewinninv local ItemMitglied = frame:callParserFunction{ name= '#mh', args= { id, 'm' } } local mitglied = '|'..frame:callParserFunction{ name= '#ifeq', args= { ItemMitglied,'Ja','[[Datei:Mitglied.png|Mitgliedsgegenstand]]','[[Datei:Nichtmitglied.png|Nicht Mitgliedsgegenstand]]' } } return '|'..bild..'||align="left" width="280px"|'..name..'||'..lagerpl..'||'..vkpreispl..'||'..mhpreis..'||'..wertlagerpl..'||'..mitglied..'\n|-' end function v.gesamt(frame) local fargs = frame.args local MHI = require( "Module:MHI" ) -- Läd Modul MHI um die Funktionen zu nutzen local lagertotal = 0 local werttotal = 0 local i = 1 local inhalt = split(fargs[i], ";") while (inhalt[2] ~= nil and fargs[i] ~= '' and i<=40) -- Maximal 40 Einträge in einer Ladenliste do local mhpreis = frame:callParserFunction{ name= '#mh', args= { inhalt[1] } } -- Gegenstand Name oder ID in inhalt[1] lagertotal = lagertotal + tonumber(inhalt[2]) -- Lager if inhalt[3]== nil or inhalt[3]== '' or inhalt[3]== 'null' then -- wenn der Verkaufspreis nicht angegeben wurde dann automatisch value verwenden vkpreis = mh:value(frame,inhalt[1]) else vkpreis = tonumber(inhalt[3]) end if (mhpreis-vkpreis) >0 then -- nur wenn der der Kauf keinen Verlust gibt werttotal = werttotal + ((mhpreis-vkpreis)*tonumber(inhalt[2])) end i = i+1 if fargs[i] ~= nil then inhalt = split(fargs[i], ";") else inhalt [1] = nil inhalt [2] = nil inhalt [3] = nil end end lagertotalpl = frame:callParserFunction{ name= '#pl', args= { lagertotal } } werttotalpl = frame:callParserFunction{ name= '#pl', args= { werttotal } } return '! !!align="left" colspan="1" |<b><span title="Gesamter Verkaufswert wenn alle Gegenstände eingekauft werden">Gesamt Wert:</span></b>||<b>'..lagertotalpl..'</b>|| || ||<b>'..werttotalpl..'</b>\n|-' end function split(s, delimiter) result = {}; for match in (s..delimiter):gmatch("(.-)"..delimiter) do table.insert(result, match); end return result; end return v