DeliveryOrder: Lagermengen Spalte
[kivitendo-erp.git] / SL / Controller / DeliveryOrder.pm
index 9789710..6533425 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 use parent qw(SL::Controller::Base);
 
 use SL::Helper::Flash qw(flash_later);
+use SL::Helper::Number qw(_format_number_units);
 use SL::Presenter::Tag qw(select_tag hidden_tag div_tag);
 use SL::Locale::String qw(t8);
 use SL::SessionFile::Random;
@@ -1930,6 +1931,22 @@ sub store_pdf_to_webdav_and_filemanagement {
   return @errors;
 }
 
+sub calculate_stock_in_out {
+  my ($self, $item) = @_;
+
+  return "" if !$item->part || !$item->part->unit;
+
+  my $in_out   = $self->type_data->properties("transfer");
+
+  my $do_qty   = $item->qty;
+  my $sum      = sum0 map { $_->unit_obj->convert_to($_->qty, $item->unit_obj) } @{ $item->delivery_order_stock_entries };
+
+  my $matches  = $do_qty == $sum;
+  my $content  = _format_number_units($sum, 2, $item->unit_obj, $item->part->unit_obj);
+
+  return $content;
+}
+
 sub init_type_data {
   SL::Controller::DeliveryOrder::TypeData->new($_[0]);
 }