Bug 30650: Koha classes
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 29 Apr 2022 08:42:05 +0000 (10:42 +0200)
committerTomas Cohen Arazi <tomascohen@theke.io>
Fri, 29 Jul 2022 17:59:11 +0000 (14:59 -0300)
Sponsored-by: Association KohaLa - https://koha-fr.org/
Signed-off-by: Koha Team University Lyon 3 <koha@univ-lyon3.fr>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Koha/CurbsidePickup.pm [new file with mode: 0644]
Koha/CurbsidePickupIssue.pm [new file with mode: 0644]
Koha/CurbsidePickupIssues.pm [new file with mode: 0644]
Koha/CurbsidePickupPolicies.pm [new file with mode: 0644]
Koha/CurbsidePickupPolicy.pm [new file with mode: 0644]
Koha/CurbsidePickups.pm [new file with mode: 0644]

diff --git a/Koha/CurbsidePickup.pm b/Koha/CurbsidePickup.pm
new file mode 100644 (file)
index 0000000..f43f1c5
--- /dev/null
@@ -0,0 +1,104 @@
+package Koha::CurbsidePickup;
+
+# 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);
+
+use Koha::Patron;
+use Koha::Library;
+use Koha::CurbsidePickupIssues;
+
+=head1 NAME
+
+Koha::CurbsidePickup - Koha Curbside Pickup Object class
+
+=head1 API
+
+=head2 Class methods
+
+=head3 checkouts
+
+Return the checkouts linked to this pickup
+
+=cut
+
+sub checkouts {
+    my ( $self ) = @_;
+
+    my @pi = Koha::CurbsidePickupIssues->search({ curbside_pickup_id => $self->id })->as_list;
+
+    my @checkouts = map { $_->checkout } @pi;
+    @checkouts = grep { defined $_ } @checkouts;
+
+    return @checkouts;
+}
+
+=head3 patron
+
+Return the patron linked to this pickup
+
+=cut
+
+sub patron {
+    my ( $self ) = @_;
+    my $rs = $self->_result->borrowernumber;
+    return unless $rs;
+    return Koha::Patron->_new_from_dbic( $rs );
+}
+
+=head3 staged_by_staff
+
+Return the staff member that staged this pickup
+
+=cut
+
+sub staged_by_staff {
+    my ( $self ) = @_;
+    my $rs = $self->_result->staged_by;
+    return unless $rs;
+    return Koha::Patron->_new_from_dbic( $rs );
+}
+
+=head3 library
+
+Return the branch associated with this pickup
+
+=cut
+
+sub library {
+    my ( $self ) = @_;
+    my $rs = $self->_result->branchcode;
+    return unless $rs;
+    return Koha::Library->_new_from_dbic( $rs );
+}
+
+=head2 Internal methods
+
+=head3 _type
+
+=cut
+
+sub _type {
+    return 'CurbsidePickup';
+}
+
+1;
diff --git a/Koha/CurbsidePickupIssue.pm b/Koha/CurbsidePickupIssue.pm
new file mode 100644 (file)
index 0000000..55864c1
--- /dev/null
@@ -0,0 +1,57 @@
+package Koha::CurbsidePickupIssue;
+
+# 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::Checkouts;
+
+use base qw(Koha::Object);
+
+=head1 NAME
+
+Koha::CurbsidePickupIssue - Koha Curbside Pickup Issue Object class
+
+=head1 API
+
+=head2 Class methods
+
+=head3 checkout
+
+Return the checkout object
+
+=cut
+
+sub checkout {
+    my ( $self ) = @_;
+
+    return Koha::Checkouts->find( $self->issue_id );
+}
+
+=head2 Internal methods
+
+=head3 _type
+
+=cut
+
+sub _type {
+    return 'CurbsidePickupIssue';
+}
+
+1;
diff --git a/Koha/CurbsidePickupIssues.pm b/Koha/CurbsidePickupIssues.pm
new file mode 100644 (file)
index 0000000..590c177
--- /dev/null
@@ -0,0 +1,50 @@
+package Koha::CurbsidePickupIssues;
+
+# 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::CurbsidePickupIssue;
+
+use base qw(Koha::Objects);
+
+=head1 NAME
+
+Koha::CurbsidePickupIssues - Koha Curbside Pickup Issues Object set class
+
+=head1 API
+
+=head2 Class Methods
+
+=cut
+
+=head3 type
+
+=cut
+
+sub _type {
+    return 'CurbsidePickupIssue';
+}
+
+sub object_class {
+    return 'Koha::CurbsidePickupIssue';
+}
+
+1;
diff --git a/Koha/CurbsidePickupPolicies.pm b/Koha/CurbsidePickupPolicies.pm
new file mode 100644 (file)
index 0000000..97d9bbf
--- /dev/null
@@ -0,0 +1,50 @@
+package Koha::CurbsidePickupPolicies;
+
+# 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::CurbsidePickupPolicy;
+
+use base qw(Koha::Objects);
+
+=head1 NAME
+
+Koha::CurbsidePickupPolicies - Koha Curbside Pickup Policies Object set class
+
+=head1 API
+
+=head2 Class Methods
+
+=cut
+
+=head3 type
+
+=cut
+
+sub _type {
+    return 'CurbsidePickupPolicy';
+}
+
+sub object_class {
+    return 'Koha::CurbsidePickupPolicy';
+}
+
+1;
diff --git a/Koha/CurbsidePickupPolicy.pm b/Koha/CurbsidePickupPolicy.pm
new file mode 100644 (file)
index 0000000..ce66f4c
--- /dev/null
@@ -0,0 +1,57 @@
+package Koha::CurbsidePickupPolicy;
+
+# 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::CurbsidePickupPolicy - Koha Curbside Pickup Policy Object class
+
+=head1 API
+
+=head2 Class methods
+
+=head3 library
+
+Return the branch associated with this policy
+
+=cut
+
+sub library {
+    my ( $self ) = @_;
+    my $rs = $self->_result->branchcode;
+    return unless $rs;
+    return Koha::Library->_new_from_dbic( $rs );
+}
+
+=head2 Internal methods
+
+=head3 _type
+
+=cut
+
+sub _type {
+    return 'CurbsidePickupPolicy';
+}
+
+1;
diff --git a/Koha/CurbsidePickups.pm b/Koha/CurbsidePickups.pm
new file mode 100644 (file)
index 0000000..29f9a05
--- /dev/null
@@ -0,0 +1,50 @@
+package Koha::CurbsidePickups;
+
+# 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::CurbsidePickup;
+
+use base qw(Koha::Objects);
+
+=head1 NAME
+
+Koha::CurbsidePickups - Koha Curbside Pickup Object set class
+
+=head1 API
+
+=head2 Class Methods
+
+=cut
+
+=head3 type
+
+=cut
+
+sub _type {
+    return 'CurbsidePickup';
+}
+
+sub object_class {
+    return 'Koha::CurbsidePickup';
+}
+
+1;