3 include_once($_SESSION['sys']['basedir'].'/lib/overview_utils.php');
5 if (empty($_SESSION['overview_kosten.year'])) $_SESSION['overview_kosten.year'] = date('Y');
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>Gesamtkosten</b>: <span id="detail_gewaesserkosten"></span><br />
13 <b>Personalkosten</b>: <span id="detail_personalkosten"></span><br />
14 <b>Gerätekosten</b>: <span id="detail_geraetekosten"></span><br />
15 <b>Gewässer gereinigt</b>: <span id="detail_gereinigt"></span>
21 'title' => 'Kostenaufwand für Kostenstellen',
23 'arbeitsarten ON einsatz.arbeiten = arbeitsarten.id',
24 'gebiet ON einsatz.gebiet = gebiet.id',
25 'kostenstellen ON einsatz.kostenstelle = kostenstellen.id',
26 'ordnungen ON einsatz.ordnung = ordnungen.id',
28 # 'where' => "arbeitsarten.arbeitsart <> 'Urlaub' AND arbeitsarten.arbeitsart <> 'Krank' AND arbeitsarten.arbeitsart <> 'Sonstige Fehltage'"
29 # . " AND date_part('year', datum) = " . $_SESSION['overview_kosten.year'],
30 'where' => "date_part('year', datum) = " . $_SESSION['overview_kosten.year'],
33 'options' => discover_years(),
34 'default' => 'Jahr wählen',
35 'selected' => $_SESSION['overview_kosten.year'],
36 'onchange' => "setvar(this,'year',select_year_calback,select_year_status)",
46 'sql' => 'einsatz.id',
55 'control' => "new Rico.TableColumn.checkbox('1','0','0',true)",
57 'specs' => "ClassName: 'aligncenter'",
61 'sql' => "gebiet.gebiet",
63 'specs' => "filterUI: 's'",
65 'kostenstelle' => array(
66 'name' => 'Kostenstelle',
67 'sql' => "kostenstellen.kostenstelle",
69 'specs' => "filterUI: 's'",
73 'sql' => "ordnungen.name",
75 'specs' => "filterUI: 's'",
78 'arbeitsart' => array(
80 'sql' => "arbeitsarten.arbeitsart",
82 'specs' => "filterUI: 's'",
87 'specs' => "decPlaces: 2, ClassName: 'alignrightpad', canSort: false",
90 'personalkosten' => array(
91 'name' => 'Mitarbeiterkosten',
93 'specs' => "decPlaces: 2, ClassName: 'alignrightpad', canSort: false",
96 (SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal
97 JOIN personal ON einsatzpersonal.personal = personal.id
98 WHERE einsatz = einsatz.id)
101 'geraetkosten' => array(
102 'name' => 'Gerätkosten',
104 'specs' => "decPlaces: 2, ClassName: 'alignrightpad', canSort: false",
107 (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
109 JOIN gerate ON einsatzgeraete.geraet = gerate.id
110 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
111 WHERE einsatz = einsatz.id)
114 'gesamtkosten' => array(
115 'name' => 'Gesamtkosten',
117 'specs' => "decPlaces: 2, ClassName: 'alignrightpad', canSort: false",
120 (SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal
121 JOIN personal ON einsatzpersonal.personal = personal.id
122 WHERE einsatz = einsatz.id)
125 (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
127 JOIN gerate ON einsatzgeraete.geraet = gerate.id
128 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
129 WHERE einsatz = einsatz.id) IS NULL THEN 0.0
130 ELSE (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
132 JOIN gerate ON einsatzgeraete.geraet = gerate.id
133 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
134 WHERE einsatz = einsatz.id) END
138 'name' => 'pro lfdm',
140 'specs' => "decPlaces: 2, ClassName: 'alignrightpad', canSort: false",
143 ((SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal
144 JOIN personal ON einsatzpersonal.personal = personal.id
145 WHERE einsatz = einsatz.id)
148 (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
150 JOIN gerate ON einsatzgeraete.geraet = gerate.id
151 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
152 WHERE einsatz = einsatz.id) IS NULL THEN 0.0
153 ELSE (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
155 JOIN gerate ON einsatzgeraete.geraet = gerate.id
156 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
157 WHERE einsatz = einsatz.id) END) / laenge
166 'gebiet' => array('fetch' => fetch_gebiet),
167 'kostenstelle' => array('fetch' => fetch_kostenstelle),
168 'laenge' => array('fetch' => fetch_laenge),
169 'gewaesserkosten' => array('fetch' => fetch_gewaesserkosten),
170 'personalkosten' => array('fetch' => fetch_personalkosten),
171 'geraetekosten' => array('fetch' => fetch_geraetekosten),
172 'gereinigt' => array('fetch' => fetch_gereinigt),
178 function fetch_gebiet()
180 $sql = 'SELECT gebiet.gebiet FROM gebiet JOIN einsatz ON einsatz.gebiet = gebiet.id WHERE einsatz.id = ' . intval($_POST['id']);
181 $res = query_db($sql);
182 if ($res === false) return '';
184 return $res[0]['gebiet'];
187 function fetch_kostenstelle()
189 $sql = 'SELECT kostenstellen.kostenstelle FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
190 $res = query_db($sql);
191 if ($res === false) return '';
193 return $res[0]['kostenstelle'];
196 function fetch_laenge()
198 $sql = 'SELECT laenge FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
199 $res = query_db($sql);
200 if ($res === false) return '';
202 return $res[0]['laenge'] . ' m';
205 function fetch_gewaesserkosten()
208 SELECT sum(stunden * persstdsatz) AS gesamt
210 JOIN personal ON einsatzpersonal.personal = personal.id
212 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
213 (SELECT kostenstelle FROM einsatz WHERE id = %d))
216 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
217 $pkosten = query_db($sql);
218 if ($pkosten === false) return '';
221 SELECT sum(stunden * gerate.geraetkst_intern +
222 stunden * anbaugeraete.anbkst_intern) AS gesamt
224 JOIN gerate ON einsatzgeraete.geraet = gerate.id
225 JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
227 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
228 (SELECT kostenstelle FROM einsatz WHERE id = %d))
231 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
232 $gkosten = query_db($sql);
233 if ($gkosten === false) return '';
235 return sprintf('%.2f €', $pkosten[0]['gesamt'] + $gkosten[0]['gesamt']);
238 function fetch_personalkosten()
241 SELECT sum(stunden * persstdsatz) AS gesamt
243 JOIN personal ON einsatzpersonal.personal = personal.id
245 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
246 (SELECT kostenstelle FROM einsatz WHERE id = %d))
249 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
250 $res = query_db($sql);
251 if ($res === false) return '';
253 return sprintf('%.2f €', $res[0]['gesamt']);
256 function fetch_geraetekosten()
259 SELECT sum(stunden * gerate.geraetkst_intern +
260 stunden * anbaugeraete.anbkst_intern) AS gesamt
262 JOIN gerate ON einsatzgeraete.geraet = gerate.id
263 JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
265 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
266 (SELECT kostenstelle FROM einsatz WHERE id = %d))
269 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
270 $res = query_db($sql);
271 if ($res === false) return '';
273 return sprintf('%.2f €', $res[0]['gesamt']);
276 function fetch_gereinigt()
279 SELECT count(*) AS count
281 JOIN kostenstellen ON gereinigt.kostenstelle = kostenstellen.id
282 JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id
283 WHERE jahr = %d AND einsatz.id = %d
286 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
288 $res = query_db($sql);
289 if ($res === false) return '';
291 return $res[0]['count'] == 0 ? 'nein' : 'ja';