X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;ds=inline;f=lib%2Forder.php;h=2476ef1988c03a364e5a25b9b5f7b7680a751858;hb=refs%2Ftags%2Fuat-2016-04-07;hp=6a242e774b8fee5d2103ded9409aa628808b5a13;hpb=0a03172fb7157b21a81907bd7f1c6aef41c52d29;p=readifood.git
diff --git a/lib/order.php b/lib/order.php
index 6a242e7..2476ef1 100644
--- a/lib/order.php
+++ b/lib/order.php
@@ -42,8 +42,8 @@
exit;
}
- function show_orders($offset, $per_page, $requester_ids = null, $beneficiary_ids = null, $state_mask = null) {
- list($offset, $per_page) = pagination();
+ function show_orders($city_id = null, $area_id = null, $requester_ids = null, $beneficiary_ids = null, $state_mask = null) {
+ list($first_page, $per_page) = pagination();
/* XXX: Use Propel methods. */
if (isset($state_mask)) $order_ids = get_order_ids_by_state($state_mask);
$q = new OrderQuery;
@@ -51,8 +51,17 @@
if (isset($beneficiary_ids)) $q->filterByBeneficiaryId($beneficiary_ids);
# 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($city_id) || isset($area_id)) {
+ $q->joinWith('Order.Beneficiary');
+ $q->joinWith('Beneficiary.Address');
+ if (isset($area_id)) $q->where('Address.AreaId=?', $area_id);
+ if (isset($city_id)) {
+ $q->joinWith('Address.Area');
+ $q->where('Area.CityId=?', $city_id);
+ }
+ }
if (isset($state_mask)) $q->filterById($order_ids);
- $orders = $q->orderByDate('desc')->paginate($offset, $per_page);
+ $orders = $q->orderByDate('desc')->orderById('desc')->paginate($first_page, $per_page);
if (count($orders)) {
foreach ($orders as $order) {
echo "
\n" . get_order_summary($order) . "
\n";
@@ -62,50 +71,42 @@
else echo " none";
}
- function show_city_orders($offset, $per_page, $city_name, $city_id = null, $state_mask = null) {
+ function show_city_orders($city_name, $city_id = null, $state_mask = null) {
if (isset($city_id)) $city = get_city_by_id($city_id);
else if ($city_name) $city = get_city_by_name($city_name);
if ($city) {
- $contacts = get_city_contacts($city->getId(), $GLOBALS['ROLE_BENEFICIARY']);
- $beneficiary_ids = array();
- foreach ($contacts as $contact) $beneficiary_ids[] = $contact->getId();
-
echo "
Orders in city " . $city->getLink(get_city_displayname($city)) . ":"; - return show_orders($offset, $per_page, null, $beneficiary_ids, $state_mask); + return show_orders($city->getId(), null, null, null, $state_mask); } else echo "
No such city!
\n"; } - function show_requester_orders($offset, $per_page, $contact_name, $contact_id = null, $state_mask = null) { + function show_requester_orders($contact_name, $contact_id = null, $state_mask = null) { if (isset($contact_id)) $contact = get_contact_by_id($contact_id); else if ($contact_name) $contact = get_contact_by_name($contact_name); if ($contact) { echo "Orders from referrer " . $contact->getLink() . ":"; - return show_orders($offset, $per_page, $contact->getId(), null, $state_mask); + return show_orders(null, null, $contact->getId(), null, $state_mask); } else echo "
No such contact!
\n"; } - function show_beneficiary_orders($offset, $per_page, $contact_name, $contact_id = null, $state_mask = null) { + function show_beneficiary_orders($contact_name, $contact_id = null, $state_mask = null) { if (isset($contact_id)) $contact = get_contact_by_id($contact_id); else if ($contact_name) $contact = get_contact_by_name($contact_name); if ($contact) { echo "Orders to beneficiary " . $contact->getLink() . ":"; - return show_orders($offset, $per_page, null, $contact->getId(), $state_mask); + return show_orders(null, null, null, $contact->getId(), $state_mask); } else echo "
No such contact!
\n"; } - function show_area_orders($offset, $per_page, $area_name, $area_id = null, $state_mask = null) { + function show_area_orders($area_name, $area_id = null, $state_mask = null) { if (isset($area_id)) $area = get_area_by_id($area_id); else if ($area_name) $area = get_area_by_name($area_name); if ($area) { - $contacts = get_area_contacts($area->getId(), $GLOBALS['ROLE_BENEFICIARY']); - $contact_ids = array(); - foreach ($contacts as $contact) $contact_ids[] = $contact->getId(); - echo "Orders in area " . $area->getLink() . ":"; - return show_orders($offset, $per_page, null, $contact_ids, $state_mask); + return show_orders(null, $area->getId(), null, null, $state_mask); } else echo "
No such area!
\n"; } @@ -636,7 +637,7 @@ $area = $q->findOneById($area_id); $city = get_area_city($area); if ($city) $city_id = $city->getId(); - show_area_orders(0, 10, $parameters[2], $area_id, $state_mask); + show_area_orders($parameters[2], $area_id, $state_mask); break; case "city": @@ -644,7 +645,7 @@ $_POST['city_id'] = $city_id; $q = new CityQuery; $city = $q->findOneById($city_id); - show_city_orders(0, 10, $parameters[2], $city_id, $state_mask); + show_city_orders($parameters[2], $city_id, $state_mask); break; } } @@ -655,7 +656,7 @@ $contact_id = $parameters[3]; $q = new ContactQuery; $contact = $q->findOneById($contact_id); - show_requester_orders(0, 10, $parameters[2], $contact_id, $state_mask); + show_requester_orders($parameters[2], $contact_id, $state_mask); break; } } @@ -666,7 +667,7 @@ $contact_id = $parameters[3]; $q = new ContactQuery; $hub = $q->findOneById($contact_id); - show_beneficiary_orders(0, 10, $parameters[2], $contact_id, $state_mask); + show_beneficiary_orders($parameters[2], $contact_id, $state_mask); break; } } @@ -694,7 +695,7 @@ } } else if (isset($id)) show_order($id); - else if ($state_mask) show_orders(0, 10, null, null, $state_mask); + else if ($state_mask) show_orders(null, null, null, null, $state_mask); show_order_forms($city_id, $state_mask); show_add_new_order_form($city_id);