public function prepareProductCollection($collection) { parent::prepareProductCollection($collection); $query = Mage::helper('catalogsearch')->getQuery(); $queryText = trim($query->getQueryText()); do { $temp = $queryText; $queryText = str_replace(' ', ' ', $queryText); } while ($temp != $queryText); // $words = addslashes(str_replace(' ', ',', $queryText)); $words = explode(' ', $queryText); $joinCondition = array(); foreach (Vikont_Pulliver_Helper_Sku::getDistributorFieldNames() as $dFieldName) { foreach ($words as $word) { $joinCondition[] = "pn.d_{$dFieldName}='" . addslashes($word) . "'"; } } /* $collection->getSelect() ->joinLeft( array('pn' => Mage::getSingleton('core/resource')->getTableName('oemdb/sku')), 'e.sku = pn.sku AND (' . implode(' OR ', $joinCondition) . ')', null, (string) Mage::getConfig()->getNode('global/resources/oemdb_database/connection/dbname') ); /**/ //sql($collection); //die; return $this; }
public static function loadMagentoIds($attributeCode) { $attribute = Mage::getSingleton('eav/config')->getAttribute(Mage_Catalog_Model_Product::ENTITY, $attributeCode); $values = Vikont_Pulliver_Helper_Db::getTableValues($attribute->getBackendTable(), array('value', 'entity_id'), array('store_id=0', 'attribute_id=' . $attribute->getAttributeId()), 10); self::$_itemNumbers2ids = array(); foreach ($values as $value) { self::$_itemNumbers2ids[$value['entity_id']] = $value['value']; } unset($values); $values = Vikont_Pulliver_Helper_Db::getTableValues('catalog/product', array('entity_id', 'sku')); self::$_skus2ids = array(); foreach ($values as $value) { self::$_skus2ids[$value['entity_id']] = $value['sku']; } unset($values); }
/** * Render the grid cell value * * @param Varien_Object $row * @return string */ public function render(Varien_Object $row) { $html = $row->getData($this->getColumn()->getIndex()); if ($partNumber = $this->getFilteredValue('part_number')) { $distribs = array(); foreach (Vikont_Pulliver_Helper_Sku::getDistributorFieldNames() as $dCode => $dField) { $dNumbers = explode(',', $row->getData('gd_' . $dField)); foreach ($dNumbers as $dNumber) { if ($partNumber == $dNumber) { $distribs[] = '<span class="pulliver-distribs-part-number">' . htmlspecialchars($dCode) . '</span>'; break; } } } $html .= '<div class="pulliver-distribs">' . implode(',', $distribs) . '</div>'; } return $html; }
protected function _prepareCollection() { $this->_prepareCollectionBefore(); $filter = $this->getParam($this->getVarNameFilter(), null); $data = $this->helper('adminhtml')->prepareFilterString($filter); if (isset($data['part_number'])) { $partNumber = addslashes($data['part_number']); $joinCondition = array(); $extraFields = array(); foreach (Vikont_Pulliver_Helper_Sku::getDistributorFieldNames() as $dFieldName) { $joinCondition[] = "pn.d_{$dFieldName}='{$partNumber}'"; $extraFields['gd_' . $dFieldName] = new Zend_Db_Expr('GROUP_CONCAT(d_' . $dFieldName . ')'); } $this->getCollection()->getSelect()->joinInner(array('pn' => Mage::getSingleton('core/resource')->getTableName('oemdb/sku')), 'e.sku = pn.sku AND (' . implode(' OR ', $joinCondition) . ')', $extraFields, (string) Mage::getConfig()->getNode('global/resources/oemdb_database/connection/dbname')); } $this->_prepareCollectionAfter(); return $this; }
<?php ini_set('memory_limit', '2048M'); ini_set('max_execution_time', '600'); set_time_limit(0); $mageRoot = dirname(dirname(getcwd())); require $mageRoot . '/Vic.php'; require $mageRoot . '/app/Mage.php'; Mage::app('admin')->setUseSessionInUrl(false); umask(0); // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Vikont_Pulliver_Model_Log::setLogFileName('pulliver.log'); Vikont_Pulliver_Helper_Data::setSilentExceptions(true); $commonHelper = Mage::helper('pulliver'); $moduleHelper = Mage::helper('pulliver/LightSpeed'); $skuHelper = Mage::helper('pulliver/Sku'); //vd(Vikont_Pulliver_Helper_Sku::getSkuByItemNumber('punlim', '4010-0075')); vd(Vikont_Pulliver_Helper_Sku::getSkuByItemNumber('FX', '01179-001-S'));
Vikont_Pulliver_Helper_Data::throwException(sprintf('No %s file found in the downloaded archive %s at %s', $priceFileName, $downloadedFileName, $dirName)); } } else { Vikont_Pulliver_Helper_Data::inform(sprintf('Skipped downloading and extracting, using local file %s', $inventoryFileName)); } $update = $moduleHelper->parseFile($inventoryFileName); if ($dumpParsedFileName = $params->getData('dump_parsed_file')) { $dumpParsedFileName = $moduleHelper->getLocalFileName($dumpParsedFileName); $fHandle = $commonHelper->openFile($dumpParsedFileName); foreach ($update as $qtys) { fputcsv($fHandle, $qtys); } fclose($fHandle); Vikont_Pulliver_Helper_Data::inform(sprintf('Successfully created a dump of parsed file %s', $dumpParsedFileName)); } $outputFileName = $moduleHelper->getLocalFileName('inventory.csv'); $fileHandle = $commonHelper->openFile($outputFileName); $lineCounter = 0; foreach ($update as $qtys) { if ($sku = Vikont_Pulliver_Helper_Sku::getSkuByItemNumber('PU', $qtys[0])) { $qtys[0] = $sku; fputcsv($fileHandle, $qtys); $lineCounter++; } } fclose($fileHandle); Vikont_Pulliver_Helper_Data::inform(sprintf('Successfully created file %s, %d lines processed, %d lines added', $outputFileName, count($update), $lineCounter)); } catch (Exception $e) { Mage::logException($e); Vikont_Pulliver_Helper_Data::inform($e->getMessage()); }
break; } Vikont_Pulliver_Helper_Data::inform(sprintf("Data decoded successfully, %d rows have been read", count($data))); } else { Vikont_Pulliver_Helper_Data::inform('ERROR: could not decode inventory'); continue; } // file stuff $outputFileName = $moduleHelper->getLocalFileName('lightspeed-' . $vendor . '.csv'); $fileHandle = $commonHelper->openFile($outputFileName); // $tmsReviewFileName = $moduleHelper->getLocalFileName('review-'.$vendor.'.csv'); // $reviewFileNeedsHeader = !(file_exists($tmsReviewFileName) && filesize($tmsReviewFileName)); $tmsReviewFileName = $moduleHelper->getLocalFileName('review-' . $vendor . '-' . time() . '.csv'); $reviewFileNeedsHeader = true; $tmsReviewFileHandle = null; $distributorFieldNames = Vikont_Pulliver_Helper_Sku::getDistributorFieldNames(); $lineCounter = 0; foreach ($data as $item) { if ($sku = $skuHelper->getSkuByItemNumber($item['SupplierCode'], $item['PartNumber'])) { fputcsv($fileHandle, array($sku, $item['Avail'])); $lineCounter++; } else { if ($isWarehouse && $moduleHelper->productIsOEM($item)) { $skuHelper->updateOEMtable($item, $isWarehouse); } else { if (!$tmsReviewFileHandle) { $tmsReviewFileHandle = fopen($tmsReviewFileName, 'ab'); if ($reviewFileNeedsHeader) { fputcsv($tmsReviewFileHandle, array_keys($item)); $reviewFileNeedsHeader = false; }