X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;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();