Steuerzonen und Buchungsgruppen bearbeiten
[kivitendo-erp.git] / SL / DB / Buchungsgruppe.pm
index 65f75a5..bac0f7b 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 
 use SL::DB::MetaSetup::Buchungsgruppe;
 use SL::DB::Manager::Buchungsgruppe;
+use SL::DB::Helper::ActsAsList;
 
 __PACKAGE__->meta->add_relationship(
   inventory_account => {
@@ -15,6 +16,26 @@ __PACKAGE__->meta->add_relationship(
 
 __PACKAGE__->meta->initialize;
 
+sub validate {
+  my ($self) = @_;
+
+  my @errors;
+  push @errors, $::locale->text('The description is missing.') if !$self->description;
+
+  return @errors;
+}
+
+sub inventory_accno {
+  my ($self) = @_;
+  require SL::DB::Manager::Chart;
+  return SL::DB::Manager::Chart->find_by(id => $self->inventory_accno_id) ? SL::DB::Manager::Chart->find_by(id => $self->inventory_accno_id)->accno() : undef;
+}
+
+sub inventory_accno_description {
+  my ($self) = @_;
+  require SL::DB::Manager::Chart;
+  return SL::DB::Manager::Chart->find_by(id => $self->inventory_accno_id) ? SL::DB::Manager::Chart->find_by(id => $self->inventory_accno_id)->description() : undef;
+}
 
 sub income_accno_id {
   my ($self, $taxzone) = @_;
@@ -44,6 +65,11 @@ sub expense_account {
   return $taxzone_chart->expense_accno if $taxzone_chart;
 }
 
+sub taxzonecharts {
+  my ($self) = @_;
+  return SL::DB::Manager::TaxzoneChart->get_all(where => [ buchungsgruppen_id => $self->id ]);
+}
+
 1;
 __END__