/** * Populate Product Template Model with data * @param Product Template object $model * @param int $counter */ public function populateModelData(&$model, $counter) { assert('$model instanceof ProductTemplate'); parent::populateModel($model); $productTemplateRandomData = self::getProductTemplatesRandomData(); $name = $productTemplateRandomData['names'][$counter]; $productCategoryName = self::getProductCategoryForTemplate($name); $allCats = ProductCategory::getAll(); foreach ($allCats as $category) { if ($category->name == $productCategoryName) { $categoryId = $category->id; } } $productCategory = ProductCategory::getById($categoryId); $model->name = $name; $model->productCategories->add($productCategory); $model->priceFrequency = 2; $model->cost->value = 200; $model->listPrice->value = 200; $model->sellPrice->value = 200; $model->status = ProductTemplate::STATUS_ACTIVE; $model->type = ProductTemplate::TYPE_PRODUCT; $sellPriceFormula = new SellPriceFormula(); $sellPriceFormula->type = SellPriceFormula::TYPE_EDITABLE; $model->sellPriceFormula = $sellPriceFormula; }
/** * Resolve the product categories from prost * @param ProductTemplate $productTemplate * @param array $postData * @return array */ public static function resolveProductTemplateHasManyProductCategoriesFromPost(ProductTemplate $productTemplate, $postData) { $newCategory = array(); if (isset($postData['categoryIds']) && strlen($postData['categoryIds']) > 0) { $categoryIds = explode(",", $postData['categoryIds']); // Not Coding Standard foreach ($categoryIds as $categoryId) { $newCategory[$categoryId] = ProductCategory::getById((int) $categoryId); } if ($productTemplate->productCategories->count() > 0) { $categoriesToRemove = array(); foreach ($productTemplate->productCategories as $index => $existingCategory) { $categoriesToRemove[] = $existingCategory; } foreach ($categoriesToRemove as $categoryToRemove) { $productTemplate->productCategories->remove($categoryToRemove); } } //Now add missing categories foreach ($newCategory as $category) { $productTemplate->productCategories->add($category); } } else { //remove all categories $productTemplate->productCategories->removeAll(); } return $newCategory; }
public function actionEdit($id, $redirectUrl = null) { $productCategory = ProductCategory::getById(intval($id)); $breadcrumbLinks = static::getDetailsAndEditBreadcrumbLinks(); $breadcrumbLinks[] = StringUtil::getChoppedStringContent(strval($productCategory), 25); $view = new ProductCategoriesPageView(ProductDefaultViewUtil::makeViewWithBreadcrumbsForCurrentUser($this, $this->makeEditAndDetailsView($this->attemptToSaveModelFromPost($productCategory, $redirectUrl), 'Edit'), $breadcrumbLinks, 'ProductBreadCrumbView')); echo $view->render(); }
public function testChildProductCategories() { $childProductCategory = new ProductCategory(); $childProductCategory->name = "My Test Category Child"; $existingCats = ProductCategory::getByName('My Test Category'); $childProductCategory->productCategory = $existingCats[0]; $this->assertTrue($childProductCategory->save()); $id = $childProductCategory->id; unset($childProductCategory); $childProductCategory = ProductCategory::getById($id); $this->assertEquals("My Test Category Child", $childProductCategory->name); $this->assertEquals("My Test Category", $existingCats[0]->name); }
public function testSuperUserDeleteAction() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); Yii::app()->user->userModel = $super; $productCategory = ProductCategoryTestHelper::createProductCategoryByName("My New Category"); //Delete a product template $this->setGetArray(array('id' => $productCategory->id)); $this->resetPostArray(); $productCategories = ProductCategory::getAll(); $this->assertEquals(14, count($productCategories)); $this->runControllerWithRedirectExceptionAndGetContent('productTemplates/category/delete'); $productCategories = ProductCategory::getAll(); $this->assertEquals(13, count($productCategories)); try { ProductCategory::getById($productCategory->id); $this->fail(); } catch (NotFoundException $e) { //success } }