public function testSetGetNumber() { $this->assertNull($this->_model->getNumber()); $this->_model->setNumber('test'); $this->assertEquals('test', $this->_model->getNumber()); $this->assertEquals('test', $this->_model->getTrackNumber()); }
/** * 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; }
/** * 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)); }