X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FGLTransaction.pm;h=a92271f125a6dd8fb709e4a55c39833f318f1891;hb=86eed2325ab7d7342ad0b832931cb8ada6efb5d7;hp=352de036d5117c85a4c59ba8b100cc23708e020e;hpb=2d7e4203055156dccb2ca3fba82bbb32873ecd2e;p=kivitendo-erp.git diff --git a/SL/DB/GLTransaction.pm b/SL/DB/GLTransaction.pm index 352de036d..a92271f12 100644 --- a/SL/DB/GLTransaction.pm +++ b/SL/DB/GLTransaction.pm @@ -3,10 +3,58 @@ package SL::DB::GLTransaction; use strict; use SL::DB::MetaSetup::GLTransaction; - -__PACKAGE__->meta->initialize; +use SL::Locale::String qw(t8); +use List::Util qw(sum); # Creates get_all, get_all_count, get_all_iterator, delete_all and update_all. __PACKAGE__->meta->make_manager_class; +__PACKAGE__->meta->add_relationship( + transactions => { + type => 'one to many', + class => 'SL::DB::AccTransaction', + column_map => { id => 'trans_id' }, + manager_args => { + with_objects => [ 'chart' ], + sort_by => 'acc_trans_id ASC', + }, + }, +); + +__PACKAGE__->meta->initialize; + +sub abbreviation { + my $self = shift; + + my $abbreviation = $::locale->text('GL Transaction (abbreviation)'); + $abbreviation .= "(" . $::locale->text('Storno (one letter abbreviation)') . ")" if $self->storno; + return $abbreviation; +} + +sub displayable_type { + return t8('GL Transaction'); +} + +sub oneline_summary { + my ($self) = @_; + my $amount = sum map { $_->amount if $_->amount > 0 } @{$self->transactions}; + $amount = $::form->format_amount(\%::myconfig, $amount, 2); + return sprintf("%s: %s %s %s (%s)", $self->abbreviation, $self->description, $self->reference, $amount, $self->transdate->to_kivitendo); +} + +sub link { + my ($self) = @_; + + my $html; + $html = $self->presenter->gl_transaction(display => 'inline'); + + return $html; +} + +sub invnumber { + return $_[0]->reference; +} + +sub date { goto &gldate } + 1;