Bugzilla – Attachment 147657 Details for
Bug 31798
Add POST endpoint for Items
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 31798: (follow-up) Handle all values of autoBarcode
Bug-31798-follow-up-Handle-all-values-of-autoBarco.patch (text/plain), 4.22 KB, created by
Martin Renvoize (ashimema)
on 2023-03-02 16:28:49 UTC
(
hide
)
Description:
Bug 31798: (follow-up) Handle all values of autoBarcode
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2023-03-02 16:28:49 UTC
Size:
4.22 KB
patch
obsolete
>From dce3abd87d6287943d8b06a54a5797852dc199b4 Mon Sep 17 00:00:00 2001 >From: Nick Clemens <nick@bywatersolutions.com> >Date: Mon, 27 Feb 2023 17:57:22 +0000 >Subject: [PATCH] Bug 31798: (follow-up) Handle all values of autoBarcode > >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> >--- > Koha/REST/V1/Biblios.pm | 72 ++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 67 insertions(+), 5 deletions(-) > >diff --git a/Koha/REST/V1/Biblios.pm b/Koha/REST/V1/Biblios.pm >index 3e278fae52..06409d68b5 100644 >--- a/Koha/REST/V1/Biblios.pm >+++ b/Koha/REST/V1/Biblios.pm >@@ -20,6 +20,7 @@ use Modern::Perl; > use Mojo::Base 'Mojolicious::Controller'; > > use Koha::Biblios; >+use Koha::DateUtils; > use Koha::Ratings; > use Koha::RecordProcessor; > use C4::Biblio qw( DelBiblio ); >@@ -287,7 +288,7 @@ sub add_item { > > try { > my $biblio_id = $c->validation->param('biblio_id'); >- my $biblio = Koha::Biblios->find( $biblio_id ); >+ my $biblio = Koha::Biblios->find($biblio_id); > > unless ($biblio) { > return $c->render( >@@ -305,15 +306,76 @@ sub add_item { > > my $item = Koha::Item->new_from_api($body); > >- if ( ! defined $item->barcode && C4::Context->preference('autoBarcode') eq 'incremental' ) { >- my ( $barcode ) = C4::Barcodes::ValueBuilder::incremental::get_barcode; >- $item->barcode($barcode); >+ if ( !defined $item->barcode ) { >+ >+ # FIXME This should be moved to Koha::Item->store >+ my $autoBarcode = C4::Context->preference('autoBarcode'); >+ my $barcode = ''; >+ >+ if ( !$autoBarcode || $autoBarcode eq 'OFF' ) { >+ #We do nothing >+ } >+ elsif ( $autoBarcode eq 'incremental' ) { >+ ($barcode) = >+ C4::Barcodes::ValueBuilder::incremental::get_barcode; >+ } >+ elsif ( $autoBarcode eq 'annual' ) { >+ my $year = Koha::DateUtils::dt_from_string()->year(); >+ ($barcode) = >+ C4::Barcodes::ValueBuilder::annual::get_barcode( >+ { year => $year } ); >+ } >+ elsif ( $autoBarcode eq 'hbyymmincr' ) { >+ >+ # Generates a barcode where >+ # hb = home branch Code, >+ # yymm = year/month catalogued, >+ # incr = incremental number, >+ # reset yearly -fbcit >+ my $now = Koha::DateUtils::dt_from_string(); >+ my $year = $now->year(); >+ my $month = $now->month(); >+ my $homebranch = $item->homebranch // ''; >+ ($barcode) = >+ C4::Barcodes::ValueBuilder::hbyymmincr::get_barcode( >+ { year => $year, mon => $month } ); >+ $barcode = $homebranch . $barcode; >+ } >+ elsif ( $autoBarcode eq 'EAN13' ) { >+ >+ # not the best, two catalogers could add the same >+ # barcode easily this way :/ >+ my $query = "select max(abs(barcode)) from items"; >+ my $dbh = C4::Context->dbh; >+ my $sth = $dbh->prepare($query); >+ $sth->execute(); >+ my $nextnum; >+ while ( my ($last) = $sth->fetchrow_array ) { >+ $nextnum = $last; >+ } >+ my $ean = CheckDigits('ean'); >+ if ( $ean->is_valid($nextnum) ) { >+ my $next = $ean->basenumber($nextnum) + 1; >+ $nextnum = $ean->complete($next); >+ $nextnum = >+ '0' x ( 13 - length($nextnum) ) . $nextnum; # pad zeros >+ } >+ else { >+ warn "ERROR: invalid EAN-13 $nextnum, using increment"; >+ $nextnum++; >+ } >+ $barcode = $nextnum; >+ } >+ else { >+ warn "ERROR: unknown autoBarcode: $autoBarcode"; >+ } >+ $item->barcode($barcode) if $barcode; > } > > $item->store->discard_changes; > > $c->render( >- status => 201, >+ status => 201, > openapi => $item->to_api > ); > } >-- >2.39.2
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 31798
:
144893
|
144894
|
144952
|
144953
|
144956
|
147463
|
147464
|
147655
|
147656
|
147657
|
150598
|
150599
|
150600
|
150771
|
150772
|
150773
|
150774
|
150775