return 0 if !defined $amount;
+ $places //= 0;
+
if ($adjust) {
my $precision = $::instance_conf->get_precision || 0.01;
return $self->round_amount( $self->round_amount($amount / $precision, 0) * $precision, $places);
$main::lxdebug->leave_sub();
}
+sub new_lastmtime {
+ my ($self, $table, $option) = @_;
+
+ return unless $self->{id};
+ croak ("wrong call, no valid table defined") unless $table =~ /^(oe|ar|ap|delivery_orders|parts)$/;
+
+ my $query = "SELECT mtime, itime FROM " . $table . " WHERE id = ?";
+ my $ref = selectfirst_hashref_query($self, $self->get_standard_dbh, $query, $self->{id});
+ $ref->{mtime} ||= $ref->{itime};
+ $self->{lastmtime} = $ref->{mtime};
+ $main::lxdebug->message(LXDebug->DEBUG2(),"new lastmtime=".$self->{lastmtime});
+}
+
sub mtime_ischanged {
my ($self, $table, $option) = @_;
my ($self,$amount,$taxrate,$taxincluded,$roundplaces) = @_;
- $roundplaces = 2 unless defined $roundplaces;
+ $roundplaces //= 2;
+ $taxincluded //= 0;
my $tax;
- if ($taxincluded *= 1) {
+ if ($taxincluded) {
# calculate tax (unrounded), subtract from amount, round amount and round tax
$tax = $amount - ($amount / ($taxrate + 1)); # equivalent to: taxrate * amount / (taxrate + 1)
$amount = $self->round_amount($amount - $tax, $roundplaces);