if (empty($_SESSION['overview_stunden.year'])) $_SESSION['overview_stunden.year'] = 0;
$details = <<<EOC
-<div style="padding-left: 3px;">
+<div style="padding-left: 3px; margin-top: -10px;">
<b>Gebiet</b>: <span id="detail_gebiet"></span><br>
+<b>Gewässer</b>: <span id="detail_kostenstelle"></span><br>
<b>Länge</b>: <span id="detail_laenge"></span><br>
<b>Gesamtstunden</b>: <span id="detail_gewaesserstunden"></span><br>
<b>Personalstunden</b>: <span id="detail_personalstunden"></span><br>
-<b>Gerätestunden</b>: <span id="detail_geraetestunden"></span>
+<b>Gerätestunden</b>: <span id="detail_geraetestunden"></span><br>
+<b>Gewässer gereinigt</b>: <span id="detail_gereinigt"></span>
</div>
EOC;
'join' => array(
'arbeitsarten ON einsatz.arbeiten = arbeitsarten.id',
'einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id',
- 'einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id',
+ 'ordnungen ON einsatz.ordnung = ordnungen.id',
+ 'LEFT einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id',
'gebiet ON einsatz.gebiet = gebiet.id',
'kostenstellen ON einsatz.kostenstelle = kostenstellen.id',
'personal ON einsatzpersonal.personal = personal.id',
- 'gerate ON einsatzgeraete.geraet = gerate.id',
- 'anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id',
+ 'LEFT gerate ON einsatzgeraete.geraet = gerate.id',
+ 'LEFT anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id',
),
- 'where' => "arbeitsarten.arbeitsart <> 'Urlaub' AND arbeitsarten.arbeitsart <> 'Krank' AND arbeitsarten.arbeitsart <> 'Sonstige Fehltage'"
- . " AND date_part('year', datum) = " . $_SESSION['overview_stunden.year'],
+# 'where' => "arbeitsarten.arbeitsart <> 'Urlaub' AND arbeitsarten.arbeitsart <> 'Krank' AND arbeitsarten.arbeitsart <> 'Sonstige Fehltage'"
+# . " AND date_part('year', datum) = " . $_SESSION['overview_stunden.year'],
+ 'where' => "date_part('year', datum) = " . $_SESSION['overview_stunden.year'],
'select' => array(
'title' => 'Auswahl',
'options' => discover_years(),
'type' => 'date',
'width' => 70,
),
+ 'akkord' => array(
+ 'name' => 'Akkord',
+ 'control' => "new Rico.TableColumn.checkbox('1','0','0',true)",
+ 'width' => 50,
+ 'specs' => "ClassName: 'aligncenter'",
+ ),
'gebiet' => array(
'name' => 'Gebiet',
'sql' => "gebiet.gebiet",
'width' => 150,
'specs' => "filterUI: 's'",
),
+ 'ordnung' => array(
+ 'name' => 'Ordnung',
+ 'sql' => "ordnungen.name",
+ 'width' => 80,
+ 'specs' => "filterUI: 's'",
+ 'visible' => false,
+ ),
'arbeitsarten' => array(
'name' => 'Arbeiten',
'sql' => "arbeitsarten.arbeitsart",
),
'personal' => array(
'name' => 'Mitarbeiter',
- 'sql' => "personal.vorname || ' ' || personal.name",
+ 'sql' => "personal.name || ', ' || personal.vorname",
'width' => 150,
'specs' => "filterUI: 's'",
),
'stunden' => array(
'name' => 'Mitarbeiterstunden',
'type' => 'number',
- 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
+ 'specs' => "decPlaces: 2, ClassName: 'alignrightpad', canSort: false",
'width' => 60,
'sql' => 'einsatzpersonal.stunden'
),
'geraetstunden' => array(
'name' => 'Gerätstunden',
'type' => 'number',
- 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
+ 'specs' => "decPlaces: 2, ClassName: 'alignrightpad', canSort: false",
'width' => 60,
'sql' => 'einsatzgeraete.stunden'
),
'gesamtstunden' => array(
'name' => 'Gesamtstunden',
'type' => 'number',
- 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
+ 'specs' => "decPlaces: 2, ClassName: 'alignrightpad', canSort: false",
'width' => 60,
'sql' => 'einsatzpersonal.stunden + einsatzgeraete.stunden',
- ),
- 'stdlfdm' => array(
- 'name' => 'Stunden pro lfdm',
- 'type' => 'number',
- 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
- 'width' => 60,
- 'sql' => '(einsatzpersonal.stunden + einsatzgeraete.stunden) / laenge',
+ 'visible' => false,
),
),
'details' => array(
'html' => $details,
'list' => array(
'gebiet' => array('fetch' => fetch_gebiet),
+ 'kostenstelle' => array('fetch' => fetch_kostenstelle),
'laenge' => array('fetch' => fetch_laenge),
'gewaesserstunden' => array('fetch' => fetch_gewaesserstunden),
'personalstunden' => array('fetch' => fetch_personalstunden),
'geraetestunden' => array('fetch' => fetch_geraetestunden),
+ 'gereinigt' => array('fetch' => fetch_gereinigt),
),
),
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']);
function fetch_gewaesserstunden()
{
$sql = <<<EOC
- SELECT sum(einsatzpersonal.stunden +
- einsatzgeraete.stunden) AS gesamt
- FROM einsatz
- JOIN einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id
- JOIN einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id
- WHERE einsatz.id = %d
+ SELECT sum(stunden) AS gesamt
+ FROM einsatzpersonal
+ WHERE einsatz IN
+ (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
+ (SELECT kostenstelle FROM einsatz WHERE id = %d))
EOC;
- $sql = sprintf($sql, $_POST['id']);
- $res = query_db($sql);
- if ($res === false) return '';
+ $sql = sprintf($sql, $_SESSION['overview_stunden.year'], $_POST['id']);
+ $pstunden = query_db($sql);
+ if ($pstunden === false) return '';
- return sprintf('%.2f', $res[0]['gesamt']);
+ $sql = <<<EOC
+ SELECT sum(stunden) AS gesamt
+ FROM einsatzgeraete
+ WHERE einsatz IN
+ (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
+ (SELECT kostenstelle FROM einsatz WHERE id = %d))
+EOC;
+
+ $sql = sprintf($sql, $_SESSION['overview_stunden.year'], $_POST['id']);
+ $gstunden = query_db($sql);
+ if ($gstunden === false) return '';
+
+ return sprintf('%.2f', $pstunden[0]['gesamt'] + $gstunden[0]['gesamt']);
}
function fetch_personalstunden()
{
$sql = <<<EOC
- SELECT sum(einsatzpersonal.stunden) AS kosten
- FROM einsatz
- JOIN einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id
- WHERE einsatz.id = %d
+ SELECT sum(stunden) AS gesamt
+ FROM einsatzpersonal
+ WHERE einsatz IN
+ (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
+ (SELECT kostenstelle FROM einsatz WHERE id = %d))
EOC;
- $sql = sprintf($sql, $_POST['id']);
+ $sql = sprintf($sql, $_SESSION['overview_stunden.year'], $_POST['id']);
$res = query_db($sql);
if ($res === false) return '';
- return sprintf('%.2f', $res[0]['kosten']);
+ return sprintf('%.2f', $res[0]['gesamt']);
}
function fetch_geraetestunden()
{
$sql = <<<EOC
- SELECT sum(einsatzgeraete.stunden) AS gesamt
- FROM einsatz
- JOIN einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id
- WHERE einsatz.id = %d
+ SELECT sum(stunden) AS gesamt
+ FROM einsatzgeraete
+ WHERE einsatz IN
+ (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
+ (SELECT kostenstelle FROM einsatz WHERE id = %d))
EOC;
- $sql = sprintf($sql, $_POST['id']);
+ $sql = sprintf($sql, $_SESSION['overview_stunden.year'], $_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';
+}
+
?>