Ejemplo n.º 1
0
 public function testSetGetNumber()
 {
     $this->assertNull($this->_model->getNumber());
     $this->_model->setNumber('test');
     $this->assertEquals('test', $this->_model->getNumber());
     $this->assertEquals('test', $this->_model->getTrackNumber());
 }
Ejemplo n.º 2
0
 /**
  * Adds shipment with specified tracking number
  *
  * @param Mage_Sales_Model_Order_Shipment $shipment
  * @param Mage_Sales_Model_Order_Shipment_Track $track
  */
 private function _addShipmentWithTrack(Mage_Sales_Model_Order_Shipment $shipment, Mage_Sales_Model_Order_Shipment_Track $track = null)
 {
     $mageCarrierCode = $this->_getCarrierCodeFromOrder($shipment->getOrder());
     $carrierCode = $this->_getConfig()->getCarrierCode($mageCarrierCode);
     $otherCarrierName = $carrierCode == Mage_GoogleTrustedStore_Model_Config::CARRIER_CODE_OTHER ? $this->_getConfig()->getOtherCarrierName($mageCarrierCode) : '';
     $this->_addRow(array($shipment->getOrder()->getIncrementId(), trim($track ? $track->getNumber() : ''), $carrierCode, $otherCarrierName, $shipment->getCreatedAtDate()->toString('yyyy-MM-dd')));
 }
Ejemplo n.º 3
0
 public function testIsCustom()
 {
     $this->_model->setCarrierCode('ups');
     $this->assertFalse($this->_model->isCustom());
     $this->_model->setCarrierCode('custom');
     $this->assertTrue($this->_model->isCustom());
 }
Ejemplo n.º 4
0
 public function testAddData()
 {
     $number = 123;
     $this->assertNull($this->_model->getTrackNumber());
     $this->_model->addData(array('number' => $number, 'test' => true));
     $this->assertTrue($this->_model->getTest());
     $this->assertEquals($number, $this->_model->getTrackNumber());
 }
Ejemplo n.º 5
0
 /**
  * Retrieve tracking url with params
  *
  * @param  string $key
  * @param  Mage_Sales_Model_Order|Mage_Sales_Model_Order_Shipment|Mage_Sales_Model_Order_Shipment_Track $model
  * @param  string $method Optional - method of a model to get id
  * @return string
  */
 protected function _getTrackingUrl($key, $model, $method = 'getId')
 {
     $helper = Mage::helper('Mage_Core_Helper_Data');
     $urlPart = "{$key}:{$model->{$method}()}:{$model->getProtectCode()}";
     $param = array('hash' => $helper->urlEncode($urlPart));
     $storeModel = Mage::app()->getStore($model->getStoreId());
     return $storeModel->getUrl('shipping/tracking/popup', $param);
 }
Ejemplo n.º 6
0
 /**
  * When creating a new label, update shipment track record with filename info
  *
  * @param Mage_Sales_Model_Order_Shipment_Track $track
  * @param array $labelImages
  */
 public function updateTrack($track, $labelImages)
 {
     $fileNames = array();
     $labelDir = Mage::getConfig()->getVarDir('label') . DS;
     foreach ((array) $labelImages as $i => $label) {
         $fn = $track->getNumber() . '-' . $i . '.png';
         $fileNames[] = $fn;
         file_put_contents($labelDir . $fn, base64_decode($label));
     }
     $track->setLabelImage(join("\n", $fileNames));
     $track->setLabelFormat('PDF');
     return $this;
 }
Ejemplo n.º 7
0
 public function addTrack(Mage_Sales_Model_Order_Shipment_Track $track)
 {
     $track->setShipment($this)->setParentId($this->getId())->setOrderId($this->getOrderId())->setStoreId($this->getStoreId());
     if (!$track->getId()) {
         $this->getTracksCollection()->addItem($track);
     }
     /**
      * Track saving is implemented in _afterSave()
      * This enforces Mage_Core_Model_Abstract::save() not to skip _afterSave()
      */
     $this->_hasDataChanges = true;
     return $this;
 }
