ExpenseMaster
Backend
1. ExpenseCategoryMaster
// fields ending with "*" suffix are required
ensure spreadsheet: ExpenseCategoryMaster
withFields: ["ExpenseCategory*"]
ofTypes: [text]
modules: ["Expense"]
readRoleSet: [Member]
insertRoleSet: [Member]
updateRoleSet: [Member]
removeRoleSet: [Member]
ensure spreadsheet: ExpenseCategoryMaster
searchables: [Details.ExpenseCategory]
queryables: [Details.ExpenseCategory]
ensure layoutSpreadsheet ListLayout kind: list
filter.kind: tree
filter.showSearchBar: true
firstLine.first.lineFields: [Details.ExpenseCategory]
ensure layoutSpreadsheet TableLayout kind: table
showComps: [Details.ExpenseCategory]
ensure form EntityExpenseCategory modules: ["Expense"]
ensure section: Details
ensure field ExpenseCategory label: "Category"
2. ExpenseMaster
// fields ending with "*" suffix are required
ensure spreadsheet: ExpenseMaster
withFields: ["ExpenseName*", "RefCategory"]
ofTypes: [text, ref]
modules: ["Expense"]
readRoleSet: [Member]
insertRoleSet: [Member]
updateRoleSet: [Member]
removeRoleSet: [Member]
clearRoleSet: [Member]
ensrue spreadsheet ExpenseMaster
searchables: [Details.ExpenseName]
queryables: [Details.ExpenseName]
ensure form EntityExpense
ensure composite Details
ensure field RefCategory
spreadsheet: ExpenseCategoryMaster
copyFieldMap: {
'Category': 'ExpenseCategory',
'CategoryRowId': '$RowId'
}
layoutSpreadsheet: ListLayout
ensure field CategoryRowId
permissionMatrix: {
'defaultPermission': 'invisible'
}
ensure field Description kind: paragraph
ensure spreadsheet ExpenseMaster
ensure layoutSpreadsheet ListLayout kind: list
firstLine.first.lineFields: [Details.ExpenseName]
firstLine.middle.lineFields: [Details.Category]
secondLine.first.lineFields: [Details.Description]
Frontend
1. Actions
a. DebitSubCategory
Implement an DebitSubCategory action to add/edit expense sub category in the ExpenseCategoryMaster spreadsheet.
ensure action DebitSubCategory kind: spreadsheetEditor
label: "Debit Sub Category"
modules: ["Expense"]
icon: "ListRounded"
spreadsheet: ExpenseCategoryMaster
layoutSpreadsheet: ListLayout
bulkInsertRoleSet: [Member]
b. DebitCategory
Implement an DebitCategory action to add/edit expense category in the ExpenseMaster spreadsheet.
ensure action DebitCategory kind: spreadsheetEditor
label: "Debit Category"
modules: ["Expense"]
icon: "ListAltRounded"
spreadsheet: ExpenseMaster
layoutSpreadsheet: ListLayout
bulkInsertRoleSet: [Member]
2. Group actions
ensure group QuickBooks
actionPermission: {
'DebitSubCategory': {
'menuGroup': '3',
'roles': [
'Member'
]
},
'DebitCategory': {
'menuGroup': '3',
'roles': [
'Member'
]
}
}