my $self = shift;
return URI->new($ENV{HTTP_REFERER})->canonical() if $ENV{HTTP_X_FORWARDED_FOR};
+ return URI->new if !$ENV{REQUEST_URI}; # for testing
my $scheme = $ENV{HTTPS} && (lc $ENV{HTTPS} eq 'on') ? 'https' : 'http';
- my $port = $ENV{SERVER_PORT} || '';
+ my $port = $ENV{SERVER_PORT};
$port = undef if (($scheme eq 'http' ) && ($port == 80))
|| (($scheme eq 'https') && ($port == 443));
);
$self->{favicon} ||= "favicon.ico";
- $self->{titlebar} = join ' - ', grep $_, $self->{title}, $self->{login}, $::myconfig{dbname}, $self->{version} if $self->{title};
+ $self->{titlebar} = join ' - ', grep $_, $self->{title}, $self->{login}, $::myconfig{dbname}, $self->{version} if $self->{title} || !$self->{titlebar};
# build includes
if ($self->{refresh_url} || $self->{refresh_time}) {
$self->{TAX} = selectall_hashref_query($self, $dbh, $query);
}
+ my $extra_columns = '';
+ $extra_columns .= 'a.direct_debit, ' if $module eq 'AR';
+
if ($self->{id}) {
$query =
qq|SELECT
a.duedate, a.ordnumber, a.taxincluded, a.curr AS currency, a.notes,
a.intnotes, a.department_id, a.amount AS oldinvtotal,
a.paid AS oldtotalpaid, a.employee_id, a.gldate, a.type,
- a.globalproject_id,
+ a.globalproject_id, ${extra_columns}
c.name AS $table,
d.description AS department,
e.name AS employee
=head1 SYNOPSIS
-This is the main data object of Lx-Office.
+This is the main data object of kivitendo.
Unfortunately it also acts as a god object for certain data retrieval procedures used in the entry points.
Points of interest for a beginner are:
Generates a HTTP redirection header for the new C<$url>. Constructs an
absolute URL including scheme, host name and port. If C<$url> is a
-relative URL then it is considered relative to Lx-Office base URL.
+relative URL then it is considered relative to kivitendo base URL.
This function C<die>s if headers have already been created with
C<$::form-E<gt>header>.