X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/5c0d66f1bac1c81ba16077a27f17508bc8bf2375..38bb9635fde8c2821c23da931bcb6acba8e4b8be:/SL/Controller/Order.pm diff --git a/SL/Controller/Order.pm b/SL/Controller/Order.pm index ea92d4be9..15df1582a 100644 --- a/SL/Controller/Order.pm +++ b/SL/Controller/Order.pm @@ -69,9 +69,14 @@ sub action_add { my ($self) = @_; $self->order->transdate(DateTime->now_local()); - my $extra_days = $self->{type} eq 'sales_quotation' ? $::instance_conf->get_reqdate_interval : - $self->{type} eq 'sales_order' ? $::instance_conf->get_delivery_date_interval : 1; - $self->order->reqdate(DateTime->today_local->next_workday(extra_days => $extra_days)) if !$self->order->reqdate; + my $extra_days = $self->type eq sales_quotation_type() ? $::instance_conf->get_reqdate_interval : + $self->type eq sales_order_type() ? $::instance_conf->get_delivery_date_interval : 1; + + if ( ($self->type eq sales_order_type() && $::instance_conf->get_deliverydate_on) + || ($self->type eq sales_quotation_type() && $::instance_conf->get_reqdate_on) + && (!$self->order->reqdate)) { + $self->order->reqdate(DateTime->today_local->next_workday(extra_days => $extra_days)); + } $self->pre_render(); @@ -220,11 +225,17 @@ sub action_save_as_new { ? DateTime->today_local : $order->transdate; - # Set new reqdate unless changed + # Set new reqdate unless changed if it is enabled in client config if ($order->reqdate == $saved_order->reqdate) { - my $extra_days = $self->{type} eq 'sales_quotation' ? $::instance_conf->get_reqdate_interval : - $self->{type} eq 'sales_order' ? $::instance_conf->get_delivery_date_interval : 1; - $new_attrs{reqdate} = DateTime->today_local->next_workday(extra_days => $extra_days); + my $extra_days = $self->type eq sales_quotation_type() ? $::instance_conf->get_reqdate_interval : + $self->type eq sales_order_type() ? $::instance_conf->get_delivery_date_interval : 1; + + if ( ($self->type eq sales_order_type() && !$::instance_conf->get_deliverydate_on) + || ($self->type eq sales_quotation_type() && !$::instance_conf->get_reqdate_on)) { + $new_attrs{reqdate} = ''; + } else { + $new_attrs{reqdate} = DateTime->today_local->next_workday(extra_days => $extra_days); + } } else { $new_attrs{reqdate} = $order->reqdate; } @@ -316,7 +327,7 @@ sub action_print { $self->js->flash('info', t8('The PDF has been printed')); } - my @warnings = store_pdf_to_webdav_and_filemanegement($self->order, $pdf, $pdf_filename); + my @warnings = store_pdf_to_webdav_and_filemanagement($self->order, $pdf, $pdf_filename); if (scalar @warnings) { $self->js->flash('warning', $_) for @warnings; } @@ -361,6 +372,7 @@ sub action_save_and_show_email_dialog { $form->{language} = '_' . $self->order->language->template_code if $self->order->language; $form->{language_id} = $self->order->language->id if $self->order->language; $form->{format} = 'pdf'; + $form->{cp_id} = $self->order->contact->cp_id if $self->order->contact; $email_form->{subject} = $form->generate_email_subject(); $email_form->{attachment_filename} = $form->generate_attachment_filename(); @@ -421,7 +433,7 @@ sub action_send_email { return $self->js->flash('error', t8('Conversion to PDF failed: #1', $errors[0]))->render($self); } - my @warnings = store_pdf_to_webdav_and_filemanegement($self->order, $pdf, $::form->{attachment_filename}); + my @warnings = store_pdf_to_webdav_and_filemanagement($self->order, $pdf, $::form->{attachment_filename}); if (scalar @warnings) { flash_later('warning', $_) for @warnings; } @@ -2118,7 +2130,7 @@ sub save_history { )->save; } -sub store_pdf_to_webdav_and_filemanegement { +sub store_pdf_to_webdav_and_filemanagement { my($order, $content, $filename) = @_; my @errors;