]> wagnertech.de Git - mfinanz.git/blobdiff - bin/mozilla/do.pl
ActionBar: existierende Inputs namens »action« vor Submit entfernen
[mfinanz.git] / bin / mozilla / do.pl
index 437e9e2f6efef25073cc57aaa456ffb000c38640..d4e312365e2c564626437ee16312cd550478bb29 100644 (file)
@@ -236,6 +236,149 @@ sub prepare_order {
   $main::lxdebug->leave_sub();
 }
 
+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;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      action =>
+        [ t8('Update'),
+          submit    => [ '#form', { action => "update" } ],
+          accesskey => 'enter',
+        ],
+
+      combobox => [
+        action => [
+          t8('Save'),
+          submit   => [ '#form', { action => "save" } ],
+          checks   => [ @req_trans_desc ],
+          disabled => $::form->{delivered} ? t8('This record has already been delivered.') : undef,
+        ],
+        action => [
+          t8('Save as new'),
+          submit   => [ '#form', { action => "save_as_new" } ],
+          checks   => [ @req_trans_desc ],
+          disabled => !$::form->{id},
+        ],
+        action => [
+          t8('Mark as closed'),
+          submit   => [ '#form', { action => "mark_closed" } ],
+          checks   => [ @req_trans_desc ],
+          confirm  => t8('This will remove the delivery order from showing as open even if contents are not delivered. Proceed?'),
+          disabled => !$::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 => !$::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   => [ @req_trans_desc, @transfer_qty ],
+          disabled => $::form->{delivered} ? t8('This record has already been delivered.') : undef,
+        ]) x ($::form->{vc} eq 'customer'),
+        (action => [
+          t8('Transfer out via default'),
+          submit   => [ '#form', { action => "transfer_out_default" } ],
+          checks   => [ @req_trans_desc, @transfer_qty ],
+          disabled => $::form->{delivered} ? t8('This record has already been delivered.') : undef,
+        ]) x ($::form->{vc} eq 'customer' && $::instance_conf->get_transfer_default),
+        (action => [
+          t8('Transfer in'),
+          submit   => [ '#form', { action => "transfer_in"> 1 } ],
+          checks   => [ @req_trans_desc, @transfer_qty ],
+          disabled => $::form->{delivered} ? t8('This record has already been delivered.') : undef,
+        ]) x ($::form->{vc} eq 'vendor'),
+        (action => [
+          t8('Transfer in via default'),
+          submit   => [ '#form', { action => "transfer_in_default" } ],
+          checks   => [ @req_trans_desc, @transfer_qty ],
+          disabled => $::form->{delivered} ? t8('This record has already been delivered.') : undef,
+        ]) x ($::form->{vc} eq 'vendor' && $::instance_conf->get_transfer_default),
+      ], # 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,
+      ],
+
+      combobox => [
+        action => [ t8('Export') ],
+        action => [
+          t8('Print'),
+          submit => [ '#form', { action => "print" } ],
+          checks => [ @req_trans_desc ],
+        ],
+        action => [
+          t8('E Mail'),
+          call   => [ 'kivi.SalesPurchase.show_email_dialog' ],
+          checks => [ @req_trans_desc ],
+        ],
+      ], # 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"
+    );
+  }
+}
+
+sub setup_do_search_action_bar {
+  my %params = @_;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      action => [
+        t8('Search'),
+        submit    => [ '#form' ],
+        accesskey => 'enter',
+      ],
+    );
+  }
+}
+
+sub setup_do_orders_action_bar {
+  my %params = @_;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      action => [
+        t8('New invoice'),
+        submit    => [ '#orders_form' ],
+        checks    => [ 'kivi.DeliveryOrder.multi_invoice_check_delivery_orders_selected' ],
+        accesskey => 'enter',
+      ],
+    );
+  }
+}
+
 sub form_header {
   $main::lxdebug->enter_sub();
 
@@ -309,6 +452,8 @@ sub form_header {
 
   $::form->{HIDDENS} = [ map { +{ name => $_, value => $::form->{$_} } } (@custom_hidden) ];
 
+  setup_do_action_bar();
+
   $form->header();
   # Fix für Bug 1082 Erwartet wird: 'abteilungsNAME--abteilungsID'
   # und Erweiterung für Bug 1760:
@@ -334,7 +479,7 @@ sub form_footer {
 
   my $form     = $main::form;
 
-  $form->{PRINT_OPTIONS} = print_options('inline' => 1);
+  $form->{PRINT_OPTIONS}      = setup_sales_purchase_print_options();
   $form->{ALL_DELIVERY_TERMS} = SL::DB::Manager::DeliveryTerm->get_all_sorted();
 
   print $form->parse_html_template('do/form_footer',
@@ -490,6 +635,8 @@ sub search {
   $form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all;
   $form->{title}             = $locale->text('Delivery Orders');
 
+  setup_do_search_action_bar();
+
   $form->header();
 
   print $form->parse_html_template('do/search');
@@ -691,7 +838,11 @@ sub orders {
     $idx++;
   }
 
-  $report->generate_with_headers();
+  $::request->layout->add_javascripts('kivi.DeliveryOrder.js');
+
+  setup_do_orders_action_bar();
+
+  $report->generate_with_headers(action_bar => 1);
 
   $main::lxdebug->leave_sub();
 }
@@ -1026,26 +1177,6 @@ sub save_as_new {
   $main::lxdebug->leave_sub();
 }
 
-sub e_mail {
-  $main::lxdebug->enter_sub();
-
-  check_do_access();
-
-  $::form->mtime_ischanged('delivery_orders','mail');
-
-  $::form->{print_and_save} = 1;
-
-  my $saved_form = save_form();
-
-  save();
-
-  restore_form($saved_form, 0, qw(id ordnumber quonumber));
-
-  edit_e_mail();
-
-  $main::lxdebug->leave_sub();
-}
-
 sub calculate_stock_in_out {
   $main::lxdebug->enter_sub();
 
@@ -1585,7 +1716,7 @@ sub dispatcher {
   my $form     = $main::form;
   my $locale   = $main::locale;
 
-  foreach my $action (qw(update ship_to print e_mail save transfer_out transfer_out_default sort
+  foreach my $action (qw(update print save transfer_out transfer_out_default sort
                          transfer_in transfer_in_default mark_closed save_as_new invoice delete)) {
     if ($form->{"action_${action}"}) {
       call_sub($action);