示例#1
0
 /**
  * Helper function which creates all variants for
  * the passed groups with options.
  *
  * @param $groups
  * @param null $numberPrefix
  * @param array $data
  * @return array
  */
 private function generateVariants($groups, $numberPrefix = null, $data = array())
 {
     $options = array();
     foreach ($groups as $group) {
         $groupOptions = array();
         foreach ($group['options'] as $option) {
             $groupOptions[] = array('groupId' => $group['id'], 'option' => $option['name']);
         }
         $options[] = $groupOptions;
     }
     $combinations = $this->combinations($options);
     $combinations = $this->cleanUpCombinations($combinations);
     $variants = array();
     $count = 1;
     if (!$numberPrefix) {
         $numberPrefix = 'Unit-Test-Variant-';
     }
     $this->db->executeQuery("DELETE FROM s_articles_details WHERE ordernumber LIKE ?", array($numberPrefix . '%'));
     foreach ($combinations as $combination) {
         $variantData = array_merge(array('number' => $numberPrefix . $count), $data);
         $variant = $this->getVariantData($variantData);
         $variant['configuratorOptions'] = $combination;
         $variants[] = $variant;
         $count++;
     }
     return $variants;
 }
 /**
  * This function updates a specific database record for a configurator set.
  * @param array $configurator
  */
 private function updateConfiguratorSet($configurator)
 {
     $sql = "UPDATE s_article_configurator_sets SET\n                type=:setType\n                WHERE id=:id";
     $this->db->executeQuery($sql, array("setType" => $configurator['configSetType'], "id" => $configurator["configSetId"]));
 }