. Table column adjustments
[misc/kostenrechnung] / masks / materialverbrauch.php
1 <?php
2
3 $jscode[] = <<<EOC
4
5 Rico.moduleDependencies['checkboxDB'] = ['+LiveGrid', '../ricoTableColumnDB.js'];
6 Rico.loadModule('checkboxDB');
7
8 function einheit_callback(data)
9 {
10   var einheit = document.getElementById('edit_einheit');
11
12   if (!einheit) return false;
13
14   if (data.info[0].einheit.length)
15     einheit.innerHTML = data.info[0].einheit;
16 }
17
18 function select_material(obj)
19 {
20   get_info('einheit', {id: obj.options[obj.selectedIndex].value}, einheit_callback);
21 }
22
23 EOC;
24
25 $mask = array(
26               'table' => 'einsatz',
27               'title' => 'Materialverbrauch zu Arbeitsberichten',
28               'join' => array('kostenstellen ON einsatz.kostenstelle = kostenstellen.id'),
29               'list' => array(
30                               'id' => array(
31                                             'name' => 'ID',
32                                             'sql' => 'einsatz.id',
33                                             'visible' => false,
34                                             ),
35                               'datum' => array(
36                                             'name' => 'Datum',
37                                             'type' => 'date',
38                                             'width' => 70,
39                                             ),
40                               'kostenstelle' => array(
41                                             'name' => 'Kostenstelle',
42                                             'width' => 230,
43                                             'sql' => 'kostenstellen.kostenstelle',
44                                             ),
45                               'material' => array(
46                                             'name' => 'Material',
47                                             'width' => 70,
48                                             'control' => "new Rico.TableColumn.checkbox('t','f','0',true)",
49                                             'sql' => '(SELECT count(*) > 0 FROM materialverbrauch WHERE einsatz = einsatz.id)',
50                                             'specs' => "ClassName: 'aligncenter', canSort: false",
51                                             ),
52                               ),
53               'rows' => 20,
54               'edit_title' => 'Materialverbrauch vermerken',
55               'edit_table' => 'materialverbrauch',
56               'edit' => array(
57                               'einsatz' => array(
58                                             'name' => 'Einsatz',
59                                             'type' => 'hidden',
60                                             'size' => 10,
61                                             'sql' => 'id',
62                                             ),
63                               'material' => array(
64                                             'name' => 'Material',
65                                             'type' => 'select',
66                                             'options' => 'SELECT id,material AS text FROM materialien ORDER BY text',
67                                             'onchange' => 'select_material(this)',
68                                             'sql' => false,
69                                             ),
70                               'menge' => array(
71                                             'name' => 'Menge',
72                                             'type' => 'decimal',
73                                             'size' => 10,
74                                             'comment' => ' <span id="edit_einheit"></span>',
75                                             'sql' => false,
76                                             'required' => true,
77                                             ),
78                               ),
79               'info' => array(
80                               'einheit' => array(
81                                             'sql' => 'SELECT einheiten.einheit FROM einheiten ' .
82                                                      'JOIN materialien ON materialien.einheit = einheiten.id ' .
83                                                      'WHERE materialien.id = {id}',
84                                             ),
85                                    ),
86               );
87
88 ?>