X-Git-Url: http://wagnertech.de/git?p=kivitendo-erp.git;a=blobdiff_plain;f=SL%2FPresenter%2FDeliveryOrder.pm;fp=SL%2FPresenter%2FDeliveryOrder.pm;h=9f525b3f0c4bce7f3238d605db3c6c8ab6ab66c9;hp=1abc83546d0ac9255e17fb0ad34314b66b72a44a;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44 diff --git a/SL/Presenter/DeliveryOrder.pm b/SL/Presenter/DeliveryOrder.pm index 1abc83546..9f525b3f0 100644 --- a/SL/Presenter/DeliveryOrder.pm +++ b/SL/Presenter/DeliveryOrder.pm @@ -2,40 +2,99 @@ package SL::Presenter::DeliveryOrder; use strict; -use parent qw(Exporter); +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 = qw(sales_delivery_order purchase_delivery_order); +our @EXPORT_OK = qw(sales_delivery_order purchase_delivery_order delivery_order_status_line); use Carp; sub sales_delivery_order { - my ($self, $delivery_order, %params) = @_; + my ($delivery_order, %params) = @_; - return _do_record($self, $delivery_order, 'sales_delivery_order', %params); + 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 ($self, $delivery_order, %params) = @_; + my ($delivery_order, %params) = @_; + + return _do_record($delivery_order, 'purchase_delivery_order', %params); +} + +sub supplier_delivery_order { + my ($delivery_order, %params) = @_; - return _do_record($self, $delivery_order, 'purchase_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 ($self, $delivery_order, $type, %params) = @_; + 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} ? '' : '', - $self->escape($delivery_order->donumber), + $params{no_link} ? '' : '', + escape($delivery_order->donumber), $params{no_link} ? '' : '', ); - return $self->escaped_text($text); + 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__ @@ -53,11 +112,11 @@ for sales and purchase delivery orders # Sales delivery orders: my $object = SL::DB::Manager::DeliveryOrder->get_first(where => [ is_sales => 1 ]); - my $html = SL::Presenter->get->sales_delivery_order($object, display => 'inline'); + my $html = SL::Presenter::DeliveryOrder::sales_delivery_order($object, display => 'inline'); # Purchase delivery orders: my $object = SL::DB::Manager::DeliveryOrder->get_first(where => [ or => [ is_sales => undef, is_sales => 0 ]]); - my $html = SL::Presenter->get->purchase_delivery_order($object, display => 'inline'); + my $html = SL::Presenter::DeliveryOrder::purchase_delivery_order($object, display => 'inline'); =head1 FUNCTIONS