$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 $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},
);
$self->js
if ($::form->{customer_id}) {
$::form->{ALL_CONTACTS} = SL::DB::Manager::Contact->get_all_sorted(where => [ cp_cv_id => $::form->{customer_id} ]);
- $::form->{email_recipient_invoice_address} = SL::DB::Manager::Customer->find_by(id => $::form->{customer_id})->invoice_mail;
+ my $customer_object = SL::DB::Manager::Customer->find_by(id => $::form->{customer_id});
+ $::form->{postal_invoice} = $customer_object->postal_invoice;
+ $::form->{email_recipient_invoice_address} = $::form->{postal_invoice} ? '' : $customer_object->invoice_mail;
+ $config->send_email(0) if $::form->{postal_invoice};
}
$self->render('oe/edit_periodic_invoices_config', { layout => 0 },
}
if (any { $self->type eq $_ } (sales_order_type(), purchase_order_type())) {
- # calculate shipped qtys here to prevent calling calculate for every item via the items method
- SL::Helper::ShippedQty->new->calculate($self->order)->write_to_objects;
+ # Calculate shipped qtys here to prevent calling calculate for every item via the items method.
+ # Do not use write_to_objects to prevent order->delivered to be set, because this should be
+ # the value from db, which can be set manually or is set when linked delivery orders are saved.
+ SL::Helper::ShippedQty->new->calculate($self->order)->write_to(\@{$self->order->items});
}
if ($self->order->number && $::instance_conf->get_webdav) {
],
action => [
t8('Save and print'),
- call => [ 'kivi.Order.show_print_options', $::instance_conf->get_order_warn_duplicate_parts ],
+ call => [ 'kivi.Order.show_print_options', $::instance_conf->get_order_warn_duplicate_parts,
+ $::instance_conf->get_order_warn_no_deliverydate,
+ ],
],
action => [
t8('Save and E-mail'),
id => 'save_and_email_action',
- call => [ 'kivi.Order.save', 'save_and_show_email_dialog', $::instance_conf->get_order_warn_duplicate_parts ],
+ call => [ 'kivi.Order.save', 'save_and_show_email_dialog', $::instance_conf->get_order_warn_duplicate_parts,
+ $::instance_conf->get_order_warn_no_deliverydate,
+ ],
disabled => !$self->order->id ? t8('This object has not been saved yet.') : undef,
],
action => [