newSalesClicked
newSalesClicked
newSalesClicked
newSalesClicked
abbreviated dropdown
anusuchi dropdown
feeds gating
row click
row click
newCOAClicked
newGroupClicked
newChequeClicked(false)
newChequeClicked(true)
openCreateOptionsDialog
SALES
INVENTORY / TAGS / FIXED ASSETS
COA / BANKS / VOUCHERS / CHEQUE
PURCHASE
REPORTS / DASHBOARD
CONTACTS

GoodsDispatchedNote.vue

views/apps/sales/GoodsDispatchedNote.vue

CreateAnusuchiInvoice.vue

Opens when:

  • permissionObj.manage_anusuchi_invoice
  • !isFixedAssetsInvoice

CreateSalesQuotation.vue
Opens: permissionObj.manage_sales_quotation

CreateGoodsDispatchedNote.vue
Opens: permissionObj.manage_goods_dispatch_note

EditGoodsDispatchedNote.vue
Opens when:

  • selectedGDN.gdn_status === 'OPEN'
  • permissionObj.manage_goods_dispatch_note

SalesQuotationListing.vue

views/apps/sales/SalesQuotationListing.vue

CreateLC.vue

Opens when:

  • type === LOCALpermissionObj.manage_local_lc
  • type === IMPORTpermissionObj.manage_import_lc

LocalLCListing.vue

views/apps/sales/LocalLCListing.vue
props: type (LOCAL | IMPORT) — also reused by import-lc route

CommissionPaymentListing.vue

views/apps/agency/CommissionPaymentListing.vue

CreateCommissionPayment.vue
Opens: permissionObj.manage_commission

ClientReceiptListing.vue

views/apps/sales/ClientReceiptListing.vue
props: page (CLIENT_RECEIPT | ACKNOWLEDGEMENT)

CreateSalesInvoiceWithoutVATDialog.vue
v-model: createSalesInvoiceWithoutVATDialogVisible

Opens when:

  • !is_registered_with_vat
  • is_ird_verified
  • permissionObj.manage_sales_invoice

CreateAbbreviatedInvoice.vue

Opens when:

  • is_abbreviated_invoice
  • !isFixedAssetsInvoice

CreateClientReceipt.vue

Opens when:

  • page === CLIENT_RECEIPTpermissionObj.manage_client_receipt
  • page === ACKNOWLEDGEMENTpermissionObj.manage_acknowledgement_receipt

CreateEditableSalesInvoice.vue
v-model: createEditableSalesInvoiceDialogVisible

Opens when:

  • is_registered_with_vat
  • !is_ird_verified
  • !isFixedAssetsInvoice
  • permissionObj.manage_sales_invoice

Company flags (from localStorage.USER.company)

  • is_registered_with_vat
  • is_ird_verified (field: id_ird_verified)
  • is_abbreviated_invoice

These gate which create-invoice dialog opens. Route query ?action=openSalesDialog auto-opens VAT vs no-VAT variant.

CreditNoteListing.vue

views/apps/sales/CreditNoteListing.vue

CreateCreditNote.vue
Opens: permissionObj.manage_credit_note

CreateSalesInvoice.vue
v-model: createSalesInvoiceDialogVisible

Opens when:

  • is_registered_with_vat
  • is_ird_verified
  • permissionObj.manage_sales_invoice

ItemCategoryListingV2.vue

views/apps/products/ItemCategoryListingV2.vue

ItemUnitsListingV2.vue

views/apps/products/ItemUnitsListingV2.vue

TagsListing.vue

features/tags/pages/TagsListing.vue

CreateEditableSalesInvoiceWithoutVATDialog.vue
v-model: createEditableSalesInvoiceWithoutVATDialogVisible

Opens when:

  • !is_registered_with_vat
  • !is_ird_verified
  • !isFixedAssetsInvoice
  • permissionObj.manage_sales_invoice

SalesListingV2.vue

views/apps/sales/SalesListingV2.vue
routes: sales-invoice, proforma-invoice, fixed-asset-disposal
props: invoiceType, isFixedAssetsInvoice

GoodReceiptNote.vue

views/apps/purchase/GoodReceiptNote.vue

VendorPaymentListing.vue

views/apps/purchase/VendorPaymentListing.vue

PurchaseListing.vue

views/apps/purchase/PurchaseListing.vue

Legend

  • Yellow = view component (router-mounted)
  • Cyan = dialog/modal child component
  • Purple = note / cross-cutting fact
  • Edge label = the click handler / ref / boolean that flips the dialog visible

