use CGI;
use HTML::Template::Pro;
use Data::Dumper;
+use JSON;
use C4::Auth;
use C4::Output;
my $errstr = undef;
my $db_rows = {};
my $batch = undef;
-my $display_columns = [ {_label_number => 'Label Number'},
- {_summary => 'Summary'},
- {_item_type => 'Item Type'},
- {_barcode => 'Barcode'},
- {select => {label => 'Select', value => '_item_number'}},
+my $display_columns = [ {_label_number => {label => 'Label Number', link_field => 0}},
+ {_summary => {label => 'Summary', link_field => 0}},
+ {_item_type => {label => 'Item Type', link_field => 0}},
+ {_barcode => {label => 'Barcode', link_field => 0}},
+ {select => {label => 'Select', value => '_label_id'}},
];
my $op = $cgi->param('op') || undef;
-my $label_id = $cgi->param('label_id') || undef;
+my @label_ids = $cgi->param('label_id') if $cgi->param('label_id');
my $batch_id = $cgi->param('element_id') || $cgi->param('batch_id') || undef;
+my @item_numbers = $cgi->param('item_number') if $cgi->param('item_number');
my $branch_code = get_branch_code_from_name($template->param('LoginBranchname'));
if ($op eq 'remove') {
$batch = C4::Labels::Batch->retrieve(batch_id => $batch_id);
+ foreach my $label_id (@label_ids) {
$err = $batch->remove_item($label_id);
- $errstr = "item $label_id was not removed." if $err;
+ }
+ $errstr = "item(s) not removed from batch $batch_id." if $err;
+# Something like this would be nice to avoid problems with the browser's 'refresh' button, but it needs an error handling mechanism...
+# print $cgi->redirect("label-edit-batch.pl?op=edit&batch_id=$batch_id");
+# exit;
}
elsif ($op eq 'delete') {
$err = C4::Labels::Batch::delete(batch_id => $batch_id, branch_code => $branch_code);
$errstr = "batch $batch_id was not deleted." if $err;
}
-else{
+elsif ($op eq 'add') {
+ $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);
+ }
+ $errstr = "item(s) not added to batch $batch_id." if $err;
+}
+elsif ($op eq 'new') {
+ $batch = C4::Labels::Batch->new(branch_code => $branch_code);
+ $batch_id = $batch->get_attr('batch_id');
+}
+else { # display batch
$batch = C4::Labels::Batch->retrieve(batch_id => $batch_id);
}