477395007ae3f491891ea3b171a39605c12c95ff
[misc/kostenrechnung] / masks / overview_kostenstellen.php
1 <?php
2
3 $jscode[] = <<<EOC
4
5 function select_year_calback(data)
6 {
7   grid_update(grid);
8 }
9
10 function select_year(obj)
11 {
12   if (!obj.options[obj.selectedIndex].value.length)
13     val = -1;
14   else
15     val = obj.options[obj.selectedIndex].value;
16
17   ajax_request('setvar','source=overview_kostenstellen&name=year&value='+val,select_year_calback);
18
19   if (obj.options[obj.selectedIndex].value.length)
20     info('Jahr ' + obj.options[obj.selectedIndex].innerHTML + ' ausgewählt');
21   else
22     info('');
23 }
24 EOC;
25
26 include_once($_SESSION['sys']['basedir'].'/lib/overview_utils.php');
27
28 if (empty($_SESSION['overview_kostenstellen.year'])) $_SESSION['overview_kostenstellen.year'] = 0;
29
30 $mask = array(
31               'table' => 'einsatz',
32               'title' => 'Einsatzübersicht nach Kostenstellen',
33               'join' => array('personal ON einsatz.personal = personal.id',
34                               'gebiet ON einsatz.gebiet = gebiet.id',
35                               'gerate ON einsatz.geraet = gerate.id',
36                               'anbaugeraete ON einsatz.anbaugeraet = anbaugeraete.id',
37                               'arbeitsarten ON einsatz.arbeiten = arbeitsarten.id',
38                               'kostenstellen ON einsatz.kostenstelle = kostenstellen.id',
39                               ),
40               'where' => "arbeitsarten.arbeitsart <> 'Urlaub' AND arbeitsarten.arbeitsart <> 'Krank' AND arbeitsarten.arbeitsart <> 'Sonstige Fehltage'"
41                        . " AND date_part('year', datum) = " . $_SESSION['overview_kostenstellen.year'],
42               'select' => array(
43                                 'title' => 'Auswahl',
44                                 'options' => discover_years(),
45                                 'default' => 'Jahr wählen',
46                                 'selected' => $_SESSION['overview_kostenstellen.year'],
47                                 'onchange' => 'select_year(this)',
48                                 ),
49               'variables' => array(
50                                    'year' => array(),
51                                    ),
52               'list' => array(
53                               'id' => array(
54                                             'name' => 'ID',
55                                             'visible' => false,
56                                             'sql' => 'einsatz.id',
57                                             ),
58                               'datum' => array(
59                                             'name' => 'Datum',
60                                             'type' => 'date',
61                                             'width' => 70,
62                                             ),
63                               'kostenstelle' => array(
64                                             'name' => 'Kostenstelle',
65                                             'sql' => "kostenstellen.kostenstelle",
66                                             'width' => 150,
67                                             'specs' => "filterUI: 's'",
68                                             ),
69                               'arbeitsarten' => array(
70                                             'name' => 'Arbeiten',
71                                             'sql' => "arbeitsarten.arbeitsart",
72                                             'width' => 150,
73                                             'specs' => "filterUI: 's'",
74                                             ),
75                               'stunden' => array(
76                                             'name' => 'Personalstunden',
77                                             'type' => 'number',
78                                             'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: '&nbsp;', canSort: false",
79                                             'width' => 60,
80                                             ),
81                               'geraetstunden' => array(
82                                             'name' => 'Gerätstunden',
83                                             'type' => 'number',
84                                             'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: '&nbsp;', canSort: false",
85                                             'width' => 60,
86                                             ),
87                               'gesamtstunden' => array(
88                                             'name' => 'Gesamtstunden',
89                                             'type' => 'number',
90                                             'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: '&nbsp;', canSort: false",
91                                             'width' => 60,
92                                             'sql' => 'stunden + geraetstunden',
93                                             ),
94                               'stdlfdm' => array(
95                                             'name' => 'Stunden pro lfdm',
96                                             'type' => 'number',
97                                             'specs' => "decPlaces: 2, ClassName: 'alignright', suffix: '&nbsp;', canSort: false",
98                                             'width' => 60,
99                                             'sql' => '(stunden + geraetstunden) / laenge',
100                                             ),
101                               ),
102               );
103
104 ?>