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;
=head3 _default_rule (internal)
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
sub _default_rule {
+
my $self = shift;
+ my $default_rule = $self->find({ branchcode => '*' });
- return $self->find({ branchcode => '*' })->refund;
+ return (defined $default_rule)
+ ? $default_rule->refund
+ : 1;
}
1;
subtest 'Koha::RefundLostItemFeeRule::delete() tests' => sub {
- plan tests => 7;
+ plan tests => 5;
# Start transaction
$schema->storage->txn_begin;
$other_rule->delete;
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
$schema->storage->txn_rollback;
};
subtest 'Koha::RefundLostItemFeeRules::_default_rule() tests' => sub {
- plan tests => 4;
+ plan tests => 6;
# Start transaction
$schema->storage->txn_begin;
branchcode => '*' });
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
$schema->storage->txn_rollback;
};