1 a) Arbeitsberichte
authorJoey Schulze <joey@infodrom.org>
Fri, 5 Mar 2010 17:38:29 +0000 (18:38 +0100)
committerJoey Schulze <joey@infodrom.org>
Fri, 5 Mar 2010 17:38:29 +0000 (18:38 +0100)
1 b) Materialverbrauch

masks/arbeitsberichte.php [new file with mode: 0644]

diff --git a/masks/arbeitsberichte.php b/masks/arbeitsberichte.php
new file mode 100644 (file)
index 0000000..5b8c593
--- /dev/null
@@ -0,0 +1,188 @@
+<?php
+
+$jscode[] = <<<EOC
+
+function select_gebiet_callback(data)
+{
+    var obj = document.getElementById('edit_kostenstelle');
+    if (!obj) return;
+
+    obj.options.length = 0;
+
+    for (var i=0; i < data.info.length; i++)
+      obj.options[i] = new Option(data.info[i].kostenstelle,data.info[i].id,false,false);
+}
+
+function select_group(obj)
+{
+  setvar(obj,'gebiet',false,false);
+
+  get_info('kostenstellen', {gebiet: obj.options[obj.selectedIndex].value}, select_gebiet_callback);
+}
+EOC;
+
+function first_gebiet()
+{
+  $sql = "SELECT id FROM gebiet ORDER BY gebiet LIMIT 1";
+
+  $sth = pg_query($sql);
+
+  if ($sth === false) return 0;
+
+  if ($row = pg_fetch_assoc($sth))
+    return $row['id'];
+
+  return 0;
+}
+
+if (empty($_SESSION['arbeitsberichte.gebiet'])) $_SESSION['arbeitsberichte.gebiet'] = first_gebiet();
+
+$mask = array(
+             'table' => 'einsatz',
+             'title' => 'Arbeitsberichte',
+             'subtitle' => 'Eingabe und Übersicht',
+             'join' => array('personal ON einsatz.personal = personal.id',
+                             'gebiet ON einsatz.gebiet = gebiet.id',
+                             'gerate ON einsatz.geraet = gerate.id',
+                             'anbaugeraete ON einsatz.anbaugeraet = anbaugeraete.id',
+                             'arbeitsarten ON einsatz.arbeiten = arbeitsarten.id',
+                             'kostenstellen ON einsatz.kostenstelle = kostenstellen.id',
+                             ),
+             'where' => "arbeitsarten.arbeitsart <> 'Urlaub' AND arbeitsarten.arbeitsart <> 'Krank' AND arbeitsarten.arbeitsart <> 'Sonstige Fehltage'",
+             'variables' => array(
+                                  'gebiet' => array(),
+                                  ),
+             'list' => array(
+                             'id' => array(
+                                           'name' => 'ID',
+                                           'visible' => false,
+                                           'sql' => 'einsatz.id',
+                                           ),
+                             'datum' => array(
+                                           'name' => 'Datum',
+                                           'type' => 'date',
+                                           'width' => 70,
+                                           ),
+                             'kostenstelle' => array(
+                                           'name' => 'Gewässer',
+                                           'sql' => "kostenstellen.kostenstelle",
+                                           'width' => 200,
+                                           'specs' => "filterUI: 's'",
+                                           ),
+                             'gebiet' => array(
+                                           'name' => 'Gebiet',
+                                           'sql' => "gebiet.gebiet",
+                                           'width' => 150,
+                                           'specs' => "filterUI: 's'",
+                                           'visible' => false,
+                                           ),
+                             'name' => array(
+                                           'name' => 'Personal',
+                                           'sql' => "personal.vorname || ' ' || personal.name",
+                                           'width' => 150,
+                                           'specs' => "filterUI: 's'",
+                                           'visible' => false,
+                                           ),
+                             'geraet' => array(
+                                           'name' => 'Gerät',
+                                           'sql' => 'gerate.geraet',
+                                           'width' => 150,
+                                           'specs' => "filterUI: 's'",
+                                           ),
+                             'anbaugeraet' => array(
+                                           'name' => 'Anbaugerät',
+                                           'sql' => 'anbaugeraete.anbaugeraet',
+                                           'width' => 150,
+                                           'specs' => "filterUI: 's'",
+                                           ),
+                             'stunden' => array(
+                                           'name' => 'Stunden',
+                                           'type' => 'number',
+                                           'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: '&nbsp;', canSort: false",
+                                           'width' => 60,
+                                           'visible' => false,
+                                           ),
+                             'geraetstunden' => array(
+                                           'name' => 'Gerätstunden',
+                                           'type' => 'number',
+                                           'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: '&nbsp;', canSort: false",
+                                           'width' => 60,
+                                           'visible' => false,
+                                           ),
+                             ),
+             'edit' => array(
+                             'datum' => array(
+                                           'name' => 'Datum',
+                                           'type' => 'date',
+                                           ),
+                             'hhjahreinsatz' => array(
+                                           'name' => 'Haushaltsjahr',
+                                           'type' => 'select',
+                                           'options' => "SELECT id,hhjahr AS text FROM einstellungen ORDER BY text",
+                                           ),
+                             'personal' => array(
+                                           'name' => 'Mitarbeiter',
+                                           'type' => 'select',
+                                           'options' => "SELECT id,vorname || ' ' || name AS text FROM personal ORDER BY text",
+                                           ),
+                             'gebiet' => array(
+                                           'name' => 'Gebiet',
+                                           'type' => 'select',
+                                           'options' => "SELECT id,gebiet AS text FROM gebiet ORDER BY text",
+                                           'selected' => $_SESSION['arbeitsberichte.gebiet'],
+                                           'onchange' => 'select_group(this)',
+                                           ),
+                             'kostenstelle' => array(
+                                           'name' => 'Gewässer',
+                                           'type' => 'select',
+                                           'options' => "SELECT id,kostenstelle AS text FROM kostenstellen WHERE gebiet = " .
+                                                        intval($_SESSION['arbeitsberichte.gebiet']) .
+                                                        " ORDER BY text",
+                                           ),
+                             'geraet' => array(
+                                           'name' => 'Gerät',
+                                           'type' => 'select',
+                                           'options' => "SELECT id,geraet AS text FROM gerate ORDER BY text",
+                                           ),
+                             'anbaugeraet' => array(
+                                           'name' => 'Anbaugerät',
+                                           'type' => 'select',
+                                           'options' => "SELECT id,anbaugeraet AS text FROM anbaugeraete ORDER BY text",
+                                           ),
+                             'arbeiten' => array(
+                                           'name' => 'Arbeitsart',
+                                           'type' => 'select',
+                                           'options' => "SELECT id,arbeitsart AS text FROM arbeitsarten ORDER BY text",
+                                           ),
+                             'stunden' => array(
+                                           'name' => 'Stunden',
+                                           'type' => 'decimal',
+                                           'size' => 5,
+                                           ),
+                             'geraetstunden' => array(
+                                           'name' => 'Gerätstunden',
+                                           'type' => 'decimal',
+                                           'size' => 5,
+                                           ),
+                             'ordnung' => array(
+                                           'name' => 'Gewässerordnung',
+                                           'type' => 'select',
+                                           'options' => "SELECT id,name AS text FROM ordnungen ORDER BY text",
+                                           ),
+                             'akkord' => array(
+                                           'name' => 'Akkord',
+                                           'type' => 'boolean',
+                                           ),
+                             'bemerkung' => array(
+                                           'name' => 'Bemerkung',
+                                           'type' => 'textarea',
+                                           ),
+                             ),
+             'info' => array(
+                             'kostenstellen' => array(
+                                           'sql' => 'SELECT id,kostenstelle FROM kostenstellen WHERE gebiet = {gebiet}',
+                                           ),
+                                  ),
+             );
+
+?>