You are here

public function ProductVariationSkuConstraintValidator::validate in Commerce Core 8.2

File

modules/product/src/Plugin/Validation/Constraint/ProductVariationSkuConstraintValidator.php, line 16

Class

ProductVariationSkuConstraintValidator
Validates the ProductVariationSku constraint.

Namespace

Drupal\commerce_product\Plugin\Validation\Constraint

Code

public function validate($items, Constraint $constraint) {
  if (!($item = $items
    ->first())) {
    return;
  }
  $sku = $item->value;
  if (isset($sku) && $sku !== '') {
    $sku_exists = (bool) \Drupal::entityQuery('commerce_product_variation')
      ->condition('sku', $sku)
      ->condition('variation_id', (int) $items
      ->getEntity()
      ->id(), '<>')
      ->range(0, 1)
      ->count()
      ->execute();
    if ($sku_exists) {
      $this->context
        ->buildViolation($constraint->message)
        ->setParameter('%sku', $this
        ->formatValue($sku))
        ->addViolation();
    }
  }
}