Verkäufer-/Bearbeiter-Drop-Downs in mehreren Masken sortiert anzeigen
[kivitendo-erp.git] / bin / mozilla / gl.pl
index 89359ad..a4ee01d 100644 (file)
@@ -218,7 +218,7 @@ sub search {
   $::form->get_lists(
     projects  => { key => "ALL_PROJECTS", all => 1 },
   );
-  $::form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ deleted => 0 ]);
+  $::form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all_sorted(query => [ deleted => 0 ]);
 
   $::form->header;
   print $::form->parse_html_template('gl/search', {
@@ -683,17 +683,6 @@ sub display_rows {
     $charts{$item->{accno}} = $item;
   }
 
-  my %taxchart_labels = ();
-  my @taxchart_values = ();
-  my %taxcharts = ();
-  foreach my $item (@{ $form->{TAX_ACCOUNTS} }) {
-    my $key = $item->{id} . "--" . $item->{rate};
-    $taxchart_init = $key if ($taxchart_init == $item->{id});
-    push(@taxchart_values, $key);
-    $taxchart_labels{$key} = $item->{taxdescription} . " " . $item->{rate} * 100 . ' %';
-    $taxcharts{$item->{id}} = $item;
-  }
-
   my ($source, $memo, $source_hidden, $memo_hidden);
   for my $i (1 .. $form->{rowcount}) {
     if ($form->{show_details}) {
@@ -717,6 +706,20 @@ sub display_rows {
     my ($selected_accno, $selected_tax_id) = split(/--/, $selected_accno_full);
     my ($previous_accno, $previous_tax_id) = split(/--/, $form->{"previous_accno_$i"});
 
+    my %taxchart_labels = ();
+    my @taxchart_values = ();
+    my %taxcharts = ();
+    my $filter_accno;
+    $filter_accno = $::form->{ALL_CHARTS}[0]->{accno};
+    $filter_accno = $selected_accno if (!$init and $i < $form->{rowcount});
+    foreach my $item ( GL->get_tax_dropdown($filter_accno) ) {
+      my $key = $item->{id} . "--" . $item->{rate};
+      $taxchart_init = $key if ($taxchart_init == $item->{id});
+      push(@taxchart_values, $key);
+      $taxchart_labels{$key} = $item->{taxdescription} . " " . $item->{rate} * 100 . ' %';
+      $taxcharts{$item->{id}} = $item;
+    }
+
     if ($previous_accno &&
         ($previous_accno eq $selected_accno) &&
         ($previous_tax_id ne $selected_tax_id)) {
@@ -740,11 +743,11 @@ sub display_rows {
       . qq|</td>|;
     my $tax_ddbox = qq|<td>| .
       NTI($cgi->popup_menu('-name' => "taxchart_$i",
-                           '-id' => "taxchart_$i",
-                           '-style' => 'width:200px',
-                           '-values' => \@taxchart_values,
-                           '-labels' => \%taxchart_labels,
-                           '-default' => $selected_taxchart))
+            '-id' => "taxchart_$i",
+            '-style' => 'width:200px',
+            '-values' => \@taxchart_values,
+            '-labels' => \%taxchart_labels,
+            '-default' => $selected_taxchart))
       . qq|</td>|;
 
     my ($fx_transaction, $checked);
@@ -864,9 +867,6 @@ sub form_header {
                    "charts"    => { "key"       => "ALL_CHARTS",
                                     "transdate" => $::form->{transdate} });
 
-  $::form->{accno} = $::form->{ALL_CHARTS}[0]->{accno};
-  GL->get_tax_dropdown();
-
   GL->get_chart_balances('charts' => $::form->{ALL_CHARTS});
 
   my $title      = $::form->{title};
@@ -967,7 +967,7 @@ sub yes {
   if (GL->delete_transaction(\%myconfig, \%$form)){
     # saving the history
       if(!exists $form->{addition} && $form->{id} ne "") {
-        $form->{snumbers} = qq|glnumber_| . $form->{id};
+        $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
         $form->{addition} = "DELETED";
         $form->save_history;
       }
@@ -1139,9 +1139,8 @@ sub post_transaction {
   }
   undef($form->{callback});
   # saving the history
-  
   if(!exists $form->{addition} && $form->{id} ne "") {
-    $form->{snumbers} = qq|glnumber_| . $form->{id};
+    $form->{snumbers} = qq|ordnumber_| . $form->{ordnumber};
     $form->{addition} = "SAVED";
     $form->{what_done} = $locale->text("Buchungsnummer") . " = " . $form->{id};
     $form->save_history;
@@ -1210,7 +1209,7 @@ sub storno {
 
   # saving the history
   if(!exists $form->{addition} && $form->{id} ne "") {
-    $form->{snumbers} = "glnumber_$form->{id}";
+    $form->{snumbers} = "ordnumber_$form->{ordnumber}";
     $form->{addition} = "STORNO";
     $form->save_history;
   }
@@ -1226,16 +1225,18 @@ sub continue {
 }
 
 sub get_tax_dropdown {
+  $main::lxdebug->enter_sub();
 
   my $form = $main::form;
-  $main::lxdebug->enter_sub();
-  GL->get_tax_dropdown();
+  my @tax_accounts = GL->get_tax_dropdown($form->{accno});
 
-  foreach my $item (@{ $form->{TAX_ACCOUNTS} }) {
+  foreach my $item (@tax_accounts) {
     $item->{taxdescription} = $::locale->{iconv_utf8}->convert($item->{taxdescription});
     $item->{taxdescription} .= ' ' . $form->round_amount($item->{rate} * 100);
   }
 
+  $form->{TAX_ACCOUNTS} = [ @tax_accounts ];
+
   print $form->ajax_response_header, $form->parse_html_template("gl/update_tax_accounts");
 
   $main::lxdebug->leave_sub();