Standardise URI for showing Areas in a City.
[readifood.git] / lib / order.php
index 426606b..69026bf 100644 (file)
 
   function show_orders($offset, $per_page, $requester_ids = null, $beneficiary_ids = null, $state_mask = null) {
     /* XXX: Use Propel methods. */
-    if (isset($state_mask)) {
-      $order_ids = array();
-      $dbh = Propel::getConnection();
-      $sth = $dbh->prepare("select * from OrderState o where updated=(select max(updated) from OrderState where order_id=o.order_id) and state & $state_mask");
-      $sth->execute();
-      $order_states = OrderStatePeer::populateObjects($sth);
-      foreach ($order_states as $order_state) $order_ids[] = $order_state->getOrderId();
-    }
+    if (isset($state_mask)) $order_ids = get_order_ids_by_state($state_mask);
     $q = new OrderQuery;
     if (isset($requester_ids)) $q->filterByRequesterId($requester_ids);
     if (isset($beneficiary_ids)) $q->filterByBeneficiaryId($beneficiary_ids);
     echo "<tr>\n";
     echo "  <td>Parcel size</td>\n";
     echo "  <td><select name=\"parcel_size\">\n";
-    $mask = 1 << (count($parcel_sizes) + 1);
+    $mask = 1 << count($parcel_sizes);
     for ($i = 0; $i < count($parcel_sizes); $i++) {
-      option("parcel_size", $i << 1, $parcel_sizes[$i], $order->getParcel() % $mask);
+      option("parcel_size", 1 << $i, $parcel_sizes[$i], $order->getParcel() % $mask);
     }
     echo "</select></td>\n";
     echo "</tr>\n";
     $order->setBeneficiaryId($contact->getId());
 
     echo "<form method=\"POST\" action=\"" . $_SERVER['REQUEST_URI'] . "\">\n";
-    echo "<p>Place an order:</p>\n";
+    echo "<p>Placing order for " . $contact->getStrongLink() . ".";
+    $parcel = $contact->getParcel();
+    if ($parcel) {
+      echo "  Suggested parcel type is <span class=\"strong\">" .  get_contact_parcel_string($contact) . "</span>";
+      $order->setParcel($parcel);
+    }
+    echo "</p>\n";
 
     echo "<table>\n";
     show_order_form($order, $area_id);
     $requester_id = $_POST['requester_id'];
     $beneficiary_id = $_POST['beneficiary_id'];
     $hub_id = $_POST['hub_id'];
-    $quantity = $_POST['quantity'];
     $driver_id = $_POST['driver_id'];
     if (! $driver_id) $driver_id = null;
     $state = $_POST['state'];
     }
     else $hub_id = null;
 
-    if (! is_numeric($quantity)) {
-      echo "<p>Invalid quantity!</p>\n";
-      return false;
-    }
-
     if ($new && isset($_POST['recurrence'])) $recurrence = $_POST['recurrence'];
     if (! $recurrence) $recurrence = 0;