|
Lines 452-462
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 452 |
|
452 |
|
| 453 |
( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $item_1->itemnumber); |
453 |
( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $item_1->itemnumber); |
| 454 |
is( $renewokay, 0, '(Bug 10663) Cannot renew, reserved'); |
454 |
is( $renewokay, 0, '(Bug 10663) Cannot renew, reserved'); |
| 455 |
is( $error, 'on_reserve', '(Bug 10663) Cannot renew, reserved (returned error is on_reserve)'); |
455 |
is( $error->[0], 'on_reserve', '(Bug 10663) Cannot renew, reserved (returned error is on_reserve)'); |
| 456 |
|
456 |
|
| 457 |
( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $item_2->itemnumber); |
457 |
( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $item_2->itemnumber); |
| 458 |
is( $renewokay, 0, '(Bug 10663) Cannot renew, reserved'); |
458 |
is( $renewokay, 0, '(Bug 10663) Cannot renew, reserved'); |
| 459 |
is( $error, 'on_reserve', '(Bug 10663) Cannot renew, reserved (returned error is on_reserve)'); |
459 |
is( $error->[0], 'on_reserve', '(Bug 10663) Cannot renew, reserved (returned error is on_reserve)'); |
| 460 |
|
460 |
|
| 461 |
my $reserveid = Koha::Holds->search({ biblionumber => $biblio->biblionumber, borrowernumber => $reserving_borrowernumber })->next->reserve_id; |
461 |
my $reserveid = Koha::Holds->search({ biblionumber => $biblio->biblionumber, borrowernumber => $reserving_borrowernumber })->next->reserve_id; |
| 462 |
my $reserving_borrower = Koha::Patrons->find( $reserving_borrowernumber )->unblessed; |
462 |
my $reserving_borrower = Koha::Patrons->find( $reserving_borrowernumber )->unblessed; |
|
Lines 485-491
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 485 |
|
485 |
|
| 486 |
( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $item_1->itemnumber, 1); |
486 |
( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $item_1->itemnumber, 1); |
| 487 |
is( $renewokay, 0, '(Bug 10663) Cannot renew, item reserved'); |
487 |
is( $renewokay, 0, '(Bug 10663) Cannot renew, item reserved'); |
| 488 |
is( $error, 'on_reserve', '(Bug 10663) Cannot renew, item reserved (returned error is on_reserve)'); |
488 |
is( $error->[0], 'on_reserve', '(Bug 10663) Cannot renew, item reserved (returned error is on_reserve)'); |
| 489 |
|
489 |
|
| 490 |
( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $item_2->itemnumber, 1); |
490 |
( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $item_2->itemnumber, 1); |
| 491 |
is( $renewokay, 1, 'Can renew item 2, item-level hold is on item 1'); |
491 |
is( $renewokay, 1, 'Can renew item 2, item-level hold is on item 1'); |
|
Lines 629-635
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 629 |
( $renewokay, $error ) = |
629 |
( $renewokay, $error ) = |
| 630 |
CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
630 |
CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
| 631 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); |
631 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); |
| 632 |
is( $error, 'auto_too_soon', |
632 |
is( $error->[0], 'auto_too_soon', |
| 633 |
'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = undef (returned code is auto_too_soon)' ); |
633 |
'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = undef (returned code is auto_too_soon)' ); |
| 634 |
AddReserve( |
634 |
AddReserve( |
| 635 |
{ |
635 |
{ |
|
Lines 648-661
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 648 |
); |
648 |
); |
| 649 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
649 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
| 650 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
650 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
| 651 |
is( $error, 'auto_too_soon', 'returned code is auto_too_soon, reserve not checked' ); |
651 |
is( $error->[0], 'auto_too_soon', 'returned code is auto_too_soon, reserve not checked' ); |
| 652 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber, 1 ); |
652 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber, 1 ); |
| 653 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
653 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
| 654 |
is( $error, 'on_reserve', 'returned code is on_reserve, auto_too_soon limit is overridden' ); |
654 |
is( $error->[0], 'on_reserve', 'returned code is on_reserve, auto_too_soon limit is overridden' ); |
| 655 |
$dbh->do('UPDATE circulation_rules SET rule_value = 0 where rule_name = "norenewalbefore"'); |
655 |
$dbh->do('UPDATE circulation_rules SET rule_value = 0 where rule_name = "norenewalbefore"'); |
| 656 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber, 1 ); |
656 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber, 1 ); |
| 657 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
657 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
| 658 |
is( $error, 'on_reserve', 'returned code is on_reserve, auto_renew only happens if not on reserve' ); |
658 |
is( $error->[0], 'on_reserve', 'returned code is on_reserve, auto_renew only happens if not on reserve' ); |
| 659 |
ModReserveCancelAll($item_4->itemnumber, $reserving_borrowernumber); |
659 |
ModReserveCancelAll($item_4->itemnumber, $reserving_borrowernumber); |
| 660 |
|
660 |
|
| 661 |
|
661 |
|
|
Lines 680-686
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 680 |
|
680 |
|
| 681 |
( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $item_1->itemnumber); |
681 |
( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $item_1->itemnumber); |
| 682 |
is( $renewokay, 0, 'Bug 7413: Cannot renew, renewal is premature'); |
682 |
is( $renewokay, 0, 'Bug 7413: Cannot renew, renewal is premature'); |
| 683 |
is( $error, 'too_soon', 'Bug 7413: Cannot renew, renewal is premature (returned code is too_soon)'); |
683 |
is( $error->[0], 'too_soon', 'Bug 7413: Cannot renew, renewal is premature (returned code is too_soon)'); |
| 684 |
|
684 |
|
| 685 |
# Bug 14395 |
685 |
# Bug 14395 |
| 686 |
# Test 'exact time' setting for syspref NoRenewalBeforePrecision |
686 |
# Test 'exact time' setting for syspref NoRenewalBeforePrecision |
|
Lines 705-718
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 705 |
( $renewokay, $error ) = |
705 |
( $renewokay, $error ) = |
| 706 |
CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
706 |
CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
| 707 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); |
707 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); |
| 708 |
is( $error, 'auto_too_soon', |
708 |
is( $error->[0], 'auto_too_soon', |
| 709 |
'Bug 14101: Cannot renew, renewal is automatic and premature (returned code is auto_too_soon)' |
709 |
'Bug 14101: Cannot renew, renewal is automatic and premature (returned code is auto_too_soon)' |
| 710 |
); |
710 |
); |
| 711 |
|
711 |
|
| 712 |
$renewing_borrower_obj->autorenew_checkouts(0)->store; |
712 |
$renewing_borrower_obj->autorenew_checkouts(0)->store; |
| 713 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
713 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
| 714 |
is( $renewokay, 0, 'No renewal before is 7, patron opted out of auto_renewal still cannot renew early' ); |
714 |
is( $renewokay, 0, 'No renewal before is 7, patron opted out of auto_renewal still cannot renew early' ); |
| 715 |
is( $error, 'too_soon', 'Error is too_soon, no auto' ); |
715 |
is( $error->[0], 'too_soon', 'Error is too_soon, no auto' ); |
| 716 |
$renewing_borrower_obj->autorenew_checkouts(1)->store; |
716 |
$renewing_borrower_obj->autorenew_checkouts(1)->store; |
| 717 |
|
717 |
|
| 718 |
# Change policy so that loans can only be renewed exactly on due date (0 days prior to due date) |
718 |
# Change policy so that loans can only be renewed exactly on due date (0 days prior to due date) |
|
Lines 721-734
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 721 |
( $renewokay, $error ) = |
721 |
( $renewokay, $error ) = |
| 722 |
CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
722 |
CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
| 723 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); |
723 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); |
| 724 |
is( $error, 'auto_too_soon', |
724 |
is( $error->[0], 'auto_too_soon', |
| 725 |
'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = 0 (returned code is auto_too_soon)' |
725 |
'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = 0 (returned code is auto_too_soon)' |
| 726 |
); |
726 |
); |
| 727 |
|
727 |
|
| 728 |
$renewing_borrower_obj->autorenew_checkouts(0)->store; |
728 |
$renewing_borrower_obj->autorenew_checkouts(0)->store; |
| 729 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
729 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
| 730 |
is( $renewokay, 0, 'No renewal before is 0, patron opted out of auto_renewal still cannot renew early' ); |
730 |
is( $renewokay, 0, 'No renewal before is 0, patron opted out of auto_renewal still cannot renew early' ); |
| 731 |
is( $error, 'too_soon', 'Error is too_soon, no auto' ); |
731 |
is( $error->[0], 'too_soon', 'Error is too_soon, no auto' ); |
| 732 |
$renewing_borrower_obj->autorenew_checkouts(1)->store; |
732 |
$renewing_borrower_obj->autorenew_checkouts(1)->store; |
| 733 |
|
733 |
|
| 734 |
# Change policy so that loans can be renewed 99 days prior to the due date |
734 |
# Change policy so that loans can be renewed 99 days prior to the due date |
|
Lines 737-743
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 737 |
( $renewokay, $error ) = |
737 |
( $renewokay, $error ) = |
| 738 |
CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
738 |
CanBookBeRenewed( $renewing_borrowernumber, $item_4->itemnumber ); |
| 739 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic' ); |
739 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic' ); |
| 740 |
is( $error, 'auto_renew', |
740 |
is( $error->[0], 'auto_renew', |
| 741 |
'Bug 14101: Cannot renew, renewal is automatic (returned code is auto_renew)' |
741 |
'Bug 14101: Cannot renew, renewal is automatic (returned code is auto_renew)' |
| 742 |
); |
742 |
); |
| 743 |
|
743 |
|
|
Lines 776-782
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 776 |
( $renewokay, $error ) = |
776 |
( $renewokay, $error ) = |
| 777 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
777 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
| 778 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
778 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 779 |
is( $error, 'auto_too_late', 'Cannot renew, too late(returned code is auto_too_late)' ); |
779 |
is( $error->[0], 'auto_too_late', 'Cannot renew, too late(returned code is auto_too_late)' ); |
| 780 |
|
780 |
|
| 781 |
Koha::CirculationRules->set_rules( |
781 |
Koha::CirculationRules->set_rules( |
| 782 |
{ |
782 |
{ |
|
Lines 792-798
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 792 |
( $renewokay, $error ) = |
792 |
( $renewokay, $error ) = |
| 793 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
793 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
| 794 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
794 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 795 |
is( $error, 'auto_too_late', 'Cannot auto renew, too late - no_auto_renewal_after is inclusive(returned code is auto_too_late)' ); |
795 |
is( $error->[0], 'auto_too_late', 'Cannot auto renew, too late - no_auto_renewal_after is inclusive(returned code is auto_too_late)' ); |
| 796 |
|
796 |
|
| 797 |
Koha::CirculationRules->set_rules( |
797 |
Koha::CirculationRules->set_rules( |
| 798 |
{ |
798 |
{ |
|
Lines 808-814
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 808 |
( $renewokay, $error ) = |
808 |
( $renewokay, $error ) = |
| 809 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
809 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
| 810 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
810 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 811 |
is( $error, 'auto_too_soon', 'Cannot auto renew, too soon - no_auto_renewal_after is defined(returned code is auto_too_soon)' ); |
811 |
is( $error->[0], 'auto_too_soon', 'Cannot auto renew, too soon - no_auto_renewal_after is defined(returned code is auto_too_soon)' ); |
| 812 |
|
812 |
|
| 813 |
Koha::CirculationRules->set_rules( |
813 |
Koha::CirculationRules->set_rules( |
| 814 |
{ |
814 |
{ |
|
Lines 824-830
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 824 |
( $renewokay, $error ) = |
824 |
( $renewokay, $error ) = |
| 825 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
825 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
| 826 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
826 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 827 |
is( $error, 'auto_renew', 'Cannot renew, renew is automatic' ); |
827 |
is( $error->[0], 'auto_renew', 'Cannot renew, renew is automatic' ); |
| 828 |
|
828 |
|
| 829 |
Koha::CirculationRules->set_rules( |
829 |
Koha::CirculationRules->set_rules( |
| 830 |
{ |
830 |
{ |
|
Lines 841-847
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 841 |
( $renewokay, $error ) = |
841 |
( $renewokay, $error ) = |
| 842 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
842 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
| 843 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
843 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 844 |
is( $error, 'auto_too_late', 'Cannot renew, too late(returned code is auto_too_late)' ); |
844 |
is( $error->[0], 'auto_too_late', 'Cannot renew, too late(returned code is auto_too_late)' ); |
| 845 |
|
845 |
|
| 846 |
Koha::CirculationRules->set_rules( |
846 |
Koha::CirculationRules->set_rules( |
| 847 |
{ |
847 |
{ |
|
Lines 858-864
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 858 |
( $renewokay, $error ) = |
858 |
( $renewokay, $error ) = |
| 859 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
859 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
| 860 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
860 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 861 |
is( $error, 'auto_too_late', 'Cannot renew, too late(returned code is auto_too_late)' ); |
861 |
is( $error->[0], 'auto_too_late', 'Cannot renew, too late(returned code is auto_too_late)' ); |
| 862 |
|
862 |
|
| 863 |
Koha::CirculationRules->set_rules( |
863 |
Koha::CirculationRules->set_rules( |
| 864 |
{ |
864 |
{ |
|
Lines 875-881
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 875 |
( $renewokay, $error ) = |
875 |
( $renewokay, $error ) = |
| 876 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
876 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
| 877 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
877 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 878 |
is( $error, 'auto_renew', 'Cannot renew, renew is automatic' ); |
878 |
is( $error->[0], 'auto_renew', 'Cannot renew, renew is automatic' ); |
| 879 |
}; |
879 |
}; |
| 880 |
|
880 |
|
| 881 |
subtest "auto_too_much_oweing | OPACFineNoRenewalsBlockAutoRenew & OPACFineNoRenewalsIncludeCredit" => sub { |
881 |
subtest "auto_too_much_oweing | OPACFineNoRenewalsBlockAutoRenew & OPACFineNoRenewalsIncludeCredit" => sub { |
|
Lines 921-927
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 921 |
( $renewokay, $error ) = |
921 |
( $renewokay, $error ) = |
| 922 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
922 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
| 923 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
923 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 924 |
is( $error, 'auto_renew', 'Can auto renew, OPACFineNoRenewals=10, patron has 5' ); |
924 |
is( $error->[0], 'auto_renew', 'Can auto renew, OPACFineNoRenewals=10, patron has 5' ); |
| 925 |
|
925 |
|
| 926 |
$account->add_debit( |
926 |
$account->add_debit( |
| 927 |
{ |
927 |
{ |
|
Lines 935-941
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 935 |
( $renewokay, $error ) = |
935 |
( $renewokay, $error ) = |
| 936 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
936 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
| 937 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
937 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 938 |
is( $error, 'auto_renew', 'Can auto renew, OPACFineNoRenewals=10, patron has 10' ); |
938 |
is( $error->[0], 'auto_renew', 'Can auto renew, OPACFineNoRenewals=10, patron has 10' ); |
| 939 |
|
939 |
|
| 940 |
$account->add_debit( |
940 |
$account->add_debit( |
| 941 |
{ |
941 |
{ |
|
Lines 949-955
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 949 |
( $renewokay, $error ) = |
949 |
( $renewokay, $error ) = |
| 950 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
950 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
| 951 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
951 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 952 |
is( $error, 'auto_too_much_oweing', 'Cannot auto renew, OPACFineNoRenewals=10, patron has 15' ); |
952 |
is( $error->[0], 'auto_too_much_oweing', 'Cannot auto renew, OPACFineNoRenewals=10, patron has 15' ); |
| 953 |
|
953 |
|
| 954 |
$account->add_credit( |
954 |
$account->add_credit( |
| 955 |
{ |
955 |
{ |
|
Lines 962-974
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 962 |
( $renewokay, $error ) = |
962 |
( $renewokay, $error ) = |
| 963 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
963 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
| 964 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
964 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 965 |
is( $error, 'auto_renew', 'Can auto renew, OPACFineNoRenewals=10, OPACFineNoRenewalsIncludeCredit=1, patron has 15 debt, 5 credit' ); |
965 |
is( $error->[0], 'auto_renew', 'Can auto renew, OPACFineNoRenewals=10, OPACFineNoRenewalsIncludeCredit=1, patron has 15 debt, 5 credit' ); |
| 966 |
|
966 |
|
| 967 |
C4::Context->set_preference('OPACFineNoRenewalsIncludeCredit','0'); |
967 |
C4::Context->set_preference('OPACFineNoRenewalsIncludeCredit','0'); |
| 968 |
( $renewokay, $error ) = |
968 |
( $renewokay, $error ) = |
| 969 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
969 |
CanBookBeRenewed( $renewing_borrowernumber, $item_to_auto_renew->{itemnumber} ); |
| 970 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
970 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 971 |
is( $error, 'auto_too_much_oweing', 'Cannot auto renew, OPACFineNoRenewals=10, OPACFineNoRenewalsIncludeCredit=1, patron has 15 debt, 5 credit' ); |
971 |
is( $error->[0], 'auto_too_much_oweing', 'Cannot auto renew, OPACFineNoRenewals=10, OPACFineNoRenewalsIncludeCredit=1, patron has 15 debt, 5 credit' ); |
| 972 |
|
972 |
|
| 973 |
$dbh->do('DELETE FROM accountlines WHERE borrowernumber=?', undef, $renewing_borrowernumber); |
973 |
$dbh->do('DELETE FROM accountlines WHERE borrowernumber=?', undef, $renewing_borrowernumber); |
| 974 |
C4::Context->set_preference('OPACFineNoRenewalsIncludeCredit','1'); |
974 |
C4::Context->set_preference('OPACFineNoRenewalsIncludeCredit','1'); |
|
Lines 1008-1014
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 1008 |
( $renewokay, $error ) = |
1008 |
( $renewokay, $error ) = |
| 1009 |
CanBookBeRenewed( $patron->{borrowernumber}, $item_to_auto_renew->{itemnumber} ); |
1009 |
CanBookBeRenewed( $patron->{borrowernumber}, $item_to_auto_renew->{itemnumber} ); |
| 1010 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
1010 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 1011 |
is( $error, 'auto_renew', 'Can auto renew, patron is expired but BlockExpiredPatronOpacActions=0' ); |
1011 |
is( $error->[0], 'auto_renew', 'Can auto renew, patron is expired but BlockExpiredPatronOpacActions=0' ); |
| 1012 |
Koha::Checkouts->find( $checkout->issue_id )->delete; |
1012 |
Koha::Checkouts->find( $checkout->issue_id )->delete; |
| 1013 |
|
1013 |
|
| 1014 |
|
1014 |
|
|
Lines 1020-1026
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 1020 |
( $renewokay, $error ) = |
1020 |
( $renewokay, $error ) = |
| 1021 |
CanBookBeRenewed( $patron->{borrowernumber}, $item_to_auto_renew->{itemnumber} ); |
1021 |
CanBookBeRenewed( $patron->{borrowernumber}, $item_to_auto_renew->{itemnumber} ); |
| 1022 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
1022 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 1023 |
is( $error, 'auto_account_expired', 'Can not auto renew, lockExpiredPatronOpacActions=1 and patron is expired' ); |
1023 |
is( $error->[0], 'auto_account_expired', 'Can not auto renew, lockExpiredPatronOpacActions=1 and patron is expired' ); |
| 1024 |
Koha::Checkouts->find( $checkout->issue_id )->delete; |
1024 |
Koha::Checkouts->find( $checkout->issue_id )->delete; |
| 1025 |
|
1025 |
|
| 1026 |
|
1026 |
|
|
Lines 1032-1038
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 1032 |
( $renewokay, $error ) = |
1032 |
( $renewokay, $error ) = |
| 1033 |
CanBookBeRenewed( $patron->{borrowernumber}, $item_to_auto_renew->{itemnumber} ); |
1033 |
CanBookBeRenewed( $patron->{borrowernumber}, $item_to_auto_renew->{itemnumber} ); |
| 1034 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
1034 |
is( $renewokay, 0, 'Do not renew, renewal is automatic' ); |
| 1035 |
is( $error, 'auto_renew', 'Can auto renew, BlockExpiredPatronOpacActions=1 but patron is not expired' ); |
1035 |
is( $error->[0], 'auto_renew', 'Can auto renew, BlockExpiredPatronOpacActions=1 but patron is not expired' ); |
| 1036 |
Koha::Checkouts->find( $checkout->issue_id )->delete; |
1036 |
Koha::Checkouts->find( $checkout->issue_id )->delete; |
| 1037 |
}; |
1037 |
}; |
| 1038 |
|
1038 |
|
|
Lines 1158-1164
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 1158 |
|
1158 |
|
| 1159 |
( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $item_1->itemnumber); |
1159 |
( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $item_1->itemnumber); |
| 1160 |
is( $renewokay, 0, 'Cannot renew, 0 renewals allowed'); |
1160 |
is( $renewokay, 0, 'Cannot renew, 0 renewals allowed'); |
| 1161 |
is( $error, 'too_many', 'Cannot renew, 0 renewals allowed (returned code is too_many)'); |
1161 |
is( $error->[0], 'too_many', 'Cannot renew, 0 renewals allowed (returned code is too_many)'); |
| 1162 |
|
1162 |
|
| 1163 |
# Test WhenLostForgiveFine and WhenLostChargeReplacementFee |
1163 |
# Test WhenLostForgiveFine and WhenLostChargeReplacementFee |
| 1164 |
t::lib::Mocks::mock_preference('WhenLostForgiveFine','1'); |
1164 |
t::lib::Mocks::mock_preference('WhenLostForgiveFine','1'); |
|
Lines 1547-1553
subtest "AllowRenewalIfOtherItemsAvailable tests" => sub {
Link Here
|
| 1547 |
my $issue = AddIssue( $borrower, $item->barcode, undef, undef, undef, undef, { onsite_checkout => 1 } ); |
1547 |
my $issue = AddIssue( $borrower, $item->barcode, undef, undef, undef, undef, { onsite_checkout => 1 } ); |
| 1548 |
my ( $renewed, $error ) = CanBookBeRenewed( $borrowernumber, $item->itemnumber ); |
1548 |
my ( $renewed, $error ) = CanBookBeRenewed( $borrowernumber, $item->itemnumber ); |
| 1549 |
is( $renewed, 0, 'CanBookBeRenewed should not allow to renew on-site checkout' ); |
1549 |
is( $renewed, 0, 'CanBookBeRenewed should not allow to renew on-site checkout' ); |
| 1550 |
is( $error, 'onsite_checkout', 'A correct error code should be returned by CanBookBeRenewed for on-site checkout' ); |
1550 |
is( $error->[0], 'onsite_checkout', 'A correct error code should be returned by CanBookBeRenewed for on-site checkout' ); |
| 1551 |
} |
1551 |
} |
| 1552 |
|
1552 |
|
| 1553 |
{ |
1553 |
{ |
|
Lines 3415-3421
subtest 'ItemsDeniedRenewal preference' => sub {
Link Here
|
| 3415 |
( $idr_mayrenew, $idr_error ) = |
3415 |
( $idr_mayrenew, $idr_error ) = |
| 3416 |
CanBookBeRenewed( $idr_borrower->borrowernumber, $deny_issue->itemnumber ); |
3416 |
CanBookBeRenewed( $idr_borrower->borrowernumber, $deny_issue->itemnumber ); |
| 3417 |
is( $idr_mayrenew, 0, 'Renewal blocked when 1 rules (withdrawn)' ); |
3417 |
is( $idr_mayrenew, 0, 'Renewal blocked when 1 rules (withdrawn)' ); |
| 3418 |
is( $idr_error, 'item_denied_renewal', 'Renewal blocked when 1 rule (withdrawn)' ); |
3418 |
is( $idr_error->[0], 'item_denied_renewal', 'Renewal blocked when 1 rule (withdrawn)' ); |
| 3419 |
( $idr_mayrenew, $idr_error ) = |
3419 |
( $idr_mayrenew, $idr_error ) = |
| 3420 |
CanBookBeRenewed( $idr_borrower->borrowernumber, $allow_issue->itemnumber ); |
3420 |
CanBookBeRenewed( $idr_borrower->borrowernumber, $allow_issue->itemnumber ); |
| 3421 |
is( $idr_mayrenew, 1, 'Renewal allowed when 1 rules not matched (withdrawn)' ); |
3421 |
is( $idr_mayrenew, 1, 'Renewal allowed when 1 rules not matched (withdrawn)' ); |
|
Lines 3427-3433
subtest 'ItemsDeniedRenewal preference' => sub {
Link Here
|
| 3427 |
( $idr_mayrenew, $idr_error ) = |
3427 |
( $idr_mayrenew, $idr_error ) = |
| 3428 |
CanBookBeRenewed( $idr_borrower->borrowernumber, $deny_issue->itemnumber ); |
3428 |
CanBookBeRenewed( $idr_borrower->borrowernumber, $deny_issue->itemnumber ); |
| 3429 |
is( $idr_mayrenew, 0, 'Renewal blocked when 2 rules matched (withdrawn, itype)' ); |
3429 |
is( $idr_mayrenew, 0, 'Renewal blocked when 2 rules matched (withdrawn, itype)' ); |
| 3430 |
is( $idr_error, 'item_denied_renewal', 'Renewal blocked when 2 rules matched (withdrawn,itype)' ); |
3430 |
is( $idr_error->[0], 'item_denied_renewal', 'Renewal blocked when 2 rules matched (withdrawn,itype)' ); |
| 3431 |
( $idr_mayrenew, $idr_error ) = |
3431 |
( $idr_mayrenew, $idr_error ) = |
| 3432 |
CanBookBeRenewed( $idr_borrower->borrowernumber, $allow_issue->itemnumber ); |
3432 |
CanBookBeRenewed( $idr_borrower->borrowernumber, $allow_issue->itemnumber ); |
| 3433 |
is( $idr_mayrenew, 1, 'Renewal allowed when 2 rules not matched (withdrawn, itype)' ); |
3433 |
is( $idr_mayrenew, 1, 'Renewal allowed when 2 rules not matched (withdrawn, itype)' ); |
|
Lines 3439-3445
subtest 'ItemsDeniedRenewal preference' => sub {
Link Here
|
| 3439 |
( $idr_mayrenew, $idr_error ) = |
3439 |
( $idr_mayrenew, $idr_error ) = |
| 3440 |
CanBookBeRenewed( $idr_borrower->borrowernumber, $deny_issue->itemnumber ); |
3440 |
CanBookBeRenewed( $idr_borrower->borrowernumber, $deny_issue->itemnumber ); |
| 3441 |
is( $idr_mayrenew, 0, 'Renewal blocked when 3 rules matched (withdrawn, itype, location)' ); |
3441 |
is( $idr_mayrenew, 0, 'Renewal blocked when 3 rules matched (withdrawn, itype, location)' ); |
| 3442 |
is( $idr_error, 'item_denied_renewal', 'Renewal blocked when 3 rules matched (withdrawn,itype, location)' ); |
3442 |
is( $idr_error->[0], 'item_denied_renewal', 'Renewal blocked when 3 rules matched (withdrawn,itype, location)' ); |
| 3443 |
( $idr_mayrenew, $idr_error ) = |
3443 |
( $idr_mayrenew, $idr_error ) = |
| 3444 |
CanBookBeRenewed( $idr_borrower->borrowernumber, $allow_issue->itemnumber ); |
3444 |
CanBookBeRenewed( $idr_borrower->borrowernumber, $allow_issue->itemnumber ); |
| 3445 |
is( $idr_mayrenew, 1, 'Renewal allowed when 3 rules not matched (withdrawn, itype, location)' ); |
3445 |
is( $idr_mayrenew, 1, 'Renewal allowed when 3 rules not matched (withdrawn, itype, location)' ); |
| 3446 |
- |
|
|