Example #1
0
 /**
  * Correct request data: detect temporary order and add data for temporary order
  *
  * @return array
  */
 protected function getRequestData()
 {
     $data = parent::getRequestData();
     $orderId = $this->getOrder()->getOrderId();
     $tmpOrderData = \XLite\Controller\Admin\Order::getTemporaryOrderData();
     $tmpItems = array();
     if (empty($tmpOrderData[$orderId])) {
         // Current order is not a source order - search for temporary order in cache
         foreach ($tmpOrderData as $oid => $tmpData) {
             $tmpOid = is_object($tmpData['order']) ? $tmpData['order']->getOrderId() : (int) $tmpData['order'];
             if ($tmpOid == $orderId) {
                 $tmpItems = isset($tmpData['items']) ? $tmpData['items'] : array();
                 break;
             }
         }
     }
     if (!empty($tmpItems)) {
         $dataTypes = array($this->getDataPrefix(), $this->getRemoveDataPrefix());
         // Add data for temporary order
         foreach ($tmpItems as $origId => $tmpId) {
             foreach ($dataTypes as $dataType) {
                 if (!empty($data[$dataType][$origId])) {
                     $data[$dataType][$tmpId] = $data[$dataType][$origId];
                     unset($data[$dataType][$origId]);
                 }
             }
         }
         $this->requestData = $data;
     }
     return $this->requestData;
 }