Adjust filter elements
[misc/hallinta-metro] / ordersatz_pos.php
index e8a9135..4820c6c 100644 (file)
@@ -14,10 +14,13 @@ include_once($_SESSION['sys']['basedir'].'masks/metro/utils.php');
 include_once($_SESSION['sys']['basedir'].'lib/mail.php');
 
 if (substr($_SERVER["SCRIPT_FILENAME"],-10) == '/index.php' &&
-    !empty($_GET['id']))
+    !empty($_GET['id'])) {
   $_SESSION['ordersatz'] = $_GET['id'];
+  $done = is_done($_GET['id']);
+}
 
-$jscode[] = <<<EOC
+if (!$done) {
+  $jscode = <<<EOC
 grid_column_edit[1] = {
     default_menu: false,
     width: '9em',
@@ -96,14 +99,16 @@ function import_articles()
 }
 
 EOC;
+  $javascript->add($jscode);
+}
 
 $buttons = <<<EOC
 <p style="margin-top: 0px; margin-bottom: 4px; text-align: center;">
-<button onclick="return import_articles()">Artikel importieren</button>
+<button class="custom" onclick="return import_articles()">Artikel importieren</button>
 &nbsp;
-<button onclick="return build_pdf()">PDF erstellen</button>
+<button class="custom" onclick="return build_pdf()">PDF erstellen</button>
 &nbsp;
-<button onclick="return finish()">Abschließen</button>
+<button class="custom" onclick="return finish()">Abschließen</button>
 <br>Bei Abschluß wird ein Fax zu Metro und eine Kopie per Mail an den Koch geschickt.
 </p>
 EOC;
@@ -124,10 +129,10 @@ function get_title($id)
 $mask = array(
              'table' => 'metro_ordersatz',
              'join' => array('metro_ordersatz_pos ON ordersatz = metro_ordersatz.id',
-                             'metro_artikel ON artikel = metro_artikel.id'),
+                             'metro_artikel ON artikel = metro_artikel.id AND removed = 0'),
              'title' => get_title($_SESSION['ordersatz']),
              'edit_title' => 'Ordersatz',
-             'where' => sprintf('ordersatz = %d AND owner = %d AND done IS NULL', $_SESSION['ordersatz'], $_SESSION['sys']['uid']),
+             'where' => sprintf('ordersatz = %d AND owner = %d', $_SESSION['ordersatz'], $_SESSION['sys']['uid']),
              'list' => array(
                              'id' => array(
                                            'name' => 'ID',
@@ -173,19 +178,21 @@ $mask = array(
                              'hersteller' => array(
                                            'name' => 'Hersteller',
                                            'width' => 80,
-                                           'specs' => "filterUI: 't5'",
+                                           'specs' => "filterUI: 't4'",
                                            ),
                              'vpe' => array(
                                            'name' => 'Einheit',
                                            'width' => 70,
                                            'specs' => "ClassName: 'aligncenter', filterUI: 's'",
                                            'control' => "new Rico.TableColumn.lookup(".grid_lookup_sql('metro_vpe','id','name').", 0, '')",
+                                           'distinct' => "SELECT DISTINCT vpe,metro_vpe.name FROM metro_artikel JOIN metro_vpe ON vpe = metro_vpe.id ORDER BY name",
                                            ),
                              'abteilung' => array(
                                            'name' => 'Abteilung',
                                            'width' => 80,
                                            'specs' => "ClassName: 'aligncenter', filterUI: 's'",
                                            'control' => "new Rico.TableColumn.lookup(".grid_lookup_sql('metro_abteilung','id','name').", 0, '')",
+                                           'distinct' => "SELECT DISTINCT abteilung,metro_abteilung.name FROM metro_artikel JOIN metro_abteilung ON abteilung = metro_abteilung.id ORDER BY name",
                                            'visible' => false,
                                            ),
                              'gang' => array(
@@ -194,6 +201,7 @@ $mask = array(
                                            'sql' => 'abteilung',
                                            'specs' => "ClassName: 'aligncenter', filterUI: 's'",
                                            'control' => "new Rico.TableColumn.lookup(".grid_lookup_sql('metro_abteilung','id','gang').", 0, '')",
+                                           'distinct' => "SELECT DISTINCT abteilung,metro_abteilung.gang FROM metro_artikel JOIN metro_abteilung ON abteilung = metro_abteilung.id ORDER BY gang",
                                            'visible' => false,
                                            ),
                              ),
@@ -221,6 +229,11 @@ $mask = array(
                                 ),
              );
 
+if ($done) {
+  unset($mask['edit']);
+  $mask['join'] = str_replace(' AND removed = 0','',$mask['join']);
+}
+
 function cb_cellsave()
 {
   global $db;