Report abuse

# Cashboard invoice templates for hiding hourly cost

Create this as html_invoice_no_hourly

<style type="text/css">
  {% include 'css_document' %}
</style>

<div class="left_aligned">
  <h1 id="doc_title">{{ account.company.name }}</h1>
  <div class="subheader">Invoice {{ invoice.number }}</div>
</div>


<div id="company_info" class="right_aligned">
  <p>
    {% include 'company' for account.company %}
  </p>
</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 'client' for invoice.client %}
        </td>
      </tr>
      <tr>
        {{ # INVOICE DATE }}
        <td>{{ 'Invoice Date' | make_label }}</td>
        <td style="padding-right:10px;">
          {{ invoice.invoice_date | format_date }}
          <span class="info noprint">
            ({{ invoice.invoice_date | format_date_in_english }})
          </span>
        </td>
      </tr>
      <tr>
        {{ # INVOICE DUE DATE }}
        <td>{{ 'Due Date' | make_label }}</td>
        <td style="padding-right:10px;">
          {{ invoice.due_date | format_date }}
          <span class="info noprint">
            ({{ invoice.due_date | format_date_in_english }})
          </span>
        </td>
      </tr>
    </table>
  </div>

  {{ # RIGHT DETAILS }}

  <div class="right_aligned">
    {% if invoice.has_been_paid %}
      {% if invoice.paid_on != null %}
      <span class="bigger">PAID IN FULL ON<br/>{{ invoice.paid_on | format_date }}</span>
      {% endif %}
    {% else %}
      <span class="bigger">TOTAL DUE ON<br/> {{ invoice.due_date | format_date }}</span><br/>
    {% endif %}

    <div id="total_amount">
      {{ invoice.total | format_money }}
    </div>

    {% if invoice.payment_count > 0 && invoice.has_been_paid == false %}
      <span class="info">Balance {{ invoice.balance | format_money }}</span>
    {% endif %}


  </div>

  <div class="clear"></div>
</div>

<div class="clear"></div>


{{ # NOTES }}

{% if invoice.notes != blank %}
  <h2>Notes</h2>
  <div class="content_pad">
    {{ invoice.notes | format_text }}
  </div>
{% endif %}


{{ # INVOICE ITEMS TABLE }}

<table class="list" cellpadding="0" cellspacing="0">
  <colgroup>
    <col />
    <col style="width:130px;" />
  </colgroup>
  <tr>
    <th class="first">Item Description</th>
    <th class="numeric last">Total</th>
  </tr>
  {% if invoice.line_items == null %} 
    <tbody id="no_items_body">
      <tr>
        <td colspan="2" class="first last info">
          No items have been created for this invoice yet.
        </td>
      </tr>
    </tbody>
  {% else %}
    <tbody id="item_list_body">
      {{ # INVOICE ITEM LOOP }}

      {{ # First, display items that don't belong to any project }}
      {% for item in invoice.items_ad_hoc %}
        {% include 'invoice_row_no_hourly' for item %}
      {% endfor %}
      
      {{ # Now, display items grouped by project that belong to one }}
      {{ # This can contain items invoiced from an estimate as well }}
      {% for project in invoice.items_by_project %}
        <tr class="summary project">
          <td colspan="2" class="first last">
            {{ project[0] }}
          </td>
        </tr>
        {% for item in project[1] %}
          {% include 'invoice_row_no_hourly' for item %}
        {% endfor %}
      {% endfor %}
      
      
    </tbody>
  {% endif %}
  
  {{ # ITEM FOOTER }}
  
  <tbody id="item_list_footer">
    {{ # ITEM TOTAL }}
    <tr class="summary first">
      <td class="first numeric"><b>Item Total</b></td>
      <td class="numeric money_gain last">{{ invoice.item_actual | format_money }}</td>
    </tr>
    {% if invoice.sales_tax != null %}
      {{ # SALES TAX }}
      <tr class="summary">
        <td class="first numeric">
          <b>Tax</b> - {{ invoice.sales_tax }}%
        </td>
        <td class="numeric money_gain last">{{ invoice.tax_cost | format_money }}</td>
      </tr>
    {% endif %}
    {% if invoice.sales_tax_2 != null %}
      {{ # SALES TAX 2 }}
      <tr class="summary">
        <td class="first numeric">
          <b>Tax 2</b> - {{ invoice.sales_tax_2 }}%
        </td>
        <td class="numeric money_gain last">{{ invoice.tax_cost_2 | format_money }}</td>
      </tr>
    {% endif %}

    {{ # EARLY DISCOUNT }}
    {% if invoice.should_apply_early_discount == true %}
      <tr class="summary">
        <td class="first numeric">
          <b>Early Payment Discount</b> - {{ invoice.discount_percentage }}% every {{ invoice.early_period_in_days }} days paid early
        </td>
        <td class="numeric money_gain last">
          {{ invoice.early_discount | format_money }}
        </td>
      </tr>
    {% endif %}
    
    {{ # OVERALL DISCOUNT }}
    {% if invoice.should_apply_flat_discount == true %}
      <tr class="summary">
        <td class="first numeric">
          <b>Discount</b> - {{ invoice.discount_percentage }}%
        </td>
        <td class="numeric money_gain last">
          {{ invoice.flat_discount | format_money }}
        </td>
      </tr>
    {% endif %}

    {{ # LATE FEE }}
    {% if invoice.should_apply_late_fee == true %}
      <tr class="summary">
        <td class="first numeric">
          <b>Late Fee</b> - {{ invoice.late_percentage }}% every {{ invoice.late_period_in_days }} days past due
        </td>
        <td class="numeric money_gain last">{{ invoice.late_fee | format_money }}</td>
      </tr>
    {% endif %}


    {% if invoice.payments %}
      {{ # INVOICE TOTAL }}
      <tr class="summary">
        <td class="first numeric">Invoice Total</td>
        <td class="numeric money_gain last">{{ invoice.total | format_money }}</td>
      </tr>
      {% for payment in invoice.payments %}
        {{ # PAYMENTS }}
        <tr class="summary">
          <td class="first numeric">
            Payment: {{ payment.number }} - {{ payment.created_on | format_date }}
          </td>
          <td class="numeric money_loss last">
            {{ payment.amount | format_money }}
          </td>
        </tr>
      {% endfor %}
    {% endif %}

    {{ # FINAL TOTAL }}
    <tr class="footer">
      {% if invoice.has_been_paid %}
        <td class="first numeric last">
          <span class="money_gain">Paid in full</span>
        </td>
      {% else %}
        <td class="first numeric">Total Due</td>
        <td class="numeric last">
          <span class="money_gain">{{ invoice.balance | format_money }}</span>
        </td>
      {% endif %}
    </tr>
  </tbody>
  
</table>

Create this as invoice_row_no_hourly


{% assign time_entry_class = '' %}

{% if invoice.include_time_entries || invoice.include_expenses %}
  {% assign time_entry_class = 'line' %}
{% endif %}

<tr class="{% cycle 'parent_row': 'even', 'odd' %} {{time_entry_class}}">
  <td class="first">
    {{ item.title }}
    {% if item.description != blank %}
      <br/>
      <span class="info">
      {{ item.description | format_text }}
      </span>
    {% endif %}
  </td>
  <td class="numeric money_gain last" id="">
    {{ item.total | format_money }}
  </td>
</tr>

{{ # TIME ENTRY DISPLAY }}
{% if item.has_time_entries_shown %}
  <tr class="{% cycle 'child_row': 'even', 'odd' %}">
    <td class="first last" colspan="6">
      <table class="inner">
        <colgroup>
          <col style="width:50px;" />
          <col style="width:120px;" />
          <col />
        </colgroup>
        {% for entry in item.time_entries %}
          <tr class="info">
            <td class="numeric" style="vertical-align:top;white-space:nowrap;">
              {{ entry.created_on | format_date }}
            </td>
            <td style="padding-left:10px !important; vertical-align:top;">{{ entry.person_name }}</td>
            <td style="vertical-align:top;">
              {% if entry.description != blank %}
                {{ entry.description | format_text }}
              {% else %}
                &nbsp;
              {% endif %}
            </td>
          </tr>
        {% endfor %}
      </table>
    </td>
  </tr>
{% endif %}

{{ # EXPENSE DISPLAY }}
{% if item.has_expenses_shown %}
  <tr class="{% cycle 'child_row': 'even', 'odd' %}">
    <td class="first last" colspan="6">
      <table class="inner">
        <colgroup>
          <col style="width:50px;" />
          <col style="width:70px;" />
          <col style="width:120px;" />
          <col />
        </colgroup>
        {% for expense in item.expenses %}
          <tr class="info">
            <td class="numeric" style="vertical-align:top;white-space:nowrap;">
              {{ expense.created_on | format_date }}
            </td>
            <td class="numeric" style="vertical-align:top;">{{ expense.amount | format_money }}</td>
            <td style="padding-left:10px !important; vertical-align:top;">{{ expense.person_name }}</td>
            <td style="vertical-align:top;">
              {% if expense.description != blank %}
                {{ expense.description | format_text }}
              {% else %}
                &nbsp;
              {% endif %}
            </td>
          </tr>
        {% endfor %}
      </table>
    </td>
  </tr>
{% endif %}