$self->{action} = lc $self->{action};
$self->{action} =~ s/( |-|,|\#)/_/g;
- $self->{version} = "2.4.1";
+ $self->{version} = "2.4.2";
$main::lxdebug->leave_sub();
}
my $neg = ($amount =~ s/-//);
- $amount = $self->round_amount($amount, $places) if ($places =~ /\d/);
+ if (defined($places) && ($places ne '')) {
+ if ($places < 0) {
+ $amount *= 1;
+ $places *= -1;
+
+ my ($actual_places) = ($amount =~ /\.(\d+)/);
+ $actual_places = length($actual_places);
+ $places = $actual_places > $places ? $actual_places : $places;
+ }
+
+ $amount = $self->round_amount($amount, $places);
+ }
my @d = map { s/\d//g; reverse split // } my $tmp = $myconfig->{numberformat}; # get delim chars
my @p = split(/\./, $amount); # split amount at decimal point
my ($self, $myconfig, $amount) = @_;
- if ($myconfig->{in_numberformat} == 1) {
- # Extra input number format 1000.00 or 1000,00
- $amount =~ s/,/\./g;
- $amount = scalar reverse $amount;
- $amount =~ s/\./DOT/;
- $amount =~ s/\.//g;
- $amount =~ s/DOT/\./;
- $amount = scalar reverse $amount;
- $main::lxdebug->leave_sub(2);
- return ($amount * 1);
- }
-
if ( ($myconfig->{numberformat} eq '1.000,00')
|| ($myconfig->{numberformat} eq '1000,00')) {
$amount =~ s/\.//g;
selectrow_query($self, $dbh, $query);
my $total = ($self->{invtotal}) ? $self->{invtotal} : $self->{ordtotal};
+ my $skonto_amount = $self->parse_amount($myconfig, $total) *
+ $self->{percent_skonto};
$self->{skonto_amount} =
- $self->format_amount($myconfig,
- $self->parse_amount($myconfig, $total) *
- $self->{percent_skonto}, 2);
+ $self->format_amount($myconfig, $skonto_amount, 2);
if ($self->{"language_id"}) {
$query =
my $saved_numberformat = $myconfig->{"numberformat"};
$myconfig->{"numberformat"} = $output_numberformat;
$self->{skonto_amount} =
- $self->format_amount($myconfig,
- $self->parse_amount($myconfig, $total) *
- $self->{percent_skonto}, 2);
+ $self->format_amount($myconfig, $skonto_amount, 2);
$myconfig->{"numberformat"} = $saved_numberformat;
}
}