X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;ds=sidebyside;f=lib%2Forder.php;h=cb40f6314a63e055ef204d87169bedab7a06eaaa;hb=5f50c624101d671ec4147b3ad974c15178c6ebe5;hp=5c7e0d894ba9e3f264530de412ffa74a69ce3a3c;hpb=7910a9551304a4789ba1fde0c85eeaf5bb21003b;p=readifood.git
diff --git a/lib/order.php b/lib/order.php
index 5c7e0d8..cb40f63 100644
--- a/lib/order.php
+++ b/lib/order.php
@@ -230,12 +230,15 @@
}
function show_order_form($order = null, $area_id = null) {
- global $states;
+ global $states, $parcel_sizes, $parcel_contents;
if ($order) {
$q = new OrderStateQuery;
$order_state = $q->filterByOrderId($order->getId())->orderByUpdated('desc')->limit(1)->findOne();
- if ($order_state) $state = $order_state->getState();
+ if ($order_state) {
+ $state = $order_state->getState();
+ $driver_id = $order_state->getDriverId();
+ }
}
else $order = new Order;
@@ -293,7 +296,30 @@
/* Quantity. */
echo "
\n";
echo " Quantity (kg) | \n";
- echo " "; input("quantity", $order->getQuantity()); echo " | \n";
+ echo " "; input("quantity", sprintf("%0.2f", $order->getQuantity() / 1000)); echo " | \n";
+ echo "
\n";
+
+ /* Parcel type. */
+ echo "\n";
+ echo " Parcel size | \n";
+ echo " | \n";
+ echo "
\n";
+
+ /* Parcel contents. */
+ echo "\n";
+ echo " Parcel contents | \n";
+ echo " ";
+ for ($i = count($parcel_sizes); $i < count($parcel_contents); $i++) {
+ echo " getParcel() & (1 << $i)) echo " checked";
+ echo ">$parcel_contents[$i]\n";
+ }
+ echo " | \n";
echo "
\n";
/* Driver. */
@@ -368,7 +394,7 @@
}
function update_order(&$order, $new = false) {
- global $user_id;
+ global $user_id, $parcel_sizes, $parcel_contents;
#$date = ymd_to_iso8601("date");
$date = $_POST['date'];
@@ -380,6 +406,10 @@
if (! $driver_id) $driver_id = null;
$state = $_POST['state'];
if (! $state) $state = $GLOBALS['STATE_PLACED'];
+ $parcel = $_POST['parcel_size'];
+ for ($i = count($parcel_sizes); $i < count($parcel_contents); $i++) {
+ if ($_POST['parcel_' . $i] == "on") $parcel |= (1 << $i);
+ }
if ($date) {
list($y, $m, $d) = explode('-', $date);
@@ -428,7 +458,8 @@
$order->setRequesterId($requester_id);
$order->setBeneficiaryId($beneficiary_id);
$order->setHubId($hub_id);
- $order->setQuantity($quantity);
+ $order->setQuantity($quantity * 1000);
+ $order->setParcel($parcel);
/* XXX: begin/commit */
try {
@@ -501,6 +532,7 @@
$driver_id = $order_state->getDriverId();
if ($driver_id) $driver = get_contact_by_id($driver_id);
+ else $driver = null;
/* XXX */
$state = $order_state->getState();