"old_id" => \@old_project_ids },
"charts" => { "key" => "ALL_CHARTS",
"transdate" => $form->{transdate} },
- "taxcharts" => { "key" => "ALL_TAXCHARTS",
- "module" => "AP" },);
+ );
map(
{ $_->{link_split} = [ split(/:/, $_->{link}) ]; }
my $follow_up_trans_info = "$form->{invnumber} ($follow_up_vc)";
$::request->layout->add_javascripts("autocomplete_chart.js", "show_vc_details.js", "show_history.js", "follow_up.js", "kivi.Draft.js", "kivi.GL.js", "kivi.RecordTemplate.js", "kivi.File.js", "kivi.AP.js", "kivi.CustomerVendor.js", "kivi.Validator.js");
- my $transdate = $::form->{transdate} ? DateTime->from_kivitendo($::form->{transdate}) : DateTime->today_local;
- my $first_taxchart;
-
# $form->{totalpaid} is used by the action bar setup to determine
# whether or not canceling is allowed. Therefore it must be
# calculated prior to the action bar setup.
setup_ap_display_form_action_bar();
$form->header();
+ # get the correct date for tax
+ my $transdate = $::form->{transdate} ? DateTime->from_kivitendo($::form->{transdate}) : DateTime->today_local;
+ my $deliverydate = $::form->{deliverydate} ? DateTime->from_kivitendo($::form->{deliverydate}) : undef;
+ my $taxdate = $deliverydate ? $deliverydate : $transdate;
+ # helper for loop
+ my $first_taxchart;
for my $i (1 .. $form->{rowcount}) {
$form->{"tax_$i"} = $form->format_amount(\%myconfig, $form->{"tax_$i"}, 2);
my ($default_taxchart, $taxchart_to_use);
+ my $used_tax_id;
+ if ( $form->{"taxchart_$i"} ) {
+ ($used_tax_id) = split(/--/, $form->{"taxchart_$i"});
+ }
my $amount_chart_id = $form->{"AP_amount_chart_id_$i"} || $default_ap_amount_chart_id;
- my @taxcharts = GL->get_active_taxes_for_chart($amount_chart_id, $transdate);
+ my @taxcharts = GL->get_active_taxes_for_chart($amount_chart_id, $taxdate, $used_tax_id);
foreach my $item (@taxcharts) {
my $key = $item->id . "--" . $item->rate;
$first_taxchart //= $item;
my $item = shift;
return [
$item->{id} .'--'. $item->{rate},
- $item->{taxdescription} .' '. ($item->{rate} * 100) .' %',
+ $item->{taxkey} . ' - ' . $item->{taxdescription} .' '. ($item->{rate} * 100) .' %',
];
};
my @columns =
qw(transdate id type invnumber ordnumber name netamount tax amount paid datepaid
- due duedate transaction_description notes employee globalprojectnumber
+ due duedate transaction_description notes employee globalprojectnumber department
vendornumber country ustid taxzone payment_terms charts direct_debit);
my @hidden_variables = map { "l_${_}" } @columns;
'notes' => { 'text' => $locale->text('Notes'), },
'employee' => { 'text' => $locale->text('Employee'), },
'globalprojectnumber' => { 'text' => $locale->text('Document Project Number'), },
+ 'department' => { 'text' => $locale->text('Department'), },
'vendornumber' => { 'text' => $locale->text('Vendor Number'), },
'country' => { 'text' => $locale->text('Country'), },
'ustid' => { 'text' => $locale->text('USt-IdNr.'), },
'direct_debit' => { 'text' => $locale->text('direct debit'), },
);
- foreach my $name (qw(id transdate duedate invnumber ordnumber name datepaid employee shippingpoint shipvia transaction_description direct_debit)) {
+ foreach my $name (qw(id transdate duedate invnumber ordnumber name datepaid employee shippingpoint shipvia transaction_description direct_debit department)) {
my $sortdir = $form->{sort} eq $name ? 1 - $form->{sortdir} : $form->{sortdir};
$column_defs{$name}->{link} = $href . "&sort=$name&sortdir=$sortdir";
}
$::form->{transdate} = $today->to_kivitendo;
$::form->{duedate} = $today->to_kivitendo;
$::form->{duedate} = $order->payment_terms->calc_date(reference_date => $today)->to_kivitendo if $order->payment_terms;
+ $::form->{deliverydate} = $order->reqdate->to_kivitendo if $order->reqdate;
create_links();
my $config_po_ap_workflow_chart_id = $::instance_conf->get_workflow_po_ap_chart_id;