-#====================================================================
+#========= ===========================================================
# LX-Office ERP
# Copyright (C) 2004
# Based on SQL-Ledger Version 2.1.9
undef $standard_dbh;
}
+sub read_version {
+ my ($self) = @_;
+
+ open VERSION_FILE, "VERSION"; # New but flexible code reads version from VERSION-file
+ my $version = <VERSION_FILE>;
+ $version =~ s/[^0-9A-Za-z\.\_\-]//g; # only allow numbers, letters, points, underscores and dashes. Prevents injecting of malicious code.
+ close VERSION_FILE;
+
+ return $version;
+}
+
sub new {
$main::lxdebug->enter_sub();
bless $self, $type;
- open VERSION_FILE, "VERSION"; # New but flexible code reads version from VERSION-file
- $self->{version} = <VERSION_FILE>;
- close VERSION_FILE;
- $self->{version} =~ s/[^0-9A-Za-z\.\_\-]//g; # only allow numbers, letters, points, underscores and dashes. Prevents injecting of malicious code.
+ $self->{version} = $self->read_version;
$main::lxdebug->leave_sub();
my ($self, $msg) = @_;
if ($ENV{HTTP_USER_AGENT}) {
- $msg =~ s/\n/<br>/g;
-
- if (!$self->{header}) {
- $self->header;
- print qq|<body>|;
- }
-
- print qq|
- <p class="message_ok"><b>$msg</b></p>
-
- <script type="text/javascript">
- <!--
- // If JavaScript is enabled, the whole thing will be reloaded.
- // The reason is: When one changes his menu setup (HTML / CSS ...)
- // it now loads the correct code into the browser instead of do nothing.
- setTimeout("top.frames.location.href='login.pl'",500);
- //-->
- </script>
-
-</body>
- |;
+ $self->header;
+ print $self->parse_html_template('generic/form_info', { message => $msg });
+ } elsif ($self->{info_function}) {
+ &{ $self->{info_function} }($msg);
} else {
-
- if ($self->{info_function}) {
- &{ $self->{info_function} }($msg);
- } else {
- print "$msg\n";
- }
+ print "$msg\n";
}
$main::lxdebug->leave_sub();
my ($self, $myconfig) = @_;
# connect to database
- my $dbh = SL::DBConnect->connect($myconfig->{dbconnect}, $myconfig->{dbuser}, $myconfig->{dbpasswd}, SL::DBConnect->get_options)
- or $self->dberror;
+ my $dbh = SL::DBConnect->connect or $self->dberror;
# set db options
if ($myconfig->{dboptions}) {
my ($self, $myconfig) = @_;
# connect to database
- my $dbh = SL::DBConnect->connect($myconfig->{dbconnect}, $myconfig->{dbuser}, $myconfig->{dbpasswd}, SL::DBConnect->get_options(AutoCommit => 0))
- or $self->dberror;
+ my $dbh = SL::DBConnect->connect(SL::DBConnect->get_connect_args(AutoCommit => 0)) or $self->dberror;
# set db options
if ($myconfig->{dboptions}) {
return $closed;
}
+# prevents bookings to the to far away future
+sub date_max_future {
+ $main::lxdebug->enter_sub();
+
+ my ($self, $date, $myconfig) = @_;
+ my $dbh = $self->dbconnect($myconfig);
+
+ my $query = "SELECT 1 FROM defaults WHERE ? - current_date > max_future_booking_interval";
+ my $sth = prepare_execute_query($self, $dbh, $query, conv_date($date));
+
+ my ($max_future_booking_interval) = $sth->fetchrow_array;
+
+ $main::lxdebug->leave_sub();
+
+ return $max_future_booking_interval;
+}
+
+
sub update_balance {
$main::lxdebug->enter_sub();
my $query = qq|SELECT count(*) FROM $table $obsolete|;
my ($count) = selectrow_query($self, $dbh, $query);
- if ($count < $myconfig->{vclimit}) {
+ if ($count <= $myconfig->{vclimit}) {
$query = qq|SELECT id, name, salesman_id
FROM $table $obsolete
ORDER BY name|;