BruceF
4 post(s)
|
I’m going to post the source of the templates that I use for invoices and estimates(quotes). They may be of interest. They are customised in the following general ways: 1. No display of hours, just the totals. This is useful if you use an hourly rate for estimation but don’t charge customers by the hour. 2. No quantities and prices, just line items, descriptions, and totals. 3. New Zealand GST numbers and Tax Invoice requirements met. I hope. 4. Make into boring shades of grey. gray. Whatever :-) 5. Made client company formatting rules different from the host (your) company formatting.
These changes make some of the files a lot simpler. Seth has done a lot of work making things appear and disappear automagically, but if you don’t need this then it can be removed.
I would highly recommend that you cut and paste the standard html_invoice, html_estimate, css_document, and company files into new files first. There doesn’t appear to be any way to get back the originals other than deleting ALL customisations (I’ve already pointed out to Seth that this is a little extreme).
|
BruceF
4 post(s)
|
html_estimate
<style type="text/css">
/* DOCUMENT CSS */
{% include 'css_document' %}
</style>
{{ # AGREEMENT }}
{% if estimate.requires_agreement? && estimate.agreed_to == false %}
<div class="system_notice">
<h3>
<i>{{ account.company.name }}</i> has specified that this quote requires agreement by you before work may continue.
</h3>
<div class="content_pad">
<p>
Please read through the quote and indicate your choice at the bottom of this page.
</p>
</div>
</div>
{% endif %}
<div class="clear"></div>
<div id="doc_title" class="left_aligned">
<img src="{{ 'Latam-logo_v2.gif' | image_path }}" width="200" /><br/>
</div>
<div id="company_info" class="right_aligned">
<p>
{% include 'company' for account.company %}
</p>
</div>
<div id="doc_title" class="centre_aligned">
QUOTE
</div>
<div class="clear"></div>
<div class="left_aligned">
<h1><br/> <br/></h1>
</div>
<div class="clear"></div>
{{ # DETAILS }}
<div class="document_details">
{{ # LEFT DETAILS }}
<div class="left_aligned">
<table class="formContent">
<tr>
<td style="vertical-align:top;">{{ 'Client' | make_label }}</td>
<td>
{% include 'company_client' for estimate.company %}
</td>
</tr>
<tr>
<td>{{ 'Project' | make_label }}</td>
<td>{{ estimate.project.name }}</td>
</tr>
<tr>
{{ # INVOICE DATE }}
<td>{{ 'Quote Date' | make_label }}</td>
<td style="padding-right:10px;">
{{ estimate.created_on | format_date }}
<span class="info noprint">
({{ estimate.created_on | format_date_in_english }})
</span>
</td>
</tr>
</table>
</div>
{{ # RIGHT DETAILS }}
<div class="right_aligned">
<span >{{ 'Total Cost (excl. GST)' | make_label }}</span>
<br/>
<div id="total_amount">
{{ estimate.price_best | format_money }}
</div>
</div>
<div class="clear"></div>
</div>
{{ # INTRO }}
{% if estimate.intro_text != blank %}
<h2>Project Description</h2>
<div class="contentPad">
{{ estimate.intro_text | format_text }}
</div>
{% endif %}
{{ # LINE ITEMS FOR ESTIMATE }}
<table class="list" cellpadding="0" cellspacing="0" id="item_list">
<colgroup>
<col />
<col style="width:150px" />
</colgroup>
<tr>
<th class="first">Item Description</th>
<th class="numeric last">Cost</th>
</tr>
<tbody id="item_list_body">
{% if estimate.line_items == null %}
<tr>
<td colspan="5" class="first last info">No items have been created yet.</td>
</tr>
{% else %}
{{ # LINE ITEM LOOP }}
{% for item in estimate.line_items %}
<tr class="{% cycle 'parent_row': 'even', 'odd' %}">
<td class="first">
{{ item.title }}
{% if item.description %}
<div class="line"></div>
<div class="smaller">
{{ item.description | format_text }}
</div>
{% endif %}
</td>
{{ # TOTAL PRICES }}
<td class="numeric last">
{{ item.price_best | format_money }}
</td>
</tr>
{% endfor %}
{% endif %}
</tbody>
{{ # TABLE FOOTER }}
<tbody id="item_list_footer">
<tr class="footer">
<td class="first" style="vertical-align:middle;font-style:normal;">Total</td>
<td class="numeric last" style="font-style:normal;">{{ estimate.price_best | format_money }}</td>
</tr>
</tbody>
</table>
<br/>
{{ # TERMS }}
<h2>Payment Terms</h2>
<div class="contentPad smaller">
{% if estimate.agreement_text != blank %}
{{ estimate.agreement_text | format_text }}
{% else %}
<p>
This quotation excludes GST
</p>
{% endif %}
</div>
|
BruceF
4 post(s)
|
Hmm. I’m not so sure that pasting them in here is useful. Perhaps I should make some sample .PDFs first, and then post a .zip file link?
Let me know your thoughts. The file about needs the css_document and company_client files to work, so don’t try it just yet…
Bruce
|
Seth - Subimage LLC
Administrator
445 post(s)
|
Hey Bruce, thanks for that.
Admittedly, I need to come up with a much better way to share these full sets of templates. On the list, but very low priority at the moment ;)
A link to a zip file probably would be great. When coming up with the idea for templating I also envisioned a zip download / upload feature but that didn’t make the final cut for the first rev of the feature.
Perhaps later this year…
|