How to change invoice column names

I am a forum user like you, so a customer as well. I think that your consultancy firm is pushing you to use Pronum their preferred solution and try to show you why as a long term user of manager you now should drop Manager. I tried to help by giving you the facts not to change as you have been using Manager for a long tome and there is no evidence in practice that all of a sudden this needs changing. I tried to help but it is up to you what to do. It seems you like Manager but the company you liaise with does not.

they dont even care about manager or the system we use, they dont even know we use manager. all we do is submit our system generated invoices and credit notes to them. These don’t


even show the system we use, they never even asked about the system we use. they simply indicated what we needed to change since our templates were rejected by ZIMRA. see attached the details of the migration to new system. all is done by zimra.

By the way in the 1990s I worked and lived in Mongu for 5 years so even somewhat familiar with how things went at the time. Now our offices which we visit but no longer residing did not raise such Invoices issues and as far as they know there is no Zimra requirement nor template for column names. I can not use your PDF links (had to flag them) because it is not allowed to use PDF on this forum.

This screenshot exactly confirms what I gave been communicating. It does not show any format from Zimra but wants you to be compliant. This consultancy mixes Zimra essentials for this trial with their own take. As you are 3 minutes away please consider visiting Zimra yourself.

my friend, dont tell me what you want, i am telling you what i want. i am not sick in the brain, i am a professional accountant. if you cant help me stop trying to tell me that i am asking for nonsense. its as simple as that. furthermore there is nothing like Mongu in Zimbabwe. dont mix up issues here. Your mongu is not in Zimbabwe.

you refused me to send pdf templates required by zimra. how do i send you the templates? why do you think you know zimra more than me? ok let me say its not required by zimra, is it possible to simply get the format i want? yes or no is sufficient.

Again your are right I mixed up countries once more. I should have mentioned Bulawayo.

the change i am telling is a january 2024 change and you are talking about 5 years ago in mongu

yes, if you use the obsolete custom themes and no if you do not
.

I did not at any stage let you believe that my stay was relevant to what Zimra wants, only about understanding somewhat the cultural issues. However, as mentioned now we have business there and they are visited regularly enough to know what is going on. We know that tax authorities are getting more and more professional and internet savvy. I only tried to help. You actually indicated by the screenshot that this is a test/trial and therefore not gazetted nor formalised.

Use screenshots of the PDF or save as image (PNG, JPG, etc)

you did not read the screenshot, the testing is trial, once zimra approves the templates, its then validated and gets into production stage. we passed this phase already using out of system templates and we are now fiscalized and accepted under the new system. The boring part is that we copy manually from our system invoices to the excel compliant templates. What i wanted was to fiscalize the system invoices but they were rejected by zimra and they told us to ammend some columns and i came here with the inquiry.

You need to display a screenshot of the invoice display you want, and you will get an answer whether your invoice can be done through custom themes or not.

1 Like

Attached is the required format. what i have highlighted in yellow is what needs to be changed in terms of what currently shows in manager template vs. the specific wording needed. everything else is ok.

@archybee I am also in Zimbabwe and use Axis Solutions for fiscalisation. I am also experiencing the same challenge with integrating into the new ZIMRA FDMS so I am following closely. Below are the new required templates. I am also struggling to make changes to the one in Manager to match the required one.

Please provide a link to the Zimra website where these templates are posted.

We are currently going through the migration process with Axis Solutions as well. They haven’t yet provided feedback on the sample invoices that we supplied to them for testing (which are unchanged from what we’ve been issuing since we first had our fiscal device installed). There were a few issues that we had to resolve when we first set up our fiscal invoices a couple of years ago:

  1. When the column headings change between invoices, the fiscal software fails to read it correctly. For example, if we have multiple units on the invoice, there is a column heading for “Qty”. However, if the invoice contains only items measured in a single unit, such as hours or litres, then that becomes the column header, and the software doesn’t find “Qty” and returns an error. I solved this by editing our custom theme to always use “Qty” for the header. You can see a discussion about that with the code I used here. (We were using custom themes before they were designated as obsolete, so just continued to use the theme we had developed.)

    My understanding from the previous implementation is that the software is “trainable” to pick up whatever column headings you want to use, but those must be consistent across invoices, and not change from one to the next. I am not sure if that is still the case with the new implementation.

  2. Where our invoices run onto multiple pages, successive pages get the column headers. However, in some cases there are no item rows on the last page (for example, when it is just the total that is pushed over onto the last page). In these cases the fiscal software returns an error, I presume because it sees the column headers for “Item”, “Qty”, etc, but cannot find corresponding data for these. We solve this on a case-by-case basis by changing the invoice to remove information that causes it to run onto the final page, or by adding information so that there is at least one item row with data for the column headers on the last page.

