# Fill $::form from the template.
my $today = DateTime->today_local;
- $::form->{title} = "Add";
- $::form->{currency} = $template->currency->name;
- $::form->{direct_debit} = $template->direct_debit;
- $::form->{globalproject_id} = $template->project_id;
- $::form->{AR_chart_id} = $template->ar_ap_chart_id;
- $::form->{transdate} = $today->to_kivitendo;
- $::form->{duedate} = $today->to_kivitendo;
- $::form->{rowcount} = @{ $template->items };
- $::form->{paidaccounts} = 1;
- $::form->{$_} = $template->$_ for qw(department_id ordnumber taxincluded employee_id notes);
+ $::form->{title} = "Add";
+ $::form->{currency} = $template->currency->name;
+ $::form->{direct_debit} = $template->direct_debit;
+ $::form->{globalproject_id} = $template->project_id;
+ $::form->{transaction_description} = $template->transaction_description;
+ $::form->{AR_chart_id} = $template->ar_ap_chart_id;
+ $::form->{transdate} = $today->to_kivitendo;
+ $::form->{duedate} = $today->to_kivitendo;
+ $::form->{rowcount} = @{ $template->items };
+ $::form->{paidaccounts} = 1;
+ $::form->{$_} = $template->$_ for qw(department_id ordnumber taxincluded employee_id notes);
if ($template->customer) {
$::form->{customer_id} = $template->customer_id;
} (1..($::form->{rowcount} || 1));
$template->assign_attributes(
- template_type => 'ar_transaction',
- template_name => $new_name,
-
- currency_id => SL::DB::Manager::Currency->find_by(name => $::form->{currency})->id,
- ar_ap_chart_id => $::form->{AR_chart_id} || undef,
- customer_id => $::form->{customer_id} || undef,
- department_id => $::form->{department_id} || undef,
- project_id => $::form->{globalproject_id} || undef,
- employee_id => $::form->{employee_id} || undef,
- taxincluded => $::form->{taxincluded} ? 1 : 0,
- direct_debit => $::form->{direct_debit} ? 1 : 0,
- ordnumber => $::form->{ordnumber},
- notes => $::form->{notes},
-
- items => \@items,
+ template_type => 'ar_transaction',
+ template_name => $new_name,
+
+ currency_id => SL::DB::Manager::Currency->find_by(name => $::form->{currency})->id,
+ ar_ap_chart_id => $::form->{AR_chart_id} || undef,
+ customer_id => $::form->{customer_id} || undef,
+ department_id => $::form->{department_id} || undef,
+ project_id => $::form->{globalproject_id} || undef,
+ employee_id => $::form->{employee_id} || undef,
+ taxincluded => $::form->{taxincluded} ? 1 : 0,
+ direct_debit => $::form->{direct_debit} ? 1 : 0,
+ ordnumber => $::form->{ordnumber},
+ notes => $::form->{notes},
+ transaction_description => $::form->{transaction_description},
+
+ items => \@items,
);
eval {
my $is_storno = $ar->{storno} && $ar->{storno_id};
my $has_storno = $ar->{storno} && !$ar->{storno_id};
- $ar->{type} =
- $has_storno ? $locale->text("Invoice with Storno (abbreviation)") :
- $is_storno ? $locale->text("Storno (one letter abbreviation)") :
- $ar->{amount} < 0 ? $locale->text("Credit note (one letter abbreviation)") :
- $ar->{invoice} ? $locale->text("Invoice (one letter abbreviation)") :
- $locale->text("AR Transaction (abbreviation)");
+ if ($ar->{type} eq 'invoice_for_advance_payment') {
+ $ar->{type} =
+ $has_storno ? $locale->text("Invoice for Advance Payment with Storno (abbreviation)") :
+ $is_storno ? $locale->text("Storno (one letter abbreviation)") :
+ $locale->text("Invoice for Advance Payment (one letter abbreviation)");
+
+ } elsif ($ar->{type} eq 'final_invoice') {
+ $ar->{type} = t8('Final Invoice (one letter abbreviation)');
+
+ } else {
+ $ar->{type} =
+ $has_storno ? $locale->text("Invoice with Storno (abbreviation)") :
+ $is_storno ? $locale->text("Storno (one letter abbreviation)") :
+ $ar->{amount} < 0 ? $locale->text("Credit note (one letter abbreviation)") :
+ $ar->{invoice} ? $locale->text("Invoice (one letter abbreviation)") :
+ $locale->text("AR Transaction (abbreviation)");
+ }
map { $ar->{$_} = $form->format_amount(\%myconfig, $ar->{$_}, 2) } qw(netamount tax amount paid due marge_total marge_percent);