From 771bd10023bfb761706f9dc42bbb53b042ddbd61 Mon Sep 17 00:00:00 2001
From: Sophie Meynieux <sophie.meynieux@biblibre.com>
Date: Fri, 8 Apr 2011 12:12:09 +0200
Subject: [PATCH] Bug #6139 Automatic incrementation of call number does not work if prefix contains '

This patch also fixes giving the first callnumber with a given prefix.
---
 cataloguing/value_builder/callnumber.pl |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/cataloguing/value_builder/callnumber.pl b/cataloguing/value_builder/callnumber.pl
index cc37af0..64507f2 100755
--- a/cataloguing/value_builder/callnumber.pl
+++ b/cataloguing/value_builder/callnumber.pl
@@ -95,7 +95,7 @@ sub plugin {
             );
         }
     # If a prefix is submited, we look for the highest itemcallnumber with this prefix, and return it incremented
-    } elsif ( $code =~ m/^[A-Z.\-]+$/ ) {
+    } elsif ( $code =~ m/^[A-Z.\-']+$/ ) {
         my $sth = $dbh->prepare("SELECT MAX(CAST(SUBSTRING_INDEX(itemcallnumber,' ',-1) AS SIGNED)) FROM items WHERE itemcallnumber LIKE ?");
         $sth->execute($code.' %');
         if ( my $max = $sth->fetchrow ) {
@@ -103,10 +103,16 @@ sub plugin {
                 return => $code.' '.($max+1)
             );
         }
+        else {
+            $template->param(
+                return => $code.' 1'
+            );
+        }
+
     # The user entered a custom value, we don't touch it, this could be handled in js
     } else {
         $template->param(
-            return => $code,
+            return => $code
         );
     }
     output_html_with_http_headers $input, $cookie, $template->output;
-- 
1.7.0.4