示例#1
0
 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);
             }
         }
     }
 }