Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / SL / DB / Business.pm
index badd0b5..91cdd67 100644 (file)
@@ -1,13 +1,42 @@
-# 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::Business;
 
 use strict;
 
 use SL::DB::MetaSetup::Business;
+use SL::DB::Manager::Business;
+
+__PACKAGE__->meta->add_relationship(
+  customers      => {
+    type         => 'one to many',
+    class        => 'SL::DB::Customer',
+    column_map   => { id => 'business_id' },
+    query_args   => [ \' id IN ( SELECT id FROM customer ) ' ],
+  },
+  vendors      => {
+    type         => 'one to many',
+    class        => 'SL::DB::Vendor',
+    column_map   => { id => 'business_id' },
+    query_args   => [ \' id IN ( SELECT id FROM vendor ) ' ],
+  },
+);
+
+__PACKAGE__->meta->initialize;
+
+sub validate {
+  my ($self) = @_;
+
+  my @errors;
+  push @errors, $::locale->text('The description is missing.')          if !$self->description;
+  push @errors, $::locale->text('The discount must not be negative.')   if $self->discount <  0;
+  push @errors, $::locale->text('The discount must be less than 100%.') if $self->discount >= 1;
+
+  return @errors;
+}
+
+sub displayable_name {
+  my $self = shift;
 
-# Creates get_all, get_all_count, get_all_iterator, delete_all and update_all.
-__PACKAGE__->meta->make_manager_class;
+  return join ' ', grep $_, $self->id, $self->description;
+}
 
 1;