Vorlage:BV-BgPreisIndex
Aus BogenWiki
(Unterschied zwischen Versionen)
Nugman (Diskussion | Beiträge) |
Nugman (Diskussion | Beiträge) |
||
Zeile 10: | Zeile 10: | ||
BVBgList = BgList; | BVBgList = BgList; | ||
for (var b = 0; b < BVBgList.length; b++) | for (var b = 0; b < BVBgList.length; b++) | ||
- | BVGetBogen(Param.WikiUser,Param.Gebiet,Param.Gebiet1,Param.KatNr,BVBgList[b].BogenNr,OnBgLoad); | + | BVGetBogen(Param.WikiUser,Param.Gebiet,Param.Gebiet1,Param.KatNr,BVBgList[b].BogenNr,Param.Options,OnBgLoad); |
} | } | ||
function OnBgLoad(Bogen,Param) | function OnBgLoad(Bogen,Param) | ||
Zeile 28: | Zeile 28: | ||
' <tr style="background:#E0E0E0" valign=top>'+ | ' <tr style="background:#E0E0E0" valign=top>'+ | ||
' <td rowspan=2><div style="'+sCellPadding+'"><b>BogenNr.</b><br>'+BVBgList.length+'</div></td>'+ | ' <td rowspan=2><div style="'+sCellPadding+'"><b>BogenNr.</b><br>'+BVBgList.length+'</div></td>'+ | ||
- | ' <td colspan=2><div style="'+sCellPadding+'"><b> | + | ' <td colspan=2><div style="'+sCellPadding+'"><b>Eigenschaften</b></div></td>'+ |
' <td colspan=3><div style="'+sCellPadding+'"><b>Preis</b></div></td>'+ | ' <td colspan=3><div style="'+sCellPadding+'"><b>Preis</b></div></td>'+ | ||
' </tr>'+ | ' </tr>'+ | ||
Zeile 53: | Zeile 53: | ||
if (BVBgList[b].BogenWiki == 'X') | if (BVBgList[b].BogenWiki == 'X') | ||
sBN = '<a href="/bogenwiki/index.php?title=Bund MiNr. '+BVBgList[b].BogenNr+' groß">'+BVBgList[b].BogenNr+'</a>'; | sBN = '<a href="/bogenwiki/index.php?title=Bund MiNr. '+BVBgList[b].BogenNr+' groß">'+BVBgList[b].BogenNr+'</a>'; | ||
- | var sPreis = BVBgList[b].Eingang.Preis | + | var sPreis = BVBgList[b].Eingang.Preis; |
var bPreis = ((BVBgList[b].Eingang.Art == 'AZ') || (BVBgList[b].Eingang.Art == 'K')); | var bPreis = ((BVBgList[b].Eingang.Art == 'AZ') || (BVBgList[b].Eingang.Art == 'K')); | ||
if (bPreis) { | if (bPreis) { | ||
+ | var aOptions = Param.Options.split(';'); | ||
+ | var aGroupBy = ''; | ||
+ | for (o = 0; o < aOptions.length; o++) { | ||
+ | if (aOptions[o].split(':')[0] == 'GroupBy') | ||
+ | aGroupBy = aOptions[o].split(':')[1].split('+'); | ||
+ | } | ||
+ | var sGroupByValue = ''; | ||
+ | for (g = 0; g < aGroupBy.length; g++) { | ||
+ | sGroupByValue += BVGetBgFieldValue(BVBgList[b],aGroupBy[g])+'::'; | ||
+ | } | ||
var nPreis = parseFloat(sPreis.replace(/,/,'.')) | var nPreis = parseFloat(sPreis.replace(/,/,'.')) | ||
- | var | + | var nGroupIdx = -1; |
for (var p = 0; p < BVBgPreise.length; p++) | for (var p = 0; p < BVBgPreise.length; p++) | ||
- | if (BVBgPreise[p]. | + | if (BVBgPreise[p].GroupValue == sGroupByValue) nGroupIdx = p; |
- | if ( | + | if (nGroupIdx < 0) { |
- | BVBgPreise.push({ | + | BVBgPreise.push({GroupValue:sGroupByValue, Min:nPreis, Sum:nPreis, Max:nPreis, Count:1, Preise:[nPreis]}); |
} else { | } else { | ||
- | if (nPreis < BVBgPreise[nDKZIdx].Min) BVBgPreise[ | + | if (nPreis < BVBgPreise[nDKZIdx].Min) BVBgPreise[nGroupIdx].Min = nPreis; |
- | if (nPreis > BVBgPreise[nDKZIdx].Max) BVBgPreise[ | + | if (nPreis > BVBgPreise[nDKZIdx].Max) BVBgPreise[nGroupIdx].Max = nPreis; |
- | BVBgPreise[ | + | BVBgPreise[nGroupIdx].Sum += nPreis; |
- | BVBgPreise[ | + | BVBgPreise[nGroupIdx].Count++; |
- | BVBgPreise[ | + | BVBgPreise[nGroupIdx].Preise.push(nPreis); |
} | } | ||
} else { | } else { | ||
Zeile 86: | Zeile 96: | ||
sTabHTML = '<table id="BVBgPreise.'+Param.Gebiet+'.'+Param.Gebiet1+'.'+Param.KatNr+'.Tab" style="background:silver" cellpadding=1 cellspacing=1>'+ | sTabHTML = '<table id="BVBgPreise.'+Param.Gebiet+'.'+Param.Gebiet1+'.'+Param.KatNr+'.Tab" style="background:silver" cellpadding=1 cellspacing=1>'+ | ||
' <tr style="background:#E0E0E0" valign=top>'+ | ' <tr style="background:#E0E0E0" valign=top>'+ | ||
- | ' <td><div style="'+sCellPadding+'"><b> | + | ' <td><div style="'+sCellPadding+'"><b>Group</b></div></td>'+ |
' <td><div style="'+sCellPadding+'"><b>Min</b></div></td>'+ | ' <td><div style="'+sCellPadding+'"><b>Min</b></div></td>'+ | ||
' <td><div style="'+sCellPadding+'"><b>Avg.</b></div></td>'+ | ' <td><div style="'+sCellPadding+'"><b>Avg.</b></div></td>'+ | ||
Zeile 93: | Zeile 103: | ||
' <td><div style="'+sCellPadding+'"><b>Anz.</b></div></td>'+ | ' <td><div style="'+sCellPadding+'"><b>Anz.</b></div></td>'+ | ||
' </tr>'; | ' </tr>'; | ||
- | BVBgPreise.sort((a, b) => a. | + | BVBgPreise.sort((a, b) => a.GroupValue > b.GroupValue ? 1 : -1); |
for (var p = 0; p < BVBgPreise.length; p++) | for (var p = 0; p < BVBgPreise.length; p++) | ||
sTabHTML += ' <tr style="background:#FCFCFC" valign=top>'+ | sTabHTML += ' <tr style="background:#FCFCFC" valign=top>'+ | ||
- | ' <td><div style="'+sCellPadding+'">'+BVBgPreise[p]. | + | ' <td><div style="'+sCellPadding+'">'+BVBgPreise[p].GroupValue+'</div></td>'+ |
' <td align=right><div style="'+sCellPadding+'">'+BVBgPreise[p].Min.toFixed(2).replace(/\./,',')+'€</div></td>'+ | ' <td align=right><div style="'+sCellPadding+'">'+BVBgPreise[p].Min.toFixed(2).replace(/\./,',')+'€</div></td>'+ | ||
' <td align=right><div style="'+sCellPadding+'">'+(BVBgPreise[p].Sum/BVBgPreise[p].Count).toFixed(2).replace(/\./,',')+'€</div></td>'+ | ' <td align=right><div style="'+sCellPadding+'">'+(BVBgPreise[p].Sum/BVBgPreise[p].Count).toFixed(2).replace(/\./,',')+'€</div></td>'+ | ||
Zeile 117: | Zeile 127: | ||
} | } | ||
</script></html> | </script></html> | ||
- | |Index=<html><script>BVGetBogenList('all','</html>{{{Gebiet}}}<html>','</html>{{{Gebiet1}}}<html>','</html>{{{KatNr}}}<html>',OnBgListLoad);</script></html> | + | |Index=<html><script>BVGetBogenList('all','</html>{{{Gebiet}}}<html>','</html>{{{Gebiet1}}}<html>','</html>{{{KatNr}}}<html>','GroupBy:</html>{{{GroupBy}}}<html>',OnBgListLoad);</script></html> |
|#default=<span style="color:red"><b>Template BV_BgPreisIndex: Invalid value for parameter Cmd ("{{{Cmd|''empty''}}}")!!!</b></span> | |#default=<span style="color:red"><b>Template BV_BgPreisIndex: Invalid value for parameter Cmd ("{{{Cmd|''empty''}}}")!!!</b></span> | ||
}} | }} |
Version vom 12:47, 24. Sep. 2023
Template BV_BgPreisIndex: Invalid value for parameter Cmd ("empty")!!!