Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 24 additions & 12 deletions languages/owc-gravityforms-zgw.pot
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# Copyright (C) 2025 Yard | Digital Agency
# Copyright (C) 2026 Yard | Digital Agency
# This file is distributed under the EUPL.
msgid ""
msgstr ""
"Project-Id-Version: OWC | GravityForms ZGW 1.1.3\n"
"Project-Id-Version: OWC | GravityForms ZGW 1.1.7\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/owc-gravityforms-zgw\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2025-12-19T13:00:19+00:00\n"
"POT-Creation-Date: 2026-01-12T15:32:45+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.12.0\n"
"X-Domain: owc-gravityforms-zgw\n"
Expand Down Expand Up @@ -77,34 +77,46 @@ msgid "BSN vervangen door dummywaarde (BSN)"
msgstr ""

#: src/GravityForms/FormSettings.php:51
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."
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."
msgstr ""

#: src/GravityForms/FormSettings.php:56
#: src/GravityForms/FormSettings.php:58
msgid "Dummy KVK"
msgstr ""

#: src/GravityForms/FormSettings.php:57
msgid "KVK-nummer vervangen door dummywaarde (KVK)"
msgstr ""

#: src/GravityForms/FormSettings.php:57
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."
msgstr ""

#: src/GravityForms/FormSettings.php:62
#: src/GravityForms/FormSettings.php:64
msgid "Leverancier instellingen"
msgstr ""

#: src/GravityForms/FormSettings.php:56
#: src/GravityForms/FormSettings.php:62
msgid "Kies hoe de leverancier instellingen geconfigureerd moeten worden."
msgstr ""

#: src/GravityForms/FormSettings.php:62
#: src/GravityForms/FormSettings.php:68
msgid "Selecteer instellingen (opgehaald vanuit zaaksysteem)"
msgstr ""

#: src/GravityForms/FormSettings.php:67
#: src/GravityForms/FormSettings.php:73
msgid "Configureer instellingen handmatig (invoeren van URL's)"
msgstr ""

#: src/GravityForms/FormSettings.php:166
#: src/GravityForms/FormSettings.php:206
#: src/GravityForms/FormSettings.php:172
#: src/GravityForms/FormSettings.php:212
#: src/Views/partials/gf-field-zgw-mapping-options.php:24
msgid "Zaaktype"
msgstr ""

#: src/GravityForms/FormSettings.php:185
#: src/GravityForms/FormSettings.php:224
#: src/GravityForms/FormSettings.php:191
#: src/GravityForms/FormSettings.php:230
msgid "Informatie object type"
msgstr ""

Expand Down
72 changes: 58 additions & 14 deletions src/Contracts/AbstractCreateZaakAction.php
Original file line number Diff line number Diff line change
Expand Up @@ -157,14 +157,11 @@ public function add_rol_to_zaak(Zaak $zaak ): ?Rol
throw new Exception( 'No role types found for this "zaaktype"', 400 );
}

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

if ( ! is_string( $current_bsn ) || '' === $current_bsn ) {
$current_bsn = FormUtils::overwrite_bsn_form_setting( $this->form );
}

