summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorjeff <jeff>2006-10-04 21:22:08 +0000
committerjeff <jeff>2006-10-04 21:22:08 +0000
commit3050434f62122e73d748dac26a5e70193b444c0a (patch)
treedb86ba39f602dcd2dcbf9520002cc1703363583e /FS
parent30c3ff2acf90e1386fae00759078899c859faf36 (diff)
DoB
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/Conf.pm7
-rw-r--r--FS/FS/Record.pm21
-rw-r--r--FS/FS/Schema.pm1
-rw-r--r--FS/FS/cust_main.pm3
4 files changed, 32 insertions, 0 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 384ff5215..7f77e000f 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -413,6 +413,13 @@ httemplate/docs/config.html
},
{
+ 'key' => 'date_format',
+ 'section' => 'UI',
+ 'description' => 'format code for displaying dates with Date::Format::time2str',
+ 'type' => 'text',
+ },
+
+ {
'key' => 'cyrus',
'section' => 'deprecated',
'description' => '<b>DEPRECATED</b>, add a <i>cyrus</i> <a href="../browse/part_export.cgi">export</a> instead. This option used to integrate with <a href="http://asg.web.cmu.edu/cyrus/imapd/">Cyrus IMAP Server</a>, three lines: IMAP server, admin username, and admin password. Cyrus::IMAP::Admin should be installed locally and the connection to the server secured.',
diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm
index 114b1d6ab..bd5dd27df 100644
--- a/FS/FS/Record.pm
+++ b/FS/FS/Record.pm
@@ -83,6 +83,8 @@ FS::Record - Database record objects
$error = $record->ut_float('column');
$error = $record->ut_number('column');
$error = $record->ut_numbern('column');
+ $error = $record->ut_snumber('column');
+ $error = $record->ut_snumbern('column');
$error = $record->ut_money('column');
$error = $record->ut_text('column');
$error = $record->ut_textn('column');
@@ -1288,6 +1290,25 @@ sub ut_snumber {
'';
}
+=item ut_snumbern COLUMN
+
+Check/untaint signed numeric data (whole numbers). If there is an error,
+returns the error, otherwise returns false.
+
+=cut
+
+sub ut_snumbern {
+ my($self, $field) = @_;
+ $self->getfield($field) =~ /^(-?)\s*(\d*)$/
+ or return "Illegal (numeric) $field: ". $self->getfield($field);
+ if ($1) {
+ return "Illegal (numeric) $field: ". $self->getfield($field)
+ unless $2;
+ }
+ $self->setfield($field, "$1$2");
+ '';
+}
+
=item ut_number COLUMN
Check/untaint simple numeric data (whole numbers). May not be null. If there
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index 3d4fcc5b4..ea02dfebf 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -407,6 +407,7 @@ sub tables_hashref {
# 'middle', 'varchar', 'NULL', $char_d, '', '',
'first', 'varchar', '', $char_d, '', '',
'ss', 'varchar', 'NULL', 11, '', '',
+ 'birthdate',@date_type, '', '',
'company', 'varchar', 'NULL', $char_d, '', '',
'address1', 'varchar', '', $char_d, '', '',
'address2', 'varchar', 'NULL', $char_d, '', '',
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index 484138781..cb44ba6e1 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -1209,6 +1209,7 @@ sub check {
|| $self->ut_number('refnum')
|| $self->ut_name('last')
|| $self->ut_name('first')
+ || $self->ut_snumbern('birthdate')
|| $self->ut_textn('company')
|| $self->ut_text('address1')
|| $self->ut_textn('address2')
@@ -4619,6 +4620,8 @@ No multiple currency support (probably a larger project than just this module).
payinfo_masked false laziness with cust_pay.pm and cust_refund.pm
+Birthdates rely on negative epoch values.
+
=head1 SEE ALSO
L<FS::Record>, L<FS::cust_pkg>, L<FS::cust_bill>, L<FS::cust_credit>