Gebiet:
Gewässer:
Länge:
Gesamtkosten:
Personalkosten:
Gerätekosten:
Gewässer gereinigt: EOC; $mask = array( 'table' => 'einsatz', 'title' => 'Kostenaufwand für Kostenstellen', 'join' => array( 'arbeitsarten ON einsatz.arbeiten = arbeitsarten.id', 'gebiet ON einsatz.gebiet = gebiet.id', 'kostenstellen ON einsatz.kostenstelle = kostenstellen.id', ), 'where' => "arbeitsarten.arbeitsart <> 'Urlaub' AND arbeitsarten.arbeitsart <> 'Krank' AND arbeitsarten.arbeitsart <> 'Sonstige Fehltage'" . " AND date_part('year', datum) = " . $_SESSION['overview_kosten.year'], 'select' => array( 'title' => 'Auswahl', 'options' => discover_years(), 'default' => 'Jahr wählen', 'selected' => $_SESSION['overview_kosten.year'], 'onchange' => "setvar(this,'year',select_year_calback,select_year_status)", ), 'variables' => array( 'year' => array(), ), 'list' => array( 'id' => array( 'name' => 'ID', 'visible' => false, 'width' => 60, 'sql' => 'einsatz.id', ), 'datum' => array( 'name' => 'Datum', 'type' => 'date', 'width' => 70, ), 'gebiet' => array( 'name' => 'Gebiet', 'sql' => "gebiet.gebiet", 'width' => 150, 'specs' => "filterUI: 's'", ), 'kostenstelle' => array( 'name' => 'Kostenstelle', 'sql' => "kostenstellen.kostenstelle", 'width' => 250, 'specs' => "filterUI: 's'", ), 'arbeitsart' => array( 'name' => 'Arbeiten', 'sql' => "arbeitsarten.arbeitsart", 'width' => 250, 'specs' => "filterUI: 's'", ), 'laenge' => array( 'name' => 'Länge', 'type' => 'number', 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false", 'width' => 70, ), 'personalkosten' => array( 'name' => 'Mitarbeiterkosten', 'type' => 'number', 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false", 'width' => 90, 'sql' => ' (SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal JOIN personal ON einsatzpersonal.personal = personal.id WHERE einsatz = einsatz.id) ', ), 'geraetkosten' => array( 'name' => 'Gerätkosten', 'type' => 'number', 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false", 'width' => 90, 'sql' => ' (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END) FROM einsatzgeraete JOIN gerate ON einsatzgeraete.geraet = gerate.id LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id WHERE einsatz = einsatz.id) ', ), 'gesamtkosten' => array( 'name' => 'Gesamtkosten', 'type' => 'number', 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false", 'width' => 90, 'sql' => ' (SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal JOIN personal ON einsatzpersonal.personal = personal.id WHERE einsatz = einsatz.id) + CASE WHEN (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END) FROM einsatzgeraete JOIN gerate ON einsatzgeraete.geraet = gerate.id LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id WHERE einsatz = einsatz.id) IS NULL THEN 0.0 ELSE (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END) FROM einsatzgeraete JOIN gerate ON einsatzgeraete.geraet = gerate.id LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id WHERE einsatz = einsatz.id) END ', ), 'prolfdm' => array( 'name' => 'pro lfdm', 'type' => 'number', 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false", 'width' => 60, 'sql' => ' ((SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal JOIN personal ON einsatzpersonal.personal = personal.id WHERE einsatz = einsatz.id) + CASE WHEN (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END) FROM einsatzgeraete JOIN gerate ON einsatzgeraete.geraet = gerate.id LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id WHERE einsatz = einsatz.id) IS NULL THEN 0.0 ELSE (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END) FROM einsatzgeraete JOIN gerate ON einsatzgeraete.geraet = gerate.id LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id WHERE einsatz = einsatz.id) END) / laenge ', ), ), 'details' => array( 'html' => $details, 'list' => array( 'gebiet' => array('fetch' => fetch_gebiet), 'kostenstelle' => array('fetch' => fetch_kostenstelle), 'laenge' => array('fetch' => fetch_laenge), 'gewaesserkosten' => array('fetch' => fetch_gewaesserkosten), 'personalkosten' => array('fetch' => fetch_personalkosten), 'geraetekosten' => array('fetch' => fetch_geraetekosten), '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_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']); $res = query_db($sql); if ($res === false) return ''; return $res[0]['laenge'] . ' m'; } function fetch_gewaesserkosten() { $sql = <<