3 include_once($_SESSION['sys']['basedir'].'/lib/overview_utils.php');
5 if (empty($_SESSION['overview_stunden.year'])) $_SESSION['overview_stunden.year'] = 0;
8 <div style="padding-left: 3px; margin-top: -10px;">
9 <b>Gebiet</b>: <span id="detail_gebiet"></span><br>
10 <b>Gewässer</b>: <span id="detail_kostenstelle"></span><br>
11 <b>Länge</b>: <span id="detail_laenge"></span><br>
12 <b>Gesamtstunden</b>: <span id="detail_gewaesserstunden"></span><br>
13 <b>Personalstunden</b>: <span id="detail_personalstunden"></span><br>
14 <b>Gerätestunden</b>: <span id="detail_geraetestunden"></span><br>
15 <b>Gewässer gereinigt</b>: <span id="detail_gereinigt"></span>
21 'title' => 'Stundenübersicht nach Kostenstellen',
23 'arbeitsarten ON einsatz.arbeiten = arbeitsarten.id',
24 'einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id',
25 'einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id',
26 'gebiet ON einsatz.gebiet = gebiet.id',
27 'kostenstellen ON einsatz.kostenstelle = kostenstellen.id',
28 'personal ON einsatzpersonal.personal = personal.id',
29 'gerate ON einsatzgeraete.geraet = gerate.id',
30 'anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id',
32 'where' => "arbeitsarten.arbeitsart <> 'Urlaub' AND arbeitsarten.arbeitsart <> 'Krank' AND arbeitsarten.arbeitsart <> 'Sonstige Fehltage'"
33 . " AND date_part('year', datum) = " . $_SESSION['overview_stunden.year'],
36 'options' => discover_years(),
37 'default' => 'Jahr wählen',
38 'selected' => $_SESSION['overview_stunden.year'],
39 'onchange' => "setvar(this,'year',select_year_calback,select_year_status)",
49 'sql' => 'einsatz.id',
58 'sql' => "gebiet.gebiet",
60 'specs' => "filterUI: 's'",
62 'kostenstelle' => array(
63 'name' => 'Kostenstelle',
64 'sql' => "kostenstellen.kostenstelle",
66 'specs' => "filterUI: 's'",
68 'arbeitsarten' => array(
70 'sql' => "arbeitsarten.arbeitsart",
72 'specs' => "filterUI: 's'",
75 'name' => 'Mitarbeiter',
76 'sql' => "personal.name || ', ' || personal.vorname",
78 'specs' => "filterUI: 's'",
81 'name' => 'Mitarbeiterstunden',
83 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
85 'sql' => 'einsatzpersonal.stunden'
89 'sql' => "gerate.geraet",
91 'specs' => "filterUI: 's'",
93 'anbaugeraet' => array(
94 'name' => 'Anbaugerät',
95 'sql' => "anbaugeraete.anbaugeraet",
97 'specs' => "filterUI: 's'",
99 'geraetstunden' => array(
100 'name' => 'Gerätstunden',
102 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
104 'sql' => 'einsatzgeraete.stunden'
106 'gesamtstunden' => array(
107 'name' => 'Gesamtstunden',
109 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
111 'sql' => 'einsatzpersonal.stunden + einsatzgeraete.stunden',
114 'name' => 'Stunden pro lfdm',
116 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
118 'sql' => '(einsatzpersonal.stunden + einsatzgeraete.stunden) / laenge',
124 'gebiet' => array('fetch' => fetch_gebiet),
125 'kostenstelle' => array('fetch' => fetch_kostenstelle),
126 'laenge' => array('fetch' => fetch_laenge),
127 'gewaesserstunden' => array('fetch' => fetch_gewaesserstunden),
128 'personalstunden' => array('fetch' => fetch_personalstunden),
129 'geraetestunden' => array('fetch' => fetch_geraetestunden),
130 'gereinigt' => array('fetch' => fetch_gereinigt),
136 function fetch_gebiet()
138 $sql = 'SELECT gebiet.gebiet FROM gebiet JOIN einsatz ON einsatz.gebiet = gebiet.id WHERE einsatz.id = ' . intval($_POST['id']);
139 $res = query_db($sql);
140 if ($res === false) return '';
142 return $res[0]['gebiet'];
145 function fetch_kostenstelle()
147 $sql = 'SELECT kostenstellen.kostenstelle FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
148 $res = query_db($sql);
149 if ($res === false) return '';
151 return $res[0]['kostenstelle'];
154 function fetch_laenge()
156 $sql = 'SELECT laenge FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
157 $res = query_db($sql);
158 if ($res === false) return '';
160 return $res[0]['laenge'] . ' m';
163 function fetch_gewaesserstunden()
166 SELECT sum(stunden) AS gesamt
169 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
170 (SELECT kostenstelle FROM einsatz WHERE id = %d))
173 $sql = sprintf($sql, $_SESSION['overview_stunden.year'], $_POST['id']);
174 $pstunden = query_db($sql);
175 if ($pstunden === false) return '';
178 SELECT sum(stunden) AS gesamt
181 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
182 (SELECT kostenstelle FROM einsatz WHERE id = %d))
185 $sql = sprintf($sql, $_SESSION['overview_stunden.year'], $_POST['id']);
186 $gstunden = query_db($sql);
187 if ($gstunden === false) return '';
189 return sprintf('%.2f', $pstunden[0]['gesamt'] + $gstunden[0]['gesamt']);
192 function fetch_personalstunden()
195 SELECT sum(stunden) AS gesamt
198 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
199 (SELECT kostenstelle FROM einsatz WHERE id = %d))
202 $sql = sprintf($sql, $_SESSION['overview_stunden.year'], $_POST['id']);
203 $res = query_db($sql);
204 if ($res === false) return '';
206 return sprintf('%.2f', $res[0]['gesamt']);
209 function fetch_geraetestunden()
212 SELECT sum(stunden) AS gesamt
215 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
216 (SELECT kostenstelle FROM einsatz WHERE id = %d))
219 $sql = sprintf($sql, $_SESSION['overview_stunden.year'], $_POST['id']);
220 $res = query_db($sql);
221 if ($res === false) return '';
223 return sprintf('%.2f', $res[0]['gesamt']);
226 function fetch_gereinigt()
229 SELECT count(*) AS count
231 JOIN kostenstellen ON gereinigt.kostenstelle = kostenstellen.id
232 JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id
233 WHERE jahr = %d AND einsatz.id = %d
236 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
238 $res = query_db($sql);
239 if ($res === false) return '';
241 return $res[0]['count'] == 0 ? 'nein' : 'ja';