/**
  * @param Varien_Controller_Action
  * @param Mage_Catalog_Model_Product
  */
 protected function doAddBoltPatterns($controller, Elite_Vaf_Model_Catalog_Product $product)
 {
     $wheelProduct = new Elite_Vafwheel_Model_Catalog_Product($product);
     $wheelProduct->removeBoltPatterns();
     /** @todo get under test */
     if (isset($_FILES['boltpatterncsv']) && $_FILES['boltpatterncsv']['tmp_name'] && $_FILES['boltpatterncsv']['error'] == 0) {
         $importer = new Elite_Vafwheel_Model_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 = Elite_Vafwheel_Model_BoltPattern::create($pattern);
             if (!is_array($boltPattern)) {
                 $boltPattern = array($boltPattern);
             }
             foreach ($boltPattern as $each) {
                 $wheelProduct->addBoltPattern($each);
             }
         }
     }
 }
 function wheelSize($row)
 {
     $lugCount = $this->getFieldValue('lug_count', $row);
     $boltDistance = $this->getFieldValue('bolt_distance', $row);
     $offset = $this->getFieldValue('offset', $row);
     return Elite_Vafwheel_Model_BoltPattern::create($lugCount . 'x' . $boltDistance, $offset);
 }
 function testFindsMatchingProduct()
 {
     $bolt = Elite_Vafwheel_Model_BoltPattern::create('4x114.3');
     $product = $this->newWheelProduct(1);
     $product->addBoltPattern($bolt);
     $this->assertEquals(array(1), $this->wheelFinder()->getProductIds($bolt), 'should find products with this bolt pattern');
 }
 /**
  * @param array $row
  * @param VF_Vehicle|boolean the vehicle, false if none (for example, when setting a product as universal)
  */
 function doImportRow($row, $vehicle)
 {
     $boltPattern = $this->getFieldValue('bolt_pattern', $row);
     $offset = $this->getFieldValue('offset', $row);
     $boltPattern = Elite_Vafwheel_Model_BoltPattern::create($boltPattern, $offset);
     $wheelDefinition = new Elite_Vafwheel_Model_Vehicle($vehicle);
     $wheelDefinition->addBoltPattern($boltPattern);
 }
 /**
  * @param Varien_Controller_Action
  * @param Mage_Catalog_Model_Product
  */
 function doBindWheelSide($controller, Elite_Vaf_Model_Catalog_Product $product)
 {
     $wheeladapterProduct = new Elite_Vafwheeladapter_Model_Catalog_Product($product);
     $pattern = $controller->getRequest()->getParam('wheel_side_pattern');
     if (!$pattern) {
         return $wheeladapterProduct->unsetWheelSideBoltPattern();
     }
     $boltPattern = Elite_Vafwheel_Model_BoltPattern::create($pattern);
     $wheeladapterProduct->setWheelSideBoltPattern($boltPattern);
 }
	function testShouldDeleteBoltPatterns_WhenDeletingYear()
	{
		$vehicle = $this->createMMY('Honda','Civic','2000');
		$vehicle = new Elite_Vafwheel_Model_Vehicle($vehicle);
		$vehicle->addBoltPattern(Elite_Vafwheel_Model_BoltPattern::create('4x114.3'));
		
		$vehicle->getLevel('year')->delete();
		                                                                                                                
		$result = $this->query('select count(*) from elite_definition_wheel where leaf_id = '.$vehicle->getValue('year'));
		$this->assertEquals( 0, $result->fetchColumn(), 'should delete wheel record when deleting a year' );
	}
 function getWheelSideBoltPattern()
 {
     if (!$this->getId()) {
         return false;
     }
     $select = $this->getReadAdapter()->select()->from('elite_product_wheeladapter')->where('entity_id=?', $this->getId())->limit(1);
     $result = $select->query();
     $row = $result->fetchObject();
     if (!$row) {
         return false;
     }
     return Elite_Vafwheel_Model_BoltPattern::create($row->lug_count . 'x' . $row->bolt_distance);
 }
 function getBoltPatterns()
 {
     if (!$this->getId()) {
         return array();
     }
     $select = $this->getReadAdapter()->select()->from('elite_product_wheel')->where('entity_id=?', $this->getId());
     $result = $select->query();
     $return = array();
     while ($row = $result->fetchObject()) {
         $bolt = Elite_Vafwheel_Model_BoltPattern::create($row->lug_count . 'x' . $row->bolt_distance, $row->offset);
         array_push($return, $bolt);
     }
     $result->closeCursor();
     return $return;
 }
 function testOffsetThresholdMaximum()
 {
     $bolt = Elite_Vafwheel_Model_BoltPattern::create('4x114.3', 20);
     $this->assertEquals(25, $bolt->offsetMax());
 }
 function boltPattern()
 {
     return Elite_Vafwheel_Model_BoltPattern::create($this->boltString());
 }
 function vehicleBolt()
 {
     $vehicleBoltString = $this->vehicleSideLugCount() . 'x' . $this->vehicleSideStudSpread();
     return Elite_Vafwheel_Model_BoltPattern::create($vehicleBoltString);
 }
 function boltPattern($boltPatternString, $offset = null)
 {
     return Elite_Vafwheel_Model_BoltPattern::create($boltPatternString, $offset);
 }