Bug 15842 - Cannot import patrons if the csv file does not contain privacy_guarantor_...
authorKyle M Hall <kyle@bywatersolutions.com>
Mon, 15 Feb 2016 12:58:14 +0000 (12:58 +0000)
committerBrendan Gallagher <brendan@bywatersolutions.com>
Wed, 2 Mar 2016 00:52:01 +0000 (00:52 +0000)
When importing patrons with a csv file which does not contain the privacy_guarantor_checkouts column in the header, you will get
DBIx::Class::Storage::DBI::_dbh_execute(): Column 'privacy_guarantor_checkouts' cannot be null at /home/koha/src/C4/Members.pm line 768

The same issue seems to occur for sms_provider_id.

Test Plan:
1) Attempt to import patron csv file with no privacy_guarantor_checkouts column
2) Note the error
3) Apply this patch
4) Repeat step 1
5) The error should no longer occur

NOTE: While this patch does work, should it be solved only
at this level? The issue that there is the lack of those two
fields on the tools screen still exists.

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
C4/Members.pm

index cab4560..8635322 100644 (file)
@@ -746,6 +746,9 @@ sub AddMember {
       : $patron_category->default_privacy() eq 'never'   ? 2
       : $patron_category->default_privacy() eq 'forever' ? 0
       :                                                    undef;
+
+    $data{'privacy_guarantor_checkouts'} = 0 unless defined( $data{'privacy_guarantor_checkouts'} );
+
     # Make a copy of the plain text password for later use
     my $plain_text_password = $data{'password'};
 
@@ -753,8 +756,9 @@ sub AddMember {
     $data{'password'} = ($data{'password'})? hash_password($data{'password'}) : '!';
 
     # we don't want invalid dates in the db (mysql has a bad habit of inserting 0000-00-00
-    $data{'dateofbirth'} = undef if( not $data{'dateofbirth'} );
-    $data{'debarred'} = undef if ( not $data{'debarred'} );
+    $data{'dateofbirth'}     = undef if ( not $data{'dateofbirth'} );
+    $data{'debarred'}        = undef if ( not $data{'debarred'} );
+    $data{'sms_provider_id'} = undef if ( not $data{'sms_provider_id'} );
 
     # get only the columns of Borrower
     my @columns = $schema->source('Borrower')->columns;