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);
$orders = $q->orderByDate()->find();
if (count($orders)) {
foreach ($orders as $order) {
- echo "<br>\nOrder " . $order->getStrongLink($order->getId()) . ": " . get_order_displayname($order);
- if (check_admin(1)) {
- echo " " . $order->getDeleteLink();
- }
-
- /* XXX: Should pull from query. */
- $q = new ContactQuery;
- $contact = $q->findOneById($order->getBeneficiaryId());
- if ($contact) {
- echo " for " . $contact->getLink();
- $area = get_contact_area($contact);
- if ($area) echo " in " . $area->getLink();
- }
-
- if ($order->getHubId()) {
- $q = new HubQuery;
- $hub = $q->findOneById($order->getHubId());
- if ($hub) echo " to hub " . $hub->getLink();
- $area = get_hub_area($hub);
- if ($area) echo " in " . $area->getLink();
- }
+ echo "<br>\n" . get_order_summary($order) . "<br>\n";
}
}
else echo " none";
}
function show_order_forms($city_id, $state_mask) {
- echo "<form method=\"POST\" action=\"" . $_SERVER['REQUEST_URI'] . "\">\n";
+ form("noprint standout");
show_order_state_form($state_mask);
show_order_areas_form($city_id);
show_order_cities_form($city_id);
- echo "</form>\n";
+ end_form();
}
function show_order_form($order = null, $area_id = null) {
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";
return;
}
- echo "<form method=\"POST\" action=\"" . $_SERVER['REQUEST_URI'] . "\">\n";
+ form("noprint");
echo "<p>Place an order:</p>\n";
echo "<table>\n";
echo " <td colspan=2>"; submit("add_order", "Order"); echo "</td></tr>\n";
echo "</tr>\n";
echo "</table>\n";
- echo "</form>\n";
+ end_form();
}
function show_contact_order_form($contact) {
$order = new Order;
$order->setBeneficiaryId($contact->getId());
- echo "<form method=\"POST\" action=\"" . $_SERVER['REQUEST_URI'] . "\">\n";
- echo "<p>Place an order:</p>\n";
+ form("standout");
+ 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);
echo " <td colspan=2>"; submit("add_order", "Order"); echo "</td></tr>\n";
echo "</tr>\n";
echo "</table>\n";
- echo "</form>\n";
+ end_form();
}
function show_add_new_order_form() {
return;
}
- echo "<form method=\"POST\" action=\"" . $_SERVER['REQUEST_URI'] . "\">\n";
+ form("noprint standout");
echo "<p>Place an order in <select name=\"area_id\">\n";
foreach ($areas as $area) {
option("area_id", $area->getId(), get_area_displayname($area));
echo "</select>";
submit("show_add_order", "Proceed");
echo "</p>\n";
- echo "</form>\n";
+ end_form();
}
function update_order(&$order, $new = false) {
$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;
if (isset($id)) $order = get_order_by_id($id);
if (! $order) return;
- echo "<form method=\"POST\" action=\"" . $_SERVER['REQUEST_URI'] . "\">\n";
+ form();
echo "<p>Order: <span class=\"strong\">" . $order->getId() . "</span>";
if (check_admin(1)) {
echo " " . $order->getDeleteLink();
}
echo "</table>\n";
- echo "</form>\n";
+ end_form();
show_order_history($order->getId());
}
}
else if (isset($id)) show_order($id);
else if ($state_mask) show_orders(0, 10, null, null, $state_mask);
- else {
- /* XXX: Shown after adding. */
- show_order_forms($city_id, $state_mask);
- show_add_new_order_form($city_id);
- }
- if (count($parameters)) {
- show_order_forms($city_id, $state_mask);
- }
+ show_order_forms($city_id, $state_mask);
+ show_add_new_order_form($city_id);
?>