View | Details | Raw Unified | Return to bug 20287
Collapse All | Expand All

(-)a/C4/Auth_with_ldap.pm (-1 lines)
Lines 23-29 use Carp; Link Here
23
23
24
use C4::Debug;
24
use C4::Debug;
25
use C4::Context;
25
use C4::Context;
26
use C4::Members qw(AddMember);
27
use C4::Members::Attributes;
26
use C4::Members::Attributes;
28
use C4::Members::AttributeTypes;
27
use C4::Members::AttributeTypes;
29
use C4::Members::Messaging;
28
use C4::Members::Messaging;
(-)a/C4/Members.pm (-7 / +7 lines)
Lines 746-755 sub IssueSlip { Link Here
746
sub AddMember_Auto {
746
sub AddMember_Auto {
747
    my ( %borrower ) = @_;
747
    my ( %borrower ) = @_;
748
748
749
    $borrower{'borrowernumber'} = AddMember(%borrower);
749
    my $patron = Koha::Patron->new(\%borrower)->store;
750
    my $patron = Koha::Patrons->find( $borrower{borrowernumber} )->unblessed;
750
751
    $patron->{password} = $borrower{password};
751
    return %{ $patron->unblessed };
752
    return %$patron;
753
}
752
}
754
753
755
=head2 AddMember_Opac
754
=head2 AddMember_Opac
Lines 760-775 sub AddMember_Opac { Link Here
760
    my ( %borrower ) = @_;
759
    my ( %borrower ) = @_;
761
760
762
    $borrower{'categorycode'} //= C4::Context->preference('PatronSelfRegistrationDefaultCategory');
761
    $borrower{'categorycode'} //= C4::Context->preference('PatronSelfRegistrationDefaultCategory');
763
    if (not defined $borrower{'password'}){
762
    my $password = $borrower{password};
763
    if (not defined $password){
764
        my $sr = new String::Random;
764
        my $sr = new String::Random;
765
        $sr->{'A'} = [ 'A'..'Z', 'a'..'z' ];
765
        $sr->{'A'} = [ 'A'..'Z', 'a'..'z' ];
766
        my $password = $sr->randpattern("AAAAAAAAAA");
766
        $password = $sr->randpattern("AAAAAAAAAA");
767
        $borrower{'password'} = $password;
767
        $borrower{'password'} = $password;
768
    }
768
    }
769
769
770
    %borrower = AddMember_Auto(%borrower);
770
    %borrower = AddMember_Auto(%borrower);
771
771
772
    return ( $borrower{'borrowernumber'}, $borrower{'password'} );
772
    return ( $borrower{'borrowernumber'}, $password );
773
}
773
}
774
774
775
=head2 DeleteExpiredOpacRegistrations
775
=head2 DeleteExpiredOpacRegistrations
(-)a/Koha/NorwegianPatronDB.pm (-1 / +1 lines)
Lines 566-572 sub _format_soap_error { Link Here
566
566
567
=head2 _soap_to_koha_patron
567
=head2 _soap_to_koha_patron
568
568
569
Convert a SOAP object of type "Laaner" into a hash that can be sent to AddMember or ModMember.
569
Convert a SOAP object of type "Laaner" into a hash that can be sent to Koha::Patron
570
570
571
=cut
571
=cut
572
572
(-)a/Koha/Patrons/Import.pm (-11 / +14 lines)
Lines 295-333 sub import_patrons { Link Here
295
            );
295
            );
296
        }
296
        }
297
        else {
297
        else {
298
            if ( $borrowernumber = AddMember(%borrower) ) {
298
            my $patron = eval {
299
                Koha::Patron->new(\%borrower)->store;
300
            };
301
            unless ( $@ ) {
299
302
300
                if ( $borrower{debarred} ) {
303
                if ( $patron->is_debarred ) {
301
                    AddDebarment(
304
                    AddDebarment(
302
                        {
305
                        {
303
                            borrowernumber => $borrowernumber,
306
                            borrowernumber => $patron->borrowernumber,
304
                            expiration     => $borrower{debarred},
307
                            expiration     => $patron->debarred,
305
                            comment        => $borrower{debarredcomment}
308
                            comment        => $patron->debarredcomment,
306
                        }
309
                        }
307
                    );
310
                    );
308
                }
311
                }
309
312
310
                if ($extended) {
313
                if ($extended) {
311
                    SetBorrowerAttributes( $borrowernumber, $patron_attributes );
314
                    SetBorrowerAttributes( $patron->borrowernumber, $patron_attributes );
312
                }
315
                }
313
316
314
                if ($set_messaging_prefs) {
317
                if ($set_messaging_prefs) {
315
                    C4::Members::Messaging::SetMessagingPreferencesFromDefaults(
318
                    C4::Members::Messaging::SetMessagingPreferencesFromDefaults(
316
                        {
319
                        {
317
                            borrowernumber => $borrowernumber,
320
                            borrowernumber => $patron->borrowernumber,
318
                            categorycode   => $borrower{categorycode}
321
                            categorycode   => $patron->categorycode,
319
                        }
322
                        }
320
                    );
323
                    );
321
                }
324
                }
322
325
323
                $imported++;
326
                $imported++;
324
                push @imported_borrowers, $borrowernumber; #for patronlist
327
                push @imported_borrowers, $patron->borrowernumber; #for patronlist
325
                push(
328
                push(
326
                    @feedback,
329
                    @feedback,
327
                    {
330
                    {
328
                        feedback => 1,
331
                        feedback => 1,
329
                        name     => 'lastimported',
332
                        name     => 'lastimported',
330
                        value    => $borrower{'surname'} . ' / ' . $borrowernumber
333
                        value    => $patron->surname . ' / ' . $patron->borrowernumber,
331
                    }
334
                    }
332
                );
335
                );
333
            }
336
            }
Lines 338-344 sub import_patrons { Link Here
338
                    @errors,
341
                    @errors,
339
                    {
342
                    {
340
                        name  => 'lastinvalid',
343
                        name  => 'lastinvalid',
341
                        value => $borrower{'surname'} . ' / AddMember',
344
                        value => $borrower{'surname'} . ' / Create patron',
342
                    }
345
                    }
343
                );
346
                );
344
            }
347
            }
