return $order_ids;
}
- function get_contact_orders($contact, $state_mask = null) {
+ function get_beneficiary_orders($contact, $state_mask = null) {
$q = new OrderQuery;
$q->filterByBeneficiaryId($contact->getId());
if ($state_mask) $q->filterById(get_order_ids_by_state($state_mask));
return $q->orderByDate()->find();
}
+ function get_requester_orders($contact, $state_mask = null) {
+ $q = new OrderQuery;
+ $q->filterByRequesterId($contact->getId());
+ if ($state_mask) $q->filterById(get_order_ids_by_state($state_mask));
+ return $q->orderByDate()->find();
+ }
+
+ function get_contact_orders($contact, $state_mask = null) {
+ $q = new OrderQuery;
+ $q->filterByBeneficiaryId($contact->getId())->_or()->filterByRequesterId($contact->getId());
+ if ($state_mask) $q->filterById(get_order_ids_by_state($state_mask));
+ return $q->orderByDate()->find();
+ }
+
function get_user_by_contact_id($id, $verbose = true) {
$q = new UserQuery;
$user = $q->findOneByContactId($id);
function get_order_parcel_string($order) {
global $parcel_sizes, $parcel_contents;
- $parcel_size = "";
+ $parcel_size = null;
for ($i = 0 ; $i < count($parcel_sizes); $i++) {
if ($order->getParcel() & (1 << $i)) {
$parcel_size = $parcel_sizes[$i];
if ($order->getParcel() & (1 << $i)) $selected[] = $parcel_contents[$i];
}
- return implode(": ", array($parcel_size, implode(", ", $selected)));
+ $ret = implode(": ", array($parcel_size, implode(", ", $selected)));
+ $ret = preg_replace('/^: /', '', $ret);
+ $ret = preg_replace('/: $/', '', $ret);
+
+ return $ret;
}
function get_order_displayname($order) {
return sprintf("<span class=\"small\">%s</span> on %s", get_order_parcel_string($order), $order->getDate());
}
+ function get_order_state_string($order_state = null) {
+ global $states;
+
+ if (is_null($order_state)) return null;
+
+ for ($i = 0; $i < count($states); $i++) {
+ if ($order_state->getState() & (1 << $i)) {
+ return $states[$i];
+ }
+ }
+
+ return "unknown";
+ }
+
+ function get_order_state($order) {
+ $q = new OrderStateQuery();
+ return $q->filterByOrderId($order->getId())->orderByUpdated('desc')->findOne();
+ }
+
function get_order_summary($order) {
$ret = "Order " . $order->getStrongLink($order->getId()) . ": " . get_order_displayname($order);