3 include_once($_SESSION['sys']['basedir'].'/lib/overview_utils.php');
5 if (empty($_SESSION['overview_kosten.year'])) $_SESSION['overview_kosten.year'] = 0;
8 <div style="padding-left: 3px; margin-top: -10px;">
9 <b>Gebiet</b>: <span id="detail_gebiet"></span><br>
10 <b>Länge</b>: <span id="detail_laenge"></span><br>
11 <b>Gesamtkosten</b>: <span id="detail_gewaesserkosten"></span><br>
12 <b>Personalkosten</b>: <span id="detail_personalkosten"></span><br>
13 <b>Gerätekosten</b>: <span id="detail_geraetekosten"></span><br>
14 <b>Gewässer gereinigt</b>: <span id="detail_gereinigt"></span>
20 'title' => 'Kostenaufwand für Kostenstellen',
22 'einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id',
23 'einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id',
24 'personal ON einsatzpersonal.personal = personal.id',
25 'gerate ON einsatzgeraete.geraet = gerate.id',
26 'anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id',
27 'arbeitsarten ON einsatz.arbeiten = arbeitsarten.id',
28 'gebiet ON einsatz.gebiet = gebiet.id',
29 'kostenstellen ON einsatz.kostenstelle = kostenstellen.id',
31 'where' => "arbeitsarten.arbeitsart <> 'Urlaub' AND arbeitsarten.arbeitsart <> 'Krank' AND arbeitsarten.arbeitsart <> 'Sonstige Fehltage'"
32 . " AND date_part('year', datum) = " . $_SESSION['overview_kosten.year'],
35 'options' => discover_years(),
36 'default' => 'Jahr wählen',
37 'selected' => $_SESSION['overview_kosten.year'],
38 'onchange' => "setvar(this,'year',select_year_calback,select_year_status)",
48 'sql' => 'einsatz.id',
57 'sql' => "gebiet.gebiet",
59 'specs' => "filterUI: 's'",
61 'kostenstelle' => array(
62 'name' => 'Kostenstelle',
63 'sql' => "kostenstellen.kostenstelle",
65 'specs' => "filterUI: 's'",
67 'arbeitsart' => array(
69 'sql' => "arbeitsarten.arbeitsart",
71 'specs' => "filterUI: 's'",
74 'name' => 'Mitarbeiter',
75 'sql' => "personal.name || ', ' || personal.vorname",
77 'specs' => "filterUI: 's'",
81 'sql' => "gerate.geraet",
83 'specs' => "filterUI: 's'",
88 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
91 'personalkosten' => array(
92 'name' => 'Mitarbeiterkosten',
94 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
96 'sql' => 'einsatzpersonal.stunden * personal.persstdsatz',
98 'geraetkosten' => array(
99 'name' => 'Gerätkosten',
101 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
103 'sql' => 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
104 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern',
106 'gesamtkosten' => array(
107 'name' => 'Gesamtkosten',
109 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
111 'sql' => 'einsatzpersonal.stunden * personal.persstdsatz + ' .
112 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
113 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern',
116 'name' => 'pro lfdm',
118 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
120 'sql' => '(einsatzpersonal.stunden * personal.persstdsatz + ' .
121 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
122 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern) / laenge',
128 'gebiet' => array('fetch' => fetch_gebiet),
129 'laenge' => array('fetch' => fetch_laenge),
130 'gewaesserkosten' => array('fetch' => fetch_gewaesserkosten),
131 'personalkosten' => array('fetch' => fetch_personalkosten),
132 'geraetekosten' => array('fetch' => fetch_geraetekosten),
133 'gereinigt' => array('fetch' => fetch_gereinigt),
139 function fetch_gebiet()
141 $sql = 'SELECT gebiet.gebiet FROM gebiet JOIN einsatz ON einsatz.gebiet = gebiet.id WHERE einsatz.id = ' . intval($_POST['id']);
142 $res = query_db($sql);
143 if ($res === false) return '';
145 return $res[0]['gebiet'];
148 function fetch_laenge()
150 $sql = 'SELECT laenge FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
151 $res = query_db($sql);
152 if ($res === false) return '';
154 return $res[0]['laenge'] . ' m';
157 function fetch_gewaesserkosten()
160 SELECT sum(einsatzpersonal.stunden * personal.persstdsatz +
161 einsatzgeraete.stunden * gerate.geraetkst_intern +
162 einsatzgeraete.stunden * anbaugeraete.anbkst_intern) AS gesamt
164 JOIN einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id
165 JOIN einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id
166 JOIN personal ON einsatzpersonal.personal = personal.id
167 JOIN gerate ON einsatzgeraete.geraet = gerate.id
168 JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
169 WHERE einsatz.id = %d
172 $sql = sprintf($sql, $_POST['id']);
173 $res = query_db($sql);
174 if ($res === false) return '';
176 return sprintf('%.2f €', $res[0]['gesamt']);
179 function fetch_personalkosten()
182 SELECT sum(einsatzpersonal.stunden * personal.persstdsatz) AS kosten
184 JOIN einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id
185 JOIN personal ON einsatzpersonal.personal = personal.id
186 WHERE einsatz.id = %d
189 $sql = sprintf($sql, $_POST['id']);
190 $res = query_db($sql);
191 if ($res === false) return '';
193 return sprintf('%.2f €', $res[0]['kosten']);
196 function fetch_geraetekosten()
199 SELECT sum(einsatzgeraete.stunden * gerate.geraetkst_intern +
200 einsatzgeraete.stunden * anbaugeraete.anbkst_intern) AS gesamt
202 JOIN einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id
203 JOIN gerate ON einsatzgeraete.geraet = gerate.id
204 JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
205 WHERE einsatz.id = %d
208 $sql = sprintf($sql, $_POST['id']);
209 $res = query_db($sql);
210 if ($res === false) return '';
212 return sprintf('%.2f €', $res[0]['gesamt']);
215 function fetch_gereinigt()
218 SELECT count(*) AS count
220 JOIN kostenstellen ON gereinigt.kostenstelle = kostenstellen.id
221 JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id
222 WHERE jahr = %d AND einsatz.id = %d
225 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
227 $res = query_db($sql);
228 if ($res === false) return '';
230 return $res[0]['count'] == 0 ? 'nein' : 'ja';