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',
27 'where' => "arbeitsarten.arbeitsart <> 'Urlaub' AND arbeitsarten.arbeitsart <> 'Krank' AND arbeitsarten.arbeitsart <> 'Sonstige Fehltage'"
28 . " AND date_part('year', datum) = " . $_SESSION['overview_kosten.year'],
31 'options' => discover_years(),
32 'default' => 'Jahr wählen',
33 'selected' => $_SESSION['overview_kosten.year'],
34 'onchange' => "setvar(this,'year',select_year_calback,select_year_status)",
44 'sql' => 'einsatz.id',
53 'sql' => "gebiet.gebiet",
55 'specs' => "filterUI: 's'",
57 'kostenstelle' => array(
58 'name' => 'Kostenstelle',
59 'sql' => "kostenstellen.kostenstelle",
61 'specs' => "filterUI: 's'",
63 'arbeitsart' => array(
65 'sql' => "arbeitsarten.arbeitsart",
67 'specs' => "filterUI: 's'",
72 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
75 'personalkosten' => array(
76 'name' => 'Mitarbeiterkosten',
78 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
81 (SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal
82 JOIN personal ON einsatzpersonal.personal = personal.id
83 WHERE einsatz = einsatz.id)
86 'geraetkosten' => array(
87 'name' => 'Gerätkosten',
89 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
92 (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
94 JOIN gerate ON einsatzgeraete.geraet = gerate.id
95 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
96 WHERE einsatz = einsatz.id)
99 'gesamtkosten' => array(
100 'name' => 'Gesamtkosten',
102 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
105 (SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal
106 JOIN personal ON einsatzpersonal.personal = personal.id
107 WHERE einsatz = einsatz.id)
110 (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
112 JOIN gerate ON einsatzgeraete.geraet = gerate.id
113 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
114 WHERE einsatz = einsatz.id) IS NULL THEN 0.0
115 ELSE (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
117 JOIN gerate ON einsatzgeraete.geraet = gerate.id
118 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
119 WHERE einsatz = einsatz.id) END
123 'name' => 'pro lfdm',
125 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
128 ((SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal
129 JOIN personal ON einsatzpersonal.personal = personal.id
130 WHERE einsatz = einsatz.id)
133 (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
135 JOIN gerate ON einsatzgeraete.geraet = gerate.id
136 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
137 WHERE einsatz = einsatz.id) IS NULL THEN 0.0
138 ELSE (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
140 JOIN gerate ON einsatzgeraete.geraet = gerate.id
141 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
142 WHERE einsatz = einsatz.id) END) / laenge
151 'gebiet' => array('fetch' => fetch_gebiet),
152 'kostenstelle' => array('fetch' => fetch_kostenstelle),
153 'laenge' => array('fetch' => fetch_laenge),
154 'gewaesserkosten' => array('fetch' => fetch_gewaesserkosten),
155 'personalkosten' => array('fetch' => fetch_personalkosten),
156 'geraetekosten' => array('fetch' => fetch_geraetekosten),
157 'gereinigt' => array('fetch' => fetch_gereinigt),
163 function fetch_gebiet()
165 $sql = 'SELECT gebiet.gebiet FROM gebiet JOIN einsatz ON einsatz.gebiet = gebiet.id WHERE einsatz.id = ' . intval($_POST['id']);
166 $res = query_db($sql);
167 if ($res === false) return '';
169 return $res[0]['gebiet'];
172 function fetch_kostenstelle()
174 $sql = 'SELECT kostenstellen.kostenstelle FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
175 $res = query_db($sql);
176 if ($res === false) return '';
178 return $res[0]['kostenstelle'];
181 function fetch_laenge()
183 $sql = 'SELECT laenge FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
184 $res = query_db($sql);
185 if ($res === false) return '';
187 return $res[0]['laenge'] . ' m';
190 function fetch_gewaesserkosten()
193 SELECT sum(stunden * persstdsatz) AS gesamt
195 JOIN personal ON einsatzpersonal.personal = personal.id
197 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
198 (SELECT kostenstelle FROM einsatz WHERE id = %d))
201 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
202 $pkosten = query_db($sql);
203 if ($pkosten === false) return '';
206 SELECT sum(stunden * gerate.geraetkst_intern +
207 stunden * anbaugeraete.anbkst_intern) AS gesamt
209 JOIN gerate ON einsatzgeraete.geraet = gerate.id
210 JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.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 $gkosten = query_db($sql);
218 if ($gkosten === false) return '';
220 return sprintf('%.2f €', $pkosten[0]['gesamt'] + $gkosten[0]['gesamt']);
223 function fetch_personalkosten()
226 SELECT sum(stunden * persstdsatz) AS gesamt
228 JOIN personal ON einsatzpersonal.personal = personal.id
230 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
231 (SELECT kostenstelle FROM einsatz WHERE id = %d))
234 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
235 $res = query_db($sql);
236 if ($res === false) return '';
238 return sprintf('%.2f €', $res[0]['gesamt']);
241 function fetch_geraetekosten()
244 SELECT sum(stunden * gerate.geraetkst_intern +
245 stunden * anbaugeraete.anbkst_intern) AS gesamt
247 JOIN gerate ON einsatzgeraete.geraet = gerate.id
248 JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
250 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
251 (SELECT kostenstelle FROM einsatz WHERE id = %d))
254 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
255 $res = query_db($sql);
256 if ($res === false) return '';
258 return sprintf('%.2f €', $res[0]['gesamt']);
261 function fetch_gereinigt()
264 SELECT count(*) AS count
266 JOIN kostenstellen ON gereinigt.kostenstelle = kostenstellen.id
267 JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id
268 WHERE jahr = %d AND einsatz.id = %d
271 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
273 $res = query_db($sql);
274 if ($res === false) return '';
276 return $res[0]['count'] == 0 ? 'nein' : 'ja';