Bugzilla – Attachment 28194 Details for
Bug 12224
Allow easy printing of patron check-in slip
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Allow easy printing of patron check-ins for today
0001-Bug-12224-Allow-easy-printing-of-patron-check-ins-fo.patch (text/plain), 7.27 KB, created by
paxed
on 2014-05-13 06:40:26 UTC
(
hide
)
Description:
Allow easy printing of patron check-ins for today
Filename:
MIME Type:
Creator:
paxed
Created:
2014-05-13 06:40:26 UTC
Size:
7.27 KB
patch
obsolete
>From 68c2aa47cef036e9e5bc42f3cc7b498f1b0f5092 Mon Sep 17 00:00:00 2001 >From: Pasi Kallinen <pasi.kallinen@pttk.fi> >Date: Mon, 12 May 2014 12:24:48 +0300 >Subject: [PATCH] Bug 12224: Allow easy printing of patron check-ins for today > >This adds a printing option to the staff client patron details page >to print a list of items the patron returned today at this branch. > >To test: > >1) Apply patch. >2) Check in tools > Notices & Slips that you have CHECKINSLIP slip, > and have print message there. If not, run updatedatabase.pl >3) Check-in items for a patron. >4) Go to that patron's detail page, and from the Print-menu in > the toolbar, select "Print checked-in today -slip" >5) You should get a slip of the patron's checked-in items. >6) Optionally, test Check-ins for the same patron, but in different > branches - should only print items for the current branch. >7) Optionally, test Check-ins for the same patron, but returned > in different day - should only print items for today. >--- > C4/Members.pm | 66 ++++++++++++++++++++++ > .../data/mysql/en/mandatory/sample_notices.sql | 11 ++++ > installer/data/mysql/updatedatabase.pl | 19 +++++++ > .../prog/en/includes/members-toolbar.inc | 6 ++ > members/printslip.pl | 7 ++- > 5 files changed, 108 insertions(+), 1 deletion(-) > >diff --git a/C4/Members.pm b/C4/Members.pm >index f832495..f201d1e 100644 >--- a/C4/Members.pm >+++ b/C4/Members.pm >@@ -100,6 +100,7 @@ BEGIN { > &GetMessagesCount > > &IssueSlip >+ &CheckInSlip > GetBorrowersWithEmail > > HasOverdues >@@ -2394,6 +2395,71 @@ sub IssueSlip { > ); > } > >+=head2 GetTodaysReturnsForBorrower >+ >+ $returns = GetTodaysReturnsForBorrower($borrowernumber, $branch); >+ >+Return a list of items borrower has checked-in today in branch. >+ >+=cut >+ >+sub GetTodaysReturnsForBorrower { >+ my ($borrowernumber, $branch) = @_; >+ my $dbh = C4::Context->dbh; >+ my $date = POSIX::strftime("%Y-%m-%d",localtime()); >+ >+ my $query = " >+ SELECT itemnumber >+ FROM old_issues >+ WHERE DATE(returndate) = ? >+ AND borrowernumber = ? >+ AND branchcode = ? >+ "; >+ >+ my $sth = $dbh->prepare($query); >+ $sth->execute($date, $borrowernumber, $branch); >+ my @results; >+ >+ while ( my $data = $sth->fetchrow_hashref ) { >+ my $bibdata = GetBiblioFromItemNumber($data->{itemnumber}); >+ push @results, $bibdata; >+ } >+ return \@results; >+} >+ >+=head2 CheckInSlip >+ >+ $letter = CheckInSlip($borrowernumber, $branch [, $message_transport_type ] ); >+ >+Returns the prepared letter data for items patron checked-in today in branch. >+message_transport_type defaults to 'print'. >+ >+=cut >+ >+sub CheckInSlip { >+ my ($borrowernumber, $branch, $mtt) = @_; >+ my $issues = GetTodaysReturnsForBorrower($borrowernumber, $branch); >+ my %repeat = ( >+ 'checkedin' => [ map { >+ 'biblio' => $_, >+ 'items' => $_, >+ 'issues' => $_, >+ }, @$issues ], >+ ); >+ >+ return C4::Letters::GetPreparedLetter ( >+ module => 'circulation', >+ letter_code => 'CHECKINSLIP', >+ branchcode => $branch, >+ tables => { >+ 'branches' => $branch, >+ 'borrowers' => $borrowernumber, >+ }, >+ repeat => \%repeat, >+ message_transport_type => $mtt || 'print', >+ ); >+} >+ > =head2 GetBorrowersWithEmail > > ([$borrnum,$userid], ...) = GetBorrowersWithEmail('me@example.com'); >diff --git a/installer/data/mysql/en/mandatory/sample_notices.sql b/installer/data/mysql/en/mandatory/sample_notices.sql >index 2281739..0789bc9 100644 >--- a/installer/data/mysql/en/mandatory/sample_notices.sql >+++ b/installer/data/mysql/en/mandatory/sample_notices.sql >@@ -142,3 +142,14 @@ Thank you. > > Your library.' > ); >+INSERT INTO letter (module, code, branchcode, name, is_html, title, content, message_transport_type) >+VALUES ( 'circulation', 'CHECKINSLIP', '', 'Printed check-in slip', '1', 'Items returned today', '<<borrowers.firstname>> <<borrowers.surname>><br> >+<<branches.branchname>>, <<today>><br> >+You returned these items today: >+<ul> >+<checkedin> >+<li><<biblio.author>>: <<biblio.title>><br> >+Barcode: <<items.barcode>><br> >+</checkedin> >+</ul>', 'print' >+); >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index 3b1718c..66bd8d8 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -8465,6 +8465,25 @@ if ( CheckVersion($DBversion) ) { > SetVersion($DBversion); > } > >+$DBversion = "3.15.00.XXX"; >+if ( CheckVersion($DBversion) ) { >+ $dbh->do(" >+INSERT INTO letter (module, code, branchcode, name, is_html, title, content, message_transport_type) >+VALUES ( 'circulation', 'CHECKINSLIP', '', 'Printed check-in slip', '1', 'Items returned today', '<<borrowers.firstname>> <<borrowers.surname>><br> >+<<branches.branchname>>, <<today>><br> >+You returned these items today: >+<ul> >+<checkedin> >+<li><<biblio.author>>: <<biblio.title>><br> >+Barcode: <<items.barcode>><br> >+</checkedin> >+</ul>', 'print' >+);"); >+ print "Upgrade to $DBversion done (Bug 12224 - Easy printing of patron check-in slip)\n"; >+ SetVersion($DBversion); >+} >+ >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/members-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/members-toolbar.inc >index caa2fbf..c9d8a42 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/members-toolbar.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/members-toolbar.inc >@@ -38,6 +38,11 @@ $(document).ready(function(){ > $(".btn-group").removeClass("open"); > return false; > }); >+ $("#printcheckinslip").click(function(){ >+ printx_window("checkinslip"); >+ $(".btn-group").removeClass("open"); >+ return false; >+ }); > $("#searchtohold").click(function(){ > searchToHold(); > return false; >@@ -124,6 +129,7 @@ function searchToHold(){ > [% IF ( CAN_user_borrowers ) %]<li><a id="printsummary" href="#">Print summary</a></li>[% END %] > <li><a id="printslip" href="#">Print slip</a></li> > <li><a id="printquickslip" href="#">Print quick slip</a></li> >+ <li><a id="printcheckinslip" href="#">Print checked-in today -slip</a></li> > </ul> > </div> > <a id="searchtohold" class="btn btn-small" href="#"><i class="icon-search"></i> Search to hold</a> >diff --git a/members/printslip.pl b/members/printslip.pl >index 71fdda2..d4283b4 100755 >--- a/members/printslip.pl >+++ b/members/printslip.pl >@@ -76,7 +76,12 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( > my $borrowernumber = $input->param('borrowernumber'); > my $branch=C4::Context->userenv->{'branch'}; > my ($slip, $is_html); >-if (my $letter = IssueSlip ($session->param('branch') || $branch, $borrowernumber, $print eq "qslip")) { >+if ($print eq 'checkinslip') { >+ if (my $letter = CheckInSlip($borrowernumber, $session->param('branch') || $branch)) { >+ $slip = $letter->{content}; >+ $is_html = $letter->{is_html}; >+ } >+} elsif (my $letter = IssueSlip ($session->param('branch') || $branch, $borrowernumber, $print eq "qslip")) { > $slip = $letter->{content}; > $is_html = $letter->{is_html}; > } >-- >1.8.3.2 >
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 12224
:
28194
|
29693
|
41819
|
41820
|
44574
|
44576
|
44582
|
44584
|
91476
|
91477
|
91478
|
96970
|
96972
|
110308
|
110395
|
110396
|
110403
|
110404
|
110516
|
110529
|
110530
|
110531
|
110576
|
110577
|
110578
|
114121
|
114122
|
114123
|
114124
|
116135
|
116482
|
116485
|
116486
|
116487
|
116488
|
116489
|
117245
|
117246
|
117247
|
117248
|
117249
|
117250
|
117620
|
117812
|
117813
|
117814
|
117815
|
117816
|
117817
|
117818
|
117819