Permissions and Locks
dsGST uses a robust validation strategy through a complex permissions and locking mechanism in the sales entry system.
Permissions Required
Feature Checked - Sale

| Permissions | Description |
|---|---|
| Add | To be able to add new sale |
| Edit | Only user with this permisssion can edit any bill, subject to document edit checks below. |
| SDEdit | Same Day Edit - User with this permisssion can only edit an entry made on the same date. Irrelevant if the user already has Edit (above) permission |
- If both
EditandSDEditare permitted, the higher permission (i.e.Edit) will apply. - If permission is
All, then the user all permission for all action types for that feature.
| Permissions | Description |
|---|---|
| RateEnt | This permission is required to allow the user to change Trade Rate and HSN for the selected item for the current sale entry. |
Hiding (Hide Entry and Hide Report) works only when the user does not have All checked for Sale.
| Permissions | Description |
|---|---|
| HideEnt | The user will not be allowed to open the sale entry form. |
| HideRep | The user will not be allowed to open the sale related reports. |
Multiuser Lock
Locked
Whenever you Add or Edit any document a Lock is set for the document. This lock is released as soon as the user completes the document by pressing Save.

As long as a lock is active no other user will be able to Edit this document.
Incomplete
As long as the document is in a Lock, it will show as Incomplete to all others.

Incomplete is a document that is either locked by some or that was not closed by pressing Save. This happens...
- When document was closed without save when some check failed.
- The Software Exited due to.
- Power Failure,
- Disconnection from Server,
- Any other reason.
Force Open
The Force button is available only to an Admin User.

This button can be used to release a Lock that is wrongfully placed when no user is actually working on that document.

