Browse Source

Bug 23217: Remove SQL error when batch patron mod and not attribute selected

On the batch patron modification tool, if no patron attribute is selected then
an UPDATE query will be executed anyway. Indeed the form will send a
an empty "patron_attributes" parameter. We need to handle it.

Test plan:
Go to the patron modification tool
Enter a cardnumber
Change a field (like city)
Do not change anything in the patron's attributes
Save
=> Without this patch a SQL error is generated:

DBD::mysql::st execute failed: Cannot add or update a child row: a foreign key constraint fails (`koha_kohadev`.`borrower_attributes`, CONSTRAINT `borrower_attributes_ibfk_2` FOREIGN KEY (`code`) REFERENCES `borrower_attribute_types` (`code`) ON DELETE CASCADE ON UPDATE CASCADE) [for Statement "INSERT INTO borrower_attributes SET attribute = ?, code = ?, borrowernumber = ?" with ParamValues: 0=undef, 1="", 2="51"] at /home/vagrant/kohaclone/C4/Members/Attributes.pm line 287.

=> With this patch applied you will not see it

You should also test that you can modify patron's attributes ;)

Signed-off-by: Hayley Mapley <hayleymapley@catalyst.net.nz>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
remotes/origin/19.11.x
Jonathan Druart 2 years ago
committed by Martin Renvoize
parent
commit
0b2a9b5872
Signed by: martin.renvoize GPG Key ID: 422B469130441A0F
  1. 1
      tools/modborrowers.pl

1
tools/modborrowers.pl

@ -306,6 +306,7 @@ if ( $op eq 'do' ) {
my $borrower_categorycode = Koha::Patrons->find( $borrowernumber )->categorycode;
my $i=0;
for ( @attributes ) {
next unless $_;
my $attribute;
$attribute->{code} = $_;
$attribute->{attribute} = $attr_values[$i];

Loading…
Cancel
Save