use Carp;
use Data::Dumper;
use Encode;
+use List::MoreUtils qw(any);
use SL::DBUtils;
use strict;
# connect to database, turn off AutoCommit
my $dbh = $form->dbconnect_noauto($myconfig);
- # sanity check, can't have AR with AR_...
- if ($form->{AR} || $form->{AP} || $form->{IC}) {
- map { delete $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);
+ for (qw(AR_include_in_dropdown AP_include_in_dropdown summary_account)) {
+ $form->{$form->{$_}} = $form->{$_} if $form->{$_};
}
- for (qw(AR_include_in_dropdown AP_include_in_dropdown)) {
- $form->{$form->{$_}} = $form->{$_} if $form->{$_};
+ # sanity check, can't have AR with AR_...
+ if ($form->{AR} || $form->{AP} || $form->{IC}) {
+ 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!'));
+ }
}
$form->{link} = "";
for my $i (1..$form->{rowcount}) {
if ($form->{"curr_$i"} ne $form->{"old_curr_$i"}) {
- $query = qq|UPDATE currencies SET name = '| . $form->{"curr_$i"} . qq|' WHERE name = '| . $form->{"old_curr_$i"} . qq|'|;
- do_query($form, $dbh, $query);
+ $query = qq|UPDATE currencies SET name = ? WHERE name = ?|;
+ do_query($form, $dbh, $query, $form->{"curr_$i"}, $form->{"old_curr_$i"});
}
}
if (length($form->{new_curr}) > 0) {
- $query = qq|INSERT INTO currencies (name) VALUES ('| . $form->{new_curr} . qq|')|;
- do_query($form, $dbh, $query);
+ $query = qq|INSERT INTO currencies (name) VALUES (?)|;
+ do_query($form, $dbh, $query, $form->{new_curr});
}
$dbh->commit();
$sth->finish;
#Get currencies:
- $query = qq|SELECT name AS curr FROM currencies ORDER BY id|;
-
- $form->{CURRENCIES} = [];
-
- $sth = prepare_execute_query($form, $dbh, $query);
- $sth->execute || $form->dberror($query);
- while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
- push @{ $form->{ CURRENCIES } } , $ref;
- }
- $sth->finish;
+ $query = qq|SELECT name AS curr FROM currencies ORDER BY id|;
+ $form->{CURRENCIES} = selectall_hashref_query($form, $dbh, $query);
#Which of them is the default currency?
$query = qq|SELECT name AS defaultcurrency FROM currencies WHERE id = (SELECT currency_id FROM defaults LIMIT 1);|;
- $sth = $dbh->prepare($query);
- $sth->execute || $form->dberror($query);
-
- $form->{defaultcurrency} = ($sth->fetchrow_hashref("NAME_lc"))->{defaultcurrency};
-
- $sth->finish;
+ ($form->{defaultcurrency}) = selectrow_query($form, $dbh, $query);
$dbh->disconnect;
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