You are here

protected function WebformSubmissionExportImportImporter::importSaveSubmission in Webform 6.x

Same name and namespace in other branches
  1. 8.5 modules/webform_submission_export_import/src/WebformSubmissionExportImportImporter.php \Drupal\webform_submission_export_import\WebformSubmissionExportImportImporter::importSaveSubmission()

Save import record submission.

Parameters

array $record: The record to be imported.

\Drupal\webform\WebformSubmissionInterface $webform_submission: The existing webform submission.

1 call to WebformSubmissionExportImportImporter::importSaveSubmission()
WebformSubmissionExportImportImporter::import in modules/webform_submission_export_import/src/WebformSubmissionExportImportImporter.php
Import records from CSV import file.

File

modules/webform_submission_export_import/src/WebformSubmissionExportImportImporter.php, line 926

Class

WebformSubmissionExportImportImporter
Webform submission export importer.

Namespace

Drupal\webform_submission_export_import

Code

protected function importSaveSubmission(array $record, WebformSubmissionInterface $webform_submission = NULL) {
  $field_definitions = $this
    ->getFieldDefinitions();
  $elements = $this
    ->getElements();
  if ($webform_submission) {

    // Update submission.
    unset($record['sid'], $record['serial'], $record['uuid']);
    foreach ($record as $name => $value) {
      if (isset($field_definitions[$name])) {
        $webform_submission
          ->set($name, $value);
      }
      elseif (isset($elements[$name])) {
        $webform_submission
          ->setElementData($name, $value);
      }
    }
  }
  else {

    // Create submission.
    unset($record['sid'], $record['serial']);
    $values = $this
      ->importConvertRecordToValues($record);
    $webform_submission = $this
      ->getSubmissionStorage()
      ->create($values);
  }
  $webform_submission
    ->save();
}