Damn, a checkbox returns 'on' for true
[misc/kostenrechnung] / masks / arbeitsberichte.php
index 8d61a3c..cfd7656 100644 (file)
@@ -13,7 +13,7 @@ function get_number(name)
 
 function select_gebiet_callback(data)
 {
-    select_update('edit_kostenstelle',data.info);
+    select_update('edit_kostenstelle',data.info,1);
 }
 
 function select_gebiet(obj)
@@ -28,7 +28,15 @@ function select_geraet_callback(data)
     var id = 'edit_anbaugeraet';
     if (num > 0) id += ':' + num;
 
-    select_update(id,data.info);
+    var obj = document.getElementById(id);
+
+    if (data.info.length) {
+      if (obj.options.length == 0)
+       obj.options[0] = new Option('Bitte wählen Sie','',false,false);
+      select_update(id,data.info, 1);
+    } else
+      obj.options.length = 0;
+
 }
 
 function select_geraet(obj)
@@ -41,10 +49,10 @@ function select_geraet(obj)
 function form_onload()
 {
     get_info('gebiete', {}, function (data) { select_update('edit_gebiet',data.info, 1); });
-    get_info('ordnungen', {}, function (data) { select_update('edit_ordnung',data.info); });
-    get_info('mitarbeiter', {}, function (data) { select_update('edit_personal',data.info); });
+    get_info('ordnungen', {}, function (data) { select_update('edit_ordnung',data.info,1); });
+    get_info('mitarbeiter', {}, function (data) { select_update('edit_personal',data.info, 1); });
     get_info('geraete', {}, function (data) { select_update('edit_geraet',data.info, 1); });
-    get_info('arbeitsarten', {}, function (data) { select_update('edit_arbeitsart',data.info); });
+    get_info('arbeitsarten', {}, function (data) { select_update('edit_arbeitsart',data.info,1); });
 }
 
 function replicate_personal()
@@ -61,8 +69,9 @@ function replicate_personal()
     elem = document.createElement('select');
     elem.id = 'edit_personal:' + number;
     elem.name = 'personal:' + number;
+    elem.options[0] = new Option('Bitte wählen Sie','',false,false);
     personal.parentNode.appendChild(elem);
-    get_info('mitarbeiter', {}, function (data) { select_update('edit_personal:'+number,data.info); });
+    get_info('mitarbeiter', {}, function (data) { select_update('edit_personal:'+number,data.info, 1); });
 
     elem = document.createElement('br');
     stunden.parentNode.appendChild(elem);
@@ -124,9 +133,10 @@ function einsatz_check()
        datum: 'Datum',
        gebiet: 'Gebiet',
        kostenstelle: 'Gewässer',
-       stunden: 'Stunden',
-       geraet: 'Gerät',
-       geraetstunden: 'Gerätestunden'};
+       ordnung: 'Gewässerordnung',
+       arbeitsart: 'Arbeiten',
+       personal: 'Mitarbeiter',
+       stunden: 'Stunden'};
 
     for (id in fields) {
        var elem = document.getElementById('edit_' + id);
@@ -188,8 +198,8 @@ $formular = <<<EOC
 <tr>
  <td width="25%"><input id="edit_datum" name="datum" size="8">&nbsp;<img class="calendar" src="images/icons/calendar.gif" onclick="calendar('edit_datum',event)"></td>
  <td width="25%"><select id="edit_gebiet" name="gebiet" onchange="select_gebiet(this)"><option value="">Bitte wählen Sie</option></select></td>
- <td width="25%"><select id="edit_kostenstelle" name="kostenstelle"></select></td>
- <td width="25%"><select id="edit_ordnung" name="ordnung"></select></td>
+ <td width="25%"><select id="edit_kostenstelle" name="kostenstelle"><option value="">Bitte wählen Sie</option></select></td>
+ <td width="25%"><select id="edit_ordnung" name="ordnung"><option value="">Bitte wählen Sie</option></select></td>
 </tr>
 </table>
 
@@ -201,7 +211,7 @@ $formular = <<<EOC
  <td width="10%">&nbsp;</td>
 </tr>
 <tr>
- <td width="30%"><select id="edit_personal" name="personal"></select></td>
+ <td width="30%"><select id="edit_personal" name="personal"><option value="">Bitte wählen Sie</option></select></td>
  <td width="30%"><input id="edit_stunden" name="stunden" size="5" type="text"></td>
   <td width="30%">&nbsp;</td>
  <td width="10%" align="right"valign="bottom"><button onclick="return replicate_personal()" style="color: red; font-weight: bold;">+&nbsp;</button></td>
@@ -218,7 +228,7 @@ $formular = <<<EOC
 <tr>
  <td width="30%"><select id="edit_geraet" name="geraet" onchange="select_geraet(this)"><option value="">Bitte wählen Sie</option></select></td>
  <td width="30%"><select id="edit_anbaugeraet" name="anbaugeraet"></select></td>
- <td width="30%"><input id="edit_geraetstunden" name="stunden" size="5" type="text"></td>
+ <td width="30%"><input id="edit_geraetstunden" name="geraetstunden" size="5" type="text"></td>
  <td width="10%" align="right"valign="bottom"><button onclick="return replicate_geraete()" style="color: red; font-weight: bold;">+&nbsp;</button></td>
 </tr>
 </table>
@@ -231,7 +241,7 @@ $formular = <<<EOC
 </tr>
 <tr>
  <td width="50%" valign="top"><textarea id="edit_bemerkung" name="bemerkung" cols="66" rows="5"></textarea></td>
- <td width="25%" valign="top"><select id="edit_arbeitsart" name="arbeitsart"></select></td>
+ <td width="25%" valign="top"><select id="edit_arbeitsart" name="arbeitsart"><option value="">Bitte wählen Sie</option></select></td>
  <td width="25%" valign="top"><input id="edit_akkord" name="akkord" type="checkbox"></td>
 </tr>
 </table>
@@ -254,7 +264,7 @@ function einsatz_insert($mask)
                 $_POST['gebiet'],
                 $_POST['kostenstelle'],
                 $_POST['arbeitsart'],
-                $_POST['akkord'],
+                $_POST['akkord']==='on'?1:0,
                 empty($_POST['bemerkung']) ? 'NULL' : "'" . pg_escape_string($_POST['bemerkung']) . "'",
                 pg_escape_string($_SESSION['sys']['login']));
 
