Quotation format & fields

Yes, but if the applicable currencies are $ symbolled, then the actual country currency doesn’t get designated, only the currency symbol.

Yes, but it does not show whose dollar it is. It could be CADs being a Canadian customer, we would just have to “accept” your word that the customer was designated as USD as the view & printed modes doesn’t confirm whose currency when it comes to “$” symbol currencies - which was the point of Issue #1, AUD v’s USD.

In my region, Malaysian Ringgit, Brunei Dollar, Singapore Dollar, Australian Dollar, New Zealand Dollar, & USD all use the ‘$’ symbol.

The currency acronym is already populated in Customer details & Quote create/edit mode, just needs to be populated onto the quote view/print/PDF mode.

Haven’t looked yet, but should be same for Sales Order, Invoice & Purchase Order

This may not be an accountants top priority, but for front end interaction with B2B clients with ISO9000/9001 accreditation, this is a basic ‘must have’ feature, and just needs 1 field added to quote table and populated to Quote create/edit & print view … this is usually superseded by Customer PO number in Sales Order if successful.

@lubos is it possible to get the currency acronym to appear on the quote ‘view/PDF/print’ ?
@lubos is it possible to get a single 'client reference field added to the quote header ?

Is it possible to auto populate the currency acronym onto the view/print/PDF for quote, Sales Order, Sales Invoice.

The “$” is insufficient, and leads to confusion especially when client pays in AUD for an USD quote.

The issue is that most users wouldn’t like it. This is really important only to those who invoice across multiple currencies with the same currency symbol. Perhaps Manager could display currency only in those cases or should it be a checkbox option on invoice/quote/order edit screen?

You’d need to create a custom field, then “inject” the content of custom field into custom theme. It’s actually not very complicated and that’s the way to do it as it would offer you ultimate flexibility. First I want to simplify custom themes a bit, then I’ll write a guide on how to do it.

Thanks @lubos , Totally understand how every business is different and very difficult for you to create the ‘one size fits all’ … doing an amazing job all the same (based on my own experience using MS Access).

Just to share my biz scenario, my company purchases custom manufactured products, some made in Aus (AUD), some overseas (USD), they are sold in Aus in both (AUD) & (USD), and overseas in (USD).

Purchase & Sales are using separate AUD & USD bank accounts so not trading (USD) from (AUD) account.

Some customers in Aus may buy some goods in (AUD), others in (USD) … hence the need to be clear on currency.

This generated my first accounting nightmare, how should this be done? combined accounts or separate by currency … anyone with experience contact me by personal message. so far every accountant I’ve asked has said they’d get back to me … crickets !!!

The customer reference issue:
Many of these customers are multinational public listed companies & are anal about document tracking, hence the request for tracking their RFQ/Tender reference at Quote stage, … then if customer issues a PO, further document tracking on SO & SI of their PO number.

Failure to do this earns us a major non-compliance at ISO audit (I have had this as standard feature in my legacy system for over a decade).

Remember, you can do all of this with custom fields. The process might not be customized for your personal workflow, but it is definitely feasible.

Thanks @Tut , this may be so, but please understand I’m in my mid fifties, have some basic HTML coding skills, advanced in 2D/3D CAD & CNC coding to 5 axis without CAM … but never done ‘liquid’ code before … needing more info than this to achieve what I need to do (which may be something you can do with your eyes closed). Crying for help.

No, it’s also painful for me. When it comes to coding, I tend to know what can be done, but not how to do it. But Liquid is pretty straightforward. It was designed for merchants. See Liquid template language. For something as simple as placing a custom field, trial and error should get you through. Or any competent web developer should be able to help.

OK, I’ll give you really easy tutorial how to achieve this.

First create custom field on your sales invoice (make sure custom field is marked to “show on printed documents”)

Then go to Themes under Settings and create new theme. Actually don’t create new one from scratch, go view Plain theme than copy it to new theme (so we can edit it).

Let’s call it Plain (custom)

and notice how lines 18-21 contain following 4 lines:

{% for field in fields %}
<div style="font-weight: bold">{{ field.label }}</div>
<div style="margin-bottom: 10px">{{ field.text }}</div>
{% endfor %}

These 4 lines are responsible for showing invoice date, invoice number etc. If you want to show content of your custom field below these basic fields, insert following lines after {% endfor %}

<div style="font-weight: bold">Some Custom Field</div>
<div style="margin-bottom: 10px">{{ custom_fields["Some Custom Field"] }}</div>

You will end up with:

{% for field in fields %}
<div style="font-weight: bold">{{ field.label }}</div>
<div style="margin-bottom: 10px">{{ field.text }}</div>
{% endfor %}
<div style="font-weight: bold">Some Custom Field</div>
<div style="margin-bottom: 10px">{{ custom_fields["Some Custom Field"] }}</div>

Save your custom theme. Go to edit your sales invoice and set your custom theme to Plain (custom).

When you view your invoice, your custom field will show below basic fields.

One issue you will notice, your custom field now shows twice. The second time at the bottom of the invoice. To hide it, go back to edit your custom theme and find following lines:

{% for field in custom_fields %}
        <tr>
            <td colspan="99">
                <div style="font-weight: bold; padding-top: 20px">{{ field.label }}</div>
                <div>{{ field.text | newline_to_br }}</div>
            </td>
        </tr>
{% endfor %}

After {% for field in custom_fields %} insert this line:

{% if field.label == 'Some Custom Field' %}{% continue %}{% endif %}

So you will have this:

{% for field in custom_fields %}
{% if field.label == 'Some Custom Field' %}{% continue %}{% endif %}
<tr>
    <td colspan="99">
        <div style="font-weight: bold; padding-top: 20px">{{ field.label }}</div>
        <div>{{ field.text | newline_to_br }}</div>
    </td>
</tr>
{% endfor %}

This will suppress Some Custom Field in the bottom.

1 Like

Brilliant, worked a charm, tyvm.

That was exactly the level of information I needed.

Solves the customer reference , does a happy dance.

P.S. I like the Idea of a checkbox to switch on/off the currency acronym feature if possible

the business identifier should be shown below supplier name , address, so it is understandable to anyone who view the invoice that below business identifier is of the supplier.

<div style="font-weight: bold">Some Custom Field</div>
<div style="margin-bottom: 10px">{{ custom_fields["Some Custom Field"] }}</div>

this code by @lubos should be pasted below line number 15 code. this way the custom field will be shown below the supplier name and adress

I have modified that code to pad 10px down and for Customer Reference title & data to appear on same line … thanks to pointing me in the right direction :slight_smile:

Just realized that this was somewhat a global change, so if specific name used, like “Customer Ref” it will also appear on Purchase Orders where it should be Supplier Ref.

Is there a way to make the change local to the report type ?

If not I’ll have to be very generic and call it “Your Reference” … yuck

This is often desirable. A lot of customization are to be global so you don’t have to keep repeating yourself on each document type and when updating needs to take place, there is only one place to update.

If some customization is to be applied in some situations only, you need to apply some conditional logic to your theme.

For example, you can do something like this:

{% if custom_fields["Customer Reference"] %}
<div style="font-weight: bold; padding-top: 10px">Customer Reference # : {{ custom_fields["Customer Reference"] }}</div>
{% endif %}

{% if custom_fields["Supplier Reference"] %}
<div style="font-weight: bold; padding-top: 10px">Supplier Reference # : {{ custom_fields["Supplier Reference"] }}</div>
{% endif %}

Thanks again, that works a treat, just had to add a 2nd suppression line for "Supplier Reference in the lower custom field