<?php
if (isset($_POST['show_add_order'])) {
+ set_last_selected("area_id", $_POST['area_id']);
$area_id = $_POST['area_id'];
show_new_order_form($area_id);
}
else if (isset($_POST['add_order'])) {
+ set_last_selected("area_id", $_POST['area_id']);
$id = add_order();
if ($id !== false) {
echo "<p>Order placed.</p>\n";
}
}
else if ($_POST['show_in_area']) {
+ set_last_selected("area_id", $_POST['area_id']);
$q = new AreaQuery;
$area = $q->findOneById($_POST['area_id']);
header(sprintf("Location: http%s://%s/%s/in/area/%s/%d%s", ($_SERVER['HTTPS']) ? "s" : "", $_SERVER['HTTP_HOST'], $module, urlencode($area->getName()), $_POST['area_id'], get_order_state_query_uri(get_order_state_mask())));
exit;
}
else if ($_POST['show_in_city']) {
+ set_last_selected("city_id", $_POST['city_id']);
$q = new CityQuery;
$city = $q->findOneById($_POST['city_id']);
header(sprintf("Location: http%s://%s/%s/in/city/%s/%d%s", ($_SERVER['HTTPS']) ? "s" : "", $_SERVER['HTTP_HOST'], $module, urlencode($city->getName()), $_POST['city_id'], get_order_state_query_uri(get_order_state_mask())));
}
function show_orders($offset, $per_page, $requester_ids = null, $beneficiary_ids = null, $state_mask = null) {
+ list($offset, $per_page) = pagination();
/* XXX: Use Propel methods. */
if (isset($state_mask)) $order_ids = get_order_ids_by_state($state_mask);
$q = new OrderQuery;
# XXX: Doesn't work.
#if (isset($state_mask)) $q->useOrderStateQuery()->addSelectQuery($latest_state, 'latestState')->where("order_id=latestState.order_id")->where("state & $state_mask")->endUse();
if (isset($state_mask)) $q->filterById($order_ids);
- $orders = $q->orderByDate()->find();
+ $orders = $q->orderByDate('desc')->paginate($offset, $per_page);
if (count($orders)) {
foreach ($orders as $order) {
echo "<br>\n" . get_order_summary($order) . "<br>\n";
}
+ show_pagination($orders);
}
else echo " none";
}
echo "<p>Restrict to order states:\n";
for ($i = 0; $i < count($states); $i++) {
- echo " <input type=\"checkbox\" name=\"state_$i\"";
+ echo " <input type=\"checkbox\" id=\"state_$i\" name=\"state_$i\"";
if ($state_mask & (1 << $i)) echo " checked";
- echo ">$states[$i]\n";
+ echo "><label for=\"state_$i\">$states[$i]</label>\n";
}
echo "</p>\n";
}
return;
}
+ $candidates = array();
+ foreach ($areas as $area) {
+ if (! count(get_area_contacts($area->getId()))) continue;
+ $candidates[] = $area;
+ }
+ if (! count($candidates)) return;
+
echo "<p>Show orders in area\n";
echo "<select name=\"area_id\">\n";
- foreach ($areas as $area) {
+ foreach ($candidates as $area) {
option("area_id", $area->getId(), get_area_displayname($area));
}
echo "</select>\n";
return;
}
+ $candidates = array();
+ foreach ($cities as $city) {
+ if (! count(get_city_contacts($city->getId()))) continue;
+ $candidates[] = $city;
+ }
+ if (! count($candidates)) return;
+
echo "<p>Show orders in city\n";
echo "<select name=\"city_id\">\n";
- foreach ($cities as $city) {
+ foreach ($candidates as $city) {
option("city_id", $city->getId(), get_city_displayname($city), $city_id);
}
echo "</select>\n";
echo " <td>Parcel contents</td>\n";
echo " <td>";
for ($i = count($parcel_sizes); $i < count($parcel_contents); $i++) {
- echo " <input type=\"checkbox\" name=\"parcel_$i\"";
+ echo " <input type=\"checkbox\" id=\"parcel_$i\" name=\"parcel_$i\"";
if ($order->getParcel() & (1 << $i)) echo " checked";
- echo ">$parcel_contents[$i]\n";
+ echo "><label for=\"parcel_$i\">$parcel_contents[$i]</label>\n";
}
echo "</td>\n";
echo "</tr>\n";
echo " <td>State</td>\n";
echo " <td><select name=\"state\">\n";
for ($i = 0; $i < count($states); $i++) {
- option("state", $i << 1, ucfirst($states[$i]), $state);
+ option("state", 1 << $i, ucfirst($states[$i]), $state);
}
echo "</select></td>\n";
echo "</tr>\n";
return $order->getId();
}
+ function confirm_delete_order($id = null) {
+ if (! check_admin(1, "delete an order")) return;
+
+ if (isset($id)) $order = get_order_by_id($id);
+ if (! $order) return false;
+
+ echo "<h3>Confirm deletion</h3>\n";
+ echo "<p>You must confirm deletion of order $id: " . $order->getDeleteLink(true) . "</p>\n";
+ }
+
function delete_order($id = null) {
if (! check_admin(1, "delete an order")) return;
if (count($args)) {
switch ($args[0]) {
case "delete":
+ confirm_delete_order($id);
+ break;
+
+ case "confirmdelete":
delete_order($id);
break;
}