# 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 3 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 <http://www.gnu.org/licenses>.
use Modern::Perl;
},
{
join => [ 'virtualshelfshares' ],
- group_by => 'shelfnumber',
+ distinct => 'shelfnumber',
order_by => 'shelfname',
( ( $page and $rows ) ? ( page => $page, rows => $rows ) : () ),
}
category => 2,
},
{
- group_by => 'shelfnumber',
+ distinct => 'shelfnumber',
order_by => 'shelfname',
( ( $page and $rows ) ? ( page => $page, rows => $rows ) : () ),
}
if ( $add_allowed ) {
push @conditions, {
-or =>
- {
- "me.allow_add" => 1,
- "me.owner" => $borrowernumber,
- }
+ [
+ {
+ "me.owner" => $borrowernumber,
+ "me.allow_change_from_owner" => 1,
+ },
+ "me.allow_change_from_others" => 1,
+ ]
};
}
if ( $category == 1 ) {
},
{
join => [ 'virtualshelfshares' ],
- group_by => 'shelfnumber',
- order_by => 'lastmodified desc',
+ distinct => 'shelfnumber',
+ order_by => { -desc => 'lastmodified' },
+ }
+ );
+}
+
+sub get_shelves_containing_record {
+ my ( $self, $params ) = @_;
+ my $borrowernumber = $params->{borrowernumber};
+ my $biblionumber = $params->{biblionumber};
+
+ my @conditions = ( 'virtualshelfcontents.biblionumber' => $biblionumber );
+ if ($borrowernumber) {
+ push @conditions,
+ {
+ -or => [
+ {
+ category => 1,
+ -or => {
+ 'me.owner' => $borrowernumber,
+ -or => {
+ 'virtualshelfshares.borrowernumber' => $borrowernumber,
+ },
+ }
+ },
+ { category => 2 },
+ ]
+ };
+ } else {
+ push @conditions, { category => 2 };
+ }
+
+ return Koha::Virtualshelves->search(
+ {
+ -and => \@conditions
+ },
+ {
+ join => [ 'virtualshelfcontents', 'virtualshelfshares' ],
+ distinct => 'shelfnumber',
+ order_by => { -asc => 'shelfname' },
}
);
}
-sub type {
+sub _type {
return 'Virtualshelve';
}