include_once($_SESSION['sys']['basedir'].'/lib/overview_utils.php');
-if (empty($_SESSION['kosten.year'])) $_SESSION['kosten.year'] = 0;
+if (empty($_SESSION['overview_kosten.year'])) $_SESSION['overview_kosten.year'] = 0;
+
+$details = <<<EOC
+<div style="padding-left: 3px; margin-top: -10px;">
+<b>Gebiet</b>: <span id="detail_gebiet"></span><br>
+<b>Länge</b>: <span id="detail_laenge"></span><br>
+<b>Gesamtkosten</b>: <span id="detail_gewaesserkosten"></span><br>
+<b>Personalkosten</b>: <span id="detail_personalkosten"></span><br>
+<b>Gerätekosten</b>: <span id="detail_geraetekosten"></span><br>
+<b>Gewässer gereinigt</b>: <span id="detail_gereinigt"></span>
+</div>
+EOC;
$mask = array(
'table' => 'einsatz',
'title' => 'Kostenaufwand für Kostenstellen',
- 'join' => array('personal ON einsatz.personal = personal.id',
- 'gerate ON einsatz.geraet = gerate.id',
- 'anbaugeraete ON einsatz.anbaugeraet = anbaugeraete.id',
+ 'join' => array(
+ 'einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id',
+ 'einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id',
+ 'personal ON einsatzpersonal.personal = personal.id',
+ 'gerate ON einsatzgeraete.geraet = gerate.id',
+ 'anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id',
'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['kosten.year']
- . " GROUP BY gebiet.gebiet,kostenstellen.kostenstelle,kostenstellen.id,personal.name,personal.vorname,gerate.geraet,laenge",
+ . " AND date_part('year', datum) = " . $_SESSION['overview_kosten.year']
+ . " GROUP BY einsatz.id,gebiet.gebiet,kostenstellen.kostenstelle,kostenstellen.id,personal.name,personal.vorname,gerate.geraet,laenge",
'select' => array(
'title' => 'Auswahl',
'options' => discover_years(),
'default' => 'Jahr wählen',
- 'selected' => $_SESSION['kosten.year'],
+ 'selected' => $_SESSION['overview_kosten.year'],
'onchange' => "setvar(this,'year',select_year_calback,select_year_status)",
),
'variables' => array(
'id' => array(
'name' => 'ID',
'visible' => false,
- 'sql' => 'kostenstellen.id',
+ 'width' => 60,
+ 'sql' => 'einsatz.id',
+ ),
+ 'datum' => array(
+ 'name' => 'Datum',
+ 'type' => 'date',
+ 'width' => 70,
),
'gebiet' => array(
'name' => 'Gebiet',
),
'personal' => array(
'name' => 'Mitarbeiter',
- 'sql' => "personal.vorname || ' ' || personal.name",
+ 'sql' => "personal.name || ', ' || personal.vorname",
'width' => 150,
'specs' => "filterUI: 's'",
),
'type' => 'number',
'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
'width' => 90,
- 'sql' => 'sum(stunden * personal.persstdsatz)',
+ 'sql' => 'sum(einsatzpersonal.stunden * personal.persstdsatz)',
),
'geraetkosten' => array(
'name' => 'Gerätkosten',
'type' => 'number',
'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
'width' => 90,
- 'sql' => 'sum(geraetstunden * gerate.geraetkst_intern + ' .
- 'geraetstunden * anbaugeraete.anbkst_intern)',
+ 'sql' => 'sum(einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
+ 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern)',
),
'gesamtkosten' => array(
'name' => 'Gesamtkosten',
'type' => 'number',
'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
'width' => 90,
- 'sql' => 'sum(stunden * personal.persstdsatz + ' .
- 'geraetstunden * gerate.geraetkst_intern + ' .
- 'geraetstunden * anbaugeraete.anbkst_intern)',
+ 'sql' => 'sum(einsatzpersonal.stunden * personal.persstdsatz + ' .
+ 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
+ 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern)',
),
'prolfdm' => array(
'name' => 'pro lfdm',
'type' => 'number',
'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
'width' => 60,
- 'sql' => 'sum(stunden * personal.persstdsatz + ' .
- 'geraetstunden * gerate.geraetkst_intern + ' .
- 'geraetstunden * anbaugeraete.anbkst_intern) / laenge',
+ 'sql' => 'sum(einsatzpersonal.stunden * personal.persstdsatz + ' .
+ 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
+ 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern) / laenge',
),
),
+ 'details' => array(
+ 'html' => $details,
+ 'list' => array(
+ 'gebiet' => array('fetch' => fetch_gebiet),
+ '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_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 = <<<EOC
+ SELECT sum(einsatzpersonal.stunden * personal.persstdsatz +
+ einsatzgeraete.stunden * gerate.geraetkst_intern +
+ einsatzgeraete.stunden * anbaugeraete.anbkst_intern) AS gesamt
+ FROM einsatz
+ JOIN einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id
+ JOIN einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id
+ JOIN personal ON einsatzpersonal.personal = personal.id
+ JOIN gerate ON einsatzgeraete.geraet = gerate.id
+ JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
+ WHERE einsatz.id = %d
+EOC;
+
+ $sql = sprintf($sql, $_POST['id']);
+ $res = query_db($sql);
+ if ($res === false) return '';
+
+ return sprintf('%.2f €', $res[0]['gesamt']);
+}
+
+function fetch_personalkosten()
+{
+ $sql = <<<EOC
+ SELECT sum(einsatzpersonal.stunden * personal.persstdsatz) AS kosten
+ FROM einsatz
+ JOIN einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id
+ JOIN personal ON einsatzpersonal.personal = personal.id
+ WHERE einsatz.id = %d
+EOC;
+
+ $sql = sprintf($sql, $_POST['id']);
+ $res = query_db($sql);
+ if ($res === false) return '';
+
+ return sprintf('%.2f €', $res[0]['kosten']);
+}
+
+function fetch_geraetekosten()
+{
+ $sql = <<<EOC
+ SELECT sum(einsatzgeraete.stunden * gerate.geraetkst_intern +
+ einsatzgeraete.stunden * anbaugeraete.anbkst_intern) AS gesamt
+ FROM einsatz
+ JOIN einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id
+ JOIN gerate ON einsatzgeraete.geraet = gerate.id
+ JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
+ WHERE einsatz.id = %d
+EOC;
+
+ $sql = sprintf($sql, $_POST['id']);
+ $res = query_db($sql);
+ if ($res === false) return '';
+
+ return sprintf('%.2f €', $res[0]['gesamt']);
+}
+
+function fetch_gereinigt()
+{
+ $sql = <<<EOC
+ SELECT count(*) AS count
+ FROM gereinigt
+ JOIN kostenstellen ON gereinigt.kostenstelle = kostenstellen.id
+ JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id
+ WHERE jahr = %d AND einsatz.id = %d
+EOC;
+
+ $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
+
+ $res = query_db($sql);
+ if ($res === false) return '';
+
+ return $res[0]['count'] == 0 ? 'nein' : 'ja';
+}
+
?>