Fix für Bug 1081. Bei Buchung einer Einkaufsrechnung geht das Rabatt verloren. 1...
[kivitendo-erp.git] / bin / mozilla / am.pl
index fafe656..8f380aa 100644 (file)
@@ -2397,6 +2397,7 @@ sub edit_defaults {
 
   # get defaults for account numbers and last numbers
   AM->defaultaccounts(\%myconfig, \%$form);
+  $form->{ALL_UNITS} = AM->convertible_units(AM->retrieve_all_units(), 'g');
 
   map { $form->{"defaults_${_}"} = $form->{defaults}->{$_} } keys %{ $form->{defaults} };
 
@@ -2507,7 +2508,6 @@ sub config {
 
   %countrycodes = User->country_codes;
 
-  $countrycodes{""} = "American English";
   $form->{COUNTRYCODES} = [];
   foreach $countrycode (sort { $countrycodes{$a} cmp $countrycodes{$b} } keys %countrycodes) {
     push @{ $form->{COUNTRYCODES} }, {
@@ -2530,7 +2530,7 @@ sub config {
   $form->{CAN_CHANGE_PASSWORD} = $auth->can_change_password();
   $form->{todo_cfg}            = { TODO->get_user_config('login' => $form->{login}) };
 
-  $form->{title}                            = $locale->text('Edit Preferences for #1', $form->{login});
+  $form->{title}               = $locale->text('Edit Preferences for #1', $form->{login});
 
   $form->header();
   print $form->parse_html_template('am/config');
@@ -2545,7 +2545,7 @@ sub save_preferences {
 
   TODO->save_user_config('login' => $form->{login}, %{ $form->{todo_cfg} || { } });
 
-  $form->redirect($locale->text('Preferences saved!')) if (AM->save_preferences(\%myconfig, \%$form, $webdav));
+  $form->redirect($locale->text('Preferences saved!')) if (AM->save_preferences(\%myconfig, \%$form, 0));
   $form->error($locale->text('Cannot save preferences!'));
 
   $lxdebug->leave_sub();
@@ -2818,6 +2818,9 @@ sub show_am_history {
 
   $auth->assert('config');
 
+  my $callback     = build_std_url(qw(action einschraenkungen fromdate todate mitarbeiter searchid what2search));
+  $form->{order} ||= 'h.itime--1';
+
   my %search = ( "Artikelnummer"          => "parts",
                  "Kundennummer"           => "customer",
                  "Lieferantennummer"      => "vendor",
@@ -2842,14 +2845,17 @@ sub show_am_history {
   my $restriction  = qq| AND (| . join(' OR ', map { " addition = " . $dbh->quote($_) } split(m/\,/, $form->{einschraenkungen})) . qq|)| if $form->{einschraenkungen};
   $restriction    .= qq| AND h.itime::date >= | . conv_dateq($form->{fromdate})                                                          if $form->{fromdate};
   $restriction    .= qq| AND h.itime::date <= | . conv_dateq($form->{todate})                                                            if $form->{todate};
-  $restriction    .= qq| AND employee_id = |    . $form->{mitarbeiter}                                                                   if $form->{mitarbeiter} =~ m/^\d+$/;
-  $restriction    .= qq| AND employee_id = |    . get_employee_id($form->{mitarbeiter}, $dbh)                                            if $form->{mitarbeiter};
+  if ($form->{mitarbeiter} =~ m/^\d+$/) {
+    $restriction  .= qq| AND employee_id = |    . $form->{mitarbeiter};
+  } elsif ($form->{mitarbeiter}) {
+    $restriction  .= qq| AND employee_id = (SELECT id FROM employee WHERE name ILIKE | . $dbh->quote('%' . $form->{mitarbeiter} . '%') . qq|)|;
+  }
 
   my $query = qq|SELECT trans_id AS id FROM history_erp | .
     (  $form->{'searchid'} ? qq| WHERE snumbers = '|  . $searchNo{$form->{'what2search'}} . qq|_| . $form->{'searchid'} . qq|'|
      :                       qq| WHERE snumbers ~ '^| . $searchNo{$form->{'what2search'}} . qq|'|);
 
-  my @ids    = selectall_array_query($form, $dbh, $query);
+  my @ids    = grep { $_ * 1 } selectall_array_query($form, $dbh, $query);
   my $daten .= shift @ids;
   $daten    .= join '', map { " OR trans_id = $_" } @ids;
 
@@ -2864,27 +2870,14 @@ sub show_am_history {
                                      "SUCCESS"        => ($form->get_history($dbh, $daten, $restriction, $form->{order}) ne "0"),
                                      "NONEWWINDOW"    => 1,
                                      uc($sort)        => 1,
-                                     uc($sort) . "BY" => $sortby
+                                     uc($sort) . "BY" => $sortby,
+                                     'callback'       => $callback,
                                    });
   $dbh->disconnect();
 
   $lxdebug->leave_sub();
 }
 
-sub get_employee_id {
-       $lxdebug->enter_sub();
-
-  $auth->assert('config');
-
-       my $query = qq|SELECT id FROM employee WHERE name = '| . $_[0] . qq|'|;
-       my $sth = $_[1]->prepare($query);
-       $sth->execute() || $form->dberror($query);
-       my $return = $sth->fetch();
-       $sth->finish();
-       return ${$return}[0];
-       $lxdebug->leave_sub();
-}
-
 sub swap_units {
   $lxdebug->enter_sub();