示例#1
0
 /**
  * @depends testCreate
  *
  * @param OrderModel $order
  */
 public function testUpdateDeliveryRef(OrderModel $order)
 {
     $deliveryRef = uniqid('DELREF');
     $this->orderEvent->setDeliveryRef($deliveryRef);
     $this->orderEvent->setOrder($order);
     $this->orderAction->updateDeliveryRef($this->orderEvent);
     $this->assertEquals($deliveryRef, $this->orderEvent->getOrder()->getDeliveryRef());
     $this->assertEquals($deliveryRef, OrderQuery::create()->findPk($order->getId())->getDeliveryRef());
 }
 /**
  * Update order's delivery ref
  *
  * @param string    $deliveryRef
  * @param string    $orderRef
  * @param int       $i
  */
 public function importDeliveryRef($deliveryRef, $orderRef, &$i)
 {
     // Check if the order exists
     if (null !== ($order = OrderQuery::create()->findOneByRef($orderRef))) {
         $event = new OrderEvent($order);
         // Check if delivery refs are different
         if ($order->getDeliveryRef() != $deliveryRef) {
             $event->setDeliveryRef($deliveryRef);
             $this->getDispatcher()->dispatch(TheliaEvents::ORDER_UPDATE_DELIVERY_REF, $event);
             $sentStatusId = OrderStatusQuery::create()->filterByCode('sent')->select('ID')->findOne();
             // Set 'sent' order status if not already sent
             if ($sentStatusId != null && $order->getStatusId() != $sentStatusId) {
                 $event->setStatus($sentStatusId);
                 $this->getDispatcher()->dispatch(TheliaEvents::ORDER_UPDATE_STATUS, $event);
             }
             $i++;
         }
     }
 }
 /**
  * Update order's delivery ref
  *
  * @param string    $deliveryRef
  * @param string    $orderRef
  * @param int       $i
  */
 public function importDeliveryRef($deliveryRef, $orderRef, &$i)
 {
     // Get order
     $order = OrderQuery::create()->findOneByRef($orderRef);
     // Check if the order exists
     if ($order !== null) {
         $event = new OrderEvent($order);
         // Check if delivery refs are different
         if ($order->getDeliveryRef() != $deliveryRef) {
             $event->setDeliveryRef($deliveryRef);
             $this->getDispatcher()->dispatch(TheliaEvents::ORDER_UPDATE_DELIVERY_REF, $event);
             // Set 'sent' order status if not already sent
             if ($order->getStatusId() != DpdPickup::STATUS_SENT) {
                 $event->setStatus(DpdPickup::STATUS_SENT);
                 $this->getDispatcher()->dispatch(TheliaEvents::ORDER_UPDATE_STATUS, $event);
             }
             $i++;
         }
     }
 }
 public function trackingAction()
 {
     $response = $this->checkAuth(AdminResources::MODULE, TNTFrance::getModuleCode(), AccessManager::UPDATE);
     if (null !== $response) {
         return $response;
     }
     $this->checkXmlHttpRequest();
     $orderId = $this->getRequest()->request->get("order_id");
     $trackingNumber = $this->getRequest()->request->get("tracking_number");
     $jsonResponse = ['success' => false, 'message' => ''];
     try {
         $order = OrderQuery::create()->findPk($orderId);
         if (null === $order) {
             throw new \InvalidArgumentException("The order you want to update status does not exist");
         }
         $event = new OrderEvent($order);
         $event->setDeliveryRef($trackingNumber);
         $this->dispatch(TheliaEvents::ORDER_UPDATE_DELIVERY_REF, $event);
         $jsonResponse['success'] = true;
     } catch (\Exception $e) {
         $jsonResponse['message'] = $e->getMessage();
     }
     return $this->jsonResponse(json_encode($jsonResponse));
 }
示例#5
0
 public function updateDeliveryRef($order_id)
 {
     if (null !== ($response = $this->checkAuth(AdminResources::ORDER, array(), AccessManager::UPDATE))) {
         return $response;
     }
     $message = null;
     try {
         $order = OrderQuery::create()->findPk($order_id);
         $deliveryRef = $this->getRequest()->get("delivery_ref");
         if (null === $order) {
             throw new \InvalidArgumentException("The order you want to update status does not exist");
         }
         $event = new OrderEvent($order);
         $event->setDeliveryRef($deliveryRef);
         $this->dispatch(TheliaEvents::ORDER_UPDATE_DELIVERY_REF, $event);
     } catch (\Exception $e) {
         $message = $e->getMessage();
     }
     $params = array();
     if ($message) {
         $params["update_status_error_message"] = $message;
     }
     $params["tab"] = $this->getRequest()->get("tab", 'bill');
     return $this->generateRedirectFromRoute("admin.order.update.view", $params, ['order_id' => $order_id]);
 }