Adjustment of list according to mail specification
[misc/kostenrechnung] / masks / gereinigt.php
1 <?php
2
3 $jscode[] = "Rico.moduleDependencies['checkboxDB'] = ['+LiveGrid', '../ricoTableColumnDB.js'];";
4 $jscode[] = "Rico.loadModule('checkboxDB');";
5
6 include_once($_SESSION['sys']['basedir'].'/lib/overview_utils.php');
7
8 if (empty($_SESSION['gereinigt.year'])) $_SESSION['gereinigt.year'] = date('Y');
9
10 $details = <<<EOC
11 <div style="padding-left: 3px; margin-top: -10px;">
12 <b>Bemerkungen</b><br>
13 <div id="detail_bemerkungen"></div>
14 </div>
15 EOC;
16
17 $mask = array(
18               'table' => 'kostenstellen',
19               'title' => 'Gewässer gereinigt?',
20               'join' => array('gebiet ON kostenstellen.gebiet = gebiet.id'),
21               'select' => array(
22                                 'title' => 'Auswahl',
23                                 'options' => discover_years(true),
24                                 'default' => 'Jahr wählen',
25                                 'selected' => $_SESSION['gereinigt.year'],
26                                 'onchange' => "setvar(this,'year',select_year_calback,select_year_status)",
27                                 ),
28               'variables' => array(
29                                    'year' => array(),
30                                    ),
31               'list' => array(
32                               'id' => array(
33                                             'name' => 'ID',
34                                             'sql' => 'kostenstellen.id',
35                                             'visible' => false,
36                                             ),
37                               'gebiet' => array(
38                                             'name' => 'Gebiet',
39                                             'sql' => 'gebiet.gebiet',
40                                             'specs' => "filterUI: 's'",
41                                             'width' => 270,
42                                             ),
43                               'kostenstelle' => array(
44                                             'name' => 'Kostenstelle',
45                                             'specs' => "filterUI: 's'",
46                                             'width' => 270,
47                                             ),
48                               'gereinigt' => array(
49                                             'name' => 'gereinigt',
50                                             'width' => 65,
51                                             'sql' => '(SELECT count(*) FROM gereinigt WHERE jahr = '
52                                                 . intval($_SESSION['gereinigt.year'])
53                                                 . ' AND gereinigt.kostenstelle = kostenstellen.id)',
54                                             'control' => "new Rico.TableColumn.checkboxDB(0, 'ajax/ricoUpdateConnection.php')",
55                                             'specs' => "filterUI: 'c', ClassName: 'aligncenter', canSort: false",
56                                             'update' => array('table' => 'gereinigt',
57                                                               'basecol' => 'jahr',
58                                                               'baseval' => $_SESSION['gereinigt.year'],
59                                                               'refcol' => 'kostenstelle',
60                                                               'reftable' => 'kostenstellen',
61                                                               'refid' => 'kostenstellen.id',
62                                                               ),
63                                             ),
64                               ),
65               'details' => array(
66                                  'html' => $details,
67                                  'list' => array(
68                                                  'bemerkungen' => array('fetch' => fetch_bemerkungen),
69                                                  ),
70
71                               ),
72               );
73
74 function fetch_bemerkungen()
75 {
76   $sql = <<<EOC
77 SELECT datum, bemerkung FROM einsatz
78 WHERE date_part('year', datum) = %d
79     AND kostenstelle = %d
80     AND bemerkung IS NOT NULL
81 ORDER BY datum
82 EOC;
83
84   $sql = sprintf($sql, $_SESSION['gereinigt.year'], $_POST['id']);
85
86   $res = query_db($sql);
87   if ($res === false) return '';
88
89   if (!count($res)) return 'keine Bemerkungen vorhanden';
90
91   $ret = '';
92   foreach ($res as $row) {
93     $d = explode('-',$row['datum']);
94     $ret .= sprintf('<p style="margin-top: 0; margin-bottom: 2px;">%d.%d: %s</p>', $d[2], $d[1], $row['bemerkung']);
95   }
96
97   return $ret;
98 }
99 ?>