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;
# connect to database, turn off AutoCommit
my $dbh = $form->dbconnect_noauto($myconfig);
- for (qw(AR_include_in_dropdown AP_include_in_dropdown)) {
+ for (qw(AR_include_in_dropdown AP_include_in_dropdown summary_account)) {
$form->{$form->{$_}} = $form->{$_} if $form->{$_};
}
# 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!'));
}
}
$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 {
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;
$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'|;
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