$self->js->flash('info', t8('The document has been printed.'));
}
- my @warnings = $self->store_doc_to_webdav_and_filemanagement($doc, $doc_filename);
+ my @warnings = $self->store_doc_to_webdav_and_filemanagement($doc, $doc_filename, $formname);
if (scalar @warnings) {
$self->js->flash('warning', $_) for @warnings;
}
# Is an old file version available?
my $attfile;
if ($::form->{attachment_policy} eq 'old_file') {
- $attfile = SL::File->get_all(object_id => $self->order->id,
- object_type => $::form->{formname},
- file_type => 'document');
+ $attfile = SL::File->get_all(object_id => $self->order->id,
+ object_type => $self->type,
+ file_type => 'document',
+ print_variant => $::form->{formname});
}
if ($::form->{attachment_policy} ne 'no_file' && !($::form->{attachment_policy} eq 'old_file' && $attfile)) {
my $doc;
- my @errors = $self->generate_pdf(\$doc, {media => $::form->{media},
- format => $::form->{print_options}->{format},
- formname => $::form->{print_options}->{formname},
- language => $self->order->language,
- printer_id => $::form->{print_options}->{printer_id},
- groupitems => $::form->{print_options}->{groupitems}});
+ my @errors = $self->generate_doc(\$doc, {media => $::form->{media},
+ format => $::form->{print_options}->{format},
+ formname => $::form->{print_options}->{formname},
+ language => $self->order->language,
+ printer_id => $::form->{print_options}->{printer_id},
+ groupitems => $::form->{print_options}->{groupitems}});
if (scalar @errors) {
return $self->js->flash('error', t8('Generating the document failed: #1', $errors[0]))->render($self);
}
- my @warnings = $self->store_doc_to_webdav_and_filemanagement($doc, $::form->{attachment_filename});
+ my @warnings = $self->store_doc_to_webdav_and_filemanagement($doc, $::form->{attachment_filename}, $::form->{formname});
if (scalar @warnings) {
flash_later('warning', $_) for @warnings;
}
$details{payment_terms} = $cv->payment->description if $cv->payment;
$details{pricegroup} = $cv->pricegroup->pricegroup if $is_customer && $cv->pricegroup;
- foreach my $entry (@{ $cv->additional_billing_addresses }) {
- push @{ $details{ADDITIONAL_BILLING_ADDRESSES} }, { map { $_ => $entry->$_ } @{$entry->meta->columns} };
+ if ($is_customer) {
+ foreach my $entry (@{ $cv->additional_billing_addresses }) {
+ push @{ $details{ADDITIONAL_BILLING_ADDRESSES} }, { map { $_ => $entry->$_ } @{$entry->meta->columns} };
+ }
}
foreach my $entry (@{ $cv->shipto }) {
push @{ $details{SHIPTO} }, { map { $_ => $entry->$_ } @{$entry->meta->columns} };
sub build_billing_address_select {
my ($self) = @_;
+ return '' if $self->cv ne 'customer';
+
select_tag('order.billing_address_id',
[ {displayable_id => '', id => ''}, $self->order->{$self->cv}->additional_billing_addresses ],
value_key => 'id',
}
sub store_doc_to_webdav_and_filemanagement {
- my ($self, $content, $filename) = @_;
+ my ($self, $content, $filename, $variant) = @_;
my $order = $self->order;
my @errors;
source => 'created',
file_type => 'document',
file_name => $filename,
- file_contents => $content);
+ file_contents => $content,
+ print_variant => $variant);
1;
} or do {
push @errors, t8('Storing the document in the storage backend failed: #1', $@);