Bugzilla – Attachment 186491 Details for
Bug 4858
Ability to Charge for Print Notices
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 4858: Add patron category column and debit type for print notice charging
Bug-4858-Add-patron-category-column-and-debit-type.patch (text/plain), 6.24 KB, created by
Jacob O'Mara
on 2025-09-16 17:01:02 UTC
(
hide
)
Description:
Bug 4858: Add patron category column and debit type for print notice charging
Filename:
MIME Type:
Creator:
Jacob O'Mara
Created:
2025-09-16 17:01:02 UTC
Size:
6.24 KB
patch
obsolete
>From 7bfe356a1f182f18629e78de9f4c6a48d0312f84 Mon Sep 17 00:00:00 2001 >From: Jacob O'Mara <jacob.omara@openfifth.co.uk> >Date: Mon, 30 Jun 2025 12:05:35 +0100 >Subject: [PATCH] Bug 4858: Add patron category column and debit type for print > notice charging > >- Add print_notice_charge patron category column to set charge amount >- Add PRINT_NOTICE debit type for billing system integration >- Create atomic update for existing installations > >This provides the foundation for implementing print notice charging >to recover postage and processing costs. > >To test: >prove -vv t/db_dependent/Koha/Account/PrintNoticeCharges.t >prove -vv t/db_dependent/Koha/Patron/Category.t >prove -vv t/db_dependent/PrintNoticeCharging_EndToEnd.t > >Navigate to patron categories, and check that you can set a print notice >charge amount >Check that in messaging preferences, you can amend the preferences of >print notices for both patrons and patron categories >Check that in messaging preferences on the opac, you will receive a >warning if print notice charging is enabled (set to anything other than >0 for this patron category) and a recommendation to set up email to >avoid charges. >--- > .../bug_4858-print-notice-charge.pl | 58 +++++++++++++++++++ > .../en/mandatory/account_debit_types.yml | 7 +++ > installer/data/mysql/kohastructure.sql | 1 + > 3 files changed, 66 insertions(+) > create mode 100755 installer/data/mysql/atomicupdate/bug_4858-print-notice-charge.pl > >diff --git a/installer/data/mysql/atomicupdate/bug_4858-print-notice-charge.pl b/installer/data/mysql/atomicupdate/bug_4858-print-notice-charge.pl >new file mode 100755 >index 00000000000..3e8063a94ce >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_4858-print-notice-charge.pl >@@ -0,0 +1,58 @@ >+use Modern::Perl; >+use Koha::Installer::Output qw(say_warning say_success say_info); >+ >+return { >+ bug_number => "4858", >+ description => "Add print notice charge to patron categories and setup print transports", >+ up => sub { >+ my ($args) = @_; >+ my ( $dbh, $out ) = @$args{qw(dbh out)}; >+ >+ # Add print_notice_charge column to categories table >+ $dbh->do( >+ q{ALTER TABLE categories >+ ADD COLUMN print_notice_charge decimal(28,6) DEFAULT 0.00 >+ COMMENT 'charge for print notices (0.00 = disabled)' >+ AFTER reservefee} >+ ); >+ >+ # Add PRINT_NOTICE debit type >+ $dbh->do( >+ q{ >+ INSERT IGNORE INTO account_debit_types (code, description, can_be_invoiced, can_be_sold, default_amount, is_system, restricts_checkouts) >+ VALUES ('PRINT_NOTICE', 'Print notice charge', 0, 0, 0.50, 1, 0) >+ } >+ ); >+ >+ # Add comprehensive print transport entries for all standard notice types >+ # This enables print checkboxes to appear in messaging preferences >+ $dbh->do( >+ q{ >+ INSERT IGNORE INTO message_transports (message_attribute_id, message_transport_type, is_digest, letter_module, letter_code, branchcode) >+ VALUES >+ (1, 'print', 0, 'circulation', 'DUE', ''), >+ (1, 'print', 1, 'circulation', 'DUEDGST', ''), >+ (2, 'print', 0, 'circulation', 'PREDUE', ''), >+ (2, 'print', 1, 'circulation', 'PREDUEDGST', ''), >+ (4, 'print', 0, 'reserves', 'HOLD', ''), >+ (4, 'print', 1, 'reserves', 'HOLDDGST', ''), >+ (5, 'print', 0, 'circulation', 'CHECKIN', ''), >+ (6, 'print', 0, 'circulation', 'CHECKOUT', ''), >+ (7, 'print', 0, 'ill', 'ILL_PICKUP_READY', ''), >+ (8, 'print', 0, 'ill', 'ILL_REQUEST_UNAVAIL', ''), >+ (9, 'print', 0, 'circulation', 'AUTO_RENEWALS', ''), >+ (9, 'print', 1, 'circulation', 'AUTO_RENEWALS_DGST', ''), >+ (10, 'print', 0, 'circulation', 'HOLD_REMINDER', ''), >+ (11, 'print', 0, 'ill', 'ILL_REQUEST_UPDATE', ''), >+ (12, 'print', 0, 'circulation', 'PICKUP_RECALLED_ITEM', ''), >+ (13, 'print', 0, 'circulation', 'RETURN_RECALLED_ITEM', ''), >+ (14, 'print', 0, 'members', 'MEMBERSHIP_EXPIRY', '') >+ } >+ ); >+ >+ say_success( >+ $out, >+ "Added print_notice_charge column to categories table, debit type, and comprehensive print transport entries for print notice charging" >+ ); >+ }, >+}; >diff --git a/installer/data/mysql/en/mandatory/account_debit_types.yml b/installer/data/mysql/en/mandatory/account_debit_types.yml >index e2479faa245..1835043f561 100644 >--- a/installer/data/mysql/en/mandatory/account_debit_types.yml >+++ b/installer/data/mysql/en/mandatory/account_debit_types.yml >@@ -74,6 +74,13 @@ tables: > default_amount: ~ > is_system: "1" > >+ - code: "PRINT_NOTICE" >+ description: "Print notice charge" >+ can_be_invoiced: "0" >+ can_be_sold: "0" >+ default_amount: ~ >+ is_system: "1" >+ > - code: "PROCESSING" > description: "Lost item processing fee" > can_be_invoiced: "0" >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index b90542fcf4b..0814507d28f 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -1804,6 +1804,7 @@ CREATE TABLE `categories` ( > `enrolmentfee` decimal(28,6) DEFAULT NULL COMMENT 'enrollment fee for the patron', > `overduenoticerequired` tinyint(1) DEFAULT NULL COMMENT 'are overdue notices sent to this patron category (1 for yes, 0 for no)', > `reservefee` decimal(28,6) DEFAULT NULL COMMENT 'cost to place holds', >+ `print_notice_charge` decimal(28,6) DEFAULT 0.00 COMMENT 'charge for print notices (0.00 = disabled)', > `hidelostitems` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'are lost items shown to this category (1 for yes, 0 for no)', > `category_type` varchar(1) NOT NULL DEFAULT 'A' COMMENT 'type of Koha patron (Adult, Child, Professional, Organizational, Statistical, Staff)', > `BlockExpiredPatronOpacActions` varchar(128) NOT NULL DEFAULT 'follow_syspref_BlockExpiredPatronOpacActions' COMMENT 'specific actions expired patrons of this category are blocked from performing or if the BlockExpiredPatronOpacActions system preference is to be followed', >-- >2.39.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 4858
: 186491 |
186492
|
186493
|
186494
|
186495
|
186496
|
186497
|
186498
|
186499
|
186500
|
186501
|
186502