Revision 59626ee2
Von Bernd Bleßmann vor mehr als 4 Jahren hinzugefügt
SL/DB/Helper/Attr.pm | ||
---|---|---|
|
||
sub _make_by_type {
|
||
my ($package, $name, $type) = @_;
|
||
_as_number ($package, $name, places => -2) if $type =~ /numeric | real | float/xi;
|
||
_as_percent($package, $name, places => 2) if $type =~ /numeric | real | float/xi;
|
||
_as_number ($package, $name, places => 0) if $type =~ /int/xi;
|
||
_as_date ($package, $name) if $type =~ /date | timestamp/xi;
|
||
_as_timestamp($package, $name) if $type =~ /timestamp/xi;
|
||
_as_bool_yn($package, $name) if $type =~ /bool/xi;
|
||
_as_number ($package, $name, places => -2) if $type =~ /numeric | real | float/xi;
|
||
_as_null_number($package, $name, places => -2) if $type =~ /numeric | real | float/xi;
|
||
_as_percent ($package, $name, places => 2) if $type =~ /numeric | real | float/xi;
|
||
_as_number ($package, $name, places => 0) if $type =~ /int/xi;
|
||
_as_null_number($package, $name, places => 0) if $type =~ /int/xi;
|
||
_as_date ($package, $name) if $type =~ /date | timestamp/xi;
|
||
_as_timestamp ($package, $name) if $type =~ /timestamp/xi;
|
||
_as_bool_yn ($package, $name) if $type =~ /bool/xi;
|
||
}
|
||
|
||
sub _as_number {
|
||
... | ... | |
};
|
||
}
|
||
|
||
sub _as_null_number {
|
||
my $package = shift;
|
||
my $attribute = shift;
|
||
my %params = @_;
|
||
|
||
$params{places} = 2 if !defined($params{places});
|
||
|
||
no strict 'refs';
|
||
*{ $package . '::' . $attribute . '_as_null_number' } = sub {
|
||
my ($self, $string) = @_;
|
||
|
||
$self->$attribute($string eq '' ? undef : $::form->parse_amount(\%::myconfig, $string)) if @_ > 1;
|
||
|
||
return defined $self->$attribute ? $::form->format_amount(\%::myconfig, $self->$attribute, $params{places}) : '';
|
||
};
|
||
}
|
||
|
||
sub _as_percent {
|
||
my $package = shift;
|
||
my $attribute = shift;
|
Auch abrufbar als: Unified diff
Rose-Attr-Helfer: _as_null_number
von odyn abgeguckt, aber nicht mit SL::Helper::Number implementiert
(gibt es in kivitendo nicht)
siehe auch odyn: commit b4177a76db52e94795314b527774f515fd8ee42f