summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--htetc/global.asa1
-rw-r--r--htetc/handler.pl1
-rwxr-xr-xhttemplate/misc/email-invoice.cgi23
-rwxr-xr-xhttemplate/misc/print-invoice.cgi2
-rwxr-xr-xhttemplate/view/cust_bill.cgi8
5 files changed, 33 insertions, 2 deletions
diff --git a/htetc/global.asa b/htetc/global.asa
index e05701d56..e4661c3cb 100644
--- a/htetc/global.asa
+++ b/htetc/global.asa
@@ -22,6 +22,7 @@ use FS::Conf;
use FS::CGI qw(header menubar popurl table itable ntable idiot eidiot
small_custview myexit http_header);
use FS::Msgcat qw(gettext geterror);
+use FS::Misc qw( send_email );
use FS::agent;
use FS::agent_type;
diff --git a/htetc/handler.pl b/htetc/handler.pl
index 584d930b1..618c5856f 100644
--- a/htetc/handler.pl
+++ b/htetc/handler.pl
@@ -80,6 +80,7 @@ sub handler
use FS::CGI qw(header menubar popurl table itable ntable idiot eidiot
small_custview myexit http_header);
use FS::Msgcat qw(gettext geterror);
+ use FS::Misc qw( send_email );
use FS::agent;
use FS::agent_type;
diff --git a/httemplate/misc/email-invoice.cgi b/httemplate/misc/email-invoice.cgi
new file mode 100755
index 000000000..7ab1613ee
--- /dev/null
+++ b/httemplate/misc/email-invoice.cgi
@@ -0,0 +1,23 @@
+<%
+
+my $conf = new FS::Conf;
+
+#untaint invnum
+my($query) = $cgi->keywords;
+$query =~ /^(\d*)$/;
+my $invnum = $1;
+my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum});
+die "Can't find invoice!\n" unless $cust_bill;
+
+my $error = send_email(
+ 'from' => $conf->config('invoice_from'),
+ 'to' => [ grep { $_ ne 'POST' } $cust_bill->cust_main->invoicing_list ],
+ 'subject' => 'Invoice',
+ 'body' => [ $cust_bill->print_text ],
+);
+eidiot($error) if $error;
+
+my $custnum = $cust_bill->getfield('custnum');
+print $cgi->redirect("${p}view/cust_main.cgi?$custnum");
+
+%>
diff --git a/httemplate/misc/print-invoice.cgi b/httemplate/misc/print-invoice.cgi
index 0dda68a4e..144f6156a 100755
--- a/httemplate/misc/print-invoice.cgi
+++ b/httemplate/misc/print-invoice.cgi
@@ -24,6 +24,6 @@ die "Can't find invoice!\n" unless $cust_bill;
my $custnum = $cust_bill->getfield('custnum');
-print $cgi->redirect(popurl(2). "view/cust_main.cgi?$custnum#history");
+print $cgi->redirect("${p}view/cust_main.cgi?$custnum");
%>
diff --git a/httemplate/view/cust_bill.cgi b/httemplate/view/cust_bill.cgi
index 4d98f3ebc..50ee8b36c 100755
--- a/httemplate/view/cust_bill.cgi
+++ b/httemplate/view/cust_bill.cgi
@@ -20,7 +20,13 @@ print header('Invoice View', menubar(
print qq!<A HREF="${p}edit/cust_pay.cgi?$invnum">Enter payments (check/cash) against this invoice</A> | !
if $cust_bill->owed > 0;
-print qq!<A HREF="${p}misc/print-invoice.cgi?$invnum">Reprint this invoice</A>!. '<BR><BR>';
+print qq!<A HREF="${p}misc/print-invoice.cgi?$invnum">Reprint this invoice</A>!;
+if ( grep { $_ ne 'POST' } $cust_bill->cust_main->invoicing_list ) {
+ print qq! | <A HREF="${p}misc/email-invoice.cgi?$invnum">!.
+ qq!Re-email this invoice</A>!;
+}
+
+print '<BR><BR>';
my $conf = new FS::Conf;
if ( $conf->exists('invoice_latex') ) {