summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate')
-rwxr-xr-xhttemplate/misc/email-statement.cgi19
-rw-r--r--httemplate/misc/send-invoice.cgi30
-rwxr-xr-xhttemplate/misc/send-statement.cgi28
-rw-r--r--httemplate/search/cust_event.html23
-rwxr-xr-xhttemplate/view/cust_bill-pdf.cgi22
-rwxr-xr-xhttemplate/view/cust_bill-ps.cgi21
-rwxr-xr-xhttemplate/view/cust_bill.cgi37
-rwxr-xr-xhttemplate/view/cust_statement.html9
8 files changed, 134 insertions, 55 deletions
diff --git a/httemplate/misc/email-statement.cgi b/httemplate/misc/email-statement.cgi
deleted file mode 100755
index 67f654d64..000000000
--- a/httemplate/misc/email-statement.cgi
+++ /dev/null
@@ -1,19 +0,0 @@
-<% $cgi->redirect("${p}view/cust_main.cgi?$custnum") %>
-<%init>
-
-die "access denied"
- unless $FS::CurrentUser::CurrentUser->access_right('Resend invoices');
-
-#untaint statementnum
-my($query) = $cgi->keywords;
-$query =~ /^((.+)-)?(\d+)$/;
-my $template = $2 || 'statement'; #XXX configure... via event?? eh..
-my $statementnum = $3;
-my $cust_statement = qsearchs('cust_statement',{'statementnum'=>$statementnum});
-die "Can't find statement!\n" unless $cust_statement;
-
-$cust_statement->email($template);
-
-my $custnum = $cust_statement->getfield('custnum');
-
-</%init>
diff --git a/httemplate/misc/send-invoice.cgi b/httemplate/misc/send-invoice.cgi
new file mode 100644
index 000000000..32dfe276d
--- /dev/null
+++ b/httemplate/misc/send-invoice.cgi
@@ -0,0 +1,30 @@
+<% $cgi->redirect("${p}view/cust_main.cgi?$custnum") %>
+<%once>
+
+my %method = ( map { $_=>1 } qw( email print fax_invoice ) );
+
+</%once>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Resend invoices');
+
+my $invnum = $cgi->param('invnum');
+my $template = $cgi->param('template');
+my $notice_name = $cgi->param('notice_name') if $cgi->param('notice_name');
+my $method = $cgi->param('method');
+
+$method .= '_invoice' if $method eq 'fax'; #!
+
+die "unknown method $method" unless $method{$method};
+
+my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum});
+die "Can't find invoice!\n" unless $cust_bill;
+
+$cust_bill->$method({ 'template' => $template,
+ 'notice_name' => $notice_name,
+ });
+
+my $custnum = $cust_bill->getfield('custnum');
+
+</%init>
diff --git a/httemplate/misc/send-statement.cgi b/httemplate/misc/send-statement.cgi
new file mode 100755
index 000000000..e363fbd09
--- /dev/null
+++ b/httemplate/misc/send-statement.cgi
@@ -0,0 +1,28 @@
+<% $cgi->redirect("${p}view/cust_main.cgi?$custnum") %>
+<%once>
+
+my %method = map { $_=>1 } qw( email print fax_invoice );
+
+</%once>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Resend invoices');
+
+my $statementnum = $cgi->param('statementnum');
+my $template = $cgi->param('template') || 'statement'; #XXX configure... via event?? eh..
+my $notice_name = $cgi->param('notice_name') if $cgi->param('notice_name');
+my $method = $cgi->param('method');
+
+$method .= '_invoice' if $method eq 'fax'; #!
+
+die "unknown method $method" unless $method{$method};
+
+my $cust_statement = qsearchs('cust_statement',{'statementnum'=>$statementnum});
+die "Can't find statement!\n" unless $cust_statement;
+
+$cust_statement->$method({ 'template' => $template });
+
+my $custnum = $cust_statement->getfield('custnum');
+
+</%init>
diff --git a/httemplate/search/cust_event.html b/httemplate/search/cust_event.html
index 715d1ca9a..f8cf6b2a6 100644
--- a/httemplate/search/cust_event.html
+++ b/httemplate/search/cust_event.html
@@ -75,29 +75,34 @@ my $status_sub = sub {
my $part_event = $cust_event->part_event;
- if ( $part_event->eventtable eq 'cust_bill' && $part_event->templatename ) {
- my $alt_templatename = $part_event->templatename;
- my $alt_link = "$alt_templatename-". $cust_event->tablenum;
+ if ( $part_event->eventtable eq 'cust_bill'
+ && ( $part_event->templatename || $part_event->option('notice_name') )
+ )
+ {
+ my $link = 'invnum='. $cust_event->tablenum;
+ $link .= ';template='. uri_escape($part_event->templatename)
+ if $part_event->templatename;
+ $link .= ';notice_name='. uri_escape($part_event->option('notice_name'))
+ if $part_event->option('notice_name');
my $conf = new FS::Conf;
my $cust_bill = $cust_event->cust_X;
$status .= qq{
- ( <A HREF="${p}view/cust_bill.cgi?$alt_link">view</A>
- | <A HREF="${p}view/cust_bill-pdf.cgi?$alt_link.pdf">view
- typeset</A>
- | <A HREF="${p}misc/print-invoice.cgi?$alt_link">re-print</A>
+ ( <A HREF="${p}view/cust_bill.cgi?$link">view</A>
+ | <A HREF="${p}view/cust_bill-pdf.cgi?$link">view&nbsp;typeset</A>
+ | <A HREF="${p}misc/send-invoice.cgi?method=print;$link">re-print</A>
};
if ( grep { $_ ne 'POST' } $cust_bill->cust_main->invoicing_list ) {
$status .= qq{
- | <A HREF="${p}misc/email-invoice.cgi?$alt_link">re-email</A>
+ | <A HREF="${p}misc/send-invoice.cgi?method=email;$link">re-email</A>
};
}
if ( $conf->exists('hylafax') && length($cust_bill->cust_main->fax) ) {
$status .= qq{
- | <A HREF="${p}misc/fax-invoice.cgi?$alt_link">re-fax</A>
+ | <A HREF="${p}misc/send-invoice.cgi?method=fax;$link">re-fax</A>
}
}
diff --git a/httemplate/view/cust_bill-pdf.cgi b/httemplate/view/cust_bill-pdf.cgi
index f09e1b74d..51e47e00d 100755
--- a/httemplate/view/cust_bill-pdf.cgi
+++ b/httemplate/view/cust_bill-pdf.cgi
@@ -4,11 +4,23 @@
die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right('View invoices');
-#untaint invnum
+my( $invnum, $template, $notice_name );
my($query) = $cgi->keywords;
-$query =~ /^((.+)-)?(\d+)(.pdf)?$/;
-my $templatename = $2;
-my $invnum = $3;
+if ( $query =~ /^((.+)-)?(\d+)(.pdf)?$/ ) {
+ $template = $2;
+ $invnum = $3;
+ $notice_name = 'Invoice';
+} else {
+ $invnum = $cgi->param('invnum');
+ $invnum =~ s/\.pdf//i;
+ $template = $cgi->param('template');
+ $notice_name = ( $cgi->param('notice_name') || 'Invoice' );
+}
+
+my %opt = (
+ 'template' => $template,
+ 'notice_name' => $notice_name,
+);
my $cust_bill = qsearchs({
'select' => 'cust_bill.*',
@@ -19,7 +31,7 @@ my $cust_bill = qsearchs({
});
die "Invoice #$invnum not found!" unless $cust_bill;
-my $pdf = $cust_bill->print_pdf( '', $templatename);
+my $pdf = $cust_bill->print_pdf(\%opt);
http_header('Content-Type' => 'application/pdf' );
http_header('Content-Length' => length($pdf) );
diff --git a/httemplate/view/cust_bill-ps.cgi b/httemplate/view/cust_bill-ps.cgi
index 5313dbf02..881491f69 100755
--- a/httemplate/view/cust_bill-ps.cgi
+++ b/httemplate/view/cust_bill-ps.cgi
@@ -1,14 +1,25 @@
-<% $cust_bill->print_ps( '', $templatename) %>
+<% $cust_bill->print_ps(\%opt) %>
<%init>
die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right('View invoices');
-#untaint invnum
+my( $invnum, $template, $notice_name );
my($query) = $cgi->keywords;
-$query =~ /^((.+)-)?(\d+)$/;
-my $templatename = $2;
-my $invnum = $3;
+if ( $query =~ /^((.+)-)?(\d+)(.pdf)?$/ ) {
+ $template = $2;
+ $invnum = $3;
+ $notice_name = 'Invoice';
+} else {
+ $invnum = $cgi->param('invnum');
+ $template = $cgi->param('template');
+ $notice_name = ( $cgi->param('notice_name') || 'Invoice' );
+}
+
+my %opt = (
+ 'template' => $template,
+ 'notice_name' => $notice_name,
+);
my $cust_bill = qsearchs({
'select' => 'cust_bill.*',
diff --git a/httemplate/view/cust_bill.cgi b/httemplate/view/cust_bill.cgi
index 5540221d9..ce8d96a95 100755
--- a/httemplate/view/cust_bill.cgi
+++ b/httemplate/view/cust_bill.cgi
@@ -60,14 +60,14 @@
% if ( $curuser->access_right('Resend invoices') ) {
- <A HREF="<% $p %>misc/print-invoice.cgi?<% $link %>">Re-print this invoice</A>
+ <A HREF="<% $p %>misc/send-invoice.cgi?method=print;<% $link %>">Re-print this invoice</A>
% if ( grep { $_ ne 'POST' } $cust_bill->cust_main->invoicing_list ) {
- | <A HREF="<% $p %>misc/email-invoice.cgi?<% $link %>">Re-email this invoice</A>
+ | <A HREF="<% $p %>misc/send-invoice.cgi?method=email;<% $link %>">Re-email this invoice</A>
% }
% if ( $conf->exists('hylafax') && length($cust_bill->cust_main->fax) ) {
- | <A HREF="<% $p %>misc/fax-invoice.cgi?<% $link %>">Re-fax this invoice</A>
+ | <A HREF="<% $p %>misc/send-invoice.cgi?method=fax;<% $link %>">Re-fax this invoice</A>
% }
<BR><BR>
@@ -76,7 +76,7 @@
% if ( $conf->exists('invoice_latex') ) {
- <A HREF="<% $p %>view/cust_bill-pdf.cgi?<% $link %>.pdf">View typeset invoice PDF</A>
+ <A HREF="<% $p %>view/cust_bill-pdf.cgi?<% $link %>">View typeset invoice PDF</A>
<BR><BR>
% }
@@ -92,11 +92,9 @@
<% $br ? '<BR><BR>' : '' %>
% if ( $conf->exists('invoice_html') ) {
-
- <% join('', $cust_bill->print_html('', $templatename) ) %>
+ <% join('', $cust_bill->print_html(\%opt) ) %>
% } else {
-
- <PRE><% join('', $cust_bill->print_text('', $templatename) ) %></PRE>
+ <PRE><% join('', $cust_bill->print_text(\%opt) ) %></PRE>
% }
<% include('/elements/footer.html') %>
@@ -107,11 +105,22 @@ my $curuser = $FS::CurrentUser::CurrentUser;
die "access denied"
unless $curuser->access_right('View invoices');
-#untaint invnum
+my( $invnum, $template, $notice_name );
my($query) = $cgi->keywords;
-$query =~ /^((.+)-)?(\d+)$/;
-my $templatename = $2;
-my $invnum = $3;
+if ( $query =~ /^((.+)-)?(\d+)$/ ) {
+ $template = $2;
+ $invnum = $3;
+ $notice_name = 'Invoice';
+} else {
+ $invnum = $cgi->param('invnum');
+ $template = $cgi->param('template');
+ $notice_name = $cgi->param('notice_name');
+}
+
+my %opt = (
+ 'template' => $template,
+ 'notice_name' => $notice_name,
+);
my $conf = new FS::Conf;
@@ -135,6 +144,8 @@ my $display_custnum = $cust_bill->cust_main->display_custnum;
#my $printed = $cust_bill->printed;
-my $link = $templatename ? "$templatename-$invnum" : $invnum;
+my $link = "invnum=$invnum";
+$link .= ';template='. uri_escape($template) if $template;
+$link .= ';notice_name='. $notice_name if $notice_name;
</%init>
diff --git a/httemplate/view/cust_statement.html b/httemplate/view/cust_statement.html
index b078c9d07..74c80d3bc 100755
--- a/httemplate/view/cust_statement.html
+++ b/httemplate/view/cust_statement.html
@@ -4,16 +4,16 @@
% if ( $FS::CurrentUser::CurrentUser->access_right('Resend invoices') ) {
-%# <A HREF="<% $p %>misc/print-invoice.cgi?<% $link %>">Re-print this statement</A>
+%# <A HREF="<% $p %>misc/send-statement.cgi?method=print;<% $link %>">Re-print this statement</A>
% if ( grep { $_ ne 'POST' } $cust_statement->cust_main->invoicing_list ) {
%# |
- <A HREF="<% $p %>misc/email-invoice.cgi?<% $link %>">Re-email this statement</A>
+ <A HREF="<% $p %>misc/send-statement.cgi?method=email;<% $link %>">Re-email this statement</A>
% }
% if ( 0 ) {
% #if ( $conf->exists('hylafax') && length($cust_statement->cust_main->fax) ) {
- | <A HREF="<% $p %>misc/fax-invoice.cgi?<% $link %>">Re-fax this statement</A>
+ | <A HREF="<% $p %>misc/send-statement.cgi?method=fax;<% $link %>">Re-fax this statement</A>
% }
<BR><BR>
@@ -73,6 +73,7 @@ die "Statement #$statementnum not found!" unless $cust_statement;
my $custnum = $cust_statement->custnum;
my $display_custnum = $cust_statement->cust_main->display_custnum;
-my $link = $templatename ? "$templatename-$statementnum" : $statementnum;
+my $link = "statementnum=$statementnum";
+$link .= ';template='. uri_escape($templatename) if $templatename;
</%init>