Revision a2b43e37
Von Jan Büren vor mehr als 4 Jahren hinzugefügt
SL/DN.pm | ||
---|---|---|
51 | 51 |
use SL::Util qw(trim); |
52 | 52 |
use SL::DB; |
53 | 53 |
|
54 |
use File::Copy; |
|
55 |
|
|
54 | 56 |
use strict; |
55 | 57 |
|
56 | 58 |
sub get_config { |
... | ... | |
338 | 340 |
|
339 | 341 |
my @invoice_ids; |
340 | 342 |
my ($next_dunning_config_id, $customer_id); |
341 |
my $send_email = 0;
|
|
343 |
my ($send_email, $print_invoice) = (0, 0);
|
|
342 | 344 |
|
343 | 345 |
foreach my $row (@{ $rows }) { |
344 | 346 |
push @invoice_ids, $row->{invoice_id}; |
... | ... | |
348 | 350 |
@values = ($row->{next_dunning_config_id}, $row->{invoice_id}); |
349 | 351 |
do_statement($form, $h_update_ar, $q_update_ar, @values); |
350 | 352 |
|
351 |
$send_email |= $row->{email}; |
|
353 |
$send_email |= $row->{email}; |
|
354 |
$print_invoice |= $row->{print_invoice}; |
|
352 | 355 |
|
353 | 356 |
my $next_config_id = conv_i($row->{next_dunning_config_id}); |
354 | 357 |
my $invoice_id = conv_i($row->{invoice_id}); |
... | ... | |
371 | 374 |
$self->print_invoice_for_fees($myconfig, $form, $dunning_id, $dbh); |
372 | 375 |
$self->print_dunning($myconfig, $form, $dunning_id, $dbh); |
373 | 376 |
|
377 |
if ($print_invoice) { |
|
378 |
$self->print_original_invoices($myconfig, $form, $_, $dbh) for @invoice_ids; |
|
379 |
} |
|
374 | 380 |
|
375 | 381 |
if ($send_email) { |
376 | 382 |
$self->send_email($myconfig, $form, $dunning_id, $dbh); |
... | ... | |
1076 | 1082 |
|
1077 | 1083 |
} |
1078 | 1084 |
|
1085 |
sub print_original_invoices { |
|
1086 |
my ($self, $myconfig, $form, $invoice_id) = @_; |
|
1087 |
# get one invoice as object and print to pdf |
|
1088 |
my $invoice = SL::DB::Invoice->new(id => $invoice_id)->load; |
|
1089 |
|
|
1090 |
die "Invalid invoice object" unless ref($invoice) eq 'SL::DB::Invoice'; |
|
1091 |
|
|
1092 |
my $print_form = Form->new(''); |
|
1093 |
$print_form->{type} = 'invoice'; |
|
1094 |
$print_form->{formname} = 'invoice', |
|
1095 |
$print_form->{format} = 'pdf', |
|
1096 |
$print_form->{media} = 'file'; |
|
1097 |
# no language override, should always be the object's language |
|
1098 |
$invoice->flatten_to_form($print_form, format_amounts => 1); |
|
1099 |
$print_form->prepare_for_printing; |
|
1100 |
|
|
1101 |
my $filename = SL::Helper::CreatePDF->create_pdf( |
|
1102 |
template => 'invoice.tex', |
|
1103 |
variables => $print_form, |
|
1104 |
return => 'file_name', |
|
1105 |
); |
|
1106 |
|
|
1107 |
my $spool = $::lx_office_conf{paths}->{spool}; |
|
1108 |
my ($volume, $directory, $file_name) = File::Spec->splitpath($filename); |
|
1109 |
my $full_file_name = File::Spec->catfile($spool, $file_name); |
|
1110 |
|
|
1111 |
move($filename, $full_file_name) or die "The move operation failed: $!"; |
|
1112 |
|
|
1113 |
# form get_formname_translation should use language_id_$i |
|
1114 |
my $saved_reicpient_locale = $form->{recipient_locale}; |
|
1115 |
$form->{recipient_locale} = $invoice->language; |
|
1116 |
|
|
1117 |
push @{ $form->{DUNNING_PDFS} }, $file_name; |
|
1118 |
push @{ $form->{DUNNING_PDFS_EMAIL} }, { 'path' => "${spool}/$file_name", |
|
1119 |
'name' => $form->get_formname_translation('invoice') . "_" . $invoice->invnumber . ".pdf" }; |
|
1120 |
|
|
1121 |
$form->{recipient_locale} = $saved_reicpient_locale; |
|
1122 |
} |
|
1123 |
|
|
1079 | 1124 |
1; |
bin/mozilla/dn.pl | ||
---|---|---|
226 | 226 |
"customer_id" => $form->{"customer_id_$i"}, |
227 | 227 |
"language_id" => $form->{"language_id_$i"}, |
228 | 228 |
"next_dunning_config_id" => $form->{"next_dunning_config_id_$i"}, |
229 |
"print_invoice" => $form->{"include_invoice_$i"}, |
|
229 | 230 |
"email" => $form->{"email_$i"}, }; |
230 | 231 |
} |
231 | 232 |
|
locale/de/all | ||
---|---|---|
1653 | 1653 |
'Include in drop-down menus' => 'In Aufklappmenü aufnehmen', |
1654 | 1654 |
'Include invalid warehouses ' => 'Ungültige Lager berücksichtigen', |
1655 | 1655 |
'Include invoices with direct debit' => 'Inklusive Rechnungen mit Lastschrifteinzug', |
1656 |
'Include original Invoices?' => 'Original-Rechnung hinzufügen?', |
|
1656 | 1657 |
'Includeable in reports' => 'In Berichten anzeigbar', |
1657 | 1658 |
'Included in reports by default' => 'In Berichten standardmäßig enthalten', |
1658 | 1659 |
'Including' => 'Enthaltene', |
templates/webpages/dunning/show_invoices.html | ||
---|---|---|
28 | 28 |
[% L.checkbox_tag('selectall_email', checkall='INPUT[name*=email_]', checked=all_email) %] |
29 | 29 |
<label for="selectall_email">[% 'eMail?' | $T8 %]</label> |
30 | 30 |
</th> |
31 |
<th class="listheading"> |
|
32 |
[% L.checkbox_tag('selectall_include_invoices', checkall='INPUT[name*=include_invoice_]', checked=all_include_invoices) %] |
|
33 |
<label for="selectall_include_invoices">[% 'Include original Invoices?' | $T8 %]</label> |
|
34 |
</th> |
|
31 | 35 |
|
32 | 36 |
<th class="listheading">[% 'Customername' | $T8 %]</th> |
33 | 37 |
<th class="listheading">[% 'Department' | $T8 %]</th> |
... | ... | |
63 | 67 |
|
64 | 68 |
<td><input type="checkbox" name="active_[% loop.count %]" value="1" [% IF row.active %]checked[% END %]></td> |
65 | 69 |
<td><input type="checkbox" name="email_[% loop.count %]" value="1" [% IF row.email %]checked[% END %]></td> |
70 |
<td><input type="checkbox" name="include_invoice_[% loop.count %]" value="1" [% IF row.include_invoices %]checked[% END %]></td> |
|
66 | 71 |
<td><input type="hidden" name="customername_[% loop.count %]" size="6" value="[% HTML.escape(row.customername) %]">[% HTML.escape(row.customername) %]</td> |
67 | 72 |
<td><input type="hidden" name="department_[% loop.count %]" size="6" value="[% HTML.escape(row.departmentname) %]">[% HTML.escape(row.departmentname) %]</td> |
68 | 73 |
<td><input type="hidden" name="language_id_[% loop.count %]" size="6" value="[% HTML.escape(row.language_id) %]">[% HTML.escape(row.language) %]</td> |
Auch abrufbar als: Unified diff
Mahnungen: Optional auch Original-Rechnung hinzufügen