service address on invoice
authorjeff <jeff>
Wed, 4 Jun 2008 13:27:43 +0000 (13:27 +0000)
committerjeff <jeff>
Wed, 4 Jun 2008 13:27:43 +0000 (13:27 +0000)
FS/FS/Conf.pm
FS/FS/cust_bill.pm
conf/invoice_latex

index 4a1760f..87897c3 100644 (file)
@@ -1952,6 +1952,13 @@ worry that config_items is freeside-specific and icky.
   },
 
   {
+    'key'         => 'invoice-ship_address',
+    'section'     => 'billing',
+    'description' => 'Enable this switch to include the ship address on the invoice.',
+    'type'        => 'checkbox',
+  },
+
+  {
     'key'         => 'batch-enable',
     'section'     => 'billing',
     'description' => 'Enable credit card and/or ACH batching - leave disabled for real-time installations.',
index 8c53e7f..7f2c185 100644 (file)
@@ -1796,6 +1796,7 @@ sub print_latex {
     'date'         => time2str('%b %o, %Y', $self->_date),
     'today'        => time2str('%b %o, %Y', $today),
     'agent'        => _latex_escape($cust_main->agent->agent),
+    'agent_custid' => _latex_escape($cust_main->agent_custid),
     'payname'      => _latex_escape($cust_main->payname),
     'company'      => _latex_escape($cust_main->company),
     'address1'     => _latex_escape($cust_main->address1),
@@ -1812,8 +1813,15 @@ sub print_latex {
     #'notes'        => join("\n", $conf->config('invoice_latexnotes') ),
     'conf_dir'     => "$FS::UID::conf_dir/conf.$FS::UID::datasrc",
     'balance'      => $balance_due,
+    'ship_enable'  => $conf->exists('invoice-ship_address'),
   );
 
+  my $prefix = $cust_main->has_ship_address ? 'ship_' : '';
+  foreach ( qw( contact company address1 address2 city state zip country fax) ){
+    my $method = $prefix.$_;
+    $invoice_data{"ship_$_"} = _latex_escape($cust_main->$method);
+  }
+
   my $countrydefault = $conf->config('countrydefault') || 'US';
   if ( $cust_main->country eq $countrydefault ) {
     $invoice_data{'country'} = '';
@@ -2173,6 +2181,7 @@ sub print_html {
     'date'         => time2str('%b&nbsp;%o,&nbsp;%Y', $self->_date),
     'today'        => time2str('%b %o, %Y', $today),
     'agent'        => encode_entities($cust_main->agent->agent),
+    'agent_custid' => encode_entities($cust_main->agent_custid),
     'payname'      => encode_entities($cust_main->payname),
     'company'      => encode_entities($cust_main->company),
     'address1'     => encode_entities($cust_main->address1),
@@ -2184,9 +2193,16 @@ sub print_html {
                       || 'Payable upon receipt',
     'cid'          => $cid,
     'template'     => $template,
+    'ship_enable'  => $conf->exists('invoice-ship_address'),
 #    'conf_dir'     => "$FS::UID::conf_dir/conf.$FS::UID::datasrc",
   );
 
+  my $prefix = $cust_main->has_ship_address ? 'ship_' : '';
+  foreach ( qw( contact company address1 address2 city state zip country fax) ){
+    my $method = $prefix.$_;
+    $invoice_data{"ship_$_"} = encode_entities($cust_main->$method);
+  }
+
   if (
          defined( $conf->config_orbase('invoice_htmlreturnaddress', $template) )
       && length(  $conf->config_orbase('invoice_htmlreturnaddress', $template) )
index 442965a..19b351a 100644 (file)
@@ -58,7 +58,7 @@
 \newcommand{\returninset}[1][]{\hspace{-0.25cm}}\r
 \r
 % New command for address lines i.e. skip them if blank\r
-\newcommand{\addressline}[1]{\ifthenelse{\equal{#1}{}}{}{#1\newline}}\r
+\newcommand{\addressline}[1]{\ifthenelse{\equal{#1}{}}{}{#1\\}}\r
 \r
 % Inserts dollar symbol\r
 \newcommand{\dollar}[1][]{\symbol{36}}\r
 %\r
 %\r
 [@-- $coupon ? '\enlargethispage{-\extracouponspace}' : '' --@]\r
-\begin{tabular}{ll}\r
-\addressinset \rule{0cm}{0cm} &\r
+\addressinset \rule{0.5cm}{0cm} \r
 \makebox{\r
 \begin{minipage}[t]{5.0cm}\r
 \vspace{0.25cm}\r
 \addressline{[@-- $city --@], [@-- $state --@]~~[@-- $zip --@]}\r
 \addressline{[@-- $country --@]}\r
 \end{minipage}}\r
-\end{tabular}\r
 \hfill\r
 \makebox{\r
 \begin{minipage}[t]{6.4cm}\r
 \begin{flushright}\r
+[@--\r
+  if ($ship_enable) {\r
+    $OUT .= '\textbf{Service Address}\\\\';\r
+    $OUT .= "\\addressline{$ship_company}";\r
+    $OUT .= "\\addressline{$ship_address1}";\r
+    $OUT .= "\\addressline{$ship_address2}";\r
+    $OUT .= "\\addressline{$ship_city, $ship_state~~$ship_zip}";\r
+    $OUT .= "\\addressline{$ship_country}";\r
+    $OUT .= '~\\\\';\r
+  }else{\r
+    $OUT .= '';\r
+  }\r
+--@]\r
 Terms: [@-- $terms --@]\\\r
 [@-- $po_line --@]\\\r
 \end{flushright}\r