X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FLetter.pm;h=2af59b07d84ebdbf36f86366e98f55d7751d9355;hb=c7241bf7c547d63999898dee7b5dd486e4d122d3;hp=994b3c001f31b3dc1d8db58dbf251b36f7389f2f;hpb=80f544165a03820e9de87c85052eab89729e0328;p=kivitendo-erp.git diff --git a/SL/Controller/Letter.pm b/SL/Controller/Letter.pm index 994b3c001..2af59b07d 100644 --- a/SL/Controller/Letter.pm +++ b/SL/Controller/Letter.pm @@ -3,14 +3,17 @@ package SL::Controller::Letter; use strict; use parent qw(SL::Controller::Base); +use Carp; use POSIX qw(strftime); use SL::Controller::Helper::GetModels; use SL::Controller::Helper::ReportGenerator; +use SL::CT; use SL::DB::Letter; use SL::DB::LetterDraft; use SL::DB::Employee; use SL::Helper::Flash qw(flash); use SL::Helper::CreatePDF; +use SL::Helper::PrintOptions; use SL::Locale::String qw(t8); use SL::IS; use SL::ReportGenerator; @@ -173,12 +176,14 @@ sub action_print_letter { $self->export_letter_to_form($letter); $::form->{formname} = "letter"; - $::form->{format} = "pdf"; + $::form->{type} = "letter"; + $::form->{format} = "pdf"; my $language_saved = $::form->{language_id}; my $greeting_saved = $::form->{greeting}; my $cp_id_saved = $::form->{cp_id}; + $::form->{customer_id} = $self->letter->vc_id; IS->customer_details(\%::myconfig, $::form); if (!$cp_id_saved) { @@ -216,6 +221,9 @@ sub action_print_letter { template => $template_file, variables => $::form, return => 'file_name', + variable_content_types => { + body => 'html', + }, ); my $pdf_file_name; @@ -244,6 +252,7 @@ sub action_print_letter { my $file = IO::File->new($pdf_file_name, 'r') || croak("Cannot open file '$pdf_file_name'"); my $size = -s $pdf_file_name; my $content_type = 'application/pdf'; + $::form->{letternumber} = $self->letter->letternumber; my $attachment_name = $::form->generate_attachment_filename; $attachment_name =~ s:.*//::g; @@ -300,9 +309,9 @@ sub action_delete_drafts { sub _display { my ($self, %params) = @_; - my $letter = $self->letter; + $::request->{layout}->use_javascript("${_}.js") for qw(ckeditor/ckeditor ckeditor/adapters/jquery); - require 'bin/mozilla/io.pl'; + my $letter = $self->letter; $params{title} ||= t8('Edit Letter'); @@ -320,7 +329,12 @@ sub _display { PCF => [ map { key => $_, value => t8(ucfirst $_) }, PAGE_CREATED_FOR_VALUES() ], letter => $letter, employees => $self->all_employees, - print_options => print_options(inline => 1), + print_options => SL::Helper::PrintOptions->get_print_options ( + options => { no_postscript => 1, + no_opendocument => 1, + no_html => 1, + no_queue => 1 }), + ); } @@ -350,7 +364,7 @@ sub prepare_report { obj_link => sub { $self->url_for(action => 'edit', 'letter.id' => $_[0]->id, callback => $self->models->get_callback) } }, letternumber => { text => t8('Letternumber'), sub => sub { $_[0]->letternumber }, obj_link => sub { $self->url_for(action => 'edit', 'letter.id' => $_[0]->id, callback => $self->models->get_callback) } }, - vc_id => { text => t8('Customer'), sub => sub { $_[0]->customer->displayable_name } }, + vc_id => { text => t8('Customer'), sub => sub { SL::DB::Manager::Customer->find_by_or_create(id => $_[0]->vc_id)->displayable_name } }, contact => { text => t8('Contact'), sub => sub { $_[0]->contact ? $_[0]->contact->full_name : '' } }, ); @@ -538,13 +552,7 @@ sub init_models { SL::Controller::Helper::GetModels->new( controller => $self, model => 'Letter', - sorted => { - _default => { - by => 'letternumber', - dir => 1, - }, - %sort_columns, - }, + sorted => \%sort_columns, with_objects => [ 'contact', 'salesman', 'employee' ], ); }