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>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 'einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id',
24 'einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id',
25 'personal ON einsatzpersonal.personal = personal.id',
26 'gerate ON einsatzgeraete.geraet = gerate.id',
27 'anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id',
28 'arbeitsarten ON einsatz.arbeiten = arbeitsarten.id',
29 'gebiet ON einsatz.gebiet = gebiet.id',
30 'kostenstellen ON einsatz.kostenstelle = kostenstellen.id',
32 'where' => "arbeitsarten.arbeitsart <> 'Urlaub' AND arbeitsarten.arbeitsart <> 'Krank' AND arbeitsarten.arbeitsart <> 'Sonstige Fehltage'"
33 . " AND date_part('year', datum) = " . $_SESSION['overview_kosten.year'],
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',
58 'sql' => "gebiet.gebiet",
60 'specs' => "filterUI: 's'",
62 'kostenstelle' => array(
63 'name' => 'Kostenstelle',
64 'sql' => "kostenstellen.kostenstelle",
66 'specs' => "filterUI: 's'",
68 'arbeitsart' => array(
70 'sql' => "arbeitsarten.arbeitsart",
72 'specs' => "filterUI: 's'",
75 'name' => 'Mitarbeiter',
76 'sql' => "personal.name || ', ' || personal.vorname",
78 'specs' => "filterUI: 's'",
82 'sql' => "gerate.geraet",
84 'specs' => "filterUI: 's'",
89 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
92 'personalkosten' => array(
93 'name' => 'Mitarbeiterkosten',
95 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
97 'sql' => 'einsatzpersonal.stunden * personal.persstdsatz',
99 'geraetkosten' => array(
100 'name' => 'Gerätkosten',
102 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
104 'sql' => 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
105 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern',
107 'gesamtkosten' => array(
108 'name' => 'Gesamtkosten',
110 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
112 'sql' => 'einsatzpersonal.stunden * personal.persstdsatz + ' .
113 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
114 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern',
117 'name' => 'pro lfdm',
119 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
121 'sql' => '(einsatzpersonal.stunden * personal.persstdsatz + ' .
122 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
123 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern) / laenge',
129 'gebiet' => array('fetch' => fetch_gebiet),
130 'kostenstelle' => array('fetch' => fetch_kostenstelle),
131 'laenge' => array('fetch' => fetch_laenge),
132 'gewaesserkosten' => array('fetch' => fetch_gewaesserkosten),
133 'personalkosten' => array('fetch' => fetch_personalkosten),
134 'geraetekosten' => array('fetch' => fetch_geraetekosten),
135 'gereinigt' => array('fetch' => fetch_gereinigt),
141 function fetch_gebiet()
143 $sql = 'SELECT gebiet.gebiet FROM gebiet JOIN einsatz ON einsatz.gebiet = gebiet.id WHERE einsatz.id = ' . intval($_POST['id']);
144 $res = query_db($sql);
145 if ($res === false) return '';
147 return $res[0]['gebiet'];
150 function fetch_kostenstelle()
152 $sql = 'SELECT kostenstellen.kostenstelle FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
153 $res = query_db($sql);
154 if ($res === false) return '';
156 return $res[0]['kostenstelle'];
159 function fetch_laenge()
161 $sql = 'SELECT laenge FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
162 $res = query_db($sql);
163 if ($res === false) return '';
165 return $res[0]['laenge'] . ' m';
168 function fetch_gewaesserkosten()
171 SELECT sum(stunden * persstdsatz) AS gesamt
173 JOIN personal ON einsatzpersonal.personal = personal.id
175 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
176 (SELECT kostenstelle FROM einsatz WHERE id = %d))
179 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
180 $pkosten = query_db($sql);
181 if ($pkosten === false) return '';
184 SELECT sum(stunden * gerate.geraetkst_intern +
185 stunden * anbaugeraete.anbkst_intern) AS gesamt
188 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
189 (SELECT kostenstelle FROM einsatz WHERE id = %d))
192 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
193 $gkosten = query_db($sql);
194 if ($gkosten === false) return '';
196 return sprintf('%.2f €', $pkosten[0]['gesamt'] + $gkosten[0]['gesamt']);
199 function fetch_personalkosten()
202 SELECT sum(stunden * persstdsatz) AS gesamt
204 JOIN personal ON einsatzpersonal.personal = personal.id
206 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
207 (SELECT kostenstelle FROM einsatz WHERE id = %d))
210 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
211 $res = query_db($sql);
212 if ($res === false) return '';
214 return sprintf('%.2f €', $res[0]['gesamt']);
217 function fetch_geraetekosten()
220 SELECT sum(stunden * gerate.geraetkst_intern +
221 stunden * anbaugeraete.anbkst_intern) AS gesamt
224 (SELECT id FROM einsatz WHERE date_part('year', datum) = %d AND kostenstelle =
225 (SELECT kostenstelle FROM einsatz WHERE id = %d))
228 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
229 $res = query_db($sql);
230 if ($res === false) return '';
232 return sprintf('%.2f €', $res[0]['gesamt']);
235 function fetch_gereinigt()
238 SELECT count(*) AS count
240 JOIN kostenstellen ON gereinigt.kostenstelle = kostenstellen.id
241 JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id
242 WHERE jahr = %d AND einsatz.id = %d
245 $sql = sprintf($sql, $_SESSION['overview_kosten.year'], $_POST['id']);
247 $res = query_db($sql);
248 if ($res === false) return '';
250 return $res[0]['count'] == 0 ? 'nein' : 'ja';