X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fsvc_Common.pm;h=b67992dc265c27ca0f0267d87c4486ddbc22016f;hp=73658f67af979c642f66aeb10f52f57541b345c3;hb=af2e0f2bcb710bbd288523071d2dd630e6cf401f;hpb=62e6a2b1c99086f3a9097f2d9d29fd8c414564b8 diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 73658f67a..b67992dc2 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -122,6 +122,15 @@ sub virtual_fields { =item label +Returns a label to identify a record of this service. +Label may be displayed on freeside screens, and within customer bills. + +For example, $obj->label may return: + + - A provisioned phone number for svc_phone + - The mailing list name and e-mail address for svc_mailinglist + - The address of a rental property svc_realestate + svc_Common provides a fallback label subroutine that just returns the svcnum. =cut @@ -477,6 +486,7 @@ passed to export commands. sub replace { my $new = shift; + $noexport_hack = $new->no_export if $new->no_export; my $old = ( blessed($_[0]) && $_[0]->isa('FS::Record') ) ? shift @@ -719,6 +729,8 @@ sub setx { sub part_svc { my $self = shift; + cluck 'svc_X->part_svc called' if $DEBUG; + #get part_svc my $svcpart; if ( $self->get('svcpart') ) { @@ -1385,11 +1397,17 @@ Parameters: =item order_by +=item cancelled - if true, only returns svcs attached to cancelled pkgs; +if defined and false, only returns svcs not attached to cancelled packages + =back =cut -# svc_broadband::search should eventually use this instead +### Don't call the 'cancelled' option 'Service Status' +### There is no such thing +### See cautionary note in httemplate/browse/part_svc.cgi + sub search { my ($class, $params) = @_; @@ -1473,8 +1491,12 @@ sub search { } #svcnum - if ( $params->{'svcnum'} =~ /^(\d+)$/ ) { - push @where, "svcnum = $1"; + if ( $params->{'svcnum'} ) { + my @svcnum = ref( $params->{'svcnum'} ) + ? @{ $params->{'svcnum'} } + : $params->{'svcnum'}; + @svcnum = grep /^\d+$/, @svcnum; + push @where, 'svcnum IN ('. join(',', @svcnum) . ')' if @svcnum; } # svcpart @@ -1493,6 +1515,14 @@ sub search { push @where, "exportnum = $1"; } + if ( defined($params->{'cancelled'}) ) { + if ($params->{'cancelled'}) { + push @where, "cust_pkg.cancel IS NOT NULL"; + } else { + push @where, "cust_pkg.cancel IS NULL"; + } + } + # # sector and tower # my @where_sector = $class->tower_sector_sql($params); # if ( @where_sector ) { @@ -1566,4 +1596,3 @@ from the base documentation. =cut 1; -