diff options
author | ivan <ivan> | 2008-09-12 02:02:01 +0000 |
---|---|---|
committer | ivan <ivan> | 2008-09-12 02:02:01 +0000 |
commit | faa9e03809537153822776b375d3add5de7c7800 (patch) | |
tree | ab67ad798e40db68c9ed392afa0e0adc1ef758dc | |
parent | b800a3e44db3b68e72933242dae6d95b6968fd52 (diff) |
add billco respooling, not re-FTPing, RT#3971
-rw-r--r-- | FS/FS/Conf.pm | 17 | ||||
-rw-r--r-- | FS/FS/cust_bill.pm | 34 | ||||
-rw-r--r-- | httemplate/misc/spool_invoices.cgi | 9 | ||||
-rwxr-xr-x | httemplate/search/cust_bill.html | 13 |
4 files changed, 67 insertions, 6 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index cf569a9ea..d244dcea0 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -1865,6 +1865,21 @@ worry that config_items is freeside-specific and icky. }, { + 'key' => 'cust_bill-spoolformat', + 'section' => 'billing', + 'description' => 'Enable spooling of raw invoice data - format.', + 'type' => 'select', + 'select_enum' => [ '', 'default', 'billco', ], + }, + + { + 'key' => 'cust_bill-spoolagent', + 'section' => 'billing', + 'description' => 'Enable per-agent spooling of raw invoice data.', + 'type' => 'checkbox', + }, + + { 'key' => 'svc_acct-usage_suspend', 'section' => 'billing', 'description' => 'Suspends the package an account belongs to when svc_acct.seconds or a bytecount is decremented to 0 or below (accounts with an empty seconds and up|down|totalbytes value are ignored). Typically used in conjunction with prepaid packages and freeside-sqlradius-radacctd.', @@ -2337,7 +2352,7 @@ worry that config_items is freeside-specific and icky. { 'key' => 'card_masking_method', 'section' => 'UI', - 'description' => 'Digits to display when masking credit cards. Note that the first six digits are necessary to canonically identify the credit card type (Visa/MC, Amex, Discover, Maestro, etc.) in all cases. The first four digits can identify the most common credit card types in most cases (Visa/MC, Amex, and Discover). The first two digits can distinguish between Visa/MC and Amex.', + 'description' => 'Digits to display when masking credit cards. Note that the first six digits are necessary to canonically identify the credit card type (Visa/MC, Amex, Discover, Maestro, etc.) in all cases. The first four digits can identify the most common credit card types in most cases (Visa/MC, Amex, and Discover). The first two digits can distinguish between Visa/MC and Amex. Note: You should manually remove stored paymasks if you change this value on an existing database, to avoid problems using stored cards.', 'type' => 'select', 'select_hash' => [ '' => '123456xxxxxx1234', diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index 4fa876bb9..61ae6c092 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -996,6 +996,24 @@ sub ftp_invoice { ); } +=item spool_invoice [ TEMPLATENAME ] + +Spools this invoice data (see L<FS::spool_csv>) + +TEMPLATENAME is unused? + +=cut + +sub spool_invoice { + my $self = shift; + my $template = scalar(@_) ? shift : ''; + + $self->spool_csv( + 'format' => $conf->config('cust_bill-spoolformat'), + 'agent_spools' => $conf->exists('cust_bill-spoolagent'), + ); +} + =item send_if_newest [ TEMPLATENAME [ , AGENTNUM [ , INVOICE_FROM ] ] ] Like B<send>, but only sends the invoice if it is the newest open invoice for @@ -2887,7 +2905,7 @@ sub _items_payments { =over 4 -=item reprint +=item process_reprint =cut @@ -2895,7 +2913,7 @@ sub process_reprint { process_re_X('print', @_); } -=item reemail +=item process_reemail =cut @@ -2903,7 +2921,7 @@ sub process_reemail { process_re_X('email', @_); } -=item refax +=item process_refax =cut @@ -2911,7 +2929,7 @@ sub process_refax { process_re_X('fax', @_); } -=item reftp +=item process_reftp =cut @@ -2919,6 +2937,14 @@ sub process_reftp { process_re_X('ftp', @_); } +=item respool + +=cut + +sub process_respool { + process_re_X('spool', @_); +} + use Storable qw(thaw); use Data::Dumper; use MIME::Base64; diff --git a/httemplate/misc/spool_invoices.cgi b/httemplate/misc/spool_invoices.cgi new file mode 100644 index 000000000..bfe24e6ea --- /dev/null +++ b/httemplate/misc/spool_invoices.cgi @@ -0,0 +1,9 @@ +<% $server->process %> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Resend invoices'); + +my $server = new FS::UI::Web::JSRPC 'FS::cust_bill::process_respool', $cgi; + +</%init> diff --git a/httemplate/search/cust_bill.html b/httemplate/search/cust_bill.html index d22c74483..6f440db7e 100755 --- a/httemplate/search/cust_bill.html +++ b/httemplate/search/cust_bill.html @@ -188,7 +188,7 @@ my $html_init = join("\n", map { qq!<FORM NAME="${_}form">!, ( map qq!<INPUT TYPE="hidden" NAME="$_" VALUE="$search{$_}">!, keys %search ), qq!</FORM>! -} qw( print_ email_ fax_ ftp_ ) ). +} qw( print_ email_ fax_ ftp_ spool_ ) ). '<SCRIPT TYPE="text/javascript"> @@ -216,6 +216,12 @@ function confirm_ftp_process() { } ftp_process(); } +function confirm_spool_process() { + if ( ! confirm("Are you sure you want to re-spool these invoices?") ) { + return; + } + spool_process(); +} </SCRIPT>'; @@ -235,6 +241,11 @@ if ( $FS::CurrentUser::CurrentUser->access_right('Resend invoices') ) { push @$menubar, 'FTP these invoices' => "javascript:confirm_ftp_process()" if $conf->exists('cust_bill-ftpformat'); + + push @$menubar, 'Spool these invoices' => + "javascript:confirm_spool_process()" + if $conf->exists('cust_bill-spoolformat'); + } </%init> |