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 = <<