private function mergeOrder() { // load the last un-finalized order by this user $f = new ARSelectFilter(new EqualsCond(new ARFieldHandle('CustomerOrder', 'userID'), $this->user->getID())); $f->mergeCondition(new NotEqualsCond(new ARFieldHandle('CustomerOrder', 'isFinalized'), true)); $f->setOrder(new ARFieldHandle('CustomerOrder', 'dateCreated'), 'DESC'); $f->setLimit(1); $s = ActiveRecordModel::getRecordSet('CustomerOrder', $f, ActiveRecordModel::LOAD_REFERENCES); if (!$this->order->user->get() || $this->order->user->get()->getID() == $this->user->getID()) { if ($s->size()) { $order = $s->get(0); if ($this->order->getID() != $order->getID()) { $sessionOrder = SessionOrder::getOrder(); $order->loadItems(); $order->merge($sessionOrder); $order->save(); SessionOrder::setOrder($order); $this->order->delete(); } } else { if ($this->order->getID()) { $this->order->setUser($this->user); SessionOrder::save($this->order); } } } }