use strict;
use vars qw( @ISA $DEBUG $me $ignore_quantity );
use Carp;
+#use Scalar::Util qw( blessed );
use FS::Conf;
use FS::Record qw( qsearch qsearchs dbh str2time_sql );
use FS::cust_pkg;
#most FS::svc_ classes are autoloaded in svc_x emthod
use FS::svc_acct; #this one is used in the cache stuff
-@ISA = qw( FS::cust_main_Mixin FS::Record );
+@ISA = qw( FS::cust_main_Mixin FS::option_Common ); #FS::Record );
$DEBUG = 0;
$me = '[cust_svc]';
=cut
sub replace {
+# my $new = shift;
+#
+# my $old = ( blessed($_[0]) && $_[0]->isa('FS::Record') )
+# ? shift
+# : $new->replace_old;
my ( $new, $old ) = ( shift, shift );
+ $old = $new->replace_old unless defined($old);
local $SIG{HUP} = 'IGNORE';
local $SIG{INT} = 'IGNORE';
local $FS::UID::AutoCommit = 0;
my $dbh = dbh;
- $old = $new->replace_old unless defined($old);
-
if ( $new->svcpart != $old->svcpart ) {
my $svc_x = $new->svc_x;
my $new_svc_x = ref($svc_x)->new({$svc_x->hash, svcpart=>$new->svcpart });
}
}
+ #my $error = $new->SUPER::replace($old, @_);
my $error = $new->SUPER::replace($old);
if ( $error ) {
$dbh->rollback if $oldAutoCommit;
my @where = map " $_ = '$number' ", @fields;
push @where, map " $_ = '$prefix$number' ", @fields
if length($prefix);
+ if ( $prefix =~ /^\+(\d+)$/ ) {
+ push @where, map " $_ = '$1$number' ", @fields
+ }
my $extra_sql = ' AND ( '. join(' OR ', @where ). ' ) ';