Bugzilla – Attachment 22690 Details for
Bug 9673
Track when items are marked as lost or withdrawn
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 9673 - Track when items are marked as lost or withdrawn
Bug-9673---Track-when-items-are-marked-as-lost-or-.patch (text/plain), 6.77 KB, created by
Jonathan Druart
on 2013-11-04 11:26:34 UTC
(
hide
)
Description:
Bug 9673 - Track when items are marked as lost or withdrawn
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2013-11-04 11:26:34 UTC
Size:
6.77 KB
patch
obsolete
>From 856e2695c73016c2b0e1d3ef27d4da8973510792 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Wed, 20 Feb 2013 09:34:38 -0500 >Subject: [PATCH] Bug 9673 - Track when items are marked as lost or withdrawn > >Add date fields to track when an item was marked as lost or withdrawn. >Display those fields on catalogue/moredetail.pl > >Test Plan: >1) Apply patch >2) Run updatedatabase.pl >3) Pick a record with items, browse to the 'items' tab ( moredetail.pl ) >4) Mark an item as lost, verify the field "Lost on:" displays below > the "Lost status" field with todays date. >5) Mark the item as not lost, verify the field no longer displays >6) Repeat steps 4 and 5 with the Withdrawn field. > >Signed-off-by: Mathieu Saby <mathieu.saby@univ-rennes2.fr> >Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> > >Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> >--- > C4/Items.pm | 27 ++++++++++++++++++++ > installer/data/mysql/kohastructure.sql | 4 +++ > installer/data/mysql/updatedatabase.pl | 10 ++++++++ > .../prog/en/modules/catalogue/moredetail.tt | 2 ++ > 4 files changed, 43 insertions(+) > >diff --git a/C4/Items.pm b/C4/Items.pm >index 073d6f7..f3f0996 100644 >--- a/C4/Items.pm >+++ b/C4/Items.pm >@@ -31,8 +31,10 @@ use C4::ClassSource; > use C4::Log; > use List::MoreUtils qw/any/; > use YAML qw/Load/; >+use DateTime::Format::MySQL; > use Data::Dumper; # used as part of logging item record changes, not just for > # debugging; so please don't remove this >+use Koha::DateUtils qw/dt_from_string/; > > use vars qw($VERSION @ISA @EXPORT); > >@@ -540,6 +542,31 @@ sub ModItem { > > $item->{onloan} = undef if $item->{itemlost}; > >+ my @fields = qw( itemlost withdrawn ); >+ >+ # Only call GetItem if we need to set an "on" date field >+ if ( $item->{itemlost} || $item->{withdrawn} ) { >+ my $pre_mod_item = GetItem( $item->{'itemnumber'} ); >+ for my $field (@fields) { >+ if ( defined( $item->{$field} ) >+ and not $pre_mod_item->{$field} >+ and $item->{$field} ) >+ { >+ $item->{ $field . '_on' } = >+ DateTime::Format::MySQL->format_datetime( dt_from_string() ); >+ } >+ } >+ } >+ >+ # If the field is defined but empty, we are removing and, >+ # and thus need to clear out the 'on' field as well >+ for my $field (@fields) { >+ if ( defined( $item->{$field} ) && !$item->{$field} ) { >+ $item->{ $field . '_on' } = undef; >+ } >+ } >+ >+ > _set_derived_columns_for_mod($item); > _do_column_fixes_for_mod($item); > # FIXME add checks >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index fefc985..6aaa426 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -888,7 +888,9 @@ CREATE TABLE `deleteditems` ( > `notforloan` tinyint(1) NOT NULL default 0, -- authorized value defining why this item is not for loan (MARC21 952$7) > `damaged` tinyint(1) NOT NULL default 0, -- authorized value defining this item as damaged (MARC21 952$4) > `itemlost` tinyint(1) NOT NULL default 0, -- authorized value defining this item as lost (MARC21 952$1) >+ `itemlost_on` datetime DEFAULT NULL, -- the date and time an item was last marked as lost, NULL if not lost > `withdrawn` tinyint(1) NOT NULL default 0, -- authorized value defining this item as withdrawn (MARC21 952$0) >+ `withdrawn_on` datetime DEFAULT NULL, -- the date and time an item was last marked as withdrawn, NULL if not withdrawn > `itemcallnumber` varchar(255) default NULL, -- call number for this item (MARC21 952$o) > `coded_location_qualifier` varchar(10) default NULL, -- coded location qualifier(MARC21 952$f) > `issues` smallint(6) default NULL, -- number of times this item has been checked out >@@ -1181,7 +1183,9 @@ CREATE TABLE `items` ( -- holdings/item information > `notforloan` tinyint(1) NOT NULL default 0, -- authorized value defining why this item is not for loan (MARC21 952$7) > `damaged` tinyint(1) NOT NULL default 0, -- authorized value defining this item as damaged (MARC21 952$4) > `itemlost` tinyint(1) NOT NULL default 0, -- authorized value defining this item as lost (MARC21 952$1) >+ `itemlost_on` datetime DEFAULT NULL, -- the date and time an item was last marked as lost, NULL if not lost > `withdrawn` tinyint(1) NOT NULL default 0, -- authorized value defining this item as withdrawn (MARC21 952$0) >+ `withdrawn_on` datetime DEFAULT NULL, -- the date and time an item was last marked as withdrawn, NULL if not withdrawn > `itemcallnumber` varchar(255) default NULL, -- call number for this item (MARC21 952$o) > `coded_location_qualifier` varchar(10) default NULL, -- coded location qualifier(MARC21 952$f) > `issues` smallint(6) default NULL, -- number of times this item has been checked out/issued >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index 6162bc5..f1d1919 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -7743,6 +7743,16 @@ if(CheckVersion($DBversion)) { > SetVersion($DBversion); > } > >+$DBversion = "3.13.00.XXX"; >+if ( CheckVersion($DBversion) ) { >+ $dbh->do("ALTER TABLE items ADD itemlost_on DATETIME NULL AFTER itemlost"); >+ $dbh->do("ALTER TABLE items ADD withdrawn_on DATETIME NULL AFTER wthdrawn"); >+ $dbh->do("ALTER TABLE deleteditems ADD itemlost_on DATETIME NULL AFTER itemlost"); >+ $dbh->do("ALTER TABLE deleteditems ADD withdrawn_on DATETIME NULL AFTER wthdrawn"); >+ print "Upgrade to $DBversion done (Bug 9673 - Track when items are marked as lost or withdrawn)\n"; >+ SetVersion ($DBversion); >+} >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt >index 40798eb..d54513d 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt >@@ -127,6 +127,7 @@ > > [% END %] > </li> >+ [% IF ITEM_DAT.itemlost_on %]<li><span class="label">Lost on:</span>[% ITEM_DAT.itemlost_on | $KohaDates %] </li>[% END %] > [% END %] > [% IF ( ITEM_DAT.itemdamagedloop ) %] > <li><span class="label">Damaged status:</span> >@@ -176,6 +177,7 @@ > </form> > [% END %] > </li> >+ [% IF ITEM_DAT.withdrawn_on %]<li><span class="label">Withdrawn on:</span>[% ITEM_DAT.withdrawn_on | $KohaDates %] </li>[% END %] > </ol></div> > <div class="listgroup"><h4>History</h4> > <ol class="bibliodetails"> >-- >1.7.10.4
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 9673
:
15567
|
15890
|
16002
|
16003
|
16032
|
16033
|
16642
|
16643
|
16644
|
16645
|
16646
|
18031
|
18032
|
18033
|
18034
|
19013
|
19014
|
19079
|
19080
|
19120
|
19121
|
19483
|
19484
|
19485
|
19486
|
19487
|
19488
|
19489
|
19490
|
19492
|
21730
|
21731
| 22690 |
22691