I will update this discussion if/when we get an invoice template that satisfies Axis Solutions’ requirements, and will be eagerly watching to see if anyone else manages.

@archybee , @lchaleka
Maybe, its will give you an idea

<table style="padding: 30px; width: 100%">
    <thead>
        <tr>
            <td colspan="99">
                <table style="margin-bottom: 20px; width: 100%"><tr>
                    <td style="font-weight: bold; font-size: 32px; vertical-align: top">{{ title }}</td>
                    {% if business.logo != null %}<td style="text-align: end"><img src="{{ business.logo }}" style="max-height: 150px; max-width: 300px; display: inline" /></td>{% endif %}
                </tr></table>
                
                <table style="margin-bottom: 20px; width: 100%"><tr>
                    <td style="vertical-align: top">
                        <div style="font-weight: bold">{{ recipient.name }}</div>
                        <div>{{ recipient.address | newline_to_br }}</div>
                        <div>{{ recipient.identifier }}</div>
                    </td>
                    <td style="text-align: end; vertical-align: top">
                        {% for field in fields %}
                        <div style="font-weight: bold">{{ field.label }}</div>
                        <div style="margin-bottom: 10px">{{ field.text }}</div>
                        {% endfor %}
                    </td>
                    {% if business.address != null %}
                    <td style="width: 20px"></td>
                    <td style="width: 1px; border-left-width: 1px; border-left-color: #000; border-left-style: solid"></td>
                    <td style="width: 20px"></td>
                    <td style="width: 1px; white-space: nowrap; vertical-align: top">
                        <div style="font-weight: bold">{{ business.name }}</div>
                        <div>{{ business.address | newline_to_br }}</div>
                        {% for field in business.custom_fields %}
                        <div>{{ field.label }} {{ field.text }}</div>
                        {% endfor %}
                    </td>
                    {% endif %}
                </tr></table>

                <div style="font-size: 14px; font-weight: bold; margin-bottom: 20px">{{ description }}</div>
            </td>
        </tr>
       <tr>
            {% for column in table.columns %}
                {% assign lowercaseLabel = column.label | downcase %}

                {% if lowercaseLabel == "unit price" %}
                    {% assign updatedLabel = "PRICE" %}
                {% elsif lowercaseLabel == "qty" %}
                    {% assign updatedLabel = "QTY" %}
                {% elsif lowercaseLabel == "amount" %}
                    {% assign updatedLabel = "Amount(excl)" %}
                {% elsif lowercaseLabel == "tax amount" %}
                    {% assign updatedLabel = "VAT" %}
                {% elsif lowercaseLabel == "total" %}
                    {% assign updatedLabel = "Amount(incl)" %}
                {% else %}
                    {% assign updatedLabel = column.label %}
                {% endif %}
                
                <td style="writing-mode: horizontal-tb; border-inline-start-width: 1px; border-inline-start-style: solid; border-inline-start-color: #000; {% if forloop.last == true %} border-inline-end-width: 1px; border-inline-end-style: solid; border-inline-end-color: #000{% endif %}; text-align: {{ column.align }}; font-weight: bold; padding: 5px 10px; border-bottom-width: 1px; border-bottom-color: #000; border-top-width: 1px; border-top-color: #000; border-top-style: solid; border-bottom-style: solid{% if column.nowrap %}; width: 80px{% endif %}">
                    {{ updatedLabel }}
                </td>

            {% endfor %}
        </tr>

    </thead>
    <tbody>
        {% for row in table.rows %}
        <tr>
            {% for cell in row.cells %}
            <td style="writing-mode: horizontal-tb; border-inline-start-width: 1px; border-inline-start-style: solid; border-inline-start-color: #000; {% if forloop.last == true %} border-inline-end-width: 1px; border-inline-end-style: solid; border-inline-end-color: #000{% endif %}; padding: 5px 10px; text-align: {{ table.columns[forloop.index0].align }}; {% if table.columns[forloop.index0].nowrap %}; white-space: nowrap; width: 80px{% endif %}">{{ cell.text | newline_to_br }}</td>
            {% endfor %}
        </tr>
        {% endfor %}
        <tr>
        {% for column in table.columns %}
            <td style="writing-mode: horizontal-tb; border-inline-start-width: 1px; border-inline-start-style: solid; border-inline-start-color: #000; {% if forloop.last == true %} border-inline-end-width: 1px; border-inline-end-style: solid; border-inline-end-color: #000{% endif %}; border-bottom-width: 1px; border-bottom-color: #000000; border-bottom-style: solid">&nbsp;</td>
        {% endfor %}
        </tr>
        
        {% for total in table.totals %}
        <tr>
                {% assign lowercaseLabel = total.label | downcase %}
            
                {% if lowercaseLabel == "sub-total" %}
                    {% assign updatedLabel = "Total Excl VAT" %}
                {% elsif lowercaseLabel == "vat" %}
                    {% assign updatedLabel = "VAT TOTAL" %}
                {% elsif lowercaseLabel == "total" %}
                    {% assign updatedLabel = "TOTAL (incl) VAT USD" %}
                {% else %}
                    {% assign updatedLabel = total.label %}
                {% endif %}

            <td colspan="{{ table.columns | size | minus:1 }}" style="text-align: end; padding: 5px 10px{% if total.emphasis == true %}; font-weight: bold{% endif %}">{{ updatedLabel }}</td>
            <td style="border-left-width: 1px; border-left-style: solid; border-left-color: #000; border-right-width: 1px; border-right-style: solid; border-right-color: #000; text-align: right; white-space: nowrap; border-bottom-width: 1px; border-bottom-color: #000000; border-bottom-style: solid; padding: 5px 10px{% if total.emphasis == true %}; font-weight: bold{% endif %}">{{ total.text }}</td>
        </tr>
        {% endfor %}

        {% 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 %}

        <tr>
            <td colspan="99">
                {% if emphasis.text != null and emphasis.positive %}
                <div style="text-align: center; margin-top: 40px"><span style="color: #006400; border-width: 5px; border-color: #006400; border-style: solid; padding: 10px; font-size: 20px">{{ emphasis.text | upcase }}</span></div>
                {% endif %}

                {% if emphasis.text != null and emphasis.negative %}
                <div style="text-align: center; margin-top: 40px"><span style="color: #FF0000; border-width: 5px; border-color: #FF0000; border-style: solid; padding: 10px; font-size: 20px">{{ emphasis.text | upcase }}</span></div>
                {% endif %}
            </td>
        </tr>
    </tbody>
</table>
2 Likes

@eko, you mentioned getting feedback from your Zimbabwean colleagues. Are they using Manager? Have they managed to create invoices that satisfy the requirements for Zimra’s new FDMS? Are they using Axis Solutions for their fiscalisation?

It seems to me that there is a poor communication chain from Zimra to Axis Solutions and to their customers (ie. us). My impression is that Zimra has set up a new system and outlined in broad terms (to the public, anyway) what they require. Axis Solutions has attempted to implement a solution that feeds the data Zimra wants back to them and has provided us with a single example template without clearly defining the actual parameters that this sample template fulfils. This leaves us guessing what those parameters are, and hopefully by trial and error stumbling upon something that satisfies them. From personal experience I can say that some of the technicians at Axis Solutions are not very good at communicating the requirements and problems in a helpful way. It’s easier for them to say, “that doesn’t work, make it match our template”, than it is to say, “that doesn’t work because the column header is changing between invoices – choose a consistent header that you will use, and we can train the software to recognise that.” I guess also in most cases they’re dealing with end users who wouldn’t have a clue how to go about changing column headers or making other customisations to their accounting software.

This forum is almost entirely run by volunteers. The volunteers are trying to help you achieve a working solutions. The are two ways of achieving this:

  1. Spend your own dollars to employ your own programmers to interface to Manager as you want. This is the approach required for all business specific preferences / requirements. It is also the approach required for pseudo requirements such as where a user has seen an example which is acceptable, then demand the example is exactly mimicked despite other formats also being accepted by their government.

  2. Demonstrate the requirement is strictly required by a government in a jurisdiction with a significant Manager customer base. Lubos has said he would like such requirement to be natively supported by Manager. Which is the reason other users keep asking you for such information. They are trying to help you. Insulting user trying to help you really is not appropriate.

4 Likes