[% IF error == "no_item" %]
@@ -128,26 +128,44 @@
[% END %]
[% ELSIF error == "auto_renew" or error == "auto_too_much_owing" %]
[% INCLUDE 'biblio-title.inc' biblio=item.biblio link = 1 %] ( [% item.barcode | html %] ) has been scheduled for automatic renewal.
- [% SET override_limit = error == "auto_renew" ? "AUTO_RENEW" : "TOO_MUCH" %]
-
- [% IF Koha.Preference('AllowRenewalLimitOverride') %]
-
+ [% IF error == "auto_too_much_owing" %]
+ [% IF balance %]
+
+ [% END %]
+ [% IF Koha.Preference('AllowFineOverrideRenewing') %]
+
+ [% END %]
+ [% ELSE %]
+ [% SET override_limit = "AUTO_RENEW" %]
+ [% IF Koha.Preference('AllowRenewalLimitOverride') %]
+
+ [% END %]
[% END %]
[% ELSIF error == "too_much_owing" %]
-
[% IF Koha.Preference('AllowFineOverrideRenewing') %]
[% END %]
[% ELSIF error == "on_reserve" %]
@@ -189,7 +207,7 @@
[% END %]
[% IF date_due %]
-
+
[% ELSE %]
-
+
[% END %]
diff --git a/t/cypress/integration/Circulation/FineNoRenewals_spec.ts b/t/cypress/integration/Circulation/FineNoRenewals_spec.ts
index 8f49d3979a..7d28d2b7c1 100644
--- a/t/cypress/integration/Circulation/FineNoRenewals_spec.ts
+++ b/t/cypress/integration/Circulation/FineNoRenewals_spec.ts
@@ -13,12 +13,15 @@ describe("Circulation - FineNoRenewals and AllowFineOverrideRenewing", () => {
patron = objects.patron;
checkout = objects.checkout;
- // Set FineNoRenewals to 5
+ // Disable auto_renew on the checkout to get too_much_owing error instead of auto_too_much_owing
cy.task("query", {
- sql: "UPDATE systempreferences SET value = ? WHERE variable = ?",
- values: ["5", "FineNoRenewals"],
+ sql: "UPDATE issues SET auto_renew = 0 WHERE issue_id = ?",
+ values: [checkout.checkout_id],
});
+ // Set FineNoRenewals to 5
+ cy.set_syspref("FineNoRenewals", "5");
+
// Add a fine of 10 to the patron (exceeds limit)
fine_amount = 10;
cy.task("query", {
@@ -27,7 +30,7 @@ describe("Circulation - FineNoRenewals and AllowFineOverrideRenewing", () => {
values: [
patron.patron_id,
fine_amount,
- objects.item.item_id,
+ objects.items[0].item_id,
],
});
@@ -40,23 +43,19 @@ describe("Circulation - FineNoRenewals and AllowFineOverrideRenewing", () => {
cy.task("deleteSampleObjects", [this.testObjects]);
// Reset system preferences
- cy.task("query", {
- sql: "UPDATE systempreferences SET value = '100' WHERE variable = 'FineNoRenewals'",
- });
- cy.task("query", {
- sql: "UPDATE systempreferences SET value = '0' WHERE variable = 'AllowFineOverrideRenewing'",
- });
+ cy.set_syspref("FineNoRenewals", "100");
+ cy.set_syspref("AllowFineOverrideRenewing", "0");
});
it("should block renewal when patron has fines over FineNoRenewals limit", function () {
- const barcode = this.testObjects.item.barcode;
+ const barcode = this.testObjects.items[0].external_id;
// Visit renewal page
cy.visit("/cgi-bin/koha/circ/renew.pl");
// Enter barcode
cy.get("#barcode").type(barcode);
- cy.get("form").submit();
+ cy.get("#barcode").closest("form").submit();
// Should see error message about patron debt
cy.get(".dialog.alert").should("be.visible");
@@ -68,21 +67,20 @@ describe("Circulation - FineNoRenewals and AllowFineOverrideRenewing", () => {
it("should show override button when AllowFineOverrideRenewing is enabled", function () {
// Enable AllowFineOverrideRenewing
- cy.task("query", {
- sql: "UPDATE systempreferences SET value = '1' WHERE variable = 'AllowFineOverrideRenewing'",
- });
+ cy.set_syspref("AllowFineOverrideRenewing", "1");
- const barcode = this.testObjects.item.barcode;
+ const barcode = this.testObjects.items[0].external_id;
// Visit renewal page
cy.visit("/cgi-bin/koha/circ/renew.pl");
// Enter barcode
cy.get("#barcode").type(barcode);
- cy.get("form").submit();
+ cy.get("#barcode").closest("form").submit();
// Should see error message about patron debt
cy.get(".dialog.alert").should("be.visible");
+
cy.get(".dialog.alert li").should(
"contain",
`The patron has a debt of`
@@ -94,24 +92,22 @@ describe("Circulation - FineNoRenewals and AllowFineOverrideRenewing", () => {
);
cy.get('.dialog.alert form button[type="submit"].approve').should(
"contain",
- "Renew checkout(s)"
+ "Override and renew"
);
});
it("should NOT show override button when AllowFineOverrideRenewing is disabled", function () {
// Ensure AllowFineOverrideRenewing is disabled
- cy.task("query", {
- sql: "UPDATE systempreferences SET value = '0' WHERE variable = 'AllowFineOverrideRenewing'",
- });
+ cy.set_syspref("AllowFineOverrideRenewing", "0");
- const barcode = this.testObjects.item.barcode;
+ const barcode = this.testObjects.items[0].external_id;
// Visit renewal page
cy.visit("/cgi-bin/koha/circ/renew.pl");
// Enter barcode
cy.get("#barcode").type(barcode);
- cy.get("form").submit();
+ cy.get("#barcode").closest("form").submit();
// Should see error message about patron debt
cy.get(".dialog.alert").should("be.visible");
@@ -128,18 +124,16 @@ describe("Circulation - FineNoRenewals and AllowFineOverrideRenewing", () => {
it("should allow renewal after override when AllowFineOverrideRenewing is enabled", function () {
// Enable AllowFineOverrideRenewing
- cy.task("query", {
- sql: "UPDATE systempreferences SET value = '1' WHERE variable = 'AllowFineOverrideRenewing'",
- });
+ cy.set_syspref("AllowFineOverrideRenewing", "1");
- const barcode = this.testObjects.item.barcode;
+ const barcode = this.testObjects.items[0].external_id;
// Visit renewal page
cy.visit("/cgi-bin/koha/circ/renew.pl");
// Enter barcode
cy.get("#barcode").type(barcode);
- cy.get("form").submit();
+ cy.get("#barcode").closest("form").submit();
// Click override button
cy.get('.dialog.alert form button[type="submit"].approve').click();
@@ -160,17 +154,17 @@ describe("Circulation - FineNoRenewals and AllowFineOverrideRenewing", () => {
cy.task("query", {
sql: `INSERT INTO accountlines (borrowernumber, amountoutstanding, debit_type_code, status, interface, itemnumber)
VALUES (?, 3.00, 'OVERDUE', 'UNRETURNED', 'test', ?)`,
- values: [patron.patron_id, this.testObjects.item.item_id],
+ values: [patron.patron_id, this.testObjects.items[0].item_id],
});
- const barcode = this.testObjects.item.barcode;
+ const barcode = this.testObjects.items[0].external_id;
// Visit renewal page
cy.visit("/cgi-bin/koha/circ/renew.pl");
// Enter barcode
cy.get("#barcode").type(barcode);
- cy.get("form").submit();
+ cy.get("#barcode").closest("form").submit();
// Should see success message (no error about fines)
cy.get(".dialog.message").should("be.visible");