X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/89b2668811eac6023ad58322e2f9970ddb6a27c9..b720e272:/bin/mozilla/io.pl diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl index 57c2b8c54..c8478984b 100644 --- a/bin/mozilla/io.pl +++ b/bin/mozilla/io.pl @@ -163,8 +163,8 @@ sub display_row { { id => 'weight', width => 5, value => $locale->text('Weight'), display => $defaults->{show_weight}, }, { id => 'serialnr', width => 10, value => $locale->text('Serial No.'), display => 0, }, { id => 'projectnr', width => 10, value => $locale->text('Project'), display => 0, }, - { id => 'sellprice', width => 15, value => $locale->text('Price'), display => !$is_delivery_order, }, { id => 'price_source', width => 5, value => $locale->text('Price Source'), display => !$is_delivery_order, }, + { id => 'sellprice', width => 15, value => $locale->text('Price'), display => !$is_delivery_order, }, { id => 'discount', width => 5, value => $locale->text('Discount'), display => !$is_delivery_order, }, { id => 'linetotal', width => 10, value => $locale->text('Extended'), display => !$is_delivery_order, }, { id => 'bin', width => 10, value => $locale->text('Bin'), display => 0, }, @@ -325,9 +325,11 @@ sub display_row { $column_data{weight} = $form->format_amount(\%myconfig, $form->{"qty_$i"} * $form->{"weight_$i"}, 3) . ' ' . $defaults->{weightunit} if $defaults->{show_weight}; if ($form->{"id_${i}"} && !$is_delivery_order) { - my $price_source = SL::PriceSource->new(record_item => $record_item, record => $record); - my $price = $price_source->price_from_source($::form->{"active_price_source_$i"}); - my $discount = $price_source->price_from_source($::form->{"active_discount_source_$i"}); + my $price_source = SL::PriceSource->new(record_item => $record_item, record => $record); + my $price = $price_source->price_from_source($::form->{"active_price_source_$i"}); + my $discount = $price_source->price_from_source($::form->{"active_discount_source_$i"}); + my $best_price = $price_source->best_price; + my $best_discount = $price_source->best_discount; $column_data{price_source} .= $cgi->button(-value => $price->source_description, -onClick => "kivi.io.price_chooser($i)"); if ($price->source) { $column_data{price_source} .= ' ' . $cgi->img({src => 'image/flag-red.png', alt => $price->invalid, title => $price->invalid }) if $price->invalid; @@ -335,7 +337,7 @@ sub display_row { if (!$price->missing && !$price->invalid) { $column_data{price_source} .= ' ' . $cgi->img({src => 'image/up.png', alt => t8('This price has since gone up'), title => t8('This price has since gone up' ) }) if $price->price > $record_item->sellprice; $column_data{price_source} .= ' ' . $cgi->img({src => 'image/down.png', alt => t8('This price has since gone down'), title => t8('This price has since gone down') }) if $price->price < $record_item->sellprice; - $column_data{price_source} .= ' ' . $cgi->img({src => 'image/ok.png', alt => t8('There is a better price available'), title => t8('There is a better price available') }) if $price->source ne $price_source->best_price->source; + $column_data{price_source} .= ' ' . $cgi->img({src => 'image/ok.png', alt => t8('There is a better price available'), title => t8('There is a better price available') }) if $best_price && $price->source ne $price_source->best_price->source; } } if ($discount->source) { @@ -344,7 +346,7 @@ sub display_row { if (!$discount->missing && !$discount->invalid) { $column_data{price_source} .= ' ' . $cgi->img({src => 'image/up.png', alt => t8('This discount has since gone up'), title => t8('This discount has since gone up') }) if $discount->discount * 100 > $record_item->discount; $column_data{price_source} .= ' ' . $cgi->img({src => 'image/down.png', alt => t8('This discount has since gone down'), title => t8('This discount has since gone down') }) if $discount->discount * 100 < $record_item->discount; - $column_data{price_source} .= ' ' . $cgi->img({src => 'image/ok.png', alt => t8('There is a better discount available'), title => t8('There is a better discount available') }) if $discount->source ne $price_source->best_discount->source; + $column_data{price_source} .= ' ' . $cgi->img({src => 'image/ok.png', alt => t8('There is a better discount available'), title => t8('There is a better discount available') }) if $best_discount && $discount->source ne $price_source->best_discount->source; } } } @@ -435,6 +437,7 @@ sub display_row { 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); } my @HIDDENS = map { value => $_}, ( @@ -724,7 +727,7 @@ 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); my $ic_cvar_configs = CVar->get_configs(module => 'IC'); push @flds, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs }; @@ -1930,10 +1933,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', @@ -1955,6 +1959,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"}); } @@ -1970,7 +1976,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', @@ -2001,6 +2007,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}); } @@ -2009,10 +2017,11 @@ 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; + $obj->is_sales(!!$obj->customer_id) if $class eq 'SL::DB::DeliveryOrder'; return $obj; }