X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FOrder.pm;h=48bfe07816b0d89dc61d80a1b38840e58c421284;hb=47b5e5c83df21577bbfd56d313acbbcf99b8588e;hp=56733d92845a5557ab83930054ac80e66e83a093;hpb=112f0cbbeb48e0a7ab4766754ab3f53501536f55;p=kivitendo-erp.git diff --git a/SL/Controller/Order.pm b/SL/Controller/Order.pm index 56733d928..48bfe0781 100644 --- a/SL/Controller/Order.pm +++ b/SL/Controller/Order.pm @@ -350,9 +350,16 @@ sub action_print { } # open the email dialog -sub action_show_email_dialog { +sub action_save_and_show_email_dialog { my ($self) = @_; + my $errors = $self->save(); + + if (scalar @{ $errors }) { + $self->js->flash('error', $_) foreach @{ $errors }; + return $self->js->render(); + } + my $cv_method = $self->cv; if (!$self->order->$cv_method) { @@ -369,11 +376,11 @@ sub action_show_email_dialog { my $form = Form->new; $form->{$self->nr_key()} = $self->order->number; + $form->{cusordnumber} = $self->order->cusordnumber; $form->{formname} = $self->type; $form->{type} = $self->type; $form->{language} = '_' . $self->order->language->template_code if $self->order->language; $form->{language_id} = $self->order->language->id if $self->order->language; - $form->{cusordnumber} = $self->order->cusordnumber; $form->{format} = 'pdf'; $email_form->{subject} = $form->generate_email_subject(); @@ -445,6 +452,7 @@ sub action_send_email { $::form->{tmpdir} = $sfile->get_path; # for Form::cleanup which may be called in Form::send_email } + $::form->{id} = $self->order->id; # this is used in SL::Mailer to create a linked record to the mail $::form->send_email(\%::myconfig, 'pdf'); # internal notes @@ -460,11 +468,15 @@ sub action_send_email { $self->order->update_attributes(intnotes => $intnotes); - $self->js - ->val('#order_intnotes', $intnotes) - ->run('kivi.Order.close_email_dialog') - ->flash('info', t8('The email has been sent.')) - ->render($self); + flash_later('info', t8('The email has been sent.')); + + my @redirect_params = ( + action => 'edit', + type => $self->type, + id => $self->order->id, + ); + + $self->redirect_to(@redirect_params); } # open the periodic invoices config dialog @@ -1803,7 +1815,7 @@ 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); + edit_periodic_invoices_config calculate_qty kivi.Validator follow_up); $self->setup_edit_action_bar; } @@ -1877,7 +1889,8 @@ sub setup_edit_action_bar { ], action => [ t8('Save and E-mail'), - call => [ 'kivi.Order.email', $::instance_conf->get_order_warn_duplicate_parts ], + call => [ 'kivi.Order.save', 'save_and_show_email_dialog', $::instance_conf->get_order_warn_duplicate_parts ], + disabled => !$self->order->id ? t8('This object has not been saved yet.') : undef, ], action => [ t8('Download attachments of all parts'), @@ -1894,6 +1907,18 @@ sub setup_edit_action_bar { disabled => !$self->order->id ? t8('This object has not been saved yet.') : undef, only_if => $deletion_allowed, ], + + combobox => [ + action => [ + t8('more') + ], + action => [ + t8('Follow-Up'), + call => [ 'kivi.Order.follow_up_window' ], + disabled => !$self->order->id ? t8('This object has not been saved yet.') : undef, + only_if => $::auth->assert('productivity', 1), + ], + ], # end of combobox "more" ); } }