# Final permission matrix

Active-role-only evaluation. Grants never union across held roles. S. Patil holds Store Keeper and Billing Clerk but only the selected active role is authorised.

SYSTEM is non-interactive and has zero permissions. `AUDIT.EXPORT` is independent of `REPORT.EXPORT`.

| Permission | Plant Manager | Store Keeper | Billing Clerk | Accounts Manager | Super Admin |
|---|---:|---:|---:|---:|---:|
| AUDIT.EXPORT |  |  |  |  | Y |
| AUDIT.VIEW |  |  |  | Y | Y |
| CHALLAN.ADD | Y |  | Y |  | Y |
| CHALLAN.APPROVE | Y |  |  | Y | Y |
| CHALLAN.CANCEL | Y |  | Y |  | Y |
| CHALLAN.EDIT | Y |  | Y |  | Y |
| CHALLAN.LIST | Y |  | Y | Y | Y |
| CHALLAN.VIEW | Y |  | Y | Y | Y |
| CHARGE.ACTIVATE_DEACTIVATE |  |  |  |  | Y |
| CHARGE.ADD |  |  |  |  | Y |
| CHARGE.EDIT |  |  |  |  | Y |
| CHARGE.LIST |  |  | Y |  | Y |
| CHARGE.VIEW |  |  | Y |  | Y |
| CLIENT.ACTIVATE_DEACTIVATE |  |  |  |  | Y |
| CLIENT.ADD |  |  | Y |  | Y |
| CLIENT.EDIT |  |  | Y |  | Y |
| CLIENT.LIST |  |  | Y | Y | Y |
| CLIENT.VIEW |  |  | Y | Y | Y |
| CLIENT_SITE.ACTIVATE_DEACTIVATE |  |  |  |  | Y |
| CLIENT_SITE.ADD |  |  | Y |  | Y |
| CLIENT_SITE.EDIT |  |  | Y |  | Y |
| CLIENT_SITE.LIST |  |  | Y |  | Y |
| CLIENT_SITE.VIEW |  |  | Y |  | Y |
| COMPANY.ACTIVATE_DEACTIVATE |  |  |  |  | Y |
| COMPANY.ADD |  |  |  |  | Y |
| COMPANY.EDIT |  |  |  |  | Y |
| COMPANY.LIST | Y |  |  |  | Y |
| COMPANY.VIEW | Y |  |  |  | Y |
| CREDIT_NOTE.APPROVE |  |  |  | Y | Y |
| CREDIT_NOTE.CREATE |  |  |  | Y | Y |
| CREDIT_NOTE.EDIT |  |  |  | Y | Y |
| CREDIT_NOTE.LIST |  |  |  | Y | Y |
| CREDIT_NOTE.RECORD_IRN_DETAILS |  |  |  | Y | Y |
| CREDIT_NOTE.VIEW |  |  |  | Y | Y |
| DASHBOARD.VIEW | Y | Y | Y | Y | Y |
| DISPATCH.ADD | Y | Y |  |  | Y |
| DISPATCH.DISPOSE | Y | Y |  |  | Y |
| DISPATCH.LIST | Y | Y |  |  | Y |
| DISPATCH.REASSIGN | Y |  |  |  | Y |
| DISPATCH.VIEW | Y | Y |  |  | Y |
| IAM.MANAGE_ROLES |  |  |  |  | Y |
| IAM.MANAGE_USERS |  |  |  |  | Y |
| IAM.SWITCH_ROLE |  | Y | Y |  | Y |
| IAM.VIEW |  |  |  |  | Y |
| INVOICE.ADD |  |  | Y | Y | Y |
| INVOICE.APPROVE |  |  |  | Y | Y |
| INVOICE.CANCEL |  |  | Y |  | Y |
| INVOICE.EDIT |  |  | Y |  | Y |
| INVOICE.LIST |  |  | Y | Y | Y |
| INVOICE.RECORD_IRN_DETAILS |  |  |  | Y | Y |
| INVOICE.RELEASE_NUMBER |  |  |  | Y | Y |
| INVOICE.RESERVE_NUMBER |  |  |  | Y | Y |
| INVOICE.SET_MANUAL_RATE |  |  | Y |  | Y |
| INVOICE.VIEW |  |  | Y | Y | Y |
| INWARD.ADD | Y | Y |  |  | Y |
| INWARD.CANCEL |  | Y |  |  | Y |
| INWARD.EDIT |  | Y |  |  | Y |
| INWARD.LIST | Y | Y |  |  | Y |
| INWARD.REVERSE |  | Y |  |  | Y |
| INWARD.VIEW | Y | Y |  |  | Y |
| OPENING_STOCK.ADD | Y | Y |  |  | Y |
| PLANT.ACTIVATE_DEACTIVATE |  |  |  |  | Y |
| PLANT.ADD |  |  |  |  | Y |
| PLANT.EDIT |  |  |  |  | Y |
| PLANT.LIST | Y |  |  |  | Y |
| PLANT.VIEW | Y |  |  |  | Y |
| PRODUCT.ACTIVATE_DEACTIVATE |  |  |  |  | Y |
| PRODUCT.ADD |  |  |  |  | Y |
| PRODUCT.EDIT |  |  |  |  | Y |
| PRODUCT.LIST | Y | Y | Y |  | Y |
| PRODUCT.VIEW | Y | Y | Y |  | Y |
| RATE.ACTIVATE_DEACTIVATE |  |  |  |  | Y |
| RATE.ADD |  |  | Y |  | Y |
| RATE.EDIT |  |  | Y |  | Y |
| RATE.LIST |  |  | Y | Y | Y |
| RATE.VIEW |  |  | Y | Y | Y |
| RAW_MATERIAL.ACTIVATE_DEACTIVATE |  |  |  |  | Y |
| RAW_MATERIAL.ADD |  | Y |  |  | Y |
| RAW_MATERIAL.EDIT |  | Y |  |  | Y |
| RAW_MATERIAL.LIST |  | Y |  |  | Y |
| RAW_MATERIAL.VIEW |  | Y |  |  | Y |
| RECIPE.ADD | Y |  |  |  | Y |
| RECIPE.EDIT | Y |  |  |  | Y |
| RECIPE.LIST | Y |  |  |  | Y |
| RECIPE.VIEW | Y |  |  |  | Y |
| REPORT.EXPORT | Y |  |  | Y | Y |
| REPORT.VIEW | Y |  | Y | Y | Y |
| STATUTORY.MANAGE |  |  |  |  | Y |
| STATUTORY.VIEW |  |  |  | Y | Y |
| UNIT.ACTIVATE_DEACTIVATE |  |  |  |  | Y |
| UNIT.ADD |  |  |  |  | Y |
| UNIT.EDIT |  |  |  |  | Y |
| UNIT.LIST |  | Y |  |  | Y |
| UNIT.VIEW |  | Y |  |  | Y |
| VEHICLE.ACTIVATE_DEACTIVATE | Y |  |  |  | Y |
| VEHICLE.ADD | Y |  |  |  | Y |
| VEHICLE.EDIT | Y |  |  |  | Y |
| VEHICLE.LIST | Y | Y | Y |  | Y |
| VEHICLE.VIEW | Y | Y | Y |  | Y |
| VENDOR.ACTIVATE_DEACTIVATE |  |  |  |  | Y |
| VENDOR.ADD |  | Y |  |  | Y |
| VENDOR.EDIT |  | Y |  |  | Y |
| VENDOR.LIST |  | Y |  |  | Y |
| VENDOR.VIEW |  | Y |  |  | Y |
| WASTAGE.ADD | Y | Y |  |  | Y |
| WASTAGE.APPROVE | Y |  |  |  | Y |
| WASTAGE.CANCEL_REVERSE | Y |  |  |  | Y |
| WASTAGE.LIST | Y | Y |  |  | Y |
| WASTAGE.VIEW | Y | Y |  |  | Y |

Y = granted to that role when it is the **active** role. Empty = not granted.

