You are here

public function SequentialNumberPatternBase::buildConfigurationForm in Commerce Core 8.2

Overrides NumberPatternBase::buildConfigurationForm

File

modules/number_pattern/src/Plugin/Commerce/NumberPattern/SequentialNumberPatternBase.php, line 109

Class

SequentialNumberPatternBase
Provides a base class for number pattern plugins which support sequences.

Namespace

Drupal\commerce_number_pattern\Plugin\Commerce\NumberPattern

Code

public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
  $form = parent::buildConfigurationForm($form, $form_state);
  $form['initial_number'] = [
    '#type' => 'number',
    '#title' => $this
      ->t('Initial number'),
    '#default_value' => $this->configuration['initial_number'],
    '#min' => 1,
  ];
  $checkbox_name = 'configuration[' . $this->pluginId . '][use_padding]';
  $form['use_padding'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Use fixed length numbers'),
    '#default_value' => !empty($this->configuration['padding']),
  ];
  $form['padding'] = [
    '#type' => 'number',
    '#title' => $this
      ->t('Total number of digits'),
    '#description' => $this
      ->t('The number will be padded with leading zeroes. Example: a value of 4 will output 52 as 0052.'),
    '#default_value' => $this->configuration['padding'],
    '#min' => 0,
    '#states' => [
      'visible' => [
        ':input[name="' . $checkbox_name . '"]' => [
          'checked' => TRUE,
        ],
      ],
    ],
  ];
  $entity_type_id = $form_state
    ->get('target_entity_type');
  if (!empty($entity_type_id)) {
    $entity_type = $this->entityTypeManager
      ->getDefinition($entity_type_id);
    if ($entity_type
      ->entityClassImplements(EntityStoreInterface::class)) {
      $form['per_store_sequence'] = [
        '#type' => 'checkbox',
        '#title' => $this
          ->t('Generate sequences on a per-store basis'),
        '#description' => $this
          ->t('Ensures that numbers are not shared between stores.'),
        '#default_value' => $this->configuration['per_store_sequence'],
      ];
    }
  }
  return $form;
}