diff --git a/C4/Items.pm b/C4/Items.pm
index 365c1b3651..df6d987ffe 100644
--- a/C4/Items.pm
+++ b/C4/Items.pm
@@ -80,6 +80,7 @@ BEGIN {
GetAnalyticsCount
GetItemHolds
+ SearchItems
PrepareItemrecordDisplay
@@ -2493,6 +2494,43 @@ sub GetItemHolds {
$holds = $sth->fetchrow;
return $holds;
}
+
+# Return the list of the column names of items table
+sub _get_items_columns {
+ my $dbh = C4::Context->dbh;
+ my $sth = $dbh->column_info(undef, undef, 'items', '%');
+ $sth->execute;
+ my $results = $sth->fetchall_hashref('COLUMN_NAME');
+ return keys %$results;
+}
+
+=head2 SearchItems
+
+ my $items = SearchItems($field, $value);
+
+SearchItems will search for items on a specific given field.
+For instance you can search all items with a specific stocknumber like this:
+
+ my $items = SearchItems('stocknumber', $stocknumber);
+
+=cut
+
+sub SearchItems {
+ my ($field, $value) = @_;
+
+ my $dbh = C4::Context->dbh;
+ my @columns = _get_items_columns;
+ my $results = [];
+ if(0 < grep /^$field$/, @columns) {
+ my $query = "SELECT $field FROM items WHERE $field = ?";
+ my $sth = $dbh->prepare( $query );
+ $sth->execute( $value );
+ $results = $sth->fetchall_arrayref({});
+ }
+ return $results;
+}
+
+
=head1 OTHER FUNCTIONS
=head2 _find_value
diff --git a/acqui/check_uniqueness.pl b/acqui/check_uniqueness.pl
index 95b19924da..626004868a 100755
--- a/acqui/check_uniqueness.pl
+++ b/acqui/check_uniqueness.pl
@@ -33,36 +33,21 @@ use Modern::Perl;
use CGI;
use JSON;
-use C4::Context;
use C4::Output;
-use C4::Auth;
+use C4::Items;
my $input = new CGI;
my @field = $input->param('field');
my @value = $input->param('value');
-my $dbh = C4::Context->dbh;
-
-my $query = "SHOW COLUMNS FROM items";
-my $sth = $dbh->prepare($query);
-$sth->execute;
-my $results = $sth->fetchall_hashref('Field');
-my @columns = keys %$results;
-
my $r = {};
-my $index = 0;
-for my $f ( @field ) {
- if(0 < grep /^$f$/, @columns) {
- $query = "SELECT $f FROM items WHERE $f = ?";
- $sth = $dbh->prepare( $query );
- $sth->execute( $value[$index] );
- my @values = $sth->fetchrow_array;
+my $i = 0;
+for ( my $i=0; $i<@field; $i++ ) {
+ my $items = C4::Items::SearchItems($field[$i], $value[$i]);
- if ( @values ) {
- push @{ $r->{$f} }, $values[0];
- }
+ if ( @$items ) {
+ push @{ $r->{$field[$i]} }, $value[$i];
}
- $index++;
}
output_with_http_headers $input, undef, to_json($r), 'json';
diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/additem.js b/koha-tmpl/intranet-tmpl/prog/en/js/additem.js
index 859fe024fe..2d72de7f41 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/js/additem.js
+++ b/koha-tmpl/intranet-tmpl/prog/en/js/additem.js
@@ -13,7 +13,7 @@ function addItem( node, unique_item_fields ) {
cloneItemBlock(index, unique_item_fields);
addItemInList(index, unique_item_fields);
$("#" + index).find("a[name='buttonPlus']").text("Update");
- $("#quantity").val(current_qty + 1);
+ $("#quantity").val(current_qty + 1).change();
} else if ( current_qty >= max_qty ) {
alert(window.MSG_ADDITEM_JS_CANT_RECEIVE_MORE_ITEMS
|| "You can't receive any more items.");
@@ -87,7 +87,7 @@ function deleteItemBlock(node_a, index, unique_item_fields) {
} else {
max_qty = 99999;
}
- $("#quantity").val(current_qty - 1);
+ $("#quantity").val(current_qty - 1).change();
$(node_a).parents('tr').remove();
if(current_qty - 1 == 0)
$("#items_list").hide();
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
index 8aec465d9e..4cd6b4984f 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
@@ -104,6 +104,11 @@ $(document).ready(function()
[% IF (AcqCreateItemOrdering) %]
cloneItemBlock(0, '[% UniqueItemFields %]');
[% END %]
+
+ $("#quantity").change(function() {
+ calcNeworderTotal();
+ });
+
//We apply the fonction only for modify option
[% IF ( quantityrec ) %]
$('#quantity').blur(function()
@@ -376,9 +381,9 @@ $(document).ready(function()
[% ELSE %]
[% IF (AcqCreateItemOrdering) %]
-
+
[% ELSE %]
-
+
[% END %]
[% END %]