From 9eee56d0f4bc5a25724d632d5cacb0c2c604b2ed Mon Sep 17 00:00:00 2001 From: Matthias Meusburger Date: Thu, 5 Mar 2020 16:41:25 +0100 Subject: [PATCH] Bug 24819: Allow the librarian to choose a patron when entering a purchase suggestion Sometimes librarians are creating purchase suggestions that came from patrons which didn't use the opac (but sent an email, or told the librarian verbally...) This patch allows the librarian to change the creator of the purchase suggestion when entering it. This way, the patron will be able to receive notifications during the purchase suggestion workflow. Test plan: - Apply the patch - Check that you can change the default creator of the purchase suggestion when creating a new suggestion by clicking on 'Set to patron' (Home > Acquisitions > Suggestions management > New purchase suggestion) - Check that you can also change the creator of the purchase suggestion when editing an existing suggestion Signed-off-by: Owen Leonard Signed-off-by: Katrin Fischer --- .../prog/en/modules/suggestion/suggestion.tt | 9 ++-- .../modules/suggestion/tables/suggestion_search.tt | 36 ++++++++++++++ koha-tmpl/intranet-tmpl/prog/js/suggestions.js | 17 +++++++ suggestion/suggestion_search.pl | 57 ++++++++++++++++++++++ 4 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/tables/suggestion_search.tt create mode 100644 koha-tmpl/intranet-tmpl/prog/js/suggestions.js create mode 100755 suggestion/suggestion_search.pl diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt index ff2f67dafd..8a7ddf3f8e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt @@ -371,18 +371,20 @@ [% END %]
  • - + - + + @@ -392,6 +394,7 @@ [% INCLUDE 'patron-title.inc' patron=lastmodificationby_patron hide_patron_infos_if_needed=1 %] [% Branches.GetName( lastmodificationby_patron.branchcode ) | html %] ([% lastmodificationby_patron.category.description | html %]) [% END %] +
     DateBy
     DateByAction
    [% INCLUDE 'date-format.inc' %][% IF ( suggestedby_patron.borrowernumber ) %][% suggestedby_patron.surname | html %], [% suggestedby_patron.firstname | html %] ([% suggestedby_patron.cardnumber | html %]) [% Branches.GetName( suggestedby_patron.branchcode ) | html %] ([% suggestedby_patron.category.description | html %])[% END %] + [% IF ( suggestedby_patron.borrowernumber ) %][% suggestedby_patron.surname | html %], [% suggestedby_patron.firstname | html %] ([% suggestedby_patron.cardnumber | html %]) [% Branches.GetName( suggestedby_patron.branchcode ) | html %] ([% suggestedby_patron.category.description | html %])[% END %] Set to patron
    [% INCLUDE 'date-format.inc' %] [% IF ( acceptedby_patron.borrowernumber ) %][% acceptedby_patron.surname | html %], [% acceptedby_patron.firstname | html %] ([% suggestedby_patron.cardnumber | html %]) [% Branches.GetName( acceptedby_patron.branchcode ) | html %] ([% acceptedby_patron.category.description | html %])[% END %]
  • @@ -1165,6 +1168,6 @@ [% END %] [% Asset.js("js/acq.js") | $raw %] [% Asset.js("js/acquisitions-menu.js") | $raw %] + [% Asset.js("js/suggestions.js") | $raw %] [% END %] - [% INCLUDE 'intranet-bottom.inc' %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/tables/suggestion_search.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/tables/suggestion_search.tt new file mode 100644 index 0000000000..a82f0e8dcb --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/tables/suggestion_search.tt @@ -0,0 +1,36 @@ +[% USE raw %] +[% USE To %] +[% USE Branches %] +[% USE KohaDates %] +{ + "sEcho": [% sEcho | html %], + "iTotalRecords": [% iTotalRecords | html %], + "iTotalDisplayRecords": [% iTotalDisplayRecords | html %], + "aaData": [ + [% FOREACH data IN aaData %] + { + "dt_cardnumber": + "[% data.cardnumber | html %]", + "dt_name": + "[% INCLUDE 'patron-title.inc' borrowernumber = data.borrowernumber category_type = data.category_type firstname = data.firstname surname = data.surname othernames = data.othernames cardnumber = data.cardnumber invert_name = 1%]", + "dt_dateofbirth": + "[% data.dateofbirth | $KohaDates %]", + "dt_address": + "[% INCLUDE escape_address data=data %]", + "dt_action": + "Select" + }[% UNLESS loop.last %],[% END %] + [% END %] + ] +} +[% BLOCK escape_address %] +[%~ SET address = data.streetnumber _ ' ' %] +[%~ IF data.address %][% SET address = address _ data.address _ ' ' %][% END %] +[%~ IF data.address2 %][% SET address = address _ data.address2 _ ' ' %][% END %] +[%~ IF data.city %][% SET address = address _ data.city _ ' ' %][% END %] +[%~ IF data.state %][% SET address = address _ data.state _ ' ' %][% END %] +[%~ IF data.zipcode %][% SET address = address _ data.zipcode _ ' ' %][% END %] +[%~ IF data.country %][% SET address = address _ data.country _ ' ' %][% END %] +[%~ SET address = address _ Branches.GetName( data.branchcode ) %] +[%~ To.json( address ) | $raw ~%] +[% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/js/suggestions.js b/koha-tmpl/intranet-tmpl/prog/js/suggestions.js new file mode 100644 index 0000000000..613e967f7d --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/js/suggestions.js @@ -0,0 +1,17 @@ +function select_user(borrowernumber, borrower) { + var suggested = ''; + suggested += ''; + suggested += borrower.surname + ', ' + borrower.firstname + ' (' + borrower.cardnumber + ')'; + suggested += ' '; + suggested += borrower.branchname + ' (' + borrower.category_description + ')'; + $("#tdsuggestedby").html(suggested); + return 0; +} + +$(document).ready(function(){ + $('body').on('click', '#suggestion_search', function(e) { + e.preventDefault(); + var newin = window.open('suggestion_search.pl','popup','width=600,height=400,resizable=no,toolbar=false,scrollbars=yes,top'); + }); + +}); diff --git a/suggestion/suggestion_search.pl b/suggestion/suggestion_search.pl new file mode 100755 index 0000000000..24e33b7b7c --- /dev/null +++ b/suggestion/suggestion_search.pl @@ -0,0 +1,57 @@ +#!/usr/bin/perl + +# This file is part of Koha. +# +# Copyright 2020 BibLibre +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +use Modern::Perl; + +use CGI qw ( -utf8 ); +use C4::Auth; +use C4::Output; +use C4::Members; + +use Koha::Patron::Categories; + +my $input = new CGI; + +my $dbh = C4::Context->dbh; + +my ( $template, $loggedinuser, $cookie, $staff_flags ) = get_template_and_user( + { template_name => "common/patron_search.tt", + query => $input, + type => "intranet", + authnotrequired => 0, + flagsrequired => { suggestions => 'suggestions_manage' }, + } +); + +my $q = $input->param('q') || ''; +my $op = $input->param('op') || ''; + +my $referer = $input->referer(); + +my $patron_categories = Koha::Patron::Categories->search_limited; +$template->param( + view => ( $input->request_method() eq "GET" ) ? "show_form" : "show_results", + columns => ['cardnumber', 'name', 'dateofbirth', 'address', 'action' ], + json_template => 'suggestion/tables/suggestion_search.tt', + selection_type => 'select', + alphabet => ( C4::Context->preference('alphabet') || join ' ', 'A' .. 'Z' ), + categories => $patron_categories, + aaSorting => 1, +); +output_html_with_http_headers( $input, $cookie, $template->output ); -- 2.11.0