ShippedQty: Übergabe von Strings als ids abfangen
[kivitendo-erp.git] / SL / Helper / ShippedQty.pm
index 6441167..af2a4f4 100644 (file)
@@ -104,8 +104,6 @@ sub calculate {
 
   die 'Need exactly one argument, either id, object or arrayref of ids or objects.' unless 2 == @_;
 
-  return $self if !$data || ('ARRAY' eq ref $data && !@$data);
-
   $self->normalize_input($data);
 
   return $self unless @{ $self->oe_ids };
@@ -235,6 +233,8 @@ sub write_to {
 sub write_to_objects {
   my ($self) = @_;
 
+  return unless @{ $self->oe_ids };
+
   die 'Can only use write_to_objects, when calculate was called with objects. Use write_to instead.' unless $self->objects_or_ids;
 
   $self->write_to($self->objects);
@@ -258,6 +258,7 @@ sub normalize_input {
     $self->objects($data);
   } else {
     die 'object or reference in data while expecting ids' if any { ref($_) } @$data;
+    die 'ids need to be numbers'                          if any { ! ($_ * 1) } @$data;
     $self->oe_ids($data);
   }
 
@@ -529,6 +530,8 @@ false, the match was made in the fill up stage.
 
 =back
 
+=back
+
 =head1 REPLACED FUNCTIONALITY
 
 =head2 delivered mode