summaryrefslogtreecommitdiff
path: root/htdocs/misc
diff options
context:
space:
mode:
authorivan <ivan>1998-04-17 05:37:07 +0000
committerivan <ivan>1998-04-17 05:37:07 +0000
commitdd013679940cb0a4425eeff4df263e390d9c42e4 (patch)
tree41c8454948d5a9db8c6ce03f39c13a9694b81001 /htdocs/misc
parent9307a5317a1dcf9fafd8b6bac8ffc70c505f9e2b (diff)
Initial revision
Diffstat (limited to 'htdocs/misc')
-rwxr-xr-xhtdocs/misc/bill.cgi66
-rwxr-xr-xhtdocs/misc/cancel-unaudited.cgi85
-rwxr-xr-xhtdocs/misc/expire_pkg.cgi71
-rwxr-xr-xhtdocs/misc/susp_pkg.cgi68
-rwxr-xr-xhtdocs/misc/unsusp_pkg.cgi68
5 files changed, 358 insertions, 0 deletions
diff --git a/htdocs/misc/bill.cgi b/htdocs/misc/bill.cgi
new file mode 100755
index 000000000..d41f6d1c9
--- /dev/null
+++ b/htdocs/misc/bill.cgi
@@ -0,0 +1,66 @@
+#!/usr/bin/perl -Tw
+#
+# s/FS:Search/FS::Record/ and cgisuidsetup($cgi) ivan@sisd.com 98-mar-13
+#
+# Changes to allow page to work at a relative position in server
+# bmccane@maxbaud.net 98-apr-3
+
+use strict;
+use CGI::Base qw(:DEFAULT :CGI);
+use CGI::Carp qw(fatalsToBrowser);
+use FS::UID qw(cgisuidsetup);
+use FS::Record qw(qsearchs);
+use FS::Bill;
+
+my($cgi) = new CGI::Base;
+$cgi->get;
+&cgisuidsetup($cgi);
+
+#untaint custnum
+$QUERY_STRING =~ /^(\d*)$/;
+my($custnum)=$1;
+my($cust_main)=qsearchs('cust_main',{'custnum'=>$custnum});
+die "Can't find customer!\n" unless $cust_main;
+
+# ?
+bless($cust_main,"FS::Bill");
+
+my($error);
+
+$error = $cust_main->bill(
+# 'time'=>$time
+ );
+&idiot($error) if $error;
+
+$error = $cust_main->collect(
+# 'invoice-time'=>$time,
+# 'batch_card'=> 'yes',
+ 'batch_card'=> 'no',
+ 'report_badcard'=> 'yes',
+ );
+&idiot($error) if $error;
+
+$cgi->redirect("../view/cust_main.cgi?$custnum#history");
+
+sub idiot {
+ my($error)=@_;
+ CGI::Base::SendHeaders(); # one guess
+ print <<END;
+<HTML>
+ <HEAD>
+ <TITLE>Error billing customer</TITLE>
+ </HEAD>
+ <BODY>
+ <CENTER>
+ <H4>Error billing customer</H4>
+ </CENTER>
+ Your update did not occur because of the following error:
+ <P><B>$error</B>
+ </BODY>
+</HTML>
+END
+
+ exit;
+
+}
+
diff --git a/htdocs/misc/cancel-unaudited.cgi b/htdocs/misc/cancel-unaudited.cgi
new file mode 100755
index 000000000..929274f38
--- /dev/null
+++ b/htdocs/misc/cancel-unaudited.cgi
@@ -0,0 +1,85 @@
+#!/usr/bin/perl -Tw
+#
+# cancel-unaudited.cgi: Cancel an unaudited account
+#
+# Usage: cancel-unaudited.cgi svcnum
+# http://server.name/path/cancel-unaudited.cgi pkgnum
+#
+# Note: Should be run setuid freeside as user nobody
+#
+# ivan@voicenet.com 97-apr-23
+#
+# rewrote for new API
+# ivan@voicenet.com 97-jul-21
+#
+# Search->Record, cgisuidsetup($cgi) ivan@sids.com 98-mar-19
+#
+# Changes to allow page to work at a relative position in server
+# bmccane@maxbaud.net 98-apr-3
+
+use strict;
+use CGI::Base qw(:DEFAULT :CGI); # CGI module
+use CGI::Carp qw(fatalsToBrowser);
+use FS::UID qw(cgisuidsetup);
+use FS::Record qw(qsearchs);
+use FS::cust_svc;
+use FS::svc_acct;
+
+my($cgi) = new CGI::Base;
+$cgi->get;
+&cgisuidsetup($cgi);
+
+#untaint svcnum
+$QUERY_STRING =~ /^(\d+)$/;
+my($svcnum)=$1;
+
+my($svc_acct) = qsearchs('svc_acct',{'svcnum'=>$svcnum});
+&idiot("Unknown svcnum!") unless $svc_acct;
+
+my($cust_svc) = qsearchs('cust_svc',{'svcnum'=>$svcnum});
+&idiot(qq!This account has already been audited. Cancel the
+ <A HREF="../view/cust_pkg.cgi?! . $cust_svc->getfield('pkgnum') .
+ qq!pkgnum"> package</A> instead.!)
+ if $cust_svc->getfield('pkgnum') ne '';
+
+local $SIG{HUP} = 'IGNORE';
+local $SIG{INT} = 'IGNORE';
+local $SIG{QUIT} = 'IGNORE';
+local $SIG{TERM} = 'IGNORE';
+local $SIG{TSTP} = 'IGNORE';
+
+my($error);
+
+bless($svc_acct,"FS::svc_acct");
+$error = $svc_acct->cancel;
+&idiot($error) if $error;
+$error = $svc_acct->delete;
+&idiot($error) if $error;
+
+bless($cust_svc,"FS::cust_svc");
+$error = $cust_svc->delete;
+&idiot($error) if $error;
+
+$cgi->redirect("../");
+
+sub idiot {
+ my($error)=@_;
+ SendHeaders();
+ print <<END;
+<HTML>
+ <HEAD>
+ <TITLE>Error cancelling account</TITLE>
+ </HEAD>
+ <BODY>
+ <CENTER>
+ <H1>Error cancelling account</H1>
+ </CENTER>
+ <HR>
+ There has been an error cancelling this acocunt: $error
+ </BODY>
+ </HEAD>
+</HTML>
+END
+ exit;
+}
+
diff --git a/htdocs/misc/expire_pkg.cgi b/htdocs/misc/expire_pkg.cgi
new file mode 100755
index 000000000..163516627
--- /dev/null
+++ b/htdocs/misc/expire_pkg.cgi
@@ -0,0 +1,71 @@
+#!/usr/bin/perl -Tw
+#
+# expire_pkg.cgi: Expire a package
+#
+# Usage: post form to:
+# http://server.name/path/expire_pkg.cgi
+#
+# Note: Should be run setuid freeside as user nobody
+#
+# based on susp_pkg
+# ivan@voicenet.com 97-jul-29
+#
+# ivan@sisd.com 98-mar-17 FS::Search->FS::Record
+#
+# Changes to allow page to work at a relative position in server
+# bmccane@maxbaud.net 98-apr-3
+
+use strict;
+use Date::Parse;
+use CGI::Request;
+use CGI::Carp qw(fatalsToBrowser);
+use FS::UID qw(cgisuidsetup);
+use FS::Record qw(qsearchs);
+use FS::cust_pkg;
+
+my($req) = new CGI::Request;
+&cgisuidsetup($req->cgi);
+
+#untaint date & pkgnum
+
+my($date);
+if ( $req->param('date') ) {
+ str2time($req->param('date')) =~ /^(\d+)$/ or die "Illegal date";
+ $date=$1;
+} else {
+ $date='';
+}
+
+$req->param('pkgnum') =~ /^(\d+)$/ or die "Illegal pkgnum";
+my($pkgnum)=$1;
+
+my($cust_pkg) = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
+my(%hash)=$cust_pkg->hash;
+$hash{expire}=$date;
+my($new)=create FS::cust_pkg ( \%hash );
+my($error) = $new->replace($cust_pkg);
+&idiot($error) if $error;
+
+$req->cgi->redirect("../view/cust_main.cgi?".$cust_pkg->getfield('custnum'));
+
+sub idiot {
+ my($error)=@_;
+ SendHeaders();
+ print <<END;
+<HTML>
+ <HEAD>
+ <TITLE>Error expiring package</TITLE>
+ </HEAD>
+ <BODY>
+ <CENTER>
+ <H1>Error expiring package</H1>
+ </CENTER>
+ <HR>
+ There has been an error expiring this package: $error
+ </BODY>
+ </HEAD>
+</HTML>
+END
+ exit;
+}
+
diff --git a/htdocs/misc/susp_pkg.cgi b/htdocs/misc/susp_pkg.cgi
new file mode 100755
index 000000000..7b23caeb2
--- /dev/null
+++ b/htdocs/misc/susp_pkg.cgi
@@ -0,0 +1,68 @@
+#!/usr/bin/perl -Tw
+#
+# susp_pkg.cgi: Suspend a package
+#
+# Usage: susp_pkg.cgi pkgnum
+# http://server.name/path/susp_pkg.cgi pkgnum
+#
+# Note: Should be run setuid freeside as user nobody
+#
+# probably should generalize this to do cancels, suspensions, unsuspensions, etc.
+#
+# ivan@voicenet.com 97-feb-27
+#
+# now redirects to enter comments
+# ivan@voicenet.com 97-may-8
+#
+# rewrote for new API
+# ivan@voicenet.com 97-jul-21
+#
+# FS::Search -> FS::Record ivan@sisd.com 98-mar-17
+#
+# Changes to allow page to work at a relative position in server
+# bmccane@maxbaud.net 98-apr-3
+
+use strict;
+use CGI::Base qw(:DEFAULT :CGI); # CGI module
+use CGI::Carp qw(fatalsToBrowser);
+use FS::UID qw(cgisuidsetup);
+use FS::Record qw(qsearchs);
+use FS::cust_pkg;
+
+my($cgi) = new CGI::Base;
+$cgi->get;
+&cgisuidsetup($cgi);
+
+#untaint pkgnum
+$QUERY_STRING =~ /^(\d+)$/ || die "Illegal pkgnum";
+my($pkgnum)=$1;
+
+my($cust_pkg) = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
+
+bless($cust_pkg,'FS::cust_pkg');
+my($error)=$cust_pkg->suspend;
+&idiot($error) if $error;
+
+$cgi->redirect("../view/cust_main.cgi?".$cust_pkg->getfield('custnum'));
+
+sub idiot {
+ my($error)=@_;
+ SendHeaders();
+ print <<END;
+<HTML>
+ <HEAD>
+ <TITLE>Error suspending package</TITLE>
+ </HEAD>
+ <BODY>
+ <CENTER>
+ <H1>Error suspending package</H1>
+ </CENTER>
+ <HR>
+ There has been an error suspending this package: $error
+ </BODY>
+ </HEAD>
+</HTML>
+END
+ exit;
+}
+
diff --git a/htdocs/misc/unsusp_pkg.cgi b/htdocs/misc/unsusp_pkg.cgi
new file mode 100755
index 000000000..2f340c6fa
--- /dev/null
+++ b/htdocs/misc/unsusp_pkg.cgi
@@ -0,0 +1,68 @@
+#!/usr/bin/perl -Tw
+#
+# susp_pkg.cgi: Unsuspend a package
+#
+# Usage: susp_pkg.cgi pkgnum
+# http://server.name/path/susp_pkg.cgi pkgnum
+#
+# Note: Should be run setuid freeside as user nobody
+#
+# probably should generalize this to do cancels, suspensions, unsuspensions, etc.
+#
+# ivan@voicenet.com 97-feb-27
+#
+# now redirects to enter comments
+# ivan@voicenet.com 97-may-8
+#
+# rewrote for new API
+# ivan@voicenet.com 97-jul-21
+#
+# FS::Search -> FS::Record ivan@sisd.com 98-mar-17
+#
+# Changes to allow page to work at a relative position in server
+# bmccane@maxbaud.net 98-apr-3
+
+use strict;
+use CGI::Base qw(:DEFAULT :CGI); # CGI module
+use CGI::Carp qw(fatalsToBrowser);
+use FS::UID qw(cgisuidsetup);
+use FS::Record qw(qsearchs);
+use FS::cust_pkg;
+
+my($cgi) = new CGI::Base;
+$cgi->get;
+&cgisuidsetup($cgi);
+
+#untaint pkgnum
+$QUERY_STRING =~ /^(\d+)$/ || die "Illegal pkgnum";
+my($pkgnum)=$1;
+
+my($cust_pkg) = qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
+
+bless($cust_pkg,'FS::cust_pkg');
+my($error)=$cust_pkg->unsuspend;
+&idiot($error) if $error;
+
+$cgi->redirect("../view/cust_main.cgi?".$cust_pkg->getfield('custnum'));
+
+sub idiot {
+ my($error)=@_;
+ SendHeaders();
+ print <<END;
+<HTML>
+ <HEAD>
+ <TITLE>Error unsuspending package</TITLE>
+ </HEAD>
+ <BODY>
+ <CENTER>
+ <H1>Error unsuspending package</H1>
+ </CENTER>
+ <HR>
+ There has been an error unsuspending this package: $error
+ </BODY>
+ </HEAD>
+</HTML>
+END
+ exit;
+}
+