summaryrefslogtreecommitdiff
path: root/FS/FS/Record.pm
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2014-07-31 22:54:08 -0700
committerMark Wells <mark@freeside.biz>2014-07-31 22:54:08 -0700
commit0f359d5480aa1621d73ee802f420e8951abc620d (patch)
tree4bab32c865f9ef7b2bb03247a6be75215cfebf85 /FS/FS/Record.pm
parent6c284750de8fe49d7d4cdc6a9a4fb618697780e2 (diff)
new 477 report: deployment info, combined browse-edit UI, #24047
Diffstat (limited to 'FS/FS/Record.pm')
-rw-r--r--FS/FS/Record.pm31
1 files changed, 31 insertions, 0 deletions
diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm
index 24f2a25..2005756 100644
--- a/FS/FS/Record.pm
+++ b/FS/FS/Record.pm
@@ -124,6 +124,8 @@ FS::Record - Database record objects
$error = $record->ut_floatn('column');
$error = $record->ut_number('column');
$error = $record->ut_numbern('column');
+ $error = $record->ut_decimal('column');
+ $error = $record->ut_decimaln('column');
$error = $record->ut_snumber('column');
$error = $record->ut_snumbern('column');
$error = $record->ut_money('column');
@@ -2434,6 +2436,35 @@ sub ut_numbern {
'';
}
+=item ut_decimal COLUMN[, DIGITS]
+
+Check/untaint decimal numbers (up to DIGITS decimal places. If there is an
+error, returns the error, otherwise returns false.
+
+=item ut_decimaln COLUMN[, DIGITS]
+
+Check/untaint decimal numbers. May be null. If there is an error, returns
+the error, otherwise returns false.
+
+=cut
+
+sub ut_decimal {
+ my($self, $field, $digits) = @_;
+ $digits ||= '';
+ $self->getfield($field) =~ /^\s*(\d+(\.\d{0,$digits})?)\s*$/
+ or return "Illegal or empty (decimal) $field: ".$self->getfield($field);
+ $self->setfield($field, $1);
+ '';
+}
+
+sub ut_decimaln {
+ my($self, $field, $digits) = @_;
+ $self->getfield($field) =~ /^\s*(\d*(\.\d{0,$digits})?)\s*$/
+ or return "Illegal (decimal) $field: ".$self->getfield($field);
+ $self->setfield($field, $1);
+ '';
+}
+
=item ut_money COLUMN
Check/untaint monetary numbers. May be negative. Set to 0 if null. If there