Hide hour sum per default
[misc/kostenrechnung] / masks / overview_stunden.php
index f60272f..1caeef0 100644 (file)
@@ -22,15 +22,17 @@ $mask = array(
              'join' => array(
                              'arbeitsarten ON einsatz.arbeiten = arbeitsarten.id',
                              'einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id',
-                             'einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id',
+                             'ordnungen ON einsatz.ordnung = ordnungen.id',
+                             'LEFT einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id',
                              'gebiet ON einsatz.gebiet = gebiet.id',
                              'kostenstellen ON einsatz.kostenstelle = kostenstellen.id',
                              'personal ON einsatzpersonal.personal = personal.id',
-                             'gerate ON einsatzgeraete.geraet = gerate.id',
-                             'anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id',
+                             'LEFT gerate ON einsatzgeraete.geraet = gerate.id',
+                             'LEFT 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['overview_stunden.year'],
+#            'where' => "arbeitsarten.arbeitsart <> 'Urlaub' AND arbeitsarten.arbeitsart <> 'Krank' AND arbeitsarten.arbeitsart <> 'Sonstige Fehltage'"
+#                     . " AND date_part('year', datum) = " . $_SESSION['overview_stunden.year'],
+             'where' => "date_part('year', datum) = " . $_SESSION['overview_stunden.year'],
              'select' => array(
                                'title' => 'Auswahl',
                                'options' => discover_years(),
@@ -53,6 +55,12 @@ $mask = array(
                                            'type' => 'date',
                                            'width' => 70,
                                            ),
+                             'akkord' => array(
+                                           'name' => 'Akkord',
+                                           'control' => "new Rico.TableColumn.checkbox('1','0','0',true)",
+                                           'width' => 50,
+                                           'specs' => "ClassName: 'aligncenter'",
+                                           ),
                              'gebiet' => array(
                                            'name' => 'Gebiet',
                                            'sql' => "gebiet.gebiet",
@@ -65,6 +73,13 @@ $mask = array(
                                            'width' => 150,
                                            'specs' => "filterUI: 's'",
                                            ),
+                             'ordnung' => array(
+                                           'name' => 'Ordnung',
+                                           'sql' => "ordnungen.name",
+                                           'width' => 80,
+                                           'specs' => "filterUI: 's'",
+                                           'visible' => false,
+                                           ),
                              'arbeitsarten' => array(
                                            'name' => 'Arbeiten',
                                            'sql' => "arbeitsarten.arbeitsart",
@@ -80,7 +95,7 @@ $mask = array(
                              'stunden' => array(
                                            'name' => 'Mitarbeiterstunden',
                                            'type' => 'number',
-                                           'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: '&nbsp;', canSort: false",
+                                           'specs' => "decPlaces: 2, ClassName: 'alignrightpad', canSort: false",
                                            'width' => 60,
                                            'sql' => 'einsatzpersonal.stunden'
                                            ),
@@ -99,23 +114,17 @@ $mask = array(
                              'geraetstunden' => array(
                                            'name' => 'Gerätstunden',
                                            'type' => 'number',
-                                           'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: '&nbsp;', canSort: false",
+                                           'specs' => "decPlaces: 2, ClassName: 'alignrightpad', canSort: false",
                                            'width' => 60,
                                            'sql' => 'einsatzgeraete.stunden'
                                            ),
                              'gesamtstunden' => array(
                                            'name' => 'Gesamtstunden',
                                            'type' => 'number',
-                                           'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: '&nbsp;', canSort: false",
+                                           'specs' => "decPlaces: 2, ClassName: 'alignrightpad', canSort: false",
                                            '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',
+                                           'visible' => false,
                                            ),
                              ),
              'details' => array(
@@ -163,47 +172,60 @@ 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 '';