@@ -284,6 +294,7 @@ function einsatz_insert($mask)
       $app = ':'.$num;
       if (empty($_POST['personal'.$app])) break;
     }
+    $_POST['stunden'.$app] = str_replace(',','.',$_POST['stunden'.$app]);
     $sql = sprintf("INSERT INTO einsatzpersonal (einsatz,personal,stunden,sys_user,sys_edit) " .
                   "VALUES (%d,%d,%.2f,'%s',now())",
                   $einsatz,
@@ -304,16 +315,15 @@ function einsatz_insert($mask)
 
   $num = 0;$app='';
   while (true) {
-    if ($num) {
-      $app = ':'.$num;
-      if (empty($_POST['geraet'.$app])) break;
-    }
+    if ($num) $app = ':'.$num;
+    if (empty($_POST['geraet'.$app])) break;
+    $_POST['geraetstunden'.$app] = str_replace(',','.',$_POST['geraetstunden'.$app]);
     $sql = sprintf("INSERT INTO einsatzgeraete (einsatz,geraet,anbaugeraet,stunden,sys_user,sys_edit) " .
                   "VALUES (%d,%d,%s,%.2f,'%s',now())",
                   $einsatz,
                   $_POST['geraet'.$app],
                   empty($_POST['anbaugeraet'.$app]) ? 'NULL' : intval($_POST['anbaugeraet'.$app]),
-                  $_POST['stunden'.$app],
+                  $_POST['geraetstunden'.$app],
                   pg_escape_string($_SESSION['sys']['login']));
 
     $sth = pg_query($sql);
@@ -343,7 +353,7 @@ $mask = array(
                                            'sql' => 'SELECT id,name AS text FROM ordnungen ORDER BY id',
                                            ),
                              'mitarbeiter' => array(
-                                           'sql' => 'SELECT id,vorname || \' \' || name AS text FROM personal WHERE aktiv = 1 ORDER BY text',
+                                           'sql' => 'SELECT id,name || \', \' || vorname AS text FROM personal WHERE aktiv = 1 ORDER BY text',
                                            ),
                              'geraete' => array(
                                            'sql' => 'SELECT id,geraet AS text FROM gerate ORDER BY text',
@@ -352,12 +362,12 @@ $mask = array(
                                            'sql' => 'SELECT id,arbeitsart AS text FROM arbeitsarten ORDER BY text',
                                            ),
                              'kostenstellen' => array(
-                                           'sql' => 'SELECT id,kostenstelle AS text FROM kostenstellen WHERE gebiet = {gebiet}',
+                                           'sql' => 'SELECT id,kostenstelle AS text FROM kostenstellen WHERE gebiet = {gebiet} ORDER BY text',
                                            ),
                              'anbaugeraete' => array(
-                                           'sql' => 'SELECT anbaugeraete.id,anbaugeraet as TEXT FROM anbaugeraete ' .
+                                           'sql' => 'SELECT anbaugeraete.id,anbaugeraet as text FROM anbaugeraete ' .
                                                     'JOIN gerate ON anbaugeraete.geraetetyp = gerate.geraetetyp ' .
-                                                    'WHERE gerate.id = {geraet}',
+                                                    'WHERE gerate.id = {geraet} ORDER BY text',
                                            ),
                                   ),
              );