Cashier theft issue: Hide print button on draft sales invoice

Hello Sirs, we have noticed a small loophole cashiers take advantage of at our small store. They click save on the pos screen; print a slip; hand to the customer, collect full payment, delete one or 2 items, save and submit. Can we hide the print button or the entire button array on top until the submit button has been saved? Also, can we make it compulsory to capture a payment before the invoice can be finally committed. We are afraid that the theft will increase immeasurably with this. Please help. We have run a few months and the business is small for this kind of issue.

What is loophole in system?

If your take printout in DRAFT status, its clearly printed on Sales Invoice.

Also you can make validation on print format, so that only submitted invoices can print full invoice details

Thanks for your response Sir; I will aporeciate tour help, I also made an
argument on this but at last there’s a point. The sales pos invoice format
does not display ‘draft’. Also under print format i tried to hide items
unless invoice is complete. I’m also thinking of using a workflow that has
one step: submit; so the invoices cant be saved, edited and submitted

I’ll go over the scenario: you can check it yourself; a cashier starts an
invoice, saves as draft,prints the pos invoice (no draft in header).
Removes a line item, saves and submits, so the cashier can keep x amount of
money for goods represented to the customer on draft invoice but not
committed in submitted invoice.

A simple workaround will be to hide this print button when docstatus is
still in draft, or use a workflow. Can you help?

Thanks and best regards;



Write this code into POS print format

{%- if doc.meta.is_submittable and doc.docstatus==0-%}
<div class="alert alert-info text-center">
    <h4 style="margin: 0px;">{{ _("DRAFT") }}</h4></div>
{%- endif -%}

You can find full print format here:


Thank you so much Sir; I will add these lines and get back to you. Also can
you offer any guidelines for a workflow that allows the invoice to go from
new straight to submit; a workflow with just 2 states, new and submit,
instead of new, save, submit.

I appreciate your help.