use C4::Koha;
use C4::ClassSource;
use Koha::DateUtils;
+use Koha::Items;
use Koha::ItemTypes;
use Koha::Libraries;
+use Koha::Patrons;
use List::MoreUtils qw/any/;
use C4::Search;
use Storable qw(thaw freeze);
$value = $input->param('barcode');
}
- # Getting list of subfields to keep when restricted editing is enabled
- my $subfieldsToAllowForRestrictedEditing = C4::Context->preference('SubfieldsToAllowForRestrictedEditing');
- my $allowAllSubfields = (
- not defined $subfieldsToAllowForRestrictedEditing
- or $subfieldsToAllowForRestrictedEditing == q||
- ) ? 1 : 0;
- my @subfieldsToAllow = split(/ /, $subfieldsToAllowForRestrictedEditing);
-
if ( $subfieldlib->{authorised_value} ) {
my @authorised_values;
my %authorised_lib;
labels => \%authorised_lib,
default => $value,
};
- # If we're on restricted editing, and our field is not in the list of subfields to allow,
- # then it is read-only
- $subfield_data{marc_value}->{readonlyselect} = (
- not $allowAllSubfields
- and $restrictededition
- and !grep { $tag . '$' . $subfieldtag eq $_ } @subfieldsToAllow
- ) ? 1: 0;
}
}
# it's a thesaurus / authority field
value => $value,
};
}
-
+
+ # Getting list of subfields to keep when restricted editing is enabled
+ my $subfieldsToAllowForRestrictedEditing = C4::Context->preference('SubfieldsToAllowForRestrictedEditing');
+ my $allowAllSubfields = (
+ not defined $subfieldsToAllowForRestrictedEditing
+ or $subfieldsToAllowForRestrictedEditing == q||
+ ) ? 1 : 0;
+ my @subfieldsToAllow = split(/ /, $subfieldsToAllowForRestrictedEditing);
+
+ # If we're on restricted editing, and our field is not in the list of subfields to allow,
+ # then it is read-only
+ $subfield_data{marc_value}->{readonly} = (
+ not $allowAllSubfields
+ and $restrictededition
+ and !grep { $tag . '$' . $subfieldtag eq $_ } @subfieldsToAllow
+ ) ? 1: 0;
+
return \%subfield_data;
}
# Does the user have a restricted item editing permission?
-my $uid = $loggedinuser ? GetMember( borrowernumber => $loggedinuser )->{userid} : undef;
+my $uid = Koha::Patrons->find( $loggedinuser )->userid;
my $restrictededition = $uid ? haspermission($uid, {'editcatalogue' => 'edit_items_restricted'}) : undef;
# In case user is a superlibrarian, editing is not restricted
$restrictededition = 0 if ($restrictededition != 0 && C4::Context->IsSuperLibrarian());
$restrictededition = 0 if ($restrictededition != 0 && $frameworkcode eq 'FA' && haspermission($uid, {'editcatalogue' => 'fast_cataloging'}));
my $tagslib = &GetMarcStructure(1,$frameworkcode);
-my $record = GetMarcBiblio($biblionumber);
+my $record = GetMarcBiblio({ biblionumber => $biblionumber });
my $oldrecord = TransformMarcToKoha($record);
my $itemrecord;
my $nextop="additem";
#-------------------------------------------------------------------------------
} elsif ($op eq "delallitems") {
#-------------------------------------------------------------------------------
- my @biblioitems = &GetBiblioItemByBiblioNumber($biblionumber);
- my $errortest=0;
- my $itemfail;
- foreach my $biblioitem (@biblioitems) {
- my $items = &GetItemsByBiblioitemnumber( $biblioitem->{biblioitemnumber} );
-
- foreach my $item (@$items) {
- $error =&DelItemCheck( $biblionumber, $item->{itemnumber} );
- $itemfail =$item;
- if($error == 1){
- next
- }
- else {
- push @errors,$error;
- $errortest++
- }
- }
- if($errortest > 0){
- $nextop="additem";
- }
- else {
- my $defaultview = C4::Context->preference('IntranetBiblioDefaultView');
- my $views = { C4::Search::enabled_staff_search_views };
- if ($defaultview eq 'isbd' && $views->{can_view_ISBD}) {
- print $input->redirect("/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
- } elsif ($defaultview eq 'marc' && $views->{can_view_MARC}) {
- print $input->redirect("/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
- } elsif ($defaultview eq 'labeled_marc' && $views->{can_view_labeledMARC}) {
- print $input->redirect("/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
- } else {
- print $input->redirect("/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber&searchid=$searchid");
- }
- exit;
+ my $itemnumbers = C4::Items::GetItemnumbersForBiblio( $biblionumber );
+ foreach my $itemnumber ( @$itemnumbers ) {
+ $error = C4::Items::DelItemCheck( $biblionumber, $itemnumber );
+ next if $error == 1; # Means ok
+ push @errors,$error;
+ }
+ if ( @errors ) {
+ $nextop="additem";
+ } else {
+ my $defaultview = C4::Context->preference('IntranetBiblioDefaultView');
+ my $views = { C4::Search::enabled_staff_search_views };
+ if ($defaultview eq 'isbd' && $views->{can_view_ISBD}) {
+ print $input->redirect("/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
+ } elsif ($defaultview eq 'marc' && $views->{can_view_MARC}) {
+ print $input->redirect("/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
+ } elsif ($defaultview eq 'labeled_marc' && $views->{can_view_labeledMARC}) {
+ print $input->redirect("/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
+ } else {
+ print $input->redirect("/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber&searchid=$searchid");
}
- }
+ exit;
+ }
#-------------------------------------------------------------------------------
} elsif ($op eq "saveitem") {
#-------------------------------------------------------------------------------
my $newitemlost = $itemtosave->subfield( $lost_tag, $lost_subfield );
if (($olditemlost eq '0' or $olditemlost eq '' ) and $newitemlost ge '1'){
- LostItem($itemnumber,'MARK RETURNED');
+ LostItem($itemnumber);
}
$nextop="additem";
} elsif ($op eq "delinkitem"){
#-------------------------------------------------------------------------------
# now, build existiing item list
-my $temp = GetMarcBiblio( $biblionumber );
+my $temp = GetMarcBiblio({ biblionumber => $biblionumber });
#my @fields = $record->fields();
foreach my $hostfield ($temp->field($analyticfield)){
my $hostbiblionumber = $hostfield->subfield('0');
if ($hostbiblionumber){
- my $hostrecord = GetMarcBiblio($hostbiblionumber, 1);
+ my $hostrecord = GetMarcBiblio({
+ biblionumber => $hostbiblionumber,
+ embed_items => 1 });
if ($hostrecord) {
my ($itemfield, undef) = GetMarcFromKohaField( 'items.itemnumber', GetFrameworkCode($hostbiblionumber) );
foreach my $hostitem ($hostrecord->field($itemfield)){
if ( C4::Context->preference('EasyAnalyticalRecords') ) {
foreach my $hostitemnumber (@hostitemnumbers){
+ my $item = Koha::Items->find( $hostitemnumber );
if ($this_row{itemnumber} eq $hostitemnumber){
$this_row{hostitemflag} = 1;
- $this_row{hostbiblionumber}= GetBiblionumberFromItemnumber($hostitemnumber);
+ $this_row{hostbiblionumber}= $item->biblio->biblionumber;
last;
}
}