re-email/fax/print links should respect template, also add direct re-send links like...
authorivan <ivan>
Thu, 19 May 2005 08:43:27 +0000 (08:43 +0000)
committerivan <ivan>
Thu, 19 May 2005 08:43:27 +0000 (08:43 +0000)
httemplate/misc/email-invoice.cgi
httemplate/misc/fax-invoice.cgi
httemplate/misc/print-invoice.cgi
httemplate/view/cust_bill.cgi

index a3130c7..34afa90 100755 (executable)
@@ -4,14 +4,17 @@ my $conf = new FS::Conf;
 
 #untaint invnum
 my($query) = $cgi->keywords;
 
 #untaint invnum
 my($query) = $cgi->keywords;
-$query =~ /^(\d*)$/;
-my $invnum = $1;
+$query =~ /^((.+)-)?(\d+)$/;
+my $template = $2;
+my $invnum = $3;
 my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum});
 die "Can't find invoice!\n" unless $cust_bill;
 
 my $error = send_email(
   $cust_bill->generate_email(
 my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum});
 die "Can't find invoice!\n" unless $cust_bill;
 
 my $error = send_email(
   $cust_bill->generate_email(
-    'from'  => $cust_bill->_agent_invoice_from || $conf->config('invoice_from'),
+    'from'     => 
+      ( $cust_bill->_agent_invoice_from || $conf->config('invoice_from') ),
+    'template' => $template,
   )
 );
 eidiot($error) if $error;
   )
 );
 eidiot($error) if $error;
index 46b2a17..d490b8e 100755 (executable)
@@ -5,15 +5,15 @@ my $lpr = $conf->config('lpr');
 
 #untaint invnum
 my($query) = $cgi->keywords;
 
 #untaint invnum
 my($query) = $cgi->keywords;
-$query =~ /^(\d*)$/;
-my $invnum = $1;
+$query =~ /^((.+)-)?(\d+)$/;
+my $template = $2;
+my $invnum = $3;
 my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum});
 die "Can't find invoice!\n" unless $cust_bill;
 
 my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum});
 die "Can't find invoice!\n" unless $cust_bill;
 
-
 my $error = &FS::Misc::send_fax(
   dialstring => $cust_bill->cust_main->getfield('fax'),
 my $error = &FS::Misc::send_fax(
   dialstring => $cust_bill->cust_main->getfield('fax'),
-  docdata       => [ $cust_bill->print_ps ],
+  docdata       => [ $cust_bill->print_ps('', $template) ],
 );
 
 die $error if $error;
 );
 
 die $error if $error;
index 144f615..5eeef34 100755 (executable)
@@ -5,17 +5,18 @@ my $lpr = $conf->config('lpr');
 
 #untaint invnum
 my($query) = $cgi->keywords;
 
 #untaint invnum
 my($query) = $cgi->keywords;
-$query =~ /^(\d*)$/;
-my $invnum = $1;
+$query =~ /^((.+)-)?(\d+)$/;
+my $template = $2;
+my $invnum = $3;
 my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum});
 die "Can't find invoice!\n" unless $cust_bill;
 
         open(LPR,"|$lpr") or die "Can't open $lpr: $!";
 
         if ( $conf->exists('invoice_latex') ) {
 my $cust_bill = qsearchs('cust_bill',{'invnum'=>$invnum});
 die "Can't find invoice!\n" unless $cust_bill;
 
         open(LPR,"|$lpr") or die "Can't open $lpr: $!";
 
         if ( $conf->exists('invoice_latex') ) {
-          print LPR $cust_bill->print_ps; #( date )
+          print LPR $cust_bill->print_ps('', $template); #( date )
         } else {
         } else {
-          print LPR $cust_bill->print_text; #( date )
+          print LPR $cust_bill->print_text('', $template); #( date )
         }
 
         close LPR
         }
 
         close LPR
index 5dd8a8d..9282b70 100755 (executable)
@@ -1,4 +1,3 @@
-<!-- mason kludge -->
 <%
 
 #untaint invnum
 <%
 
 #untaint invnum
@@ -15,76 +14,98 @@ my $custnum = $cust_bill->getfield('custnum');
 
 #my $printed = $cust_bill->printed;
 
 
 #my $printed = $cust_bill->printed;
 
