+++ /dev/null
-package C4::ItemType;
-
-# Copyright Liblime 2009
-# Parts Copyright Tamil 2011
-#
-# 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 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, see <http://www.gnu.org/licenses>.
-
-use strict;
-use warnings;
-use C4::Context;
-use C4::Languages;
-use Encode qw( encode );
-
-our $AUTOLOAD;
-
-
-
-
-=head1 NAME
-
-C4::ItemType - objects from the itemtypes table
-
-=head1 SYNOPSIS
-
- use C4::ItemType;
- my @itemtypes = C4::ItemType->all;
- print join("\n", map { $_->description } @itemtypes), "\n";
-
-=head1 DESCRIPTION
-
-Objects of this class represent a row in the C<itemtypes> table.
-
-Currently, the bare minimum for using this as a read-only data source has
-been implemented. The API was designed to make it easy to transition to
-an ORM later on.
-
-=head1 API
-
-=head2 Class Methods
-
-=cut
-
-=head3 C4::ItemType->new(\%opts)
-
-Given a hashref, a new (in-memory) C4::ItemType object will be instantiated.
-The database is not touched.
-
-=cut
-
-sub new {
- my ($class, $opts) = @_;
- bless $opts => $class;
-}
-
-
-
-
-=head3 C4::ItemType->all
-
-This returns all the itemtypes as objects. By default they're ordered by
-C<description>.
-
-=cut
-
-sub all {
- my ($class) = @_;
- my $dbh = C4::Context->dbh;
-
- my $language = C4::Languages::getlanguage();
- my @itypes;
- for ( @{$dbh->selectall_arrayref(q|
- SELECT *,
- COALESCE( localization.translation, itemtypes.description ) AS translated_description
- FROM itemtypes
- LEFT JOIN localization ON itemtypes.itemtype = localization.code
- AND localization.entity = 'itemtypes'
- AND localization.lang = ?
- ORDER BY description
- |, { Slice => {} }, $language)} )
- {
- push @itypes, $class->new($_);
- }
- return @itypes;
-}
-
-
-
-
-=head3 C4::ItemType->get
-
-Return the itemtype indicated by the itemtype given as argument, as
-an object.
-
-=cut
-
-sub get {
- my ($class, $itemtype) = @_;
-
- return unless defined $itemtype;
-
- my $dbh = C4::Context->dbh;
-
- my $data = $dbh->selectrow_hashref(
- "SELECT * FROM itemtypes WHERE itemtype = ?", undef, $itemtype
- );
- return $class->new($data);
-}
-
-
-
-
-=head2 Object Methods
-
-These are read-only accessors for attributes of a C4::ItemType object.
-
-=head3 $itemtype->itemtype
-
-=cut
-
-=head3 $itemtype->description
-
-=cut
-
-=head3 $itemtype->renewalsallowed
-
-=cut
-
-=head3 $itemtype->rentalcharge
-
-=cut
-
-=head3 $itemtype->notforloan
-
-=cut
-
-=head3 $itemtype->imageurl
-
-=cut
-
-=head3 $itemtype->checkinmsg
-
-=cut
-
-=head3 $itemtype->summary
-
-=cut
-
-sub AUTOLOAD {
- my $self = shift;
- my $attr = $AUTOLOAD;
- $attr =~ s/.*://;
- if (exists $self->{$attr}) {
- return $self->{$attr};
- } else {
- return undef;
- }
-}
-
-sub DESTROY { }
-
-
-
-# ack itemtypes | grep '\.pm' | awk '{ print $1 }' | sed 's/:.*$//' | sort | uniq | sed -e 's,/,::,g' -e 's/\.pm//' -e 's/^/L<C4::/' -e 's/$/>,/'
-
-=head1 SEE ALSO
-
-The following modules make reference to the C<itemtypes> table.
-
-L<C4::Biblio>,
-L<C4::Circulation>,
-L<C4::Context>,
-L<C4::Items>,
-L<C4::Koha>,
-L<C4::Labels>,
-L<C4::Overdues>,
-L<C4::Reserves>,
-L<C4::Search>,
-L<C4::XSLT>
-
-
-
-=head1 AUTHOR
-
-John Beppu <john.beppu@liblime.com>
-
-=cut
-
-1;
+++ /dev/null
-#!/usr/bin/perl
-
-# 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 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, see <http://www.gnu.org/licenses>.
-
-use Modern::Perl;
-
-use Test::More;
-use t::lib::Mocks;
-
-use Module::Load::Conditional qw/check_install/;
-
-BEGIN {
- if ( check_install( module => 'Test::DBIx::Class' ) ) {
- plan tests => 25;
- } else {
- plan skip_all => "Need Test::DBIx::Class"
- }
-}
-
-use_ok('C4::ItemType');
-
-use Test::DBIx::Class {
- schema_class => 'Koha::Schema',
- connect_info => ['dbi:SQLite:dbname=:memory:','',''],
- connect_opts => { name_sep => '.', quote_char => '`', },
- fixture_class => '::Populate',
-}, 'Itemtype' ;
-
-sub fixtures {
- my ( $data ) = @_;
- fixtures_ok [
- Itemtype => [
- [
- 'itemtype', 'description', 'rentalcharge', 'notforloan',
- 'imageurl', 'summary', 'checkinmsg'
- ],
- @$data,
- ],
- ], 'add fixtures';
-}
-
-my $db = Test::MockModule->new('Koha::Database');
-$db->mock( _new_schema => sub { return Schema(); } );
-
-# Mock data
-my $itemtypes = [
- [ 'BK', 'Books', 0, 0, '', '', 'foo' ],
- [ 'CD', 'CDRom', 0, 0, '', '', 'bar' ]
-];
-
-my @itemtypes = C4::ItemType->all();
-is( @itemtypes, 0, 'Testing all itemtypes is empty' );
-
-# Now lets mock some data
-fixtures($itemtypes);
-
-@itemtypes = C4::ItemType->all();
-
-is( @itemtypes, 2, 'ItemType->all should return an array with 2 elements' );
-
-is( $itemtypes[0]->fish, undef, 'Calling a bad descriptor gives undef' );
-
-is( $itemtypes[0]->itemtype, 'BK', 'First itemtype is bk' );
-
-is( $itemtypes[1]->itemtype, 'CD', 'second itemtype is cd' );
-
-is( $itemtypes[0]->description, 'Books', 'First description is books' );
-
-is( $itemtypes[1]->description, 'CDRom', 'second description is CDRom' );
-
-is( $itemtypes[0]->rentalcharge, '0', 'first rental charge is 0' );
-
-is( $itemtypes[1]->rentalcharge, '0', 'second rental charge is 0' );
-
-is( $itemtypes[0]->notforloan, '0', 'first not for loan is 0' );
-
-is( $itemtypes[1]->notforloan, '0', 'second not for loan is 0' );
-
-is( $itemtypes[0]->imageurl, '', 'first imageurl is undef' );
-
-is( $itemtypes[1]->imageurl, '', 'second imageurl is undef' );
-
-is( $itemtypes[0]->checkinmsg, 'foo', 'first checkinmsg is foo' );
-
-is( $itemtypes[1]->checkinmsg, 'bar', 'second checkinmsg is bar' );
-
-# Test get(), which should return one itemtype
-my $itemtype = C4::ItemType->get( 'BK' );
-
-is( $itemtype->fish, undef, 'Calling a bad descriptor gives undef' );
-
-is( $itemtype->itemtype, 'BK', 'itemtype is bk' );
-
-is( $itemtype->description, 'Books', 'description is books' );
-
-is( $itemtype->rentalcharge, '0', 'rental charge is 0' );
-
-is( $itemtype->notforloan, '0', 'not for loan is 0' );
-
-is( $itemtype->imageurl, '', ' not for loan is undef' );
-
-is( $itemtype->checkinmsg, 'foo', 'checkinmsg is foo' );
-
-$itemtype = C4::ItemType->get;
-is( $itemtype, undef, 'C4::ItemType->get should return unless if no parameter is given' );
-
-1;