Location: PHPKode > projects > TelDaBase > teldabase-1.4/teldabase/statistik.php
<?
/***************************************************************/
/*                                                             */
/* TelDaBase                                                   */
/* =========                                                   */
/*                                                             */
/* Copyright (C) 2004 Wolfgang Barthel                         */
/*                                                             */
/*                    http://www.teldabase.de                  */
/*                    hide@address.com */
/*                                                             */
/* see index.php and LICENSE                                   */
/*                                                             */
/***************************************************************/

/***************************************************************/
/* statistik.php                                               */
/* =============                                               */
/* Funktionen zum Tarifvergleich und andere Statistik          */
/***************************************************************/


function tarifvergleich($link)
{
  require("conf.php");

    $query = "select  EZV.rechnung_id, rech_mwst,
	       sum(ezv_nettogesamtbetrag) as summe from EZV, Rechnungen, 
	       Telefonbuch where (EZV.rechnung_id=Rechnungen.rechnung_id) and
	       (EZV.telefonbuch_id = Telefonbuch.telefonbuch_id) 
	       group by rechnung_id order by rech_datum desc" ;
    
    $result = mysql_query($query, $link)
      or die ("Query |$query| failed:" . mysql_error());
    
    while($row = mysql_fetch_assoc($result))
    {
      $kosten["aktuell"][$row["rechnung_id"]] = $row["summe"];
    }

    $query = "select  EZV.rechnung_id, rech_mwst,
	       sum(ezv_nettogesamtbetrag) as summe from EZV, Rechnungen, 
	       Telefonbuch 
	       where (EZV.rechnung_id=Rechnungen.rechnung_id) 
		and (EZV.telefonbuch_id = Telefonbuch.telefonbuch_id) 
		and not
	       (tel_nummer not	regexp '^0[01].*'
		and tel_nummer not regexp '^0[89]00.*'
		and ((dayofweek(ezv_datum) = 1) or (dayofweek(ezv_datum) = 7))
		)
		group by rechnung_id order by rech_datum desc" ;

    $result = mysql_query($query, $link)
      or die ("Query |$query| failed:" . mysql_error());
    
    while($row = mysql_fetch_assoc($result))
    {
      $kosten["xxl"][$row["rechnung_id"]] = $row["summe"];
    }
    
    $query = "select  EZV.rechnung_id, rech_mwst,
	       sum(ezv_nettogesamtbetrag) as summe from EZV, Rechnungen, 
	       Telefonbuch where (EZV.rechnung_id=Rechnungen.rechnung_id) and
	       (EZV.telefonbuch_id = Telefonbuch.telefonbuch_id)
		 and not
	       (tel_nummer not	regexp '^0[01].*'
		and tel_nummer not regexp '^0[89]00.*'
		and (
		     ((dayofweek(ezv_datum) = 1) 
		      or (dayofweek(ezv_datum) = 7)
		      or (hour(ezv_datum) >= 18)
		      or (hour(ezv_datum) < 7))))
		   group by rechnung_id order by rech_datum desc" ;

    $result = mysql_query($query, $link)
      or die ("Query |$query| failed:" . mysql_error());
    
    while($row = mysql_fetch_assoc($result))
    {
      $kosten["xxl_freetime"][$row["rechnung_id"]] = $row["summe"];
    }
      
    $query = "select  EZV.rechnung_id, rech_mwst,
	       sum(ezv_nettogesamtbetrag) as summe from EZV, Rechnungen, 
	       Telefonbuch where (EZV.rechnung_id=Rechnungen.rechnung_id) and
	       (EZV.telefonbuch_id = Telefonbuch.telefonbuch_id)
		 and not
	       (
		(tel_nummer regexp '^[2-9].*'
		  or tel_nummer regexp '^" . $conf["vorwahl"] . "[2-9].*')
		or
		(
		 tel_nummer not	regexp '^0[01].*'
		 and tel_nummer not regexp '^0[89]00.*'
		 and (
		      ((dayofweek(ezv_datum) = 1) 
		       or (dayofweek(ezv_datum) = 7)
		       or (hour(ezv_datum) >= 18)
		       or (hour(ezv_datum) < 7))))
		)
	     group by rechnung_id order by rech_datum desc" ;

    $result = mysql_query($query, $link)
      or die ("Query |$query| failed:" . mysql_error());
    
    while($row = mysql_fetch_assoc($result))
    {
      $kosten["xxl_local_freetime"][$row["rechnung_id"]] = $row["summe"];
    }

    $query = "select  EZV.rechnung_id, rech_mwst,
	       sum(ezv_nettogesamtbetrag) as summe from EZV, Rechnungen, 
	       Telefonbuch where (EZV.rechnung_id=Rechnungen.rechnung_id) and
	       (EZV.telefonbuch_id = Telefonbuch.telefonbuch_id)
		 and not
	       (
		(tel_nummer regexp '^[2-9].*')
		or
		(
		 tel_nummer not	regexp '^0[01].*'
		 and tel_nummer not regexp '^0[89]00.*'
		))
	     group by rechnung_id order by rech_datum desc" ;

    $result = mysql_query($query, $link)
      or die ("Query |$query| failed:" . mysql_error());
    
    while($row = mysql_fetch_assoc($result))
    {
      $kosten["xxl_flat"][$row["rechnung_id"]] = $row["summe"];
    }

    $query = "select  EZV.rechnung_id, rech_mwst,
	       sum(ezv_nettogesamtbetrag) as summe from EZV, Rechnungen, 
	       Telefonbuch where (EZV.rechnung_id=Rechnungen.rechnung_id) and
	       (EZV.telefonbuch_id = Telefonbuch.telefonbuch_id)
		 and not
		(tel_nummer regexp '^[2-9].*'
		 or tel_nummer regexp '^" . $conf["vorwahl"] . "[2-9].*')
	     group by rechnung_id order by rech_datum desc" ;

    $result = mysql_query($query, $link)
      or die ("Query |$query| failed:" . mysql_error());
    
    while($row = mysql_fetch_assoc($result))
    {
      $kosten["xxl_local"][$row["rechnung_id"]] = $row["summe"];
    }
    
    $query = "select rechnung_id, 
	       date_format(rech_datum,\"%d.%m.%Y\") as rech_date,
	       rech_mwst
	       from Rechnungen order by rech_datum desc" ;
    
    $result = mysql_query($query, $link)
      or die ("Query |$query| failed:" . mysql_error());
    
    if(mysql_numrows($result) == 0)
    {
	echo("Es wurden noch keine gebührenpflichtigen Gespräche 
	       geführt.")
	  ;
        return;
    }

  ?>
<p>
Die Tabelle gibt einen Überblick, ob sich ein Wechsel in einen anderen Tarif lohnt.<br />
Dazu werden die Gesprächskosten der vergangenen Monate neu berechnet, die sich ergeben hätten, wenn damals ein anderer Tarif gewählt worden wäre.
	<br />
Angegeben sind die theoretischen monatlichen Gesprächskosten (ohne Grundgebühr), alle Angaben sind ohne Gewähr und geben nur einen Anhaltspunkt, da sich z.B. das Gesprächsverhalten in künftigen Monaten ändern kann. Außerdem sind bei allen Telekom-Pauschaltarifen Datenverbindungen grundsätzlich ausgenommen.
</p>
<table class="tblborder">
<tr>
<th>Rechnung vom</th>
<th>Kosten momentan</th>
<th>Kosten mit XXL-Weekend</th>
<th>Kosten mit XXL-Freetime</th>
<th>Kosten mit XXL-Local</th>
<th>Kosten mit XXL-Freetime+Local</th>
<th>Kosten mit Festnetz-Flatrate</th>
</tr>
 <?
    while($row = mysql_fetch_assoc($result))
    {
     echo("<tr>
	    <td>". $row["rech_date"]. "</td>
	    <td align=\"right\">"
	  . number_format(
	  $kosten["aktuell"][$row["rechnung_id"]] * $row["rech_mwst"] 
			  / 1000000, 2,",","") ." &euro;</td>
	    <td align=\"right\">"
	  . number_format(
	  $kosten["xxl"][$row["rechnung_id"]] * $row["rech_mwst"] 
			  / 1000000, 2,",","") ." &euro;</td>
	    <td align=\"right\">"
	  . number_format(
	  $kosten["xxl_freetime"][$row["rechnung_id"]] * $row["rech_mwst"] 
			  / 1000000, 2,",","") ." &euro;</td>
	    <td align=\"right\">"
	  . number_format(
	  $kosten["xxl_local"][$row["rechnung_id"]] * $row["rech_mwst"] 
			  / 1000000, 2,",","") ." &euro;</td>
	    <td align=\"right\">"
	  . number_format(
	  $kosten["xxl_local_freetime"][$row["rechnung_id"]] * $row["rech_mwst"] 
			  / 1000000, 2,",","") ." &euro;</td>
	    <td align=\"right\">"
	  . number_format(
	  $kosten["xxl_flat"][$row["rechnung_id"]] * $row["rech_mwst"] 
			  / 1000000, 2,",","") ." &euro;</td>
</tr>");
  }
  echo("</table>\n");

}



function statistik_menu($rechnungsid)
{
    
    /**
     *   * Check if a file exists in the include path
     *   *
     *   * @version      1.2.0
     *   * @author       Aidan Lister <hide@address.com>
     *   * @param        string     $file       Name of the file to look for
     *   * @return       bool       TRUE if the file exists, FALSE if it does not
     *   */
    
    function file_exists_incpath ($file)
    {
	$paths = explode(PATH_SEPARATOR, get_include_path());
	
	foreach ($paths as $path) {
	    // Formulate the absolute path
	    $fullpath = $path . DIRECTORY_SEPARATOR . $file;
	    
	    // Check it
	    if (file_exists($fullpath)) {
		return true;
	    }
	}
	
	return false;
    }
    
 print("<ul>");
    
 if(file_exists_incpath("Image/Graph"))
    {
?> 
 <li><a href="<?= $_SERVER["PHP_SELF"] 
               ?>?aktmenu=Statistik&amp;aktion=Monatsvergleich&amp;rechnungsid=<?= $rechnungsid 
               ?>">Entwicklung der monatlichen Kosten</a></li>
 <li><a href="<?= $_SERVER["PHP_SELF"] 
               ?>?aktmenu=Statistik&amp;aktion=Bewohnervergleich&amp;rechnungsid=<?= 
$rechnungsid 
               ?>">Verteilung der Kosten</a></li>
<?
				}
    else
    {
?>
 <li><a href="<?= $_SERVER["PHP_SELF"] 
         ?>?aktmenu=Statistik&amp;aktion=Monatsvergleich&amp;version=alt">Entwicklung der monatlichen Kosten</a><br /> Installieren Sie das PEAR-Module Image/Graph, um bessere Statistikfunktionen zu nutzen (siehe INSTALL)</li>
<?
    }
?>
 <li><a href="<?= $_SERVER["PHP_SELF"] 
               ?>?aktmenu=Statistik&amp;aktion=Tarifvergleich&amp;rechnungsid=<?= $rechnungsid 
               ?>">Tarifvergleich - lohnt sich der Wechsel z.B. zum XXL-Tarif</a></li>
 </ul>
      <?
}


?>
Return current item: TelDaBase