SL::DB::Helper::TransNumberGenerator: Tabellen und Zeilen locken
[kivitendo-erp.git] / SL / DB / Invoice.pm
index a64ef2f..065d2b3 100644 (file)
@@ -1,6 +1,3 @@
-# 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::Invoice;
 
 use strict;
@@ -9,15 +6,18 @@ use Carp;
 use List::Util qw(first);
 
 use Rose::DB::Object::Helpers ();
-
 use SL::DB::MetaSetup::Invoice;
 use SL::DB::Manager::Invoice;
+use SL::DB::Helper::Payment qw(:ALL);
+use SL::DB::Helper::AttrHTML;
+use SL::DB::Helper::AttrSorted;
 use SL::DB::Helper::FlattenToForm;
 use SL::DB::Helper::LinkedRecords;
 use SL::DB::Helper::PriceTaxCalculator;
 use SL::DB::Helper::PriceUpdater;
 use SL::DB::Helper::TransNumberGenerator;
 use SL::Locale::String qw(t8);
+use SL::DB::CustomVariable;
 
 __PACKAGE__->meta->add_relationship(
   invoiceitems => {
@@ -58,6 +58,9 @@ __PACKAGE__->meta->add_relationship(
 
 __PACKAGE__->meta->initialize;
 
+__PACKAGE__->attr_html('notes');
+__PACKAGE__->attr_sorted('items');
+
 __PACKAGE__->before_save('_before_save_set_invnumber');
 
 # hooks
@@ -75,12 +78,6 @@ sub _before_save_set_invnumber {
 sub items { goto &invoiceitems; }
 sub add_items { goto &add_invoiceitems; }
 
-sub items_sorted {
-  my ($self) = @_;
-
-  return [ sort {$a->position <=> $b->position } @{ $self->items } ];
-}
-
 sub is_sales {
   # For compatibility with Order, DeliveryOrder
   croak 'not an accessor' if @_ > 1;
@@ -363,6 +360,16 @@ sub customervendor {
   goto &customer;
 }
 
+sub link {
+  my ($self) = @_;
+
+  my $html;
+  $html   = SL::Presenter->get->sales_invoice($self, display => 'inline') if $self->invoice;
+  $html   = SL::Presenter->get->ar_transaction($self, display => 'inline') if !$self->invoice;
+
+  return $html;
+}
+
 1;
 
 __END__