X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FPresenter%2FDeliveryOrder.pm;fp=SL%2FPresenter%2FDeliveryOrder.pm;h=9f525b3f0c4bce7f3238d605db3c6c8ab6ab66c9;hb=b293ff8ad52fc76ba0c44783e3982418114d6b08;hp=79123b1d209b38c5f8964a785a19f052470996af;hpb=d4925a8b60f04674885e30d9316dc0263f8b9a84;p=kivitendo-erp.git diff --git a/SL/Presenter/DeliveryOrder.pm b/SL/Presenter/DeliveryOrder.pm index 79123b1d2..9f525b3f0 100644 --- a/SL/Presenter/DeliveryOrder.pm +++ b/SL/Presenter/DeliveryOrder.pm @@ -2,10 +2,12 @@ package SL::Presenter::DeliveryOrder; use strict; +use SL::DB::DeliveryOrder::TypeData (); +use SL::Locale::String qw(t8); use SL::Presenter::EscapedText qw(escape is_escaped); use Exporter qw(import); -our @EXPORT_OK = qw(sales_delivery_order purchase_delivery_order); +our @EXPORT_OK = qw(sales_delivery_order purchase_delivery_order delivery_order_status_line); use Carp; @@ -15,12 +17,39 @@ sub sales_delivery_order { return _do_record($delivery_order, 'sales_delivery_order', %params); } +sub rma_delivery_order { + my ($delivery_order, %params) = @_; + + return _do_new_record($delivery_order, 'rma_delivery_order', %params); +} + sub purchase_delivery_order { my ($delivery_order, %params) = @_; return _do_record($delivery_order, 'purchase_delivery_order', %params); } +sub supplier_delivery_order { + my ($delivery_order, %params) = @_; + + return _do_new_record($delivery_order, 'supplier_delivery_order', %params); +} + +sub _do_new_record { + my ($delivery_order, $type, %params) = @_; + + $params{display} ||= 'inline'; + + croak "Unknown display type '$params{display}'" unless $params{display} =~ m/^(?:inline|table-cell)$/; + + my $text = join '', ( + $params{no_link} ? '' : '', + escape($delivery_order->donumber), + $params{no_link} ? '' : '', + ); + is_escaped($text); +} + sub _do_record { my ($delivery_order, $type, %params) = @_; @@ -36,6 +65,36 @@ sub _do_record { is_escaped($text); } +sub stock_status { + my ($delivery_order) = @_; + + my $in_out = SL::DB::DeliveryOrder::TypeData::get3($delivery_order->type, "properties", "transfer"); + + if ($in_out eq 'in') { + return escape($delivery_order->delivered ? t8('transferred in') : t8('not transferred in yet')); + } + + if ($in_out eq 'out') { + return escape($delivery_order->delivered ? t8('transferred out') : t8('not transferred out yet')); + } +} + +sub closed_status { + my ($delivery_order) = @_; + + return escape($delivery_order->closed ? t8('Closed') : t8('Open')) +} + +sub status_line { + my ($delivery_order) = @_; + + return "" unless $delivery_order->id; + + stock_status($delivery_order) . " ; " . closed_status($delivery_order) +} + +sub delivery_order_status_line { goto &status_line }; + 1; __END__