+sub setup_do_action_bar {
+ my @transfer_qty = qw(kivi.SalesPurchase.delivery_order_check_transfer_qty);
+ my @req_trans_desc = qw(kivi.SalesPurchase.check_transaction_description) x!!$::instance_conf->get_require_transaction_description_ps;
+ my $is_customer = $::form->{vc} eq 'customer';
+
+ my $undo_date = DateTime->today->subtract(days => $::instance_conf->get_undo_transfer_interval);
+ my $insertdate = DateTime->from_kivitendo($::form->{insertdate});
+ my $undo_transfer = 0;
+ if (ref $undo_date eq 'DateTime' && ref $insertdate eq 'DateTime') {
+ $undo_transfer = $insertdate > $undo_date;
+ }
+
+ my $may_edit_create = $::auth->assert(SL::DB::DeliveryOrder::TypeData::get3($::form->{type}, "rights", "edit"), 1);
+
+ for my $bar ($::request->layout->get('actionbar')) {
+ $bar->add(
+ action =>
+ [ t8('Update'),
+ submit => [ '#form', { action => "update" } ],
+ disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef,
+ id => 'update_button',
+ accesskey => 'enter',
+ ],
+
+ combobox => [
+ action => [
+ t8('Save'),
+ submit => [ '#form', { action => "save" } ],
+ checks => [ 'kivi.validate_form' ],
+ disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.')
+ : $::form->{delivered} ? t8('This record has already been delivered.')
+ : undef,
+ ],
+ action => [
+ t8('Save as new'),
+ submit => [ '#form', { action => "save_as_new" } ],
+ checks => [ 'kivi.validate_form' ],
+ disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.')
+ : !$::form->{id},
+ ],
+ action => [
+ t8('Mark as closed'),
+ submit => [ '#form', { action => "mark_closed" } ],
+ checks => [ 'kivi.validate_form' ],
+ confirm => t8('This will remove the delivery order from showing as open even if contents are not delivered. Proceed?'),
+ disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.')
+ : !$::form->{id} ? t8('This record has not been saved yet.')
+ : $::form->{closed} ? t8('This record has already been closed.')
+ : undef,
+ ],
+ ], # end of combobox "Save"
+
+ action => [
+ t8('Delete'),
+ submit => [ '#form', { action => "delete" } ],
+ confirm => t8('Do you really want to delete this object?'),
+ disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.')
+ : !$::form->{id} ? t8('This record has not been saved yet.')
+ : $::form->{delivered} ? t8('This record has already been delivered.')
+ : ($::form->{vc} eq 'customer' && !$::instance_conf->get_sales_delivery_order_show_delete) ? t8('Deleting this type of record has been disabled in the configuration.')
+ : ($::form->{vc} eq 'vendor' && !$::instance_conf->get_purchase_delivery_order_show_delete) ? t8('Deleting this type of record has been disabled in the configuration.')
+ : undef,
+ ],
+
+ combobox => [
+ action => [
+ t8('Transfer out'),
+ submit => [ '#form', { action => "transfer_out" } ],
+ checks => [ 'kivi.validate_form', @transfer_qty ],
+ disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.')
+ : $::form->{delivered} ? t8('This record has already been delivered.')
+ : undef,
+ only_if => $is_customer,
+ ],
+ action => [
+ t8('Transfer out via default'),
+ submit => [ '#form', { action => "transfer_out_default" } ],
+ checks => [ 'kivi.validate_form' ],
+ disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.')
+ : $::form->{delivered} ? t8('This record has already been delivered.')
+ : undef,
+ only_if => $is_customer && $::instance_conf->get_transfer_default,
+ ],
+ action => [
+ t8('Transfer in'),
+ submit => [ '#form', { action => "transfer_in" } ],
+ checks => [ 'kivi.validate_form', @transfer_qty ],
+ disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.')
+ : $::form->{delivered} ? t8('This record has already been delivered.')
+ : undef,
+ only_if => !$is_customer,
+ ],
+ action => [
+ t8('Transfer in via default'),
+ submit => [ '#form', { action => "transfer_in_default" } ],
+ checks => [ 'kivi.validate_form' ],
+ disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.')
+ : $::form->{delivered} ? t8('This record has already been delivered.')
+ : undef,
+ only_if => !$is_customer && $::instance_conf->get_transfer_default,
+ ],
+ action => [
+ t8('Undo Transfer'),
+ submit => [ '#form', { action => "delete_transfers" } ],
+ checks => [ 'kivi.validate_form' ],
+ only_if => $::form->{delivered},
+ disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.')
+ : !$undo_transfer ? t8('Transfer date exceeds the maximum allowed interval.')
+ : undef,
+ ],
+ ], # end of combobox "Transfer out"
+
+
+ 'separator',
+
+ action => [
+ t8('Invoice'),
+ submit => [ '#form', { action => "invoice" } ],
+ disabled => !$::form->{id} ? t8('This record has not been saved yet.') : undef,
+ confirm => $::form->{delivered} ? undef
+ : ($::form->{vc} eq 'customer' && $::instance_conf->get_sales_delivery_order_check_stocked) ? t8('This record has not been stocked out. Proceed?')
+ : ($::form->{vc} eq 'vendor' && $::instance_conf->get_purchase_delivery_order_check_stocked) ? t8('This record has not been stocked in. Proceed?')
+ : undef,
+ ],
+
+ combobox => [
+ action => [ t8('Export') ],
+ action => [
+ t8('Print'),
+ call => [ 'kivi.SalesPurchase.show_print_dialog' ],
+ checks => [ 'kivi.validate_form' ],
+ disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef,
+ ],
+ action => [
+ t8('E Mail'),
+ call => [ 'kivi.SalesPurchase.show_email_dialog' ],
+ checks => [ 'kivi.validate_form' ],
+ disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.')
+ : !$::form->{id} ? t8('This record has not been saved yet.')
+ : undef,
+ ],
+ ], # end of combobox "Export"
+
+ combobox => [
+ action => [ t8('more') ],
+ action => [
+ t8('History'),
+ call => [ 'set_history_window', $::form->{id} * 1, 'id' ],
+ disabled => !$::form->{id} ? t8('This record has not been saved yet.') : undef,
+ ],
+ action => [
+ t8('Follow-Up'),
+ call => [ 'follow_up_window' ],
+ disabled => !$::form->{id} ? t8('This record has not been saved yet.') : undef,
+ ],
+ ], # end if combobox "more"
+ );
+ }
+ $::request->layout->add_javascripts('kivi.Validator.js');
+}
+
+sub setup_do_search_action_bar {
+ my %params = @_;
+
+ for my $bar ($::request->layout->get('actionbar')) {
+ $bar->add(
+ action => [
+ t8('Search'),
+ submit => [ '#form' ],
+ accesskey => 'enter',
+ checks => [ 'kivi.validate_form' ],
+ ],
+ );
+ }
+ $::request->layout->add_javascripts('kivi.Validator.js');
+}
+
+sub setup_do_orders_action_bar {
+ my %params = @_;
+
+ for my $bar ($::request->layout->get('actionbar')) {
+ $bar->add(
+ action => [
+ t8('New invoice'),
+ submit => [ '#form', { action => 'invoice_multi' } ],
+ checks => [ [ 'kivi.check_if_entries_selected', '#form tbody input[type=checkbox]' ] ],
+ accesskey => 'enter',
+ ],
+ action => [
+ t8('Print'),
+ call => [ 'kivi.SalesPurchase.show_print_dialog', 'js:kivi.MassDeliveryOrderPrint.submitMultiOrders' ],
+ checks => [ [ 'kivi.check_if_entries_selected', '#form tbody input[type=checkbox]' ] ],
+ ],
+ );
+ }
+}
+