📁 Showcase
RevenueMaster

ExpenseMaster

Backend

1. RevenueCategoryMaster

// fields ending with "*" suffix are required
ensure spreadsheet: RevenueCategoryMaster 
withFields: ["RevenueCategory*"]
ofTypes: [text]
modules: ["Expense"] 
readRoleSet: [Member] 
insertRoleSet: [Member] 
updateRoleSet: [Member] 
removeRoleSet: [Member]

ensure spreadsheet: RevenueCategoryMaster 
  searchables: [Details.RevenueCategory] 
  queryables: [Details.RevenueCategory] 

ensure layoutSpreadsheet ListLayout kind: list 
  filter.kind: tree 
  filter.showSearchBar: true 
  firstLine.first.lineFields: [Details.RevenueCategory]

ensure layoutSpreadsheet TableLayout kind: table 
  showComps: [Details.RevenueCategory]

ensure form EntityRevenueCategory modules: ["Expense"]
ensure section: Details
ensure field RevenueCategory label: "Category"

2. RevenueMaster

// fields ending with "*" suffix are required
ensure spreadsheet: RevenueMaster 
withFields: ["RevenueName*", "RefCategory"]
ofTypes: [text, ref]
modules: ["Expense"] 
readRoleSet: [Member] 
insertRoleSet: [Member] 
updateRoleSet: [Member] 
removeRoleSet: [Member] 
clearRoleSet: [Member]

ensrue spreadsheet RevenueMaster
  searchables: [Details.RevenueName] 
  queryables: [Details.RevenueName] 

ensure form EntityRevenue 
ensure composite Details 
ensure field RefCategory 
  spreadsheet: RevenueCategoryMaster 
  copyFieldMap: {
      'RevenueCategory': 'RevenueCategory',
      'RevenueCategoryMasterRowId': '$RowId'
    } 
  layoutSpreadsheet: ListLayout
  layoutSpreadsheet: ListLayout
ensure field Description kind: paragraph

ensure field RevenueCategoryMasterRowId
  permissionMatrix: {
      'defaultPermission': 'invisible'
    }
ensure spreadsheet RevenueMaster
ensure layoutSpreadsheet ListLayout kind: list 
  firstLine.first.lineFields: [Details.RevenueName] 
  firstLine.caption.lineFields: [Details.RevenueCategory] 
  secondLine.first.lineFields: [Details.Description]

Frontend

1. Actions

a. CreditSubCategory

ensure action CreditSubCategory kind: spreadsheetEditor 
  label: "Credit Sub Category" 
  modules: ["Expense"] 
  icon: "FormatListBulletedRounded" 
  spreadsheet: RevenueCategoryMaster 
  layoutSpreadsheet: ListLayout

b. CreidtCategory

ensure action CreidtCategory kind: spreadsheetEditor 
  label: "Creidt Category" 
  modules: ["Expense"] 
  icon: "ListAltRounded" 
  spreadsheet: RevenueMaster 
  layoutSpreadsheet: ListLayout

2. Group actions

ensure group QuickBooks 
  actionPermission: {
      'CreditSubCategory': {
        'menuGroup': '2',
        'roles': [
          'Member'
        ]
      },
      'CreidtCategory': {
        'menuGroup': '2',
        'roles': [
          'Member'
        ]
      }
    }