Fix driver display in order form.
[readifood.git] / lib / order.php
index 74306d9..a392f6e 100644 (file)
     if ($order) {
       $q = new OrderStateQuery;
       $order_state = $q->filterByOrderId($order->getId())->orderByUpdated('desc')->limit(1)->findOne();
-      if ($order_state) $state = $order_state->getState();
+      if ($order_state) {
+        $state = $order_state->getState();
+        $driver_id = $order_state->getDriverId();
+      }
     }
     else $order = new Order;
 
     /* Quantity. */
     echo "<tr>\n";
     echo "  <td>Quantity (kg)</td>\n";
-    echo "  <td>"; input("quantity", $order->getQuantity()); echo "</td>\n";
+    echo "  <td>"; input("quantity", sprintf("%0.2f", $order->getQuantity() / 1000)); echo "</td>\n";
     echo "</tr>\n";
 
     /* Driver. */
     $hub_id = $_POST['hub_id'];
     $quantity = $_POST['quantity'];
     $driver_id = $_POST['driver_id'];
+    if (! $driver_id) $driver_id = null;
     $state = $_POST['state'];
     if (! $state) $state = $GLOBALS['STATE_PLACED'];
 
         return false;
       }
     }
+    else $hub_id = null;
 
     if (! is_numeric($quantity)) {
       echo "<p>Invalid quantity!</p>\n";
       $order->setRequesterId($requester_id);
       $order->setBeneficiaryId($beneficiary_id);
       $order->setHubId($hub_id);
-      $order->setQuantity($quantity);
+      $order->setQuantity($quantity * 1000);
 
       /* XXX: begin/commit */
       try {
 
       $driver_id = $order_state->getDriverId();
       if ($driver_id) $driver = get_contact_by_id($driver_id);
+      else $driver = null;
 
       /* XXX */
       $state = $order_state->getState();