summaryrefslogtreecommitdiff
path: root/bin/bill
diff options
context:
space:
mode:
Diffstat (limited to 'bin/bill')
-rwxr-xr-xbin/bill176
1 files changed, 0 insertions, 176 deletions
diff --git a/bin/bill b/bin/bill
deleted file mode 100755
index 9553af966..000000000
--- a/bin/bill
+++ /dev/null
@@ -1,176 +0,0 @@
-#!/usr/bin/perl -Tw
-
-use strict;
-use Fcntl qw(:flock);
-use Date::Parse;
-use Getopt::Std;
-use FS::UID qw(adminsuidsetup swapuid);
-use FS::Record qw(qsearch qsearchs);
-use FS::cust_main;
-
-&untaint_argv; #what it sounds like (eww)
-use vars qw($opt_b $opt_c $opt_i $opt_d);
-getopts("bcid:"); #switches
-my $user = shift or die &usage;
-
-adminsuidsetup $user;
-
-#we're at now now (and later).
-my($time)= $main::opt_d ? str2time($main::opt_d) : $^T;
-
-# find packages w/ bill < time && cancel != '', and create corresponding
-# customer objects
-
-my($cust_main,%saw);
-foreach $cust_main (
- map {
- if ( ( $_->getfield('bill') || 0 ) <= $time &&
- !$saw{ $_->getfield('custnum') }++ ) {
- qsearchs('cust_main',{'custnum'=> $_->getfield('custnum') } );
- } else {
- ();
- }
- } ( qsearch('cust_pkg', { 'cancel' => '' }),
- qsearch('cust_pkg', { 'cancel' => 0 }),
- )
-) {
-
- # and bill them
-
- print "Billing customer #" . $cust_main->getfield('custnum') . "\n";
-
- my($error);
-
- $error=$cust_main->bill('time'=>$time);
- warn "Error billing, customer #" . $cust_main->getfield('custnum') .
- ":" . $error if $error;
-
- if ($main::opt_c) {
- $error=$cust_main->collect('invoice_time'=>$time,
- 'batch_card' => $main::opt_i ? 'no' : 'yes',
- );
- warn "Error collecting customer #" . $cust_main->getfield('custnum') .
- ":" . $error if $error;
-
- #sleep 1;
-
- }
-
-}
-
-# subroutines
-
-sub untaint_argv {
- foreach $_ ( $[ .. $#ARGV ) { #untaint @ARGV
- $ARGV[$_] =~ /^([\w\-\/]*)$/ || die "Illegal arguement \"$ARGV[$_]\"";
- $ARGV[$_]=$1;
- }
-}
-
-sub usage {
- die "Usage:\n\n bill [ -c [ i ] ] [ -d 'date' ] [ -b ] user\n";
-}
-
-=head1 NAME
-
-bill - Command line (crontab, script) interface to customer billing.
-
-=head1 SYNOPSIS
-
- bill [ -c [ i ] ] [ -d 'date' ] user
-
-=head1 DESCRIPTION
-
-Bills all customers. Searches for customers who are due for billing and calls
-the bill and collect methods of a cust_main object. See L<FS::cust_main>.
-
--c: Turn on collecting (you probably want this).
-
--i: real-time billing (as opposed to batch billing). only relevant
- for credit cards.
-
--d: Pretent it's 'date'. Date is in any format Date::Parse is happy with,
- but be careful.
-
-user: From the mapsecrets file - see config.html from the base documentation
-
-=head1 VERSION
-
-$Id: bill,v 1.6 1998-11-15 02:53:00 ivan Exp $
-
-=head1 BUGS
-
-=head1 SEE ALSO
-
-L<FS::cust_main>, config.html from the base documentation
-
-=head1 HISTORY
-
-ivan@voicenet.com sep/oct 96
-
-separated billing and collections, cleaned up code.
-ivan@voicenet.com 96-nov-11
-
-added -d option
-ivan@voicenet.com 96-nov-13
-
-added -v option and started to implement it, added 'd:' to getopts call
- (oops!)
-ivan@voicenet.com 97-jan-2
-
-added more debug messages, moved some searches to fssearch.pl library (for
-speed)
-rewrote "all customer" finder to know about bill dates, for speed.
-ivan@voicenet.com 97-jan-8
-
-thought about it a while, and removed passing of the -d option to collect...?
-ivan@voicenet.com 97-jan-14
-
-make all -v stuff STDERR
-ivan@voicenet.com 97-feb-4
-
-added pkgnum as argument to program from /db/part_pkg, with kludge for the
-"/bin/echo XX" 's already there.
-ivan@voicenet.com 97-feb-23
-
-- general cleanup
-- customers who are suspended can still be billed for the setup fee
-- cust_pkg record is re-read after the package setup fee program is run.
- this way,
- that program can modify the record (for example, to start accounts off
- suspended)
- (best to think four or five times before modifying anything else!)
-ivan@voicenet.com 97-feb-26
-
-don't bill recurring fee if its not time! (was removed)
-ivan@voicenet.com 97-mar-6
-
-added -b option, send batch when done billing.
-ivan@voicenet.com 97-apr-4
-
-insecure dependency on line 179ish below needs to be fixed before bill is
-used setuid
-ivan@voicenet.com 97-jun-2
-
-removed running of setup program (depriciated)
-ivan@voicenet.com 97-jul-21
-
-rewrote for new API, removed option to specify custnums (use FS::Bill
-instead), removed -v option (?)
-ivan@voicenet.com 97-jul-22 - 23 - 25 -28
-(need to add back in email stuff, look in /home/ivan/old/dbin/collect)
-
-s/suidsetup/adminsuidsetup/, s/FS::Search/FS::Record/, added some batch
-exporting stuff (which still needs to be generalized) and removed &idiot
-ivan@sisd.com 98-may-27
-
-$Log: bill,v $
-Revision 1.6 1998-11-15 02:53:00 ivan
-afterthought
-
-Revision 1.4 1998/11/07 08:21:26 ivan
-missing use
-
-=cut
-
-