Bugzilla – Attachment 144451 Details for
Bug 30642
We should record the renewal type (automatic/manual)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 30642: Record renewal type
Bug-30642-Record-renewal-type.patch (text/plain), 5.18 KB, created by
Matt Blenkinsop
on 2022-12-06 16:55:50 UTC
(
hide
)
Description:
Bug 30642: Record renewal type
Filename:
MIME Type:
Creator:
Matt Blenkinsop
Created:
2022-12-06 16:55:50 UTC
Size:
5.18 KB
patch
obsolete
>From e1522149ad5e846ff3856b71e8c877b4cdc78207 Mon Sep 17 00:00:00 2001 >From: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com> >Date: Tue, 6 Dec 2022 16:48:45 +0000 >Subject: [PATCH] Bug 30642: Record renewal type > >A requirement has been requested to record whether a renewal was done manually or automatically. A column has been added to the checkout_renewals table in the database to record this and a check is now in place to determine whether the renewal was manual or automatic. > >Test plan: >1) In the database shell run "show columns from checkout_renewals;" and observe that there is currently no column for recording the type of renewal >2) Apply patch >3) In the shell run "dbic" and "perl installer/data/mysql/updatedatabase.pl" to update the database schema with the new column. >4) Create some checkouts >5) Renew some checkouts manually and observe in the database that there is now a column called "renewal_type" that will have recorded these as "Manual" >6) Create some checkouts that can be automatically renewed >7) Run the cron script in automatic_renewals.pl and observe that there are now also entries with a renewal_type of "Automatic" >--- > C4/Circulation.pm | 6 +++++- > Koha/Schema/Result/CheckoutRenewal.pm | 14 ++++++++++++-- > .../atomicupdate/bug_30642-add_renewal_type.pl | 18 ++++++++++++++++++ > installer/data/mysql/kohastructure.sql | 1 + > 4 files changed, 36 insertions(+), 3 deletions(-) > create mode 100644 installer/data/mysql/atomicupdate/bug_30642-add_renewal_type.pl > >diff --git a/C4/Circulation.pm b/C4/Circulation.pm >index 336ce9490a..14810cdbab 100644 >--- a/C4/Circulation.pm >+++ b/C4/Circulation.pm >@@ -3048,6 +3048,9 @@ sub AddRenewal { > my $issue = $item_object->checkout; > my $item_unblessed = $item_object->unblessed; > >+ my ($package, $filename, $line) = caller; >+ my $renewal_type = $filename eq "automatic_renewals.pl" ? "Automatic" : "Manual"; >+ > my $dbh = C4::Context->dbh; > > return unless $issue; >@@ -3185,7 +3188,8 @@ sub AddRenewal { > checkout_id => $issue->issue_id, > renewer_id => C4::Context->userenv ? C4::Context->userenv->{'number'} : undef, > seen => $seen, >- interface => C4::Context->interface >+ interface => C4::Context->interface, >+ renewal_type => $renewal_type > } > )->store(); > >diff --git a/Koha/Schema/Result/CheckoutRenewal.pm b/Koha/Schema/Result/CheckoutRenewal.pm >index bf3cbe1883..9efbd93630 100644 >--- a/Koha/Schema/Result/CheckoutRenewal.pm >+++ b/Koha/Schema/Result/CheckoutRenewal.pm >@@ -69,6 +69,14 @@ the interface this renewal took place on > > the date and time the renewal took place > >+=head2 renewal_type >+ >+ data_type: 'varchar' >+ is_nullable: 0 >+ size: 9 >+ >+whether the renewal was an automatic or manual renewal >+ > =cut > > __PACKAGE__->add_columns( >@@ -89,6 +97,8 @@ __PACKAGE__->add_columns( > default_value => \"current_timestamp", > is_nullable => 0, > }, >+ "renewal_type", >+ { data_type => "varchar", is_nullable => 0, size => 9 }, > ); > > =head1 PRIMARY KEY >@@ -126,8 +136,8 @@ __PACKAGE__->belongs_to( > ); > > >-# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-04-27 19:43:17 >-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:7mjiEx634L5FZyjroACUkg >+# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-12-06 16:44:53 >+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:BcbN0Iceh09H2DWEA6CDwA > > =head2 checkout > >diff --git a/installer/data/mysql/atomicupdate/bug_30642-add_renewal_type.pl b/installer/data/mysql/atomicupdate/bug_30642-add_renewal_type.pl >new file mode 100644 >index 0000000000..0ccabec1e0 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_30642-add_renewal_type.pl >@@ -0,0 +1,18 @@ >+use Modern::Perl; >+ >+return { >+ bug_number => "BUG_30642", >+ description => "Record whether a renewal has been done manually or automatically.", >+ up => sub { >+ my ($args) = @_; >+ my ($dbh, $out) = @$args{qw(dbh out)}; >+ >+ if( !column_exists( 'checkout_renewals', 'renewal_type' ) ) { >+ $dbh->do(q{ >+ ALTER TABLE checkout_renewals ADD COLUMN `renewal_type` varchar(9) NOT NULL AFTER `timestamp` >+ }); >+ >+ say $out "Added column 'checkout_renewals.column_name'"; >+ } >+ }, >+}; >\ No newline at end of file >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index d831006cd5..79c01db489 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -1711,6 +1711,7 @@ CREATE TABLE `checkout_renewals` ( > `seen` tinyint(1) DEFAULT 0 COMMENT 'boolean denoting whether the item was present or not', > `interface` varchar(16) NOT NULL COMMENT 'the interface this renewal took place on', > `timestamp` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'the date and time the renewal took place', >+ `renewal_type` varchar(9) NOT NULL COMMENT 'whether the renewal was an automatic or manual renewal', > PRIMARY KEY (`renewal_id`), > KEY `renewer_id` (`renewer_id`), > CONSTRAINT `renewals_renewer_id` FOREIGN KEY (`renewer_id`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE CASCADE >-- >2.37.1 (Apple Git-137.1)
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 30642
:
144451
|
144457
|
144463
|
144499
|
144504
|
144505
|
145518
|
145519
|
145520
|
146471
|
146472
|
146473
|
146474
|
146476
|
146614