Bug 14048: (QA followup) Default to 1 if no default rule
This patch answers Jonathan's request to simplify this patchset a bit. It removes the need for the .sql file, as _default_rule now defaults to a fixed value (1, which was set by the removed .sql file). This allowed to remove the overloaded ->delete method. The tests have been adjusted to reflect this changes, including tests for the new 'default'-if-absent situation. Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Jesse Weaver <jweaver@bywatersolutions.com>
This commit is contained in:
parent
1887b7ab3e
commit
0bb144bbaf
4 changed files with 14 additions and 33 deletions
|
@ -42,22 +42,4 @@ sub _type {
|
||||||
return 'RefundLostItemFeeRule';
|
return 'RefundLostItemFeeRule';
|
||||||
}
|
}
|
||||||
|
|
||||||
=head3 delete
|
|
||||||
|
|
||||||
This is an overloaded delete method. It throws an exception if the wildcard
|
|
||||||
branch is passed (it can only be modified, but not deleted).
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
sub delete {
|
|
||||||
my ($self) = @_;
|
|
||||||
|
|
||||||
if ( $self->branchcode eq '*' ) {
|
|
||||||
Koha::Exceptions::CannotDeleteDefault->throw;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $self->SUPER::delete($self);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -130,14 +130,18 @@ sub _choose_branch {
|
||||||
=head3 _default_rule (internal)
|
=head3 _default_rule (internal)
|
||||||
|
|
||||||
This function returns the default rule defined for refunding lost
|
This function returns the default rule defined for refunding lost
|
||||||
item fees on return.
|
item fees on return. It defaults to 1 if no rule is defined.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
sub _default_rule {
|
sub _default_rule {
|
||||||
my $self = shift;
|
|
||||||
|
|
||||||
return $self->find({ branchcode => '*' })->refund;
|
my $self = shift;
|
||||||
|
my $default_rule = $self->find({ branchcode => '*' });
|
||||||
|
|
||||||
|
return (defined $default_rule)
|
||||||
|
? $default_rule->refund
|
||||||
|
: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
-- Default refund lost item fee rule
|
|
||||||
INSERT INTO refund_lost_item_fee_rules (branchcode,refund) VALUES ( '*', '1' );
|
|
|
@ -35,7 +35,7 @@ my $builder = t::lib::TestBuilder->new;
|
||||||
|
|
||||||
subtest 'Koha::RefundLostItemFeeRule::delete() tests' => sub {
|
subtest 'Koha::RefundLostItemFeeRule::delete() tests' => sub {
|
||||||
|
|
||||||
plan tests => 7;
|
plan tests => 5;
|
||||||
|
|
||||||
# Start transaction
|
# Start transaction
|
||||||
$schema->storage->txn_begin;
|
$schema->storage->txn_begin;
|
||||||
|
@ -68,21 +68,13 @@ subtest 'Koha::RefundLostItemFeeRule::delete() tests' => sub {
|
||||||
$other_rule->delete;
|
$other_rule->delete;
|
||||||
ok( !$other_rule->in_storage, 'Other rule deleted from storage' );
|
ok( !$other_rule->in_storage, 'Other rule deleted from storage' );
|
||||||
|
|
||||||
# deleting the default rule
|
|
||||||
eval {
|
|
||||||
$default_rule->delete;
|
|
||||||
};
|
|
||||||
is( ref($@), 'Koha::Exceptions::CannotDeleteDefault',
|
|
||||||
'Exception on deleting default' );
|
|
||||||
ok( $default_rule->in_storage, 'Default rule still in storage' );
|
|
||||||
|
|
||||||
# Rollback transaction
|
# Rollback transaction
|
||||||
$schema->storage->txn_rollback;
|
$schema->storage->txn_rollback;
|
||||||
};
|
};
|
||||||
|
|
||||||
subtest 'Koha::RefundLostItemFeeRules::_default_rule() tests' => sub {
|
subtest 'Koha::RefundLostItemFeeRules::_default_rule() tests' => sub {
|
||||||
|
|
||||||
plan tests => 4;
|
plan tests => 6;
|
||||||
|
|
||||||
# Start transaction
|
# Start transaction
|
||||||
$schema->storage->txn_begin;
|
$schema->storage->txn_begin;
|
||||||
|
@ -115,6 +107,11 @@ subtest 'Koha::RefundLostItemFeeRules::_default_rule() tests' => sub {
|
||||||
branchcode => '*' });
|
branchcode => '*' });
|
||||||
ok( !Koha::RefundLostItemFeeRules->_default_rule, 'Default rule is set to not refund' );
|
ok( !Koha::RefundLostItemFeeRules->_default_rule, 'Default rule is set to not refund' );
|
||||||
|
|
||||||
|
$default_rule->delete;
|
||||||
|
ok( !$default_rule->in_storage, 'Default rule effectively deleted from storage' );
|
||||||
|
|
||||||
|
ok( Koha::RefundLostItemFeeRules->_default_rule, 'Default rule is set to refund if no default rule is present' );
|
||||||
|
|
||||||
# Rollback transaction
|
# Rollback transaction
|
||||||
$schema->storage->txn_rollback;
|
$schema->storage->txn_rollback;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue