Reorganise right padding
[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 function gebiete()
18 {
19   $sql = "SELECT id,gebiet FROM gebiet ORDER BY id";
20   $sth = pg_query($sql);
21
22   $result = array();
23   while ($row = pg_fetch_assoc($sth))
24     $result[] = sprintf("%d: '%s'", $row['id'], $row['gebiet']);
25
26   return '{' . implode(', ', $result) . '}';
27 }
28
29 $mask = array(
30               'table' => 'kostenstellen',
31               'title' => 'Gewässer gereinigt?',
32               'select' => array(
33                                 'title' => 'Auswahl',
34                                 'options' => discover_years(true),
35                                 'default' => 'Jahr wählen',
36                                 'selected' => $_SESSION['gereinigt.year'],
37                                 'onchange' => "setvar(this,'year',select_year_calback,select_year_status)",
38                                 ),
39               'variables' => array(
40                                    'year' => array(),
41                                    ),
42               'list' => array(
43                               'id' => array(
44                                             'name' => 'ID',
45                                             'sql' => 'kostenstellen.id',
46                                             'visible' => false,
47                                             ),
48                               'gebiet' => array(
49                                             'name' => 'Gebiet',
50                                             'sql' => 'gebiet',
51                                             'control' => "new Rico.TableColumn.lookup(".gebiete().", 0, '')",
52                                             'specs' => "filterUI: 's'",
53                                             'width' => 270,
54                                             ),
55                               'kostenstelle' => array(
56                                             'name' => 'Kostenstelle',
57                                             'specs' => "filterUI: 's'",
58                                             'width' => 270,
59                                             ),
60                               'gereinigt' => array(
61                                             'name' => 'gereinigt',
62                                             'width' => 65,
63                                             'sql' => '(SELECT count(*) FROM gereinigt WHERE jahr = '
64                                                 . intval($_SESSION['gereinigt.year'])
65                                                 . ' AND gereinigt.kostenstelle = kostenstellen.id)',
66                                             'control' => "new Rico.TableColumn.checkboxDB(0, 'ajax/ricoUpdateConnection.php')",
67                                             'specs' => "filterUI: 'c', ClassName: 'aligncenter', canSort: false",
68                                             'update' => array('table' => 'gereinigt',
69                                                               'basecol' => 'jahr',
70                                                               'baseval' => $_SESSION['gereinigt.year'],
71                                                               'refcol' => 'kostenstelle',
72                                                               'reftable' => 'kostenstellen',
73                                                               'refid' => 'kostenstellen.id',
74                                                               ),
75                                             ),
76                               ),
77               'details' => array(
78                                  'html' => $details,
79                                  'list' => array(
80                                                  'bemerkungen' => array('fetch' => fetch_bemerkungen),
81                                                  ),
82
83                               ),
84               );
85
86 function fetch_bemerkungen()
87 {
88   $sql = <<<EOC
89 SELECT datum, bemerkung FROM einsatz
90 WHERE date_part('year', datum) = %d
91     AND kostenstelle = %d
92     AND bemerkung IS NOT NULL
93 ORDER BY datum
94 EOC;
95
96   $sql = sprintf($sql, $_SESSION['gereinigt.year'], $_POST['id']);
97
98   $res = query_db($sql);
99   if ($res === false) return '';
100
101   if (!count($res)) return 'keine Bemerkungen vorhanden';
102
103   $ret = '';
104   foreach ($res as $row) {
105     $d = explode('-',$row['datum']);
106     $ret .= sprintf('<p style="margin-top: 0; margin-bottom: 2px;">%d.%d: %s</p>', $d[2], $d[1], $row['bemerkung']);
107   }
108
109   return $ret;
110 }
111 ?>