public function testResolveProductTemplateHasManyProductCategoriesFromPost() { $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; $category1 = ProductCategoryTestHelper::createProductCategoryByName('Test Product Category'); $category2 = ProductCategoryTestHelper::createProductCategoryByName('Test Product Category2'); $productTemplate = ProductTemplateTestHelper::createProductTemplateByName('PT1'); $postData = array('categoryIds' => $category1->id . ',' . $category2->id); // Not Coding Standard $id = $productTemplate->id; $productTemplate->forget(); unset($productTemplate); $productTemplate = ProductTemplate::getById($id); $categories = ProductTemplateProductCategoriesUtil::resolveProductTemplateHasManyProductCategoriesFromPost($productTemplate, $postData); $this->assertEquals(count($categories), 2); $this->assertEquals($categories[$category1->id]->id, $category1->id); }
public function populateModelData(&$model, $counter, $name) { assert('$model instanceof Product'); parent::populateModel($model); $productTemplateName = self::getProductTemplateForProduct($name); $allTemplates = ProductTemplate::getAll(); foreach ($allTemplates as $template) { if ($template->name == $productTemplateName) { $templateId = $template->id; } } $productTemplate = ProductTemplate::getById($templateId); $model->name = $name; $model->quantity = mt_rand(1, 95); $model->productTemplate = $productTemplate; $model->stage->value = 'Open'; $model->priceFrequency = $productTemplate->priceFrequency; $model->sellPrice->value = $productTemplate->sellPrice->value; $model->type = $productTemplate->type; }
/** * @depends testEditOfTheProductTemplateForTheTagCloudFieldAfterRemovingAllTagsPlacedForProductTemplatesModule */ public function testEditOfTheProductTemplateForTheCustomFieldsPlacedForProductTemplatesModule() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); //Set the date and datetime variable values here. $date = Yii::app()->dateFormatter->format(DateTimeUtil::getLocaleDateFormatForInput(), time()); $dateAssert = date('Y-m-d'); $datetime = Yii::app()->dateFormatter->format(DateTimeUtil::getLocaleDateTimeFormatForInput(), time()); $datetimeAssert = date('Y-m-d H:i:') . "00"; $baseCurrency = Currency::getByCode(Yii::app()->currencyHelper->getBaseCode()); //Retrieve the account id, the super user id and opportunity Id. $superUserId = $super->id; $productTemplate = ProductTemplate::getByName('myEditProductTemplate'); $productTemplateId = $productTemplate[0]->id; //Edit a new ProductTemplate based on the custom fields. $this->setGetArray(array('id' => $productTemplateId)); $this->setPostArray(array('ProductTemplate' => array('name' => 'myEditProductTemplate', 'type' => ProductTemplate::TYPE_PRODUCT, 'description' => 'Test Description', 'sellPrice' => array('currency' => array('id' => $baseCurrency->id), 'value' => 200), 'cost' => array('currency' => array('id' => $baseCurrency->id), 'value' => 200), 'listPrice' => array('currency' => array('id' => $baseCurrency->id), 'value' => 200), 'priceFrequency' => 2, 'status' => ProductTemplate::STATUS_ACTIVE, 'sellPriceFormula' => array('type' => SellPriceFormula::TYPE_EDITABLE), 'checkboxCstm' => '0', 'currencyCstm' => array('value' => 40, 'currency' => array('id' => $baseCurrency->id)), 'decimalCstm' => '12', 'dateCstm' => $date, 'datetimeCstm' => $datetime, 'picklistCstm' => array('value' => 'b'), 'multiselectCstm' => array('values' => array('gg', 'hh')), 'tagcloudCstm' => array('values' => array('reading', 'surfing')), 'countrylistCstm' => array('value' => 'aaaa'), 'statelistCstm' => array('value' => 'aaa1'), 'citylistCstm' => array('value' => 'ab1'), 'integerCstm' => '11', 'phoneCstm' => '259-784-2069', 'radioCstm' => array('value' => 'e'), 'textCstm' => 'This is a test Edit Text', 'textareaCstm' => 'This is a test Edit TextArea', 'urlCstm' => 'http://wwww.abc-edit.com'))); $this->runControllerWithRedirectExceptionAndGetUrl('productTemplates/default/edit'); //Check the details if they are saved properly for the custom fields. $productTemplateId = self::getModelIdByModelNameAndName('ProductTemplate', 'myEditProductTemplate'); $productTemplate = ProductTemplate::getById($productTemplateId); $this->assertEquals($productTemplate->name, 'myEditProductTemplate'); $this->assertEquals($productTemplate->sellPrice->value, 200.0); $this->assertEquals($productTemplate->cost->value, 200.0); $this->assertEquals($productTemplate->listPrice->value, 200.0); $this->assertEquals($productTemplate->description, 'Test Description'); $this->assertEquals($productTemplate->type, ProductTemplate::TYPE_PRODUCT); $this->assertEquals($productTemplate->status, ProductTemplate::STATUS_ACTIVE); $this->assertEquals($productTemplate->priceFrequency, 2); $this->assertEquals($productTemplate->sellPriceFormula->type, SellPriceFormula::TYPE_EDITABLE); $this->assertEquals($productTemplate->checkboxCstm, '0'); $this->assertEquals($productTemplate->currencyCstm->value, 40); $this->assertEquals($productTemplate->currencyCstm->currency->id, $baseCurrency->id); $this->assertEquals($productTemplate->dateCstm, $dateAssert); $this->assertEquals($productTemplate->datetimeCstm, $datetimeAssert); $this->assertEquals($productTemplate->decimalCstm, '12'); $this->assertEquals($productTemplate->picklistCstm->value, 'b'); $this->assertEquals($productTemplate->integerCstm, 11); $this->assertEquals($productTemplate->phoneCstm, '259-784-2069'); $this->assertEquals($productTemplate->radioCstm->value, 'e'); $this->assertEquals($productTemplate->textCstm, 'This is a test Edit Text'); $this->assertEquals($productTemplate->textareaCstm, 'This is a test Edit TextArea'); $this->assertEquals($productTemplate->urlCstm, 'http://wwww.abc-edit.com'); $this->assertEquals($productTemplate->dateCstm, $dateAssert); $this->assertEquals($productTemplate->datetimeCstm, $datetimeAssert); $this->assertEquals($productTemplate->countrylistCstm->value, 'aaaa'); $this->assertEquals($productTemplate->statelistCstm->value, 'aaa1'); $this->assertEquals($productTemplate->citylistCstm->value, 'ab1'); $this->assertContains('gg', $productTemplate->multiselectCstm->values); $this->assertContains('hh', $productTemplate->multiselectCstm->values); $this->assertContains('reading', $productTemplate->tagcloudCstm->values); $this->assertContains('surfing', $productTemplate->tagcloudCstm->values); $metadata = CalculatedDerivedAttributeMetadata::getByNameAndModelClassName('calcnumber', 'ProductTemplate'); $testCalculatedValue = CalculatedNumberUtil::calculateByFormulaAndModelAndResolveFormat($metadata->getFormula(), $productTemplate); $this->assertEquals(132, intval(str_replace(',', "", $testCalculatedValue))); // Not Coding Standard }
public function testProductTemplateCategories() { $user = UserTestHelper::createBasicUser('Steven 2'); $product = ProductTestHelper::createProductByNameForOwner('Product 1', $user); $productTemplate = ProductTemplateTestHelper::createProductTemplateByVariables($product, ProductTemplate::PRICE_FREQUENCY_ONE_TIME, ProductTemplate::TYPE_PRODUCT, ProductTemplate::STATUS_ACTIVE, SellPriceFormula::TYPE_EDITABLE); $productCategory = ProductCategoryTestHelper::createProductCategoryByName("Test Category"); $productCategoryII = ProductCategoryTestHelper::createProductCategoryByName("Test CategoryII"); $productTemplate->productCategories->add($productCategory); $productTemplate->productCategories->add($productCategoryII); $this->assertTrue($productTemplate->save()); $id = $productTemplate->id; $productTemplate->forget(); unset($productTemplate); $productTemplate = ProductTemplate::getById($id); $this->assertEquals($productCategory, $productTemplate->productCategories[0]); $this->assertEquals($productCategoryII, $productTemplate->productCategories[1]); }
/** * Copies the product template * @param int $id */ public function actionCopy($id) { $copyToProductTemplate = new ProductTemplate(); $postVariableName = get_class($copyToProductTemplate); if (!isset($_POST[$postVariableName])) { $productTemplate = ProductTemplate::getById((int) $id); ControllerSecurityUtil::resolveAccessCanCurrentUserReadModel($productTemplate); ProductZurmoCopyModelUtil::copy($productTemplate, $copyToProductTemplate); } $this->processEdit($copyToProductTemplate); }
public function testSuperUserCreateProductFromProductTemplateControllerAction() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); $products = Product::getAll(); $this->assertEquals(1, count($products)); $superProductTemplateId = self::getModelIdByModelNameAndName('ProductTemplate', 'My Product Template'); $productTemplate = ProductTemplate::getById($superProductTemplateId); $productCategory = ProductCategoryTestHelper::createProductCategoryByName("Test Category"); $productCategoryII = ProductCategoryTestHelper::createProductCategoryByName("Test CategoryII"); $productTemplate->productCategories->add($productCategory); $productTemplate->productCategories->add($productCategoryII); $productTemplate->save(); $superProductTemplateId = $productTemplate->id; $productTemplate->forget(); unset($productTemplate); $accountId = self::getModelIdByModelNameAndName('Account', 'superAccount'); $this->setGetArray(array('relationModuleId' => 'accounts', 'portletId' => '1', 'uniqueLayoutId' => 'AccountDetailsAndRelationsView_1', 'id' => $superProductTemplateId, 'relationModelId' => $accountId, 'relationAttributeName' => 'account', 'relationModelClassName' => 'Account', 'redirect' => '0')); $this->runControllerWithNoExceptionsAndGetContent('products/default/createProductFromProductTemplate', true); $products = Product::getAll(); $this->assertEquals(2, count($products)); $latestProduct = $products[1]; $productSavedCategory = $latestProduct->productCategories[0]; $productSavedCategoryII = $latestProduct->productCategories[1]; $this->assertEquals('Test Category', $productSavedCategory->name); $this->assertEquals('Test CategoryII', $productSavedCategoryII->name); $this->assertEquals('My Product Template', $latestProduct->name); $this->assertEquals(500.54, $latestProduct->sellPrice->value); //When created from contact should copy the contact account to product $contactId = self::getModelIdByModelNameAndName('Contact', 'superContact superContactson'); $this->setGetArray(array('relationModuleId' => 'accounts', 'portletId' => '1', 'uniqueLayoutId' => 'ContactDetailsAndRelationsView_1', 'id' => $superProductTemplateId, 'relationModelId' => $contactId, 'relationAttributeName' => 'contact', 'relationModelClassName' => 'Contact', 'redirect' => '0')); $this->runControllerWithNoExceptionsAndGetContent('products/default/createProductFromProductTemplate', true); $products = Product::getAll(); $this->assertEquals(3, count($products)); $latestProduct = $products[2]; $this->assertEquals($accountId, $latestProduct->account->id); }
/** * @deletes selected product templates. */ public function testMassDeleteActionsForSelectedIds() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); $productTemplates = ProductTemplate::getAll(); $this->assertEquals(13, count($productTemplates)); $superTemplateId = self::getModelIdByModelNameAndName('ProductTemplate', 'My Catalog Item 1'); $superTemplateId2 = self::getModelIdByModelNameAndName('ProductTemplate', 'My Catalog Item 2'); $superTemplateId3 = self::getModelIdByModelNameAndName('ProductTemplate', 'My Catalog Item 3'); $superTemplateId4 = self::getModelIdByModelNameAndName('ProductTemplate', 'My Catalog Item 4'); $superTemplateId5 = self::getModelIdByModelNameAndName('ProductTemplate', 'My Catalog Item 5'); $superTemplateId6 = self::getModelIdByModelNameAndName('ProductTemplate', 'My Catalog Item 6'); $superTemplateId7 = self::getModelIdByModelNameAndName('ProductTemplate', 'My Catalog Item 7'); $superTemplateId8 = self::getModelIdByModelNameAndName('ProductTemplate', 'My Catalog Item 8'); $superTemplateId9 = self::getModelIdByModelNameAndName('ProductTemplate', 'My Catalog Item 9'); $superTemplateId10 = self::getModelIdByModelNameAndName('ProductTemplate', 'My Catalog Item 10'); $superTemplateId11 = self::getModelIdByModelNameAndName('ProductTemplate', 'My Catalog Item 11'); $superTemplateId12 = self::getModelIdByModelNameAndName('ProductTemplate', 'My Catalog Item 12'); //Load Model MassDelete Views. //MassDelete view for single selected ids $this->setGetArray(array('selectedIds' => '5,6,7,8,9', 'selectAll' => '')); // Not Coding Standard $this->resetPostArray(); $content = $this->runControllerWithNoExceptionsAndGetContent('productTemplates/default/massDelete'); $this->assertFalse(strpos($content, '<strong>5</strong> Catalog Items selected for removal') === false); //MassDelete view for all result selected ids $this->setGetArray(array('selectAll' => '1')); $this->resetPostArray(); $content = $this->runControllerWithNoExceptionsAndGetContent('productTemplates/default/massDelete'); $this->assertFalse(strpos($content, '<strong>13</strong> Catalog Items selected for removal') === false); //MassDelete for selected Record Count $productTemplates = ProductTemplate::getAll(); $this->assertEquals(13, count($productTemplates)); //MassDelete for selected ids for paged scenario $superTemplate1 = ProductTemplate::getById($superTemplateId); $superTemplate2 = ProductTemplate::getById($superTemplateId2); $superTemplate3 = ProductTemplate::getById($superTemplateId3); $superTemplate4 = ProductTemplate::getById($superTemplateId4); $superTemplate5 = ProductTemplate::getById($superTemplateId5); $superTemplate6 = ProductTemplate::getById($superTemplateId6); $superTemplate7 = ProductTemplate::getById($superTemplateId7); $pageSize = Yii::app()->pagination->getForCurrentUserByType('massDeleteProgressPageSize'); $this->assertEquals(5, $pageSize); //MassDelete for selected ids for page 1 $this->setGetArray(array('selectedIds' => $superTemplateId . ',' . $superTemplateId2 . ',' . $superTemplateId3 . ',' . $superTemplateId4 . ',' . $superTemplateId5 . ',' . $superTemplateId6 . ',' . $superTemplateId7, 'selectAll' => '', 'massDelete' => '', 'ProductTemplate_page' => 1)); $this->setPostArray(array('selectedRecordCount' => 7)); $this->runControllerWithExitExceptionAndGetContent('productTemplates/default/massDelete'); //MassDelete for selected Record Count $productTemplates = ProductTemplate::getAll(); $this->assertEquals(8, count($productTemplates)); //MassDelete for selected ids for page 2 $this->setGetArray(array('selectedIds' => $superTemplateId . ',' . $superTemplateId2 . ',' . $superTemplateId3 . ',' . $superTemplateId4 . ',' . $superTemplateId5 . ',' . $superTemplateId6 . ',' . $superTemplateId7, 'selectAll' => '', 'massDelete' => '', 'ProductTemplate_page' => 2)); $this->setPostArray(array('selectedRecordCount' => 7)); $this->runControllerWithNoExceptionsAndGetContent('productTemplates/default/massDeleteProgress'); //MassDelete for selected Record Count $productTemplates = ProductTemplate::getAll(); $this->assertEquals(6, count($productTemplates)); }