X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/844a541e0d8f59644540413f675e8f07cd154cf6..d8d909892ba302d142df9430786242502fa437fe:/SL/Controller/Order.pm diff --git a/SL/Controller/Order.pm b/SL/Controller/Order.pm index 37ba87cfa..8361ee5a0 100644 --- a/SL/Controller/Order.pm +++ b/SL/Controller/Order.pm @@ -14,6 +14,7 @@ use SL::MIME; use SL::Util qw(trim); use SL::YAML; use SL::DB::AdditionalBillingAddress; +use SL::DB::AuthUser; use SL::DB::History; use SL::DB::Order; use SL::DB::Default; @@ -299,11 +300,11 @@ sub action_print { my $pdf_filename = $form->generate_attachment_filename(); my $pdf; - my @errors = generate_pdf($self->order, \$pdf, { format => $format, - formname => $formname, - language => $self->order->language, - printer_id => $printer_id, - groupitems => $groupitems }); + my @errors = $self->generate_pdf(\$pdf, { format => $format, + formname => $formname, + language => $self->order->language, + printer_id => $printer_id, + groupitems => $groupitems }); if (scalar @errors) { return $self->js->flash('error', t8('Conversion to PDF failed: #1', $errors[0]))->render; } @@ -329,7 +330,7 @@ sub action_print { $self->js->flash('info', t8('The PDF has been printed')); } - my @warnings = store_pdf_to_webdav_and_filemanagement($self->order, $pdf, $pdf_filename); + my @warnings = $self->store_pdf_to_webdav_and_filemanagement($pdf, $pdf_filename); if (scalar @warnings) { $self->js->flash('warning', $_) for @warnings; } @@ -366,10 +367,10 @@ sub action_preview_pdf { my $pdf_filename = $form->generate_attachment_filename(); my $pdf; - my @errors = generate_pdf($self->order, \$pdf, { format => $format, - formname => $formname, - language => $self->order->language, - }); + my @errors = $self->generate_pdf(\$pdf, { format => $format, + formname => $formname, + language => $self->order->language, + }); if (scalar @errors) { return $self->js->flash('error', t8('Conversion to PDF failed: #1', $errors[0]))->render; } @@ -425,13 +426,18 @@ sub action_save_and_show_email_dialog { $email_form->{js_send_function} = 'kivi.Order.send_email()'; my %files = $self->get_files_for_email_dialog(); - $self->{all_employees} = SL::DB::Manager::Employee->get_all(query => [ deleted => 0 ]); + + my @employees_with_email = grep { + my $user = SL::DB::Manager::AuthUser->find_by(login => $_->login); + $user && !!trim($user->get_config_value('email')); + } @{ SL::DB::Manager::Employee->get_all_sorted(query => [ deleted => 0 ]) }; + my $dialog_html = $self->render('common/_send_email_dialog', { output => 0 }, - email_form => $email_form, - show_bcc => $::auth->assert('email_bcc', 'may fail'), - FILES => \%files, - is_customer => $self->cv eq 'customer', - ALL_EMPLOYEES => $self->{all_employees}, + email_form => $email_form, + show_bcc => $::auth->assert('email_bcc', 'may fail'), + FILES => \%files, + is_customer => $self->cv eq 'customer', + ALL_EMPLOYEES => \@employees_with_email, ); $self->js @@ -470,17 +476,17 @@ sub action_send_email { if (($::form->{attachment_policy} // '') !~ m{^(?:old_file|no_file)$}) { my $pdf; - my @errors = generate_pdf($self->order, \$pdf, {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_pdf(\$pdf, {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('Conversion to PDF failed: #1', $errors[0]))->render($self); } - my @warnings = store_pdf_to_webdav_and_filemanagement($self->order, $pdf, $::form->{attachment_filename}); + my @warnings = $self->store_pdf_to_webdav_and_filemanagement($pdf, $::form->{attachment_filename}); if (scalar @warnings) { flash_later('warning', $_) for @warnings; } @@ -1914,8 +1920,8 @@ sub pre_render { $self->get_item_cvpartnumber($_) for @{$self->order->items_sorted}; - $::request->{layout}->use_javascript("${_}.js") for qw(kivi.SalesPurchase kivi.Order kivi.File ckeditor/ckeditor ckeditor/adapters/jquery - edit_periodic_invoices_config calculate_qty kivi.Validator follow_up show_history); + $::request->{layout}->use_javascript("${_}.js") for qw(kivi.Validator kivi.SalesPurchase kivi.Order kivi.File ckeditor/ckeditor ckeditor/adapters/jquery + edit_periodic_invoices_config calculate_qty follow_up show_history); $self->setup_edit_action_bar; } @@ -2066,8 +2072,9 @@ sub setup_edit_action_bar { } sub generate_pdf { - my ($order, $pdf_ref, $params) = @_; + my ($self, $pdf_ref, $params) = @_; + my $order = $self->order; my @errors = (); my $print_form = Form->new(''); @@ -2304,8 +2311,9 @@ sub save_history { } sub store_pdf_to_webdav_and_filemanagement { - my($order, $content, $filename) = @_; + my ($self, $content, $filename) = @_; + my $order = $self->order; my @errors; # copy file to webdav folder