public function ExtendMerciLineItem::submitConfigurationForm in MERCI (Manage Equipment Reservations, Checkout and Inventory) 8.2
Form submission handler.
Parameters
array $form: An associative array containing the structure of the plugin form as built by static::buildConfigurationForm().
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form. Calling code should pass on a subform state created through \Drupal\Core\Form\SubformState::createForSubform().
Overrides PluginFormInterface::submitConfigurationForm
File
- modules/
merci_line_item/ src/ Plugin/ Action/ ExtendMerciLineItem.php, line 152
Class
- ExtendMerciLineItem
- Promotes a merci_line_item.
Namespace
Drupal\merci_line_item\Plugin\ActionCode
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
$this->configuration['extend_interval'] = $form_state
->getValue('extend_interval');
$violations = array();
if ($form_data = $form_state
->get('views_bulk_operations') and $form_data['preconfiguration']['validate_entities'] and $form_state
->getValue('override_validation') == FALSE) {
$form_data = $form_state
->get('views_bulk_operations');
if (!$form_data) {
return;
}
$entity_ids = array();
foreach ($form_data['list'] as $item) {
$entity_ids[] = $item[0];
}
$entities = \Drupal::entityTypeManager()
->getStorage('merci_line_item')
->loadMultiple($entity_ids);
$extend_interval = $form_state
->getValue('extend_interval');
$date_field = 'merci_reservation_date';
foreach ($entities as $entity) {
$end_date = new DrupalDateTime($entity->{$date_field}
->getValue()[0]['end_value'] . ' ' . $extend_interval);
$end_date_string = $end_date
->format(DATETIME_DATETIME_STORAGE_FORMAT);
$date = $entity->{$date_field}
->getValue();
$date[0]['end_value'] = $end_date_string;
$entity->{$date_field}
->setValue($date);
$violation = $entity
->validate();
if ($violation
->has(0) == TRUE) {
$violations[$entity
->id()] = $violation;
}
}
}
if (count($violations)) {
$this
->getTempstore($form_data['view_id'], $form_data['display_id'])
->set('validation_errors', $violations);
$form_state
->setRebuild();
}
}