From 551c1d3c82a5f8851eebb4b53edb34606a48555a Mon Sep 17 00:00:00 2001
From: Josef Moravec <josef.moravec@gmail.com>
Date: Fri, 14 Oct 2016 16:38:02 +0200
Subject: [PATCH] Bug 18606: Add RotationCollections object classes

Test plan:
1) Apply the patch
2) Update database
3) Go to tools -> Rotating collections and play with trying to break it:
    3a) Add some collections
    3b) Edit them
    3c) Add some items to collections
    3d) Remove some items
    3e) Transfer some collections
    3f) Try to remove collection without items
    3g) Try to remove collection with items
4) Go to returns and:
    4a) Try to return item from untransferred collection
    4b) Try to return item from transferred collection
5) prove t/db_dependent/Koha/RotatingCollections.t
t/db_dependent/Koha/Items.t t/db_dependent/Circulation.t
t/db_dependent/Circulation/Returns.t
---
 Koha/RotatingCollection.pm           | 52 ++++++++++++++++++++++++++++++++
 Koha/RotatingCollection/Tracking.pm  | 52 ++++++++++++++++++++++++++++++++
 Koha/RotatingCollection/Trackings.pm | 58 ++++++++++++++++++++++++++++++++++++
 Koha/RotatingCollections.pm          | 58 ++++++++++++++++++++++++++++++++++++
 4 files changed, 220 insertions(+)
 create mode 100644 Koha/RotatingCollection.pm
 create mode 100644 Koha/RotatingCollection/Tracking.pm
 create mode 100644 Koha/RotatingCollection/Trackings.pm
 create mode 100644 Koha/RotatingCollections.pm

diff --git a/Koha/RotatingCollection.pm b/Koha/RotatingCollection.pm
new file mode 100644
index 0000000..c8857b2
--- /dev/null
+++ b/Koha/RotatingCollection.pm
@@ -0,0 +1,52 @@
+package Koha::RotatingCollection;
+
+# Copyright Josef Moravec 2016
+#
+# 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, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+use Modern::Perl;
+
+use Carp;
+
+use Koha::Database;
+
+use base qw(Koha::Object);
+
+=head1 NAME
+
+Koha::RotatingCollection - Koha Rotating collection Object class
+
+=head1 API
+
+=head2 Class Methods
+
+=cut
+
+=head3 type
+
+=cut
+
+sub _type {
+    return 'Collection';
+}
+
+=head1 AUTHOR
+
+Josef Moravec <josef.moravec@gmail.com>
+
+=cut
+
+1;
diff --git a/Koha/RotatingCollection/Tracking.pm b/Koha/RotatingCollection/Tracking.pm
new file mode 100644
index 0000000..275e6ad
--- /dev/null
+++ b/Koha/RotatingCollection/Tracking.pm
@@ -0,0 +1,52 @@
+package Koha::RotatingCollection::Tracking;
+
+# Copyright Josef Moravec 2017
+#
+# 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, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+use Modern::Perl;
+
+use Carp;
+
+use Koha::Database;
+
+use base qw(Koha::Object);
+
+=head1 NAME
+
+Koha::RotatingCollection::Tracking - Koha Rotating collection tracking Object class
+
+=head1 API
+
+=head2 Class Methods
+
+=cut
+
+=head3 type
+
+=cut
+
+sub _type {
+    return 'CollectionsTracking';
+}
+
+=head1 AUTHOR
+
+Josef Moravec <josef.moravec@gmail.com>
+
+=cut
+
+1;
diff --git a/Koha/RotatingCollection/Trackings.pm b/Koha/RotatingCollection/Trackings.pm
new file mode 100644
index 0000000..0c6fe32
--- /dev/null
+++ b/Koha/RotatingCollection/Trackings.pm
@@ -0,0 +1,58 @@
+package Koha::RotatingCollection::Trackings;
+
+# Copyright Josef Moravec 2017
+#
+# 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, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+use Modern::Perl;
+
+use Carp;
+
+use Koha::Database;
+
+use Koha::RotatingCollection::Tracking;
+
+use base qw(Koha::Objects);
+
+=head1 NAME
+
+Koha::RotatingCollection::Trackings - Koha Rotating collection trackings Object set class
+
+=head1 API
+
+=head2 Class Methods
+
+=cut
+
+=head3 type
+
+=cut
+
+sub _type {
+    return 'CollectionsTracking';
+}
+
+sub object_class {
+    return 'Koha::RotatingCollection::Tracking';
+}
+
+=head1 AUTHOR
+
+Josef Moravec <josef.moravec@gmail.com>
+
+=cut
+
+1;
diff --git a/Koha/RotatingCollections.pm b/Koha/RotatingCollections.pm
new file mode 100644
index 0000000..255930f
--- /dev/null
+++ b/Koha/RotatingCollections.pm
@@ -0,0 +1,58 @@
+package Koha::RotatingCollections;
+
+# Copyright Josef Moravec 2016
+#
+# 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, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+use Modern::Perl;
+
+use Carp;
+
+use Koha::Database;
+
+use Koha::RotatingCollection;
+
+use base qw(Koha::Objects);
+
+=head1 NAME
+
+Koha::RotatingCollections - Koha Rotating collection Object set class
+
+=head1 API
+
+=head2 Class Methods
+
+=cut
+
+=head3 type
+
+=cut
+
+sub _type {
+    return 'Collection';
+}
+
+sub object_class {
+    return 'Koha::RotatingCollection';
+}
+
+=head1 AUTHOR
+
+Josef Moravec <josef.moravec@gmail.com>
+
+=cut
+
+1;
-- 
2.1.4