use Data::Dumper;
use SL::DB::BankAccount;
+use SL::DB::SepaExport;
use SL::Chart;
use SL::CT;
use SL::Form;
my $form = $main::form;
my $locale = $main::locale;
my $vc = $form->{vc} eq 'customer' ? 'customer' : 'vendor';
+ my $vc_no = $form->{vc} eq 'customer' ? $::locale->text('VN') : $::locale->text('CN');
$form->{title} = $vc eq 'customer' ? $::locale->text('Prepare bank collection via SEPA XML') : $locale->text('Prepare bank transfer via SEPA XML');
my $prefix = $translations{ $invoice->{language_id} } || $translations{default} || $::locale->text('Invoice');
$prefix .= ' ' unless $prefix =~ m/ $/;
$invoice->{reference_prefix} = $prefix;
+
+ # add c_vendor_id or v_vendor_id as a prefix if a entry exists
+ next unless $invoice->{vc_vc_id};
+
+ my $prefix_vc_number = $translations{ $invoice->{language_id} } || $translations{default} || $vc_no;
+ $prefix_vc_number .= ' ' unless $prefix_vc_number =~ m/ $/;
+ $invoice->{reference_prefix_vc} = ' ' . $prefix_vc_number unless $prefix_vc_number =~ m/^ /;
}
$form->header();
my %filter = map +( $_ => $form->{"f_${_}"} ),
grep { $form->{"f_${_}"} }
- (qw(vc invnumber),
+ (qw(vc invnumber message_id),
map { ("${_}_date_from", "${_}_date_to") }
qw(export requested_execution execution));
$filter{executed} = $form->{l_executed} ? 1 : 0 if ($form->{l_executed} != $form->{l_not_executed});
'closed' => { 'text' => $locale->text('Closed'), },
num_invoices => { 'text' => $locale->text('Number of invoices'), },
sum_amounts => { 'text' => $locale->text('Sum of all amounts'), },
+ message_ids => { 'text' => $locale->text('SEPA message IDs'), },
);
- my @columns = qw(selected id export_date employee executed closed invoices netamount);
+ my @columns = qw(selected id export_date employee executed closed num_invoices sum_amounts message_ids);
my %column_alignment = map { ($_ => 'right') } qw(num_invoices sum_amounts);
foreach my $name (qw(id export_date employee executed closed)) {
my @options = ();
push @options, ($vc eq 'customer' ? $::locale->text('Customer') : $locale->text('Vendor')) . ' : ' . $form->{f_vc} if ($form->{f_vc});
push @options, $locale->text('Invoice number') . ' : ' . $form->{f_invnumber} if ($form->{f_invnumber});
+ push @options, $locale->text('SEPA message ID') . ' : ' . $form->{f_message_id} if (length $form->{f_message_id});
push @options, $locale->text('Export date from') . ' : ' . $form->{f_export_date_from} if ($form->{f_export_date_from});
push @options, $locale->text('Export date to') . ' : ' . $form->{f_export_date_to} if ($form->{f_export_date_to});
push @options, $locale->text('Requested execution date from') . ' : ' . $form->{f_requested_execution_date_from} if ($form->{f_requested_execution_date_from});
'date_of_signature' => $item->{mandate_date_of_signature}, });
}
+ # Store the message ID used in each of the entries in order to
+ # facilitate finding them by looking at bank statements.
+ foreach my $id (@ids) {
+ SL::DB::SepaExportMessageId->new(
+ sepa_export_id => $id,
+ message_id => $message_id,
+ )->save;
+ }
+
my $xml = $sepa_xml->to_xml();
print $cgi->header('-type' => 'application/octet-stream',