Ejemplo n.º 8
0
 /**
  * @param Mage_Sales_Model_Order_Shipment_Track $magento_track
  * @return mixed
  */
 private function _saveTrack(Mage_Sales_Model_Order_Shipment_Track $magento_track)
 {
     $magento_track_data = $magento_track->getData();
     $magento_order_data = $magento_track->getShipment()->getOrder()->getData();
     $magento_shipping_address_data = $magento_track->getShipment()->getOrder()->getShippingAddress()->getData();
     $track = Mage::getModel('track/track');
     $track->setTrackingNumber($this->_getTrackNo($magento_track));
     $track->setShipCompCode($magento_track_data['carrier_code']);
     $track->setTitle($magento_order_data['increment_id']);
     $track->setOrderId($magento_order_data['increment_id']);
     if ($magento_order_data['customer_email'] && $magento_order_data['customer_email'] != '') {
         $track->setEmail($magento_order_data['customer_email']);
     }
     if ($magento_shipping_address_data['telephone'] && $magento_shipping_address_data['telephone'] != '') {
         $track->setTelephone($magento_shipping_address_data['telephone']);
     }
     $config = $this->_getWebsiteConfig($magento_track->getShipment()->getOrder());
     if ($config->status) {
         $track->setPosted(self::POSTED_NOT_YET);
     } else {
         // mark it as disabled so that cron will not touch it
         $track->setPosted(self::POSTED_DISABLED);
     }
     $track->save();
     return $track;
 }
 /**
  * Get the shipment tracking pop-up URL
  *
  * @param  EbayEnterprise_Order_Model_Detail_Process_Response_Shipment
  * @param  Mage_Sales_Model_Order_Shipment_Track
  * @return string
  */
 public function getTrackingPopupUrl(EbayEnterprise_Order_Model_Detail_Process_Response_Shipment $shipment, Mage_Sales_Model_Order_Shipment_Track $track)
 {
     return $this->getUrl('*/*/romtrackingpopup', ['order_id' => $this->getOrder()->getRealOrderId(), 'shipment_id' => $shipment->getIncrementId(), 'tracking_number' => $track->getNumber()]);
 }
Ejemplo n.º 10
0
 /**
  * Get file name of label image for shipment tracking
  *
  * @todo make flexible enough for EPL
  * @param Mage_Sales_Model_Order_Shipment_Track $track
  * @return string
  */
 public function getTrackLabelFileName($track)
 {
     $shipment = $track->getShipment();
     return Mage::getConfig()->getVarDir('label') . DS . $track->getNumber() . '.png';
 }
Ejemplo n.º 11
0
 public function addTrack(Mage_Sales_Model_Order_Shipment_Track $track)
 {
     $track->setShipment($this)->setParentId($this->getId())->setOrderId($this->getOrderId())->setStoreId($this->getStoreId());
     if (!$track->getId()) {
         $this->getTracksCollection()->addItem($track);
     }
     return $this;
 }
 /**
  * Import tracking file
  *
  */
 public function importTrackingFile($t_lines)
 {
     $importedTrackingCount = 0;
     $skippedTrackingCount = 0;
     $debug = '';
     for ($i = 0; $i < count($t_lines); $i++) {
         //skip first line (if required)
         $line = $t_lines[$i];
         if ($i == 0 && $this->getct_import_skip_first_record()) {
             continue;
         }
         $tracking = null;
         $shipmentReference = null;
         //parse fixed format line
         if ($this->getct_import_format() == 'fixed') {
             $currentPosition = 0;
             foreach ($this->getFields('import') as $field) {
                 $size = $field->getctf_size();
                 $fieldValue = substr($line, $currentPosition, $size);
                 switch ($field->getctf_content()) {
                     case 'tracking':
                         $tracking = trim($fieldValue);
                         break;
                     case 'shipment':
                         $shipmentReference = trim($fieldValue);
                         break;
                 }
                 $currentPosition += $size;
             }
         }
         //parse delimiter format line
         if ($this->getct_import_format() == 'delimiter') {
             //split fields
             $t_columns = explode($this->getFieldSeparator('import'), $line);
             foreach ($this->getFields('import') as $field) {
                 if (isset($t_columns[$field->getctf_position()])) {
                     $fieldValue = $t_columns[$field->getctf_position()];
                     if ($this->getFieldDelimiter('import') != '') {
                         $fieldValue = str_replace($this->getFieldDelimiter('import'), '', $fieldValue);
                     }
                     switch ($field->getctf_content()) {
                         case 'tracking':
                             $tracking = $fieldValue;
                             break;
                         case 'shipment':
                             $shipmentReference = $fieldValue;
                             break;
                     }
                 }
             }
         }
         //add tracking
         if ($tracking != null && $shipmentReference != null) {
             $debug .= 'process tracking ' . $tracking . ' for shipment #' . $shipmentReference . "\n";
             $shipment = mage::getModel('sales/order_shipment')->loadByIncrementId($shipmentReference);
             if ($shipment->getId()) {
                 if (!$this->shipmentContainsTracking($shipment, $tracking)) {
                     try {
                         $debug .= 'import tracking=' . $tracking . ' for shipment=' . $shipment->getincrement_id() . "\n";
                         $track = new Mage_Sales_Model_Order_Shipment_Track();
                         $track->setNumber($tracking)->setCarrierCode($this->getct_shipping_method())->setTitle('Tracking');
                         $shipment->addTrack($track)->save();
                         $importedTrackingCount++;
                     } catch (Exception $ex) {
                         $debug .= 'Error for line #' . $i . ' : ' . $ex->getMessage() . "\n";
                         $skippedTrackingCount++;
                     }
                 } else {
                     $skippedTrackingCount++;
                     $debug .= 'Tracking already exist for line #' . $i . "\n";
                 }
             } else {
                 $skippedTrackingCount++;
                 $debug .= 'Unable to retrieve shipment for line #' . $i . "\n";
             }
         } else {
             $debug .= 'Unable to retrieve shipment or/and tracking for line #' . $i . "\n";
         }
     }
     mage::log($debug);
     $msg = mage::helper('Orderpreparation')->__('Tracking import complete : %s tracking imported, %s tracking skipped', $importedTrackingCount, $skippedTrackingCount);
     return $msg;
 }
