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']
33 . " GROUP BY einsatz.id,gebiet.gebiet,kostenstellen.kostenstelle,kostenstellen.id,personal.name,personal.vorname,gerate.geraet,laenge",
36 'options' => discover_years(),
37 'default' => 'Jahr wählen',
38 'selected' => $_SESSION['overview_kosten.year'],
39 'onchange' => "setvar(this,'year',select_year_calback,select_year_status)",
49 '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'",
64 'name' => 'Mitarbeiter',
65 'sql' => "personal.name || ', ' || personal.vorname",
67 'specs' => "filterUI: 's'",
71 'sql' => "gerate.geraet",
73 'specs' => "filterUI: 's'",
78 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
81 'personalkosten' => array(
82 'name' => 'Mitarbeiterkosten',
84 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
86 'sql' => 'sum(einsatzpersonal.stunden * personal.persstdsatz)',
88 'geraetkosten' => array(
89 'name' => 'Gerätkosten',
91 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
93 'sql' => 'sum(einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
94 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern)',
96 'gesamtkosten' => array(
97 'name' => 'Gesamtkosten',
99 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
101 'sql' => 'sum(einsatzpersonal.stunden * personal.persstdsatz + ' .
102 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
103 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern)',
106 'name' => 'pro lfdm',
108 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
110 'sql' => 'sum(einsatzpersonal.stunden * personal.persstdsatz + ' .
111 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
112 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern) / laenge',
118 'gebiet' => array('fetch' => fetch_gebiet),
119 'laenge' => array('fetch' => fetch_laenge),
120 'gewaesserkosten' => array('fetch' => fetch_gewaesserkosten),
121 'personalkosten' => array('fetch' => fetch_personalkosten),
122 'geraetekosten' => array('fetch' => fetch_geraetekosten),
123 'gereinigt' => array('fetch' => fetch_gereinigt),
129 function fetch_gebiet()
131 $sql = 'SELECT gebiet.gebiet FROM gebiet JOIN einsatz ON einsatz.gebiet = gebiet.id WHERE einsatz.id = ' . intval($_POST['id']);
132 $res = query_db($sql);
133 if ($res === false) return '';
135 return $res[0]['gebiet'];
138 function fetch_laenge()
140 $sql = 'SELECT laenge FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
141 $res = query_db($sql);
142 if ($res === false) return '';
144 return $res[0]['laenge'] . ' m';
147 function fetch_gewaesserkosten()
150 SELECT sum(einsatzpersonal.stunden * personal.persstdsatz +
151 einsatzgeraete.stunden * gerate.geraetkst_intern +
152 einsatzgeraete.stunden * anbaugeraete.anbkst_intern) AS gesamt
154 JOIN einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id
155 JOIN einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id
156 JOIN personal ON einsatzpersonal.personal = personal.id
157 JOIN gerate ON einsatzgeraete.geraet = gerate.id
158 JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
159 WHERE einsatz.id = %d
162 $sql = sprintf($sql, $_POST['id']);
163 $res = query_db($sql);
164 if ($res === false) return '';
166 return sprintf('%.2f €', $res[0]['gesamt']);
169 function fetch_personalkosten()
172 SELECT sum(einsatzpersonal.stunden * personal.persstdsatz) AS kosten
174 JOIN einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id
175 JOIN personal ON einsatzpersonal.personal = personal.id
176 WHERE einsatz.id = %d
179 $sql = sprintf($sql, $_POST['id']);
180 $res = query_db($sql);
181 if ($res === false) return '';
183 return sprintf('%.2f €', $res[0]['kosten']);
186 function fetch_geraetekosten()
189 SELECT sum(einsatzgeraete.stunden * gerate.geraetkst_intern +
190 einsatzgeraete.stunden * anbaugeraete.anbkst_intern) AS gesamt
192 JOIN einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id
193 JOIN gerate ON einsatzgeraete.geraet = gerate.id
194 JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
195 WHERE einsatz.id = %d
198 $sql = sprintf($sql, $_POST['id']);
199 $res = query_db($sql);
200 if ($res === false) return '';
202 return sprintf('%.2f €', $res[0]['gesamt']);
205 function fetch_gereinigt()
208 SELECT count(*) AS count
210 JOIN kostenstellen ON gereinigt.kostenstelle = kostenstellen.id
211 JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id
212 WHERE jahr = %d AND einsatz.id = %d
215 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
217 $res = query_db($sql);
218 if ($res === false) return '';
220 return $res[0]['count'] == 0 ? 'nein' : 'ja';