/** * cancel an order. * @param Member $member - the user cancelling the order * @param String $reason - the reason the order is cancelled * @returns OrderStatusLog_Cancel */ public function Cancel(Member $member, $reason = "") { $this->CancelledByID = $member->ID; if (!$this->Archive()) { $this->write(); } $log = OrderStatusLog_Cancel::create(); $log->AuthorID = $member->ID; $log->OrderID = $this->ID; $log->Note = $reason; if ($member->IsShopAdmin()) { $log->InternalUseOnly = true; } return $log->write(); }