X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Fneworderempty.pl;h=22c7c3c04f49c486f9759bbab513567d1d0907a7;hb=9d6d641d1f8b77271800f43bc027b651f9aea52b;hp=807a82b19b20b371fa7813fc0bcaa4cd10d5b646;hpb=840a907b86c054aa1c216a8cf353b1a9ef3c44fa;p=srvgit diff --git a/acqui/neworderempty.pl b/acqui/neworderempty.pl index 807a82b19b..22c7c3c04f 100755 --- a/acqui/neworderempty.pl +++ b/acqui/neworderempty.pl @@ -7,18 +7,18 @@ # # This file is part of Koha. # -# 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 2 of the License, or (at your option) any later -# version. +# 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. +# 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, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . =head1 NAME @@ -60,64 +60,68 @@ if this order comes from a suggestion. =item breedingid the item's id in the breeding reservoir -=item close - =back =cut -use warnings; -use strict; -use CGI; +use Modern::Perl; +use CGI qw ( -utf8 ); use C4::Context; -use C4::Input; - -use C4::Auth; -use C4::Budgets; -use C4::Input; - -use C4::Bookseller qw/ GetBookSellerFromId /; -use C4::Acquisition; -use C4::Suggestions; # GetSuggestion -use C4::Biblio; # GetBiblioData GetMarcPrice -use C4::Items; #PrepareItemRecord -use C4::Output; -use C4::Input; -use C4::Koha; -use C4::Branch; # GetBranches + +use C4::Auth qw( get_template_and_user ); +use C4::Budgets qw( GetBudget GetBudgetHierarchy CanUserUseBudget ); + +use C4::Acquisition qw( GetOrder GetBasket FillWithDefaultValues GetOrderUsers ); +use C4::Contract qw( GetContract ); +use C4::Suggestions qw( GetSuggestion GetSuggestionInfo ); +use C4::Biblio qw( + AddBiblio + GetBiblioData + GetMarcBiblio + GetMarcFromKohaField + GetMarcPrice + GetMarcStructure + IsMarcStructureInternal +); +use C4::Output qw( output_and_exit output_html_with_http_headers ); use C4::Members; -use C4::Search qw/FindDuplicate/; +use C4::Search qw( FindDuplicate ); #needed for z3950 import: -use C4::ImportBatch qw/GetImportRecordMarc SetImportRecordStatus/; - -our $input = new CGI; +use C4::ImportBatch qw( SetImportRecordStatus SetMatchedBiblionumber GetImportRecordMarc ); + +use Koha::Acquisition::Booksellers; +use Koha::Acquisition::Currencies qw( get_active ); +use Koha::BiblioFrameworks; +use Koha::DateUtils qw( dt_from_string ); +use Koha::MarcSubfieldStructures; +use Koha::ItemTypes; +use Koha::Patrons; +use Koha::RecordProcessor; +use Koha::Subscriptions; + +our $input = CGI->new; my $booksellerid = $input->param('booksellerid'); # FIXME: else ERROR! my $budget_id = $input->param('budget_id') || 0; my $title = $input->param('title'); my $author = $input->param('author'); my $publicationyear = $input->param('publicationyear'); -my $bookseller = GetBookSellerFromId($booksellerid); # FIXME: else ERROR! my $ordernumber = $input->param('ordernumber') || ''; our $biblionumber = $input->param('biblionumber'); our $basketno = $input->param('basketno'); my $suggestionid = $input->param('suggestionid'); -my $close = $input->param('close'); my $uncertainprice = $input->param('uncertainprice'); my $import_batch_id = $input->param('import_batch_id'); # if this is filled, we come from a staged file, and we will return here after saving the order ! +my $from_subscriptionid = $input->param('from_subscriptionid'); my $data; my $new = 'no'; -my $budget_name; - our ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user( { - template_name => "acqui/neworderempty.tmpl", + template_name => "acqui/neworderempty.tt", query => $input, type => "intranet", - authnotrequired => 0, flagsrequired => { acquisition => 'order_manage' }, - debug => 1, } ); @@ -129,7 +133,26 @@ if(!$basketno) { } our $basket = GetBasket($basketno); -my $contract = &GetContract($basket->{contractnumber}); +my $basketobj = Koha::Acquisition::Baskets->find( $basketno ); +$booksellerid = $basket->{booksellerid} unless $booksellerid; +my $bookseller = Koha::Acquisition::Booksellers->find( $booksellerid ); + +output_and_exit( $input, $cookie, $template, 'unknown_basket') unless $basketobj; +output_and_exit( $input, $cookie, $template, 'unknown_vendor') unless $bookseller; + +$template->param( + ordernumber => $ordernumber, + basketno => $basketno, + basket => $basket, + booksellerid => $basket->{'booksellerid'}, + name => $bookseller->name, +); +output_and_exit( $input, $cookie, $template, 'order_cannot_be_edited' ) + if $ordernumber and $basketobj->closedate; + +my $contract = GetContract({ + contractnumber => $basket->{contractnumber} +}); #simple parameters reading (all in one :-) our $params = $input->Vars; @@ -148,167 +171,191 @@ if ( $ordernumber eq '' and defined $params->{'breedingid'}){ #look for duplicates ($biblionumber,$duplicatetitle) = FindDuplicate($marcrecord); if($biblionumber && !$input->param('use_external_source')) { - #if duplicate record found and user did not decide yet, first warn user - #and let him choose between using new record or existing record - Load_Duplicate($duplicatetitle); - exit; + #if duplicate record found and user did not decide yet, first warn user + #and let them choose between using a new record or an existing record + Load_Duplicate($duplicatetitle); + exit; } #from this point: add a new record - if (C4::Context->preference("BiblioAddsAuthorities")){ - my $headings_linked=BiblioAutoLink($marcrecord, $params->{'frameworkcode'}); - } - my $bibitemnum; - $params->{'frameworkcode'} or $params->{'frameworkcode'} = ""; - ( $biblionumber, $bibitemnum ) = AddBiblio( $marcrecord, $params->{'frameworkcode'} ); - # get the price if there is one. - $listprice = GetMarcPrice($marcrecord, $marcflavour); - SetImportRecordStatus($params->{'breedingid'}, 'imported'); + C4::Acquisition::FillWithDefaultValues($marcrecord, {only_mandatory => 1}); + my $bibitemnum; + $params->{'frameworkcode'} or $params->{'frameworkcode'} = ""; + ( $biblionumber, $bibitemnum ) = AddBiblio( $marcrecord, $params->{'frameworkcode'} ); + # get the price if there is one. + $listprice = GetMarcPrice($marcrecord, $marcflavour); + SetImportRecordStatus($params->{'breedingid'}, 'imported'); + + SetMatchedBiblionumber( $params->{breedingid}, $biblionumber ); } -if ( $ordernumber eq '' ) { # create order +my ( @order_user_ids, @order_users, @catalog_details ); +our $tagslib = GetMarcStructure(1, 'ACQ', { unsafe => 1 } ); +my ( $itemnumber_tag, $itemnumber_subtag ) = GetMarcFromKohaField( 'items.itemnumber' ); +if ( not $ordernumber ) { # create order $new = 'yes'; - # $ordernumber=newordernum; - if ( $biblionumber && !$suggestionid ) { + if ( $biblionumber ) { $data = GetBiblioData($biblionumber); } + # get suggestion fields if applicable. If it's a subscription renewal, then the biblio already exists + # otherwise, retrieve suggestion information. + elsif ($suggestionid) { + $data = GetSuggestion($suggestionid); + $budget_id ||= $data->{'budgetid'} // 0; + } -# get suggestion fields if applicable. If it's a subscription renewal, then the biblio already exists -# otherwise, retrieve suggestion information. - if ($suggestionid) { - $data = ($biblionumber) ? GetBiblioData($biblionumber) : GetSuggestion($suggestionid); + if ( not $biblionumber and Koha::BiblioFrameworks->find('ACQ') ) { + #my $acq_mss = Koha::MarcSubfieldStructures->search({ frameworkcode => 'ACQ', tagfield => { '!=' => $itemnumber_tag } }); + foreach my $tag ( sort keys %{$tagslib} ) { + next if $tag eq ''; + next if $tag eq $itemnumber_tag; # skip items fields + foreach my $subfield ( sort keys %{ $tagslib->{$tag} } ) { + my $mss = $tagslib->{$tag}{$subfield}; + next if IsMarcStructureInternal($mss); + next if $mss->{tab} == -1; + my $value = $mss->{defaultvalue}; + + if ($suggestionid and $mss->{kohafield}) { + # Reading suggestion info if ordering from a suggestion + if ( $mss->{kohafield} eq 'biblio.title' ) { + $value = $data->{title}; + } + elsif ( $mss->{kohafield} eq 'biblio.author' ) { + $value = $data->{author}; + } + elsif ( $mss->{kohafield} eq 'biblioitems.publishercode' ) { + $value = $data->{publishercode}; + } + elsif ( $mss->{kohafield} eq 'biblioitems.editionstatement' ) { + $value = $data->{editionstatement}; + } + elsif ( $mss->{kohafield} eq 'biblioitems.publicationyear' ) { + $value = $data->{publicationyear}; + } + elsif ( $mss->{kohafield} eq 'biblioitems.isbn' ) { + $value = $data->{isbn}; + } + elsif ( $mss->{kohafield} eq 'biblio.seriestitle' ) { + $value = $data->{seriestitle}; + } + } + + if ( $value ) { + + # get today date & replace <>, <>, <>, <
> if provided in the default value + my $today_dt = dt_from_string; + my $year = $today_dt->strftime('%Y'); + my $shortyear = $today_dt->strftime('%y'); + my $month = $today_dt->strftime('%m'); + my $day = $today_dt->strftime('%d'); + $value =~ s/<>/$year/g; + $value =~ s/<>/$shortyear/g; + $value =~ s/<>/$month/g; + $value =~ s/<
>/$day/g; + + # And <> with surname (?) + my $username = + ( C4::Context->userenv + ? C4::Context->userenv->{'surname'} + : "superlibrarian" ); + $value =~ s/<>/$username/g; + } + push @catalog_details, { + tag => $tag, + subfield => $subfield, + %$mss, # Do we need plugins support (?) + value => $value, + }; + } + } } } else { #modify order $data = GetOrder($ordernumber); - $biblionumber = $data->{'biblionumber'}; $budget_id = $data->{'budget_id'}; - #get basketno and supplierno. too! - my $data2 = GetBasket( $data->{'basketno'} ); - $basketno = $data2->{'basketno'}; - $booksellerid = $data2->{'booksellerid'}; -} + $template->param( + subscriptionid => $data->{subscriptionid}, + ); -my $suggestion; -$suggestion = GetSuggestionInfo($suggestionid) if $suggestionid; + $basket = GetBasket( $data->{'basketno'} ); + $basketno = $basket->{'basketno'}; -# get currencies (for change rates calcs if needed) -my $active_currency = GetCurrency(); -my $default_currency; -if (! $data->{currency} ) { # New order no currency set - if ( $bookseller->{listprice} ) { - $default_currency = $bookseller->{listprice}; + @order_user_ids = GetOrderUsers($ordernumber); + foreach my $order_user_id (@order_user_ids) { + # FIXME Could be improved with search -in + my $order_patron = Koha::Patrons->find( $order_user_id ); + push @order_users, $order_patron if $order_patron; } - else { - $default_currency = $active_currency->{currency}; +} +$biblionumber = $data->{biblionumber}; + +# We can have: +# - no ordernumber but a biblionumber: from a subscription, from an existing record +# - no ordernumber, no biblionumber: from a suggestion, from a new order +if ( not $ordernumber or $biblionumber ) { + if ( C4::Context->preference('UseACQFrameworkForBiblioRecords') ) { + my $record = $biblionumber ? GetMarcBiblio({ biblionumber => $biblionumber }) : undef; + foreach my $tag ( sort keys %{$tagslib} ) { + next if $tag eq ''; + next if $tag eq $itemnumber_tag; # skip items fields + my @fields = $biblionumber ? $record->field($tag) : (); + foreach my $subfield ( sort keys %{ $tagslib->{$tag} } ) { + my $mss = $tagslib->{$tag}{$subfield}; + next if IsMarcStructureInternal($mss); + next if $mss->{tab} == -1; + # We only need to display the values + my $value = join '; ', map { $tag < 10 ? $_->data : $_->subfield( $subfield ) } @fields; + if ( $value ) { + push @catalog_details, { + tag => $tag, + subfield => $subfield, + %$mss, + value => $value, + }; + } + } + } } } -my @rates = GetCurrencies(); +$template->param( catalog_details => \@catalog_details, ); -# ## @rates - -my @loop_currency = (); -for my $curr ( @rates ) { - my $selected; - if ($data->{currency} ) { - $selected = $curr->{currency} eq $data->{currency}; - } - else { - $selected = $curr->{currency} eq $default_currency; - } - push @loop_currency, { - currcode => $curr->{currency}, - rate => $curr->{rate}, - selected => $selected, - } -} +my $suggestion; +$suggestion = GetSuggestionInfo($suggestionid) if $suggestionid; -# build branches list -my $onlymine=C4::Context->preference('IndependantBranches') && - C4::Context->userenv && - C4::Context->userenv->{flags}!=1 && - C4::Context->userenv->{branch}; -my $branches = GetBranches($onlymine); -my @branchloop; -foreach my $thisbranch ( sort {$branches->{$a}->{'branchname'} cmp $branches->{$b}->{'branchname'}} keys %$branches ) { - my %row = ( - value => $thisbranch, - branchname => $branches->{$thisbranch}->{'branchname'}, - ); - $row{'selected'} = 1 if( $thisbranch && $data->{branchcode} && $thisbranch eq $data->{branchcode}) ; - push @branchloop, \%row; -} -$template->param( branchloop => \@branchloop ); +my @currencies = Koha::Acquisition::Currencies->search; +my $active_currency = Koha::Acquisition::Currencies->get_active; # build bookfund list -my $borrower= GetMember('borrowernumber' => $loggedinuser); -my ( $flags, $homebranch )= ($borrower->{'flags'},$borrower->{'branchcode'}); +my $patron = Koha::Patrons->find( $loggedinuser )->unblessed; my $budget = GetBudget($budget_id); # build budget list my $budget_loop = []; my $budgets = GetBudgetHierarchy; foreach my $r (@{$budgets}) { - next unless (CanUserUseBudget($borrower, $r, $userflags)); - if (!defined $r->{budget_amount} || $r->{budget_amount} == 0) { - next; - } + next unless (CanUserUseBudget($patron, $r, $userflags)); push @{$budget_loop}, { b_id => $r->{budget_id}, b_txt => $r->{budget_name}, + b_sort1_authcat => $r->{'sort1_authcat'}, + b_sort2_authcat => $r->{'sort2_authcat'}, b_active => $r->{budget_period_active}, b_sel => ( $r->{budget_id} == $budget_id ) ? 1 : 0, + b_level => $r->{budget_level}, }; } -@{$budget_loop} = - sort { uc( $a->{b_txt}) cmp uc( $b->{b_txt}) } @{$budget_loop}; - -if ($close) { - $budget_id = $data->{'budget_id'}; - $budget_name = $budget->{'budget_name'}; - -} - -my $CGIsort1; -if ($budget) { # its a mod .. - if ( defined $budget->{'sort1_authcat'} ) { # with custom Asort* planning values - $CGIsort1 = GetAuthvalueDropbox( $budget->{'sort1_authcat'}, $data->{'sort1'} ); - } -} elsif(@{$budgets}){ - $CGIsort1 = GetAuthvalueDropbox( @$budgets[0]->{'sort1_authcat'}, '' ); -} - -# if CGIsort is successfully fetched, the use it -# else - failback to plain input-field -if ($CGIsort1) { - $template->param( CGIsort1 => $CGIsort1 ); -} else { - $template->param( sort1 => $data->{'sort1'} ); -} - -my $CGIsort2; -if ($budget) { - if ( defined $budget->{'sort2_authcat'} ) { - $CGIsort2 = GetAuthvalueDropbox( $budget->{'sort2_authcat'}, $data->{'sort2'} ); - } -} elsif(@{$budgets}) { - $CGIsort2 = GetAuthvalueDropbox( @$budgets[0]->{sort2_authcat}, '' ); -} -if ($CGIsort2) { - $template->param( CGIsort2 => $CGIsort2 ); -} else { - $template->param( sort2 => $data->{'sort2'} ); -} +$template->param( sort1 => $data->{'sort1'} ); +$template->param( sort2 => $data->{'sort2'} ); -if (C4::Context->preference('AcqCreateItem') eq 'ordering' && !$ordernumber) { +if ($basketobj->effective_create_items eq 'ordering' && !$ordernumber) { # Check if ACQ framework exists - my $marc = GetMarcStructure(1, 'ACQ'); + my $marc = GetMarcStructure(1, 'ACQ', { unsafe => 1 } ); unless($marc) { $template->param('NoACQframework' => 1); } @@ -317,30 +364,68 @@ if (C4::Context->preference('AcqCreateItem') eq 'ordering' && !$ordernumber) { UniqueItemFields => C4::Context->preference('UniqueItemFields'), ); } + # Get the item types list, but only if item_level_itype is YES. Otherwise, it will be in the item, no need to display it in the biblio my @itemtypes; -@itemtypes = C4::ItemType->all unless C4::Context->preference('item-level_itypes'); +@itemtypes = Koha::ItemTypes->search unless C4::Context->preference('item-level_itypes'); + +if ( defined $from_subscriptionid ) { + # Get the last received order for this subscription + my $lastOrderReceived = Koha::Acquisition::Orders->search( + { + subscriptionid => $from_subscriptionid, + datereceived => { '!=' => undef } + }, + { + order_by => + [ { -desc => 'datereceived' }, { -desc => 'ordernumber' } ] + } + ); + if ( $lastOrderReceived->count ) { + $lastOrderReceived = $lastOrderReceived->next->unblessed; # FIXME We should send the object to the template + $budget_id = $lastOrderReceived->{budgetid}; + $data->{listprice} = $lastOrderReceived->{listprice}; + $data->{uncertainprice} = $lastOrderReceived->{uncertainprice}; + $data->{tax_rate} = $lastOrderReceived->{tax_rate_on_ordering}; + $data->{discount} = $lastOrderReceived->{discount}; + $data->{rrp} = $lastOrderReceived->{rrp}; + $data->{replacementprice} = $lastOrderReceived->{replacementprice}; + $data->{ecost} = $lastOrderReceived->{ecost}; + $data->{quantity} = $lastOrderReceived->{quantity}; + $data->{unitprice} = $lastOrderReceived->{unitprice}; + $data->{order_internalnote} = $lastOrderReceived->{order_internalnote}; + $data->{order_vendornote} = $lastOrderReceived->{order_vendornote}; + $data->{sort1} = $lastOrderReceived->{sort1}; + $data->{sort2} = $lastOrderReceived->{sort2}; + + $basket = GetBasket( $input->param('basketno') ); + } + + my $subscription = Koha::Subscriptions->find($from_subscriptionid); + $template->param( + subscriptionid => $from_subscriptionid, + subscription => $subscription, + ); +} # Find the items.barcode subfield for barcode validations -my (undef, $barcode_subfield) = GetMarcFromKohaField('items.barcode', ''); +my (undef, $barcode_subfield) = GetMarcFromKohaField( 'items.barcode' ); -# fill template -$template->param( - close => $close, - budget_id => $budget_id, - budget_name => $budget_name -) if ($close); -# get option values for gist syspref +# get option values for TaxRates syspref my @gst_values = map { - option => $_ -}, split( '\|', C4::Context->preference("gist") ); + option => $_ + 0.0 +}, split( '\|', C4::Context->preference("TaxRates") ); +my $quantity = $input->param('rr_quantity_to_order') ? + $input->param('rr_quantity_to_order') : + $data->{'quantity'}; +$quantity //= 0; + +# fill template $template->param( existing => $biblionumber, - ordernumber => $ordernumber, # basket informations - basketno => $basketno, basketname => $basket->{'basketname'}, basketnote => $basket->{'note'}, booksellerid => $basket->{'booksellerid'}, @@ -357,18 +442,19 @@ $template->param( firstnamesuggestedby => $suggestion->{firstnamesuggestedby}, biblionumber => $biblionumber, uncertainprice => $data->{'uncertainprice'}, - authorisedbyname => $borrower->{'firstname'} . " " . $borrower->{'surname'}, - biblioitemnumber => $data->{'biblioitemnumber'}, - discount_2dp => sprintf( "%.2f", $bookseller->{'discount'} ) , # for display - discount => $bookseller->{'discount'}, + discount_2dp => sprintf( "%.2f", $bookseller->discount ) , # for display + discount => $bookseller->discount, orderdiscount_2dp => sprintf( "%.2f", $data->{'discount'} || 0 ), orderdiscount => $data->{'discount'}, - listincgst => $bookseller->{'listincgst'}, - invoiceincgst => $bookseller->{'invoiceincgst'}, - name => $bookseller->{'name'}, - cur_active_sym => $active_currency->{'symbol'}, - cur_active => $active_currency->{'currency'}, - loop_currencies => \@loop_currency, + order_internalnote => $data->{'order_internalnote'}, + order_vendornote => $data->{'order_vendornote'}, + listincgst => $bookseller->listincgst, + invoiceincgst => $bookseller->invoiceincgst, + cur_active_sym => $active_currency->symbol, + cur_active => $active_currency->currency, + currencies => \@currencies, + currency => $data->{currency}, + vendor_currency => $bookseller->listprice, orderexists => ( $new eq 'yes' ) ? 0 : 1, title => $data->{'title'}, author => $data->{'author'}, @@ -379,20 +465,22 @@ $template->param( ean => $data->{'ean'}, seriestitle => $data->{'seriestitle'}, itemtypeloop => \@itemtypes, - quantity => $data->{'quantity'}, - quantityrec => $data->{'quantity'}, + quantity => $quantity, + quantityrec => $quantity, rrp => $data->{'rrp'}, + replacementprice => $data->{'replacementprice'}, gst_values => \@gst_values, - gstrate => $data->{gstrate} ? $data->{gstrate}+0.0 : $bookseller->{gstrate} ? $bookseller->{gstrate}+0.0 : 0, - gstreg => $bookseller->{'gstreg'}, + tax_rate => $data->{tax_rate_on_ordering} ? $data->{tax_rate_on_ordering}+0.0 : $bookseller->tax_rate ? $bookseller->tax_rate+0.0 : 0, listprice => sprintf( "%.2f", $data->{listprice} || $data->{price} || $listprice), total => sprintf( "%.2f", ($data->{ecost} || 0) * ($data->{'quantity'} || 0) ), ecost => sprintf( "%.2f", $data->{ecost} || 0), unitprice => sprintf( "%.2f", $data->{unitprice} || 0), - notes => $data->{'notes'}, publishercode => $data->{'publishercode'}, barcode_subfield => $barcode_subfield, import_batch_id => $import_batch_id, + acqcreate => $basketobj->effective_create_items eq "ordering" ? 1 : "", + users_ids => join(':', @order_user_ids), + users => \@order_users, (uc(C4::Context->preference("marcflavour"))) => 1 ); @@ -416,7 +504,7 @@ sub MARCfindbreeding { # remove the - in isbn, koha store isbn without any - if ($marc) { my $record = MARC::Record->new_from_usmarc($marc); - my ($isbnfield,$isbnsubfield) = GetMarcFromKohaField('biblioitems.isbn',''); + my ($isbnfield,$isbnsubfield) = GetMarcFromKohaField( 'biblioitems.isbn' ); if ( $record->field($isbnfield) ) { foreach my $field ( $record->field($isbnfield) ) { foreach my $subfield ( $field->subfield($isbnsubfield) ) { @@ -448,9 +536,8 @@ sub MARCfindbreeding { if ( C4::Context->preference("z3950NormalizeAuthor") and C4::Context->preference("z3950AuthorAuthFields") ) { - my ( $tag, $subfield ) = GetMarcFromKohaField("biblio.author", ''); + my ( $tag, $subfield ) = GetMarcFromKohaField( "biblio.author" ); -# my $summary = C4::Context->preference("z3950authortemplate"); my $auth_fields = C4::Context->preference("z3950AuthorAuthFields"); my @auth_fields = split /,/, $auth_fields; @@ -459,7 +546,6 @@ sub MARCfindbreeding { if ( $record->field($tag) ) { foreach my $tmpfield ( $record->field($tag)->subfields ) { - # foreach my $subfieldcode ($tmpfield->subfields){ my $subfieldcode = shift @$tmpfield; my $subfieldvalue = shift @$tmpfield; if ($field) { @@ -483,16 +569,12 @@ sub MARCfindbreeding { my $title = $record->field($fieldtag)->subfield('c'); my $number = $record->field($fieldtag)->subfield('d'); if ($title) { - -# $field->add_subfields("$subfield"=>"[ ".ucfirst($title).ucfirst($firstname)." ".$number." ]"); $field->add_subfields( "$subfield" => ucfirst($title) . " " . ucfirst($firstname) . " " . $number ); } else { - -# $field->add_subfields("$subfield"=>"[ ".ucfirst($firstname).", ".ucfirst($lastname)." ]"); $field->add_subfields( "$subfield" => ucfirst($firstname) . ", " . ucfirst($lastname) ); @@ -510,12 +592,10 @@ sub Load_Duplicate { my ($duplicatetitle)= @_; ($template, $loggedinuser, $cookie) = get_template_and_user( { - template_name => "acqui/neworderempty_duplicate.tmpl", + template_name => "acqui/neworderempty_duplicate.tt", query => $input, type => "intranet", - authnotrequired => 0, flagsrequired => { acquisition => 'order_manage' }, -# debug => 1, } );