From: ivan Date: Tue, 6 Dec 2005 22:25:56 +0000 (+0000) Subject: make sure zip is required for canada, also use CURRVAL() function instead of pg_oid_s... X-Git-Tag: BEFORE_FINAL_MASONIZE~262 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=4b2ee72b32274f78c1c8a859b34e0d49dfb6cd4b make sure zip is required for canada, also use CURRVAL() function instead of pg_oid_status DBD attribute because Pg 8.1 doesn't have oids by default anymore --- diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm index 2d9175813..21100045e 100644 --- a/FS/FS/Record.pm +++ b/FS/FS/Record.pm @@ -750,13 +750,15 @@ sub insert { warn "[debug]$me retreiving sequence from database\n" if $DEBUG; if ( driver_name eq 'Pg' ) { - my $oid = $sth->{'pg_oid_status'}; - my $i_sql = "SELECT $primary_key FROM $table WHERE oid = ?"; + #my $oid = $sth->{'pg_oid_status'}; + #my $i_sql = "SELECT $primary_key FROM $table WHERE oid = ?"; + my $i_sql = "SELECT currval('${table}_${primary_key}_seq')"; my $i_sth = dbh->prepare($i_sql) or do { dbh->rollback if $FS::UID::AutoCommit; return dbh->errstr; }; - $i_sth->execute($oid) or do { + #$i_sth->execute($oid) or do { + $i_sth->execute() or do { dbh->rollback if $FS::UID::AutoCommit; return $i_sth->errstr; }; @@ -1471,6 +1473,8 @@ Check/untaint zip codes. =cut +my @zip_reqd_countries = qw( CA ); #US implicit... + sub ut_zip { my( $self, $field, $country ) = @_; if ( $country eq 'US' ) { @@ -1479,7 +1483,10 @@ sub ut_zip { $self->getfield($field); $self->setfield($field,$1); } else { - if ( $self->getfield($field) =~ /^\s*$/ ) { + if ( $self->getfield($field) =~ /^\s*$/ + && ( !$country || ! grep { $_ eq $country } @zip_reqd_countries ) + ) + { $self->setfield($field,''); } else { $self->getfield($field) =~ /^\s*(\w[\w\-\s]{2,8}\w)\s*$/