X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;ds=inline;f=lib%2Forder.php;h=928ca67efeafcb2bfc7448106970f8bd94257c6b;hb=dedb377e98ae2f222f4d8b5dacc175e4d4e73f4b;hp=5c7e0d894ba9e3f264530de412ffa74a69ce3a3c;hpb=7910a9551304a4789ba1fde0c85eeaf5bb21003b;p=readifood.git diff --git a/lib/order.php b/lib/order.php index 5c7e0d8..928ca67 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; @@ -271,9 +274,15 @@ echo "
No valid area for contact!
\n"; + return; + } + + $order = new Order; + $order->setBeneficiaryId($contact->getId()); + + echo "\n"; + } + function show_add_new_order_form() { if (! check_admin(1)) return; @@ -368,7 +425,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 +437,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 +489,7 @@ $order->setRequesterId($requester_id); $order->setBeneficiaryId($beneficiary_id); $order->setHubId($hub_id); - $order->setQuantity($quantity); + $order->setParcel($parcel); /* XXX: begin/commit */ try { @@ -501,6 +562,7 @@ $driver_id = $order_state->getDriverId(); if ($driver_id) $driver = get_contact_by_id($driver_id); + else $driver = null; /* XXX */ $state = $order_state->getState(); @@ -600,6 +662,15 @@ break; } } + else if ($parameters[0] == "place") { + if ($parameters[1] == "for") { + if ($parameters[2] == "beneficiary") { + if ($parameters[4]) $contact = get_contact_by_id($parameters[4]); + if (! $contact) $contact = get_contact_by_name(urldecode($parameters[3])); + if ($contact) show_contact_order_form($contact); + } + } + } } list($ignored, $id, $args) = parse_parameters($parameters); //echo "$name($id) " . print_r($args, true) . "
\n";