X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/b186a8eb0ff43ca1d67e7416f1eef2d11bf4501a..c44fd93f760b635e63e20a02290a91abe0c4763d:/SL/DB/Invoice.pm diff --git a/SL/DB/Invoice.pm b/SL/DB/Invoice.pm index 0ef8d614e..38ec9c0f7 100644 --- a/SL/DB/Invoice.pm +++ b/SL/DB/Invoice.pm @@ -60,6 +60,12 @@ __PACKAGE__->meta->add_relationship( sort_by => 'acc_trans_id ASC', }, }, + dunnings => { + type => 'one to many', + class => 'SL::DB::Dunning', + column_map => { id => 'trans_id' }, + manager_args => { with_objects => [ 'dunnings' ] } + }, ); __PACKAGE__->meta->initialize; @@ -178,9 +184,16 @@ sub new_from { $args{payment_id} = ( $terms ? $terms->id : $source->payment_id); - if ($source->type =~ /_order$/) { + if ($source->type =~ /_delivery_order$/) { + $args{deliverydate} = $source->reqdate; + if (my $order = SL::DB::Manager::Order->find_by(ordnumber => $source->ordnumber)) { + $args{orddate} = $order->transdate; + } + + } elsif ($source->type =~ /_order$/) { $args{deliverydate} = $source->reqdate; $args{orddate} = $source->transdate; + } else { $args{quodate} = $source->transdate; } @@ -349,6 +362,7 @@ sub add_ar_amount_row { chart_id => $params{chart}->id, chart_link => $params{chart}->link, transdate => $self->transdate, + gldate => $self->gldate, taxkey => $tax->taxkey, tax_id => $tax->id, project_id => $params{project_id}, @@ -363,6 +377,7 @@ sub add_ar_amount_row { chart_id => $tax->chart_id, chart_link => $tax->chart->link, transdate => $self->transdate, + gldate => $self->gldate, taxkey => $tax->taxkey, tax_id => $tax->id, ); @@ -555,6 +570,13 @@ sub abbreviation { return t8('Invoice (one letter abbreviation)'); } +sub oneline_summary { + my $self = shift; + + return sprintf("%s: %s %s %s (%s)", $self->abbreviation, $self->invnumber, $self->customer->name, + $::form->format_amount(\%::myconfig, $self->amount,2), $self->transdate->to_kivitendo); +} + sub date { goto &transdate; } @@ -571,8 +593,8 @@ 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; + $html = $self->presenter->sales_invoice(display => 'inline') if $self->invoice; + $html = $self->presenter->ar_transaction(display => 'inline') if !$self->invoice; return $html; } @@ -707,7 +729,7 @@ See L. =item C Returns 1 or 0, depending on whether the invoice is closed or not. Currently -invoices that are overpaid also count as closed. +invoices that are overpaid also count as closed and credit notes in general. =item C