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\NumberPatternCode
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;
}