X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_Common.pm;h=a67504a5b49d8dc0c9ba091eed51543b2083f92a;hb=6ebad0c974a0f71ec7f040ba113f204437762a77;hp=da1cfe135abc47178a934be3c26f570e987c9ee0;hpb=097a12385d80ef52f37d4cc2bb93bc3f81e6f8e6;p=freeside.git diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index da1cfe135..a67504a5b 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -1,8 +1,9 @@ package FS::svc_Common; use strict; -use vars qw( @ISA $noexport_hack $DEBUG $me ); -use Carp qw( cluck carp croak ); #specify cluck have to specify them all.. +use vars qw( @ISA $noexport_hack $DEBUG $me + $overlimit_missing_cust_svc_nonfatal_kludge ); +use Carp qw( cluck carp croak confess ); #specify cluck have to specify them all use Scalar::Util qw( blessed ); use FS::Record qw( qsearch qsearchs fields dbh ); use FS::cust_main_Mixin; @@ -18,6 +19,8 @@ use FS::inventory_class; $me = '[FS::svc_Common]'; $DEBUG = 0; +$overlimit_missing_cust_svc_nonfatal_kludge = 0; + =head1 NAME FS::svc_Common - Object method for all svc_ records @@ -151,6 +154,11 @@ sub label { $self->svcnum; } +sub label_long { + my $self = shift; + $self->label(@_); +} + =item check Checks the validity of fields in this record. @@ -247,9 +255,11 @@ sub insert { $self->svcpart($cust_svc->svcpart); } - my $error = $self->set_auto_inventory + my $error = $self->preinsert_hook_first + || $self->set_auto_inventory || $self->check || $self->_check_duplicate + || $self->preinsert_hook || $self->SUPER::insert; if ( $error ) { $dbh->rollback if $oldAutoCommit; @@ -316,7 +326,9 @@ sub insert { } #fallbacks +sub preinsert_hook_first { ''; } sub _check_duplcate { ''; } +sub preinsert_hook { ''; } sub table_dupcheck_fields { (); } =item delete [ , OPTION => VALUE ... ] @@ -793,7 +805,19 @@ Sets or retrieves overlimit date. sub overlimit { my $self = shift; - $self->cust_svc->overlimit(@_); + #$self->cust_svc->overlimit(@_); + my $cust_svc = $self->cust_svc; + unless ( $cust_svc ) { #wtf? + my $error = "$me overlimit: missing cust_svc record for svc_acct svcnum ". + $self->svcnum; + if ( $overlimit_missing_cust_svc_nonfatal_kludge ) { + cluck "$error; continuing anyway as requested"; + return ''; + } else { + confess $error; + } + } + $cust_svc->overlimit(@_); } =item cancel