Cheque Printer

Loved the software but it would be best if we can have a option to print automated cheques

1 Like

There was someone who is printing cheques from Manager using custom themes but honestly, that’s pushing the feature too far.

Anyway, when you create new pending bank transaction, Manager will give you an option to print it as a cheque. This feature hasn’t been released yet but it’s coming.

2 Likes

Cheque printing by manager looks Good Feature, but For now a days in Digital Transactions, we are using mostly the digital transactions to pay. So cheque printing option is very limited use.
By the way, you can use MS word or MS Excel to print cheque till the feature implement in manager. (You have to type some data manually)

2 Likes

Printing cheque through custom theme is possible, however each time one has to change the theme for printing voucher again and again.

Is there any progress on cheque printing option.

It has been requested by many on forum along with the challenge for time consumption and chances of error by handing writing.

Presently, bank is going digitalize therefore it will be appreciated if Manager Team can find some option to save time and automate the process!!

I will appreciate Manager updates on subject.

We had tried printing the cheque through Custom Theme and it is working. The challenge is to change the theme for each voucher two times one for printing the voucher and another for printing the cheque.

As Batch PDF is introduce recently, I was just thinking if Manager can add a layer to select a theme for multiple voucher just print command so user can be able send send combine command rather than changing the theme for each voucher.

Beside, original logic should work with a flow from separate tab where on pending cheque should be available because cheque no is assigned only once; it should be not be available for printing second time.

What check form are you using? I have a theme that prints check on top and two vouchers below it. Quickbooks style and includes the address of the supplier as well.

2 Likes

@VISA-MC if you don’t mind please share that “Cheque Printing” theme here. :grinning:

Sure. Our number format is MM/DD/YYYY I noticed it does put the year on a different line if you use a different format, but it works for our needs.

This code produces a check that will fit on any check forms where the top is the check and the bottom two are vouchers. It also assumes the checks are pre-printed with your company logo and name etc.

The address it prints is derived from the address attached to the Supplier. It looks different on-screen, but all you have to do is click print and look at the preview, that’s where it changes it to fit the check.

 <style type="text/css" scoped>
@media screen {
    div#checkprint {
        display: none;
    }
}
@media print {
    tr.onscreen {
        display: none;
    }
    div#printable-content.panel {
        font-size: 14pt !important; font-weight: normal;
        line-height: 1.25;
    }
    table#vouchertable1 {
        position: absolute;
        top: 470px;
    }
    table#vouchertable2 {
        position: absolute;
        top: 940px;
    }
    div#date {
        position: absolute;
        top: 80px;
        left: 930px;
    }
    div#voucher1date {
        position: absolute;
        top: 450px;
        left: 30px;
    }
    div#voucher2date {
        position: absolute;
        top: 920px;
        left: 30px;
    }
    div#amount{
        position: absolute;
        top: 130px;
        left: 860px;
    }
    div#payee{
        position: absolute;
        top: 130px;
        left: 100px;
    }
    div#voucher1payee{
        position: absolute;
        top: 450px;
        left: 300px;
    }   
    div#voucher2payee{
        position: absolute;
        top: 920px;
        left: 300px;
    }
    div#amountwords{
        position: absolute;
        top: 180px;
        left: 0px;
        right: -100pt;
        white-space: nowrap;
        overflow: hidden;
    }
    div#address {
        position: absolute;
        top: 220px;
        left: 120px;
    }
    div#memo {
        position: absolute;
        top: 320px;
        left: 100px;
    }
}
}
</style>
{% capture payee %}{{ recipient.name }}{% endcapture %}
{% capture date %}{% for field in fields %}{% if field.label == "Date" %}{{ field.text }}{% endif %}{% endfor %}{% endcapture %}
{% capture amount %}{% for total in table.totals %}{% if total.label == "Total" %}{{ total.text }}{% endif %}{% endfor %}{% endcapture %}
{% capture anc %}{% for total in table.totals %}{% if total.label == "Total" %}{% assign an=total.number %}{% endif %}{% endfor %}{% endcapture %}
{% capture amount_in_words %}{% for total in table.totals %}{% if total.label == "Total" %}{{ total.number | spell_out }}{% endif %}{% endfor %}{% endcapture %}
{% capture cents%}{{an| plus: 0 | modulo: 1| times: 100 | round: 0}}{%endcapture%}
{% capture cents_in_words %}{% if cents != "0" %}{{cents|prepend: " and " | append: "/100 "}}{%else%} and no/100{% endif %}{% endcapture %}

