Service - Ledger

From Izara Wiki
Revision as of 11:35, 22 February 2026 by Sven the Barbarian (talk | contribs)
Jump to navigation Jump to search

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: {
				"xxx":{
					type: "string",
					requiredOnCreate: true,
					canUpdate: true,
					userCanUpdate: true,
				},
			}
		},
	],
	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: "many",
				},
				to: {
					objType: {
						serviceTag: "Ledger",
						objectType: "ledger"
					},
					linkType: "many"
				}
			},
		]
	}
}
  • creates ledger heirachy
  • validate no infinite link loops

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