/** * 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"])); }