From f3358e97c8a1f9edf1c4de6dea46f70366237699 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Wed, 29 May 2019 09:20:43 +0300 Subject: [PATCH] Bug 22910: Do not copy unique patron attributes to duplicated patron When creating a new patron by duplicating another, all of the patron attributes are also copied into the form. Some of those value may be unique, so don't copy those. 1) Create patron attribute types, one with "unique identifier", one without. 2) Create or a patron so it has values in both of those attributes. 3) Duplicate the patron 4) The edit form should retain the values from the "original" patron. 5) Apply patch. 6) Duplicate the patron - this time the attributes with unique values are cleared. Signed-off-by: Pasi Kallinen Signed-off-by: Marcel de Rooy Signed-off-by: Martin Renvoize --- members/memberentry.pl | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/members/memberentry.pl b/members/memberentry.pl index 1663020..7553d1a 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -747,7 +747,7 @@ foreach (qw(dateenrolled dateexpiry dateofbirth)) { } if (C4::Context->preference('ExtendedPatronAttributes')) { - patron_attributes_form($template, $borrowernumber); + patron_attributes_form($template, $borrowernumber, $op); } if (C4::Context->preference('EnhancedMessagingPreferences')) { @@ -846,6 +846,7 @@ sub parse_extended_patron_attributes { sub patron_attributes_form { my $template = shift; my $borrowernumber = shift; + my $op = shift; my @types = C4::Members::AttributeTypes::GetAttributeTypes(); if (scalar(@types) == 0) { @@ -885,6 +886,7 @@ sub patron_attributes_form { $newentry->{auth_val_loop} = GetAuthorisedValues($attr_type->authorised_value_category(), $attr->{value}); } $i++; + undef $newentry->{value} if ($attr_type->unique_id() && $op eq 'duplicate'); $newentry->{form_id} = "patron_attr_$i"; push @{$items_by_class{$attr_type->class()}}, $newentry; } -- 1.7.2.5