summaryrefslogtreecommitdiff
path: root/FS/FS/svc_Common.pm
diff options
context:
space:
mode:
authorlevinse <levinse>2010-12-09 19:26:20 +0000
committerlevinse <levinse>2010-12-09 19:26:20 +0000
commit57fecbd959fd5d72b20105161b7e3df94cbedd03 (patch)
tree93c68293eeefe6a29f650ee272e93e5832168e35 /FS/FS/svc_Common.pm
parent19f2731dbceb444c5dd45f57fb0a785dcaf9aa65 (diff)
-change ikano.pm to use the new part_pkg_vendor, RT7111
-implement service expiry and add export expire to ikano, RT7111 -fix edit part_pkg bug, RT7111
Diffstat (limited to 'FS/FS/svc_Common.pm')
-rw-r--r--FS/FS/svc_Common.pm34
1 files changed, 34 insertions, 0 deletions
diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm
index b377642c7..3d8fe16a5 100644
--- a/FS/FS/svc_Common.pm
+++ b/FS/FS/svc_Common.pm
@@ -375,6 +375,40 @@ sub delete {
'';
}
+=item expire DATE
+
+Currently this will only run expire exports if any are attached
+
+=cut
+
+sub expire {
+ my($self,$date) = (shift,shift);
+
+ return 'Expire date must be specified' unless $date;
+
+ local $SIG{HUP} = 'IGNORE';
+ local $SIG{INT} = 'IGNORE';
+ local $SIG{QUIT} = 'IGNORE';
+ local $SIG{TERM} = 'IGNORE';
+ local $SIG{TSTP} = 'IGNORE';
+ local $SIG{PIPE} = 'IGNORE';
+
+ my $oldAutoCommit = $FS::UID::AutoCommit;
+ local $FS::UID::AutoCommit = 0;
+ my $dbh = dbh;
+
+ my $export_args = [$date];
+ my $error = $self->export('expire', @$export_args);
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return $error;
+ }
+
+ $dbh->commit or die $dbh->errstr if $oldAutoCommit;
+
+ '';
+}
+
=item replace [ OLD_RECORD ] [ HASHREF | OPTION => VALUE ]
Replaces OLD_RECORD with this one. If there is an error, returns the error,