X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/112f0cbbeb48e0a7ab4766754ab3f53501536f55..72abd969e20421aaa76fa6bd675c261ffcf1863c:/SL/Controller/Order.pm diff --git a/SL/Controller/Order.pm b/SL/Controller/Order.pm index 56733d928..bef36317e 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 @@ -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'),