112 lines
2.7 KiB
Perl
112 lines
2.7 KiB
Perl
package Koha::Subscription::Numberpatterns;
|
|
|
|
# Copyright 2016 BibLibre Morgane Alonso
|
|
#
|
|
# 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 <https://www.gnu.org/licenses>.
|
|
|
|
use Modern::Perl;
|
|
use Koha::Database;
|
|
use Koha::Subscription::Numberpattern;
|
|
use base qw(Koha::Objects);
|
|
|
|
=head1 NAME
|
|
|
|
Koha::SubscriptionNumberpatterns - Koha SubscriptionNumberpattern object set class
|
|
|
|
=head1 API
|
|
|
|
=head2 Class Methods
|
|
|
|
=cut
|
|
|
|
=head3 uniqueLabel
|
|
|
|
=cut
|
|
|
|
sub uniqueLabel {
|
|
my ( $self, $label ) = @_;
|
|
|
|
my $samelabel = Koha::Subscription::Numberpatterns->search( { label => $label } )->next();
|
|
if ($samelabel) {
|
|
my $i = 2;
|
|
my $newlabel = $samelabel->label . " ($i)";
|
|
while ( my $othersamelabel = $self->search( { label => $newlabel } )->next() ) {
|
|
$i++;
|
|
$newlabel = $samelabel->label . " ($i)";
|
|
}
|
|
$label = $newlabel;
|
|
}
|
|
return $label;
|
|
}
|
|
|
|
=head3 new_or_existing
|
|
|
|
=cut
|
|
|
|
sub new_or_existing {
|
|
my ( $self, $params ) = @_;
|
|
|
|
my $params_np;
|
|
if ( $params->{'numbering_pattern'} eq 'mana' ) {
|
|
foreach (
|
|
qw/numberingmethod label1 add1 every1 whenmorethan1 setto1
|
|
numbering1 label2 add2 every2 whenmorethan2 setto2 numbering2
|
|
label3 add3 every3 whenmorethan3 setto3 numbering3/
|
|
)
|
|
{
|
|
$params_np->{$_} = $params->{$_} if $params->{$_};
|
|
}
|
|
|
|
my $existing = Koha::Subscription::Numberpatterns->search($params_np)->next();
|
|
|
|
if ($existing) {
|
|
return $existing->id;
|
|
}
|
|
|
|
$params_np->{label} = Koha::Subscription::Numberpatterns->uniqueLabel( $params->{'patternname'} );
|
|
$params_np->{description} = $params->{'sndescription'};
|
|
|
|
my $subscription_np = Koha::Subscription::Numberpattern->new()->set($params_np)->store();
|
|
return $subscription_np->id;
|
|
}
|
|
|
|
return $params->{'numbering_pattern'};
|
|
}
|
|
|
|
=head3 type
|
|
|
|
=cut
|
|
|
|
sub _type {
|
|
return 'SubscriptionNumberpattern';
|
|
}
|
|
|
|
=head3 object_class
|
|
|
|
=cut
|
|
|
|
sub object_class {
|
|
return 'Koha::Subscription::Numberpattern';
|
|
}
|
|
|
|
=head1 AUTHOR
|
|
|
|
Morgane Alonso <morgane.alonso@biblibre.com>
|
|
|
|
=cut
|
|
|
|
1;
|