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;">
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>
19 'title' => 'Kostenaufwand für Kostenstellen',
21 'einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id',
22 'einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id',
23 'personal ON einsatzpersonal.personal = personal.id',
24 'gerate ON einsatzgeraete.geraet = gerate.id',
25 'anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id',
26 'arbeitsarten ON einsatz.arbeiten = arbeitsarten.id',
27 'gebiet ON einsatz.gebiet = gebiet.id',
28 'kostenstellen ON einsatz.kostenstelle = kostenstellen.id',
30 'where' => "arbeitsarten.arbeitsart <> 'Urlaub' AND arbeitsarten.arbeitsart <> 'Krank' AND arbeitsarten.arbeitsart <> 'Sonstige Fehltage'"
31 . " AND date_part('year', datum) = " . $_SESSION['overview_kosten.year']
32 . " GROUP BY einsatz.id,gebiet.gebiet,kostenstellen.kostenstelle,kostenstellen.id,personal.name,personal.vorname,gerate.geraet,laenge",
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',
52 'sql' => "gebiet.gebiet",
54 'specs' => "filterUI: 's'",
56 'kostenstelle' => array(
57 'name' => 'Kostenstelle',
58 'sql' => "kostenstellen.kostenstelle",
60 'specs' => "filterUI: 's'",
63 'name' => 'Mitarbeiter',
64 'sql' => "personal.vorname || ' ' || personal.name",
66 'specs' => "filterUI: 's'",
70 'sql' => "gerate.geraet",
72 'specs' => "filterUI: 's'",
77 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
80 'personalkosten' => array(
81 'name' => 'Mitarbeiterkosten',
83 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
85 'sql' => 'sum(einsatzpersonal.stunden * personal.persstdsatz)',
87 'geraetkosten' => array(
88 'name' => 'Gerätkosten',
90 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
92 'sql' => 'sum(einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
93 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern)',
95 'gesamtkosten' => array(
96 'name' => 'Gesamtkosten',
98 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
100 'sql' => 'sum(einsatzpersonal.stunden * personal.persstdsatz + ' .
101 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
102 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern)',
105 'name' => 'pro lfdm',
107 'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: ' ', canSort: false",
109 'sql' => 'sum(einsatzpersonal.stunden * personal.persstdsatz + ' .
110 'einsatzgeraete.stunden * gerate.geraetkst_intern + ' .
111 'einsatzgeraete.stunden * anbaugeraete.anbkst_intern) / laenge',
117 'gebiet' => array('fetch' => fetch_gebiet),
118 'laenge' => array('fetch' => fetch_laenge),
119 'gewaesserkosten' => array('fetch' => fetch_gewaesserkosten),
120 'personalkosten' => array('fetch' => fetch_personalkosten),
121 'geraetekosten' => array('fetch' => fetch_geraetekosten),
127 function fetch_gebiet()
129 $sql = 'SELECT gebiet.gebiet FROM gebiet JOIN einsatz ON einsatz.gebiet = gebiet.id WHERE einsatz.id = ' . intval($_POST['id']);
130 $res = query_db($sql);
131 if ($res === false) return '';
133 return $res[0]['gebiet'];
136 function fetch_laenge()
138 $sql = 'SELECT laenge FROM kostenstellen JOIN einsatz ON einsatz.kostenstelle = kostenstellen.id WHERE einsatz.id = ' . intval($_POST['id']);
139 $res = query_db($sql);
140 if ($res === false) return '';
142 return $res[0]['laenge'] . ' m';
145 function fetch_gewaesserkosten()
148 SELECT sum(einsatzpersonal.stunden * personal.persstdsatz +
149 einsatzgeraete.stunden * gerate.geraetkst_intern +
150 einsatzgeraete.stunden * anbaugeraete.anbkst_intern) AS gesamt
152 JOIN einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id
153 JOIN einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id
154 JOIN personal ON einsatzpersonal.personal = personal.id
155 JOIN gerate ON einsatzgeraete.geraet = gerate.id
156 JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
157 WHERE einsatz.id = %d
160 $sql = sprintf($sql, $_POST['id']);
161 $res = query_db($sql);
162 if ($res === false) return '';
164 return sprintf('%.2f €', $res[0]['gesamt']);
167 function fetch_personalkosten()
170 SELECT sum(einsatzpersonal.stunden * personal.persstdsatz) AS kosten
172 JOIN einsatzpersonal ON einsatzpersonal.einsatz = einsatz.id
173 JOIN personal ON einsatzpersonal.personal = personal.id
174 WHERE einsatz.id = %d
177 $sql = sprintf($sql, $_POST['id']);
178 $res = query_db($sql);
179 if ($res === false) return '';
181 return sprintf('%.2f €', $res[0]['kosten']);
184 function fetch_geraetekosten()
187 SELECT sum(einsatzgeraete.stunden * gerate.geraetkst_intern +
188 einsatzgeraete.stunden * anbaugeraete.anbkst_intern) AS gesamt
190 JOIN einsatzgeraete ON einsatzgeraete.einsatz = einsatz.id
191 JOIN gerate ON einsatzgeraete.geraet = gerate.id
192 JOIN anbaugeraete ON einsatzgeraete.anbaugeraet = anbaugeraete.id
193 WHERE einsatz.id = %d
196 $sql = sprintf($sql, $_POST['id']);
197 $res = query_db($sql);
198 if ($res === false) return '';
200 return sprintf('%.2f €', $res[0]['gesamt']);