This commit was generated by cvs2svn to compensate for changes in r4407,
[freeside.git] / httemplate / docs / billing.html
1 <head>
2   <title>Billing</title>
3 </head>
4 <body>
5   <h1>Billing</h1>
6   <ul>
7     <li>Add one or more <a href="../browse/part_bill_event.cgi">Invoice events</a> implmenting your business rules for re-sending invoices, retrying cards, suspending, etc.
8     <li>You can bill individual customers by clicking on the <i>Bill now</i> link on the main customer view.
9     <li>The <a href="man/bin/freeside-daily.html"><b>freeside-daily</b></a> script should be run daily to bill customers and run invoice collection events.
10     <li>Real-time credit card processing: Install the <a href="http://search.cpan.org/search?mode=module&query=Business%3A%3AOnlinePayment">Business::OnlinePayment</a> module for your processor.  Configure the <a href="../config/config-view.cgi#business-onlinepayment">business-onlinepayment</a> configuration option.  Disable the default <b>Batch card</b> <a href="../browse/part_bill_event.cgi">invoice event</a> and add one for Business::OnlinePayment.
11     <li>Optional: Credit card expiration alerts: Customize <a href="../config/config.cgi#alerter_template">alerter_template</a> configuration option and run <a href="man/bin/freeside-expiration-alerter.html">freeside-expiration-alerter</a> daily.
12     <li>Credit card decline alerts: Customize the <a href="../config/config.cgi#declinetemplate">declinetemplate</a> configuration option and set the <a href="../config/config.cgi#emaildecline">emaildecline</a> configuration option.
13     <li>Typeset (LaTeX) invoice templates
14       <ul>
15         <li>Install teTeX and Ghostscript (included with most distributions).
16         <li>Place your logo in EPS (Encapsulated PostScript) format with size 90pt X 36pt (<code>epsffit -c 0 0 90 33 yourlogo.eps &gt;logo.eps</code>) at <code>/usr/local/etc/freeside/conf.<i>your_datasrc</i>/logo.eps</code>.
17         <li>Edit the <b>invoice_latexreturnaddress</b>, <b>invoice_latexfooter</b>, <b>invoice_latexnotes</b>, and <b>invoice_latexsmallfooter</b> configuration options.  If you are adventurous, edit <b>invoice_latex</b> as well.
18       </ul>
19     <li>Plaintext invoice templates
20       <ul>
21         <li>See the <a href="http://search.cpan.org/~mjd/Text-Template/lib/Text/Template.pm">Text::Template</a> documentation for details on the substitution language.
22         <li>You <b>must</b> call the invoice_lines() function at least once - pass it a number of lines, and it returns a list of array references, each of two elements: a service description column, and a price column.  Alternatively, call invoice_lines() with no arguments, and pagination will be disabled - all invoice line items will print on one page, with no padding (recommended for email invoices).
23         <li>In addition, the following variables are available:
24           <ul>
25             <li>$invnum - invoice number
26             <li>$date - as a UNIX timestamp (see <a href="http://search.cpan.org/doc/GBARR/TimeDate-1.09/lib/Date/Format.pm">Date::Format</a> for conversion functions).
27             <li>$page - current page
28             <li>$total_pages - total pages
29             <li>@address - A six-element array containing the customer name, company, and address.
30 <!--            <li>$overdue - true if this invoice is overdue -->
31           </ul>
32       </ul>
33     <li>HTML invoice templates
34       <ul>
35         <li>Place your logo in PNG format at <code>/usr/local/etc/freeside/conf.<i>your_datasrc</i>/logo.png</code>.
36         <li>HTML invoices also use <a href="http://search.cpan.org/~mjd/Text-Template/lib/Text/Template.pm">Text::Template</a>.
37         <li>Edit the <b>invoice_html</b> configuration option.
38         <li>The following configuration options can be set to override the default behaviour of using the invoice_latex* data: <b>invoice_htmlreturnaddress</b>, and <b>invoice_htmlfooter</b>, <b>invoice_htmlnotes</b>.  
39       </ul>
40 <!--    <li>Batch credit card processing
41       <ul>
42         <li>After <a href="man/bin/freeside-daily.html"><b>freeside-daily</b></a> is run, a credit card batch will be in the <a href="schema.html#cust_pay_batch">cust_pay_batch</a> table.  Export this table to your credit card batching.
43         <li>When your batch completes, erase the cust_pay_batch records in that batch and add any necessary paymants to the <a href="schema.html#cust_pay">cust_pay</a> table.  Example code to add payments is:
44         <pre>use FS::cust_pay;
45
46 # loop over all records in batch
47
48 my $payment=create FS::cust_pay (
49   'invnum' => $invnum,
50   'paid' => $paid,
51   '_date' => $_date,
52   'payby' => $payby,
53   'payinfo' => $payinfo,
54   'paybatch' => $paybatch,
55 );
56
57 my $error=$payment->insert;
58 if ( $error ) {
59   #process error
60 }
61
62 # end loop
63 </pre>
64 All fields except paybatch are contained in the cust_pay_batch table.  You can use paybatch field to track particular batches and/or particular transactions within a batch.
65     </ul>
66 <!--      <li>The <a href="man/bin/freeside-print-batch.html"><b>freeside-print-batch</b></a> script can print or email pending credit card batches for manual entry. -->
67   </ul>
68 </body>