|
Lines 844-857
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 844 |
} |
844 |
} |
| 845 |
); |
845 |
); |
| 846 |
|
846 |
|
| 847 |
my $issue_4 = AddIssue( $renewing_borrower_obj, $item_4->barcode, undef, undef, undef, undef, { auto_renew => 1 } ); |
847 |
my $auto_renew_issue = AddIssue( $renewing_borrower_obj, $item_4->barcode, undef, undef, undef, undef, { auto_renew => 1 } ); |
| 848 |
my $info; |
848 |
my $info; |
| 849 |
( $renewokay, $error, $info ) = |
849 |
( $renewokay, $error, $info ) = |
| 850 |
CanBookBeRenewed( $renewing_borrower_obj, $issue_4 ); |
850 |
CanBookBeRenewed( $renewing_borrower_obj, $auto_renew_issue ); |
| 851 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); |
851 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); |
| 852 |
is( $error, 'auto_too_soon', |
852 |
is( $error, 'auto_too_soon', |
| 853 |
'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = undef (returned code is auto_too_soon)' ); |
853 |
'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = undef (returned code is auto_too_soon)' ); |
| 854 |
is( $info->{soonest_renew_date} , dt_from_string($issue_4->date_due), "Due date is returned as earliest renewal date when error is 'auto_too_soon'" ); |
854 |
is( $info->{soonest_renew_date} , dt_from_string($auto_renew_issue->date_due), "Due date is returned as earliest renewal date when error is 'auto_too_soon'" ); |
| 855 |
AddReserve( |
855 |
AddReserve( |
| 856 |
{ |
856 |
{ |
| 857 |
branchcode => $branch, |
857 |
branchcode => $branch, |
|
Lines 867-895
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 867 |
found => $found |
867 |
found => $found |
| 868 |
} |
868 |
} |
| 869 |
); |
869 |
); |
| 870 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $issue_4 ); |
870 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $auto_renew_issue ); |
| 871 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
871 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
| 872 |
is( $error, 'on_reserve', 'returned code is on_reserve, reserve checked when not checking for cron' ); |
872 |
is( $error, 'on_reserve', 'returned code is on_reserve, reserve checked when not checking for cron' ); |
| 873 |
( $renewokay, $error, $info ) = CanBookBeRenewed( $renewing_borrower_obj, $issue_4, undef, 1 ); |
873 |
( $renewokay, $error, $info ) = CanBookBeRenewed( $renewing_borrower_obj, $auto_renew_issue, undef, 1 ); |
| 874 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
874 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
| 875 |
is( $error, 'auto_too_soon', 'returned code is auto_too_soon, reserve not checked when checking for cron' ); |
875 |
is( $error, 'auto_too_soon', 'returned code is auto_too_soon, reserve not checked when checking for cron' ); |
| 876 |
is( $info->{soonest_renew_date}, dt_from_string($issue_4->date_due), "Due date is returned as earliest renewal date when error is 'auto_too_soon'" ); |
876 |
is( $info->{soonest_renew_date}, dt_from_string($auto_renew_issue->date_due), "Due date is returned as earliest renewal date when error is 'auto_too_soon'" ); |
| 877 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $issue_4, 1 ); |
877 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $auto_renew_issue, 1 ); |
| 878 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
878 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
| 879 |
is( $error, 'on_reserve', 'returned code is on_reserve, auto_too_soon limit is overridden' ); |
879 |
is( $error, 'on_reserve', 'returned code is on_reserve, auto_too_soon limit is overridden' ); |
| 880 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $issue_4, 1, 1 ); |
880 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $auto_renew_issue, 1, 1 ); |
| 881 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
881 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
| 882 |
is( $error, 'on_reserve', 'returned code is on_reserve, auto_too_soon limit is overridden' ); |
882 |
is( $error, 'on_reserve', 'returned code is on_reserve, auto_too_soon limit is overridden' ); |
| 883 |
$dbh->do('UPDATE circulation_rules SET rule_value = 0 where rule_name = "norenewalbefore"'); |
883 |
$dbh->do('UPDATE circulation_rules SET rule_value = 0 where rule_name = "norenewalbefore"'); |
| 884 |
Koha::Cache::Memory::Lite->flush(); |
884 |
Koha::Cache::Memory::Lite->flush(); |
| 885 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $issue_4, 1 ); |
885 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $auto_renew_issue, 1 ); |
| 886 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
886 |
is( $renewokay, 0, 'Still should not be able to renew' ); |
| 887 |
is( $error, 'on_reserve', 'returned code is on_reserve, auto_renew only happens if not on reserve' ); |
887 |
is( $error, 'on_reserve', 'returned code is on_reserve, auto_renew only happens if not on reserve' ); |
| 888 |
ModReserveCancelAll($item_4->itemnumber, $reserving_borrowernumber); |
888 |
ModReserveCancelAll($item_4->itemnumber, $reserving_borrowernumber); |
| 889 |
|
889 |
|
| 890 |
$renewing_borrower_obj = Koha::Patrons->find($renewing_borrower_obj->borrowernumber); |
890 |
$renewing_borrower_obj = Koha::Patrons->find($renewing_borrower_obj->borrowernumber); |
| 891 |
$renewing_borrower_obj->autorenew_checkouts(0)->store; |
891 |
$renewing_borrower_obj->autorenew_checkouts(0)->store; |
| 892 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $issue_4 ); |
892 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $auto_renew_issue ); |
| 893 |
is( $renewokay, 1, 'No renewal before is undef, but patron opted out of auto_renewal' ); |
893 |
is( $renewokay, 1, 'No renewal before is undef, but patron opted out of auto_renewal' ); |
| 894 |
$renewing_borrower_obj->autorenew_checkouts(1)->store; |
894 |
$renewing_borrower_obj->autorenew_checkouts(1)->store; |
| 895 |
|
895 |
|
|
Lines 914-931
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 914 |
# Bug 14101 |
914 |
# Bug 14101 |
| 915 |
# Test premature automatic renewal |
915 |
# Test premature automatic renewal |
| 916 |
( $renewokay, $error, $info ) = |
916 |
( $renewokay, $error, $info ) = |
| 917 |
CanBookBeRenewed( $renewing_borrower_obj, $issue_4 ); |
917 |
CanBookBeRenewed( $renewing_borrower_obj, $auto_renew_issue ); |
| 918 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); |
918 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); |
| 919 |
is( $error, 'auto_too_soon', |
919 |
is( $error, 'auto_too_soon', |
| 920 |
'Bug 14101: Cannot renew, renewal is automatic and premature (returned code is auto_too_soon)' |
920 |
'Bug 14101: Cannot renew, renewal is automatic and premature (returned code is auto_too_soon)' |
| 921 |
); |
921 |
); |
| 922 |
is( $info->{soonest_renew_date}, dt_from_string($issue_4->date_due)->subtract( days => 7 ), "Soonest renew date returned when error is 'auto_too_soon'"); |
922 |
is( $info->{soonest_renew_date}, dt_from_string($auto_renew_issue->date_due)->subtract( days => 7 ), "Soonest renew date returned when error is 'auto_too_soon'"); |
| 923 |
|
923 |
|
| 924 |
$renewing_borrower_obj->autorenew_checkouts(0)->store; |
924 |
$renewing_borrower_obj->autorenew_checkouts(0)->store; |
| 925 |
( $renewokay, $error, $info ) = CanBookBeRenewed( $renewing_borrower_obj, $issue_4 ); |
925 |
( $renewokay, $error, $info ) = CanBookBeRenewed( $renewing_borrower_obj, $auto_renew_issue ); |
| 926 |
is( $renewokay, 0, 'No renewal before is 7, patron opted out of auto_renewal still cannot renew early' ); |
926 |
is( $renewokay, 0, 'No renewal before is 7, patron opted out of auto_renewal still cannot renew early' ); |
| 927 |
is( $error, 'too_soon', 'Error is too_soon, no auto' ); |
927 |
is( $error, 'too_soon', 'Error is too_soon, no auto' ); |
| 928 |
is( $info->{soonest_renew_date}, dt_from_string($issue_4->date_due)->subtract( days => 7 ), "Soonest renew date returned when error is 'too_soon'"); |
928 |
is( $info->{soonest_renew_date}, dt_from_string($auto_renew_issue->date_due)->subtract( days => 7 ), "Soonest renew date returned when error is 'too_soon'"); |
| 929 |
$renewing_borrower_obj->autorenew_checkouts(1)->store; |
929 |
$renewing_borrower_obj->autorenew_checkouts(1)->store; |
| 930 |
|
930 |
|
| 931 |
# Change policy so that loans can only be renewed exactly on due date (0 days prior to due date) |
931 |
# Change policy so that loans can only be renewed exactly on due date (0 days prior to due date) |
|
Lines 933-950
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 933 |
$dbh->do(q{UPDATE circulation_rules SET rule_value = '0' WHERE rule_name = 'norenewalbefore'}); |
933 |
$dbh->do(q{UPDATE circulation_rules SET rule_value = '0' WHERE rule_name = 'norenewalbefore'}); |
| 934 |
Koha::Cache::Memory::Lite->flush(); |
934 |
Koha::Cache::Memory::Lite->flush(); |
| 935 |
( $renewokay, $error, $info ) = |
935 |
( $renewokay, $error, $info ) = |
| 936 |
CanBookBeRenewed( $renewing_borrower_obj, $issue_4 ); |
936 |
CanBookBeRenewed( $renewing_borrower_obj, $auto_renew_issue ); |
| 937 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); |
937 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); |
| 938 |
is( $error, 'auto_too_soon', |
938 |
is( $error, 'auto_too_soon', |
| 939 |
'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = 0 (returned code is auto_too_soon)' |
939 |
'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = 0 (returned code is auto_too_soon)' |
| 940 |
); |
940 |
); |
| 941 |
is( $info->{soonest_renew_date}, dt_from_string($issue_4->date_due), "Soonest renew date returned when error is 'auto_too_soon'"); |
941 |
is( $info->{soonest_renew_date}, dt_from_string($auto_renew_issue->date_due), "Soonest renew date returned when error is 'auto_too_soon'"); |
| 942 |
|
942 |
|
| 943 |
$renewing_borrower_obj->autorenew_checkouts(0)->store; |
943 |
$renewing_borrower_obj->autorenew_checkouts(0)->store; |
| 944 |
( $renewokay, $error, $info ) = CanBookBeRenewed( $renewing_borrower_obj, $issue_4 ); |
944 |
( $renewokay, $error, $info ) = CanBookBeRenewed( $renewing_borrower_obj, $auto_renew_issue ); |
| 945 |
is( $renewokay, 0, 'No renewal before is 0, patron opted out of auto_renewal still cannot renew early' ); |
945 |
is( $renewokay, 0, 'No renewal before is 0, patron opted out of auto_renewal still cannot renew early' ); |
| 946 |
is( $error, 'too_soon', 'Error is too_soon, no auto' ); |
946 |
is( $error, 'too_soon', 'Error is too_soon, no auto' ); |
| 947 |
is( $info->{soonest_renew_date}, dt_from_string($issue_4->date_due), "Soonest renew date returned when error is 'auto_too_soon'"); |
947 |
is( $info->{soonest_renew_date}, dt_from_string($auto_renew_issue->date_due), "Soonest renew date returned when error is 'auto_too_soon'"); |
| 948 |
$renewing_borrower_obj->autorenew_checkouts(1)->store; |
948 |
$renewing_borrower_obj->autorenew_checkouts(1)->store; |
| 949 |
|
949 |
|
| 950 |
# Change policy so that loans can be renewed 99 days prior to the due date |
950 |
# Change policy so that loans can be renewed 99 days prior to the due date |
|
Lines 952-965
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 952 |
$dbh->do(q{UPDATE circulation_rules SET rule_value = '99' WHERE rule_name = 'norenewalbefore'}); |
952 |
$dbh->do(q{UPDATE circulation_rules SET rule_value = '99' WHERE rule_name = 'norenewalbefore'}); |
| 953 |
Koha::Cache::Memory::Lite->flush(); |
953 |
Koha::Cache::Memory::Lite->flush(); |
| 954 |
( $renewokay, $error ) = |
954 |
( $renewokay, $error ) = |
| 955 |
CanBookBeRenewed( $renewing_borrower_obj, $issue_4 ); |
955 |
CanBookBeRenewed( $renewing_borrower_obj, $auto_renew_issue ); |
| 956 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic' ); |
956 |
is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic' ); |
| 957 |
is( $error, 'auto_renew', |
957 |
is( $error, 'auto_renew', |
| 958 |
'Bug 14101: Cannot renew, renewal is automatic (returned code is auto_renew)' |
958 |
'Bug 14101: Cannot renew, renewal is automatic (returned code is auto_renew)' |
| 959 |
); |
959 |
); |
| 960 |
|
960 |
|
| 961 |
$renewing_borrower_obj->autorenew_checkouts(0)->store; |
961 |
$renewing_borrower_obj->autorenew_checkouts(0)->store; |
| 962 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $issue_4 ); |
962 |
( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrower_obj, $auto_renew_issue ); |
| 963 |
is( $renewokay, 1, 'No renewal before is 99, patron opted out of auto_renewal so can renew' ); |
963 |
is( $renewokay, 1, 'No renewal before is 99, patron opted out of auto_renewal so can renew' ); |
| 964 |
$renewing_borrower_obj->autorenew_checkouts(1)->store; |
964 |
$renewing_borrower_obj->autorenew_checkouts(1)->store; |
| 965 |
|
965 |
|
| 966 |
- |
|
|