Click this button to Force-Open a lock. You will be presented with a confirmation dialog, requiring you to confirm the action.
Confirm that no-one is working on the entry before using the Force button. Improper use can lead to chaos.
Document Edit Checks
In Display mode, Edit is enabled only when the bill on screen can still be changed. When it can't, the Limit box (just below the party details) says why. Hover over it for the full list.
| Message | Cause |
|---|---|
| No Edit Rights for this Date | Your permissions don't allow editing a bill of this date. For example, you have SDEdit and the bill is from an earlier day. |
| Database Read-Only | The database is open read-only. |
| E-Invoice (IRN) Generated | An e-invoice has been generated for the bill. |
| In Use: user | Another user has the bill open — see Multiuser Lock. |
| Bill Done | The bill is marked done. |
| Fully Received | The bill has been fully paid. |
| Rack Print Pending | The rack print for the bill hasn't been cleared. |
| Adjusted in document | The bill is adjusted in another document. |
| Marked Done | The bill is marked as done. |
| Reconciliation status | The bill has been reconciled. |
| Pick-Pack: status | The bill has moved into Pick-Pack-Deliver past the stage where it can be edited: Ready, Picking, Checked, Packing, Packed, Delivered or printing. Bills that are Picked, or have Issues, can still be edited. |
| Printed (Lock on Print) | The bill has been printed and Lock on Print is on. Only users with All permission can edit it. |
Why a Button Is Disabled
While a bill is being added or edited, dsGST keeps checking the bill and the item line you are typing. Save, Add F12, Change F11 and Delete F10 are each enabled only when the checks for that button pass.
Where to see the reason. The Limit box shows the first problem,
followed by (+n) when there are more. Hover over it for the full list.
While you are adding or editing, the status bar at the bottom also
shows all the reasons together. When you fix the problem, the button
turns back on and the message clears.
The Checks
The checks fall into five groups. The table further down shows which groups each button needs.
Document checks decide whether the bill can be touched at all.
| Message | Cause |
|---|---|
| Demo Lock | The software is in demo mode and the bill date is on or after the demo cut-off. |
| Invalid Date | The bill date is in a closed period or outside the dates you may enter. |
| Select Account | No party is selected. |
| Licence Expired | The party's licence has expired and Block Licence Expired Pty is ticked in Set Defaults. |
| Check Lock Status | The party is marked as locked. No Limit overrides. |
| Party Locked | The party has both Lock Cash and Lock Credit ticked — see Party Limits. No Limit overrides. |
Header checks make sure the bill header agrees with the party.
| Message | Cause |
|---|---|
| GSTin Structure Not Proper | The GSTIN typed on the bill is not a valid GSTIN. A blank GSTIN, or the party's own stored GSTIN, is always accepted. |
| Cash Party Credit Bill | The party takes cash bills only (Lock Credit), but the bill isn't marked Cash. |
| Credit Party Cash Bill | The party takes credit bills only (Lock Cash), but the bill is marked Cash. |
Bill checks look at the whole bill before it can be saved.
| Message | Cause |
|---|---|
| Outstanding > CreditLimit | The party's outstanding, including this bill, is over its Credit Limit. No Limit overrides. |
| Bill Value > Bill Limit | This bill's value is over the party's Bill Limit. No Limit overrides. |
| Day Limit | The party's oldest unpaid bill is older than its Days Limit. No Limit overrides. |
| Bill Count Limit | Saving this bill would leave the party with more unpaid bills than its No of Bills limit. No Limit overrides. |
| Select MS Rep | Your firm requires a sales representative on every bill. |
| Bill has IGST - Local Party | A party in your own state is being charged IGST. |
| Bill has CGST/SGST - Interstate Party | A party in another state is being charged CGST/SGST. |
| Bill CGST <> SGST | The bill's CGST and SGST totals don't match. |
Party Limits and Defaults explains how the four limits are set and counted.
Line checks apply to the item line you are adding or changing.
| Message | Cause |
|---|---|
| Select Item | No item is selected. |
| No Qty | Both Qty and Free Qty are 0. |
| Invalid Max Discount | The Max Discount field isn't a number below 100. |
| Invalid MRP v/s Trade Value | The line's value is more than MRP × Qty. Checked only when Check MRP v/s Tr. Rate is ticked in Set Defaults. |
| Bad Tax - C+S+I | The tax type doesn't fit the party's state (IGST for a local party, CGST/SGST for an interstate one), or CGST ≠ SGST. The wrong tax box turns pink. |
| Tax Rate: n% is bad | The total tax rate isn't a valid GST rate. |
| Locked for NRx Item | The item is an NRx item and the party has Lock NRx ticked. |
| Invalid Scheme | Free % plus scheme % is more than the item's purchase scheme, and No Excess Sch (Non-Admin) is ticked in Set Defaults. Admin users are exempt. |
| Item Expiry Date | The batch expires within the party's Min Expiry months, or within Min Exp (in Sale) Month from Set Defaults when the party has none. Applies to parties in the Sundry Debtors and Cash Accounts groups. The expiry All box overrides. |
| Credit Limit Exceeded | Adding this line would take the party over its credit limit. No Limit overrides. |
| Insufficient Stock | Not enough stock of this batch, when Lock Stock is on in Set Defaults. Items that don't track stock are exempt. |
| Bill Header Not Saved | The bill header hasn't been created yet. Select the party and complete the header first. |
Row checks apply to Change and Delete, which work on the row selected in the grid.
| Message | Cause |
|---|---|
| Challan Mismatch | With Allow Chln in Sale on, the selected row belongs to a different challan from the one being entered. |
Which Checks Apply to Which Button
| Button | Enabled when |
|---|---|
| Save | The bill has no items (Save is then always available, so the entry can be closed) — or the document, header and bill checks all pass. |
| Add F12 | The document, header and line checks pass, and the bill header has been saved. |
| Change F11 | A row is selected, and the document, header, row and line checks pass, taking the change into account. |
| Delete F10 | A row is selected, and the document and row checks pass. With Lock Stock on, stock must allow it. For example, deleting a sale-return line must not push stock below zero. |
Some things follow from these rules:
- A half-typed line with a bad tax rate doesn't stop you saving a bill whose lines are all correct.
- A line can always be deleted to fix a bill, as long as the bill itself can be edited.
- An Admin user can delete a line from a Sale Return even when the stock check would stop it. The document and row checks still apply.
When you save a bill that has no items:
- A bill that was never saved is dropped.
- A bill that was saved before is deleted.
- A bill that already has receipts against it is kept as an empty bill, not deleted.
Overrides
Two boxes on the Sale form let authorised users go past some checks:
| Box | Who sees it | What it overrides |
|---|---|---|
| No Limit | Admin users with All permission for Sale | Check Lock Status, Party Locked and all four party limits (credit, bill value, days, number of bills), including Credit Limit Exceeded on a line |
| All (next to the batch expiry) | Users with All permission for Sale | Item Expiry Date |
Admin users also pass Invalid Scheme automatically.
An override doesn't hide the problem. The Limit box tooltip and the status bar still list it, marked for example Outstanding > CreditLimit (NoLmt override) or Near expiry (Any-Expiry override). That way it stays visible that the bill went through on an override.
Party Changes While a Bill Is Open
Suppose you open the party's master while a bill is open (for example by double-clicking the licence details) and change a limit, a lock or the licence date. The Sale form picks up the change when you return to it. Receipts and other bills entered in another window are picked up the same way. Anything you've typed into the bill header is kept.
Other Sale Screens
POS Sale uses the same checks and the same Limit box, with these differences:
- It has no No Limit box, so on POS the party limits, including Days Limit and No of Bills, always block.
- It doesn't check max discount, scheme or expiry.
Auto Sale from Sale Order has only Save, and it checks every line of the order together:
- A line that fails turns pink. Hover over it to see why.
- No Limit and Any Exp work as described above.
- Lines where stock covers less than ordered are shaded. Save still works, but asks you to confirm saving less than was ordered.
- If every line is at quantity 0, there's nothing to save.
- If someone else has already converted or cancelled the order, the save is refused and the order list is refreshed.