Kundenstatistik: erster commit ohne Webtemplates
[kivitendo-erp.git] / bin / mozilla / ap.pl
index f2e3598..53dd785 100644 (file)
@@ -307,7 +307,7 @@ sub create_links {
 
   $form->{$_}        = $saved{$_} for keys %saved;
   $form->{rowcount}  = 1;
-  $form->{AP_chart_id} = $form->{acc_trans} && $form->{acc_trans}->{AP} ? $form->{acc_trans}->{AP}->[0]->{chart_id} : $form->{AP_links}->{AP}->[0]->{chart_id};
+  $form->{AP_chart_id} = $form->{acc_trans} && $form->{acc_trans}->{AP} ? $form->{acc_trans}->{AP}->[0]->{chart_id} : $::instance_conf->get_ap_chart_id || $form->{AP_links}->{AP}->[0]->{chart_id};
 
   # build the popup menus
   $form->{taxincluded} = ($form->{id}) ? $form->{taxincluded} : "checked";
@@ -1168,10 +1168,12 @@ sub setup_ap_search_action_bar {
       action => [
         $::locale->text('Search'),
         submit    => [ '#form', { action => "ap_transactions" } ],
+        checks    => [ 'kivi.validate_form' ],
         accesskey => 'enter',
       ],
     );
   }
+  $::request->layout->add_javascripts('kivi.Validator.js');
 }
 
 sub setup_ap_transactions_action_bar {
@@ -1205,12 +1207,20 @@ sub setup_ap_display_form_action_bar {
   my $is_storno               = IS->is_storno(\%::myconfig, $::form, 'ap', $::form->{id});
   my $has_storno              = IS->has_storno(\%::myconfig, $::form, 'ap');
 
+  my $has_sepa_exports;
+
+  if ($::form->{id}) {
+    my $invoice = SL::DB::Manager::PurchaseInvoice->find_by(id => $::form->{id});
+    $has_sepa_exports = 1 if ($invoice->find_sepa_export_items()->[0]);
+  }
+
   for my $bar ($::request->layout->get('actionbar')) {
     $bar->add(
       action => [
         t8('Update'),
         submit    => [ '#form', { action => "update" } ],
         id        => 'update_button',
+        checks    => [ 'kivi.validate_form' ],
         accesskey => 'enter',
       ],
 
@@ -1218,7 +1228,7 @@ sub setup_ap_display_form_action_bar {
         action => [
           t8('Post'),
           submit   => [ '#form', { action => "post" } ],
-          checks   => [ 'kivi.AP.check_fields_before_posting' ],
+          checks   => [ 'kivi.validate_form', 'kivi.AP.check_fields_before_posting', 'kivi.AP.check_duplicate_invnumber' ],
           disabled => $is_closed                                  ? t8('The billing period has already been locked.')
                     : $is_storno                                  ? t8('A canceled invoice cannot be posted.')
                     : ($::form->{id} && $change_never)            ? t8('Changing invoices has been disabled in the configuration.')
@@ -1228,6 +1238,7 @@ sub setup_ap_display_form_action_bar {
         action => [
           t8('Post Payment'),
           submit   => [ '#form', { action => "post_payment" } ],
+          checks   => [ 'kivi.validate_form' ],
           disabled => !$::form->{id} ? t8('This invoice has not been posted yet.') : undef,
         ],
         action => [ t8('Mark as paid'),
@@ -1241,12 +1252,13 @@ sub setup_ap_display_form_action_bar {
       combobox => [
         action => [ t8('Storno'),
           submit   => [ '#form', { action => "storno" } ],
-          checks   => [ 'kivi.AP.check_fields_before_posting' ],
+          checks   => [ 'kivi.validate_form', 'kivi.AP.check_fields_before_posting' ],
           confirm  => t8('Do you really want to cancel this invoice?'),
           disabled => !$::form->{id}         ? t8('This invoice has not been posted yet.')
                       : $has_storno          ? t8('This invoice has been canceled already.')
                       : $is_storno           ? t8('Reversal invoices cannot be canceled.')
                       : $::form->{totalpaid} ? t8('Invoices with payments cannot be canceled.')
+                      : $has_sepa_exports    ? t8('This invoice has been linked with a sepa export, undo this first.')
                       :                        undef,
         ],
         action => [ t8('Delete'),
@@ -1257,6 +1269,7 @@ sub setup_ap_display_form_action_bar {
                     : $change_on_same_day_only ? t8('Invoices can only be changed on the day they are posted.')
                     : $has_storno              ? t8('This invoice has been canceled already.')
                     : $is_closed               ? t8('The billing period has already been locked.')
+                    : $has_sepa_exports        ? t8('This invoice has been linked with a sepa export, undo this first.')
                     :                            undef,
         ],
       ], # end of combobox "Storno"
@@ -1268,6 +1281,7 @@ sub setup_ap_display_form_action_bar {
         action => [
           t8('Use As New'),
           submit   => [ '#form', { action => "use_as_new" } ],
+          checks   => [ 'kivi.validate_form' ],
           disabled => !$::form->{id} ? t8('This invoice has not been posted yet.') : undef,
         ],
       ], # end of combobox "Workflow"
@@ -1298,4 +1312,5 @@ sub setup_ap_display_form_action_bar {
       ], # end of combobox "more"
     );
   }
+  $::request->layout->add_javascripts('kivi.Validator.js');
 }