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

/***************************************************************/
/* ankreuzen.php                                               */
/* =============                                               */
/* wird während der vier Schritte zur Gesprächszuordnung       */
/* aufgerufen                                                  */
/***************************************************************/


function ankreuzen($link, $rechnungsid, $schritt)
{
    
    /* Rechnungsdatum laden und anzeigen */

    $query = "select date_format(rech_datum,\"%d.%m.%Y\") as rech_date 
	       from Rechnungen where rechnung_id='$rechnungsid'";
    $result = mysql_query($query, $link) 
      or die ("Query |$query| failed:" . mysql_error());
    $row = mysql_fetch_assoc($result);
    
    $head = "<h2>Rechnung vom ".$row["rech_date"]."</h2>\n";
    
    $query = "select Bewohner.bewohner_id,bew_name from Bewohner where bew_aktiv in (1,2) order by bew_name;";
    
    $result = mysql_query($query, $link) 
      or die ("Query |$query| failed:" . mysql_error());
    
    while($row = mysql_fetch_assoc($result))
    {
	$bewohner[$row["bewohner_id"]] = $row["bew_name"];
    }

    $gespeichert = false;
    
    /* Wenn kein oder kein gültiger Schritt angegeben ist, 
     * so zeigen wir Schritt 1 an (alle Gespräche) */

    if(($schritt == 1) || ($schritt == "ezv"))
    {
	echo $head;
	
	$bew_query = "";
	
	$query = "select ezv_id, EZV.telefonbuch_id,tel_nummer, tel_ortsnetz, 
		   ezv_nettogesamtbetrag, date_format(ezv_datum,\"%d.%m.%y\") as ezv_tag, 
		   date_format(ezv_datum,\"%H:%i\") as ezv_uhrzeit, ezv_dauer, ans_farbe, EZV.bewohner_id, Telefonbuch.bewohner_id as telbuch_bewohner_id,
		   bew_name
 from EZV left join Telefonbuch using(telefonbuch_id) left join Anschluesse 
		   on(EZV.anschluss_id=Anschluesse.anschluss_id) left join Bewohner on(EZV.bewohner_id=Bewohner.bewohner_id)
where rechnung_id = \"$rechnungsid\"";
	if($schritt == 1)
	{
	    $query .= " and ans_farbe<> \"0\" ";
	    $titel = "Schritt 1: Gespräche auswählen";
	}
	else
	{
	    $titel = "Einzelverbindungsübersicht ";
	    if(isset($_GET["bewohnerid"]) && is_numeric($_GET["bewohnerid"]))
	    {
		$bew_query .= " and EZV.bewohner_id = ". $_GET["bewohnerid"] ;
		$titel .= get_bew_name($link, $_GET["bewohnerid"]);
	    }
	    if(isset($_GET["bewohnerid"]) && ($_GET["bewohnerid"] == "fehl"))
	    {
		$bew_query .= " and EZV.bewohner_id is null " ;
		$titel .= " der nicht zugeordneten Gespräche";
	    }
	}
	$query .= $bew_query . " order by ezv_datum";
	echo("<h3>$titel</h3>\n");
	
	$result = mysql_query($query, $link) 
	  or die ("Query |$query| failed:" . mysql_error());
	showresults($link, $rechnungsid, $result, $schritt, $bewohner,
		    $schritt != "ezv", $bew_query);
    }
    
    if($schritt == 2)	/* teilweise  angekreuzte Rufnummern */
    {	
	/* Speichern der im Schritt 1 angekreuzten Nummern */
	
	updaterows($link, $_POST,$rechnungsid);
	$gespeichert = true;
	
	$query = "select  ezva.ezv_id, ezva.telefonbuch_id, tel_nummer, tel_ortsnetz, 
		   ezva.ezv_nettogesamtbetrag, 
		   date_format(ezva.ezv_datum,\"%d.%m.%y\") as ezv_tag, 
		   date_format(ezva.ezv_datum,\"%H:%i\") as ezv_uhrzeit, 
		   ezva.ezv_dauer, ans_farbe, ezva.bewohner_id, 
 Telefonbuch.bewohner_id as telbuch_bewohner_id,
		   bew_name from EZV as ezva left join Telefonbuch  using(telefonbuch_id) 
		   left join Anschluesse on(ezva.anschluss_id=Anschluesse.anschluss_id) 
		   left join Bewohner on(ezva.bewohner_id=Bewohner.bewohner_id) 
		   left join EZV ezvb on(ezva.telefonbuch_id = ezvb.telefonbuch_id) 
		   where ezva.rechnung_id = \"$rechnungsid\" 
		   and ezvb.rechnung_id = \"$rechnungsid\"  
		   and (((ezva.bewohner_id is null) 
			 and (ezvb.bewohner_id is not null)) 
			or ((ezvb.bewohner_id is null) 
			    and (ezva.bewohner_id is not null))) 
		   group by ezva.ezv_id order by tel_nummer, ezva.ezv_datum;";
   
	$result = mysql_query($query, $link) 
	  or die ("Query |$query| failed:" . mysql_error());

	if(mysql_numrows($result) == 0)
	  $schritt = 3;
	else
	{
	    echo $head;
	    echo "<h3>Schritt 2: Teilweise  angekreuzte Rufnummern</h3>";
	    showresults($link, $rechnungsid, $result, 2, $bewohner);
	}
    }

    if($schritt == 3) /* Rufnummern, die früher mal angekreuzt wurden */
    {
	if(!$gespeichert)
	  updaterows($link, $_POST,$rechnungsid);
	$gespeichert = true;
	
	$query = "select DISTINCT ezva.ezv_id, ezva.telefonbuch_id, tel_nummer, 
		   tel_ortsnetz, ezva.ezv_nettogesamtbetrag, 
		   date_format(ezva.ezv_datum,\"%d.%m.%y\") as ezv_tag, 
		   date_format(ezva.ezv_datum,\"%H:%i\") as ezv_uhrzeit, 
		   ezva.ezv_dauer, ans_farbe, 
		   ezva.bewohner_id ,
 Telefonbuch.bewohner_id as telbuch_bewohner_id
from EZV as ezva 
		   left join Telefonbuch  using(telefonbuch_id) 
		   left join Anschluesse on(ezva.anschluss_id=Anschluesse.anschluss_id) 
		   left join Bewohner on(ezva.bewohner_id=Bewohner.bewohner_id) 
		   left join EZV ezvb on(ezva.telefonbuch_id = ezvb.telefonbuch_id) 
		   where ezva.rechnung_id = \"$rechnungsid\" 
		   and ezva.bewohner_id is null and ezvb.bewohner_id is not null 
		   order by tel_nummer, ezva.ezv_datum;";
   
	$result = mysql_query($query, $link) 
	  or die ("Query |$query| failed:" . mysql_error());
	
	if(mysql_numrows($result) == 0)
	  $schritt = 4;
	else
	{
	    echo $head;
	    echo "<h3>Schritt 3: Rufnummern, die früher mal angekreuzt wurden</h3>";
	    showresults($link, $rechnungsid, $result, 3, $bewohner);
	}
    }

    if($schritt == 4) /* teure Gespräche */
    {
	if(!$gespeichert)
	  updaterows($link, $_POST,$rechnungsid);
	$gespeichert = true;
	
	/* Ziele ermitteln */
	$query = "SELECT telefonbuch_id, sum( ezv_nettogesamtbetrag ) AS zielkosten
		   FROM EZV WHERE isnull(bewohner_id) AND rechnung_id = \"$rechnungsid\"
		   GROUP BY telefonbuch_id ORDER BY zielkosten DESC";
	$result = mysql_query($query, $link) 
	  or die ("Query |$query| failed:" . mysql_error());
	
	$teure_nummern = array(-1);
	    
	while($row = mysql_fetch_assoc($result))
	{
	    if($row["zielkosten"] >= $conf["min_teuer"])
	      array_push($teure_nummern, $row["telefonbuch_id"]);
	}
	
	$impl_teure_nummern= implode(",", $teure_nummern);
	    
	$query = "select ezv_id, EZV.telefonbuch_id,tel_nummer, tel_ortsnetz, 
		   ezv_nettogesamtbetrag, date_format(ezv_datum,\"%d.%m.%y\") as ezv_tag, 
		   date_format(ezv_datum,\"%H:%i\") as ezv_uhrzeit, 
		   ezv_dauer, ans_farbe, EZV.bewohner_id,  Telefonbuch.bewohner_id as telbuch_bewohner_id,bew_name 
		   from EZV
		   left join Telefonbuch using(telefonbuch_id) 
		   left join Anschluesse on(EZV.anschluss_id=Anschluesse.anschluss_id) 
		   left join Bewohner on(EZV.bewohner_id=Bewohner.bewohner_id)
		   where rechnung_id = \"$rechnungsid\" 
		   and EZV.telefonbuch_id in ($impl_teure_nummern) 
		   order by ezv_nettogesamtbetrag desc, tel_nummer;";

	$result = mysql_query($query, $link) 
	  or die ("Query |$query| failed:" . mysql_error());
	
	if(mysql_numrows($result) == 0)
	  $schritt = 5;
	else
	{
	    echo $head;
	    echo "<h3>Schritt 4: teure Gespräche</h3>";
	    showresults($link, $rechnungsid, $result, 4, $bewohner);
	}
    }

    if($schritt == 5)
      auswertung_show($link, $rechnungsid);
}
?>
Return current item: TelDaBase