Skip to content

Commit 882be80

Browse files
Mike van den Hoekmvdhoek1
authored andcommitted
feat: implement kvk usage
1 parent 9f16954 commit 882be80

File tree

4 files changed

+114
-30
lines changed

4 files changed

+114
-30
lines changed

languages/owc-gravityforms-zgw.pot

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
# Copyright (C) 2025 Yard | Digital Agency
1+
# Copyright (C) 2026 Yard | Digital Agency
22
# This file is distributed under the EUPL.
33
msgid ""
44
msgstr ""
5-
"Project-Id-Version: OWC | GravityForms ZGW 1.1.3\n"
5+
"Project-Id-Version: OWC | GravityForms ZGW 1.1.7\n"
66
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/owc-gravityforms-zgw\n"
77
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
88
"Language-Team: LANGUAGE <[email protected]>\n"
99
"MIME-Version: 1.0\n"
1010
"Content-Type: text/plain; charset=UTF-8\n"
1111
"Content-Transfer-Encoding: 8bit\n"
12-
"POT-Creation-Date: 2025-12-19T13:00:19+00:00\n"
12+
"POT-Creation-Date: 2026-01-12T15:32:45+00:00\n"
1313
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1414
"X-Generator: WP-CLI 2.12.0\n"
1515
"X-Domain: owc-gravityforms-zgw\n"
@@ -77,34 +77,46 @@ msgid "BSN vervangen door dummywaarde (BSN)"
7777
msgstr ""
7878

7979
#: src/GravityForms/FormSettings.php:51
80-
msgid "Vul hier een 9 cijferig BSN in die gebruikt wordt bij het aanmaken van een zaak. Handig voor zaken waarbij er geen BSN vereist is van een burger."
80+
msgid "Vul hier een 9 cijferig BSN in die gebruikt wordt bij het aanmaken van een zaak. Handig wanneer er geen BSN van de burger aanwezig of vereist is."
8181
msgstr ""
8282

8383
#: src/GravityForms/FormSettings.php:56
84-
#: src/GravityForms/FormSettings.php:58
84+
msgid "Dummy KVK"
85+
msgstr ""
86+
87+
#: src/GravityForms/FormSettings.php:57
88+
msgid "KVK-nummer vervangen door dummywaarde (KVK)"
89+
msgstr ""
90+
91+
#: src/GravityForms/FormSettings.php:57
92+
msgid "Vul hier een 8 cijferig KVK-nummer in die gebruikt wordt bij het aanmaken van een zaak. Handig wanneer er geen KVK-nummer van een onderneming aanwezig of vereist is."
93+
msgstr ""
94+
95+
#: src/GravityForms/FormSettings.php:62
96+
#: src/GravityForms/FormSettings.php:64
8597
msgid "Leverancier instellingen"
8698
msgstr ""
8799

88-
#: src/GravityForms/FormSettings.php:56
100+
#: src/GravityForms/FormSettings.php:62
89101
msgid "Kies hoe de leverancier instellingen geconfigureerd moeten worden."
90102
msgstr ""
91103

92-
#: src/GravityForms/FormSettings.php:62
104+
#: src/GravityForms/FormSettings.php:68
93105
msgid "Selecteer instellingen (opgehaald vanuit zaaksysteem)"
94106
msgstr ""
95107

96-
#: src/GravityForms/FormSettings.php:67
108+
#: src/GravityForms/FormSettings.php:73
97109
msgid "Configureer instellingen handmatig (invoeren van URL's)"
98110
msgstr ""
99111

100-
#: src/GravityForms/FormSettings.php:166
101-
#: src/GravityForms/FormSettings.php:206
112+
#: src/GravityForms/FormSettings.php:172
113+
#: src/GravityForms/FormSettings.php:212
102114
#: src/Views/partials/gf-field-zgw-mapping-options.php:24
103115
msgid "Zaaktype"
104116
msgstr ""
105117

