- my $mode = delete($form->{select_item_mode}) || croak 'Missing item selection mode';
- my $id = delete($form->{select_item_id}) || croak 'Missing item selection ID';
- my $i = $form->{ $mode eq 'IC' ? 'assembly_rows' : 'rowcount' };
+ my $mode = delete($form->{select_item_mode}) || croak 'Missing item selection mode';
+ my $row_key = $mode eq 'IC' ? 'assembly_rows' : 'rowcount';
+ my $curr_row = $form->{ $row_key };
+
+ my $row = $curr_row;
+
+ if ($myconfig{item_multiselect}) {
+ foreach (grep(/^select_qty_/, keys(%{ $form }))) {
+ next unless $form->{$_};
+ $_ =~ /^select_qty_(\d+)/;
+ $form->{"id_${row}"} = $1;
+ $form->{"qty_${row}"} = $form->{$_};
+ $row++;
+ }
+ } else {
+ $form->{"id_${row}"} = delete($form->{select_item_id}) || croak 'Missing item selection ID';
+ $row++;
+ }
+
+ map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
+ qw(sellprice listprice weight);