Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
# 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 %} {% 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 %} {% endif %} </td> </tr> {% endfor %} </table> </td> </tr> {% endif %}
This paste will be private.
From the Design Piracy series on my blog: