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'],
29 'where' => "date_part('year', datum) = " . $_SESSION['overview_kosten.year'],
32 'options' => discover_years(),
33 'default' => 'Jahr wählen',
34 'selected' => $_SESSION['overview_kosten.year'],
35 'onchange' => "setvar(this,'year',select_year_calback,select_year_status)",
45 'sql' => 'einsatz.id',
54 'control' => "new Rico.TableColumn.checkbox('1','0','0',true)",
56 'specs' => "ClassName: 'aligncenter'",
60 'sql' => "gebiet.gebiet",
62 'specs' => "filterUI: 's'",
64 'kostenstelle' => array(
65 'name' => 'Kostenstelle',
66 'sql' => "kostenstellen.kostenstelle",
68 'specs' => "filterUI: 's'",
70 'arbeitsart' => array(
72 'sql' => "arbeitsarten.arbeitsart",
74 'specs' => "filterUI: 's'",
79 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
82 'personalkosten' => array(
83 'name' => 'Mitarbeiterkosten',
85 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
88 (SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal
89 JOIN personal ON einsatzpersonal.personal = personal.id
90 WHERE einsatz = einsatz.id)
93 'geraetkosten' => array(
94 'name' => 'Gerätkosten',
96 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
99 (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
101 JOIN gerate ON einsatzgeraete.geraet = gerate.id
102 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
103 WHERE einsatz = einsatz.id)
106 'gesamtkosten' => array(
107 'name' => 'Gesamtkosten',
109 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
112 (SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal
113 JOIN personal ON einsatzpersonal.personal = personal.id
114 WHERE einsatz = einsatz.id)
117 (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
119 JOIN gerate ON einsatzgeraete.geraet = gerate.id
120 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
121 WHERE einsatz = einsatz.id) IS NULL THEN 0.0
122 ELSE (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
124 JOIN gerate ON einsatzgeraete.geraet = gerate.id
125 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
126 WHERE einsatz = einsatz.id) END
130 'name' => 'pro lfdm',
132 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
135 ((SELECT sum(stunden * personal.persstdsatz) FROM einsatzpersonal
136 JOIN personal ON einsatzpersonal.personal = personal.id
137 WHERE einsatz = einsatz.id)
140 (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
142 JOIN gerate ON einsatzgeraete.geraet = gerate.id
143 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
144 WHERE einsatz = einsatz.id) IS NULL THEN 0.0
145 ELSE (SELECT sum(stunden * gerate.geraetkst_intern + stunden * CASE WHEN anbaugeraete.anbkst_intern IS NULL THEN 0.0 ELSE anbaugeraete.anbkst_intern END)
147 JOIN gerate ON einsatzgeraete.geraet = gerate.id
148 LEFT JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
149 WHERE einsatz = einsatz.id) END) / laenge
158 'gebiet' => array('fetch' => fetch_gebiet),
159 'kostenstelle' => array('fetch' => fetch_kostenstelle),
160 'laenge' => array('fetch' => fetch_laenge),
161 'gewaesserkosten' => array('fetch' => fetch_gewaesserkosten),
162 'personalkosten' => array('fetch' => fetch_personalkosten),
163 'geraetekosten' => array('fetch' => fetch_geraetekosten),
164 'gereinigt' => array('fetch' => fetch_gereinigt),
170 function fetch_gebiet()
172 $sql = 'SELECT gebiet.gebiet FROM gebiet JOIN einsatz ON einsatz.gebiet = gebiet.id WHERE einsatz.id = ' . intval($_POST['id']);
173 $res = query_db($sql);
174 if ($res === false) return '';
176 return $res[0]['gebiet'];
179 function fetch_kostenstelle()
181 $sql = 'SELECT kostenstellen.kostenstelle FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
182 $res = query_db($sql);
183 if ($res === false) return '';
185 return $res[0]['kostenstelle'];
188 function fetch_laenge()
190 $sql = 'SELECT laenge FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
191 $res = query_db($sql);
192 if ($res === false) return '';
194 return $res[0]['laenge'] . ' m';
197 function fetch_gewaesserkosten()
200 SELECT sum(stunden * persstdsatz) AS gesamt
202 JOIN personal ON einsatzpersonal.personal = personal.id
204 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
205 (SELECT kostenstelle FROM einsatz WHERE id = %d))
208 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
209 $pkosten = query_db($sql);
210 if ($pkosten === false) return '';
213 SELECT sum(stunden * gerate.geraetkst_intern +
214 stunden * anbaugeraete.anbkst_intern) AS gesamt
216 JOIN gerate ON einsatzgeraete.geraet = gerate.id
217 JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
219 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
220 (SELECT kostenstelle FROM einsatz WHERE id = %d))
223 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
224 $gkosten = query_db($sql);
225 if ($gkosten === false) return '';
227 return sprintf('%.2f €', $pkosten[0]['gesamt'] + $gkosten[0]['gesamt']);
230 function fetch_personalkosten()
233 SELECT sum(stunden * persstdsatz) AS gesamt
235 JOIN personal ON einsatzpersonal.personal = personal.id
237 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
238 (SELECT kostenstelle FROM einsatz WHERE id = %d))
241 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
242 $res = query_db($sql);
243 if ($res === false) return '';
245 return sprintf('%.2f €', $res[0]['gesamt']);
248 function fetch_geraetekosten()
251 SELECT sum(stunden * gerate.geraetkst_intern +
252 stunden * anbaugeraete.anbkst_intern) AS gesamt
254 JOIN gerate ON einsatzgeraete.geraet = gerate.id
255 JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
257 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
258 (SELECT kostenstelle FROM einsatz WHERE id = %d))
261 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
262 $res = query_db($sql);
263 if ($res === false) return '';
265 return sprintf('%.2f €', $res[0]['gesamt']);
268 function fetch_gereinigt()
271 SELECT count(*) AS count
273 JOIN kostenstellen ON gereinigt.kostenstelle = kostenstellen.id
274 JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id
275 WHERE jahr = %d AND einsatz.id = %d
278 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
280 $res = query_db($sql);
281 if ($res === false) return '';
283 return $res[0]['count'] == 0 ? 'nein' : 'ja';