X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=site_perl%2FRecord.pm;h=7c2980b9f90c0c0e9f83a3b4ec7b5ab4a0cbdd81;hb=1e8ee4ebfca24ef9039b565f26893d655ffa42f3;hp=111bb82a2861b60719ceea4a14576126851ec6dd;hpb=0bf5ad9ff0a65195db88ed0bac3aa11c33ec1ad3;p=freeside.git diff --git a/site_perl/Record.pm b/site_perl/Record.pm index 111bb82a2..7c2980b9f 100644 --- a/site_perl/Record.pm +++ b/site_perl/Record.pm @@ -4,7 +4,7 @@ use strict; use vars qw($dbdef_file $dbdef $setup_hack $AUTOLOAD @ISA @EXPORT_OK); use subs qw(reload_dbdef); use Exporter; -use Carp; +use Carp qw(carp cluck croak confess); use File::CounterFile; use FS::UID qw(dbh checkruid swapuid getotaker datasrc); use FS::dbdef; @@ -14,7 +14,7 @@ use FS::dbdef; #ask FS::UID to run this stuff for us later $FS::UID::callback{'FS::Record'} = sub { - $File::CounterFile::DEFAULT_DIR = "/usr/local/etc/freeside/counters". datasrc; + $File::CounterFile::DEFAULT_DIR = "/usr/local/etc/freeside/counters.". datasrc; $dbdef_file = "/usr/local/etc/freeside/dbdef.". datasrc; &reload_dbdef unless $setup_hack; #$setup_hack needed now? }; @@ -169,9 +169,12 @@ sub qsearch { my($sth); my($statement) = "SELECT * FROM $table". ( @fields ? " WHERE ". join(' AND ', - map("$_ = ". _quote($record->{$_},$table,$_), @fields) - ) - : '' + map { + $self->getfield($_) eq '' + ? "$_ IS NULL" + : "$_ = ". _quote($self->getfield($_),$table,$_) + } @fields) + ) : '' ); $sth=$dbh->prepare($statement) or croak $dbh->errstr; #is that a little too harsh? hmm. @@ -181,7 +184,7 @@ sub qsearch { eval 'create FS::'. $table. ' ( $sth->fetchrow_hashref );'; } ( 1 .. $sth->execute ); } else { - carp "qsearch: warning: FS::$table not loaded; returning generic FS::Record objects"; + cluck "qsearch: warning: FS::$table not loaded; returning generic FS::Record objects"; map { new FS::Record ($table,$sth->fetchrow_hashref); } ( 1 .. $sth->execute ); @@ -754,6 +757,10 @@ sub fields { =back +=head1 VERSION + +$Id: Record.pm,v 1.7 1998-11-15 10:56:31 ivan Exp $ + =head1 BUGS This module should probably be renamed, since much of the functionality is @@ -871,7 +878,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.5 1998-11-13 09:56:51 ivan +Revision 1.7 1998-11-15 10:56:31 ivan +qsearch gets sames "IS NULL" semantics as other WHERE clauses + +Revision 1.6 1998/11/15 05:31:03 ivan +bugfix for new config layout + +Revision 1.5 1998/11/13 09:56:51 ivan change configuration file layout to support multiple distinct databases (with own set of config files, export, etc.)