From d8163c0fc5f2ad3045e49ec6f4289296ce5aec8a Mon Sep 17 00:00:00 2001 From: Julian Maurice Date: Fri, 15 Apr 2022 10:01:00 +0200 Subject: [PATCH] Bug 30563: Add syspref to make the "cash register" field mandatory Test plan: 1. Apply patch and run updatedatabase 2. Enable 'UseCashRegisters' syspref and create at least one cash register for your library 3. Verify that you have several authorized values in the 'PAYMENT_TYPE' category. One of them should be 'CASH' 4. Go to a patron accounting tab, create a manual invoice and go to the payment form. Select payment type 'CASH' and verify that you cannot submit the form if no cash register is selected. Select another payment type and verify that you can submit the form even if no cash register is selected 5. Set syspref 'RequireCashRegister' to 'always require a cash register' 6. Repeat step 4 but this time you should not be able to submit the form if no cash register is selected, no matter which payment type is selected. Signed-off-by: Lucas Gass Signed-off-by: Katrin Fischer Signed-off-by: Fridolin Somers --- .../add-syspref-RequireCashRegister.pl | 17 +++++++++++ installer/data/mysql/mandatory/sysprefs.sql | 1 + .../modules/admin/preferences/accounting.pref | 8 +++++ .../prog/en/modules/members/paycollect.tt | 29 +++++++++++++++---- 4 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/add-syspref-RequireCashRegister.pl diff --git a/installer/data/mysql/atomicupdate/add-syspref-RequireCashRegister.pl b/installer/data/mysql/atomicupdate/add-syspref-RequireCashRegister.pl new file mode 100644 index 0000000000..da878d4e82 --- /dev/null +++ b/installer/data/mysql/atomicupdate/add-syspref-RequireCashRegister.pl @@ -0,0 +1,17 @@ +use Modern::Perl; + +return { + bug_number => '30563', + description => 'Add system preference RequireCashRegister', + up => sub { + my ($args) = @_; + my ($dbh, $out) = @$args{qw(dbh out)}; + + $dbh->do(q{ + INSERT IGNORE INTO systempreferences (`variable`, `value`, `options`, `explanation`, `type`) + VALUES ('RequireCashRegister', '0', NULL, 'Require a cash register when collecting a payment', 'YesNo') + }); + + say $out 'System preference RequireCashRegister added'; + }, +}; diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql index 63f05a4f2a..2b7259e80e 100644 --- a/installer/data/mysql/mandatory/sysprefs.sql +++ b/installer/data/mysql/mandatory/sysprefs.sql @@ -569,6 +569,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('RentalsInNoissuesCharge','1',NULL,'Rental charges block checkouts (added to noissuescharge).','YesNo'), ('ReplyToDefault','',NULL,'Use this email address as the replyto in emails','Free'), ('ReportsLog','0',NULL,'If ON, log information about reports.','YesNo'), +('RequireCashRegister','0',NULL,'Require a cash register when collecting a payment','YesNo'), ('RequirePaymentType','0','','Require staff to select a payment type when a payment is made','YesNo'), ('RequireStrongPassword','1','','Require a strong login password for staff and patrons','YesNo'), ('ReservesControlBranch','PatronLibrary','ItemHomeLibrary|PatronLibrary','Branch checked for members reservations rights','Choice'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/accounting.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/accounting.pref index fdede786db..2ba1631c28 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/accounting.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/accounting.pref @@ -33,6 +33,14 @@ Accounting: 1: "Use" 0: "Don't use" - " cash registers with the accounting system to track payments." + - + - "When collecting a payment, " + - pref: RequireCashRegister + default: no + choices: + no: "require a cash register only when the CASH payment type is selected" + yes: "always require a cash register" + - " (Requires UseCashRegisters)" - - pref: EnablePointOfSale default: no diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/paycollect.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/paycollect.tt index 3b493c20b7..b153e3b91a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/paycollect.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/paycollect.tt @@ -187,11 +187,26 @@ [% IF Koha.Preference('UseCashRegisters') %]
  • - - + [% ELSE %] + + + [% IF Koha.Preference('RequireCashRegister') %] + Required + [% END %]
  • [% END %] @@ -420,9 +435,13 @@ }, [% IF Koha.Preference('UseCashRegisters') %] cash_register: { - required: function() { - return $('#payment_type').val() == 'CASH' - } + [% IF Koha.Preference('RequireCashRegister') %] + required: true + [% ELSE %] + required: function() { + return $('#payment_type').val() == 'CASH' + } + [% END %] } [% END %] }, -- 2.39.5