<?
/***************************************************************/
/* */
/* 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);
}
?>