#include <infocon.style>
#include "common.inc"

<?
  $dbh = pg_pconnect ("<dbhost>", "<dbport>", "<dbname>")
	 or die("Unable to connect to SQL server");

  pg_exec ($dbh, "SET DateStyle = 'ISO'") or die("Datenbank-Abfrage!");

  if ($_POST['func'] == 'save') {
    $sql = sprintf("UPDATE stempel SET task = '%s' WHERE oid = %d",
                  pg_escape_string(utf8_decode($_POST['task'])),
                  $_POST['oid']);
    pg_exec($sql);

    header('Content-type: application/json; charset="UTF-8"');
    echo json_encode(true);
    exit;
  }

  if (isset($_GET['month']))
    $month = $_GET['month'];
  else
    $month = date('Y-m');
?>

<future>
<page func=InfoCon title="Stempeluhr">
<script type="text/javascript" src="<root_prefix>jquery.editable.js"></script>

<?
  $name = load_customers();

  $table_head = '<h3 class="bar">Kunde: %s</h3>
<table class="smallfont border" width="100%%" cellpadding=0 cellspacing=1>
<tr class="head">
  <th width=10%%>Datum</th>
  <th width=5%%>Dauer</th>
  <th width=5%%>St.</th>
  <th width=80%%>Arbeitsbeschreibung</th>
</tr>';
  $table_foot = '</table>';
  if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mozilla/') === false)
    $table_row = '<tr class="t%d"><td>%s</td><td align="center">%s</td><td align="center">%s</td><td><a href="edit.php?id=%d">%s</a></td></tr>';
  else
    $table_row = '<tr class="t%d"><td>%s</td><td align="center">%s</td><td align="center">%s</td><td><span route="Stempel/EditTask" item_id="%d">%s</span></td></tr>';
  $table_sum = '<tr class="t%d"><td>&nbsp;</td><td align="center"><strong>%s</strong></td><td>&nbsp;</td><td><strong>Summe</strong></td></tr>';

  $query = <<<EOS
SELECT stempel.oid,stempel.id,start,stempel_customer.name AS customer,time,task,kurz
FROM stempel
JOIN stempel_customer ON (stempel.customer = stempel_customer.short)
JOIN stempel_status ON (stempel.status = stempel_status.id)
WHERE time IS NOT NULL
EOS;
  if (isset($month) && $month !== 'all')
    $query .= " AND cast(start AS TEXT) LIKE '".$month."-%'";
  $query .= " ORDER BY customer,start";

  $sth = pg_exec ($dbh, $query);

  $customer = '';
  while ($row = pg_fetch_array ($sth)) {

    if ($customer != $row['customer']) {
      if (strlen($customer)) {
	printf($table_sum, $color, min2hour($sum));
        echo($table_foot);
      }
      $cname = $name[$row['customer']];
      if (!strlen($cname)) $cname = $row['customer'];
      printf($table_head, $cname);
      $customer = $row['customer'];
      $sum = 0;
      $color = 0;
    }

    $sum += $row['time'];
    $d = explode(' ', $row['start']);
 
    printf($table_row, $color, $d[0], min2hour($row['time']), $row['kurz'],
	   strpos($_SERVER['HTTP_USER_AGENT'], 'Mozilla/') === false ? $row['oid'] : $row['id'],
	   htmlspecialchars($row['task'], ENT_COMPAT | ENT_HTML401, 'ISO-8859-1'));
    $color = !$color;
  }
  printf($table_sum, $color, min2hour($sum));
  echo($table_foot);
?>
<div style="padding-top: 0.5em"></div>

<form action=<?=$_SERVER["SCRIPT_NAME"]?> method=get>
<b>Select month</b>: <select name=month>
<?
  $months = find_months();

  foreach ($months as $m) {
    if ($m == $month)
      $sel = ' selected';
    else
      $sel = '';

    printf('<option value="%s"%s>%s</option>', $m, $sel, $m);
  }
  printf('<option value="all"%s>All</option>', $month == 'all'?' selected':'');
?>
</select>
<input class=button type=submit value="Select">
</form>
<div style="padding-top: 0.5em"></div>

<protect><script type="text/javascript">
$(function(){
    make_editable('table.smallfont tr span');
});
</script></protect>
</page>

# Local variables:
# mode: text
# mode: auto-fill
# end:
