Service - Ledger: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
Line 26: Line 26:
storageResourceTag : "myGraph",
storageResourceTag : "myGraph",
fieldNames: {
fieldNames: {
"xxx":{
"totalOnly": {
type: "string",
type: "boolean",
requiredOnCreate: true,
requiredOnCreate: true,
canUpdate: true,
updateBy: "user"
userCanUpdate: true,
},
},
}
}
Line 70: Line 69:
graphServerTag: "GraphHandler"
graphServerTag: "GraphHandler"
}
}
},
fieldNames: {
"totalOnly": {
type: "boolean",
requiredOnCreate: true,
updateBy: "user"
},
},
},
links: [
links: [

Latest revision as of 11:49, 22 February 2026

Overview

A ledger can be used to generate a report such as the general ledger, each ledger specifies which Accounts are it's top level ledger accounts and which rollup in the generated report.

Repository

...

Object Schemas

Additional Information
Per Service Schemas

ledger

{
	objectType: "ledger",
	canDelete: false,
	belongTo: {
		serviceTag: "Organization",
		objectType: "organization"
	},
	addOnDataStructure: [
		{
			type:"versionedData",
			versionedDataLabel: "ledgerDetail",
			storageResourceTag : "myGraph",
			fieldNames: {
				"totalOnly": {
					type: "boolean",
					requiredOnCreate: true,
					updateBy: "user"
				},
			}
		},
	],
	storageResources: {
		myGraph: {
			storageType: "graph",
			graphServerTag: "GraphHandler"
		},
		//.. dynamo for flows
    },
    fieldNames: {
		ledgerId: {
			type: "string",
			randomOnCreate: true,
			storageResourceTags: ['myGraph']
		},
    },
    identifiers: [
		{
			type: "identifier",
			fieldName: "ledgerId"
		}
    ]
}

Relationships

hasChildLedger

{
	hasChildLedger: {
		storageResources: {
			myGraph: {
				storageType: "graph",
				graphServerTag: "GraphHandler"			
			}
		},
		links: [
			{
				storageResourceTags: ["myGraph"],
				canDelete: true,
				from: {
					objType: {
						serviceTag: "Ledger",
						objectType: "ledger"
					},
					linkType: "one",
				},
				to: {
					objType: {
						serviceTag: "Ledger",
						objectType: "ledger"
					},
					linkType: "many"
				}
			},
		]
	}
}
  • creates ledger hierarchy
  • validate no infinite link loops
  • could move this out to a link object if becomes more complex

includesAccount

{
	includesAccount: {
		storageResources: {
			myGraph: {
				storageType: "graph",
				graphServerTag: "GraphHandler"			
			}
		},
		links: [
			{
				storageResourceTags: ["myGraph"],
				canDelete: true,
				from: {
					objType: {
						serviceTag: "Ledger",
						objectType: "ledger"
					},
					linkType: "many",
				},
				to: {
					objType: {
						serviceTag: "AccountManager",
						objectType: "account"
					},
					linkType: "many"
				}
			},
		]
	}
}
  • Accounts that are included in a ledger

Working documents

Ledger