From dd9be62a2ae6b247aeee25290e1199bea16f79db Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 5 Nov 2019 19:42:43 +0100 Subject: [PATCH] Bug 14963: Add the ability to suggest purchase on existing title MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This patch adds the ability to create a new purchase suggestion from an existing title. This will prevent the creation of bibliographic records that already exist in the catalogue. Also it will ease the process during acquisition. Test plan: - Login at the OPAC and go to the detail of a bibliographic record. - Note that there is a new link "New purchase suggestion for this title" on the right of the screen - Please suggest an other icon if that one is not appropriated - Click on it and submit your new suggestion => You should not get the confirmation screen (introduced by bug 14973) warning you that the title already exists. - Login staff side and order from this suggestion. - Receive items and confirm that a new bibliographic record is not created. Sponsored-by: BULAC - http://www.bulac.fr/ Signed-off-by: Séverine QUEUNE Signed-off-by: Nick Clemens Signed-off-by: Martin Renvoize --- acqui/neworderempty.pl | 2 +- .../en/includes/opac-detail-sidebar.inc | 4 ++++ .../bootstrap/en/modules/opac-suggestions.tt | 13 +++++++++---- opac/opac-suggestions.pl | 16 +++++++++++++++- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/acqui/neworderempty.pl b/acqui/neworderempty.pl index ab95f16147..f41e598861 100755 --- a/acqui/neworderempty.pl +++ b/acqui/neworderempty.pl @@ -255,7 +255,6 @@ if ( not $ordernumber ) { # create order } else { #modify order $data = GetOrder($ordernumber); - $biblionumber = $data->{'biblionumber'}; $budget_id = $data->{'budget_id'}; $template->param( @@ -272,6 +271,7 @@ else { #modify order push @order_users, $order_patron if $order_patron; } } +$biblionumber = $data->{biblionumber}; # We can have: # - no ordernumber but a biblionumber: from a subscription, from an existing record diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc index bc4d926c62..f0dce164ce 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc @@ -33,6 +33,10 @@ [% END %] [% END %] + [% IF Koha.Preference('suggestion') %] +
  • New purchase suggestion for this title
  • + [% END %] + [% IF ( OpacHighlightedWords && query_desc ) %]
  • Unhighlight diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-suggestions.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-suggestions.tt index db6d7ce420..bc76338626 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-suggestions.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-suggestions.tt @@ -204,10 +204,15 @@
    - - [% IF ( need_confirm ) %] - - [% ELSE %] + [% IF need_confirm # Confirm that we want a duplicate %] + + + [% ELSIF biblionumber # Create from an existing title %] + + + + [% ELSE # Not created from an existing title, search for possible duplicate %] + [% END %] Cancel diff --git a/opac/opac-suggestions.pl b/opac/opac-suggestions.pl index 91eaebe90b..b502e92737 100755 --- a/opac/opac-suggestions.pl +++ b/opac/opac-suggestions.pl @@ -37,6 +37,7 @@ use Koha::DateUtils qw( dt_from_string ); my $input = new CGI; my $op = $input->param('op'); +my $biblionumber = $input->param('biblionumber'); my $suggestion = $input->Vars; my $negcaptcha = $input->param('negcap'); my $suggested_by_anyone = $input->param('suggested_by_anyone') || 0; @@ -116,7 +117,7 @@ if ( $op eq 'else' ) { } } -if ( $op eq "add_validate" ) { +if ( $op eq "add_validate" && not $biblionumber ) { # If we are creating the suggestion from an existing record we do not want to search for duplicates $op = 'add_confirm'; my $biblio = MarcRecordFromNewSuggestion($suggestion); if ( my ($duplicatebiblionumber, $duplicatetitle) = FindDuplicate($biblio) ) { @@ -229,6 +230,19 @@ my @mandatoryfields; foreach (@mandatoryfields) { $template->param( $_."_required" => 1); } + if ( $biblionumber ) { + my $biblio = Koha::Biblios->find($biblionumber); + $template->param( + biblionumber => $biblio->biblionumber, + title => $biblio->title, + author => $biblio->author, + copyrightdate => $biblio->copyrightdate, + isbn => $biblio->biblioitem->isbn, + publishercode => $biblio->biblioitem->publishercode, + collectiontitle => $biblio->biblioitem->collectiontitle, + place => $biblio->biblioitem->place, + ); + } } $template->param( -- 2.39.5