<div id="checkprint">
<div id="date">{{date}}</div>
<div id="payee">{{payee}}</div>
<div id="amount">{{-amount | remove: "$"|strip|prepend: '***'-}}</div>
<div id="amountwords"><span>{{amount_in_words}}{{cents_in_words}}* * * * * * *</span></div>
<div id="address">{{recipient.name}}<br>{{ recipient.address  | newline_to_br }}</div>
<div id="memo">{{description}}</div>
<div id="voucher1payee"><b>Paid to the order of: </b>{{payee}}</div>
<div id="voucher1date"><b>Check date: </b>{{date}}</div>
<div id="voucher2payee"><b>Paid to the order of: </b>{{payee}}</div>
<div id="voucher2date"><b>Check date: </b>{{date}}</div>
</div>

<table style="padding: 30px" id="vouchertable1">
    <thead>
    <tr class="onscreen">
            <td colspan="99">

                <table style="margin-bottom: 20px"><tr>
                    <td>
                        <div><b>{{ recipient.name }}</b> {{ recipient.code }}</div>
                        <div>{{ recipient.address | newline_to_br }}</div>
                        <div>{{ recipient.identifier }}</div>
                    </td>
                    <td style="{% if business.address != null %}border-right-width: 1px; padding-right: 20px; {% endif %}text-align: right">
                        {% 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="padding-left: 20px; width: 1px; white-space: nowrap">
                        <div style="font-weight: bold">{{ business.name }}</div>
                        <div>{{ business.address | newline_to_br }}</div>
                        <div>{{ business.identifier }}</div>
                    </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 %}
            <td style="font-weight: bold; padding: 5px 10px; text-align: {{ column.align }}; border-left-width: 1px; border-bottom-width: 1px; border-top-width: 1px{% if forloop.last == true %}; border-right-width: 1px{% endif %}{% if column.nowrap %}; width: 80px{% endif %}">{{ column.label }}</td>
            {% endfor %}
        </tr>
    </thead>
    <tbody>
        {% for row in table.rows %}
        <tr>
            {% for cell in row.cells %}
            <td style="padding: 5px 10px; text-align: {{ table.columns[forloop.index0].align }}; border-left-width: 1px{% if forloop.last == true %}; border-right-width: 1px{% endif %}{% 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="border-bottom-width: 1px; border-left-width: 1px{% if forloop.last == true %}; border-right-width: 1px{% endif %}">&nbsp;</td>
        {% endfor %}
        </tr>
        {% for total in table.totals %}
        <tr>
            <td colspan="{{ table.columns | size | minus:1 }}" style="padding: 5px 10px; text-align: right{% if total.emphasis == true %}; font-weight: bold{% endif %}">{{ total.label }}</td>
            <td style="border-left-width: 1px; white-space: nowrap; border-right-width: 1px; border-bottom-width: 1px; padding: 5px 10px; text-align: right{% if total.emphasis == true %}; font-weight: bold{% endif %}">{{ total.text }}</td>
        </tr>
        {% endfor %}


            <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; 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; padding: 10px; font-size: 20px">{{ emphasis.text | upcase }}</span></div>
                {% endif %}
            </td>
        </tr>
    </tbody>
</table>

