RDBO Support.
[kivitendo-erp.git] / SL / DB / Unit.pm
diff --git a/SL/DB/Unit.pm b/SL/DB/Unit.pm
new file mode 100644 (file)
index 0000000..6a19733
--- /dev/null
@@ -0,0 +1,41 @@
+# This file has been auto-generated only because it didn't exist.
+# Feel free to modify it at will; it will not be overwritten automatically.
+
+package SL::DB::Unit;
+
+use strict;
+
+use SL::DB::MetaSetup::Unit;
+
+# Creates get_all, get_all_count, get_all_iterator, delete_all and update_all.
+__PACKAGE__->meta->make_manager_class;
+
+__PACKAGE__->meta->add_relationships(
+  base => {
+    type         => 'one to one',
+    class        => 'SL::DB::Unit',
+    column_map   => { base_unit => 'name' },
+  },
+);
+
+__PACKAGE__->meta->initialize;
+
+#methods
+
+sub unit_class {
+  my $self   = shift;
+
+  return $self if !$self->base_unit || $self->name eq $self->base_unit;
+  return $self->base->unit_class;
+}
+
+sub convertible_units {
+  my $self = shift;
+  return [
+    sort { $a->sortkey <=> $b->sortkey }
+    grep { $_->unit_class->name eq $self->unit_class->name }
+    @{ SL::DB::Manager::Unit->get_all }
+  ];
+}
+
+1;