diff options
author | ivan <ivan> | 2008-09-10 08:34:30 +0000 |
---|---|---|
committer | ivan <ivan> | 2008-09-10 08:34:30 +0000 |
commit | 096f208ab7e91fdf6391001a2e28c0a80374ee39 (patch) | |
tree | 96381a7280998d1a1b76137da2c3f4360a019032 | |
parent | 44b5d849d7fb3af5ea1e2812097126633add0fd4 (diff) |
add re-FTP reprint, RT#create-me-tommorow-for-enet
-rw-r--r-- | FS/FS/Conf.pm | 38 | ||||
-rw-r--r-- | FS/FS/cust_bill.pm | 32 | ||||
-rw-r--r-- | httemplate/misc/ftp_invoices.cgi | 9 | ||||
-rwxr-xr-x | httemplate/search/cust_bill.html | 12 |
4 files changed, 89 insertions, 2 deletions
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index 11286a89a..cf569a9ea 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -1823,12 +1823,48 @@ worry that config_items is freeside-specific and icky. { 'key' => 'hylafax', - 'section' => '', + 'section' => 'billing', 'description' => 'Options for a HylaFAX server to enable the FAX invoice destination. They should be in the form of a space separated list of arguments to the Fax::Hylafax::Client::sendfax subroutine. You probably shouldn\'t override things like \'docfile\'. *Note* Only supported when using typeset invoices (see the invoice_latex configuration option).', 'type' => [qw( checkbox textarea )], }, { + 'key' => 'cust_bill-ftpformat', + 'section' => 'billing', + 'description' => 'Enable FTP of raw invoice data - format.', + 'type' => 'select', + 'select_enum' => [ '', 'default', 'billco', ], + }, + + { + 'key' => 'cust_bill-ftpserver', + 'section' => 'billing', + 'description' => 'Enable FTP of raw invoice data - server.', + 'type' => 'text', + }, + + { + 'key' => 'cust_bill-ftpusername', + 'section' => 'billing', + 'description' => 'Enable FTP of raw invoice data - server.', + 'type' => 'text', + }, + + { + 'key' => 'cust_bill-ftppassword', + 'section' => 'billing', + 'description' => 'Enable FTP of raw invoice data - server.', + 'type' => 'text', + }, + + { + 'key' => 'cust_bill-ftpdir', + 'section' => 'billing', + 'description' => 'Enable FTP of raw invoice data - server.', + 'type' => 'text', + }, + + { '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.', diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index 2cf5b99f3..4fa876bb9 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -974,6 +974,28 @@ sub fax_invoice { } +=item ftp_invoice [ TEMPLATENAME ] + +Sends this invoice data via FTP. + +TEMPLATENAME is unused? + +=cut + +sub ftp_invoice { + my $self = shift; + my $template = scalar(@_) ? shift : ''; + + $self->send_csv( + 'protocol' => 'ftp', + 'server' => $conf->config('cust_bill-ftpserver'), + 'username' => $conf->config('cust_bill-ftpusername'), + 'password' => $conf->config('cust_bill-ftppassword'), + 'dir' => $conf->config('cust_bill-ftpdir'), + 'format' => $conf->config('cust_bill-ftpformat'), + ); +} + =item send_if_newest [ TEMPLATENAME [ , AGENTNUM [ , INVOICE_FROM ] ] ] Like B<send>, but only sends the invoice if it is the newest open invoice for @@ -2889,6 +2911,14 @@ sub process_refax { process_re_X('fax', @_); } +=item reftp + +=cut + +sub process_reftp { + process_re_X('ftp', @_); +} + use Storable qw(thaw); use Data::Dumper; use MIME::Base64; @@ -2932,6 +2962,8 @@ sub re_X { 'debug' => 1, } ); + $method .= '_invoice' unless $method eq 'email' || $method eq 'print'; + warn " $me re_X $method: ". scalar(@cust_bill). " invoices found\n" if $DEBUG; diff --git a/httemplate/misc/ftp_invoices.cgi b/httemplate/misc/ftp_invoices.cgi new file mode 100644 index 000000000..9a072b99f --- /dev/null +++ b/httemplate/misc/ftp_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_reftp', $cgi; + +</%init> diff --git a/httemplate/search/cust_bill.html b/httemplate/search/cust_bill.html index 2860f7a4d..d22c74483 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_ ) ). +} qw( print_ email_ fax_ ftp_ ) ). '<SCRIPT TYPE="text/javascript"> @@ -210,6 +210,12 @@ function confirm_fax_process() { } fax_process(); } +function confirm_ftp_process() { + if ( ! confirm("Are you sure you want to re-FTP these invoices?") ) { + return; + } + ftp_process(); +} </SCRIPT>'; @@ -225,6 +231,10 @@ if ( $FS::CurrentUser::CurrentUser->access_right('Resend invoices') ) { push @$menubar, 'Fax these invoices' => "javascript:confirm_fax_process()" if $conf->exists('hylafax'); + + push @$menubar, 'FTP these invoices' => + "javascript:confirm_ftp_process()" + if $conf->exists('cust_bill-ftpformat'); } </%init> |