Auftrags-Controller: Funktion "Speichern und Lieferschein".
[kivitendo-erp.git] / SL / Controller / Order.pm
index 17e1d7d..8c3ca54 100644 (file)
@@ -36,7 +36,7 @@ use Rose::Object::MakeMethods::Generic
 __PACKAGE__->run_before('_check_auth');
 
 __PACKAGE__->run_before('_recalc',
-                        only => [ qw(edit update save create_pdf send_email) ]);
+                        only => [ qw(edit update save save_and_delivery_order create_pdf send_email) ]);
 
 
 #
@@ -212,6 +212,29 @@ sub action_send_email {
       ->render($self);
 }
 
+sub action_save_and_delivery_order {
+  my ($self) = @_;
+
+  my $errors = $self->_save();
+
+  if (scalar @{ $errors }) {
+    $self->js->flash('error', $_) foreach @{ $errors };
+    return $self->js->render($self);
+  }
+
+  my $delivery_order = $self->order->convert_to_delivery_order($self->order);
+
+  flash_later('info', $::locale->text('The order has been saved'));
+  my @redirect_params = (
+    controller => 'do.pl',
+    action     => 'edit',
+    type       => $delivery_order->type,
+    id         => $delivery_order->id,
+    vc         => $delivery_order->is_sales ? 'customer' : 'vendor',
+  );
+
+  $self->redirect_to(@redirect_params);
+}
 
 sub action_customer_vendor_changed {
   my ($self) = @_;