Skip to content

Commit 0c618ce

Browse files
Merge pull request #11 from OS2Forms/develop
Merge develop into master
2 parents 8a2d43d + df99d02 commit 0c618ce

File tree

4 files changed

+116
-16
lines changed

4 files changed

+116
-16
lines changed

.travis.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ before_install:
99
- echo "memory_limit=2G" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
1010

1111
install:
12-
- composer global require hirak/prestissimo
1312
- composer global require drush/drush:8.x-dev drupal/coder mglaman/drupal-check friendsoftwig/twigcs
1413
- export PATH="$HOME/.config/composer/vendor/bin:$PATH"
1514
- phpcs --config-set installed_paths ../../drupal/coder/coder_sniffer
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?php
2+
3+
namespace Drupal\os2forms_nemid\Element;
4+
5+
use Drupal\Core\Form\FormStateInterface;
6+
7+
/**
8+
* Provides a 'os2forms_nemid_kommunekode'.
9+
*
10+
* @FormElement("os2forms_nemid_kommunekode")
11+
*
12+
* @see \Drupal\Core\Render\Element\FormElement
13+
* @see https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Render%21Element%21FormElement.php/class/FormElement
14+
* @see \Drupal\Core\Render\Element\RenderElement
15+
* @see https://api.drupal.org/api/drupal/namespace/Drupal%21Core%21Render%21Element
16+
* @see \Drupal\os2forms_nemid\Element\NemidKommunekode
17+
*/
18+
class NemidKommunekode extends NemidElementBase {
19+
20+
/**
21+
* {@inheritdoc}
22+
*/
23+
public function getInfo() {
24+
$class = get_class($this);
25+
return parent::getInfo() + [
26+
'#process' => [
27+
[$class, 'processNemidKommunekode'],
28+
[$class, 'processAjaxForm'],
29+
],
30+
'#element_validate' => [
31+
[$class, 'validateNemidKommunekode'],
32+
],
33+
'#pre_render' => [
34+
[$class, 'preRenderNemidKommunekode'],
35+
],
36+
'#theme' => 'input__os2forms_nemid_kommunekode',
37+
];
38+
}
39+
40+
/**
41+
* Processes a 'os2forms_nemid_kommunekode' element.
42+
*/
43+
public static function processNemidKommunekode(&$element, FormStateInterface $form_state, &$complete_form) {
44+
// Here you can add and manipulate your element's properties and callbacks.
45+
return $element;
46+
}
47+
48+
/**
49+
* Webform element validation handler for #type 'os2forms_nemid_kommunekode'.
50+
*/
51+
public static function validateNemidKommunekode(&$element, FormStateInterface $form_state, &$complete_form) {
52+
// Here you can add custom validation logic.
53+
}
54+
55+
/**
56+
* {@inheritdoc}
57+
*/
58+
public static function preRenderNemidKommunekode(array $element) {
59+
$element = parent::prerenderNemidElementBase($element);
60+
static::setAttributes($element, ['form-text', 'os2forms-nemid-kommunekode']);
61+
return $element;
62+
}
63+
64+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace Drupal\os2forms_nemid\Plugin\WebformElement;
4+
5+
/**
6+
* Provides a 'os2forms_nemid_kommunekode' element.
7+
*
8+
* @WebformElement(
9+
* id = "os2forms_nemid_kommunekode",
10+
* label = @Translation("NemID Kommunekode"),
11+
* description = @Translation("Provides a NemID Kommunekode element."),
12+
* category = @Translation("NemID"),
13+
* )
14+
*
15+
* @see \Drupal\os2forms_nemid\Plugin\NemidElementBase
16+
* @see \Drupal\os2forms_nemid\Element\NemidKommunekode
17+
*/
18+
class NemidKommunekode extends ServiceplatformenCprElementBase implements NemidElementPersonalInterface {
19+
20+
/**
21+
* {@inheritdoc}
22+
*/
23+
public function getPrepopulateFieldFieldKey() {
24+
return 'kommunekode';
25+
}
26+
27+
}

modules/os2forms_sbsys/src/Element/WebformAttachmentSbsysXml.php

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,6 @@ public static function getFileContent(array $element, WebformSubmissionInterface
2929
$nemid_cpr = self::getFirstValueByType('os2forms_nemid_cpr', $webform_submission);
3030
$nemid_com_cvr = self::getFirstValueByType('os2forms_nemid_company_cvr', $webform_submission);
3131
$os2web_datalookup_plugins = \Drupal::service('plugin.manager.os2web_datalookup');
32-
/** @var \Drupal\os2web_datalookup\Plugin\os2web\DataLookup\DataLookupInterface $sp_cvr */
33-
$sp_cvr = $os2web_datalookup_plugins->createInstance('serviceplatformen_cvr');
34-
if (!empty($nemid_com_cvr) && $sp_cvr->isReady()) {
35-
$company_info = $sp_cvr->getInfo($nemid_com_cvr);
36-
if ($company_info['status']) {
37-
$nemid_name = htmlspecialchars($company_info['company_name']);
38-
$nemid_address = htmlspecialchars($company_info['company_street'] . ' ' . $company_info['company_house_nr'] . ' ' . $company_info['company_']);
39-
$nemid_city = htmlspecialchars($company_info['company_city']);
40-
$nemid_zipcode = htmlspecialchars($company_info['company_zipcode']);
41-
}
42-
}
4332
/** @var \Drupal\os2web_datalookup\Plugin\os2web\DataLookup\DataLookupInterface $sp_cpr */
4433
$sp_cpr = $os2web_datalookup_plugins->createInstance('serviceplatformen_cpr');
4534
if (!empty($nemid_cpr) && $sp_cpr->isReady()) {
@@ -51,6 +40,17 @@ public static function getFileContent(array $element, WebformSubmissionInterface
5140
$nemid_zipcode = htmlspecialchars($person_address['zipcode']);
5241
}
5342
}
43+
/** @var \Drupal\os2web_datalookup\Plugin\os2web\DataLookup\DataLookupInterface $sp_cvr */
44+
$sp_cvr = $os2web_datalookup_plugins->createInstance('serviceplatformen_cvr');
45+
if (!empty($nemid_com_cvr) && $sp_cvr->isReady()) {
46+
$company_info = $sp_cvr->getInfo($nemid_com_cvr);
47+
if ($company_info['status']) {
48+
$nemid_name = htmlspecialchars($company_info['company_name']);
49+
$nemid_address = htmlspecialchars($company_info['company_street'] . ' ' . $company_info['company_house_nr'] . ' ' . $company_info['company_']);
50+
$nemid_city = htmlspecialchars($company_info['company_city']);
51+
$nemid_zipcode = htmlspecialchars($company_info['company_zipcode']);
52+
}
53+
}
5454

5555
$config = self::getElementConfiguration($element);
5656
$os2formsId = self::getConfigurationValue('os2formsId', $config, $webform_submission);
@@ -83,6 +83,7 @@ public static function getFileContent(array $element, WebformSubmissionInterface
8383
$webform = $webform_submission->getWebform();
8484
$webform_title = htmlspecialchars($webform->label());
8585
$fields = self::getWebformElementsAsList($webform_submission);
86+
8687
if (isset($fields['antal_rum_max'])) {
8788
$maxRoom = htmlspecialchars($fields['antal_rum_max']);
8889
}
@@ -101,14 +102,14 @@ public static function getFileContent(array $element, WebformSubmissionInterface
101102
$xml_data = [
102103
'OS2FormsId' => $os2formsId,
103104
'SBSYSJournalisering' => [
104-
'PrimaerPartCprNummer' => (!empty($nemid_cpr)) ? $nemid_cpr : '',
105+
'PrimaerPartCprNummer' => (!empty($nemid_cpr) && empty($nemid_com_cvr)) ? $nemid_cpr : '',
105106
'PrimaerPartCvrNummer' => (!empty($nemid_com_cvr)) ? $nemid_com_cvr : '',
106107
'KLe' => $kle,
107108
'SagSkabelonId' => $sagSkabelonId,
108109
],
109110
'DigitalForsendelse' => [
110111
'Slutbruger' => [
111-
'CprNummer' => (isset($nemid_cpr)) ? $nemid_cpr : '',
112+
'CprNummer' => (!empty($nemid_cpr) && empty($nemid_com_cvr)) ? $nemid_cpr : '',
112113
'CvrNummer' => (isset($nemid_com_cvr)) ? $nemid_com_cvr : '',
113114
'Navn' => (isset($nemid_name)) ? $nemid_name : '',
114115
'Adresse' => (isset($nemid_address)) ? $nemid_address : '',
@@ -199,19 +200,28 @@ protected static function getFirstValueByType($type, WebformSubmissionInterface
199200
* Webform elements as simple array.
200201
*/
201202
protected static function getWebformElementsAsList(WebformSubmissionInterface $webform_submission) {
203+
$nemid_cpr = self::getFirstValueByType('os2forms_nemid_cpr', $webform_submission);
204+
$nemid_com_cvr = self::getFirstValueByType('os2forms_nemid_company_cvr', $webform_submission);
202205
$webform = $webform_submission->getWebform();
203206
$data = $webform_submission->getData();
204207
$webform_elements = $webform->getElementsInitializedFlattenedAndHasValue();
205208
$elements_list = [];
206-
207209
foreach ($webform_elements as $key => $webform_element) {
208210
$field_name = $key;
209211
$field_name = preg_replace('/\W/', '_', $field_name);
212+
$webform_element['#type'];
210213
if ($webform_element['#type'] == 'markup') {
211214
$elements_list[$field_name] = $webform_element['value'];
212215
}
213216
elseif ($data && isset($data[$key])) {
214-
$elements_list[$field_name] = $data[$key];
217+
if ($webform_element['#type'] == 'os2forms_nemid_cpr') {
218+
if (!empty($nemid_cpr) && empty($nemid_com_cvr)) {
219+
$elements_list[$field_name] = $data[$key];
220+
}
221+
}
222+
else {
223+
$elements_list[$field_name] = $data[$key];
224+
}
215225
}
216226
}
217227
return $elements_list;

0 commit comments

Comments
 (0)