oops, don't comment out &swapuid in &adminsuidsetup!
[freeside.git] / site_perl / Record.pm
index 0f098b4..aa8d75b 100644 (file)
@@ -166,7 +166,7 @@ sub qsearch {
     ? " WHERE ". join(' AND ',
       map {
         $record->{$_} eq ''
-          ? "$_ IS NULL"
+          ? "( $_ IS NULL OR $_ = \"\" )"
           : "$_ = ". _quote($record->{$_},$table,$_)
       } @fields
     ) : ''
@@ -353,6 +353,7 @@ sub insert {
   local $SIG{QUIT} = 'IGNORE'; 
   local $SIG{TERM} = 'IGNORE';
   local $SIG{TSTP} = 'IGNORE';
+  local $SIG{PIPE} = 'IGNORE';
 
   $sth->execute or return $sth->errstr;
 
@@ -383,7 +384,7 @@ sub delete {
   my($statement)="DELETE FROM ". $self->table. " WHERE ". join(' AND ',
     map {
       $self->getfield($_) eq ''
-        ? "$_ IS NULL"
+        ? "( $_ IS NULL OR $_ = \"\" )"
         : "$_ = ". _quote($self->getfield($_),$self->table,$_)
     } ( $self->dbdef_table->primary_key )
           ? ( $self->dbdef_table->primary_key)
@@ -396,6 +397,7 @@ sub delete {
   local $SIG{QUIT} = 'IGNORE'; 
   local $SIG{TERM} = 'IGNORE';
   local $SIG{TSTP} = 'IGNORE';
+  local $SIG{PIPE} = 'IGNORE';
 
   my $rc = $sth->execute or return $sth->errstr;
   #not portable #return "Record not found, statement:\n$statement" if $rc eq "0E0";
@@ -450,7 +452,7 @@ sub replace {
     join(' AND ',
       map {
         $old->getfield($_) eq ''
-          ? "$_ IS NULL"
+          ? "( $_ IS NULL OR $_ = \"\" )"
           : "$_ = ". _quote($old->getfield($_),$old->table,$_)
       } ( $primary_key ? ( $primary_key ) : $old->fields )
     )
@@ -462,6 +464,7 @@ sub replace {
   local $SIG{QUIT} = 'IGNORE'; 
   local $SIG{TERM} = 'IGNORE';
   local $SIG{TSTP} = 'IGNORE';
+  local $SIG{PIPE} = 'IGNORE';
 
   my $rc = $sth->execute or return $sth->errstr;
   #not portable #return "Record not found (or records identical)." if $rc eq "0E0";
@@ -590,9 +593,10 @@ is an error, returns the error, otherwise returns false.
 
 sub ut_money {
   my($self,$field)=@_;
+  $self->setfield($field, 0) if $self->getfield($field) eq '';
   $self->getfield($field) =~ /^(\-)? ?(\d*)(\.\d{2})?$/
     or return "Illegal (money) $field!";
-  $self->setfield($field,"$1$2$3" || 0);
+  $self->setfield($field, "$1$2$3" || 0);
   '';
 }
 
@@ -805,7 +809,7 @@ sub hfields {
 
 =head1 VERSION
 
-$Id: Record.pm,v 1.10 1998-12-29 11:59:33 ivan Exp $
+$Id: Record.pm,v 1.12 1999-01-25 12:26:06 ivan Exp $
 
 =head1 BUGS
 
@@ -927,7 +931,13 @@ added pod documentation ivan@sisd.com 98-sep-6
 ut_phonen got ''; at the end ivan@sisd.com 98-sep-27
 
 $Log: Record.pm,v $
-Revision 1.10  1998-12-29 11:59:33  ivan
+Revision 1.12  1999-01-25 12:26:06  ivan
+yet more mod_perl stuff
+
+Revision 1.11  1999/01/18 09:22:38  ivan
+changes to track email addresses for email invoicing
+
+Revision 1.10  1998/12/29 11:59:33  ivan
 mostly properly OO, some work still to be done with svc_ stuff
 
 Revision 1.9  1998/11/21 07:26:45  ivan