/** @todo move/rename this to definition finder -> find all in use() method */ function getDefinitions($perPage = false, $offset = false, $productId = null) { $return = array(); $vehicleFinder = new VF_Vehicle_Finder($this->getSchema()); $vehicles = $this->doGetDefinitions($perPage, $offset, $productId); foreach ($vehicles as $vehicleStdClass) { $vehicle = $vehicleFinder->findOneByLevelIds($vehicleStdClass, VF_Vehicle_Finder::EXACT_ONLY); array_push($return, $vehicle); } return $return; }
function saveAction() { $dataToSave = $this->requestLevels(); $vehiclesFinder = new \VF_Vehicle_Finder(new \VF_Schema()); $vehicle = $vehiclesFinder->findOneByLevelIds($dataToSave, \VF_Vehicle_Finder::INCLUDE_PARTIALS); if ($vehicle) { $dataToSave = $vehicle->toTitleArray(); } else { $dataToSave = array(); } $dataToSave[$this->params()->fromQuery('entity')] = $this->params()->fromQuery('title'); $vehicle = \VF_Vehicle::create(new \VF_Schema(), $dataToSave); $vehicle->save(); if (1 || $this->getRequest()->isXmlHttpRequest()) { echo $vehicle->getValue($this->params()->fromQuery('entity')); exit; } }
function getFlexibleDefinition() { $this->storeFitInSession(); try { $level = $this->getLevel(); $selectedVehicles = $this->vehicleSelection(); if (!count($selectedVehicles)) { return false; } $selectedVehicle = $selectedVehicles[0]; $levelObj = $selectedVehicle->getLevel($level); if (!$level || !$levelObj || !$levelObj->getId()) { return false; } $vehicleFinder = new VF_Vehicle_Finder($this->schema()); $vehicle = $vehicleFinder->findOneByLevelIds($this->vehicleRequestParams()); } catch (VF_Exception_DefinitionNotFound $e) { return false; } return $vehicle; }
function saveAction() { $schema = new VF_Schema($this->getRequest()->getParam('schema')); $dataToSave = $this->requestLevels(); $vehiclesFinder = new VF_Vehicle_Finder($schema); $vehicle = $vehiclesFinder->findOneByLevelIds($dataToSave, VF_Vehicle_Finder::INCLUDE_PARTIALS); if ($vehicle) { $dataToSave = $vehicle->toTitleArray(); } else { $dataToSave = array(); } $dataToSave[$this->getRequest()->getParam('entity')] = $this->getRequest()->getParam('title'); $vehicle = VF_Vehicle::create($schema, $dataToSave); $vehicle->save(); if ($this->getRequest()->isXmlHttpRequest()) { echo $vehicle->getValue($this->getRequest()->getParam('entity')); exit; } $this->doSave(); }
/** * Create duplicate * * @return Mage_Catalog_Model_Product */ function duplicate() { $schema = new VF_Schema(); $vehicleFinder = new VF_Vehicle_Finder($schema); $leaf = $schema->getLeafLevel() . '_id'; $newProduct = parent::duplicate(); foreach ($this->getFits() as $fit) { // 2.x has a bug that it inserts blank fitments, which prevents duplicating products here. Simple workaround for 2.x if (!$fit->{$leaf}) { continue; } $levelIDs = array(); foreach ($schema->getLevels() as $level) { $levelIDs[$level . '_id'] = $fit->{$level . '_id'}; } $vehicle = $vehicleFinder->findOneByLevelIds($levelIDs); if (is_object($vehicle)) { $newProduct->insertMapping($vehicle); } } if ($this->isUniversal()) { $newProduct->setUniversal(true); } return $newProduct; }
function getFlexibleDefinition() { $this->storeFitInSession(); try { $level = $this->getLevel(); $vehicle = $this->vehicleSelection(); if (!$vehicle) { return false; } $levelObj = $vehicle->getLevel($level); if (!$level || !$levelObj || !$levelObj->getId()) { return false; } $vehicleFinder = new VF_Vehicle_Finder($this->schema()); $vehicle = $vehicleFinder->findOneByLevelIds($this->getRequestValues()); } catch (Elite_Vaf_Exception_DefinitionNotFound $e) { return false; } return $vehicle; }