Bugzilla – Attachment 111657 Details for
Bug 26683
Fix Modules::RequireFilenameMatchesPackage Perl Critic Violations
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 26683: Decompose C4::Barcodes::ValueBuilder to make Perl critic happy
Bug-26683-Decompose-C4BarcodesValueBuilder-to-make.patch (text/plain), 9.35 KB, created by
David Cook
on 2020-10-14 23:10:51 UTC
(
hide
)
Description:
Bug 26683: Decompose C4::Barcodes::ValueBuilder to make Perl critic happy
Filename:
MIME Type:
Creator:
David Cook
Created:
2020-10-14 23:10:51 UTC
Size:
9.35 KB
patch
obsolete
>From 35ed5c67b434e2e009374b85572f747a20c6687c Mon Sep 17 00:00:00 2001 >From: David Cook <dcook@prosentient.com.au> >Date: Wed, 14 Oct 2020 23:07:45 +0000 >Subject: [PATCH] Bug 26683: Decompose C4::Barcodes::ValueBuilder to make Perl > critic happy > >--- > C4/Barcodes/ValueBuilder.pm | 95 ++------------------------------- > C4/Barcodes/ValueBuilder/annual.pm | 38 +++++++++++++ > C4/Barcodes/ValueBuilder/hbyymmincr.pm | 58 ++++++++++++++++++++ > C4/Barcodes/ValueBuilder/incremental.pm | 39 ++++++++++++++ > 4 files changed, 138 insertions(+), 92 deletions(-) > create mode 100644 C4/Barcodes/ValueBuilder/annual.pm > create mode 100644 C4/Barcodes/ValueBuilder/hbyymmincr.pm > create mode 100644 C4/Barcodes/ValueBuilder/incremental.pm > >diff --git a/C4/Barcodes/ValueBuilder.pm b/C4/Barcodes/ValueBuilder.pm >index cf5f80299e..04ae39c6c4 100644 >--- a/C4/Barcodes/ValueBuilder.pm >+++ b/C4/Barcodes/ValueBuilder.pm >@@ -1,4 +1,3 @@ >-#!/usr/bin/perl > # > # Copyright 2008-2010 Foundations Bible College > # Parts copyright 2012 C & P Bibliography Services >@@ -18,96 +17,8 @@ > # You should have received a copy of the GNU General Public License > # along with Koha; if not, see <http://www.gnu.org/licenses>. > >-package C4::Barcodes::ValueBuilder::incremental; >- >-use Modern::Perl; >-use C4::Context; >- >-sub get_barcode { >- my ($args) = @_; >- my $nextnum; >- # not the best, two catalogers could add the same barcode easily this way :/ >- my $query = "select max(abs(barcode)) from items"; >- my $sth = C4::Context->dbh->prepare($query); >- $sth->execute(); >- while (my ($count)= $sth->fetchrow_array) { >- $nextnum = $count; >- } >- $nextnum++; >- return $nextnum; >-} >- >-1; >- >-package C4::Barcodes::ValueBuilder::hbyymmincr; >-use C4::Context; >- >-sub get_barcode { >- my ($args) = @_; >- my $nextnum = 0; >- my $year = substr($args->{year}, -2); >- my $month = $args->{mon}; >- my $query = "SELECT MAX(CAST(SUBSTRING(barcode,-4) AS signed)) AS number FROM items WHERE barcode REGEXP ?"; >- my $sth = C4::Context->dbh->prepare($query); >- $sth->execute("^[-a-zA-Z]{1,}$year$month"); >- while (my ($count)= $sth->fetchrow_array) { >- $nextnum = $count if $count; >- $nextnum = 0 if $nextnum == 9999; # this sequence only allows for cataloging 9999 items per month >- } >- $nextnum++; >- $nextnum = sprintf("%0*d", "4",$nextnum); >- $nextnum = $year . $month . $nextnum; >- my $scr = " >- var form = document.getElementById('f'); >- if ( !form ) { >- form = document.getElementById('serials_edit'); >- } >- if ( !form ) { >- form = document.getElementById('Aform'); >- } >- for (i=0 ; i<form.field_value.length ; i++) { >- if (form.tag[i].value == '$args->{loctag}' && form.subfield[i].value == '$args->{locsubfield}') { >- fnum = i; >- } >- } >- if (\$('#' + id).val() == '') { >- \$('#' + id).val(form.field_value[fnum].value + '$nextnum'); >- } >- "; >- return $nextnum, $scr; >-} >- >- >-package C4::Barcodes::ValueBuilder::annual; >-use C4::Context; >- >-sub get_barcode { >- my ($args) = @_; >- my $nextnum; >- my $query = "select max(cast( substring_index(barcode, '-',-1) as signed)) from items where barcode like ?"; >- my $sth=C4::Context->dbh->prepare($query); >- $sth->execute($args->{year} . '-%'); >- while (my ($count)= $sth->fetchrow_array) { >- $nextnum = $count if $count; >- } >- $nextnum++; >- $nextnum = sprintf("%0*d", "4",$nextnum); >- $nextnum = "$args->{year}-$nextnum"; >- return $nextnum; >-} >- >-1; >- >- >-=head1 Barcodes::ValueBuilder >- >-This module is intended as a shim to ease the eventual transition from >-having all barcode-related code in the value builder plugin .pl file >-to using C4::Barcodes. Since the shift will require a rather significant >-amount of refactoring, this module will return value builder-formatted >-results, at first by merely running the code that was formerly in the >-barcodes.pl value builder, but later by using C4::Barcodes. >- >-=cut >+use C4::Barcodes::ValueBuilder::incremental; >+use C4::Barcodes::ValueBuilder::hbyymmincr; >+use C4::Barcodes::ValueBuilder::annual; > > 1; >diff --git a/C4/Barcodes/ValueBuilder/annual.pm b/C4/Barcodes/ValueBuilder/annual.pm >new file mode 100644 >index 0000000000..67ab9fe056 >--- /dev/null >+++ b/C4/Barcodes/ValueBuilder/annual.pm >@@ -0,0 +1,38 @@ >+# >+# Copyright 2008-2010 Foundations Bible College >+# Parts copyright 2012 C & P Bibliography Services >+# >+# 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>. >+ >+package C4::Barcodes::ValueBuilder::annual; >+use C4::Context; >+ >+sub get_barcode { >+ my ($args) = @_; >+ my $nextnum; >+ my $query = "select max(cast( substring_index(barcode, '-',-1) as signed)) from items where barcode like ?"; >+ my $sth=C4::Context->dbh->prepare($query); >+ $sth->execute($args->{year} . '-%'); >+ while (my ($count)= $sth->fetchrow_array) { >+ $nextnum = $count if $count; >+ } >+ $nextnum++; >+ $nextnum = sprintf("%0*d", "4",$nextnum); >+ $nextnum = "$args->{year}-$nextnum"; >+ return $nextnum; >+} >+ >+1; >diff --git a/C4/Barcodes/ValueBuilder/hbyymmincr.pm b/C4/Barcodes/ValueBuilder/hbyymmincr.pm >new file mode 100644 >index 0000000000..3dfb77f477 >--- /dev/null >+++ b/C4/Barcodes/ValueBuilder/hbyymmincr.pm >@@ -0,0 +1,58 @@ >+# >+# Copyright 2008-2010 Foundations Bible College >+# Parts copyright 2012 C & P Bibliography Services >+# >+# 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>. >+ >+package C4::Barcodes::ValueBuilder::hbyymmincr; >+use C4::Context; >+ >+sub get_barcode { >+ my ($args) = @_; >+ my $nextnum = 0; >+ my $year = substr($args->{year}, -2); >+ my $month = $args->{mon}; >+ my $query = "SELECT MAX(CAST(SUBSTRING(barcode,-4) AS signed)) AS number FROM items WHERE barcode REGEXP ?"; >+ my $sth = C4::Context->dbh->prepare($query); >+ $sth->execute("^[-a-zA-Z]{1,}$year$month"); >+ while (my ($count)= $sth->fetchrow_array) { >+ $nextnum = $count if $count; >+ $nextnum = 0 if $nextnum == 9999; # this sequence only allows for cataloging 9999 items per month >+ } >+ $nextnum++; >+ $nextnum = sprintf("%0*d", "4",$nextnum); >+ $nextnum = $year . $month . $nextnum; >+ my $scr = " >+ var form = document.getElementById('f'); >+ if ( !form ) { >+ form = document.getElementById('serials_edit'); >+ } >+ if ( !form ) { >+ form = document.getElementById('Aform'); >+ } >+ for (i=0 ; i<form.field_value.length ; i++) { >+ if (form.tag[i].value == '$args->{loctag}' && form.subfield[i].value == '$args->{locsubfield}') { >+ fnum = i; >+ } >+ } >+ if (\$('#' + id).val() == '') { >+ \$('#' + id).val(form.field_value[fnum].value + '$nextnum'); >+ } >+ "; >+ return $nextnum, $scr; >+} >+ >+1; >diff --git a/C4/Barcodes/ValueBuilder/incremental.pm b/C4/Barcodes/ValueBuilder/incremental.pm >new file mode 100644 >index 0000000000..a82259a958 >--- /dev/null >+++ b/C4/Barcodes/ValueBuilder/incremental.pm >@@ -0,0 +1,39 @@ >+# >+# Copyright 2008-2010 Foundations Bible College >+# Parts copyright 2012 C & P Bibliography Services >+# >+# 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>. >+ >+package C4::Barcodes::ValueBuilder::incremental; >+ >+use Modern::Perl; >+use C4::Context; >+ >+sub get_barcode { >+ my ($args) = @_; >+ my $nextnum; >+ # not the best, two catalogers could add the same barcode easily this way :/ >+ my $query = "select max(abs(barcode)) from items"; >+ my $sth = C4::Context->dbh->prepare($query); >+ $sth->execute(); >+ while (my ($count)= $sth->fetchrow_array) { >+ $nextnum = $count; >+ } >+ $nextnum++; >+ return $nextnum; >+} >+ >+1; >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 26683
:
111657
|
111666
|
111667
|
111669