📁 Showcase
CategoryMaster

CategoryMaster

Backend

1. CreditParentCategoryMaster

// fields ending with "*" suffix are required
ensure spreadsheet: CreditParentCategoryMaster 
  withFields: ["Name*"]
  ofTypes: [text]
  modules: ["QuickBooks"] 
  readRoleSet: [Member] 
  insertRoleSet: [Member] 
  updateRoleSet: [Member] 
  removeRoleSet: [Member]

ensure spreadsheet CreditParentCategoryMaster 
  searchables: [Name] 
  queryables: [Name] 

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

ensure layoutSpreadsheet TableLayout kind: table 
  showComps: [Name]

ensure form EntityCreditParentCategory modules: ["QuickBooks"]

2. CreditCategoryMaster

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

ensure spreadsheet CreditCategoryMaster
  searchables: [Name] 
  queryables: [Name] 

ensure form EntityCreditCategory 
ensure composite Details 
ensure field RefCategory 
  spreadsheet: CreditParentCategoryMaster 
  copyFieldMap: {
      'ParentCategory': 'Name',
      'ParentCategoryRowId': '$RowId'
    } 
  layoutSpreadsheet: ListLayout
ensure field ParentCategoryRowId
  permissionMatrix: {
      'defaultPermission': 'invisible'
    }
ensure field Description kind: paragraph

ensure spreadsheet CreditCategoryMaster
ensure layoutSpreadsheet ListLayout kind: list 
  firstLine.first.lineFields: [Name] 
  firstLine.middle.lineFields: [ParentCategory] 
  secondLine.first.lineFields: [Description]

3. DebitParentCategoryMaster

// fields ending with "*" suffix are required
ensure spreadsheet: DebitParentCategoryMaster 
  withFields: ["Name*"]
  ofTypes: [text]
  modules: ["QuickBooks"] 
  readRoleSet: [Member] 
  insertRoleSet: [Member] 
  updateRoleSet: [Member] 
  removeRoleSet: [Member]

ensure spreadsheet DebitParentCategoryMaster 
  searchables: [Name] 
  queryables: [Name] 

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

ensure layoutSpreadsheet TableLayout kind: table 
  showComps: [Name]

ensure form EntityDebitParentCategory modules: ["QuickBooks"]

4. DebitCategoryMaster

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

ensure spreadsheet DebitCategoryMaster
  searchables: [Name] 
  queryables: [Name] 

ensure form EntityDebitCategory 
ensure composite Details 
ensure field RefCategory 
  spreadsheet: DebitParentCategoryMaster 
  copyFieldMap: {
      'ParentCategory': 'Name',
      'ParentCategoryRowId': '$RowId'
    } 
  layoutSpreadsheet: ListLayout
ensure field ParentCategoryRowId
  permissionMatrix: {
      'defaultPermission': 'invisible'
    }
ensure field Description kind: paragraph

ensure spreadsheet DebitCategoryMaster
ensure layoutSpreadsheet ListLayout kind: list 
  firstLine.first.lineFields: [Name] 
  firstLine.middle.lineFields: [ParentCategory] 
  secondLine.first.lineFields: [Description]

Frontend

1. Actions

a. CreditParentCategory

Implement an CreditParentCategory action to add/edit credit parent category in the CreditParentCategoryMaster spreadsheet.

ensure action CreditParentCategory kind: spreadsheetEditor 
  modules: ["QuickBooks"] 
  icon: "FormatListBulletedRounded" 
  spreadsheet: CreditParentCategoryMaster 
  layoutSpreadsheet: ListLayout

b. CreditCategory

Implement an CreditCategory action to add/edit credit category in the CreditCategoryMaster spreadsheet.

ensure action CreditCategory kind: spreadsheetEditor 
  modules: ["QuickBooks"] 
  icon: "ListAltRounded" 
  spreadsheet: CreditCategoryMaster 
  layoutSpreadsheet: ListLayout

c. CreditParentCategory

Implement an DebitParentCategory action to add/edit debit parent category in the DebitParentCategoryMaster spreadsheet.

ensure action DebitParentCategory kind: spreadsheetEditor 
  modules: ["QuickBooks"] 
  icon: "ListRounded" 
  spreadsheet: DebitParentCategoryMaster 
  layoutSpreadsheet: ListLayout 
  bulkInsertRoleSet: [Member]

d. DebitCategory

Implement an DebitCategory action to add/edit debit category in the DebitCategoryMaster spreadsheet.

ensure action DebitCategory kind: spreadsheetEditor 
  modules: ["QuickBooks"] 
  icon: "ListAltRounded" 
  spreadsheet: DebitCategoryMaster 
  layoutSpreadsheet: ListLayout 
  bulkInsertRoleSet: [Member]

2. Group actions

ensure group QuickBooks 
  actionPermission: {
      'CreditParentCategory': {
        'menuGroup': '2',
        'roles': [
          'Member'
        ]
      },
      'CreditCategory': {
        'menuGroup': '2',
        'roles': [
          'Member'
        ]
      },
      'DebitParentCategory': {
        'menuGroup': '3',
        'roles': [
          'Member'
        ]
      },
      'DebitCategory': {
        'menuGroup': '3',
        'roles': [
          'Member'
        ]
      }
    }