+#!/usr/bin/perl -w
+# don't take any world-facing input
#!/usr/bin/perl -Tw
use strict;
use FS::cust_main;
&untaint_argv; #what it sounds like (eww)
-use vars qw($opt_a $opt_c $opt_i $opt_d);
-getopts("acid:");
+use vars qw($opt_a $opt_c $opt_d $opt_p);
+getopts("acd:p");
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;
+my($time)= $opt_d ? str2time($opt_d) : $^T;
# find packages w/ bill < time && cancel != '', and create corresponding
# customer objects
$saw{ $_->custnum } = 0; # to avoid 'use of uninitialized value' errors
}
if (
- ( $main::opt_a || ( ( $_->getfield('bill') || 0 ) <= $time ) )
+ ( $opt_a || ( ( $_->getfield('bill') || 0 ) <= $time ) )
&& $bill_only{ $_->custnum }
&& !$saw{ $_->custnum }++
) {
warn "Error billing, customer #" . $cust_main->getfield('custnum') .
":" . $error if $error;
- if ($main::opt_p) {
+ if ($opt_p) {
$cust_main->apply_payments;
- $error=$cust_main->apply_credits;
+ $cust_main->apply_credits;
}
- if ($main::opt_c) {
- $error=$cust_main->collect('invoice_time'=>$time,
- 'batch_card' => $main::opt_i ? 'no' : 'yes',
- );
- warn "Error collecting from customer #" . $cust_main->gcustnum. ":$error"
+ if ($opt_c) {
+ $error=$cust_main->collect( 'invoice_time' => $time);
+ warn "Error collecting from customer #" . $cust_main->custnum. ":$error"
if $error;
#sleep 1;
}
sub usage {
- die "Usage:\n\n freeside-bill [ -c [ i ] ] [ -d 'date' ] [ -b ] user\n";
+ die "Usage:\n\n freeside-bill [ -c [ -p ] ] [ -d 'date' ] user [ custnum custnum ... ]\n";
}
=head1 NAME
=head1 SYNOPSIS
- freeside-bill [ -c [ -p ] [ -a ] [ -i ] ] [ -d 'date' ] user [ custnum custnum ... ]
+ freeside-bill [ -c [ -p ] [ -a ] ] [ -d 'date' ] user [ custnum custnum ... ]
=head1 DESCRIPTION
+This script is deprecated in 1.4.0. You should use freeside-daily instead.
+
Bills 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>.
-a: Call collect even if there isn't a new invoice (probably a bad idea for
daily use)
- -i: real-time billing (as opposed to batch billing). only relevant
- for credit cards.
-
-d: Pretend it's 'date'. Date is in any format Date::Parse is happy with,
but be careful.
custnum: if one or more customer numbers are specified, only bills those
customers. Otherwise, bills all customers.
-=head1 VERSION
-
-$Id: freeside-bill,v 1.8 2001-09-03 22:07:39 ivan Exp $
-
=head1 BUGS
=head1 SEE ALSO
-L<FS::cust_main>, config.html from the base documentation
+L<freeside-daily>, L<FS::cust_main>, config.html from the base documentation
=cut