Service - Entry
Revision as of 13:59, 12 January 2026 by Sven the Barbarian (talk | contribs)
Overview
A credit or debit entry linked between a journal entry and an account.
Repository
...
Object Schemas
- Additional Information
- Per Service Schemas
entry
{
objectType: "entry",
canDelete: false,
belongTo: {
serviceTag: "Organization",
objectType: "organization"
},
addOnDataStructure: [
{
type:"versionedData",
versionedDataLabel: "entryDetail",
storageResourceTag : "myGraph",
fieldNames: {
amount: {
type: "currencyValue",
storageResourceTags: ['myGraph']
},
}
},
],
storageResources: {
myGraph: {
storageType: "graph",
graphServerTag: "GraphHandler"
},
myGraph: {
storageType: "graph",
graphServerTag: "GraphHandler"
},
"dynamo": {
"storageType": "dynamoDB",
"tableName": "entry",
}
},
fieldNames: {
entryId: {
type: "string",
randomOnCreate: true,
storageResourceTags: ['myGraph']
},
accountingStatus: { // "open"|"processing"|"locked"
type: "string",
storageResourceTags: ['dynamo']
},
},
identifiers: [
{
type: "identifier",
fieldName: "entryId"
}
]
}
- accountingStatus: when a period is being closed we set all entries to processing, then once the return is completed set to locked
- when beginning process of an entry, maybe trigger ComAcc plugin to check whether journalId can be locked, for example if it is connected to a sale and the sale is in saleCommitted=working/updateWorking cannot be locked
- when processing or locked entries cannot be changed (journals cannot be changed if either of the entries on each side are processing or locked
- maybe the journal also has an accountingStatus, so easy to confirm cannot make changes, or perhaps only journals because entries cannot be changed directly
Relationships
hasEntry
{
hasInventoryTemplate: {
storageResources: {
myGraph: {
storageType: "graph",
graphServerTag: "GraphHandler"
}
},
links: [
{
storageResourceTags: ["myGraph"],
from: {
objType: {
serviceTag: "Journal",
objectType: "journal"
},
linkType: "one",
},
to: {
objType: {
serviceTag: "Entry",
objectType: "entry"
},
requiredOnCreate: true,
linkType: "many"
}
},
]
}
}
inAccount
{
hasInventoryTemplate: {
storageResources: {
myGraph: {
storageType: "graph",
graphServerTag: "GraphHandler"
}
},
links: [
{
storageResourceTags: ["myGraph"],
from: {
objType: {
serviceTag: "Entry",
objectType: "entry"
},
requiredOnCreate: true,
linkType: "many"
},
to: {
objType: {
serviceTag: "AccountManager",
objectType: "account"
},
linkType: "one"
}
},
]
}
}