コード例 #1
0
 /**
  * @param Varien_Controller_Action
  * @param Mage_Catalog_Model_Product
  */
 protected function doAddBoltPatterns($controller, Elite_Vaf_Model_Catalog_Product $product)
 {
     $VFproduct = new VF_Product();
     $VFproduct->setId($product->getId());
     $wheelProduct = new VF_Wheel_Catalog_Product($VFproduct);
     $wheelProduct->removeBoltPatterns();
     /** @todo get under test */
     if (isset($_FILES['boltpatterncsv']) && $_FILES['boltpatterncsv']['tmp_name'] && $_FILES['boltpatterncsv']['error'] == 0) {
         $importer = new VF_Wheel_Catalog_Product_Import($_FILES['boltpatterncsv']['tmp_name']);
         $importer->import();
     } else {
         $patterns = $controller->getRequest()->getParam('wheel_side_pattern') ? $controller->getRequest()->getParam('wheel_side_pattern') : $controller->getRequest()->getParam('multipatterns');
         $patterns = explode("\n", $patterns);
         foreach ($patterns as $k => $pattern) {
             $pattern = str_replace("\r", '', $pattern);
             if (!trim($pattern)) {
                 return;
             }
             $boltPattern = VF_Wheel_BoltPattern::create($pattern);
             if (!is_array($boltPattern)) {
                 $boltPattern = array($boltPattern);
             }
             foreach ($boltPattern as $each) {
                 $wheelProduct->addBoltPattern($each);
             }
         }
     }
 }
コード例 #2
0
 function importRow($row)
 {
     $sku = $this->getFieldValue('sku', $row);
     $productId = $this->productId($sku);
     $product = new VF_Wheel_Catalog_Product(new VF_Product());
     $product->setId($productId);
     $boltPattern = $this->wheelSize($row);
     $product->addBoltPattern($boltPattern);
 }
コード例 #3
0
 function testAddsAndRemovesBoltPattern()
 {
     $this->setRequestParams(array('multipatterns' => "4x114.3\n5x114.3"));
     $binder = new Elite_Vafwheel_Observer_ProductBoltBinder();
     $product = new Elite_Vaf_Model_Catalog_Product();
     $product->setId(1);
     $event = $this->event($product);
     $binder->addBoltPatterns($event);
     $VFproduct = new VF_Product();
     $VFproduct->setId($product->getId());
     $wheelProduct = new VF_Wheel_Catalog_Product($VFproduct);
     $this->assertEquals(2, count($wheelProduct->getBoltPatterns()));
     $this->setRequestParams(array('wheel_side_pattern' => "4x114.3"));
     $binder = new Elite_Vafwheel_Observer_ProductBoltBinder();
     $product = new Elite_Vaf_Model_Catalog_Product();
     $product->setId(1);
     $event = $this->event($product);
     $binder->addBoltPatterns($event);
     $VFproduct = new VF_Product();
     $VFproduct->setId($product->getId());
     $wheelProduct = new VF_Wheel_Catalog_Product($VFproduct);
     $this->assertEquals(1, count($wheelProduct->getBoltPatterns()), 'removes previously added bolt patterns');
 }
コード例 #4
0
ファイル: ProductTest.php プロジェクト: vehiclefits/library
 function testShouldImport()
 {
     $data = '"sku","lug_count","bolt_distance"' . "\n";
     $data .= '"sku","4","144.3"';
     $file = TEMP_PATH . '/product-wheel-sizes.csv';
     file_put_contents($file, $data);
     $this->insertProduct('sku');
     $importer = new VF_Wheel_Catalog_Product_ImportTests_TestSubClass($file);
     $importer->import();
     $product = $this->getVFProductForSku('sku');
     $product = new VF_Wheel_Catalog_Product($product);
     $boltPatterns = $product->getBoltPatterns();
     $this->assertEquals(4, $boltPatterns[0]->getLugCount(), 'should set lug_count');
     $this->assertEquals(144.3, $boltPatterns[0]->getDistance(), 'should set bolt distance');
 }