get_info('kostenstellen', {gebiet: obj.options[obj.selectedIndex].value}, select_gebiet_callback);
}
+
+function select_geraet_callback(data)
+{
+ var obj = document.getElementById('edit_anbaugeraet');
+ if (!obj) return;
+
+ obj.options.length = 0;
+
+ for (var i=0; i < data.info.length; i++)
+ obj.options[i] = new Option(data.info[i].anbaugeraet,data.info[i].id,false,false);
+}
+
+function select_geraet(obj)
+{
+ setvar(obj,'geraet',false,false);
+
+ get_info('anbaugeraete', {geraet: obj.options[obj.selectedIndex].value}, select_geraet_callback);
+}
EOC;
function first_gebiet()
}
if (empty($_SESSION['arbeitsberichte.gebiet'])) $_SESSION['arbeitsberichte.gebiet'] = first_gebiet();
+if (empty($_SESSION['arbeitsberichte.geraet'])) $_SESSION['arbeitsberichte.geraet'] = 0;
$mask = array(
'table' => 'einsatz',
'title' => 'Arbeitsberichte',
'subtitle' => 'Eingabe und Übersicht',
- 'join' => array('personal ON einsatz.personal = personal.id',
+ 'join' => array(
+ 'einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id',
+ 'personal ON einsatzpersonal.personal = personal.id',
+ 'einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id',
'gebiet ON einsatz.gebiet = gebiet.id',
- 'gerate ON einsatz.geraet = gerate.id',
- 'anbaugeraete ON einsatz.anbaugeraet = anbaugeraete.id',
+ 'gerate ON einsatzgeraete.geraet = gerate.id',
+ 'anbaugeraete ON einsatzgeraete.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(),
+ 'geraet' => array(),
),
'list' => array(
'id' => array(
'width' => 150,
'specs' => "filterUI: 's'",
),
- 'stunden' => array(
- 'name' => 'Stunden',
+ 'personalstunden' => array(
+ 'name' => 'Mitarbeiterstunden',
'type' => 'number',
'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
+ 'sql' => 'einsatzpersonal.stunden',
'width' => 60,
'visible' => false,
),
'name' => 'Gerätstunden',
'type' => 'number',
'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
+ 'sql' => 'einsatzgeraete.stunden',
'width' => 60,
'visible' => false,
),
'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',
'name' => 'Gerät',
'type' => 'select',
'options' => "SELECT id,geraet AS text FROM gerate ORDER BY text",
+ 'selected' => $_SESSION['arbeitsberichte.geraet'],
+ 'onchange' => 'select_geraet(this)',
),
'anbaugeraet' => array(
'name' => 'Anbaugerät',
'type' => 'select',
- 'options' => "SELECT id,anbaugeraet AS text FROM anbaugeraete ORDER BY text",
+ 'options' => "SELECT anbaugeraete.id,anbaugeraet AS text FROM anbaugeraete " .
+ "JOIN gerate ON anbaugeraete.geraetetyp = gerate.geraetetyp " .
+ "WHERE gerate.id = " . intval($_SESSION['arbeitsberichte.geraet']) . " " .
+ "ORDER BY text",
),
'arbeiten' => array(
'name' => 'Arbeitsart',
'kostenstellen' => array(
'sql' => 'SELECT id,kostenstelle FROM kostenstellen WHERE gebiet = {gebiet}',
),
+ 'anbaugeraete' => array(
+ 'sql' => 'SELECT anbaugeraete.id,anbaugeraet FROM anbaugeraete ' .
+ 'JOIN gerate ON anbaugeraete.geraetetyp = gerate.geraetetyp ' .
+ 'WHERE gerate.id = {geraet}',
+ ),
),
);