<table style="padding: 30px" id="vouchertable2">
    <thead>
    <tr class="onscreen">
            <td colspan="99">

                <table style="margin-bottom: 20px"><tr>
                    <td>
                        <div><b>{{ recipient.name }}</b> {{ recipient.code }}</div>
                        <div>{{ recipient.address | newline_to_br }}</div>
                        <div>{{ recipient.identifier }}</div>
                    </td>
                    <td style="{% if business.address != null %}border-right-width: 1px; padding-right: 20px; {% endif %}text-align: right">
                        {% 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="padding-left: 20px; width: 1px; white-space: nowrap">
                        <div style="font-weight: bold">{{ business.name }}</div>
                        <div>{{ business.address | newline_to_br }}</div>
                        <div>{{ business.identifier }}</div>
                    </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 %}
            <td style="font-weight: bold; padding: 5px 10px; text-align: {{ column.align }}; border-left-width: 1px; border-bottom-width: 1px; border-top-width: 1px{% if forloop.last == true %}; border-right-width: 1px{% endif %}{% if column.nowrap %}; width: 80px{% endif %}">{{ column.label }}</td>
            {% endfor %}
        </tr>
    </thead>
    <tbody>
        {% for row in table.rows %}
        <tr>
            {% for cell in row.cells %}
            <td style="padding: 5px 10px; text-align: {{ table.columns[forloop.index0].align }}; border-left-width: 1px{% if forloop.last == true %}; border-right-width: 1px{% endif %}{% 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="border-bottom-width: 1px; border-left-width: 1px{% if forloop.last == true %}; border-right-width: 1px{% endif %}">&nbsp;</td>
        {% endfor %}
        </tr>
        {% for total in table.totals %}
        <tr>
            <td colspan="{{ table.columns | size | minus:1 }}" style="padding: 5px 10px; text-align: right{% if total.emphasis == true %}; font-weight: bold{% endif %}">{{ total.label }}</td>
            <td style="border-left-width: 1px; white-space: nowrap; border-right-width: 1px; border-bottom-width: 1px; padding: 5px 10px; text-align: right{% if total.emphasis == true %}; font-weight: bold{% endif %}">{{ total.text }}</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; 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; padding: 10px; font-size: 20px">{{ emphasis.text | upcase }}</span></div>
                {% endif %}
            </td>
        </tr>
    </tbody>
</table>
2 Likes

@VISA-MC Thank you for your response and sharing the codes.

We have separate cheques. I have tried your theme codes, whereas only two below vouchers are printing not the original details needs to be printed on the cheque. Can you please guide further, if possible.

I’m not sure why it wouldn’t work for you. I’m not able to troubleshoot my theme for you. I just used it here in our office to print our checks and it works perfect. It does not use custom variables, only the built in ones. I don’t know how it would play with any translations outside of English or currencies that are not $USD.

You are using the built in print button not your browser print button right?

O Sorry, I missed your last comments.

Thanks for your said clarity. It is working perfectly fine!! Much appreciated!!

I think Manager Team will be able to assist further considering the need for printing separate voucher and cheques.

What do you mean separate? Do you not have vouchers on the same page?

Your theme is working perfectly as briefed by you (a cheque in the top and two voucher one after the another). Just to clarify further, built-in currency is supported by default.

I have mentioned that our cheque is ONLY cheque and do not have counters for voucher on the bottom yet. We may need to coordinate with bank ahead for its design for printed cheque. Unless, we can opt for printing cheque through existing process as we discussed.

Thank you for your support once again!

I assume you have 3 checks on a page then.

You can either order a check that has two vouchers, it’s used most commonly with Quickbooks and Quicken.

Otherwise you would need to find a programmer than can help you create three themes, one where the check is at the top, one where it’s in the middle and one where it’s at the bottom and feed the check in over and over again until it’s filled. Seems like a lot of work.

Hello,

I tried the code above in a custom theme and it isn’t working for me. I suspect, because this thread is old, that this may no longer work with the latest version. Does anyone who is able to use a custom theme for check printing have the code that is currently working for them? That they’d be willing to share?

Thanks in advance,

Hi @lubos
Any update?

1 Like

The request for check printing has been hanging around a long time so it is unlikely to see the light of day

I would like to use the theme that prints a check at the top with 2 vouchers. Any chance it can be sent to me?
Thanks, John