Merge remote-tracking branch 'origin/new/bug_2629'
[srvgit] / cataloguing / value_builder / stocknumber.pl
index 1daf745..711904f 100755 (executable)
 # with Koha; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
-
+use strict;
+use warnings;
 use C4::Context;
 
-=head1
+=head1 plugin_parameters
 
-plugin_parameters : other parameters added when the plugin is called by the dopop function
+other parameters added when the plugin is called by the dopop function
 
 =cut
+
 sub plugin_parameters {
 #   my ($dbh,$record,$tagslib,$i,$tabloop) = @_;
     return "";
 }
 
-=head1
+=head1 plugin_javascript
 
-plugin_javascript : the javascript function called when the user enters the subfield.
+The javascript function called when the user enters the subfield.
 contain 3 javascript functions :
 * one called when the field is entered (OnFocus). Named FocusXXX
 * one called when the field is leaved (onBlur). Named BlurXXX
@@ -44,21 +46,19 @@ returns :
 the 3 scripts are inserted after the <input> in the html code
 
 =cut
+
 sub plugin_javascript {
        my ($dbh,$record,$tagslib,$field_number,$tabloop) = @_;
        my $function_name= "inventory".(int(rand(100000))+1);
 
        my $branchcode = C4::Context->userenv->{'branch'};
 
-       $query = "SELECT MAX(CAST(SUBSTRING_INDEX(stocknumber,'_',-1) AS SIGNED)) FROM items WHERE homebranch = ?";
+       my $query = "SELECT MAX(CAST(SUBSTRING_INDEX(stocknumber,'_',-1) AS SIGNED))+1 FROM items WHERE homebranch = ? AND stocknumber LIKE ?";
        my $sth=$dbh->prepare($query);
-       $sth->execute($branchcode);
-       while (my ($count)= $sth->fetchrow_array) {
-               $nextnum = $count;
-       }
-       $nextnum++;
 
-       my $nextnum = $branchcode.'_'.$nextnum;
+       $sth->execute($branchcode,$branchcode."_%");
+       my ($nextnum) = $sth->fetchrow;
+       $nextnum = $branchcode.'_'.$nextnum;
 
     my $scr = <<END_OF_JS;
 if (\$('#' + id).val() == '' || force) {