ActionBar: Verwendung bei »System« → »Historiensuchmaschine«
[kivitendo-erp.git] / bin / mozilla / ap.pl
index cc8f4d4..802e52a 100644 (file)
@@ -266,7 +266,6 @@ sub display_form {
       type     => 'accounts_payable',
       number   => $form->{invnumber},
     );
-    my $webdav_path = $webdav->webdav_path;
     my @all_objects = $webdav->get_all_objects;
     @{ $form->{WEBDAV} } = map { { name => $_->filename,
                                    type => t8('File'),
@@ -436,6 +435,11 @@ sub form_header {
   my $transdate = $::form->{transdate} ? DateTime->from_kivitendo($::form->{transdate}) : DateTime->today_local;
   my $first_taxchart;
 
+  # $form->{totalpaid} is used by the action bar setup to determine
+  # whether or not canceling is allowed. Therefore it must be
+  # calculated prior to the action bar setup.
+  $form->{totalpaid} = sum map { $form->{"paid_${_}"} } (1..$form->{paidaccounts});
+
   setup_ap_display_form_action_bar();
 
   $form->header();
@@ -484,8 +488,6 @@ sub form_header {
   $form->{invtotal_unformatted} = $form->{invtotal};
   $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2);
 
-  $form->{totalpaid} = 0;
-
   _sort_payments();
 
   if ( $form->{'paid_'. $form->{paidaccounts}} ) {
@@ -496,8 +498,6 @@ sub form_header {
   $form->{accno_arap} = IS->get_standard_accno_current_assets(\%myconfig, \%$form);
 
   for my $i (1 .. $form->{paidaccounts}) {
-    $form->{totalpaid} += $form->{"paid_$i"};
-
     # format amounts
     if ($form->{"paid_$i"}) {
       $form->{"paid_$i"} = $form->format_amount(\%myconfig, $form->{"paid_$i"}, 2);
@@ -634,6 +634,10 @@ sub update {
 
   if (($form->{previous_vendor_id} || $form->{vendor_id}) != $form->{vendor_id}) {
     IR->get_vendor(\%::myconfig, $form);
+    if (($form->{rowcount} == 1) && ($form->{amount_1} == 0)) {
+      my $last_used_ap_chart = SL::DB::Vendor->load_cached($form->{vendor_id})->last_used_ap_chart;
+      $form->{"AP_amount_chart_id_1"} = $last_used_ap_chart->id if $last_used_ap_chart;
+    }
   }
 
   $form->{rowcount} = $count + ($params{dont_add_new_row} ? 0 : 1);
@@ -905,7 +909,7 @@ sub search {
   my %myconfig = %main::myconfig;
   my $locale   = $main::locale;
 
-  $form->{title}    = $locale->text('AP Transactions');
+  $form->{title} = $locale->text('Vendor Invoices & AP Transactions');
 
   $form->get_lists(projects => { "key" => "ALL_PROJECTS", "all" => 1 });
 
@@ -915,6 +919,8 @@ sub search {
 
   $::request->layout->add_javascripts("autocomplete_project.js");
 
+  setup_ap_search_action_bar();
+
   $form->header;
   print $form->parse_html_template('ap/search', { %myconfig });
 
@@ -955,7 +961,7 @@ sub ap_transactions {
 
   AP->ap_transactions(\%myconfig, \%$form);
 
-  $form->{title} = $locale->text('AP Transactions');
+  $form->{title} = $locale->text('Vendor Invoices & AP Transactions');
 
   my $report = SL::ReportGenerator->new(\%myconfig, $form);
 
@@ -1030,7 +1036,6 @@ sub ap_transactions {
   push @options, $locale->text('Closed')                                                                 if ($form->{closed});
 
   $report->set_options('top_info_text'        => join("\n", @options),
-                       'raw_bottom_info_text' => $form->parse_html_template('ap/ap_transactions_bottom'),
                        'output_format'        => 'HTML',
                        'title'                => $form->{title},
                        'attachment_basename'  => $locale->text('vendor_invoice_list') . strftime('_%Y%m%d', localtime time),
@@ -1105,6 +1110,7 @@ sub ap_transactions {
   $report->add_separator();
   $report->add_data(create_subtotal_row(\%totals, \@columns, \%column_alignment, \@subtotal_columns, 'listtotal'));
 
+  setup_ap_transactions_action_bar();
   $report->generate_with_headers();
 
   $main::lxdebug->leave_sub();
@@ -1143,6 +1149,40 @@ sub storno {
   $main::lxdebug->leave_sub();
 }
 
+sub setup_ap_search_action_bar {
+  my %params = @_;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      action => [
+        $::locale->text('Search'),
+        submit    => [ '#form', { action => "ap_transactions" } ],
+        accesskey => 'enter',
+      ],
+    );
+  }
+}
+
+sub setup_ap_transactions_action_bar {
+  my %params = @_;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      combobox => [
+        action => [ t8('Add') ],
+        link => [
+          t8('Purchase Invoice'),
+          link => [ 'ir.pl?action=add' ],
+        ],
+        link => [
+          t8('AP Transaction'),
+          link => [ 'ap.pl?action=add' ],
+        ],
+      ], # end of combobox "Add"
+    );
+  }
+}
+
 sub setup_ap_display_form_action_bar {
   my $transdate               = $::form->datetonum($::form->{transdate}, \%::myconfig);
   my $closedto                = $::form->datetonum($::form->{closedto},  \%::myconfig);