new bill script,
[freeside.git] / bin / bill
diff --git a/bin/bill b/bin/bill
deleted file mode 100755 (executable)
index 9553af9..0000000
--- 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
-
-