X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=bin%2Fmozilla%2Fio.pl;h=6a5556049a27ac70024f5b0b81cc34344774d42a;hb=f0ad214336550a429014c0e496511dada80be935;hp=849e8df5ad6f9b8ec17e18fe42097267b16be077;hpb=44310118d55217b2456a2ceab51b14c0bfb77bbc;p=kivitendo-erp.git diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl index 849e8df5a..6a5556049 100644 --- a/bin/mozilla/io.pl +++ b/bin/mozilla/io.pl @@ -136,6 +136,8 @@ sub display_row { my $is_purchase = (first { $_ eq $form->{type} } qw(request_quotation purchase_order purchase_delivery_order)) || ($form->{script} eq 'ir.pl'); my $show_min_order_qty = first { $_ eq $form->{type} } qw(request_quotation purchase_order); my $is_delivery_order = $form->{type} =~ /_delivery_order$/; + my $is_quotation = $form->{type} =~ /_quotation$/; + my $is_invoice = $form->{type} =~ /invoice/; my $is_s_p_order = (first { $_ eq $form->{type} } qw(sales_order purchase_order)); if ($is_delivery_order) { @@ -432,18 +434,31 @@ sub display_row { # / calculate onhand my @hidden_vars; - - if ($is_delivery_order) { + # add hidden ids for persistent (item|invoice)_ids and previous (converted_from*) ids + if ($is_quotation) { + push @hidden_vars, qw(orderitems_id); + } + if ($is_s_p_order) { + push @hidden_vars, qw(orderitems_id converted_from_quotation_orderitems_id); + } + if ($is_invoice) { + push @hidden_vars, qw(invoice_id converted_from_orderitems_id converted_from_delivery_order_items_id); + } + if ($::form->{type} =~ /credit_note/) { + push @hidden_vars, qw(invoice_id converted_from_invoice_id); + } + if ($is_delivery_order) { map { $form->{"${_}_${i}"} = $form->format_amount(\%myconfig, $form->{"${_}_${i}"}) } qw(sellprice discount lastcost); push @hidden_vars, grep { defined $form->{"${_}_${i}"} } qw(sellprice discount not_discountable price_factor_id lastcost); push @hidden_vars, "stock_${stock_in_out}_sum_qty", "stock_${stock_in_out}"; + push @hidden_vars, qw(delivery_order_items_id converted_from_orderitems_id); } my @HIDDENS = map { value => $_}, ( $cgi->hidden("-name" => "unit_old_$i", "-value" => $form->{"selected_unit_$i"}), $cgi->hidden("-name" => "price_new_$i", "-value" => $form->format_amount(\%myconfig, $form->{"price_new_$i"})), map { ($cgi->hidden("-name" => $_, "-id" => $_, "-value" => $form->{$_})); } map { $_."_$i" } - (qw(orderitems_id bo price_old id inventory_accno bin partsgroup partnotes active_price_source active_discount_source + (qw(bo price_old id inventory_accno bin partsgroup partnotes active_price_source active_discount_source income_accno expense_accno listprice assembly taxaccounts ordnumber donumber transdate cusordnumber longdescription basefactor marge_absolut marge_percent marge_price_factor weight), @hidden_vars) ); @@ -726,7 +741,9 @@ sub remove_emptied_rows { transdate longdescription basefactor marge_total marge_percent marge_price_factor lastcost price_factor_id partnotes stock_out stock_in has_sernumber reqdate orderitems_id - active_price_source active_discount_source); + active_price_source active_discount_source delivery_order_items_id + invoice_id converted_from_quotation_orderitems_id + converted_from_orderitems_id converted_from_delivery_order_items_id); my $ic_cvar_configs = CVar->get_configs(module => 'IC'); push @flds, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs }; @@ -1932,10 +1949,11 @@ sub _make_record_item { my $class = { sales_order => 'OrderItem', - purchase_oder => 'OrderItem', + purchase_order => 'OrderItem', sales_quotation => 'OrderItem', request_quotation => 'OrderItem', invoice => 'InvoiceItem', + credit_note => 'InvoiceItem', purchase_invoice => 'InvoiceItem', purchase_delivery_order => 'DeliveryOrderItem', sales_delivery_order => 'DeliveryOrderItem', @@ -1957,6 +1975,8 @@ sub _make_record_item { $obj->${\"$method\_as_date"}($::form->{"$method\_$row"}); } elsif ((ref $obj->meta->column($method)) =~ /^Rose::DB::Object::Metadata::Column::(?:Numeric|Float|DoublePrecsion)$/) { $obj->${\"$method\_as_number"}($::form->{"$method\_$row"}); + } elsif ((ref $obj->meta->column($method)) =~ /^Rose::DB::Object::Metadata::Column::Boolean$/) { + $obj->$method(!!$::form->{$method}); } else { $obj->$method($::form->{"$method\_$row"}); } @@ -1972,7 +1992,7 @@ sub _make_record_item { sub _make_record { my $class = { sales_order => 'Order', - purchase_oder => 'Order', + purchase_order => 'Order', sales_quotation => 'Order', request_quotation => 'Order', purchase_delivery_order => 'DeliveryOrder', @@ -2003,6 +2023,8 @@ sub _make_record { $obj->${\"$method\_as_date"}($::form->{$method}); } elsif ((ref $obj->meta->column($method)) =~ /^Rose::DB::Object::Metadata::Column::(?:Numeric|Float|DoublePrecsion)$/) { $obj->${\"$method\_as_number"}($::form->{$method}); + } elsif ((ref $obj->meta->column($method)) =~ /^Rose::DB::Object::Metadata::Column::Boolean$/) { + $obj->$method(!!$::form->{$method}); } else { $obj->$method($::form->{$method}); } @@ -2011,7 +2033,7 @@ sub _make_record { my @items; for my $i (1 .. $::form->{rowcount}) { next unless $::form->{"id_$i"}; - push @items, _make_record_item($i) + push @items, _make_record_item($i); } $obj->items(@items) if @items;