Add cleaned flag
[misc/kostenrechnung] / masks / overview_stunden.php
index da9f2f5..70bd7da 100644 (file)
@@ -2,25 +2,39 @@
 
 include_once($_SESSION['sys']['basedir'].'/lib/overview_utils.php');
 
-if (empty($_SESSION['stunden.year'])) $_SESSION['stunden.year'] = 0;
+if (empty($_SESSION['overview_stunden.year'])) $_SESSION['overview_stunden.year'] = 0;
+
+$details = <<<EOC
+<div style="padding-left: 3px; margin-top: -10px;">
+<b>Gebiet</b>: <span id="detail_gebiet"></span><br>
+<b>Länge</b>: <span id="detail_laenge"></span><br>
+<b>Gesamtstunden</b>: <span id="detail_gewaesserstunden"></span><br>
+<b>Personalstunden</b>: <span id="detail_personalstunden"></span><br>
+<b>Gerätestunden</b>: <span id="detail_geraetestunden"></span><br>
+<b>Gewässer gereinigt</b>: <span id="detail_gereinigt"></span>
+</div>
+EOC;
 
 $mask = array(
              'table' => 'einsatz',
              'title' => 'Stundenübersicht nach Kostenstellen',
-             'join' => array('arbeitsarten ON einsatz.arbeiten = arbeitsarten.id',
+             'join' => array(
+                             'arbeitsarten ON einsatz.arbeiten = arbeitsarten.id',
+                             'einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id',
+                             'einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id',
                              'gebiet ON einsatz.gebiet = gebiet.id',
                              'kostenstellen ON einsatz.kostenstelle = kostenstellen.id',
-                             'personal ON einsatz.personal = personal.id',
-                             'gerate ON einsatz.geraet = gerate.id',
-                             'anbaugeraete ON einsatz.anbaugeraet = anbaugeraete.id',
+                             'personal ON einsatzpersonal.personal = personal.id',
+                             'gerate ON einsatzgeraete.geraet = gerate.id',
+                             'anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id',
                              ),
              'where' => "arbeitsarten.arbeitsart <> 'Urlaub' AND arbeitsarten.arbeitsart <> 'Krank' AND arbeitsarten.arbeitsart <> 'Sonstige Fehltage'"
-                      . " AND date_part('year', datum) = " . $_SESSION['stunden.year'],
+                      . " AND date_part('year', datum) = " . $_SESSION['overview_stunden.year'],
              'select' => array(
                                'title' => 'Auswahl',
                                'options' => discover_years(),
                                'default' => 'Jahr wählen',
-                               'selected' => $_SESSION['stunden.year'],
+                               'selected' => $_SESSION['overview_stunden.year'],
                                'onchange' => "setvar(this,'year',select_year_calback,select_year_status)",
                                ),
              'variables' => array(
@@ -30,7 +44,7 @@ $mask = array(
                              'id' => array(
                                            'name' => 'ID',
                                            'visible' => false,
-                                           'width' => 40,
+                                           'width' => 60,
                                            'sql' => 'einsatz.id',
                                            ),
                              'datum' => array(
@@ -67,6 +81,7 @@ $mask = array(
                                            'type' => 'number',
                                            'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: '&nbsp;', canSort: false",
                                            'width' => 60,
+                                           'sql' => 'einsatzpersonal.stunden'
                                            ),
                              'geraet' => array(
                                            'name' => 'Gerät',
@@ -85,22 +100,121 @@ $mask = array(
                                            'type' => 'number',
                                            'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: '&nbsp;', canSort: false",
                                            'width' => 60,
+                                           'sql' => 'einsatzgeraete.stunden'
                                            ),
                              'gesamtstunden' => array(
                                            'name' => 'Gesamtstunden',
                                            'type' => 'number',
                                            'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: '&nbsp;', canSort: false",
                                            'width' => 60,
-                                           'sql' => 'stunden + geraetstunden',
+                                           'sql' => 'einsatzpersonal.stunden + einsatzgeraete.stunden',
                                            ),
                              'stdlfdm' => array(
                                            'name' => 'Stunden pro lfdm',
                                            'type' => 'number',
                                            'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: '&nbsp;', canSort: false",
                                            'width' => 60,
-                                           'sql' => '(stunden + geraetstunden) / laenge',
+                                           'sql' => '(einsatzpersonal.stunden + einsatzgeraete.stunden) / laenge',
                                            ),
                              ),
+             'details' => array(
+                                'html' => $details,
+                                'list' => array(
+                                                'gebiet' => array('fetch' => fetch_gebiet),
+                                                'laenge' => array('fetch' => fetch_laenge),
+                                                'gewaesserstunden' => array('fetch' => fetch_gewaesserstunden),
+                                                'personalstunden' => array('fetch' => fetch_personalstunden),
+                                                'geraetestunden' => array('fetch' => fetch_geraetestunden),
+                                                'gereinigt' => array('fetch' => fetch_gereinigt),
+                                                ),
+
+                             ),
              );
 
+function fetch_gebiet()
+{
+  $sql = 'SELECT gebiet.gebiet FROM gebiet JOIN einsatz ON einsatz.gebiet = gebiet.id WHERE einsatz.id = ' . intval($_POST['id']);
+  $res = query_db($sql);
+  if ($res === false) return '';
+
+  return $res[0]['gebiet'];
+}
+
+function fetch_laenge()
+{
+  $sql = 'SELECT laenge FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
+  $res = query_db($sql);
+  if ($res === false) return '';
+
+  return $res[0]['laenge'] . ' m';
+}
+
+function fetch_gewaesserstunden()
+{
+  $sql = <<<EOC
+  SELECT sum(einsatzpersonal.stunden +
+             einsatzgeraete.stunden) AS gesamt
+  FROM einsatz
+  JOIN einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id
+  JOIN einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id
+  WHERE einsatz.id = %d
+EOC;
+
+  $sql = sprintf($sql, $_POST['id']);
+  $res = query_db($sql);
+  if ($res === false) return '';
+
+  return sprintf('%.2f', $res[0]['gesamt']);
+}
+
+function fetch_personalstunden()
+{
+  $sql = <<<EOC
+  SELECT sum(einsatzpersonal.stunden) AS kosten
+  FROM einsatz
+  JOIN einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id
+  WHERE einsatz.id = %d
+EOC;
+
+  $sql = sprintf($sql, $_POST['id']);
+  $res = query_db($sql);
+  if ($res === false) return '';
+
+  return sprintf('%.2f', $res[0]['kosten']);
+}
+
+function fetch_geraetestunden()
+{
+  $sql = <<<EOC
+  SELECT sum(einsatzgeraete.stunden) AS gesamt
+  FROM einsatz
+  JOIN einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id
+  WHERE einsatz.id = %d
+EOC;
+
+  $sql = sprintf($sql, $_POST['id']);
+  $res = query_db($sql);
+  if ($res === false) return '';
+
+  return sprintf('%.2f', $res[0]['gesamt']);
+}
+
+function fetch_gereinigt()
+{
+  $sql = <<<EOC
+  SELECT count(*) AS count
+  FROM gereinigt
+  JOIN kostenstellen ON gereinigt.kostenstelle = kostenstellen.id
+  JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id
+  WHERE jahr = %d AND einsatz.id = %d
+EOC;
+
+  $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
+
+  $res = query_db($sql);
+  if ($res === false) return '';
+
+  return $res[0]['count'] == 0 ? 'nein' : 'ja';
+}
+
 ?>