- $batch = C4::Labels::Batch->retrieve(batch_id => $batch_id);
- $batch = C4::Labels::Batch->new(branch_code => $branch_code) if $batch == -2;
- foreach my $item_number (@item_numbers) {
- $err = $batch->add_item($item_number);
+ if ($number_list) {
+ my @numbers_list = split /\n/, $number_list; # Entries are effectively passed in as a <cr> separated list
+ foreach my $number (@numbers_list) {
+ $number =~ s/\r$//; # strip any naughty return chars
+ if( $number_type eq "itemnumber" && GetItem($number) ) {
+ push @item_numbers, $number;
+ }
+ elsif ($number_type eq "barcode" ) { # we must test in case an invalid barcode is passed in; we effectively disgard them atm
+ if( my $item_number = GetItemnumberFromBarcode($number) ){
+ push @item_numbers, $item_number;
+ }
+ }
+ }
+ }
+ if ($batch_id != 0) {$batch = C4::Labels::Batch->retrieve(batch_id => $batch_id);}
+ if ($batch_id == 0 || $batch == -2) {$batch = C4::Labels::Batch->new(branch_code => $branch_code);}
+ if ($branch_code){
+ foreach my $item_number (@item_numbers) {
+ $err = $batch->add_item($item_number);
+ }
+ $batch_id = $batch->get_attr('batch_id') if $batch_id == 0; #update batch_id if we added to a new batch
+ $errtype = 'ITEM_NOT_ADDED' if $err;
+ }
+ else {
+ $err = 1;
+ $errtype = 'BRANCH_NOT_SET';