Fixed check for quantity in order.
[readifood.git] / lib / functions.php
index b019e93..20fdd7b 100644 (file)
   }
 
   function get_donation_displayname($donation) {
-    return $donation->getQuantity() . "kg on " . $donation->getDate();
+    return sprintf("%0.2fkg on %s", $donation->getQuantity() / 1000, $donation->getDate());
+  }
+
+  function get_order_parcel_string($order) {
+    global $parcel_sizes, $parcel_contents;
+
+    $parcel_size = "";
+    for ($i = 0 ; $i < count($parcel_sizes); $i++) {
+      if ($order->getParcel() & (1 << $i)) {
+        $parcel_size = $parcel_sizes[$i];
+        break;
+      }
+    }
+
+    $selected = array();
+    for ($i = count($parcel_sizes); $i < count($parcel_contents); $i++) {
+      if ($order->getParcel() & (1 << $i)) $selected[] = $parcel_contents[$i];
+    }
+
+    return implode(": ", array($parcel_size, implode(", ", $selected)));
   }
 
   function get_order_displayname($order) {
-    return $order->getQuantity() . "kg on " . $order->getDate();
+    return sprintf("<span class=\"small\">%s</span> on %s", get_order_parcel_string($order), $order->getDate());
   }
 
   function get_address_area($address) {
     return get_area_city($area);
   }
 
+  /* Parcel strings are the same so this can work. */
+  function get_contact_parcel_string($contact) {
+    return get_order_parcel_string($contact);
+  }
+
   /* Hub and Contact are similar enough that this can work. */
   function get_hub_address($hub) {
     return get_contact_address($hub);
     return get_city_contacts($city_id, $GLOBALS['ROLE_DRIVER']);
   }
 
-  function get_contact_role_string($contact) {
-    global $roles;
-
-    $role = $contact->getRole();
+  function get_role_string($object, $roles) {
+    $role = $object->getRole();
 
     $selected = array();
 
     return implode(", ", $selected);
   }
 
+  function get_contact_role_string($contact) {
+    return get_role_string($contact, $GLOBALS['contact_roles']);
+  }
+
+  function get_hub_role_string($hub) {
+    return get_role_string($hub, $GLOBALS['hub_roles']);
+  }
+
+  function show_role_form($role, $roles) {
+    for ($i = 0; $i < count($roles); $i++) {
+      echo " <input type=\"checkbox\" name=\"role_$i\"";
+      if ($role & (1 << $i)) echo " checked";
+      echo ">$roles[$i]\n";
+    }
+  }
+
   function get_area_hubs($area_id = null) {
     $q = new HubQuery;
     if (isset($area_id)) $q->useAddressQuery()->filterByAreaId($area_id)->endUse();