use SL::DB::Currency;
use SL::DB::Default;
use SL::DB::Order;
+use SL::DB::PaymentTerm;
use SL::DB::PurchaseInvoice;
use SL::DB::RecordTemplate;
use SL::DB::Tax;
$::form->{currency} = $template->currency->name;
$::form->{direct_debit} = $template->direct_debit;
$::form->{globalproject_id} = $template->project_id;
+ $::form->{payment_id} = $template->payment_id;
$::form->{AP_chart_id} = $template->ar_ap_chart_id;
$::form->{transdate} = $today->to_kivitendo;
$::form->{duedate} = $today->to_kivitendo;
vendor_id => $::form->{vendor_id} || undef,
department_id => $::form->{department_id} || undef,
project_id => $::form->{globalproject_id} || undef,
+ payment_id => $::form->{payment_id} || undef,
taxincluded => $::form->{taxincluded} ? 1 : 0,
direct_debit => $::form->{direct_debit} ? 1 : 0,
ordnumber => $::form->{ordnumber},
$form->{transdate} = $form->{initial_transdate};
if ($form->{vendor_id}) {
- my $last_used_ap_chart = SL::DB::Vendor->load_cached($form->{vendor_id})->last_used_ap_chart;
+ my $vendor = SL::DB::Vendor->load_cached($form->{vendor_id});
+
+ # set initial payment terms
+ $form->{payment_id} = $vendor->payment_id;
+
+ my $last_used_ap_chart = $vendor->last_used_ap_chart;
$form->{"AP_amount_chart_id_1"} = $last_used_ap_chart->id if $last_used_ap_chart;
}
my $follow_up_vc = $form->{vendor_id} ? SL::DB::Vendor->load_cached($form->{vendor_id})->name : '';
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", "autocomplete_project.js");
+ $::request->layout->add_javascripts("autocomplete_chart.js", "show_vc_details.js", "show_history.js", "follow_up.js", "kivi.Draft.js", "kivi.SalesPurchase.js", "kivi.GL.js", "kivi.RecordTemplate.js", "kivi.File.js", "kivi.AP.js", "kivi.CustomerVendor.js", "kivi.Validator.js", "autocomplete_project.js");
# $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.
$form->{paid_missing} = $form->{invtotal_unformatted} - $form->{totalpaid};
+ $form->{payment_id} = $form->{invoice_obj}->{payment_id} // $form->{payment_id};
print $form->parse_html_template('ap/form_header', {
today => DateTime->today,
currencies => SL::DB::Manager::Currency->get_all_sorted,
+ payment_terms => SL::DB::Manager::PaymentTerm->get_all_sorted(query => [ or => [ obsolete => 0, id => $form->{payment_id}*1 ]]),
});
$main::lxdebug->leave_sub();
if (($form->{previous_vendor_id} || $form->{vendor_id}) != $form->{vendor_id}) {
IR->get_vendor(\%::myconfig, $form);
+
+ my $vendor = SL::DB::Vendor->load_cached($form->{vendor_id});
+
+ # reset payment to new vendor
+ $form->{payment_id} = $vendor->payment_id;
+
if (($form->{rowcount} == 1) && ($form->{amount_1} == 0)) {
- my $last_used_ap_chart = SL::DB::Vendor->load_cached($form->{vendor_id})->last_used_ap_chart;
+ my $last_used_ap_chart = $vendor->last_used_ap_chart;
$form->{"AP_amount_chart_id_1"} = $last_used_ap_chart->id if $last_used_ap_chart;
}
}
my $department_description;
$department_description = SL::DB::Manager::Department->find_by(id => $form->{department_id})->description if $form->{department_id};
+ my $project_description;
+ $project_description = SL::DB::Manager::Project->find_by(id => $form->{project_id})->description if $form->{project_id};
my @options;
push @options, $locale->text('Vendor') . " : $form->{vendor}" if ($form->{vendor});
push @options, $locale->text('Contact Person') . " : $form->{cp_name}" if ($form->{cp_name});
push @options, $locale->text('Department') . " : $department_description" if ($form->{department_id});
+ push @options, $locale->text('Project') . " : $project_description" if ($project_description);
push @options, $locale->text('Invoice Number') . " : $form->{invnumber}" if ($form->{invnumber});
push @options, $locale->text('Order Number') . " : $form->{ordnumber}" if ($form->{ordnumber});
push @options, $locale->text('Notes') . " : $form->{notes}" if ($form->{notes});