Delete field
[misc/kostenrechnung] / masks / overview_stunden.php
index 9c6cabc..d03ee0d 100644 (file)
@@ -5,12 +5,14 @@ include_once($_SESSION['sys']['basedir'].'/lib/overview_utils.php');
 if (empty($_SESSION['overview_stunden.year'])) $_SESSION['overview_stunden.year'] = 0;
 
 $details = <<<EOC
-<div style="padding-left: 3px;">
+<div style="padding-left: 3px; margin-top: -10px;">
 <b>Gebiet</b>: <span id="detail_gebiet"></span><br>
+<b>Gewässer</b>: <span id="detail_kostenstelle"></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>
+<b>Gerätestunden</b>: <span id="detail_geraetestunden"></span><br>
+<b>Gewässer gereinigt</b>: <span id="detail_gereinigt"></span>
 </div>
 EOC;
 
@@ -71,7 +73,7 @@ $mask = array(
                                            ),
                              'personal' => array(
                                            'name' => 'Mitarbeiter',
-                                           'sql' => "personal.vorname || ' ' || personal.name",
+                                           'sql' => "personal.name || ', ' || personal.vorname",
                                            'width' => 150,
                                            'specs' => "filterUI: 's'",
                                            ),
@@ -108,22 +110,17 @@ $mask = array(
                                            'width' => 60,
                                            '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' => '(einsatzpersonal.stunden + einsatzgeraete.stunden) / laenge',
-                                           ),
                              ),
              'details' => array(
                                 'html' => $details,
                                 'list' => array(
                                                 'gebiet' => array('fetch' => fetch_gebiet),
+                                                'kostenstelle' => array('fetch' => fetch_kostenstelle),
                                                 '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),
                                                 ),
 
                              ),
@@ -138,6 +135,15 @@ function fetch_gebiet()
   return $res[0]['gebiet'];
 }
 
+function fetch_kostenstelle()
+{
+  $sql = 'SELECT kostenstellen.kostenstelle 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]['kostenstelle'];
+}
+
 function fetch_laenge()
 {
   $sql = 'SELECT laenge FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
@@ -150,51 +156,82 @@ function fetch_laenge()
 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
+  SELECT sum(stunden) AS gesamt
+  FROM einsatzpersonal
+  WHERE einsatz IN
+    (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
+    (SELECT kostenstelle FROM einsatz WHERE id = %d))
 EOC;
 
-  $sql = sprintf($sql, $_POST['id']);
-  $res = query_db($sql);
-  if ($res === false) return '';
+  $sql = sprintf($sql, $_SESSION['overview_stunden.year'], $_POST['id']);
+  $pstunden = query_db($sql);
+  if ($pstunden === false) return '';
 
-  return sprintf('%.2f', $res[0]['gesamt']);
+  $sql = <<<EOC
+  SELECT sum(stunden) AS gesamt
+  FROM einsatzgeraete
+  WHERE einsatz IN
+    (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
+    (SELECT kostenstelle FROM einsatz WHERE id = %d))
+EOC;
+
+  $sql = sprintf($sql, $_SESSION['overview_stunden.year'], $_POST['id']);
+  $gstunden = query_db($sql);
+  if ($gstunden === false) return '';
+
+  return sprintf('%.2f', $pstunden[0]['gesamt'] + $gstunden[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
+  SELECT sum(stunden) AS gesamt
+  FROM einsatzpersonal
+  WHERE einsatz IN
+    (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
+    (SELECT kostenstelle FROM einsatz WHERE id = %d))
 EOC;
 
-  $sql = sprintf($sql, $_POST['id']);
+  $sql = sprintf($sql, $_SESSION['overview_stunden.year'], $_POST['id']);
   $res = query_db($sql);
   if ($res === false) return '';
 
-  return sprintf('%.2f', $res[0]['kosten']);
+  return sprintf('%.2f', $res[0]['gesamt']);
 }
 
 function fetch_geraetestunden()
 {
   $sql = <<<EOC
-  SELECT sum(einsatzgeraete.stunden) AS gesamt
-  FROM einsatz
-  JOIN einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id
-  WHERE einsatz.id = %d
+  SELECT sum(stunden) AS gesamt
+  FROM einsatzgeraete
+  WHERE einsatz IN
+    (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
+    (SELECT kostenstelle FROM einsatz WHERE id = %d))
 EOC;
 
-  $sql = sprintf($sql, $_POST['id']);
+  $sql = sprintf($sql, $_SESSION['overview_stunden.year'], $_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';
+}
+
 ?>