Example #1
0
 /**
  *
  * @return RequestValidator
  */
 public function buildValidator(Product $product)
 {
     $validator = $this->getValidator("productFormValidator", $this->request);
     $validator->addCheck('name', new IsNotEmptyCheck($this->translate('_err_name_empty')));
     // check if SKU is entered if not autogenerating
     if ($this->request->get('save') && !$product->isExistingRecord() && !$this->request->get('autosku')) {
         $validator->addCheck('sku', new IsNotEmptyCheck($this->translate('_err_sku_empty')));
     }
     // check if entered SKU is unique
     if ($this->request->get('sku') && $this->request->get('save') && (!$product->isExistingRecord() || $this->request->isValueSet('sku') && $product->getFieldValue('sku') != $this->request->get('sku'))) {
         ClassLoader::import('application.helper.check.IsUniqueSkuCheck');
         $validator->addCheck('sku', new IsUniqueSkuCheck($this->translate('_err_sku_not_unique'), $product));
     }
     // validate price input in all currencies
     if (!$product->isExistingRecord()) {
         self::addPricesValidator($validator);
         self::addShippingValidator($validator);
         self::addInventoryValidator($validator);
     }
     if ($this->isQuickEdit) {
         // nothing now
     } else {
         // quick edit forms does not have specification fields
         $product->getSpecification()->setValidation($validator);
     }
     self::addPricesValidator($validator);
     self::addShippingValidator($validator);
     self::addInventoryValidator($validator);
     return $validator;
 }