$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;
}
$chart_link = SL::DB::Manager::Chart->find_by(id => $chart_id)->{'link'};
$chart_link ||= '';
- SL::DB::AccTransaction->new(trans_id => $self->id,
- chart_id => $chart_id,
- amount => $spec->{amount},
- tax_id => $spec->{tax_id},
- taxkey => $spec->{taxkey},
- project_id => $self->globalproject_id,
- transdate => $self->transdate,
- chart_link => $chart_link)->save;
+ if ($spec->{amount} != 0) {
+ SL::DB::AccTransaction->new(trans_id => $self->id,
+ chart_id => $chart_id,
+ amount => $spec->{amount},
+ tax_id => $spec->{tax_id},
+ taxkey => $spec->{taxkey},
+ project_id => $self->globalproject_id,
+ transdate => $self->transdate,
+ chart_link => $chart_link)->save;
+ }
}
}
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},
chart_id => $tax->chart_id,
chart_link => $tax->chart->link,
transdate => $self->transdate,
+ gldate => $self->gldate,
taxkey => $tax->taxkey,
tax_id => $tax->id,
);
=item C<closed>
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<recalculate_amounts %params>