<?
/***************************************************************/
/* */
/* TelDaBase */
/* ========= */
/* */
/* Copyright (C) 2004 Wolfgang Barthel */
/* */
/* http://www.teldabase.de */
/* hide@address.com */
/* */
/* see index.php and LICENSE */
/* */
/***************************************************************/
/***************************************************************/
/* ezvformular.php */
/* =============== */
/* Anzeige des Formulars für die Einzelverbindungen und */
/* Schreiben der zugeordneten Gespräche in die DB */
/***************************************************************/
function ezv_anteil($link, $regexp, $rechnungsid, $bew_query)
{
$query = "select sum(ezv_nettogesamtbetrag) as kosten from EZV
left join Telefonbuch using(telefonbuch_id)
where rechnung_id = $rechnungsid
$bew_query
and tel_nummer regexp '$regexp'";
$res = my_mysql_query($query, $link);
$row = mysql_fetch_assoc($res);
return($row["kosten"]);
}
/************************************************/
/* showresults */
/* =========== */
/* Anzeige der ausgewählten Einzelverbindungen */
/* als Formular */
/* */
/* results: Einzelverbindungen als array */
/* schritt: Nr. des Ankreuzschrittes */
/* bewohner: Liste (id->Name) der aktiven */
/* Bewohner */
/************************************************/
function showresults($link, $rechnungsid, $result, $schritt,
$bewohner, $farbe = true, $bew_query = "")
{
require('conf.php');
/* Sind überhaupt Daten zur aktuellen Auswahl vorhanden */
$numrows = mysql_num_rows($result);
if($numrows == 0)
{
echo("<p>\nKeine entsprechenden Verbindungen gefunden\n</p>\n");
if($schritt != "ezv")
{
?>
<p>
<a href="<?= $_SERVER['PHP_SELF'] ."?aktmenu=Ankreuzen&schritt=". ($schritt + 1)
?>&rechnungsid=<?= $rechnungsid
?>">weiter zum nächsten Schritt</a>
</p>
<?
}
}
else /* Daten vorhanden */
{
if(($schritt > 1) or ($schritt == "ezv"))
echo("<p>Bitte beachten Sie vor Benutzung der Inverssuche die Datenschutzbestimmungen und die Nutzungsbedingungen von \"Das Örtliche\", einzusehen unter <a href=\"http://www.dasoertliche.de\">http://www.dasoertliche.de</a></p>");
if($schritt != "ezv")
{
echo("<form action=\"". $_SERVER['PHP_SELF'] ."?aktmenu=Ankreuzen&schritt="
. ($schritt + 1) ."&rechnungsid="
. $rechnungsid."\" method=\"post\">\n");
echo "<p>\n<input type=\"submit\" name=\"submit\" tabindex=\"1\" value = \"Speichern und zum nächsten Schritt\" />\n</p>\n";
}
else
{
/* Kostenaufteilung auf Gesprächsziele */
$kosten["ort"] = ezv_anteil($link, "^[^01]", $rechnungsid, $bew_query);
$kosten["fern"] = ezv_anteil($link, "^0[^01]", $rechnungsid, $bew_query);
$kosten_sex = ezv_anteil($link, "^090", $rechnungsid, $bew_query);
$kosten["fern"] = $kosten["fern"] - $kosten_sex;
$kosten["ausland"] = ezv_anteil($link, "^00", $rechnungsid, $bew_query);
$kosten["mobil"] = ezv_anteil($link, "^01[567]", $rechnungsid, $bew_query);
$kosten["gesamt"] = ezv_anteil($link, "[0-9]", $rechnungsid, $bew_query);
?>
<table>
<tr>
<th>Zielregion</th>
<th>Kosten</th>
</tr>
<?
$regionen = array("ort" => "Ortsverbindungen",
"fern" => "Fernverbindungen",
"ausland" => "Auslandsverbindungen",
"mobil" => "Mobilfunk");
$summe = 0;
foreach($regionen as $region => $regionsname)
{
if($kosten["$region"] > 0)
{
echo("<tr><td>$regionsname</td>\n");
echo "<td>".
number_format($kosten["$region"] / 10000,4,",","")."</td></tr>\n";
$summe += $kosten["$region"];
}
}
if($kosten["gesamt"] - $summe > 0)
{
echo("<tr><td>sonstige Verbindungen</td>\n");
echo "<td>".
number_format(($kosten["gesamt"] - $summe) / 10000,4,",","")."</td></tr>\n";
}
echo("</table>\n<hr />");
}
?>
<table class="sortable" id="ezv">
<tr>
<th>Zielnummer</th>
<th>Ortsnetz</th>
<th>Kosten</th>
<th>Datum</th>
<th>Uhrzeit</th>
<th>Dauer</th>
<th>Wer</th>
<?
if($schritt == 3) /* früher angekreuzte Gespräche */
echo("<th>früher von</th>\n");
if($schritt != "ezv")
echo("<th>Immer</th>\n");
?>
</tr>
<?
$i=2;
$kosten = 0;
while($row = mysql_fetch_assoc($result))
{
$kosten += $row["ezv_nettogesamtbetrag"];
/* Zeile in Farbe des Anschlusses anzeigen, von dem aus das Gespräch geführt wurde */
echo "<tr";
if(($row["ans_farbe"] != "0") && $farbe)
echo(" style=\"background-color:#".$row["ans_farbe"]."\"");
echo ">\n";
/* Gesprächsdaten anzeigen */
echo "<td align = \"left\">";
if(($schritt > 1) or ($schritt == "ezv"))
{
if($row["tel_nummer"][0] != "0")
$invnr = $conf["vorwahl"] . $row["tel_nummer"];
else
$invnr = $row["tel_nummer"];
echo "<a target=\"_top\" href=\"http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers="
. $invnr . "&main=Antwort&AKTION=START_INVERS_SUCHE&SEITE=INVERSSUCHE_V&s=2&\">";
}
echo $row["tel_nummer"];
if(($schritt > 1) or ($schritt == "ezv"))
echo "</a>";
echo "</td>";
echo "<td>".$row["tel_ortsnetz"]."</td>\n";
echo "<td>".number_format($row["ezv_nettogesamtbetrag"] / 10000,4,",","")."</td>";
echo "<td>".$row["ezv_tag"]."</td>";
echo "<td>".$row["ezv_uhrzeit"]."</td>";
echo "<td>".$row["ezv_dauer"]."</td>\n";
if($schritt != "ezv")
{
/* Drop-down-menu der Personen */
echo "<td><select name=\"".$row["ezv_id"]
. "\" size=\"1\" tabindex=\"$i\">\n";
echo "<option value=\"0\"> </option>\n";
$found = false;
foreach ($bewohner as $k => $v )
{
echo "<option value=\"$k\"";
if($row["bewohner_id"] == $k)
{
echo(" selected=\"selected\"");
$found = true;
}
echo ">$v</option>\n";
}
/* Anrufer ist (inzwischen) nicht mehr aktiv */
if(isset($row["bewohner_id"]) && ($found === false))
{
echo "<option value=\"". $row["bewohner_id"] . "\" selected=\"selected\">"
. $row["bew_name"] . "</option>\n";
}
echo "</select></td>\n";
}
else /* Schritt == "ezv" */
echo "<td>" . $row["bew_name"] . "</td>\n";
if($schritt == 3)
{
/* Personen, die früher die Nummer gewählt hatten */
$query = "select DISTINCT bew_name from EZV left join Bewohner
using(bewohner_id) where EZV.telefonbuch_id = '".$row["telefonbuch_id"]."'";
$resultan = mysql_query($query, $link)
or die ("Query |$query| failed:" . mysql_error());
echo("<td>");
while($rowan = mysql_fetch_assoc($resultan))
echo($rowan["bew_name"]." ");
echo("</td>");
}
if($schritt != "ezv")
{
echo "<td><input type=\"checkbox\" name=\"im"
.$row["ezv_id"]."\" value=\"1\" tabindex=\""
.($i+$numrows+1)."\"";
if($row["telbuch_bewohner_id"] == $row["bewohner_id"])
{
echo(" checked=\"checked\"");
}
}
echo("</tr>\n");
$i++;
}
if($schritt == "ezv")
{
$query = "select rech_mwst from Rechnungen where rechnung_id='$rechnungsid'";
$result = mysql_query($query, $link)
or die ("Query |$query| failed:" . mysql_error());
$row = mysql_fetch_assoc($result);
$geskosten = intval(round($kosten * $row["rech_mwst"]
/ 100));
$mwstkosten = $geskosten - $kosten;
echo "<tr><td colspan = \"2\">Summe</td><td>"
. number_format($kosten / 10000, 4,",","") . "</td><td colspan
= \"4\"> </td></tr>\n";
echo "<tr><td colspan = \"2\">dazu Mwst</td><td>"
. number_format($mwstkosten / 10000, 4,",","")
. "</td><td colspan = \"4\"> </td></tr>\n";
echo "<tr><td colspan = \"2\">Gesprächskosten</td><td>"
. number_format($geskosten / 10000, 4,",","")
. "</td><td colspan = \"4\"> </td></tr>\n";
}
echo("</table>\n");
if($schritt != "ezv")
{
echo "<p>\n<input type=\"submit\" name=\"submit\" tabindex=\""
.($numrows+2)."\" value = \"Speichern und zum nächsten Schritt\" />\n</p>\n";
echo("</form>\n");
}
}
}
/************************************************/
/* updaterows */
/* ========== */
/* Auswerten des Formulars und Schreiben in die */
/* die DB */
/* */
/* rows: $_POST-Daten */
/* rechnungsid: aktuelle Rechnung */
/************************************************/
function updaterows($link, $rows,$rechnungsid)
{
foreach ($rows as $k => $v )
{
if(is_numeric($k)) /* input-id gehört zu Namens-Feld */
{
if($v > 0)
{
$query = "update EZV set bewohner_id='$v' where ezv_id = '$k'";
}
else /* Name wurde wieder gelöscht */
{
$query = "update EZV set bewohner_id=NULL where ezv_id = $k";
}
$result = mysql_query($query, $link)
or die ("Query |$query| failed:" . mysql_error());
/* zugehörige Checkbox angekreuzt? */
if(isset($_POST["im$k"]))
{
if($v > 0) /* Im Telefonbuch dieser Nummer die Person zuordnen */
{
$query = "update Telefonbuch join EZV using(telefonbuch_id) set Telefonbuch.bewohner_id = '$v' where ezv_id = '$k'";
}
else /* bzw. löschen */
{
$query = "update Telefonbuch join EZV using(telefonbuch_id) set Telefonbuch.bewohner_id = NULL where ezv_id = '$k'";
}
$result = mysql_query($query, $link)
or die ("Query |$query| failed:" . mysql_error());
}
}
}
}
?>