$self->{action} = lc $self->{action};
$self->{action} =~ s/( |-|,|\#)/_/g;
- $self->{version} = "2.4.0";
+ $self->{version} = "2.3.9";
$main::lxdebug->leave_sub();
$additional_params->{"conf_latex_templates"} = $main::latex;
$additional_params->{"conf_opendocument_templates"} = $main::opendocument_templates;
- my $menu;
- if (-f $self->{"login"} . "_menu.ini") {
- $menu = Menu->new($self->{"login"} . "_menu.ini");
- } else {
- $menu = Menu->new("menu.ini");
- }
- $menu->generate_acl("", $additional_params);
-
my @additional_param_names = keys(%{$additional_params});
foreach my $key ($template->param()) {
- if (grep(/^${key}$/, @additional_param_names)) {
- $template->param($key => $additional_params->{$key});
- } else {
- $template->param($key => $self->{$key});
- }
+ my $param = $self->{$key};
+ $param = $additional_params->{$key} if (grep(/^${key}$/, @additional_param_names));
+ $param = [] if (($template->query("name" => $key) eq "LOOP") && (ref($param) ne "ARRAY"));
+ $template->param($key => $param);
}
+
my $output = $template->output();
$main::lxdebug->leave_sub();
}
sub show_generic_error {
- my ($self, $error, $title) = @_;
+ my ($self, $error, $title, $action) = @_;
my $add_params = {};
$add_params->{"title"} = $title if ($title);
$self->{"label_error"} = $error;
+ my @vars;
+ if ($action) {
+ map({ delete($self->{$_}); } qw(action));
+ map({ push(@vars, { "name" => $_, "value" => $self->{$_} })
+ if (!ref($self->{$_})); }
+ keys(%{$self}));
+ $add_params->{"SHOW_BUTTON"} = 1;
+ $add_params->{"BUTTON_LABEL"} = $action;
+ }
+ $add_params->{"VARIABLES"} = \@vars;
+
$self->header();
print($self->parse_html_template("generic/error", $add_params));
return @columns;
}
-
+#
sub format_amount {
$main::lxdebug->enter_sub(2);
my ($self, $myconfig, $amount, $places, $dash) = @_;
+ my $neg = ($amount =~ s/-//);
- #Workaround for $format_amount calls without $places
- if (!defined $places) {
- (my $dec) = ($amount =~ /\.(\d+)/);
- $places = length $dec;
- }
-
- if ($places =~ /\d/) {
- $amount = $self->round_amount($amount, $places);
- }
-
- # is the amount negative
- my $negative = ($amount < 0);
- my $fillup = "";
-
- if ($amount != 0) {
- if ($myconfig->{numberformat} && ($myconfig->{numberformat} ne '1000.00'))
- {
- my ($whole, $dec) = split /\./, "$amount";
- $whole =~ s/-//;
- $amount = join '', reverse split //, $whole;
- $fillup = "0" x ($places - length($dec));
-
- if ($myconfig->{numberformat} eq '1,000.00') {
- $amount =~ s/\d{3,}?/$&,/g;
- $amount =~ s/,$//;
- $amount = join '', reverse split //, $amount;
- $amount .= "\.$dec" . $fillup if ($places ne '' && $places * 1 != 0);
- }
+ $amount = $self->round_amount($amount, $places) if ($places =~ /\d/);
- if ($myconfig->{numberformat} eq '1.000,00') {
- $amount =~ s/\d{3,}?/$&./g;
- $amount =~ s/\.$//;
- $amount = join '', reverse split //, $amount;
- $amount .= ",$dec" . $fillup if ($places ne '' && $places * 1 != 0);
- }
+ my @d = map { s/\d//g; reverse split // } my $tmp = $myconfig->{numberformat}; # get delim chars
+ my @p = split /\./, $amount ; # split amount at decimal point
- if ($myconfig->{numberformat} eq '1000,00') {
- $amount = "$whole";
- $amount .= ",$dec" . $fillup if ($places ne '' && $places * 1 != 0);
- }
-
- if ($dash =~ /-/) {
- $amount = ($negative) ? "($amount)" : "$amount";
- } elsif ($dash =~ /DRCR/) {
- $amount = ($negative) ? "$amount DR" : "$amount CR";
- } else {
- $amount = ($negative) ? "-$amount" : "$amount";
- }
- }
- } else {
- if ($dash eq "0" && $places) {
- if ($myconfig->{numberformat} eq '1.000,00') {
- $amount = "0" . "," . "0" x $places;
- } else {
- $amount = "0" . "." . "0" x $places;
- }
- } else {
- $amount = ($dash ne "") ? "$dash" : "0";
- }
- }
+ $p[0] =~ s/\B(?=(...)*$)/$d[1]/g if $d[1]; # add 1,000 delimiters
+ $amount = $p[0];
+ $amount .= $d[0].$p[1].(0 x ($places - length $p[1])) if ($places || $p[1] ne '');
+
+ $amount = do {
+ ($dash =~ /-/) ? ($neg ? "($amount)" : "$amount" ) :
+ ($dash =~ /DRCR/) ? ($neg ? "$amount DR" : "$amount CR" ) :
+ ($neg ? "-$amount" : "$amount" ) ;
+ };
+
$main::lxdebug->leave_sub(2);
-
return $amount;
}
-
+#
sub parse_amount {
$main::lxdebug->enter_sub(2);
$mail->{to} = qq|$self->{email}|;
$mail->{from} = qq|"$myconfig->{name}" <$myconfig->{email}>|;
$mail->{fileid} = "$fileid.";
+ $myconfig->{signature} =~ s/\\r\\n/\\n/g;
# if we send html or plain text inline
if (($self->{format} eq 'html') && ($self->{sendmode} eq 'inline')) {
$mail->{message} =~ s/\r\n/<br>\n/g;
$myconfig->{signature} =~ s/\\n/<br>\n/g;
- $mail->{message} .= "<br>\n--<br>\n$myconfig->{signature}\n<br>";
+ $mail->{message} .= "<br>\n-- <br>\n$myconfig->{signature}\n<br>";
open(IN, $self->{tmpfile})
or $self->error($self->cleanup . "$self->{tmpfile} : $!");
@{ $mail->{attachments} } = ($self->{tmpfile}) unless ($form->{do_not_attach});
- $myconfig->{signature} =~ s/\\n/\r\n/g;
- $mail->{message} .= "\r\n--\r\n$myconfig->{signature}";
+ $mail->{message} =~ s/\r\n/\n/g;
+ $myconfig->{signature} =~ s/\\n/\n/g;
+ $mail->{message} .= "\n-- \n$myconfig->{signature}";
}