]> wagnertech.de Git - kivitendo-erp.git/blobdiff - SL/DB/Unit.pm
Paginates nur anzeigen, wenn mindestens 2 Seiten.
[kivitendo-erp.git] / SL / DB / Unit.pm
index 6a197337c42a8e9731a396245c384356a11addba..55a190b247635c59ce0141e48d4feb5134083001 100644 (file)
@@ -38,4 +38,23 @@ sub convertible_units {
   ];
 }
 
+sub base_factor {
+  my ($self) = @_;
+
+  if (!defined $self->{__base_factor}) {
+    $self->{__base_factor} = !$self->base_unit || !$self->factor || ($self->name eq $self->base_unit) ? 1 : $self->factor * $self->base->base_factor;
+  }
+
+  return $self->{__base_factor};
+}
+
+sub convert_to {
+  my ($self, $qty, $other_unit) = @_;
+
+  my $my_base_factor    = $self->base_factor       || 1;
+  my $other_base_factor = $other_unit->base_factor || 1;
+
+  return $qty * $my_base_factor / $other_base_factor;
+}
+
 1;