(-)a/installer/onboarding.pl (-5 / +5 lines)
Lines 22-36 use C4::Context; Link Here
22
use C4::InstallAuth;
22
use C4::InstallAuth;
23
use CGI qw ( -utf8 );
23
use CGI qw ( -utf8 );
24
use C4::Output;
24
use C4::Output;
25
use C4::Members;
26
use Koha::Patrons;
25
use Koha::Patrons;
27
use Koha::Libraries;
26
use Koha::Libraries;
28
use Koha::Database;
27
use Koha::Database;
29
use Koha::DateUtils;
28
use Koha::DateUtils;
29
use Koha::Patrons;
30
use Koha::Patron::Categories;
30
use Koha::Patron::Categories;
31
use Koha::Patron::Category;
32
use Koha::ItemTypes;
31
use Koha::ItemTypes;
33
use Koha::IssuingRule;
34
use Koha::IssuingRules;
32
use Koha::IssuingRules;
35
33
36
#Setting variables
34
#Setting variables
Lines 187-196 if ( $step == 3 ) { Link Here
187
            $patron_data->{dateexpiry} =
185
            $patron_data->{dateexpiry} =
188
              $patron_category->get_expiry_date( $patron_data->{dateenrolled} );
186
              $patron_category->get_expiry_date( $patron_data->{dateenrolled} );
189
187
190
            my $borrowernumber = C4::Members::AddMember(%$patron_data);
188
            eval {
189
                Koha::Patron->new($patron_data)->store;
190
            };
191
191
192
            #Error handling checking if the patron was created successfully
192
            #Error handling checking if the patron was created successfully
193
            if ($borrowernumber) {
193
            unless ($@) {
194
                push @messages, { code => 'success_on_insert_patron' };
194
                push @messages, { code => 'success_on_insert_patron' };
195
            }
195
            }
196
            else {
196
            else {
(-)a/members/memberentry.pl (-2 / +10 lines)
Lines 222-227 if ( $op eq 'insert' || $op eq 'modify' || $op eq 'save' || $op eq 'duplicate' ) Link Here
222
        qr/^\d+$/,
222
        qr/^\d+$/,
223
        qr/^\d+-DAYS/,
223
        qr/^\d+-DAYS/,
224
        qr/^patron_attr_/,
224
        qr/^patron_attr_/,
225
        qr/^csrf_token$/,
225
    );
226
    );
226
    for my $regexp (@keys_to_delete) {
227
    for my $regexp (@keys_to_delete) {
227
        for (keys %newdata) {
228
        for (keys %newdata) {
Lines 422-429 if ((!$nok) and $nodouble and ($op eq 'insert' or $op eq 'save')){ Link Here
422
	$debug and warn "$op dates: " . join "\t", map {"$_: $newdata{$_}"} qw(dateofbirth dateenrolled dateexpiry);
423
	$debug and warn "$op dates: " . join "\t", map {"$_: $newdata{$_}"} qw(dateofbirth dateenrolled dateexpiry);
423
	if ($op eq 'insert'){
424
	if ($op eq 'insert'){
424
		# we know it's not a duplicate borrowernumber or there would already be an error
425
		# we know it's not a duplicate borrowernumber or there would already be an error
425
        $borrowernumber = &AddMember(%newdata);
426
        delete $newdata{password2};
426
        $newdata{'borrowernumber'} = $borrowernumber;
427
        my $patron = eval { Koha::Patron->new(\%newdata)->store };
428
        if ( $@ ) {
429
            # FIXME Urgent error handling here, we cannot fail without relevant feedback
430
            # Lot of code will need to be removed from this script to handle exceptions raised by Koha::Patron->store
431
            warn "Patron creation failed! - $@"; # Maybe we must die instead of just warn
432
        } else {
433
            $borrowernumber = $patron->borrowernumber;
434
        }
427
435
428
        # If 'AutoEmailOpacUser' syspref is on, email user their account details from the 'notice' that matches the user's branchcode.
436
        # If 'AutoEmailOpacUser' syspref is on, email user their account details from the 'notice' that matches the user's branchcode.
429
        if ( C4::Context->preference("AutoEmailOpacUser") == 1 && $newdata{'userid'}  && $newdata{'password'}) {
437
        if ( C4::Context->preference("AutoEmailOpacUser") == 1 && $newdata{'userid'}  && $newdata{'password'}) {
(-)a/members/nl-search.pl (-4 / +5 lines)
Lines 39-50 use CGI; Link Here
39
use C4::Auth;
39
use C4::Auth;
40
use C4::Context;
40
use C4::Context;
41
use C4::Output;
41
use C4::Output;
42
use C4::Members;
43
use C4::Members::Attributes qw( SetBorrowerAttributes );
42
use C4::Members::Attributes qw( SetBorrowerAttributes );
44
use C4::Utils::DataTables::Members;
43
use C4::Utils::DataTables::Members;
45
use Koha::NorwegianPatronDB qw( NLCheckSysprefs NLSearch NLDecodePin NLGetFirstname NLGetSurname NLSync );
44
use Koha::NorwegianPatronDB qw( NLCheckSysprefs NLSearch NLDecodePin NLGetFirstname NLGetSurname NLSync );
46
use Koha::Database;
45
use Koha::Database;
47
use Koha::DateUtils;
46
use Koha::DateUtils;
47
use Koha::Patrons;
48
use Koha::Patron::Categories;
48
use Koha::Patron::Categories;
49
49
50
my $cgi = CGI->new;
50
my $cgi = CGI->new;
Lines 134-146 if ( $op && $op eq 'search' ) { Link Here
134
        'categorycode' => scalar $cgi->param('categorycode'),
134
        'categorycode' => scalar $cgi->param('categorycode'),
135
    );
135
    );
136
    # Add the new patron
136
    # Add the new patron
137
    my $borrowernumber = &AddMember(%borrower);
137
    my $patron = eval { Koha::Patron->new(\%borrower)->store; };
138
    if ( $borrowernumber ) {
138
    unless ( $@) {
139
        my $borrowernumber = $patron->borrowernumber;
139
        # Add extended patron attributes
140
        # Add extended patron attributes
140
        SetBorrowerAttributes($borrowernumber, [
141
        SetBorrowerAttributes($borrowernumber, [
141
            { code => 'fnr', value => scalar $cgi->param('fnr_hash') },
142
            { code => 'fnr', value => scalar $cgi->param('fnr_hash') },
142
        ], 'no_branch_limit' );
143
        ], 'no_branch_limit' );
143
        # Override the default sync data created by AddMember
144
        # Override the default sync data created by Koha::Patron->store
144
        my $borrowersync = Koha::Database->new->schema->resultset('BorrowerSync')->find({
145
        my $borrowersync = Koha::Database->new->schema->resultset('BorrowerSync')->find({
145
            'synctype'       => 'norwegianpatrondb',
146
            'synctype'       => 'norwegianpatrondb',
146
            'borrowernumber' => $borrowernumber,
147
            'borrowernumber' => $borrowernumber,
(-)a/misc/devel/create_superlibrarian.pl (-3 / +3 lines)
Lines 21-27 use Modern::Perl; Link Here
21
use Getopt::Long;
21
use Getopt::Long;
22
use Pod::Usage;
22
use Pod::Usage;
23
23
24
use C4::Members;
24
use Koha::Patrons;
25
25
26
my ( $help, $surname, $userid, $password, $branchcode, $categorycode, $cardnumber );
26
my ( $help, $surname, $userid, $password, $branchcode, $categorycode, $cardnumber );
27
GetOptions(
27
GetOptions(
Lines 40-46 pod2usage("branchcode is mandatory") unless $branchcode; Link Here
40
pod2usage("categorycode is mandatory") unless $categorycode;
40
pod2usage("categorycode is mandatory") unless $categorycode;
41
pod2usage("cardnumber is mandatory")   unless $cardnumber;
41
pod2usage("cardnumber is mandatory")   unless $cardnumber;
42
42
43
C4::Members::AddMember(
43
Koha::Patron->new({
44
    surname      => $surname,
44
    surname      => $surname,
45
    userid       => $userid,
45
    userid       => $userid,
46
    cardnumber   => $cardnumber,
46
    cardnumber   => $cardnumber,
Lines 48-54 C4::Members::AddMember( Link Here
48
    categorycode => $categorycode,
48
    categorycode => $categorycode,
49
    password     => $password,
49
    password     => $password,
50
    flags        => 1,
50
    flags        => 1,
51
);
51
})->store;
52
52
53
=head1 NAME
53
=head1 NAME
54
54
(-)a/opac/svc/auth/googleopenidconnect (-5 / +3 lines)
Lines 34-40 use Modern::Perl; Link Here
34
use CGI qw ( -utf8 escape );
34
use CGI qw ( -utf8 escape );
35
use C4::Auth qw{ checkauth get_session get_template_and_user };
35
use C4::Auth qw{ checkauth get_session get_template_and_user };
36
use C4::Context;
36
use C4::Context;
37
use C4::Members;
38
use C4::Output;
37
use C4::Output;
39
use Koha::Patrons;
38
use Koha::Patrons;
40
39
Lines 196-202 elsif ( defined $query->param('code') ) { Link Here
196
                    my $library = Koha::Libraries->find( $branchcode );
195
                    my $library = Koha::Libraries->find( $branchcode );
197
                    if (defined $patron_category && defined $library) {
196
                    if (defined $patron_category && defined $library) {
198
                        my $password = undef;
197
                        my $password = undef;
199
                        my $borrowernumber = C4::Members::AddMember(
198
                        # TODO errors handling!
199
                        my $borrower = Koha::Patron->new(
200
                            firstname    => $firstname,
200
                            firstname    => $firstname,
201
                            surname      => $surname,
201
                            surname      => $surname,
202
                            email        => $email,
202
                            email        => $email,
Lines 204-212 elsif ( defined $query->param('code') ) { Link Here
204
                            branchcode   => $branchcode,
204
                            branchcode   => $branchcode,
205
                            userid       => $userid,
205
                            userid       => $userid,
206
                            password     => $password
206
                            password     => $password
207
                        );
207
                        )->store;
208
                        $borrower = Koha::Patrons->find( {
209
                            borrowernumber => $borrowernumber } );
210
                    } else {
208
                    } else {
211
                        $error_feedback = 'The GoogleOpenIDConnectDefaultBranch or GoogleOpenIDConnectDefaultCategory system preferences are not configured properly. Please contact the library with this error message.';
209
                        $error_feedback = 'The GoogleOpenIDConnectDefaultBranch or GoogleOpenIDConnectDefaultCategory system preferences are not configured properly. Please contact the library with this error message.';
212
                    }
210
                    }
(-)a/t/db_dependent/Acquisition/OrderUsers.t (-2 / +3 lines)
Lines 7-12 use C4::Letters; Link Here
7
use Koha::Database;
7
use Koha::Database;
8
use Koha::Acquisition::Booksellers;
8
use Koha::Acquisition::Booksellers;
9
use Koha::Acquisition::Orders;
9
use Koha::Acquisition::Orders;
10
use Koha::Patrons;
10
11
11
use t::lib::TestBuilder;
12
use t::lib::TestBuilder;
12
13
Lines 65-71 my $invoiceid = AddInvoice( Link Here
65
    unknown       => "unknown"
66
    unknown       => "unknown"
66
);
67
);
67
68
68
my $borrowernumber = C4::Members::AddMember(
69
my $borrowernumber = Koha::Patron->new({
69
    cardnumber => 'TESTCARD',
70
    cardnumber => 'TESTCARD',
70
    firstname =>  'TESTFN',
71
    firstname =>  'TESTFN',
71
    surname => 'TESTSN',
72
    surname => 'TESTSN',
Lines 74-80 my $borrowernumber = C4::Members::AddMember( Link Here
74
    dateofbirth => '',
75
    dateofbirth => '',
75
    dateexpiry => '9999-12-31',
76
    dateexpiry => '9999-12-31',
76
    userid => 'TESTUSERID'
77
    userid => 'TESTUSERID'
77
);
78
})->store->borrowernumber;
78
79
79
C4::Acquisition::ModOrderUsers( $ordernumber, $borrowernumber );
80
C4::Acquisition::ModOrderUsers( $ordernumber, $borrowernumber );
80
81
(-)a/t/db_dependent/Budgets.t (-5 / +5 lines)
Lines 8-17 BEGIN { Link Here
8
use C4::Context;
8
use C4::Context;
9
use C4::Biblio;
9
use C4::Biblio;
10
use C4::Acquisition;
10
use C4::Acquisition;
11
use C4::Members qw( AddMember );
12
11
13
use Koha::Acquisition::Booksellers;
12
use Koha::Acquisition::Booksellers;
14
use Koha::Acquisition::Orders;
13
use Koha::Acquisition::Orders;
14
use Koha::Patrons;
15
15
16
use t::lib::TestBuilder;
16
use t::lib::TestBuilder;
17
17
Lines 681-687 for my $new_budget ( @new_budgets ) { Link Here
681
681
682
my $patron_category = $builder->build({ source => 'Category' });
682
my $patron_category = $builder->build({ source => 'Category' });
683
my $branchcode = $library->{branchcode};
683
my $branchcode = $library->{branchcode};
684
my $john_doe = C4::Members::AddMember(
684
my $john_doe = Koha::Patron->new({
685
    cardnumber   => '123456',
685
    cardnumber   => '123456',
686
    firstname    => 'John',
686
    firstname    => 'John',
687
    surname      => 'Doe',
687
    surname      => 'Doe',
Lines 690-696 my $john_doe = C4::Members::AddMember( Link Here
690
    dateofbirth  => '',
690
    dateofbirth  => '',
691
    dateexpiry   => '9999-12-31',
691
    dateexpiry   => '9999-12-31',
692
    userid       => 'john.doe'
692
    userid       => 'john.doe'
693
);
693
})->store->borrowernumber;
694
694
695
C4::Budgets::SetOwnerToFundHierarchy( $budget_id1, $john_doe );
695
C4::Budgets::SetOwnerToFundHierarchy( $budget_id1, $john_doe );
696
is( C4::Budgets::GetBudget($budget_id1)->{budget_owner_id},
696
is( C4::Budgets::GetBudget($budget_id1)->{budget_owner_id},
Lines 706-712 is( C4::Budgets::GetBudget($budget_id2)->{budget_owner_id}, Link Here
706
is( C4::Budgets::GetBudget($budget_id21)->{budget_owner_id},
706
is( C4::Budgets::GetBudget($budget_id21)->{budget_owner_id},
707
    undef, "SetOwnerToFundHierarchy should not have set an owner for budget 21 ($budget_id21)" );
707
    undef, "SetOwnerToFundHierarchy should not have set an owner for budget 21 ($budget_id21)" );
708
708
709
my $jane_doe = C4::Members::AddMember(
709
my $jane_doe = Koha::Patron->new({
710
    cardnumber   => '789012',
710
    cardnumber   => '789012',
711
    firstname    => 'Jane',
711
    firstname    => 'Jane',
712
    surname      => 'Doe',
712
    surname      => 'Doe',
Lines 715-721 my $jane_doe = C4::Members::AddMember( Link Here
715
    dateofbirth  => '',
715
    dateofbirth  => '',
716
    dateexpiry   => '9999-12-31',
716
    dateexpiry   => '9999-12-31',
717
    userid       => 'jane.doe'
717
    userid       => 'jane.doe'
718
);
718
})->store->borrowernumber;
719
719
720
C4::Budgets::SetOwnerToFundHierarchy( $budget_id11, $jane_doe );
720
C4::Budgets::SetOwnerToFundHierarchy( $budget_id11, $jane_doe );
721
is( C4::Budgets::GetBudget($budget_id1)->{budget_owner_id},
721
is( C4::Budgets::GetBudget($budget_id1)->{budget_owner_id},
(-)a/t/db_dependent/Circulation.t (-17 / +16 lines)
Lines 29-35 use C4::Circulation; Link Here
29
use C4::Biblio;
29
use C4::Biblio;
30
use C4::Items;
30
use C4::Items;
31
use C4::Log;
31
use C4::Log;
32
use C4::Members;
33
use C4::Reserves;
32
use C4::Reserves;
34
use C4::Overdues qw(UpdateFine CalcFine);
33
use C4::Overdues qw(UpdateFine CalcFine);
35
use Koha::DateUtils;
34
use Koha::DateUtils;
Lines 307-317 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
307
        dateexpiry => dt_from_string->subtract( months => 1 ),
306
        dateexpiry => dt_from_string->subtract( months => 1 ),
308
    );
307
    );
309
308
310
    my $renewing_borrowernumber = AddMember(%renewing_borrower_data);
309
    my $renewing_borrowernumber = Koha::Patron->new(\%renewing_borrower_data)->store->borrowernumber;
311
    my $reserving_borrowernumber = AddMember(%reserving_borrower_data);
310
    my $reserving_borrowernumber = Koha::Patron->new(\%reserving_borrower_data)->store->borrowernumber;
312
    my $hold_waiting_borrowernumber = AddMember(%hold_waiting_borrower_data);
311
    my $hold_waiting_borrowernumber = Koha::Patron->new(\%hold_waiting_borrower_data)->store->borrowernumber;
313
    my $restricted_borrowernumber = AddMember(%restricted_borrower_data);
312
    my $restricted_borrowernumber = Koha::Patron->new(\%restricted_borrower_data)->store->borrowernumber;
314
    my $expired_borrowernumber = AddMember(%expired_borrower_data);
313
    my $expired_borrowernumber = Koha::Patron->new(\%expired_borrower_data)->store->borrowernumber;
315
314
316
    my $renewing_borrower = Koha::Patrons->find( $renewing_borrowernumber )->unblessed;
315
    my $renewing_borrower = Koha::Patrons->find( $renewing_borrowernumber )->unblessed;
317
    my $restricted_borrower = Koha::Patrons->find( $restricted_borrowernumber )->unblessed;
316
    my $restricted_borrower = Koha::Patrons->find( $restricted_borrowernumber )->unblessed;
Lines 936-942 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
936
        branchcode => $branch,
935
        branchcode => $branch,
937
    );
936
    );
938
937
939
    my $a_borrower_borrowernumber = AddMember(%a_borrower_data);
938
    my $a_borrower_borrowernumber = Koha::Patron->new(\%a_borrower_data)->store->borrowernumber;
940
    my $a_borrower = Koha::Patrons->find( $a_borrower_borrowernumber )->unblessed;
939
    my $a_borrower = Koha::Patrons->find( $a_borrower_borrowernumber )->unblessed;
941
940
942
    my $yesterday = DateTime->today(time_zone => C4::Context->tz())->add( days => -1 );
941
    my $yesterday = DateTime->today(time_zone => C4::Context->tz())->add( days => -1 );
Lines 1015-1021 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
1015
        branchcode => $branch,
1014
        branchcode => $branch,
1016
    );
1015
    );
1017
1016
1018
    my $borrowernumber = AddMember(%a_borrower_data);
1017
    my $borrowernumber = Koha::Patron->new(\%a_borrower_data)->store->borrowernumber;
1019
1018
1020
    my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
1019
    my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
1021
    my $issue = AddIssue( $borrower, $barcode );
1020
    my $issue = AddIssue( $borrower, $barcode );
Lines 1074-1091 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
1074
        $biblionumber
1073
        $biblionumber
1075
    );
1074
    );
1076
1075
1077
    my $borrowernumber1 = AddMember(
1076
    my $borrowernumber1 = Koha::Patron->new({
1078
        firstname    => 'Kyle',
1077
        firstname    => 'Kyle',
1079
        surname      => 'Hall',
1078
        surname      => 'Hall',
1080
        categorycode => $patron_category->{categorycode},
1079
        categorycode => $patron_category->{categorycode},
1081
        branchcode   => $library2->{branchcode},
1080
        branchcode   => $library2->{branchcode},
1082
    );
1081
    })->store->borrowernumber;
1083
    my $borrowernumber2 = AddMember(
1082
    my $borrowernumber2 = Koha::Patron->new({
1084
        firstname    => 'Chelsea',
1083
        firstname    => 'Chelsea',
1085
        surname      => 'Hall',
1084
        surname      => 'Hall',
1086
        categorycode => $patron_category->{categorycode},
1085
        categorycode => $patron_category->{categorycode},
1087
        branchcode   => $library2->{branchcode},
1086
        branchcode   => $library2->{branchcode},
1088
    );
1087
    })->store->borrowernumber;
1089
1088
1090
    my $borrower1 = Koha::Patrons->find( $borrowernumber1 )->unblessed;
1089
    my $borrower1 = Koha::Patrons->find( $borrowernumber1 )->unblessed;
1091
    my $borrower2 = Koha::Patrons->find( $borrowernumber2 )->unblessed;
1090
    my $borrower2 = Koha::Patrons->find( $borrowernumber2 )->unblessed;
Lines 1146-1157 C4::Context->dbh->do("DELETE FROM accountlines"); Link Here
1146
        $biblionumber
1145
        $biblionumber
1147
    );
1146
    );
1148
1147
1149
    my $borrowernumber = AddMember(
1148
    my $borrowernumber = Koha::Patron->new({
1150
        firstname =>  'fn',
1149
        firstname =>  'fn',
1151
        surname => 'dn',
1150
        surname => 'dn',
1152
        categorycode => $patron_category->{categorycode},
1151
        categorycode => $patron_category->{categorycode},
1153
        branchcode => $branch,
1152
        branchcode => $branch,
1154
    );
1153
    })->store->borrowernumber;
1155
1154
1156
    my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
1155
    my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
1157
1156
Lines 1507-1513 subtest 'MultipleReserves' => sub { Link Here
1507
        categorycode => $patron_category->{categorycode},
1506
        categorycode => $patron_category->{categorycode},
1508
        branchcode => $branch,
1507
        branchcode => $branch,
1509
    );
1508
    );
1510
    my $renewing_borrowernumber = AddMember(%renewing_borrower_data);
1509
    my $renewing_borrowernumber = Koha::Patron->new(\%renewing_borrower_data)->store->borrowernumber;
1511
    my $renewing_borrower = Koha::Patrons->find( $renewing_borrowernumber )->unblessed;
1510
    my $renewing_borrower = Koha::Patrons->find( $renewing_borrowernumber )->unblessed;
1512
    my $issue = AddIssue( $renewing_borrower, $barcode1);
1511
    my $issue = AddIssue( $renewing_borrower, $barcode1);
1513
    my $datedue = dt_from_string( $issue->date_due() );
1512
    my $datedue = dt_from_string( $issue->date_due() );
Lines 1520-1526 subtest 'MultipleReserves' => sub { Link Here
1520
        categorycode => $patron_category->{categorycode},
1519
        categorycode => $patron_category->{categorycode},
1521
        branchcode => $branch,
1520
        branchcode => $branch,
1522
    );
1521
    );
1523
    my $reserving_borrowernumber1 = AddMember(%reserving_borrower_data1);
1522
    my $reserving_borrowernumber1 = Koha::Patron->new(\%reserving_borrower_data1)->store->borrowernumber;
1524
    AddReserve(
1523
    AddReserve(
1525
        $branch, $reserving_borrowernumber1, $biblionumber,
1524
        $branch, $reserving_borrowernumber1, $biblionumber,
1526
        $bibitems,  $priority, $resdate, $expdate, $notes,
1525
        $bibitems,  $priority, $resdate, $expdate, $notes,
Lines 1533-1539 subtest 'MultipleReserves' => sub { Link Here
1533
        categorycode => $patron_category->{categorycode},
1532
        categorycode => $patron_category->{categorycode},
1534
        branchcode => $branch,
1533
        branchcode => $branch,
1535
    );
1534
    );
1536
    my $reserving_borrowernumber2 = AddMember(%reserving_borrower_data2);
1535
    my $reserving_borrowernumber2 = Koha::Patron->new(\%reserving_borrower_data2)->store->borrowernumber;
1537
    AddReserve(
1536
    AddReserve(
1538
        $branch, $reserving_borrowernumber2, $biblionumber,
1537
        $branch, $reserving_borrowernumber2, $biblionumber,
1539
        $bibitems,  $priority, $resdate, $expdate, $notes,
1538
        $bibitems,  $priority, $resdate, $expdate, $notes,
(-)a/t/db_dependent/Circulation/Branch.t (-3 / +4 lines)
Lines 18-28 Link Here
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use C4::Biblio;
20
use C4::Biblio;
21
use C4::Members;
22
use C4::Circulation;
21
use C4::Circulation;
23
use C4::Items;
22
use C4::Items;
24
use C4::Context;
23
use C4::Context;
25
24
25
use Koha::Patrons;
26
26
use Test::More tests => 14;
27
use Test::More tests => 14;
27
use t::lib::Mocks;
28
use t::lib::Mocks;
28
use t::lib::TestBuilder;
29
use t::lib::TestBuilder;
Lines 138-149 my @sampleitem3 = C4::Items::AddItem( Link Here
138
my $item_id3 = $sampleitem3[2];
139
my $item_id3 = $sampleitem3[2];
139
140
140
#Add borrower
141
#Add borrower
141
my $borrower_id1 = C4::Members::AddMember(
142
my $borrower_id1 = Koha::Patron->new({
142
    firstname    => 'firstname1',
143
    firstname    => 'firstname1',
143
    surname      => 'surname1 ',
144
    surname      => 'surname1 ',
144
    categorycode => $samplecat->{categorycode},
145
    categorycode => $samplecat->{categorycode},
145
    branchcode   => $samplebranch1->{branchcode},
146
    branchcode   => $samplebranch1->{branchcode},
146
);
147
})->store->borrowernumber;
147
148
148
is_deeply(
149
is_deeply(
149
    GetBranchBorrowerCircRule(),
150
    GetBranchBorrowerCircRule(),
(-)a/t/db_dependent/Circulation/Chargelostitem.t (-2 / +3 lines)
Lines 9-16 use t::lib::TestBuilder; Link Here
9
9
10
use C4::Biblio;
10
use C4::Biblio;
11
use C4::Items;
11
use C4::Items;
12
use C4::Members;
13
use C4::Circulation;
12
use C4::Circulation;
13
use Koha::Patrons;
14
use MARC::Record;
14
use MARC::Record;
15
15
16
BEGIN {
16
BEGIN {
Lines 55-61 my $categorycode = $builder->build({ Link Here
55
    source => 'Category'
55
    source => 'Category'
56
})->{categorycode};
56
})->{categorycode};
57
57
58
my $borrowernumber = AddMember(categorycode => $categorycode, branchcode => $branchcode);
58
my $borrowernumber = Koha::Patron->new({categorycode => $categorycode, branchcode => $branchcode})->store->borrowernumber;
59
# TODO following code must be simplified to use the Koha::Patron object
59
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed();
60
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed();
60
61
61
# Need to mock userenv for AddIssue
62
# Need to mock userenv for AddIssue
(-)a/t/db_dependent/Circulation/CheckIfIssuedToPatron.t (-3 / +3 lines)
Lines 23-29 use t::lib::TestBuilder; Link Here
23
23
24
use C4::Biblio;
24
use C4::Biblio;
25
use C4::Items;
25
use C4::Items;
26
use C4::Members;
27
use Koha::Library;
26
use Koha::Library;
28
use Koha::Patrons;
27
use Koha::Patrons;
29
use MARC::Record;
28
use MARC::Record;
Lines 73-80 my ($biblionumber2) = AddBiblio(MARC::Record->new, ''); Link Here
73
my $barcode2 = '0202';
72
my $barcode2 = '0202';
74
AddItem({ barcode => $barcode2, %item_info }, $biblionumber2);
73
AddItem({ barcode => $barcode2, %item_info }, $biblionumber2);
75
74
76
my $borrowernumber1 = AddMember(categorycode => $categorycode, branchcode => $branchcode);
75
my $borrowernumber1 = Koha::Patron->new({categorycode => $categorycode, branchcode => $branchcode})->store->borrowernumber;
77
my $borrowernumber2 = AddMember(categorycode => $categorycode, branchcode => $branchcode);
76
my $borrowernumber2 = Koha::Patron->new({categorycode => $categorycode, branchcode => $branchcode})->store->borrowernumber;
77
# FIXME following code must be simplified to use the Koha::Patron objects
78
my $borrower1 = Koha::Patrons->find( $borrowernumber1 )->unblessed;
78
my $borrower1 = Koha::Patrons->find( $borrowernumber1 )->unblessed;
79
my $borrower2 = Koha::Patrons->find( $borrowernumber2 )->unblessed;
79
my $borrower2 = Koha::Patrons->find( $borrowernumber2 )->unblessed;
80
80
(-)a/t/db_dependent/Circulation/GetTopIssues.t (-3 / +2 lines)
Lines 26-32 use C4::Context; Link Here
26
use C4::Circulation;
26
use C4::Circulation;
27
use C4::Biblio;
27
use C4::Biblio;
28
use C4::Items;
28
use C4::Items;
29
use C4::Members;
30
29
31
use Koha::Database;
30
use Koha::Database;
32
use Koha::Patrons;
31
use Koha::Patrons;
Lines 63-73 AddItem({ Link Here
63
    homebranch => $branch_2->{ branchcode },
62
    homebranch => $branch_2->{ branchcode },
64
}, $biblionumber);
63
}, $biblionumber);
65
64
66
my $borrowernumber = AddMember(
65
my $borrowernumber = Koha::Patron->new({
67
    userid => 'gti.test',
66
    userid => 'gti.test',
68
    categorycode => $category,
67
    categorycode => $category,
69
    branchcode => $branch_1->{ branchcode }
68
    branchcode => $branch_1->{ branchcode }
70
);
69
})->store->borrowernumber;
71
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
70
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
72
71
73
AddIssue($borrower, 'GTI_BARCODE_001');
72
AddIssue($borrower, 'GTI_BARCODE_001');
(-)a/t/db_dependent/Circulation/IsItemIssued.t (-3 / +2 lines)
Lines 23-29 use Test::MockModule; Link Here
23
use C4::Biblio;
23
use C4::Biblio;
24
use C4::Circulation;
24
use C4::Circulation;
25
use C4::Items;
25
use C4::Items;
26
use C4::Members;
27
use Koha::Database;
26
use Koha::Database;
28
use Koha::DateUtils;
27
use Koha::DateUtils;
29
use Koha::Patrons;
28
use Koha::Patrons;
Lines 49-60 C4::Context->set_userenv( Link Here
49
48
50
49
51
50
52
my $borrowernumber = AddMember(
51
my $borrowernumber = Koha::Patron->new({
53
    firstname =>  'my firstname',
52
    firstname =>  'my firstname',
54
    surname => 'my surname',
53
    surname => 'my surname',
55
    categorycode => $patron_category->{categorycode},
54
    categorycode => $patron_category->{categorycode},
56
    branchcode => $library->{branchcode},
55
    branchcode => $library->{branchcode},
57
);
56
})->store->borrowernumber;
58
57
59
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
58
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
60
my $record = MARC::Record->new();
59
my $record = MARC::Record->new();
(-)a/t/db_dependent/Circulation/IssuingRules/maxsuspensiondays.t (-3 / +3 lines)
Lines 8-17 use C4::Context; Link Here
8
use C4::Biblio qw( AddBiblio );
8
use C4::Biblio qw( AddBiblio );
9
use C4::Circulation qw( AddIssue AddReturn );
9
use C4::Circulation qw( AddIssue AddReturn );
10
use C4::Items qw( AddItem );
10
use C4::Items qw( AddItem );
11
use C4::Members qw( AddMember );
12
use Koha::Database;
11
use Koha::Database;
13
use Koha::DateUtils;
12
use Koha::DateUtils;
14
use Koha::Patron::Debarments qw( GetDebarments DelDebarment );
13
use Koha::Patron::Debarments qw( GetDebarments DelDebarment );
14
use Koha::Patrons;
15
15
16
use t::lib::TestBuilder;
16
use t::lib::TestBuilder;
17
17
Lines 46-57 $builder->build( Link Here
46
    }
46
    }
47
);
47
);
48
48
49
my $borrowernumber = AddMember(
49
my $borrowernumber = Koha::Patron->new({
50
    firstname =>  'my firstname',
50
    firstname =>  'my firstname',
51
    surname => 'my surname',
51
    surname => 'my surname',
52
    categorycode => $patron_category->{categorycode},
52
    categorycode => $patron_category->{categorycode},
53
    branchcode => $branchcode,
53
    branchcode => $branchcode,
54
);
54
})->store->borrowernumber;
55
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
55
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
56
56
57
my $record = MARC::Record->new();
57
my $record = MARC::Record->new();
(-)a/t/db_dependent/Circulation/MarkIssueReturned.t (-2 / +2 lines)
Lines 25-33 use t::lib::TestBuilder; Link Here
25
25
26
use C4::Circulation;
26
use C4::Circulation;
27
use C4::Context;
27
use C4::Context;
28
use C4::Members;
29
use Koha::Checkouts;
28
use Koha::Checkouts;
30
use Koha::Database;
29
use Koha::Database;
30
use Koha::Patrons;
31
31
32
my $schema = Koha::Database->schema;
32
my $schema = Koha::Database->schema;
33
$schema->storage->txn_begin;
33
$schema->storage->txn_begin;
Lines 66-72 subtest 'anonymous patron' => sub { Link Here
66
    like ( $@, qr<Fatal error: the patron \(\d+\) .* AnonymousPatron>, 'AnonymousPatron is not set - Fatal error on anonymization' );
66
    like ( $@, qr<Fatal error: the patron \(\d+\) .* AnonymousPatron>, 'AnonymousPatron is not set - Fatal error on anonymization' );
67
    Koha::Checkouts->find( $issue->issue_id )->delete;
67
    Koha::Checkouts->find( $issue->issue_id )->delete;
68
68
69
    my $anonymous_borrowernumber = C4::Members::AddMember( categorycode => $patron_category->{categorycode}, branchcode => $library->{branchcode} );
69
    my $anonymous_borrowernumber = Koha::Patron->new({categorycode => $patron_category->{categorycode}, branchcode => $library->{branchcode} })->store->borrowernumber;
70
    t::lib::Mocks::mock_preference('AnonymousPatron', $anonymous_borrowernumber);
70
    t::lib::Mocks::mock_preference('AnonymousPatron', $anonymous_borrowernumber);
71
    $issue = C4::Circulation::AddIssue( $patron, $item->{barcode} );
71
    $issue = C4::Circulation::AddIssue( $patron, $item->{barcode} );
72
    eval { C4::Circulation::MarkIssueReturned( $patron->{borrowernumber}, $item->{itemnumber}, 'dropbox_branch', 'returndate', 2 ) };
72
    eval { C4::Circulation::MarkIssueReturned( $patron->{borrowernumber}, $item->{itemnumber}, 'dropbox_branch', 'returndate', 2 ) };
(-)a/t/db_dependent/Circulation/issue.t (-5 / +4 lines)
Lines 27-33 use C4::Biblio; Link Here
27
use C4::Circulation;
27
use C4::Circulation;
28
use C4::Context;
28
use C4::Context;
29
use C4::Items;
29
use C4::Items;
30
use C4::Members;
31
use C4::Reserves;
30
use C4::Reserves;
32
use Koha::Checkouts;
31
use Koha::Checkouts;
33
use Koha::Database;
32
use Koha::Database;
Lines 143-161 my @sampleitem2 = C4::Items::AddItem( Link Here
143
my $item_id2 = $sampleitem2[2];
142
my $item_id2 = $sampleitem2[2];
144
143
145
#Add borrower
144
#Add borrower
146
my $borrower_id1 = C4::Members::AddMember(
145
my $borrower_id1 = Koha::Patron->new({
147
    firstname    => 'firstname1',
146
    firstname    => 'firstname1',
148
    surname      => 'surname1 ',
147
    surname      => 'surname1 ',
149
    categorycode => $categorycode,
148
    categorycode => $categorycode,
150
    branchcode   => $branchcode_1
149
    branchcode   => $branchcode_1
151
);
150
})->store->borrowernumber;
152
my $borrower_1 = Koha::Patrons->find( $borrower_id1 )->unblessed;
151
my $borrower_1 = Koha::Patrons->find( $borrower_id1 )->unblessed;
153
my $borrower_id2 = C4::Members::AddMember(
152
my $borrower_id2 = Koha::Patron->new({
154
    firstname    => 'firstname2',
153
    firstname    => 'firstname2',
155
    surname      => 'surname2 ',
154
    surname      => 'surname2 ',
156
    categorycode => $categorycode,
155
    categorycode => $categorycode,
157
    branchcode   => $branchcode_2,
156
    branchcode   => $branchcode_2,
158
);
157
})->store->borrowernumber;
159
my $borrower_2 = Koha::Patrons->find( $borrower_id2 )->unblessed;
158
my $borrower_2 = Koha::Patrons->find( $borrower_id2 )->unblessed;
160
159
161
my @USERENV = (
160
my @USERENV = (
(-)a/t/db_dependent/Holds.t (-3 / +2 lines)
Lines 11-17 use Test::More tests => 55; Link Here
11
use MARC::Record;
11
use MARC::Record;
12
use C4::Biblio;
12
use C4::Biblio;
13
use C4::Items;
13
use C4::Items;
14
use C4::Members;
15
use C4::Calendar;
14
use C4::Calendar;
16
use Koha::Database;
15
use Koha::Database;
17
use Koha::DateUtils qw( dt_from_string output_pref );
16
use Koha::DateUtils qw( dt_from_string output_pref );
Lines 58-69 my ($item_bibnum, $item_bibitemnum, $itemnumber) Link Here
58
# Create some borrowers
57
# Create some borrowers
59
my @borrowernumbers;
58
my @borrowernumbers;
60
foreach (1..$borrowers_count) {
59
foreach (1..$borrowers_count) {
61
    my $borrowernumber = AddMember(
60
    my $borrowernumber = Koha::Patron->new({
62
        firstname =>  'my firstname',
61
        firstname =>  'my firstname',
63
        surname => 'my surname ' . $_,
62
        surname => 'my surname ' . $_,
64
        categorycode => $category->{categorycode},
63
        categorycode => $category->{categorycode},
65
        branchcode => $branch_1,
64
        branchcode => $branch_1,
66
    );
65
    })->store->borrowernumber;
67
    push @borrowernumbers, $borrowernumber;
66
    push @borrowernumbers, $borrowernumber;
68
}
67
}
69
68
(-)a/t/db_dependent/Holds/LocalHoldsPriority.t (-3 / +3 lines)
Lines 9-16 use Test::More tests => 6; Link Here
9
use MARC::Record;
9
use MARC::Record;
10
use C4::Biblio;
10
use C4::Biblio;
11
use C4::Items;
11
use C4::Items;
12
use C4::Members;
13
use Koha::Database;
12
use Koha::Database;
13
use Koha::Patrons;
14
14
15
use t::lib::TestBuilder;
15
use t::lib::TestBuilder;
16
16
Lines 57-68 my $patron_category = $builder->build({ source => 'Category' }); Link Here
57
# Create some borrowers
57
# Create some borrowers
58
my @borrowernumbers;
58
my @borrowernumbers;
59
foreach ( 1 .. $borrowers_count ) {
59
foreach ( 1 .. $borrowers_count ) {
60
    my $borrowernumber = AddMember(
60
    my $borrowernumber = Koha::Patron->new({
61
        firstname    => 'my firstname',
61
        firstname    => 'my firstname',
62
        surname      => 'my surname ' . $_,
62
        surname      => 'my surname ' . $_,
63
        categorycode => $patron_category->{categorycode},
63
        categorycode => $patron_category->{categorycode},
64
        branchcode   => $branchcodes[$_],
64
        branchcode   => $branchcodes[$_],
65
    );
65
    })->store->borrowernumber;
66
    push @borrowernumbers, $borrowernumber;
66
    push @borrowernumbers, $borrowernumber;
67
}
67
}
68
68
(-)a/t/db_dependent/Holds/RevertWaitingStatus.t (-3 / +2 lines)
Lines 24-30 use Test::More tests => 3; Link Here
24
use MARC::Record;
24
use MARC::Record;
25
use C4::Biblio;
25
use C4::Biblio;
26
use C4::Items;
26
use C4::Items;
27
use C4::Members;
28
use C4::Reserves;
27
use C4::Reserves;
29
28
30
use Koha::Libraries;
29
use Koha::Libraries;
Lines 73-84 my ( $item_bibnum, $item_bibitemnum, $itemnumber ) = AddItem( Link Here
73
my $patron_category = $builder->build({ source => 'Category' });
72
my $patron_category = $builder->build({ source => 'Category' });
74
my @borrowernumbers;
73
my @borrowernumbers;
75
foreach my $i ( 1 .. $borrowers_count ) {
74
foreach my $i ( 1 .. $borrowers_count ) {
76
    my $borrowernumber = AddMember(
75
    my $borrowernumber = Koha::Patron->new({
77
        firstname    => 'my firstname',
76
        firstname    => 'my firstname',
78
        surname      => 'my surname ' . $i,
77
        surname      => 'my surname ' . $i,
79
        categorycode => $patron_category->{categorycode},
78
        categorycode => $patron_category->{categorycode},
80
        branchcode   => $branchcode,
79
        branchcode   => $branchcode,
81
    );
80
    })->store->borrowernumber;
82
    push @borrowernumbers, $borrowernumber;
81
    push @borrowernumbers, $borrowernumber;
83
}
82
}
84
83
(-)a/t/db_dependent/Koha/Object.t (-3 / +2 lines)
Lines 25-34 use DateTime; Link Here
25
use C4::Context;
25
use C4::Context;
26
use C4::Biblio; # AddBiblio
26
use C4::Biblio; # AddBiblio
27
use C4::Circulation; # AddIssue
27
use C4::Circulation; # AddIssue
28
use C4::Members;# AddMember
29
use Koha::Database;
28
use Koha::Database;
30
use Koha::DateUtils qw( dt_from_string );
29
use Koha::DateUtils qw( dt_from_string );
31
use Koha::Libraries;
30
use Koha::Libraries;
31
use Koha::Patrons;
32
32
33
use Scalar::Util qw( isvstring );
33
use Scalar::Util qw( isvstring );
34
use Try::Tiny;
34
use Try::Tiny;
Lines 352-359 subtest 'unblessed_all_relateds' => sub { Link Here
352
        categorycode => $patron_category->{categorycode},
352
        categorycode => $patron_category->{categorycode},
353
        branchcode => $library->branchcode,
353
        branchcode => $library->branchcode,
354
    };
354
    };
355
    my $borrowernumber = C4::Members::AddMember(%$patron_data);
355
    my $patron = Koha::Patron->new($patron_data)->store;
356
    my $patron = Koha::Patrons->find( $borrowernumber );
357
    my ($biblionumber) = AddBiblio( MARC::Record->new, '' );
356
    my ($biblionumber) = AddBiblio( MARC::Record->new, '' );
358
    my $biblio = Koha::Biblios->find( $biblionumber );
357
    my $biblio = Koha::Biblios->find( $biblionumber );
359
    my $item = $builder->build_object(
358
    my $item = $builder->build_object(
(-)a/t/db_dependent/Koha/Patrons.t (-9 / +7 lines)
Lines 28-38 use JSON; Link Here
28
use C4::Biblio;
28
use C4::Biblio;
29
use C4::Circulation;
29
use C4::Circulation;
30
30
31
use C4::Members;
32
use C4::Circulation;
31
use C4::Circulation;
33
32
34
use Koha::Holds;
33
use Koha::Holds;
35
use Koha::Patron;
36
use Koha::Patrons;
34
use Koha::Patrons;
37
use Koha::Patron::Categories;
35
use Koha::Patron::Categories;
38
use Koha::Database;
36
use Koha::Database;
Lines 395-401 subtest 'add_enrolment_fee_if_needed' => sub { Link Here
395
        branchcode   => $library->{branchcode},
393
        branchcode   => $library->{branchcode},
396
    );
394
    );
397
395
398
    my $borrowernumber = C4::Members::AddMember(%borrower_data);
396
    my $borrowernumber = Koha::Patron->new(\%borrower_data)->store->borrowernumber;
399
    $borrower_data{borrowernumber} = $borrowernumber;
397
    $borrower_data{borrowernumber} = $borrowernumber;
400
398
401
    my $patron = Koha::Patrons->find( $borrowernumber );
399
    my $patron = Koha::Patrons->find( $borrowernumber );
Lines 1259-1265 subtest 'userid_is_valid' => sub { Link Here
1259
    );
1257
    );
1260
1258
1261
    my $expected_userid_patron_1 = 'tomasito.none';
1259
    my $expected_userid_patron_1 = 'tomasito.none';
1262
    my $borrowernumber = AddMember(%data);
1260
    my $borrowernumber = Koha::Patron->new(\%data)->store->borrowernumber;
1263
    my $patron_1       = Koha::Patrons->find($borrowernumber);
1261
    my $patron_1       = Koha::Patrons->find($borrowernumber);
1264
    is ( $patron_1->userid, $expected_userid_patron_1, 'The userid generated should be the one we expect' );
1262
    is ( $patron_1->userid, $expected_userid_patron_1, 'The userid generated should be the one we expect' );
1265
1263
Lines 1287-1293 subtest 'userid_is_valid' => sub { Link Here
1287
1285
1288
    # Add a new borrower with the same userid but different cardnumber
1286
    # Add a new borrower with the same userid but different cardnumber
1289
    $data{cardnumber} = "987654321";
1287
    $data{cardnumber} = "987654321";
1290
    my $new_borrowernumber = AddMember(%data);
1288
    my $new_borrowernumber = Koha::Patron->new(\%data)->store->borrowernumber;
1291
    my $patron_2 = Koha::Patrons->find($new_borrowernumber);
1289
    my $patron_2 = Koha::Patrons->find($new_borrowernumber);
1292
    $patron_2->userid($patron_1->userid);
1290
    $patron_2->userid($patron_1->userid);
1293
    is( $patron_2->has_valid_userid,
1291
    is( $patron_2->has_valid_userid,
Lines 1296-1305 subtest 'userid_is_valid' => sub { Link Here
1296
    my $new_userid = 'a_user_id';
1294
    my $new_userid = 'a_user_id';
1297
    $data{cardnumber} = "234567890";
1295
    $data{cardnumber} = "234567890";
1298
    $data{userid}     = 'a_user_id';
1296
    $data{userid}     = 'a_user_id';
1299
    $borrowernumber   = AddMember(%data);
1297
    $borrowernumber   = Koha::Patron->new(\%data)->store->borrowernumber;
1300
    my $patron_3 = Koha::Patrons->find($borrowernumber);
1298
    my $patron_3 = Koha::Patrons->find($borrowernumber);
1301
    is( $patron_3->userid, $new_userid,
1299
    is( $patron_3->userid, $new_userid,
1302
        'AddMember should insert the given userid' );
1300
        'Koha::Patron->store should insert the given userid' );
1303
1301
1304
    # Cleanup
1302
    # Cleanup
1305
    $patron_1->delete;
1303
    $patron_1->delete;
Lines 1329-1342 subtest 'generate_userid' => sub { Link Here
1329
    my $new_patron = Koha::Patron->new({ firstname => $data{firstname}, surname => $data{surname} } );
1327
    my $new_patron = Koha::Patron->new({ firstname => $data{firstname}, surname => $data{surname} } );
1330
    my $userid = $new_patron->generate_userid;
1328
    my $userid = $new_patron->generate_userid;
1331
    is( $userid, $expected_userid_patron_1, 'generate_userid should generate the userid we expect' );
1329
    is( $userid, $expected_userid_patron_1, 'generate_userid should generate the userid we expect' );
1332
    my $borrowernumber = AddMember(%data);
1330
    my $borrowernumber = Koha::Patron->new(\%data)->store->borrowernumber;
1333
    my $patron_1 = Koha::Patrons->find($borrowernumber);
1331
    my $patron_1 = Koha::Patrons->find($borrowernumber);
1334
    is ( $patron_1->userid, $expected_userid_patron_1, 'The userid generated should be the one we expect' );
1332
    is ( $patron_1->userid, $expected_userid_patron_1, 'The userid generated should be the one we expect' );
1335
1333
1336
    $userid = $new_patron->generate_userid;
1334
    $userid = $new_patron->generate_userid;
1337
    is( $userid, $expected_userid_patron_1 . '1', 'generate_userid should generate the userid we expect' );
1335
    is( $userid, $expected_userid_patron_1 . '1', 'generate_userid should generate the userid we expect' );
1338
    $data{cardnumber} = '987654321';
1336
    $data{cardnumber} = '987654321';
1339
    my $new_borrowernumber = AddMember(%data);
1337
    my $new_borrowernumber = Koha::Patron->new(\%data)->store->borrowernumber;
1340
    my $patron_2 = Koha::Patrons->find($new_borrowernumber);
1338
    my $patron_2 = Koha::Patrons->find($new_borrowernumber);
1341
    isnt( $patron_2->userid, 'tomasito',
1339
    isnt( $patron_2->userid, 'tomasito',
1342
        "Patron with duplicate userid has new userid generated" );
1340
        "Patron with duplicate userid has new userid generated" );
(-)a/t/db_dependent/Letters.t (-7 / +8 lines)
Lines 66-79 my $library = $builder->build({ Link Here
66
});
66
});
67
my $patron_category = $builder->build({ source => 'Category' })->{categorycode};
67
my $patron_category = $builder->build({ source => 'Category' })->{categorycode};
68
my $date = dt_from_string;
68
my $date = dt_from_string;
69
my $borrowernumber = AddMember(
69
my $borrowernumber = Koha::Patron->new({
70
    firstname    => 'Jane',
70
    firstname    => 'Jane',
71
    surname      => 'Smith',
71
    surname      => 'Smith',
72
    categorycode => $patron_category,
72
    categorycode => $patron_category,
73
    branchcode   => $library->{branchcode},
73
    branchcode   => $library->{branchcode},
74
    dateofbirth  => $date,
74
    dateofbirth  => $date,
75
    smsalertnumber => undef,
75
    smsalertnumber => undef,
76
);
76
})->store->borrowernumber;
77
77
78
my $marc_record = MARC::Record->new;
78
my $marc_record = MARC::Record->new;
79
my( $biblionumber, $biblioitemnumber ) = AddBiblio( $marc_record, '' );
79
my( $biblionumber, $biblioitemnumber ) = AddBiblio( $marc_record, '' );
Lines 468-483 $dbh->do(q{INSERT INTO letter (module, code, name, title, content) VALUES ('seri Link Here
468
my ($serials_count, @serials) = GetSerials($subscriptionid);
468
my ($serials_count, @serials) = GetSerials($subscriptionid);
469
my $serial = $serials[0];
469
my $serial = $serials[0];
470
470
471
my $borrowernumber = AddMember(
471
my $patron = Koha::Patron->new({
472
    firstname    => 'John',
472
    firstname    => 'John',
473
    surname      => 'Smith',
473
    surname      => 'Smith',
474
    categorycode => $patron_category,
474
    categorycode => $patron_category,
475
    branchcode   => $library->{branchcode},
475
    branchcode   => $library->{branchcode},
476
    dateofbirth  => $date,
476
    dateofbirth  => $date,
477
    email        => 'john.smith@test.de',
477
    email        => 'john.smith@test.de',
478
);
478
})->store;
479
my $borrowernumber = $patron->borrowernumber;
479
my $subscription = Koha::Subscriptions->find( $subscriptionid );
480
my $subscription = Koha::Subscriptions->find( $subscriptionid );
480
$subscription->add_subscriber( scalar Koha::Patrons->find( $borrowernumber ) );
481
$subscription->add_subscriber( $patron );
481
482
482
my $err2;
483
my $err2;
483
warning_is {
484
warning_is {
Lines 676-689 subtest 'Test limit parameter for SendQueuedMessages' => sub { Link Here
676
677
677
    my $dbh = C4::Context->dbh;
678
    my $dbh = C4::Context->dbh;
678
679
679
    my $borrowernumber = AddMember(
680
    my $borrowernumber = Koha::Patron->new({
680
        firstname    => 'Jane',
681
        firstname    => 'Jane',
681
        surname      => 'Smith',
682
        surname      => 'Smith',
682
        categorycode => $patron_category,
683
        categorycode => $patron_category,
683
        branchcode   => $library->{branchcode},
684
        branchcode   => $library->{branchcode},
684
        dateofbirth  => $date,
685
        dateofbirth  => $date,
685
        smsalertnumber => undef,
686
        smsalertnumber => undef,
686
    );
687
    })->store->borrowernumber;
687
688
688
    $dbh->do(q|DELETE FROM message_queue|);
689
    $dbh->do(q|DELETE FROM message_queue|);
689
    $my_message = {
690
    $my_message = {
(-)a/t/db_dependent/Members.t (-14 / +14 lines)
Lines 94-101 my %data = ( Link Here
94
    userid => 'tomasito'
94
    userid => 'tomasito'
95
);
95
);
96
96
97
my $addmem=AddMember(%data);
97
my $addmem=Koha::Patron->new(\%data)->store->borrowernumber;
98
ok($addmem, "AddMember()");
98
ok($addmem, "Koha::Patron->store()");
99
99
100
my $member = Koha::Patrons->find( { cardnumber => $CARDNUMBER } )
100
my $member = Koha::Patrons->find( { cardnumber => $CARDNUMBER } )
101
  or BAIL_OUT("Cannot read member with card $CARDNUMBER");
101
  or BAIL_OUT("Cannot read member with card $CARDNUMBER");
Lines 151-162 is ($checkcardnum, "2", "Card number is too long"); Link Here
151
    dateexpiry   => '',
151
    dateexpiry   => '',
152
    dateenrolled => '',
152
    dateenrolled => '',
153
);
153
);
154
my $borrowernumber = AddMember( %data );
154
my $borrowernumber = Koha::Patron->new( \%data )->store->borrowernumber;
155
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
155
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
156
is( $borrower->{dateofbirth}, undef, 'AddMember should undef dateofbirth if empty string is given');
156
is( $borrower->{dateofbirth}, undef, 'Koha::Patron->store should undef dateofbirth if empty string is given');
157
is( $borrower->{debarred}, undef, 'AddMember should undef debarred if empty string is given');
157
is( $borrower->{debarred}, undef, 'Koha::Patron->store should undef debarred if empty string is given');
158
isnt( $borrower->{dateexpiry}, '0000-00-00', 'AddMember should not set dateexpiry to 0000-00-00 if empty string is given');
158
isnt( $borrower->{dateexpiry}, '0000-00-00', 'Koha::Patron->store should not set dateexpiry to 0000-00-00 if empty string is given');
159
isnt( $borrower->{dateenrolled}, '0000-00-00', 'AddMember should not set dateenrolled to 0000-00-00 if empty string is given');
159
isnt( $borrower->{dateenrolled}, '0000-00-00', 'Koha::Patron->store should not set dateenrolled to 0000-00-00 if empty string is given');
160
160
161
ModMember( borrowernumber => $borrowernumber, dateofbirth => '', debarred => '', dateexpiry => '', dateenrolled => '' );
161
ModMember( borrowernumber => $borrowernumber, dateofbirth => '', debarred => '', dateexpiry => '', dateenrolled => '' );
162
$borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
162
$borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
Lines 177-183 subtest 'ModMember should not update userid if not true' => sub { Link Here
177
177
178
    $data{ cardnumber } = "234567890";
178
    $data{ cardnumber } = "234567890";
179
    $data{userid} = 'a_user_id';
179
    $data{userid} = 'a_user_id';
180
    $borrowernumber = AddMember( %data );
180
    $borrowernumber = Koha::Patron->new( \%data )->store->borrowernumber;
181
    $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
181
    $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
182
182
183
    ModMember( borrowernumber => $borrowernumber, firstname => 'Tomas', userid => '' );
183
    ModMember( borrowernumber => $borrowernumber, firstname => 'Tomas', userid => '' );
Lines 266-272 $builder->build({ Link Here
266
# IndependentBranches is off.
266
# IndependentBranches is off.
267
t::lib::Mocks::mock_preference('IndependentBranches', 0);
267
t::lib::Mocks::mock_preference('IndependentBranches', 0);
268
268
269
my $owner = AddMember (categorycode => 'STAFFER', branchcode => $library2->{branchcode} );
269
my $owner = Koha::Patron->new({ categorycode => 'STAFFER', branchcode => $library2->{branchcode} })->store->borrowernumber;
270
my $list1 = AddPatronList( { name => 'Test List 1', owner => $owner } );
270
my $list1 = AddPatronList( { name => 'Test List 1', owner => $owner } );
271
my @listpatrons = ($bor1inlist, $bor2inlist);
271
my @listpatrons = ($bor1inlist, $bor2inlist);
272
AddPatronsToList(  { list => $list1, borrowernumbers => \@listpatrons });
272
AddPatronsToList(  { list => $list1, borrowernumbers => \@listpatrons });
Lines 341-351 isnt( Koha::Patrons->find( $patron2->{borrowernumber} )->lastseen, undef, 'Lasts Link Here
341
## Remove all entries with userid='' (should be only 1 max)
341
## Remove all entries with userid='' (should be only 1 max)
342
$dbh->do(q|DELETE FROM borrowers WHERE userid = ''|);
342
$dbh->do(q|DELETE FROM borrowers WHERE userid = ''|);
343
## And create a patron with a userid=''
343
## And create a patron with a userid=''
344
$borrowernumber = AddMember( categorycode => $patron_category->{categorycode}, branchcode => $library2->{branchcode} );
344
$borrowernumber = Koha::Patron->new({ categorycode => $patron_category->{categorycode}, branchcode => $library2->{branchcode} })->store->borrowernumber;
345
$dbh->do(q|UPDATE borrowers SET userid = '' WHERE borrowernumber = ?|, undef, $borrowernumber);
345
$dbh->do(q|UPDATE borrowers SET userid = '' WHERE borrowernumber = ?|, undef, $borrowernumber);
346
# Create another patron and verify the userid has been generated
346
# Create another patron and verify the userid has been generated
347
$borrowernumber = AddMember( categorycode => $patron_category->{categorycode}, branchcode => $library2->{branchcode} );
347
$borrowernumber = Koha::Patron->new({ categorycode => $patron_category->{categorycode}, branchcode => $library2->{branchcode} })->store->borrowernumber;
348
ok( $borrowernumber > 0, 'AddMember should have inserted the patron even if no userid is given' );
348
ok( $borrowernumber > 0, 'Koha::Patron->store should have inserted the patron even if no userid is given' );
349
$borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
349
$borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
350
ok( $borrower->{userid},  'A userid should have been generated correctly' );
350
ok( $borrower->{userid},  'A userid should have been generated correctly' );
351
351
Lines 399-405 subtest 'Trivial test for AddMember_Auto' => sub { Link Here
399
399
400
$schema->storage->txn_rollback;
400
$schema->storage->txn_rollback;
401
401
402
subtest 'AddMember (invalid categorycode) tests' => sub {
402
subtest 'Koha::Patron->store (invalid categorycode) tests' => sub {
403
    plan tests => 1;
403
    plan tests => 1;
404
404
405
    $schema->storage->txn_begin;
405
    $schema->storage->txn_begin;
Lines 414-420 subtest 'AddMember (invalid categorycode) tests' => sub { Link Here
414
    };
414
    };
415
415
416
    throws_ok
416
    throws_ok
417
        { AddMember( %{ $patron_data } ); }
417
        { Koha::Patron->new( $patron_data )->store; }
418
        'Koha::Exceptions::Object::FKConstraint',
418
        'Koha::Exceptions::Object::FKConstraint',
419
        'AddMember raises an exception on invalid categorycode';
419
        'AddMember raises an exception on invalid categorycode';
420
420
(-)a/t/db_dependent/Members/GetAllIssues.t (-2 / +2 lines)
Lines 64-72 my $itemnumber3 = Link Here
64
  AddItem( { barcode => '0203', %item_infos }, $biblionumber2 );
64
  AddItem( { barcode => '0203', %item_infos }, $biblionumber2 );
65
65
66
my $borrowernumber1 =
66
my $borrowernumber1 =
67
  AddMember( categorycode => $categorycode, branchcode => $branchcode );
67
  Koha::Patron->new({ categorycode => $categorycode, branchcode => $branchcode })->store->borrowernumber;
68
my $borrowernumber2 =
68
my $borrowernumber2 =
69
  AddMember( categorycode => $categorycode, branchcode => $branchcode );
69
  Koha::Patron->new({ categorycode => $categorycode, branchcode => $branchcode })->store->borrowernumber;
70
my $borrower1 = Koha::Patrons->find( $borrowernumber1 )->unblessed;
70
my $borrower1 = Koha::Patrons->find( $borrowernumber1 )->unblessed;
71
my $borrower2 = Koha::Patrons->find( $borrowernumber2 )->unblessed;
71
my $borrower2 = Koha::Patrons->find( $borrowernumber2 )->unblessed;
72
72
(-)a/t/db_dependent/Members/IssueSlip.t (-1 / +1 lines)
Lines 119-125 my $itemnumber2 = Link Here
119
  AddItem( { barcode => $barcode2, %item_infos }, $biblionumber2 );
119
  AddItem( { barcode => $barcode2, %item_infos }, $biblionumber2 );
120
120
121
my $borrowernumber =
121
my $borrowernumber =
122
  AddMember( categorycode => $categorycode, branchcode => $branchcode );
122
  Koha::Patron->new({ categorycode => $categorycode, branchcode => $branchcode })->store->borrowernumber;
123
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
123
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
124
124
125
my $module = new Test::MockModule('C4::Context');
125
my $module = new Test::MockModule('C4::Context');
(-)a/t/db_dependent/Patron/Borrower_Debarments.t (-3 / +2 lines)
Lines 3-9 Link Here
3
use Modern::Perl;
3
use Modern::Perl;
4
4
5
use C4::Context;
5
use C4::Context;
6
use C4::Members;
7
use Koha::Database;
6
use Koha::Database;
8
use Koha::Patrons;
7
use Koha::Patrons;
9
8
Lines 23-34 my $library = $builder->build({ Link Here
23
});
22
});
24
23
25
my $patron_category = $builder->build({ source => 'Category' });
24
my $patron_category = $builder->build({ source => 'Category' });
26
my $borrowernumber = AddMember(
25
my $borrowernumber = Koha::Patron->new({
27
    firstname =>  'my firstname',
26
    firstname =>  'my firstname',
28
    surname => 'my surname',
27
    surname => 'my surname',
29
    categorycode => $patron_category->{categorycode},
28
    categorycode => $patron_category->{categorycode},
30
    branchcode => $library->{branchcode},
29
    branchcode => $library->{branchcode},
31
);
30
})->store->borrowernumber;
32
31
33
my $success = AddDebarment({
32
my $success = AddDebarment({
34
    borrowernumber => $borrowernumber,
33
    borrowernumber => $borrowernumber,
(-)a/t/db_dependent/Patron/Borrower_Discharge.t (-1 / +1 lines)
Lines 23-30 use C4::Biblio qw( AddBiblio ); Link Here
23
use C4::Circulation qw( AddIssue AddReturn );
23
use C4::Circulation qw( AddIssue AddReturn );
24
use C4::Context;
24
use C4::Context;
25
use C4::Items qw( AddItem );
25
use C4::Items qw( AddItem );
26
use C4::Members qw( AddMember );
27
26
27
use Koha::Patrons;
28
use Koha::Patron::Discharge;
28
use Koha::Patron::Discharge;
29
use Koha::Database;
29
use Koha::Database;
30
30
(-)a/t/db_dependent/Patron/Borrower_Files.t (-3 / +3 lines)
Lines 20-28 Link Here
20
use Modern::Perl;
20
use Modern::Perl;
21
21
22
use C4::Context;
22
use C4::Context;
23
use C4::Members;
24
23
25
use Koha::Database;
24
use Koha::Database;
25
use Koha::Patrons;
26
use t::lib::TestBuilder;
26
use t::lib::TestBuilder;
27
27
28
use Test::More tests => 23;
28
use Test::More tests => 23;
Lines 43-54 my $library = $builder->build({ Link Here
43
});
43
});
44
44
45
my $patron_category = $builder->build({ source => 'Category' });
45
my $patron_category = $builder->build({ source => 'Category' });
46
my $borrowernumber = AddMember(
46
my $borrowernumber = Koha::Patron->new({
47
    firstname =>  'my firstname',
47
    firstname =>  'my firstname',
48
    surname => 'my surname',
48
    surname => 'my surname',
49
    categorycode => $patron_category->{categorycode},
49
    categorycode => $patron_category->{categorycode},
50
    branchcode => $library->{branchcode},
50
    branchcode => $library->{branchcode},
51
);
51
})->store->borrowernumber;
52
52
53
my $bf = Koha::Patron::Files->new(
53
my $bf = Koha::Patron::Files->new(
54
    borrowernumber => $borrowernumber,
54
    borrowernumber => $borrowernumber,
(-)a/t/db_dependent/Reserves.t (-10 / +10 lines)
Lines 52-58 my $dbh = C4::Context->dbh; Link Here
52
52
53
my $builder = t::lib::TestBuilder->new;
53
my $builder = t::lib::TestBuilder->new;
54
54
55
my $frameworkcode = q||;
55
my $frameworkcode = q//;
56
56
57
57
58
t::lib::Mocks::mock_preference('ReservesNeedReturns', 1);
58
t::lib::Mocks::mock_preference('ReservesNeedReturns', 1);
Lines 120-126 my %data = ( Link Here
120
    branchcode => $branch_1,
120
    branchcode => $branch_1,
121
);
121
);
122
Koha::Patron::Categories->find($category_1)->set({ enrolmentfee => 0})->store;
122
Koha::Patron::Categories->find($category_1)->set({ enrolmentfee => 0})->store;
123
my $borrowernumber = AddMember(%data);
123
my $borrowernumber = Koha::Patron->new(\%data)->store->borrowernumber;
124
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
124
my $borrower = Koha::Patrons->find( $borrowernumber )->unblessed;
125
my $biblionumber   = $bibnum;
125
my $biblionumber   = $bibnum;
126
my $barcode        = $testbarcode;
126
my $barcode        = $testbarcode;
Lines 172-199 t::lib::Mocks::mock_preference( 'ReservesControlBranch', $ReservesControlBranch Link Here
172
### Regression test for bug 10272
172
### Regression test for bug 10272
173
###
173
###
174
my %requesters = ();
174
my %requesters = ();
175
$requesters{$branch_1} = AddMember(
175
$requesters{$branch_1} = Koha::Patron->new({
176
    branchcode   => $branch_1,
176
    branchcode   => $branch_1,
177
    categorycode => $category_2,
177
    categorycode => $category_2,
178
    surname      => "borrower from $branch_1",
178
    surname      => "borrower from $branch_1",
179
);
179
})->store->borrowernumber;
180
for my $i ( 2 .. 5 ) {
180
for my $i ( 2 .. 5 ) {
181
    $requesters{"CPL$i"} = AddMember(
181
    $requesters{"CPL$i"} = Koha::Patron->new({
182
        branchcode   => $branch_1,
182
        branchcode   => $branch_1,
183
        categorycode => $category_2,
183
        categorycode => $category_2,
184
        surname      => "borrower $i from $branch_1",
184
        surname      => "borrower $i from $branch_1",
185
    );
185
    })->store->borrowernumber;
186
}
186
}
187
$requesters{$branch_2} = AddMember(
187
$requesters{$branch_2} = Koha::Patron->new({
188
    branchcode   => $branch_2,
188
    branchcode   => $branch_2,
189
    categorycode => $category_2,
189
    categorycode => $category_2,
190
    surname      => "borrower from $branch_2",
190
    surname      => "borrower from $branch_2",
191
);
191
})->store->borrowernumber;
192
$requesters{$branch_3} = AddMember(
192
$requesters{$branch_3} = Koha::Patron->new({
193
    branchcode   => $branch_3,
193
    branchcode   => $branch_3,
194
    categorycode => $category_2,
194
    categorycode => $category_2,
195
    surname      => "borrower from $branch_3",
195
    surname      => "borrower from $branch_3",
196
);
196
})->store->borrowernumber;
197
197
198
# Configure rules so that $branch_1 allows only $branch_1 patrons
198
# Configure rules so that $branch_1 allows only $branch_1 patrons
199
# to request its items, while $branch_2 will allow its items
199
# to request its items, while $branch_2 will allow its items
(-)a/t/db_dependent/Serials_2.t (-3 / +3 lines)
Lines 6-13 use Test::More tests => 50; Link Here
6
use MARC::Record;
6
use MARC::Record;
7
7
8
use C4::Biblio qw( AddBiblio );
8
use C4::Biblio qw( AddBiblio );
9
use C4::Members qw( AddMember );
10
use Koha::Database;
9
use Koha::Database;
10
use Koha::Patrons;
11
use t::lib::Mocks;
11
use t::lib::Mocks;
12
use t::lib::TestBuilder;
12
use t::lib::TestBuilder;
13
use_ok('C4::Serials');
13
use_ok('C4::Serials');
Lines 79-91 is( C4::Serials::can_edit_subscription($subscription_from_my_branch), 0, "cannot Link Here
79
is( C4::Serials::can_claim_subscription($subscription_from_my_branch), 0, "cannot edit a subscription without userenv set");
79
is( C4::Serials::can_claim_subscription($subscription_from_my_branch), 0, "cannot edit a subscription without userenv set");
80
80
81
my $userid = 'my_userid';
81
my $userid = 'my_userid';
82
my $borrowernumber = C4::Members::AddMember(
82
my $borrowernumber = Koha::Patron->new({
83
    firstname =>  'my fistname',
83
    firstname =>  'my fistname',
84
    surname => 'my surname',
84
    surname => 'my surname',
85
    categorycode => $patron_category->{categorycode},
85
    categorycode => $patron_category->{categorycode},
86
    branchcode => $my_branch,
86
    branchcode => $my_branch,
87
    userid => $userid,
87
    userid => $userid,
88
);
88
})->store->borrowernumber;
89
89
90
$userenv = { flags => 1, id => $borrowernumber, branch => '' };
90
$userenv = { flags => 1, id => $borrowernumber, branch => '' };
91
91
(-)a/t/db_dependent/Suggestions.t (-3 / +2 lines)
Lines 25-37 use t::lib::Mocks; Link Here
25
use t::lib::TestBuilder;
25
use t::lib::TestBuilder;
26
26
27
use C4::Context;
27
use C4::Context;
28
use C4::Members;
29
use C4::Letters;
28
use C4::Letters;
30
use C4::Budgets qw( AddBudgetPeriod AddBudget );
29
use C4::Budgets qw( AddBudgetPeriod AddBudget );
31
use Koha::Database;
30
use Koha::Database;
32
use Koha::DateUtils qw( dt_from_string output_pref );
31
use Koha::DateUtils qw( dt_from_string output_pref );
33
use Koha::Library;
34
use Koha::Libraries;
32
use Koha::Libraries;
33
use Koha::Patrons;
35
use Koha::Suggestions;
34
use Koha::Suggestions;
36
35
37
BEGIN {
36
BEGIN {
Lines 76-82 my $member = { Link Here
76
    categorycode => $patron_category->{categorycode},
75
    categorycode => $patron_category->{categorycode},
77
    branchcode => 'CPL',
76
    branchcode => 'CPL',
78
};
77
};
79
my $borrowernumber = AddMember(%$member);
78
my $borrowernumber = Koha::Patron->new($member)->store->borrowernumber;
80
79
81
my $biblionumber1 = 1;
80
my $biblionumber1 = 1;
82
my $my_suggestion = {
81
my $my_suggestion = {
(-)a/t/db_dependent/Utils/Datatables_Virtualshelves.t (-6 / +4 lines)
Lines 21-31 use Test::More tests => 13; Link Here
21
21
22
use C4::Biblio;
22
use C4::Biblio;
23
use C4::Context;
23
use C4::Context;
24
use C4::Members;
25
24
26
use Koha::Library;
25
use Koha::Library;
26
use Koha::Patrons;
27
use Koha::Patron::Categories;
27
use Koha::Patron::Categories;
28
use Koha::Virtualshelf;
29
use Koha::Virtualshelves;
28
use Koha::Virtualshelves;
30
29
31
use_ok( "C4::Utils::DataTables::VirtualShelves" );
30
use_ok( "C4::Utils::DataTables::VirtualShelves" );
Lines 80-88 my %john_smith = ( Link Here
80
    userid       => 'john.smith',
79
    userid       => 'john.smith',
81
);
80
);
82
81
83
$john_doe{borrowernumber} = AddMember( %john_doe );
82
$john_doe{borrowernumber} = Koha::Patron->new( \%john_doe )->store->borrowernumber;
84
$jane_doe{borrowernumber} = AddMember( %jane_doe );
83
$jane_doe{borrowernumber} = Koha::Patron->new( \%jane_doe )->store->borrowernumber;
85
$john_smith{borrowernumber} = AddMember( %john_smith );
84
$john_smith{borrowernumber} = Koha::Patron->new( \%john_smith )->store->borrowernumber;
86
85
87
my $shelf1 = Koha::Virtualshelf->new(
86
my $shelf1 = Koha::Virtualshelf->new(
88
    {
87
    {
89
- 

Return to bug 20287