X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;ds=sidebyside;f=lib%2Forder.php;h=9c9e1c97b60d45f272050207d8a1a070da5a0bb0;hb=0fd77b357d1868a57756e91f9e71dfa3b3db26b8;hp=74306d918d8f1d72502fe5f22ab6ab6f36e3e453;hpb=cf4cf65ff0e729c6ba52cede471b7c5ae2b837ba;p=readifood.git diff --git a/lib/order.php b/lib/order.php index 74306d9..9c9e1c9 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,17 +425,21 @@ } function update_order(&$order, $new = false) { - global $user_id; + global $user_id, $parcel_sizes, $parcel_contents; #$date = ymd_to_iso8601("date"); $date = $_POST['date']; $requester_id = $_POST['requester_id']; $beneficiary_id = $_POST['beneficiary_id']; $hub_id = $_POST['hub_id']; - $quantity = $_POST['quantity']; $driver_id = $_POST['driver_id']; + 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); @@ -406,11 +467,7 @@ return false; } } - - if (! is_numeric($quantity)) { - echo "Invalid quantity!
\n"; - return false; - } + else $hub_id = null; if ($new && isset($_POST['recurrence'])) $recurrence = $_POST['recurrence']; if (! $recurrence) $recurrence = 0; @@ -426,7 +483,7 @@ $order->setRequesterId($requester_id); $order->setBeneficiaryId($beneficiary_id); $order->setHubId($hub_id); - $order->setQuantity($quantity); + $order->setParcel($parcel); /* XXX: begin/commit */ try { @@ -499,6 +556,7 @@ $driver_id = $order_state->getDriverId(); if ($driver_id) $driver = get_contact_by_id($driver_id); + else $driver = null; /* XXX */ $state = $order_state->getState(); @@ -598,6 +656,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";