You are here

class SerbianVat in Commerce Core 8.2

Provides the Serbian VAT tax number type.

Used for testing purposes, none of the rules are real.

Plugin annotation


@CommerceTaxNumberType(
  id = "serbian_vat",
  label = "Serbian VAT",
  countries = {"RS"},
  examples = {"901"}
)

Hierarchy

Expanded class hierarchy of SerbianVat

File

modules/tax/tests/modules/commerce_tax_test/src/Plugin/Commerce/TaxNumberType/SerbianVat.php, line 20

Namespace

Drupal\commerce_tax_test\Plugin\Commerce\TaxNumberType
View source
class SerbianVat extends TaxNumberTypeWithVerificationBase {

  /**
   * {@inheritdoc}
   */
  public function validate($tax_number) {

    // All numbers smaller than 1000 are valid.
    return is_numeric($tax_number) && $tax_number < 1000;
  }

  /**
   * {@inheritdoc}
   */
  public function doVerify($tax_number) {
    $timestamp = $this->time
      ->getRequestTime();
    if ($tax_number == '190') {

      // Simulate the remote service being unavailable.
      return VerificationResult::unknown($timestamp, [
        'error' => 'http_429',
      ]);
    }
    if ($tax_number % 2 === 0) {

      // Even numbers cannot be verified.
      return VerificationResult::failure($timestamp);
    }
    else {
      return VerificationResult::success($timestamp, [
        'name' => 'John Smith',
        'nonce' => mt_rand(0, 1000),
      ]);
    }
  }

  /**
   * {@inheritdoc}
   */
  public function renderVerificationResult(VerificationResult $result) {
    $errors = [
      'http_429' => $this
        ->t('Too many requests.'),
    ];
    $data = $result
      ->getData();
    $element = [];
    if (isset($data['error'])) {
      $error = $data['error'];
      $element['error'] = [
        '#type' => 'item',
        '#title' => $this
          ->t('Error'),
        '#plain_text' => isset($errors[$error]) ? $errors[$error] : $error,
      ];
    }
    if (isset($data['name'])) {
      $element['name'] = [
        '#type' => 'item',
        '#title' => $this
          ->t('Name'),
        '#plain_text' => $data['name'],
      ];
    }
    return $element;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
SerbianVat::doVerify public function Performs the tax number verification. Overrides TaxNumberTypeWithVerificationBase::doVerify
SerbianVat::renderVerificationResult public function Renders the given verification result. Overrides SupportsVerificationInterface::renderVerificationResult
SerbianVat::validate public function Validates the given tax number. Overrides TaxNumberTypeInterface::validate
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
TaxNumberTypeBase::canonicalize public function Canonicalizes the given tax number. Overrides TaxNumberTypeInterface::canonicalize
TaxNumberTypeBase::getCountries public function Gets the supported countries. Overrides TaxNumberTypeInterface::getCountries
TaxNumberTypeBase::getExamples public function Gets the tax number examples. Overrides TaxNumberTypeInterface::getExamples
TaxNumberTypeBase::getFormattedExamples public function Gets the tax number examples, formatted for display. Overrides TaxNumberTypeInterface::getFormattedExamples
TaxNumberTypeBase::getLabel public function Gets the tax number type label. Overrides TaxNumberTypeInterface::getLabel
TaxNumberTypeWithVerificationBase::$memoryCache protected property The memory cache.
TaxNumberTypeWithVerificationBase::$time protected property The time.
TaxNumberTypeWithVerificationBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
TaxNumberTypeWithVerificationBase::verify public function Verifies the given tax number. Overrides SupportsVerificationInterface::verify
TaxNumberTypeWithVerificationBase::__construct public function Constructs a new TaxNumberTypeWithVerificationBase object. Overrides PluginBase::__construct