Persönliche Werkzeuge

Vorlage:BV-BgPreisIndex

Aus BogenWiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
Zeile 4: Zeile 4:
BVBgList    = [];
BVBgList    = [];
BVBgPreise  = [];
BVBgPreise  = [];
-
BVBgLoadCount = 0;
 
function OnBgListLoad(BgList,Param)
function OnBgListLoad(BgList,Param)
{
{
   console.log('[OnBgListLoad]');
   console.log('[OnBgListLoad]');
   BVBgList = BgList;
   BVBgList = BgList;
 +
  var aBogenNr = [];
   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,Param.Options,OnBgLoad);
+
     aBogenNr.push(BVBgList[b].BogenNr);
 +
  BVGetBogen(Param.WikiUser,Param.Gebiet,Param.Gebiet1,Param.KatNr,aBogenNr,Param.Options,OnBgLoad);
}
}
function OnBgLoad(Bogen,Param)
function OnBgLoad(Bogen,Param)
{
{
-
   console.log('[OnBgLoad] Bogen.BogenNr='+Bogen.BogenNr);
+
   console.log('[OnBgLoad] Bogen.length='+Bogen.length);
 +
  BVBgList = Bogen;
 +
  var sCellPadding = 'padding:0px; padding-left:4px; padding-right:4px;';
 +
  var eBgList = document.getElementById('BVBgList.'+Param.Gebiet+'.'+Param.Gebiet1+'.'+Param.KatNr);
 +
  var sTabHTML = '<table id="BVBgList.'+Param.Gebiet+'.'+Param.Gebiet1+'.'+Param.KatNr+'.Tab" style="background:silver" cellpadding=1 cellspacing=1>'+
 +
                '  <tr style="background:#E0E0E0" valign=top>'+
 +
                '    <td rowspan=2><div style="'+sCellPadding+'"><b>BogenNr.</b><br>'+BVBgList.length+'</div></td>'+
 +
                '    <td colspan=2><div style="'+sCellPadding+'"><b>Eigenschaften</b></div></td>'+
 +
                '    <td colspan=3><div style="'+sCellPadding+'"><b>Preis</b></div></td>'+
 +
                '  </tr>'+
 +
                '  <tr style="background:#E0E0E0" valign=top>'+
 +
                '    <td><div style="'+sCellPadding+'"><b>DKZ</b></div></td>'+
 +
                '    <td><div style="'+sCellPadding+'"><b>BZN</b></div></td>'+
 +
                '    <td><div style="'+sCellPadding+'"><b>Datum</b></div></td>'+
 +
                '    <td><div style="'+sCellPadding+'"><b>Zuschlag</b></div></td>'+
 +
                '    <td><div style="'+sCellPadding+'"><b>AH</b></div></td>'+
 +
                '  </tr>';
   for (var b = 0; b < BVBgList.length; b++) {
   for (var b = 0; b < BVBgList.length; b++) {
-
     if (BVBgList[b].BogenNr == Bogen.BogenNr) {
+
     var sDKZ = '-';
-
       BVBgList[b] = Bogen;
+
    var sBZN = '';
-
       BVBgLoadCount++;
+
    for (var brs = 0; brs < BVBgList[b].BRS.length; brs++) {
-
      console.log('[OnBgLoad] BVBgList['+b+'] BVBgLoadCount='+BVBgLoadCount);
+
       if (BVBgList[b].BRS[brs].Type == 'DKZ') sDKZ = BVBgList[b].BRS[brs].Key;
 +
       if (BVBgList[b].BRS[brs].Type == 'BZN') sBZN = BVBgList[b].BRS[brs].Text;
     }
     }
-
  }
+
     var sAH = '';
-
  if (BVBgLoadCount == BVBgList.length) {
+
     switch (BVBgList[b].Eingang.Quelle) {
-
     var sCellPadding = 'padding:0px; padding-left:4px; padding-right:4px;';
+
      case 'eb': sAH = 'ebay'; break;
-
     var eBgList = document.getElementById('BVBgList.'+Param.Gebiet+'.'+Param.Gebiet1+'.'+Param.KatNr);
+
      case 'ah': sAH = BVBgList[b].Eingang.Name; break;
-
    var sTabHTML = '<table id="BVBgList.'+Param.Gebiet+'.'+Param.Gebiet1+'.'+Param.KatNr+'.Tab" style="background:silver" cellpadding=1 cellspacing=1>'+
+
    }
-
                  '  <tr style="background:#E0E0E0" valign=top>'+
+
    var sBN = BVBgList[b].BogenNr;
-
                  '    <td rowspan=2><div style="'+sCellPadding+'"><b>BogenNr.</b><br>'+BVBgList.length+'</div></td>'+
+
    if (BVBgList[b].BogenWiki == 'X')
-
                  '   <td colspan=2><div style="'+sCellPadding+'"><b>Eigenschaften</b></div></td>'+
+
      sBN = '<a href="/bogenwiki/index.php?title=Bund MiNr. '+BVBgList[b].BogenNr+' groß">'+BVBgList[b].BogenNr+'</a>';
-
                  '    <td colspan=3><div style="'+sCellPadding+'"><b>Preis</b></div></td>'+
+
    var sPreis = BVBgList[b].Eingang.Preis;
-
                  ' </tr>'+
+
    var bPreis = ((BVBgList[b].Eingang.Art == 'AZ') || (BVBgList[b].Eingang.Art == 'K'));
-
                  '  <tr style="background:#E0E0E0" valign=top>'+
+
     if (bPreis) {
-
                  '    <td><div style="'+sCellPadding+'"><b>DKZ</b></div></td>'+
+
       var aOptions = Param.Options.split(';');
-
                  '    <td><div style="'+sCellPadding+'"><b>BZN</b></div></td>'+
+
       var aGroupBy = '';
-
                  '    <td><div style="'+sCellPadding+'"><b>Datum</b></div></td>'+
+
       for (o = 0; o < aOptions.length; o++) {
-
                  '    <td><div style="'+sCellPadding+'"><b>Zuschlag</b></div></td>'+
+
         if (aOptions[o].split(':')[0] == 'GroupBy')
-
                  '    <td><div style="'+sCellPadding+'"><b>AH</b></div></td>'+
+
          aGroupBy = aOptions[o].split(':')[1].split('+');
-
                  '  </tr>';
+
-
     for (var b = 0; b < BVBgList.length; b++) {
+
-
       var sDKZ = '-';
+
-
       var sBZN = '';
+
-
       for (var brs = 0; brs < BVBgList[b].BRS.length; brs++) {
+
-
         if (BVBgList[b].BRS[brs].Type == 'DKZ') sDKZ = BVBgList[b].BRS[brs].Key;
+
-
        if (BVBgList[b].BRS[brs].Type == 'BZN') sBZN = BVBgList[b].BRS[brs].Text;
+
       }
       }
-
       var sAH = '';
+
       var sGroupByValue = '';
-
       switch (BVBgList[b].Eingang.Quelle) {
+
       for (g = 0; g < aGroupBy.length; g++) {
-
         case 'eb': sAH = 'ebay'; break;
+
         sGroupByValue += BVGetBgFieldValue(BVBgList[b],aGroupBy[g])+'::';
-
        case 'ah': sAH = BVBgList[b].Eingang.Name; break;
+
       }
       }
-
       var sBN = BVBgList[b].BogenNr;
+
       var nPreis = parseFloat(sPreis.replace(/,/,'.'))
-
      if (BVBgList[b].BogenWiki == 'X')
+
      var nGroupIdx = -1;
-
        sBN = '<a href="/bogenwiki/index.php?title=Bund MiNr. '+BVBgList[b].BogenNr+' groß">'+BVBgList[b].BogenNr+'</a>';
+
      for (var p = 0; p < BVBgPreise.length; p++)
-
      var sPreis = BVBgList[b].Eingang.Preis;
+
        if (BVBgPreise[p].GroupValue == sGroupByValue) nGroupIdx = p;
-
      var bPreis = ((BVBgList[b].Eingang.Art == 'AZ') || (BVBgList[b].Eingang.Art == 'K'));
+
      if (nGroupIdx < 0) {
-
      if (bPreis) {
+
        BVBgPreise.push({GroupValue:sGroupByValue, Min:nPreis, Sum:nPreis, Max:nPreis, Count:1, Preise:[nPreis]});
-
        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 nGroupIdx = -1;
+
-
        for (var p = 0; p < BVBgPreise.length; p++)
+
-
          if (BVBgPreise[p].GroupValue == sGroupByValue) nGroupIdx = p;
+
-
        if (nGroupIdx < 0) {
+
-
          BVBgPreise.push({GroupValue:sGroupByValue, Min:nPreis, Sum:nPreis, Max:nPreis, Count:1, Preise:[nPreis]});
+
-
        } else {
+
-
          if (nPreis < BVBgPreise[nGroupIdx].Min) BVBgPreise[nGroupIdx].Min = nPreis;
+
-
          if (nPreis > BVBgPreise[nGroupIdx].Max) BVBgPreise[nGroupIdx].Max = nPreis;
+
-
          BVBgPreise[nGroupIdx].Sum += nPreis;
+
-
          BVBgPreise[nGroupIdx].Count++;
+
-
          BVBgPreise[nGroupIdx].Preise.push(nPreis);
+
-
        }
+
       } else {
       } else {
-
         sPreis = '<span style="color:silver;"><i>'+BVBgList[b].Eingang.Preis+'€</i></span>';
+
         if (nPreis < BVBgPreise[nGroupIdx].Min) BVBgPreise[nGroupIdx].Min = nPreis;
 +
        if (nPreis > BVBgPreise[nGroupIdx].Max) BVBgPreise[nGroupIdx].Max = nPreis;
 +
        BVBgPreise[nGroupIdx].Sum += nPreis;
 +
        BVBgPreise[nGroupIdx].Count++;
 +
        BVBgPreise[nGroupIdx].Preise.push(nPreis);
       }
       }
-
       sTabHTML += ' <tr style="background:#FCFCFC" valign=top>'+
+
    } else {
-
                  '    <td><div style="'+sCellPadding+'">'+sBN+'</div></td>'+
+
       sPreis = '<span style="color:silver;"><i>'+BVBgList[b].Eingang.Preis+'</i></span>';
-
                  '    <td align=center><div style="'+sCellPadding+'">'+sDKZ+'</div></td>'+
+
-
                  '    <td align=center><div style="'+sCellPadding+'">'+sBZN+'</div></td>'+
+
-
                  '    <td><div style="'+sCellPadding+'">'+BVBgList[b].Eingang.Datum+'</div></td>'+
+
-
                  '    <td align=right><div style="'+sCellPadding+'">'+sPreis+'</div></td>'+
+
-
                  '    <td><div style="'+sCellPadding+'">'+sAH+'</div></td>'+
+
-
                  '  </tr>';
+
     }
     }
-
     sTabHTML += '</table>';
+
     sTabHTML += '  <tr style="background:#FCFCFC" valign=top>'+
-
    if (eBgList) eBgList.innerHTML = sTabHTML;
+
                '    <td><div style="'+sCellPadding+'">'+sBN+'</div></td>'+
-
    var eBgPreise = document.getElementById('BVBgPreise.'+Param.Gebiet+'.'+Param.Gebiet1+'.'+Param.KatNr);
+
                '    <td align=center><div style="'+sCellPadding+'">'+sDKZ+'</div></td>'+
-
    var aGroupBy = '';
+
                '    <td align=center><div style="'+sCellPadding+'">'+sBZN+'</div></td>'+
-
    for (o = 0; o < aOptions.length; o++) {
+
                '    <td><div style="'+sCellPadding+'">'+BVBgList[b].Eingang.Datum+'</div></td>'+
-
      if (aOptions[o].split(':')[0] == 'GroupBy')
+
                '    <td align=right><div style="'+sCellPadding+'">'+sPreis+'</div></td>'+
-
        aGroupBy = aOptions[o].split(':')[1].split('+');
+
                '    <td><div style="'+sCellPadding+'">'+sAH+'</div></td>'+
-
    }
+
                '  </tr>';
-
    sTabHTML = '<table id="BVBgPreise.'+Param.Gebiet+'.'+Param.Gebiet1+'.'+Param.KatNr+'.Tab" style="background:silver" cellpadding=1 cellspacing=1>'+
+
  }
-
              '  <tr style="background:#E0E0E0" valign=top>';
+
  sTabHTML += '</table>';
-
    for (g = 0; g < aGroupBy.length; g++)
+
  if (eBgList) eBgList.innerHTML = sTabHTML;
-
      sTabHTML += '    <td><div style="'+sCellPadding+'"><b>'+aGroupBy[g]+'</b></div></td>';
+
  var eBgPreise = document.getElementById('BVBgPreise.'+Param.Gebiet+'.'+Param.Gebiet1+'.'+Param.KatNr);
-
    sTabHTML += '    <td><div style="'+sCellPadding+'"><b>Min</b></div></td>'+
+
  var aGroupBy = '';
-
                '    <td><div style="'+sCellPadding+'"><b>Avg.</b></div></td>'+
+
  for (o = 0; o < aOptions.length; o++) {
-
                '    <td><div style="'+sCellPadding+'"><b>Med.</b></div></td>'+
+
    if (aOptions[o].split(':')[0] == 'GroupBy')
-
                '    <td><div style="'+sCellPadding+'"><b>Max</b></div></td>'+
+
      aGroupBy = aOptions[o].split(':')[1].split('+');
-
                '    <td><div style="'+sCellPadding+'"><b>Anz.</b></div></td>'+
+
  }
 +
  sTabHTML = '<table id="BVBgPreise.'+Param.Gebiet+'.'+Param.Gebiet1+'.'+Param.KatNr+'.Tab" style="background:silver" cellpadding=1 cellspacing=1>'+
 +
            '  <tr style="background:#E0E0E0" valign=top>';
 +
  for (g = 0; g < aGroupBy.length; g++)
 +
    sTabHTML += '    <td><div style="'+sCellPadding+'"><b>'+aGroupBy[g]+'</b></div></td>';
 +
  sTabHTML += '    <td><div style="'+sCellPadding+'"><b>Min</b></div></td>'+
 +
              '    <td><div style="'+sCellPadding+'"><b>Avg.</b></div></td>'+
 +
              '    <td><div style="'+sCellPadding+'"><b>Med.</b></div></td>'+
 +
              '    <td><div style="'+sCellPadding+'"><b>Max</b></div></td>'+
 +
              '    <td><div style="'+sCellPadding+'"><b>Anz.</b></div></td>'+
 +
              '  </tr>';
 +
  BVBgPreise.sort((a, b) => a.GroupValue > b.GroupValue ? 1 : -1);
 +
  for (var p = 0; p < BVBgPreise.length; p++) {
 +
    var aGroupValues = BVBgPreise[p].GroupValue.split('::');
 +
    sTabHTML += '  <tr style="background:#FCFCFC" valign=top>';
 +
    for (v = 0; v < aGroupValues.length-1; v++)
 +
      sTabHTML += '    <td><div style="'+sCellPadding+'">'+aGroupValues[v]+'</div></td>';
 +
    sTabHTML += '    <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+'">'+median(BVBgPreise[p].Preise).toFixed(2).replace(/\./,',')+'€</div></td>'+
 +
                '    <td align=right><div style="'+sCellPadding+'">'+BVBgPreise[p].Max.toFixed(2).replace(/\./,',')+'€</div></td>'+
 +
                '    <td align=center><div style="'+sCellPadding+'">'+BVBgPreise[p].Count+'</div></td>'+
                 '  </tr>';
                 '  </tr>';
-
    BVBgPreise.sort((a, b) => a.GroupValue > b.GroupValue ? 1 : -1);
 
-
    for (var p = 0; p < BVBgPreise.length; p++) {
 
-
      var aGroupValues = BVBgPreise[p].GroupValue.split('::');
 
-
      sTabHTML += '  <tr style="background:#FCFCFC" valign=top>';
 
-
      for (v = 0; v < aGroupValues.length-1; v++)
 
-
        sTabHTML += '    <td><div style="'+sCellPadding+'">'+aGroupValues[v]+'</div></td>';
 
-
      sTabHTML += '    <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+'">'+median(BVBgPreise[p].Preise).toFixed(2).replace(/\./,',')+'€</div></td>'+
 
-
                  '    <td align=right><div style="'+sCellPadding+'">'+BVBgPreise[p].Max.toFixed(2).replace(/\./,',')+'€</div></td>'+
 
-
                  '    <td align=center><div style="'+sCellPadding+'">'+BVBgPreise[p].Count+'</div></td>'+
 
-
                  '  </tr>';
 
-
    }
 
-
    sTabHTML += '</table>';
 
-
    eBgPreise.innerHTML = sTabHTML;
 
   }
   }
 +
  sTabHTML += '</table>';
 +
  eBgPreise.innerHTML = sTabHTML;
}
}
function median(arr) {
function median(arr) {

Version vom 20:38, 24. Sep. 2023

Template BV_BgPreisIndex: Invalid value for parameter Cmd ("empty")!!!