Modul:PLaden

Aus SchnuppTrupp
Wechseln zu: Navigation, Suche

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]=='null' then -- wenn der Verkaufspreis nicht angegeben wurde dann automatisch value verwenden
	    	vkpreis = tonumber(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