#!/usr/bin/perl

use Date::Parse;
use FS::UID qw(adminsuidsetup);
use FS::Record qw(qsearch);
use FS::cust_pay;
use FS::cust_credit;

my $user;
$user = shift or die "usage: payment-faker $user";
adminsuidsetup($user);

for $month ( 1 .. 11 ) {

  print "month $month\n";

  system(qq!freeside-daily -d "$month/1/2006" $user!);

  foreach my $cust_main ( qsearch('cust_main', {} ) ) {
    next unless $cust_main->balance > 0;
    my $item = '';
    if ( rand() > .95 ) {
      $item = new FS::cust_credit {
        'amount' => $cust_main->balance,
	'_date'  => str2time("$month/1/2006"),
	'reason' => 'testing',
      };
    } else {

      if ( rand() > .5 ) {
        $payby = 'BILL';
	$payinfo = int(rand(10000));
      } else {
        $payby = 'CARD';
	$payinfo = '4111111111111111';
      }

      $item = new FS::cust_pay {
        'paid'   => $cust_main->balance,
	'_date'  => str2time("$month/1/2006"),
	'payby'  => $payby,
	'payinfo' => $payinfo,
      };
    }

    $item->custnum($cust_main->custnum);
    my $error = $item->insert;
    die $error if $error;
    $cust_main->apply_payments;
    $cust_main->apply_credits;

  }

}