106-
#: src/GravityForms/FormSettings.php:185
107-
#: src/GravityForms/FormSettings.php:224
118+
#: src/GravityForms/FormSettings.php:191
119+
#: src/GravityForms/FormSettings.php:230
108120
msgid "Informatie object type"
109121
msgstr ""
110122

src/Contracts/AbstractCreateZaakAction.php

Lines changed: 57 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,11 @@ public function add_rol_to_zaak(Zaak $zaak ): ?Rol
113113
throw new Exception( 'No role types found for this "zaaktype"', 400 );
114114
}
115115

116-
$current_bsn = ContainerResolver::make()->get( 'digid.current_user_bsn' );
116+
$current_bsn = $this->get_bsn_for_zaak_rol();
117+
$current_kvk = $this->get_kvk_for_zaak_rol();
117118

118-
if ( ! is_string( $current_bsn ) || '' === $current_bsn ) {
119-
$current_bsn = FormUtils::overwrite_bsn_form_setting( $this->form );
120-
}
121-
122-
if ( ! is_string( $current_bsn ) || '' === $current_bsn ) {
123-
throw new Exception( 'This session appears to have no BSN', 400 );
119+
if ( ( ! is_string( $current_bsn ) || '' === $current_bsn ) && ( ! is_string( $current_kvk ) || '' === $current_kvk ) ) {
120+
throw new Exception( 'This session appears to have no BSN or KVK', 400 );
124121
}
125122

126123
foreach ( $rol_types as $rol_type ) {
@@ -129,15 +126,13 @@ public function add_rol_to_zaak(Zaak $zaak ): ?Rol
129126
}
130127

131128
$args = array(
132-
'betrokkeneIdentificatie' => array(
133-
'inpBsn' => $current_bsn,
134-
),
135-
'betrokkeneType' => 'natuurlijk_persoon',
136-
'roltoelichting' => $rol_type['omschrijvingGeneriek'],
137-
'roltype' => $rol_type['url'],
138-
'zaak' => $zaak->url,
129+
'roltoelichting' => $rol_type['omschrijvingGeneriek'],
130+
'roltype' => $rol_type['url'],
131+
'zaak' => $zaak->url,
139132
);
140133

134+
$args = $this->add_identification_to_rol_args( $args, $current_bsn, $current_kvk );
135+
141136
try {
142137
$rol = $this->client->rollen()->create( new Rol( $args, $this->client ) );
143138
} catch ( BadRequestError $e ) {
@@ -163,6 +158,54 @@ public function get_rol_types(): PagedCollection
163158
return $this->client->roltypen()->filter( $filter );
164159
}
165160

161+
/**
162+
* Retrieve BSN from the current user or from the overwrite form setting.
163+
*
164+
* @since NEXT
165+
*/
166+
private function get_bsn_for_zaak_rol(): ?string
167+
{
168+
$bsn_overwrite = FormUtils::overwrite_bsn_form_setting( $this->form );
169+
170+
if ( is_string( $bsn_overwrite ) && '' !== $bsn_overwrite ) {
171+
return $bsn_overwrite;
172+
}
173+
174+
return ContainerResolver::make()->get( 'digid.current_user_bsn' );
175+
}
176+
177+
/**
178+
* Retrieve KVK from the current user or from the overwrite form setting.
179+
*
180+
* @since NEXT
181+
*/
182+
private function get_kvk_for_zaak_rol(): ?string
183+
{
184+
$kvk_overwrite = FormUtils::overwrite_kvk_form_setting( $this->form );
185+
186+
if ( is_string( $kvk_overwrite ) && '' !== $kvk_overwrite ) {
187+
return $kvk_overwrite;
188+
}
189+
190+
return ContainerResolver::make()->get( 'eherkenning.current_user_kvk' );
191+
}
192+
193+
/**
194+
* @since NEXT
195+
*/
196+
private function add_identification_to_rol_args(array $args, ?string $current_bsn, ?string $current_kvk ): array
197+
{
198+
if ( is_string( $current_bsn ) && '' !== $current_bsn ) {
199+
$args['betrokkeneType'] = 'natuurlijk_persoon';
200+
$args['betrokkeneIdentificatie']['inpBsn'] = $current_bsn;
201+
} elseif ( is_string( $current_kvk ) && '' !== $current_kvk ) {
202+
$args['betrokkeneType'] = 'vestiging';
203+
$args['betrokkeneIdentificatie']['kvkNummer'] = $current_kvk;
204+
}
205+
206+
return $args;
207+
}
208+
166209
public function create_zaak_properties(Zaak $zaak ): void
167210
{
168211
$zaak_properties = $this->map_zaak_properties_args();

src/GravityForms/FormSettings.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,13 @@ public function add_form_settings(array $fields, array $form ): array
4848
'name' => "{$this->prefix}-form-setting-overwrite-bsn",
4949
'type' => 'text',
5050
'label' => esc_html__( 'Dummy BSN', 'owc-gravityforms-zgw' ),
51-
'tooltip' => '<h6>' . __( 'BSN vervangen door dummywaarde (BSN)', 'owc-gravityforms-zgw' ) . '</h6>' . __( 'Vul hier een 9 cijferig BSN in die gebruikt wordt bij het aanmaken van een zaak. Handig voor zaken waarbij er geen BSN vereist is van een burger.', 'owc-gravityforms-zgw' ),
51+
'tooltip' => '<h6>' . __( 'BSN vervangen door dummywaarde (BSN)', 'owc-gravityforms-zgw' ) . '</h6>' . __( 'Vul hier een 9 cijferig BSN in die gebruikt wordt bij het aanmaken van een zaak. Handig wanneer er geen BSN van de burger aanwezig of vereist is.', 'owc-gravityforms-zgw' ),
52+
),
53+
array(
54+
'name' => "{$this->prefix}-form-setting-overwrite-kvk",
55+
'type' => 'text',
56+
'label' => esc_html__( 'Dummy KVK', 'owc-gravityforms-zgw' ),
57+
'tooltip' => '<h6>' . __( 'KVK-nummer vervangen door dummywaarde (KVK)', 'owc-gravityforms-zgw' ) . '</h6>' . __( 'Vul hier een 8 cijferig KVK-nummer in die gebruikt wordt bij het aanmaken van een zaak. Handig wanneer er geen KVK-nummer van een onderneming aanwezig of vereist is.', 'owc-gravityforms-zgw' ),
5258
),
5359
array(
5460
'name' => "{$this->prefix}-form-setting-supplier-manually",

src/GravityForms/FormUtils.php

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,35 @@ public static function information_object_type_form_setting(array $form, string
129129
}
130130

131131
/**
132-
* Return the value of the overwrite bsn form setting.
132+
* Return the value of the overwrite BSN form setting.
133+
*
134+
* @since 1.1.0
133135
*/
134136
public static function overwrite_bsn_form_setting(array $form ): ?string
135137
{
136-
$bsn = $form[ sprintf( '%s-form-setting-overwrite-bsn', OWC_GRAVITYFORMS_ZGW_SETTINGS_PREFIX ) ] ?? null;
138+
return self::get_overwrite_form_setting( $form, 'form-setting-overwrite-bsn' );
139+
}
140+
141+
/**
142+
* Return the value of the overwrite KVK form setting.
143+
*
144+
* @since NEXT
145+
*/
146+
public static function overwrite_kvk_form_setting(array $form ): ?string
147+
{
148+
return self::get_overwrite_form_setting( $form, 'form-setting-overwrite-kvk' );
149+
}
150+
151+
/**
152+
* Return the value of an overwrite form setting.
153+
*
154+
* @since NEXT
155+
*/
156+
private static function get_overwrite_form_setting(array $form, string $setting_key ): ?string
157+
{
158+
$value = (string) ( $form[ sprintf( '%s-%s', OWC_GRAVITYFORMS_ZGW_SETTINGS_PREFIX, $setting_key ) ] ?? '' );
159+
$value = trim( $value );
137160

138-
return is_string( $bsn ) && '' !== $bsn ? $bsn : null;
161+
return '' !== $value ? $value : null;
139162
}
140163
}

0 commit comments

Comments
 (0)