All views also receive a route-level permission gate from src/router/index.ts meta.permission. Dialog gates listed are additional checks inside the view (typically manage_* perms vs the route's view_* perm).

DebitNoteListing.vue

views/apps/purchase/DebitNoteListing.vue

FixedAssetsListing.vue

views/apps/fixed-assets/FixedAssetsListing.vue

CreateGoodReceiptNote.vue
Opens: permissionObj.manage_goods_receipt_note

CreatePurchaseOrder.vue
Opens: permissionObj.manage_purchase_order

PurchaseOrderListing.vue

views/apps/purchase/PurchaseOrderListing.vue

ListVoucher.vue (Day Book)

views/apps/voucher/ListVoucher.vue
perm: view_report_day_book

Ledger.vue

views/apps/reports/Ledger.vue
perm: view_report_ledgers

DashboardV2.vue

views/DashboardV2.vue
SalesPerformance gated by view_report_group_summary

Inventory dialog reuse

AddProductModal.vue and DeleteProductModal.vue are shared by Inventory, Category, Unit, and Fixed Asset listings.
Mode is selected by props (itemType/isFixedAsset/etc.). Each parent gates with its own permission key.

InventoryListing.vue

views/apps/products/InventoryListing.vue
routed: items-list

DeleteProductModal.vue
Opens when items selected for deletion

CreateVoucher.vue

Opens when:

  • permissionObj.manage_accounting_vouchers
  • type ∈ {JOURNAL, CONTRA, PAYMENT, RECEIPT, SALES, PURCHASE, INVENTORY_TRANSFER}

AddBank.vue
Opens: permissionObj.manage_bank_accounts

CreateCheque.vue (Normal)
Opens when:

  • permissionObj.manage_cheque_printing
  • isCustom = false

CreateCheque.vue (Custom)
Opens when:

  • permissionObj.manage_cheque_printing
  • isCustom = true

AddProductModal.vue

Opens when:

  • permissionObj.manage_products_list
  • item type: PRODUCT or SERVICE

Reports & Dashboard

Report routes (Day Book, Ledger, Trial Balance, P&L, Balance Sheet, Sales/Purchase/Tax/Inventory reports) generally use ReusableReportLayout and have no create-dialog children — they are read-only with filters.

Visibility is gated by view_report_* permission keys in permissionObj (see router/index.ts).

DashboardV2 has no dialogs; widgets gate themselves on permissions and CBMS visibility (shouldShowCBMS).

ManageVouchers.vue

views/apps/coa/ManageVouchers.vue

BankListingv2.vue

views/apps/banks/BankListingv2.vue

CreateCOAGroup.vue (New Group)
Opens: permissionObj.manage_chart_of_accounts

ChartOfAccounts.vue

views/apps/coa/ChartOfAccounts.vue

CreateCOA.vue (New Ledger)
Opens: permissionObj.manage_chart_of_accounts

CreateContactDialog

Opens when:

  • permissionObj.manage_contacts
  • contact type ∈ {Vendor, Client, Agent, LA_Asset, LA_Liability}

ContactListingV2.vue

views/apps/contacts/ContactListingV2.vue

DeleteContactDialog
Opens when contacts selected for deletion

DeleteProductModal.vue

AddProductModal.vue (unit)
Opens: permissionObj.manage_units_of_measurement

CreateTagDialog.vue

Opens when:

  • permissionObj.manage_product_tags
  • gated by view_product_tags

AddProductModal.vue (category)
Opens: permissionObj.manage_products_category

ChequeListing.vue

views/apps/cheque/ChequeListing.vue

ExportCustomerModal.vue
Opens on Export action

CreateDebitNote.vue
Opens: permissionObj.manage_debit_note

EditGoodReceiptNote.vue
Opens when:

  • selectedGRN.status === 'OPEN'
  • permissionObj.manage_goods_receipt_note

CreatePurchase.vue
Opens: permissionObj.manage_purchase_invoice

CreateVendorPayment.vue
Opens: permissionObj.manage_vendor_payment

ExportCustomerModal.vue

CreateInventoryVoucherDialog.vue
Opens: permissionObj.manage_inventory_transfer

AddProductModal.vue (fixed asset)
Opens when:

  • permissionObj.manage_fixed_assets_list

DeleteProductModal.vue

InventoryVouchersListing.vue

features/inventory-voucher/InventoryVouchersListing.vue