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

(-)a/C4/SIP/ILS/Patron.pm (-1 / +2 lines)
Lines 62-67 sub new { Link Here
62
    $fines_amount = ($fines_amount and $fines_amount > 0) ? $fines_amount : 0;
62
    $fines_amount = ($fines_amount and $fines_amount > 0) ? $fines_amount : 0;
63
    my $fee_limit = _fee_limit();
63
    my $fee_limit = _fee_limit();
64
    my $fine_blocked = $fines_amount > $fee_limit;
64
    my $fine_blocked = $fines_amount > $fee_limit;
65
    my $circ_blocked =( C4::Context->preference('OverduesBlockCirc') ne "noblock" &&  defined $flags->{ODUES}->{itemlist} ) ? 1 : 0;
65
    {
66
    {
66
    no warnings;    # any of these $kp->{fields} being concat'd could be undef
67
    no warnings;    # any of these $kp->{fields} being concat'd could be undef
67
    %ilspatron = (
68
    %ilspatron = (
Lines 80-86 sub new { Link Here
80
        address         => $adr,
81
        address         => $adr,
81
        home_phone      => $kp->{phone},
82
        home_phone      => $kp->{phone},
82
        email_addr      => $kp->{email},
83
        email_addr      => $kp->{email},
83
        charge_ok       => ( !$debarred && !$expired && !$fine_blocked),
84
        charge_ok       => ( !$debarred && !$expired && !$fine_blocked && !$circ_blocked),
84
        renew_ok        => ( !$debarred && !$expired && !$fine_blocked),
85
        renew_ok        => ( !$debarred && !$expired && !$fine_blocked),
85
        recall_ok       => ( !$debarred && !$expired && !$fine_blocked),
86
        recall_ok       => ( !$debarred && !$expired && !$fine_blocked),
86
        hold_ok         => ( !$debarred && !$expired && !$fine_blocked),
87
        hold_ok         => ( !$debarred && !$expired && !$fine_blocked),
(-)a/t/db_dependent/SIP/Patron.t (-2 / +33 lines)
Lines 4-13 Link Here
4
# This needs to be extended! Your help is appreciated..
4
# This needs to be extended! Your help is appreciated..
5
5
6
use Modern::Perl;
6
use Modern::Perl;
7
use Test::More tests => 2;
7
use Test::More tests => 3;
8
8
9
use Koha::Database;
9
use Koha::Database;
10
use t::lib::TestBuilder;
10
use t::lib::TestBuilder;
11
use t::lib::Mocks;
11
use C4::SIP::ILS::Patron;
12
use C4::SIP::ILS::Patron;
12
13
13
my $schema = Koha::Database->new->schema;
14
my $schema = Koha::Database->new->schema;
Lines 26-29 $schema->resultset('Borrower')->search({ cardnumber => $card })->delete; Link Here
26
my $sip_patron2 = C4::SIP::ILS::Patron->new( $card );
27
my $sip_patron2 = C4::SIP::ILS::Patron->new( $card );
27
is( $sip_patron2, undef, "Patron is not valid (anymore)" );
28
is( $sip_patron2, undef, "Patron is not valid (anymore)" );
28
29
30
subtest "OverduesBlockCirc tests" => sub {
31
32
    plan tests => 6;
33
34
    my $odue_patron = $builder->build({ source => 'Borrower' });
35
    my $good_patron = $builder->build({ source => 'Borrower' });
36
    my $odue = $builder->build({ source => 'Issue', value => {
37
            borrowernumber => $odue_patron->{borrowernumber},
38
            date_due => '2017-01-01',
39
            }
40
    });
41
    t::lib::Mocks::mock_preference( 'OverduesBlockCirc', 'noblock' );
42
    my $odue_sip_patron = C4::SIP::ILS::Patron->new( $odue_patron->{cardnumber} );
43
    is( $odue_sip_patron->{charge_ok}, 1, "Not blocked with overdues when set to 'Don't block'");
44
    $odue_sip_patron = C4::SIP::ILS::Patron->new( $good_patron->{cardnumber} );
45
    is( $odue_sip_patron->{charge_ok}, 1, "Not blocked without overdues when set to 'Don't block'");
46
47
    t::lib::Mocks::mock_preference( 'OverduesBlockCirc', 'confirmation' );
48
    $odue_sip_patron = C4::SIP::ILS::Patron->new( $odue_patron->{cardnumber} );
49
    is( $odue_sip_patron->{charge_ok}, '', "Blocked with overdues when set to 'Ask for confirmation'");
50
    $odue_sip_patron = C4::SIP::ILS::Patron->new( $good_patron->{cardnumber} );
51
    is( $odue_sip_patron->{charge_ok}, 1, "Not blocked without overdues when set to 'confirmation'");
52
53
    t::lib::Mocks::mock_preference( 'OverduesBlockCirc', 'block' );
54
    $odue_sip_patron = C4::SIP::ILS::Patron->new( $odue_patron->{cardnumber} );
55
    is( $odue_sip_patron->{charge_ok}, '', "Blocked with overdues when set to 'Block'");
56
    $odue_sip_patron = C4::SIP::ILS::Patron->new( $good_patron->{cardnumber} );
57
    is( $odue_sip_patron->{charge_ok}, 1, "Not blocked without overdues when set to 'Block'");
58
59
};
60
29
$schema->storage->txn_rollback;
61
$schema->storage->txn_rollback;
30
- 

Return to bug 18812