Bugzilla – Attachment 90547 Details for
Bug 18930
Move 'refund lost item fee rules' into the `circulation_rules` table
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 18930: (follow-up) Amend Koha::RefundLostItemFeeRules->find
Bug-18930-follow-up-Amend-KohaRefundLostItemFeeRul.patch (text/plain), 7.65 KB, created by
Agustín Moyano
on 2019-06-12 22:33:57 UTC
(
hide
)
Description:
Bug 18930: (follow-up) Amend Koha::RefundLostItemFeeRules->find
Filename:
MIME Type:
Creator:
Agustín Moyano
Created:
2019-06-12 22:33:57 UTC
Size:
7.65 KB
patch
obsolete
>From 6a6e9a62ae1d9b56040c4a436f1ace8a67c24991 Mon Sep 17 00:00:00 2001 >From: Agustin Moyano <agustinmoyano@theke.io> >Date: Mon, 6 May 2019 23:11:09 -0300 >Subject: [PATCH] Bug 18930: (follow-up) Amend > Koha::RefundLostItemFeeRules->find > >--- > Koha/RefundLostItemFeeRules.pm | 14 ++++++ > admin/smart-rules.pl | 3 +- > t/db_dependent/RefundLostItemFeeRule.t | 87 ++++++++++++++++++++++++++++++---- > 3 files changed, 94 insertions(+), 10 deletions(-) > >diff --git a/Koha/RefundLostItemFeeRules.pm b/Koha/RefundLostItemFeeRules.pm >index b08ac1179d..207c61a7d3 100644 >--- a/Koha/RefundLostItemFeeRules.pm >+++ b/Koha/RefundLostItemFeeRules.pm >@@ -136,6 +136,20 @@ sub _choose_branch { > return $branch; > } > >+=head3 Koha::RefundLostItemFeeRules->find(); >+ >+Inherit from Koha::Objects->find(), but forces rule_name => 'refund' >+ >+=cut >+ >+sub find { >+ my ( $self, @pars ) = @_; >+ >+ $pars[0]->{rule_name} = 'refund'; >+ >+ return $self->SUPER::find(@pars); >+} >+ > =head3 _default_rule (internal) > > This function returns the default rule defined for refunding lost >diff --git a/admin/smart-rules.pl b/admin/smart-rules.pl >index 1b03aed187..403f425e54 100755 >--- a/admin/smart-rules.pl >+++ b/admin/smart-rules.pl >@@ -539,7 +539,8 @@ elsif ( $op eq 'mod-refund-lost-item-fee-rule' ) { > } > } > >-my $refundLostItemFeeRule = Koha::RefundLostItemFeeRules->find({ branchcode => $branch }); >+my $refundLostItemFeeRule = Koha::RefundLostItemFeeRules->find({ branchcode => ($branch eq '*') ? undef:$branch }); >+ > $template->param( > refundLostItemFeeRule => $refundLostItemFeeRule, > defaultRefundRule => Koha::RefundLostItemFeeRules->_default_rule >diff --git a/t/db_dependent/RefundLostItemFeeRule.t b/t/db_dependent/RefundLostItemFeeRule.t >index 3c7b235f17..870af322ab 100755 >--- a/t/db_dependent/RefundLostItemFeeRule.t >+++ b/t/db_dependent/RefundLostItemFeeRule.t >@@ -17,7 +17,7 @@ > > use Modern::Perl; > >-use Test::More tests => 8; >+use Test::More tests => 9; > use t::lib::Mocks; > use t::lib::TestBuilder; > >@@ -47,7 +47,7 @@ subtest 'Koha::RefundLostItemFeeRule::delete() tests' => sub { > { > source => 'CirculationRule', > value => { >- branchcode => '*', >+ branchcode => undef, > categorycode => undef, > itemtype => undef, > rule_name => 'refund', >@@ -67,7 +67,7 @@ subtest 'Koha::RefundLostItemFeeRule::delete() tests' => sub { > > my $default_rule = Koha::CirculationRules->search( > { >- branchcode => '*', >+ branchcode => undef, > categorycode => undef, > itemtype => undef, > rule_name => 'refund', >@@ -109,7 +109,7 @@ subtest 'Koha::RefundLostItemFeeRules::_default_rule() tests' => sub { > { > source => 'CirculationRule', > value => { >- branchcode => '*', >+ branchcode => undef, > categorycode => undef, > itemtype => undef, > rule_name => 'refund', >@@ -130,7 +130,7 @@ subtest 'Koha::RefundLostItemFeeRules::_default_rule() tests' => sub { > > my $default_rule = Koha::CirculationRules->search( > { >- branchcode => '*', >+ branchcode => undef, > categorycode => undef, > itemtype => undef, > rule_name => 'refund', >@@ -146,12 +146,13 @@ subtest 'Koha::RefundLostItemFeeRules::_default_rule() tests' => sub { > # Re-read from DB, to be sure > $default_rule = Koha::CirculationRules->search( > { >- branchcode => '*', >+ branchcode => undef, > categorycode => undef, > itemtype => undef, > rule_name => 'refund', > } > )->next(); >+ use Data::Printer colored => 1; > ok( !Koha::RefundLostItemFeeRules->_default_rule, 'Default rule is set to not refund' ); > > $default_rule->delete; >@@ -177,7 +178,7 @@ subtest 'Koha::RefundLostItemFeeRules::_effective_branch_rule() tests' => sub { > { > source => 'CirculationRule', > value => { >- branchcode => '*', >+ branchcode => undef, > categorycode => undef, > itemtype => undef, > rule_name => 'refund', >@@ -293,7 +294,7 @@ subtest 'Koha::RefundLostItemFeeRules::should_refund() tests' => sub { > { > source => 'CirculationRule', > value => { >- branchcode => '*', >+ branchcode => undef, > categorycode => undef, > itemtype => undef, > rule_name => 'refund', >@@ -363,7 +364,7 @@ subtest 'Koha::RefundLostItemFeeRules::should_refund() tests' => sub { > 1,'No rule for branch, global rule applied (true)'); > > # Change the default value just to try >- Koha::CirculationRules->search({ branchcode => '*', rule_name => 'refund' })->next->rule_value(0)->store; >+ Koha::CirculationRules->search({ branchcode => undef, rule_name => 'refund' })->next->rule_value(0)->store; > t::lib::Mocks::mock_preference( 'RefundLostOnReturnControl', 'ItemHoldingBranch' ); > is( Koha::RefundLostItemFeeRules->should_refund( $params ), > 0,'No rule for branch, global rule applied (false)'); >@@ -372,3 +373,71 @@ subtest 'Koha::RefundLostItemFeeRules::should_refund() tests' => sub { > $schema->storage->txn_rollback; > }; > >+subtest 'Koha::RefundLostItemFeeRules::find() tests' => sub { >+ >+ plan tests => 4; >+ >+ # Start transaction >+ $schema->storage->txn_begin; >+ >+ t::lib::Mocks::mock_preference( 'RefundLostOnReturnControl', 'CheckinLibrary' ); >+ >+ $schema->resultset('CirculationRule')->search()->delete; >+ >+ my $default_non_refund = $builder->build( >+ { >+ source => 'CirculationRule', >+ value => { >+ branchcode => undef, >+ categorycode => undef, >+ itemtype => undef, >+ rule_name => 'non_refund_rule', >+ rule_value => 1 >+ } >+ } >+ ); >+ my $specific_non_refund = $builder->build( >+ { >+ source => 'CirculationRule', >+ value => { >+ categorycode => undef, >+ itemtype => undef, >+ rule_name => 'non_refund_rule', >+ rule_value => 0 >+ } >+ } >+ ); >+ >+ ok(!defined Koha::RefundLostItemFeeRules->find({ branchcode => undef }), 'Non refund default rules are not found'); >+ ok(!defined Koha::RefundLostItemFeeRules->find({ branchcode => $specific_non_refund->{branchcode} }), 'Non refund specific rules are not found'); >+ >+ my $default_refund = $builder->build( >+ { >+ source => 'CirculationRule', >+ value => { >+ branchcode => undef, >+ categorycode => undef, >+ itemtype => undef, >+ rule_name => 'refund', >+ rule_value => 1 >+ } >+ } >+ ); >+ my $specific_refund = $builder->build( >+ { >+ source => 'CirculationRule', >+ value => { >+ categorycode => undef, >+ itemtype => undef, >+ rule_name => 'refund', >+ rule_value => 0 >+ } >+ } >+ ); >+ >+ ok(defined Koha::RefundLostItemFeeRules->find({ branchcode => undef }), 'Refund default rules are found'); >+ ok(defined Koha::RefundLostItemFeeRules->find({ branchcode => $specific_refund->{branchcode} }), 'Refund specific rules are found'); >+ >+ # Rollback transaction >+ $schema->storage->txn_rollback; >+}; >\ No newline at end of file >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 18930
:
65243
|
71007
|
81101
|
81148
|
82937
|
82938
|
85492
|
85493
|
86169
|
86170
|
86171
|
89404
|
89405
|
89406
|
90280
|
90281
|
90282
|
90283
|
90284
|
90285
|
90541
|
90542
|
90543
|
90544
|
90545
|
90546
|
90547
|
90548
|
90549
|
91254
|
91255
|
91256
|
91257
|
91258
|
91259
|
91260