Ejemplo n.º 13
0
 /**
  *
  * @param Mage_Sales_Model_Order_Shipment_Track $track
  *
  * @return boolean
  */
 public function isDpdTrack(Mage_Sales_Model_Order_Shipment_Track $track)
 {
     return strpos($track->getCarrierCode(), $this->getDpdCarrierCode()) !== false;
 }
 /**
  * Enregistre les modifs pour une commande 
  * (c'est a dire commentaire & qté reservée par ligne commande)
  *
  */
 public function SaveOrderAction()
 {
     try {
         //parcourt les data
         $order_id = $this->getRequest()->getParam('order_id');
         $order = mage::getModel('sales/order')->load($order_id);
         $data = $this->getRequest()->getParams();
         //shipment & invoice
         $shipment_id = $this->getRequest()->getParam('shipment_id');
         $invoice_id = $this->getRequest()->getParam('invoice_id');
         $tracking_num = $this->getRequest()->getParam('tracking_num');
         if ($shipment_id || $invoice_id) {
             mage::getModel('Orderpreparation/ordertoprepare')->load($order_id, 'order_id')->setshipment_id($shipment_id)->setinvoice_id($invoice_id)->save();
         }
         //Si un numéro de tracking a été saisi, on l'ajoute
         if ($tracking_num) {
             //met a jour les shipment
             $shipment = Mage::getModel('sales/order_shipment')->loadByIncrementId($shipment_id);
             if ($shipment->getOrder()) {
                 //$order = mage::getmodel('sales/order')->load($order_id);
                 $Carrier = str_replace('_', '', $order->getshipping_method());
                 $track = new Mage_Sales_Model_Order_Shipment_Track();
                 $track->setNumber($tracking_num)->setCarrierCode($Carrier)->setTitle('Shipment');
                 $shipment->addTrack($track)->save();
             }
         }
         //parcourt les champs
         foreach ($data as $cle => $value) {
             $t = explode('_', $cle);
             if (strpos($cle, 'omments') >= 1) {
                 //recupere les infos
                 $OrderItemId = $t[1];
                 $OrderItem = mage::getModel('sales/order_item')->load($OrderItemId);
                 $Comments = $value;
                 //met a jour
                 $OrderItem->setcomments($Comments)->save();
             }
         }
         //confirme
         Mage::getSingleton('adminhtml/session')->addSuccess($this->__('Changes successfully saved'));
     } catch (Exception $ex) {
         Mage::getSingleton('adminhtml/session')->addError($this->__('An error occured while saving changes: ') . $ex->getMessage() . ' ' . $ex->getTraceAsString());
     }
     //redirige
     $this->_redirect('adminhtml/sales_order/view', array('order_id' => $order_id));
 }
Ejemplo n.º 15
0
 /**
  * @dataProvider isCustomDataProvider
  * @param bool $expectedResult
  * @param string $carrierCodeToSet
  */
 public function testIsCustom($expectedResult, $carrierCodeToSet)
 {
     $this->_model->setCarrierCode($carrierCodeToSet);
     $this->assertEquals($expectedResult, $this->_model->isCustom());
 }
Ejemplo n.º 16
0
 public function getMagentoOrderEntityIdForTrackingObject(Mage_Sales_Model_Order_Shipment_Track $shipmentTrackingObject)
 {
     $magento_order_id = $shipmentTrackingObject->getOrderId();
     if (!empty($magento_order_id)) {
         // This should always be set for a tracking object which has been persisted to the database
         return $magento_order_id;
     }
     // Handle cases where the order_id is not set
     $shipmentObject = $shipmentTrackingObject->getShipment();
     if (is_object($shipmentObject) && $shipmentObject->getId()) {
         return $shipmentObject->getOrderId();
     }
     return null;
 }