Lines 18-24
Link Here
|
18 |
use Modern::Perl; |
18 |
use Modern::Perl; |
19 |
use utf8; |
19 |
use utf8; |
20 |
|
20 |
|
21 |
use Test::More tests => 74; |
21 |
use Test::More tests => 75; |
22 |
use Test::Exception; |
22 |
use Test::Exception; |
23 |
use Test::MockModule; |
23 |
use Test::MockModule; |
24 |
use Test::Deep qw( cmp_deeply ); |
24 |
use Test::Deep qw( cmp_deeply ); |
Lines 6739-6744
subtest 'Test CanBookBeIssued param ignore_reserves (Bug 35322)' => sub {
Link Here
|
6739 |
|
6739 |
|
6740 |
}; |
6740 |
}; |
6741 |
|
6741 |
|
|
|
6742 |
subtest 'NoRefundOnLostFinesPaidAge' => sub { |
6743 |
plan tests => 2; |
6744 |
|
6745 |
t::lib::Mocks::mock_preference( 'BlockReturnOfLostItems', 0 ); |
6746 |
my $library = $builder->build_object( { class => 'Koha::Libraries' } ); |
6747 |
my $patron = $builder->build_object( |
6748 |
{ |
6749 |
class => 'Koha::Patrons', |
6750 |
value => { categorycode => $patron_category->{categorycode} } |
6751 |
} |
6752 |
); |
6753 |
|
6754 |
my $biblionumber = $builder->build_sample_biblio( |
6755 |
{ |
6756 |
branchcode => $library->branchcode, |
6757 |
} |
6758 |
)->biblionumber; |
6759 |
|
6760 |
Koha::CirculationRules->search->delete; |
6761 |
Koha::CirculationRules->set_rules( |
6762 |
{ |
6763 |
categorycode => undef, |
6764 |
itemtype => undef, |
6765 |
branchcode => undef, |
6766 |
rules => { |
6767 |
issuelength => 14, |
6768 |
lengthunit => 'days', |
6769 |
} |
6770 |
} |
6771 |
); |
6772 |
$builder->build( |
6773 |
{ |
6774 |
source => 'CirculationRule', |
6775 |
value => { |
6776 |
branchcode => undef, |
6777 |
categorycode => undef, |
6778 |
itemtype => undef, |
6779 |
rule_name => 'lostreturn', |
6780 |
rule_value => 'refund' |
6781 |
} |
6782 |
} |
6783 |
); |
6784 |
|
6785 |
my $item = $builder->build_sample_item( |
6786 |
{ |
6787 |
biblionumber => $biblionumber, |
6788 |
library => $library->branchcode, |
6789 |
} |
6790 |
); |
6791 |
my $lost_on = dt_from_string->subtract( days => 5 )->date; |
6792 |
my $issue = AddIssue( $patron, $item->barcode ); |
6793 |
LostItem( $item->itemnumber, 'cli', 0 ); |
6794 |
$item->_result->itemlost(1); |
6795 |
$item->_result->itemlost_on($lost_on); |
6796 |
$item->_result->update(); |
6797 |
|
6798 |
my $debit = Koha::Account::Line->new( |
6799 |
{ |
6800 |
borrowernumber => $patron->id, |
6801 |
date => '1970-01-01 14:00:01', |
6802 |
amount => 5, |
6803 |
amountoutstanding => 0, |
6804 |
interface => 'commandline', |
6805 |
debit_type_code => 'LOST', |
6806 |
itemnumber => $item->itemnumber |
6807 |
} |
6808 |
)->store(); |
6809 |
my $credit = Koha::Account::Line->new( |
6810 |
{ |
6811 |
borrowernumber => $patron->id, |
6812 |
date => '1970-01-01 14:00:01', |
6813 |
amountoutstanding => 0, |
6814 |
amount => -5, |
6815 |
|
6816 |
interface => 'commandline', |
6817 |
credit_type_code => 'PAYMENT' |
6818 |
} |
6819 |
)->store(); |
6820 |
my $offset = Koha::Account::Offset->new( |
6821 |
{ |
6822 |
credit_id => $credit->id, |
6823 |
debit_id => $debit->id, |
6824 |
type => 'APPLY', |
6825 |
amount => -5, |
6826 |
created_on => '1971-01-01 14:00:01' |
6827 |
} |
6828 |
)->store(); |
6829 |
|
6830 |
t::lib::Mocks::mock_preference( 'NoRefundOnLostFinesPaidAge', undef ); |
6831 |
my ( $return, $messages ) = AddReturn( $item->barcode, $library->branchcode, undef, dt_from_string ); |
6832 |
|
6833 |
is( $patron->account->balance, -5, 'Lost fine has been refunded' ); |
6834 |
|
6835 |
my $patron2 = $builder->build_object( |
6836 |
{ |
6837 |
class => 'Koha::Patrons', |
6838 |
value => { categorycode => $patron_category->{categorycode} } |
6839 |
} |
6840 |
); |
6841 |
my $item2 = $builder->build_sample_item( |
6842 |
{ |
6843 |
biblionumber => $biblionumber, |
6844 |
library => $library->branchcode, |
6845 |
} |
6846 |
); |
6847 |
my $lost_on2 = dt_from_string->subtract( days => 5 )->date; |
6848 |
my $issue2 = AddIssue( $patron2, $item2->barcode ); |
6849 |
LostItem( $item2->itemnumber, 'cli', 0 ); |
6850 |
$item2->_result->itemlost(1); |
6851 |
$item2->_result->itemlost_on($lost_on2); |
6852 |
$item2->_result->update(); |
6853 |
|
6854 |
my $debit2 = Koha::Account::Line->new( |
6855 |
{ |
6856 |
borrowernumber => $patron2->id, |
6857 |
date => '1970-01-01 14:00:01', |
6858 |
amount => 5, |
6859 |
amountoutstanding => 0, |
6860 |
interface => 'commandline', |
6861 |
debit_type_code => 'LOST', |
6862 |
itemnumber => $item2->itemnumber |
6863 |
} |
6864 |
)->store(); |
6865 |
my $credit2 = Koha::Account::Line->new( |
6866 |
{ |
6867 |
borrowernumber => $patron2->id, |
6868 |
date => '1970-01-01 14:00:01', |
6869 |
amount => -5, |
6870 |
amountoutstanding => 0, |
6871 |
interface => 'commandline', |
6872 |
credit_type_code => 'PAYMENT' |
6873 |
} |
6874 |
)->store(); |
6875 |
my $offset2 = Koha::Account::Offset->new( |
6876 |
{ |
6877 |
credit_id => $credit2->id, |
6878 |
debit_id => $debit2->id, |
6879 |
type => 'APPLY', |
6880 |
amount => -5, |
6881 |
created_on => '1971-01-01 14:00:01' |
6882 |
} |
6883 |
)->store(); |
6884 |
|
6885 |
t::lib::Mocks::mock_preference( 'NoRefundOnLostFinesPaidAge', 5 ); |
6886 |
my ( $return2, $messages2 ) = AddReturn( $item2->barcode, $library->branchcode, undef, dt_from_string ); |
6887 |
|
6888 |
is( |
6889 |
$patron2->account->balance, 0, |
6890 |
'Lost fine has not been refunded as it is older than NoRefundOnLostFinesPaidAge' |
6891 |
); |
6892 |
}; |
6893 |
|
6742 |
|
6894 |
|
6743 |
$schema->storage->txn_rollback; |
6895 |
$schema->storage->txn_rollback; |
6744 |
C4::Context->clear_syspref_cache(); |
6896 |
C4::Context->clear_syspref_cache(); |
6745 |
- |
|
|