package Koha::Authority::MergeRequests; # Copyright Rijksmuseum 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 MARC::File::XML; use MARC::Record; use C4::Context; use Koha::Authority::MergeRequest; use Koha::Database; use Koha::DateUtils; use parent qw(Koha::Objects); =head1 NAME Koha::Authority::MergeRequests - Koha::Objects class for need_merge_authorities =head1 SYNOPSIS use Koha::Authority::MergeRequests; =head1 DESCRIPTION Description =head1 METHODS =head2 CLASS METHODS =head3 cron_cleanup Koha::Authority::MergeRequests->cron_cleanup({ reset_hours => 24, remove_days => 90, }); Removes all entries with status "done" older than remove_days. Set all entries with status "in progress" back to 0 when the timestamp is older than reset_hours. Defaults: reset_hours = 1, remove_days = 30. =cut sub cron_cleanup { my ( $class_or_self, $params ) = @_; my $reset_hours = $params->{reset_hours} || 1; my $remove_days = $params->{remove_days} || 30; my $parser = Koha::Database->new->schema->storage->datetime_parser; my $dt = dt_from_string; $dt->subtract( hours => $reset_hours ); $class_or_self->search({ done => 2, timestamp => { '<' => $parser->format_datetime($dt) }, })->update({ done => 0 }); $dt = dt_from_string; $dt->subtract( days => $remove_days ); $class_or_self->search({ done => 1, timestamp => { '<' => $parser->format_datetime($dt) }, })->delete; } =head3 _type Returns name of corresponding DBIC resultset =cut sub _type { return 'NeedMergeAuthority'; } =head3 object_class Returns name of corresponding Koha object class =cut sub object_class { return 'Koha::Authority::MergeRequest'; } =head1 AUTHOR Marcel de Rooy (Rijksmuseum) Koha Development Team =cut 1;