-print header('Invoice View', menubar(
+my $link = $templatename ? "$templatename-$invnum" : $invnum;
+
+%>
+<%= header('Invoice View', menubar(
   "Main Menu" => $p,
   "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
   "Main Menu" => $p,
   "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
-));
-
-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>!;
-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 qq! | <A HREF="${p}misc/fax-invoice.cgi?$invnum">Refax this invoice</A>!
-  if ($conf->exists('hylafax'));
-
-print '<BR><BR>';
-
-if ( $conf->exists('invoice_latex') ) {
-  my $link = "${p}view/cust_bill-pdf.cgi?";
-  $link .= "$templatename-" if $templatename;
-  $link .= "$invnum.pdf";
-  print menubar(
-    'View typeset invoice' => $link,
-  ), '<BR><BR>';
-}
-
-#false laziness with search/cust_bill_event.cgi
-
-unless ( $templatename ) {
-  print table(). '<TR><TH>Event</TH><TH>Date</TH><TH>Status</TH></TR>';
-  foreach my $cust_bill_event (
-    sort { $a->_date <=> $b->_date } $cust_bill->cust_bill_event
-  ) {
+)) %>
+
+<% if ( $cust_bill->owed > 0 ) { %>
+  <A HREF="<%= $p %>edit/cust_pay.cgi?<%= $invnum %>">Enter payments (check/cash) against this invoice</A> |
+<% } %>
+
+<A HREF="<%= $p %>misc/print-invoice.cgi?<%= $link %>">Reprint 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>
+<% } %>
+
+<% if ( $conf->exists('hylafax') && length($cust_bill->cust_main->fax) ) { %>
+  | <A HREF="<%= $p %>misc/fax-invoice.cgi?<%= $link %>">Re-fax
+      this invoice</A>
+<% } %>
+
+<BR><BR>
+
+<% if ( $conf->exists('invoice_latex') ) { %>
+  <A HREF="<%= $p %>view/cust_bill-pdf.cgi?$link.pdf">View typeset invoice</A>
+  <BR><BR>
+<% } %>
+
+<% #false laziness with search/cust_bill_event.cgi
+   unless ( $templatename ) { %>
+
+  <%= table() %>
+  <TR>
+    <TH>Event</TH>
+    <TH>Date</TH>
+    <TH>Status</TH>
+  </TR>
+
+  <% foreach my $cust_bill_event (
+       sort { $a->_date <=> $b->_date } $cust_bill->cust_bill_event
+     ) {
+
     my $status = $cust_bill_event->status;
     $status .= ': '. encode_entities($cust_bill_event->statustext)
       if $cust_bill_event->statustext;
     my $part_bill_event = $cust_bill_event->part_bill_event;
     my $status = $cust_bill_event->status;
     $status .= ': '. encode_entities($cust_bill_event->statustext)
       if $cust_bill_event->statustext;
     my $part_bill_event = $cust_bill_event->part_bill_event;
-    print '<TR><TD>'. $part_bill_event->event;
+  %>
+    <TR>
+      <TD><%= $part_bill_event->event %>
   
   
-    if (
-      $part_bill_event->plan eq 'send_alternate'
-      && $part_bill_event->plandata =~ /^templatename (.*)$/m
-    ) {
-      my $templatename = $1;
-      print qq! ( <A HREF="${p}view/cust_bill.cgi?$templatename-$invnum">!.
-            'view</A> | '.
-            qq!<A HREF="${p}view/cust_bill-pdf.cgi?$templatename-$invnum.pdf">!.
-            'view typeset</A> )';
-    }
+        <% if (
+          $part_bill_event->plan eq 'send_alternate'
+          && $part_bill_event->plandata =~ /^(agent_)?templatename (.*)$/m
+        ) {
+          my $alt_templatename = $2;
+          my $alt_link = "$templatename-$invnum";
+        %>
+          ( <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>
+          <% if ( grep { $_ ne 'POST' }
+                       $cust_bill->cust_main->invoicing_list ) { %>
+            | <A HREF="<%= $p %>misc/email-invoice.cgi?<%= $alt_link %>">re-email</A>
+          <% } %>
+                       
+          <% if ( $conf->exists('hylafax')
+                  && length($cust_bill->cust_main->fax) ) { %>
+            | <A HREF="<%= $p %>misc/fax-invoice.cgi?<%= $alt_link %>">re-fax</A>
+          <% } %>
+
+          )
+        <% } %>
   
   
-    print '</TD><TD>'.
-          time2str("%a %b %e %T %Y", $cust_bill_event->_date). '</TD><TD>'.
-          $status. '</TD></TR>';
-  }
-  print '</TABLE><BR>';
-}
-
-if ( $conf->exists('invoice_html') ) {
-  print $cust_bill->print_html('', $templatename);
-} else {
-  print '<PRE>', $cust_bill->print_text('', $templatename), '</PRE>';
-}
-
-       #formatting
-       print <<END;
-    </FONT>
-  </BODY>
-</HTML>
-END
+      </TD>
+      <TD><%= time2str("%a %b %e %T %Y", $cust_bill_event->_date) %></TD>
+      <TD><%= $status %></TD>
+    </TR>
+  <% } %>
 
 
-%>
+  </TABLE>
+  <BR>
+
+<% } %>
+
+<% if ( $conf->exists('invoice_html') ) { %>
+  <%= $cust_bill->print_html('', $templatename) %>
+<% } else { %>
+  <PRE><%= $cust_bill->print_text('', $templatename) %></PRE>
+<% } %>
+
+</BODY></HTML>