X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/cdd666f230c48dcda3d28925e8d8c278b51b1922..71d1fccd416499c24500f33d04651ac83a8d232c:/bin/mozilla/io.pl diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl index 075644801..56a0354ef 100644 --- a/bin/mozilla/io.pl +++ b/bin/mozilla/io.pl @@ -1365,6 +1365,7 @@ sub print_form { my $language_saved = $form->{language_id}; my $payment_id_saved = $form->{payment_id}; + my $delivery_term_id_saved = $form->{delivery_term_id}; my $salesman_id_saved = $form->{salesman_id}; my $cp_id_saved = $form->{cp_id}; my $taxzone_id_saved = $form->{taxzone_id}; @@ -1374,6 +1375,7 @@ sub print_form { $form->{language_id} = $language_saved; $form->{payment_id} = $payment_id_saved; + $form->{delivery_term_id} = $delivery_term_id_saved; $form->{taxzone_id} = $taxzone_id_saved; $form->{currency} = $currency_saved; @@ -1918,6 +1920,13 @@ sub _remove_billed_or_delivered_rows { my @fields = map { s/_1$//; $_ } grep { m/_1$/ } keys %{ $::form }; my @new_rows; + my $make_key = sub { + my ($row) = @_; + return $::form->{"id_${row}"} unless $::form->{"serialnumber_${row}"}; + my $key = $::form->{"id_${row}"} . ':' . $::form->{"serialnumber_${row}"}; + return exists $params{quantities}->{$key} ? $key : $::form->{"id_${row}"}; + }; + my $removed_rows = 0; my $row = 0; while ($row < $::form->{rowcount}) { @@ -1927,8 +1936,9 @@ sub _remove_billed_or_delivered_rows { my $parts_id = $::form->{"id_$row"}; my $base_qty = $::form->parse_amount(\%::myconfig, $::form->{"qty_$row"}) * SL::DB::Manager::Unit->find_by(name => $::form->{"unit_$row"})->base_factor; - my $sub_qty = min($base_qty, $params{quantities}->{$parts_id}); - $params{quantities}->{$parts_id} -= $sub_qty; + my $key = $make_key->($row); + my $sub_qty = min($base_qty, $params{quantities}->{$key}); + $params{quantities}->{$key} -= $sub_qty; if (!$sub_qty || ($sub_qty != $base_qty)) { $::form->{"qty_${row}"} = $::form->format_amount(\%::myconfig, ($base_qty - $sub_qty) / SL::DB::Manager::Unit->find_by(name => $::form->{"unit_$row"})->base_factor);