3 use Modern
::Perl
'2009';
13 my ( $query, $response ) = C4
::Service
->init( editcatalogue
=> 'edit_catalogue' );
15 my $frameworkcode = $query->param( 'frameworkcode' ) // '';
17 my $tagslib = GetMarcStructure
( 1, $frameworkcode );
21 foreach my $tag ( sort keys %$tagslib ) {
22 my $taglib = $tagslib->{$tag};
23 my $taginfo = { map { $_, $taglib->{$_} } grep { length $_ > 1 } keys %$taglib };
24 $taginfo->{subfields
} = [ map { [ $_, $taglib->{$_} ] } grep { length $_ == 1 } sort keys %$taglib ];
26 push @tags, [ $tag, $taginfo ];
29 my $schema = Koha
::Database
->new->schema;
30 my $authorised_values = {};
32 $authorised_values->{branches
} = [];
33 my $onlymine=C4
::Context
->preference('IndependentBranches') &&
34 C4
::Context
->userenv &&
35 C4
::Context
->userenv->{flags
} % 2 == 0 &&
36 C4
::Context
->userenv->{branch
};
37 my $branches = GetBranches
($onlymine);
38 foreach my $thisbranch ( sort keys %$branches ) {
39 push @
{ $authorised_values->{branches
} }, { value
=> $thisbranch, lib
=> $branches->{$thisbranch}->{'branchname'} };
42 $authorised_values->{itemtypes
} = [ $schema->resultset( "Itemtype" )->search( undef, {
43 columns
=> [ { value
=> 'itemtype' }, { lib
=> "description" } ],
44 order_by
=> "description",
45 result_class
=> 'DBIx::Class::ResultClass::HashRefInflator'
48 my $class_sources = GetClassSources
();
50 my $default_source = C4
::Context
->preference("DefaultClassificationSource");
52 foreach my $class_source (sort keys %$class_sources) {
53 next unless $class_sources->{$class_source}->{'used'} or
54 ($class_source eq $default_source);
55 push @
{ $authorised_values->{cn_source
} }, { value
=> $class_source, lib
=> $class_sources->{$class_source}->{'description'} };
58 my $branch_limit = C4
::Context
->userenv ? C4
::Context
->userenv->{"branch"} : "";
61 $results = $schema->resultset( "AuthorisedValue" )->search(
62 { "authorised_values_branches.branchcode" => { "=", [ $branch_limit, undef ] } },
63 { join => "authorised_values_branches", order_by
=> "lib" } );
65 $results = $schema->resultset( "AuthorisedValue" )->search(
67 { order_by
=> "lib" } );
70 foreach my $result ( $results->all ) {
71 $authorised_values->{$result->category} ||= [];
72 push @
{ $authorised_values->{$result->category} }, { value
=> $result->authorised_value, lib
=> $result->lib };
75 $response->param( framework
=> \
@tags, authorised_values
=> $authorised_values );
77 C4
::Service
->return_success( $response );