summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authormark <mark>2010-07-06 12:18:11 +0000
committermark <mark>2010-07-06 12:18:11 +0000
commit4a5fcee4c1aa3ca07ac0a7921f9bd0e645ddc788 (patch)
tree7bd4b6a1ccfd7d79ef5c91fb54d59bad00bdd6a7 /httemplate
parentf52e5491164eb407549716ebfd36fae6f692b1c1 (diff)
"Bill now" link uses job queue/progressbar, RT#8995
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/elements/bill.html49
-rw-r--r--httemplate/elements/progress-init.html6
-rwxr-xr-xhttemplate/misc/bill.cgi36
-rw-r--r--httemplate/view/cust_main/billing.html9
4 files changed, 62 insertions, 38 deletions
diff --git a/httemplate/elements/bill.html b/httemplate/elements/bill.html
new file mode 100644
index 000000000..335779a0f
--- /dev/null
+++ b/httemplate/elements/bill.html
@@ -0,0 +1,49 @@
+<%doc>
+Clickable link to bill a customer.
+
+Example:
+<FORM name="MyForm">
+<% include( '/elements/bill.html',
+ ###
+ # required
+ ###
+ custnum => $custnum,
+ label => 'Bill Now!',
+ formname => 'MyForm',
+
+ ###
+ # recommended
+ ###
+ url => $p.'view/cust_main.cgi?'.$custnum,
+
+ ###
+ # optional, can contain any FS::cust_main::bill_and_collect options
+ ###
+ bill_opts => { 'batch_card' => 'yes' },
+) %>
+</FORM>
+</%doc>
+<% include('/elements/progress-init.html',
+ $formname,
+ [ 'custnum', @opt_keys ],
+ $p.'misc/bill.cgi',
+ $url ? { url => $url } : { message => $message },
+ $key,
+) %>
+<A HREF="javascript:void(0);" onclick="javascript:<%$key%>process();"><%$label%></A>
+<INPUT TYPE="hidden" NAME="custnum" VALUE="<%$custnum%>">
+% foreach(@opt_keys) {
+<INPUT TYPE="hidden" NAME="<%$_%>" VALUE="<%$bill_opts->{$_}%>">
+% }
+<%init>
+my %opt = @_;
+my $custnum = $opt{'custnum'};
+my $label = $opt{'label'};
+my $formname = $opt{'formname'};
+my $key = $formname.'bill'.$custnum;
+my $url = $opt{'url'} || '';
+my $message = $opt{'message'} || 'Finished!';
+my $bill_opts = $opt{'bill_opts'} || {};
+my @opt_keys = keys(%$bill_opts);
+my @opt_vals = values(%$bill_opts);
+</%init>
diff --git a/httemplate/elements/progress-init.html b/httemplate/elements/progress-init.html
index 20eb9bfa6..8b8da66c8 100644
--- a/httemplate/elements/progress-init.html
+++ b/httemplate/elements/progress-init.html
@@ -11,7 +11,7 @@ In misc/something.html:
$p.'misc/process_something.html',
{ url => $p.'where_to_go_next.html' },
#or { message => 'Finished!' },
- );
+ ) %>
</FORM>
<SCRIPT TYPE="text/javascript>process();</SCRIPT>
@@ -36,11 +36,9 @@ sub process_whatever { #class method
do_phase3;
$job->update_statustext(60);
# etc.
- return 'BLAH BLAH NOBODY WILL EVER SEE THIS RETURN VALUE';
+ return 'this value will be ignored';
}
-I am not responsible for errors in the above documentation.
-
</%doc>
<% include('/elements/xmlhttp.html',
'method' => 'POST',
diff --git a/httemplate/misc/bill.cgi b/httemplate/misc/bill.cgi
index 6151dce51..2bc43d7b3 100755
--- a/httemplate/misc/bill.cgi
+++ b/httemplate/misc/bill.cgi
@@ -1,38 +1,8 @@
-%if ( $error ) {
-% errorpage($error);
-%} else {
-<% $cgi->redirect(popurl(2). "view/cust_main.cgi?$custnum") %>
-%}
+<% $server->process %>
<%init>
die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right('Bill customer now');
-
-#untaint custnum
-my($query) = $cgi->keywords;
-$query =~ /^(\d*)$/;
-my $custnum = $1;
-my $cust_main = qsearchs('cust_main',{'custnum'=>$custnum});
-die "Can't find customer!\n" unless $cust_main;
-
-my $conf = new FS::Conf;
-
-my $error = $cust_main->bill_and_collect( 'fatal' => 'return',
- 'retry' => 'yes',
- );
-
- #'invoice-time'=>$time,
- #'batch_card'=> 'yes',
- #'batch_card'=> 'no',
- #'report_badcard'=> 'yes',
- #'retry_card' => 'yes',
-
- #this is used only by cust_main::batch_card
- #need to pick & create an actual config
- #value if we're going to turn this on
- #("realtime-backend" doesn't exist,
- # "backend-realtime" is for something
- # entirely different)
- #'realtime' => $conf->exists('realtime-backend'),
-
+my $server = FS::UI::Web::JSRPC->new('FS::cust_main::process_bill_and_collect', $cgi);
</%init>
+
diff --git a/httemplate/view/cust_main/billing.html b/httemplate/view/cust_main/billing.html
index c8d0c47cd..6fe6c4939 100644
--- a/httemplate/view/cust_main/billing.html
+++ b/httemplate/view/cust_main/billing.html
@@ -1,3 +1,4 @@
+<FORM name="billnow">
Billing information
%# If we can't see the unencrypted card, then bill now is an exercise in
%# frustration (without some sort of job queue magic to send it to a secure
@@ -5,7 +6,13 @@ Billing information
%if ( $FS::CurrentUser::CurrentUser->access_right('Bill customer now')
% && ! $cust_main->is_encrypted($cust_main->payinfo)
% ) {
- (<A HREF="<% $p %>misc/bill.cgi?<% $cust_main->custnum %>">Bill now</A>)
+%# (<A HREF="<% $p %>misc/bill.cgi?<% $cust_main->custnum %>">Bill now</A>)
+ (<% include('/elements/bill.html',
+ custnum => $cust_main->custnum,
+ label => 'Bill now',
+ formname => 'billnow',
+ url => $p.'view/cust_main.cgi?'.$cust_main->custnum,
+ ) %>)
% }
<% ntable("#cccccc") %><TR><TD><% ntable("#cccccc",2) %>