Bug 14963: Add the ability to suggest purchase on existing title

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 <severine.queune@bulac.fr>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
Jonathan Druart 2019-11-05 19:42:43 +01:00 committed by Martin Renvoize
parent 93a06105a8
commit dd9be62a2a
No known key found for this signature in database
GPG Key ID: 422B469130441A0F
4 changed files with 29 additions and 6 deletions

View File

@ -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

View File

@ -33,6 +33,10 @@
[% END %]
[% END %]
[% IF Koha.Preference('suggestion') %]
<li><a class="btn btn-link btn-lg" href="/cgi-bin/koha/opac-suggestions.pl?op=add&biblionumber=[% biblio.biblionumber | url %]"><i class="fa fa-fw fa-money"></i> New purchase suggestion for this title</a></li>
[% END %]
[% IF ( OpacHighlightedWords && query_desc ) %]
<li>
<a href="#" class="highlight_toggle btn btn-link btn-lg" id="highlight_toggle_off"><i class="fa fa-fw fa-pencil"></i> Unhighlight</a>

View File

@ -204,10 +204,15 @@
</fieldset>
<fieldset class="action">
<input type="hidden" name="suggested_by_anyone" value="[% suggested_by_anyone | html %]" />
<input type="hidden" name="op" value="add_validate" />
[% IF ( need_confirm ) %]
<input type="submit" onclick="this.form.op.value = 'add_confirm'; this.form.submit();" class="btn" value="Confirm your suggestion" />
[% ELSE %]
[% IF need_confirm # Confirm that we want a duplicate %]
<input type="hidden" name="op" value="add_confirm" />
<input type="submit" class="btn" value="Confirm your suggestion" />
[% ELSIF biblionumber # Create from an existing title %]
<input type="hidden" name="op" value="add_confirm" />
<input type="hidden" name="biblionumber" value="[% biblionumber | html %]" />
<input type="submit" class="btn" value="Submit your suggestion" />
[% ELSE # Not created from an existing title, search for possible duplicate %]
<input type="hidden" name="op" value="add_validate" />
<input type="submit" class="btn" value="Submit your suggestion" />
[% END %]
<a class="action" href="/cgi-bin/koha/opac-suggestions.pl">Cancel</a>

View File

@ -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(