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

(-)a/Koha/RefundLostItemFeeRule.pm (-18 lines)
Lines 42-63 sub _type { Link Here
42
    return 'RefundLostItemFeeRule';
42
    return 'RefundLostItemFeeRule';
43
}
43
}
44
44
45
=head3 delete
46
47
This is an overloaded delete method. It throws an exception if the wildcard
48
branch is passed (it can only be modified, but not deleted).
49
50
=cut
51
52
sub delete {
53
    my ($self) = @_;
54
55
    if ( $self->branchcode eq '*' ) {
56
        Koha::Exceptions::CannotDeleteDefault->throw;
57
    }
58
59
    return $self->SUPER::delete($self);
60
}
61
62
63
1;
45
1;
(-)a/Koha/RefundLostItemFeeRules.pm (-2 / +6 lines)
Lines 130-143 sub _choose_branch { Link Here
130
=head3 _default_rule (internal)
130
=head3 _default_rule (internal)
131
131
132
This function returns the default rule defined for refunding lost
132
This function returns the default rule defined for refunding lost
133
item fees on return.
133
item fees on return. It defaults to 1 if no rule is defined.
134
134
135
=cut
135
=cut
136
136
137
sub _default_rule {
137
sub _default_rule {
138
138
    my $self = shift;
139
    my $self = shift;
140
    my $default_rule = $self->find({ branchcode => '*' });
139
141
140
    return $self->find({ branchcode => '*' })->refund;
142
    return (defined $default_rule)
143
                ? $default_rule->refund
144
                : 1;
141
}
145
}
142
146
143
1;
147
1;
(-)a/installer/data/mysql/mandatory/refund_lost_item_fee_rules.sql (-2 lines)
Lines 1-2 Link Here
1
-- Default refund lost item fee rule
2
INSERT INTO refund_lost_item_fee_rules (branchcode,refund) VALUES ( '*', '1' );
(-)a/t/db_dependent/RefundLostItemFeeRule.t (-11 / +7 lines)
Lines 35-41 my $builder = t::lib::TestBuilder->new; Link Here
35
35
36
subtest 'Koha::RefundLostItemFeeRule::delete() tests' => sub {
36
subtest 'Koha::RefundLostItemFeeRule::delete() tests' => sub {
37
37
38
    plan tests => 7;
38
    plan tests => 5;
39
39
40
    # Start transaction
40
    # Start transaction
41
    $schema->storage->txn_begin;
41
    $schema->storage->txn_begin;
Lines 68-88 subtest 'Koha::RefundLostItemFeeRule::delete() tests' => sub { Link Here
68
    $other_rule->delete;
68
    $other_rule->delete;
69
    ok( !$other_rule->in_storage, 'Other rule deleted from storage' );
69
    ok( !$other_rule->in_storage, 'Other rule deleted from storage' );
70
70
71
    # deleting the default rule
72
    eval {
73
        $default_rule->delete;
74
    };
75
    is( ref($@), 'Koha::Exceptions::CannotDeleteDefault',
76
        'Exception on deleting default' );
77
    ok( $default_rule->in_storage, 'Default rule still in storage' );
78
79
    # Rollback transaction
71
    # Rollback transaction
80
    $schema->storage->txn_rollback;
72
    $schema->storage->txn_rollback;
81
};
73
};
82
74
83
subtest 'Koha::RefundLostItemFeeRules::_default_rule() tests' => sub {
75
subtest 'Koha::RefundLostItemFeeRules::_default_rule() tests' => sub {
84
76
85
    plan tests => 4;
77
    plan tests => 6;
86
78
87
    # Start transaction
79
    # Start transaction
88
    $schema->storage->txn_begin;
80
    $schema->storage->txn_begin;
Lines 115-120 subtest 'Koha::RefundLostItemFeeRules::_default_rule() tests' => sub { Link Here
115
            branchcode => '*' });
107
            branchcode => '*' });
116
    ok( !Koha::RefundLostItemFeeRules->_default_rule, 'Default rule is set to not refund' );
108
    ok( !Koha::RefundLostItemFeeRules->_default_rule, 'Default rule is set to not refund' );
117
109
110
    $default_rule->delete;
111
    ok( !$default_rule->in_storage, 'Default rule effectively deleted from storage' );
112
113
    ok( Koha::RefundLostItemFeeRules->_default_rule, 'Default rule is set to refund if no default rule is present' );
114
118
    # Rollback transaction
115
    # Rollback transaction
119
    $schema->storage->txn_rollback;
116
    $schema->storage->txn_rollback;
120
};
117
};
121
- 

Return to bug 14048