/** @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;
     }
 }
Beispiel #3
0
 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;
    }