if ( ! is_string( $current_bsn ) || '' === $current_bsn ) {
throw new Exception( 'This session appears to have no BSN', 400 );
if ( ( ! is_string( $current_bsn ) || '' === $current_bsn ) && ( ! is_string( $current_kvk ) || '' === $current_kvk ) ) {
throw new Exception( 'This session appears to have no BSN or KVK', 400 );
}

foreach ( $rol_types as $rol_type ) {
Expand All @@ -173,15 +170,13 @@ public function add_rol_to_zaak(Zaak $zaak ): ?Rol
}

$args = array(
'betrokkeneIdentificatie' => array(
'inpBsn' => $current_bsn,
),
'betrokkeneType' => 'natuurlijk_persoon',
'roltoelichting' => $rol_type['omschrijvingGeneriek'],
'roltype' => $rol_type['url'],
'zaak' => $zaak->url,
'roltoelichting' => $rol_type['omschrijvingGeneriek'],
'roltype' => $rol_type['url'],
'zaak' => $zaak->url,
);

$args = $this->add_identification_to_rol_args( $args, $current_bsn, $current_kvk );

try {
$rol = $this->client->rollen()->create( new Rol( $args, $this->client ) );
} catch ( BadRequestError $e ) {
Expand All @@ -207,6 +202,54 @@ public function get_rol_types(): PagedCollection
return $this->client->roltypen()->filter( $filter );
}

/**
* Retrieve BSN from the current user or from the overwrite form setting.
*
* @since NEXT
*/
private function get_bsn_for_zaak_rol(): ?string
{
$bsn_overwrite = FormUtils::overwrite_bsn_form_setting( $this->form );

if ( is_string( $bsn_overwrite ) && '' !== $bsn_overwrite ) {
return $bsn_overwrite;
}

return ContainerResolver::make()->get( 'digid.current_user_bsn' );
}

/**
* Retrieve KVK from the current user or from the overwrite form setting.
*
* @since NEXT
*/
private function get_kvk_for_zaak_rol(): ?string
{
$kvk_overwrite = FormUtils::overwrite_kvk_form_setting( $this->form );

if ( is_string( $kvk_overwrite ) && '' !== $kvk_overwrite ) {
return $kvk_overwrite;
}

return ContainerResolver::make()->get( 'eherkenning.current_user_kvk' );
}

/**
* @since NEXT
*/
private function add_identification_to_rol_args(array $args, ?string $current_bsn, ?string $current_kvk ): array
{
if ( is_string( $current_bsn ) && '' !== $current_bsn ) {
$args['betrokkeneType'] = 'natuurlijk_persoon';
$args['betrokkeneIdentificatie']['inpBsn'] = $current_bsn;
} elseif ( is_string( $current_kvk ) && '' !== $current_kvk ) {
$args['betrokkeneType'] = 'vestiging';
$args['betrokkeneIdentificatie']['kvkNummer'] = $current_kvk;
}

return $args;
}

public function create_zaak_properties(Zaak $zaak ): void
{
$zaak_properties = $this->map_zaak_properties_args();
Expand Down Expand Up @@ -250,6 +293,7 @@ protected function map_zaak_properties_args(): array
}

$property_value = rgar( $this->entry, (string) $field->id );
dd( $property_value, $field );

if ( empty( $property_value ) ) {
continue;
Expand Down
8 changes: 7 additions & 1 deletion src/GravityForms/FormSettings.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,13 @@ public function add_form_settings(array $fields, array $form ): array
'name' => "{$this->prefix}-form-setting-overwrite-bsn",
'type' => 'text',
'label' => esc_html__( 'Dummy BSN', 'owc-gravityforms-zgw' ),
'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' ),
'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' ),
),
array(
'name' => "{$this->prefix}-form-setting-overwrite-kvk",
'type' => 'text',
'label' => esc_html__( 'Dummy KVK', 'owc-gravityforms-zgw' ),
'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' ),
),
array(
'name' => "{$this->prefix}-form-setting-supplier-manually",
Expand Down
29 changes: 26 additions & 3 deletions src/GravityForms/FormUtils.php
Original file line number Diff line number Diff line change
Expand Up @@ -129,12 +129,35 @@ public static function information_object_type_form_setting(array $form, string
}

/**
* Return the value of the overwrite bsn form setting.
* Return the value of the overwrite BSN form setting.
*
* @since 1.1.0
*/
public static function overwrite_bsn_form_setting(array $form ): ?string
{
$bsn = $form[ sprintf( '%s-form-setting-overwrite-bsn', OWC_GRAVITYFORMS_ZGW_SETTINGS_PREFIX ) ] ?? null;
return self::get_overwrite_form_setting( $form, 'form-setting-overwrite-bsn' );
}

/**
* Return the value of the overwrite KVK form setting.
*
* @since NEXT
*/
public static function overwrite_kvk_form_setting(array $form ): ?string
{
return self::get_overwrite_form_setting( $form, 'form-setting-overwrite-kvk' );
}

/**
* Return the value of an overwrite form setting.
*
* @since NEXT
*/
private static function get_overwrite_form_setting(array $form, string $setting_key ): ?string
{
$value = (string) ( $form[ sprintf( '%s-%s', OWC_GRAVITYFORMS_ZGW_SETTINGS_PREFIX, $setting_key ) ] ?? '' );
$value = trim( $value );

return is_string( $bsn ) && '' !== $bsn ? $bsn : null;
return '' !== $value ? $value : null;
}
}