use SL::DB::Letter;
use SL::DB::LetterDraft;
use SL::DB::Printer;
+use SL::File;
use SL::Helper::Flash qw(flash flash_later);
use SL::Helper::CreatePDF;
use SL::Helper::PrintOptions;
my ($self, %params) = @_;
if (!$self->letter->delete) {
- flash('error', t8('An error occured. Letter could not be deleted.'));
+ flash('error', t8('An error occurred. Letter could not be deleted.'));
return $self->action_update;
}
sub action_print_letter {
my ($self, %params) = @_;
- my $display_form = $::form->{display_form} || "display_form";
- my $letter = $self->_update;
+ my $letter = $self->_update;
my ($template_file, @template_files) = SL::Helper::CreatePDF->find_template(
name => 'letter',
letter => $letter,
template_meta => {
formname => 'letter',
- language => SL::DB::Language->new,
+ language => SL::DB::Manager::Language->find_by_or_create(id => $::form->{language_id}*1),
extension => 'pdf',
format => $::form->{format},
media => $::form->{media},
$webdav_file->store(file => $result{file_name});
}
+ if ($::instance_conf->get_doc_storage) {
+ my %save_params = (object_id => $letter->id,
+ object_type => 'letter',
+ mime_type => 'application/pdf',
+ source => 'created',
+ file_type => 'document',
+ file_name => $attachment_name,
+ file_path => $result{file_name});
+ SL::File->save(%save_params);
+ }
+
# set some form defaults for printing webdav copy variables
if ( $::form->{media} eq 'email') {
my $mail = Mailer->new;
sub _display {
my ($self, %params) = @_;
- $::request->{layout}->use_javascript("${_}.js") for qw(ckeditor/ckeditor ckeditor/adapters/jquery kivi.Letter);
+ $::request->{layout}->use_javascript("${_}.js") for qw(ckeditor/ckeditor ckeditor/adapters/jquery kivi.Letter kivi.SalesPurchase kivi.File);
my $letter = $self->letter;
my %column_defs = (
date => { text => t8('Date'), sub => sub { $_[0]->date_as_date } },
subject => { text => t8('Subject'), sub => sub { $_[0]->subject },
- obj_link => sub { $self->url_for(action => 'edit', 'letter.id' => $_[0]->id, callback => $self->models->get_callback) } },
+ obj_link => sub { $self->url_for(action => 'edit', 'letter.id' => $_[0]->id, is_sales => $self->is_sales, 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) } },
+ obj_link => sub { $self->url_for(action => 'edit', 'letter.id' => $_[0]->id, is_sales => $self->is_sales, callback => $self->models->get_callback) } },
customer_id => { text => t8('Customer'), sub => sub { SL::DB::Manager::Customer->find_by_or_create(id => $_[0]->customer_id)->displayable_name }, visible => $self->is_sales },
vendor_id => { text => t8('Vendor'), sub => sub { SL::DB::Manager::Vendor->find_by_or_create(id => $_[0]->vendor_id)->displayable_name }, visible => !$self->is_sales},
contact => { text => t8('Contact'), sub => sub { $_[0]->contact ? $_[0]->contact->full_name : '' } },
$letter->greeting(t8('Dear Sir or Madam,'));
}
-sub export_letter_to_form {
- my ($self, $letter) = @_;
- # nope, not pretty.
-
- $letter ||= $self->letter;
-
- for ($letter->meta->columns) {
- if ((ref $_) =~ /Date/i) {
- $::form->{$_->name} = $letter->$_->to_kivitendo;
- } else {
- $::form->{$_->name} = $letter->$_;
- }
- }
-}
-
sub init_letter {
my ($self) = @_;
}
sub check_auth_edit {
- $::form->{is_sales} ? $::auth->assert('sales_letter_edit')
- : $::auth->assert('purchase_letter_edit');
+ $_[0]->is_sales ? $::auth->assert('sales_letter_edit')
+ : $::auth->assert('purchase_letter_edit');
}
sub check_auth_report {
- $::form->{is_sales} ? $::auth->assert('sales_letter_report')
- : $::auth->assert('purchase_letter_report');
+ $_[0]->is_sales ? $::auth->assert('sales_letter_report')
+ : $::auth->assert('purchase_letter_report');
}
sub setup_load_letter_draft_action_bar {