Recent Posts by BruceF

Subscribe to Recent Posts by BruceF 4 post(s) found

Jun 23, 2008
Avatar BruceF 4 post(s)

Topic: Random / How do you use estimates?

Hi Seth,

We use estimates. We don’t need any of your requested items, although I thought “creating an invoice from an estimate” was already possible? Or is it that people don’t want to create a project along with it? I don’t think I understand the items&materials request—“sundries $100” is already possible via the flat rate.

We twist the hourly fee stuff on estimates to use it as an estimating tool; our estimate template does not show the hours, just the total. This allows us to estimate tasks in terms of hours but still charge/present a fixed price. Neat huh? Others may be interested in using it that way.

Cheers,
Bruce

 
Jun 20, 2008
Avatar BruceF 4 post(s)

Topic: Liquid Templates / Cut-down templates I use (New Zealand)

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

 
Jun 20, 2008
Avatar BruceF 4 post(s)

Topic: Liquid Templates / Cut-down templates I use (New Zealand)

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/>&nbsp;<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>

 
Jun 20, 2008
Avatar BruceF 4 post(s)

Topic: Liquid Templates / Cut-down templates I use (New Zealand)

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).