Revision a2bab345
Von Sven Schöling vor mehr als 9 Jahren hinzugefügt
SL/DB/MetaSetup/Default.pm | ||
---|---|---|
payments_changeable => { type => 'integer', default => '0', not_null => 1 },
|
||
pdonumber => { type => 'text' },
|
||
ponumber => { type => 'text' },
|
||
precision => { type => 'numeric', default => '0.01', not_null => 1, precision => 15, scale => 5 },
|
||
profit_determination => { type => 'text' },
|
||
project_status_id => { type => 'integer' },
|
||
project_type_id => { type => 'integer' },
|
SL/Form.pm | ||
---|---|---|
}
|
||
|
||
sub round_amount {
|
||
my ($self, $amount, $places) = @_;
|
||
my ($self, $amount, $places, $adjust) = @_;
|
||
|
||
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);
|
||
}
|
||
|
||
# We use Perl's knowledge of string representation for
|
||
# rounding. First, convert the floating point number to a string
|
||
# with a high number of places. Then split the string on the decimal
|
sql/Pg-upgrade2/defaults_add_precision.sql | ||
---|---|---|
-- @tag: defaults_add_precision
|
||
-- @description: adds new column 'precision' in table defaults, used to round amounts
|
||
-- @depends: release_3_0_0
|
||
ALTER TABLE defaults ADD COLUMN precision NUMERIC(15,5) NOT NULL DEFAULT(0.01);
|
||
|
Auch abrufbar als: Unified diff
Reapply "Form: round_amount precision support"
Und mit neuer Autorschaft neu.