Esfresco

Documentation

Invoice Numbers

Invoice Numbers is a new, and highly anticipated, feature in Esfresco 3. This enables you to add invoice numbers to your invoices based on a defined pattern.

You can be really straight-forward with these or get really creative. If you're required to include the financial year, Esfresco 3 will automate that for you too.

Pattern Tokens

Pattern Tokens denote how the system should generate invoice numbers. These are like templates.

\D - Single digit. You can use multiple of these. Example: If your pattern is \D\D\D, and the invoice number is 7, the actual number will be 007. If you do not want zero-padding, use a single \D.
This behavior is a little different when you're using a starting count. See the first example below.

\A - Single alphabet. You can use multiple of these. Unlike digits, these will be right padded. Example: If you use \A\A\A, and your current invoice count is 7, the actual value will be GAA.

\Y - Year. This will be substituted with the full year. Example: 2017

\y - Year. This will be substituted with the short year. Example: 17

\X - Last Year. This will be substituted with the full year. Example: 2016

\x - Last Year. This will be substituted with the short year. Example: 16

All other characters remain unsubstituted.

Examples

Let's say your company's or your initials are DZ, like ours, and you're coming from an older or different system where your last invoice number is 920.

You can assemble the above using the tokens: DZ-\D\D\D. This will yield DZ-001. Now because we need the next invoice to be DZ-921, we can use the base value of DZ-920 and Esfresco will start from 921.

If you used only DZ-\D but a base of DZ-920, you won't get the desired next invoice value. This is a current known limitation of the system. Therefore, in such a case, you'll have to use 3 instances of \D instead of one.

Another example includes the use of alpha-tokens. These work similar to numerical tokens, but with alphabets and include roll-over if you use multiple in conjunction.

A simple example is DZ-AX-999 which is based on the tokens DZ-AA-DDD. Here, something interesting will happen. Since 999 is the current count, but we have 3 numerical tokens, this will roll-over to 001 and AX will become AY and the resulting number will be DZ-AY-001.

We have started with a small list of tokens and plan to expand this list with your support. As there are so many financial systems in practice, it is difficult for a small developer like us to cover them all. So if you need more tokens included, please feel free to contact us.