/** * Upload store csv file and import data from it * * @throws Mage_Core_Exception * @param Varien_Object $object * @return Bluehorse_Storelocator_Model_Storelocator */ public function uploadAndImport($object) { $this->_behavior = $object->getRequest()->getPost('behavior'); $importFile = $_FILES['import_file']; if (empty($importFile['tmp_name'])) { return; } $csvFile = $importFile['tmp_name']; $this->_importErrors = array(); $this->_importedRows = 0; $io = new Varien_Io_File(); $info = pathinfo($csvFile); $io->open(array('path' => $info['dirname'])); $io->streamOpen($info['basename'], 'r'); // check and skip headers $headers = $io->streamReadCsv(); if ($headers === false || count($headers) < 19) { $io->streamClose(); Mage::throwException(Mage::helper('bluehorse_storelocator')->__('Invalid Stores File Format')); } $adapter = $this->_getWriteAdapter(); $adapter->beginTransaction(); try { $rowNumber = 1; $importData = array(); while (false !== ($csvLine = $io->streamReadCsv())) { $rowNumber++; if (empty($csvLine)) { continue; } $row = $this->_getImportRow($csvLine, $rowNumber); if ($row !== false) { $importData[] = $row; } if (count($importData) == 5000) { $this->_saveImportData($importData); $importData = array(); } } if ($this->_importErrors) { $error = Mage::helper('bluehorse_storelocator')->__('File has not been imported. See the following list of errors: <br>%s', implode(" <br>", $this->_importErrors)); Mage::throwException($error); } if (empty($this->_importErrors)) { $this->_saveImportData($importData); } $io->streamClose(); } catch (Mage_Core_Exception $e) { $adapter->rollback(); $io->streamClose(); Mage::throwException($e->getMessage()); } catch (Exception $e) { $adapter->rollback(); $io->streamClose(); Mage::logException($e); Mage::throwException(Mage::helper('bluehorse_storelocator')->__('An error occurred while import stores csv.')); } $adapter->commit(); //add success message Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('bluehorse_storelocator')->__($this->_importedRows . ' - Rows imported successfully.')); return $this; }
/** * add DHL account number to Intraship request * * @param Varien_Object $event * @return void */ public function dhlIntrashipSendShipmentBefore($event) { $request = $event->getRequest(); $parcel = $request->offsetGet('shipment'); $dhlaccount = $parcel->getShipment()->getBillingAddress()->getDhlaccount(); if (!is_null($parcel->getShipment()->getShippingAddress()->getDhlaccount())) { $dhlaccount = $parcel->getShipment()->getShippingAddress()->getDhlaccount(); } if ($parcel->hasCustomizedAddress()) { $dhlaccount = $parcel->getCustomizedAddress()->offsetGet('dhlaccount'); } if (0 < strlen($dhlaccount)) { $params = $request->offsetGet('params'); $data = $params->offsetGet('ShipmentOrder'); if (array_key_exists('Company', $data['Shipment']['Receiver']['Company']) && (false == array_key_exists('name2', $data['Shipment']['Receiver']['Company']['Company']) || 0 == strlen(trim($data['Shipment']['Receiver']['Company']['Company']['name2'])))) { $data['Shipment']['Receiver']['Company']['Company']['name2'] = $dhlaccount; } elseif (false == array_key_exists('Communication', $data['Shipment']['Receiver']) || false == array_key_exists('contactPerson', $data['Shipment']['Receiver']['Communication']) || 0 == strlen(trim($data['Shipment']['Receiver']['Communication']['contactPerson']))) { if (false == array_key_exists('Communication', $data['Shipment']['Receiver'])) { $data['Shipment']['Receiver']['Communication'] = array(); } $data['Shipment']['Receiver']['Communication']['contactPerson'] = $dhlaccount; } elseif (false == array_key_exists('careOfName', $data['Shipment']['Receiver']['Address']) || 0 == strlen(trim($data['Shipment']['Receiver']['Address']['careOfName']))) { $data['Shipment']['Receiver']['Address']['careOfName'] = $dhlaccount; } $request->offsetGet('params')->offsetSet('ShipmentOrder', $data); } }