X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FAM.pm;h=1805dac1585a4e3a330564ba83e18643e49a019b;hb=6f398b352e3b28af6b00852da08193727f803aee;hp=acc5bdccc0906e712b13a3a99829e0cf3c9c39d1;hpb=8058448b8c3969bc043a54275fa89e4a9405908d;p=kivitendo-erp.git diff --git a/SL/AM.pm b/SL/AM.pm index acc5bdccc..1805dac15 100644 --- a/SL/AM.pm +++ b/SL/AM.pm @@ -40,7 +40,10 @@ package AM; use Carp; use Data::Dumper; use Encode; +use List::MoreUtils qw(any); use SL::DBUtils; +use SL::DB::AuthUser; +use SL::DB::Employee; use strict; @@ -213,8 +216,8 @@ sub save_account { # sanity check, can't have AR with AR_... if ($form->{AR} || $form->{AP} || $form->{IC}) { - for (qw(AR_amount AR_tax AR_paid AP_amount AP_tax AP_paid IC_sale IC_cogs IC_taxpart IC_income IC_expense IC_taxservice)) { - $form->error($::locale->text('It is not allowed that a summary account occurs in a drop-down menu!')) if $form->{$_}; + if (any { $form->{$_} } qw(AR_amount AR_tax AR_paid AP_amount AP_tax AP_paid IC_sale IC_cogs IC_taxpart IC_income IC_expense IC_taxservice)) { + $form->error($::locale->text('It is not allowed that a summary account occurs in a drop-down menu!')); } } @@ -1119,37 +1122,24 @@ sub save_defaults { $main::lxdebug->leave_sub(); } - sub save_preferences { $main::lxdebug->enter_sub(); - my ($self, $myconfig, $form) = @_; - - my $dbh = $form->get_standard_dbh($myconfig); - - my ($businessnumber) = selectrow_query($form, $dbh, qq|SELECT businessnumber FROM defaults|); - - # update name - my $query = qq|UPDATE employee SET name = ? WHERE login = ?|; - do_query($form, $dbh, $query, $form->{name}, $form->{login}); - - my $rc = $dbh->commit(); + my ($self, $form) = @_; - $form->{businessnumber} = $businessnumber; + my $employee = SL::DB::Manager::Employee->find_by(login => $form->{login}); + $employee->update_attributes(name => $form->{name}); - $myconfig = User->new(login => $form->{login}); - - foreach my $item (keys %$form) { - $myconfig->{$item} = $form->{$item}; - } - - $myconfig->save_member; - - my $auth = $main::auth; + my $user = SL::DB::Manager::AuthUser->find_by(login => $form->{login}); + $user->update_attributes( + config_values => { + map({ ($_ => $form->{$_}) } SL::DB::AuthUser::CONFIG_VARS()), + map({ ($_ => do { my $v = $form->{$_}; $v =~ s/\r//g; $v }) } qw(address signature)), + }); $main::lxdebug->leave_sub(); - return $rc; + return 1; } sub get_defaults { @@ -1312,11 +1302,11 @@ sub closedto { my $dbh = $form->dbconnect($myconfig); - my $query = qq|SELECT closedto, revtrans FROM defaults|; + my $query = qq|SELECT closedto, max_future_booking_interval, revtrans FROM defaults|; my $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); - ($form->{closedto}, $form->{revtrans}) = $sth->fetchrow_array; + ($form->{closedto}, $form->{max_future_booking_interval}, $form->{revtrans}) = $sth->fetchrow_array; $sth->finish; @@ -1338,8 +1328,8 @@ sub closebooks { $query = qq|UPDATE defaults SET closedto = NULL, revtrans = '1'|; } elsif ($form->{closedto}) { - $query = qq|UPDATE defaults SET closedto = ?, revtrans = '0'|; - @values = (conv_date($form->{closedto})); + $query = qq|UPDATE defaults SET closedto = ?, max_future_booking_interval = ?, revtrans = '0'|; + @values = (conv_date($form->{closedto}), conv_date($form->{max_future_booking_interval})); } else { $query = qq|UPDATE defaults SET closedto = NULL, revtrans = '0'|; @@ -2115,9 +2105,10 @@ sub get_warehouse { map { $form->{$_} = $ref->{$_} } keys %{ $ref }; $query = qq|SELECT b.*, EXISTS - (SELECT i.warehouse_id - FROM inventory i + (SELECT i.warehouse_id, p.warehouse_id + FROM inventory i, parts p WHERE i.bin_id = b.id + OR p.bin_id = b.id LIMIT 1) AS in_use FROM bin b