Introduce generic Transaction data model #28

Open
opened 2024-11-21 12:29:59 +01:00 by magicfelix · 0 comments
Member

Ideas for models (similar to https://ledger-cli.org/):
Specific use-cases like Invoices and Payments could be built on this data model.
Having a common base enables complex reporting and a wide range of use-cases.

Payee (maybe there is a better name?):
  person: Person (null=True)
  organization: Organization (null=True, unique=True)
  constraints: at least one of Person or Organization has to be set; person has to be unique if organization is None

Account:
  owner: Payee
  name: String (unique=True)
  description: String (blank=true)
  parent: Account (null=true)

Tag:
  name: String (unique: True)
  description: String (blank: True)

Transaction:

Status:
  status: CLEARED | PENDING | …?

Posting:
  account: Account
  amount: (a bit more complex due to commodities, cost etc.)
  date: Date
  status: Status
  code: String (blank=True)
  transaction: Transaction

Metadata:
  tag: Tag
  value: String (blank: True)
  posting: Posting (related_name: metadata)
Ideas for models (similar to https://ledger-cli.org/): Specific use-cases like [Invoices and Payments](https://edugit.org/AlekSIS/onboarding/AlekSIS-App-Tezor/-/issues/26) could be built on this data model. Having a common base enables complex reporting and a wide range of use-cases. ```plain Payee (maybe there is a better name?): person: Person (null=True) organization: Organization (null=True, unique=True) constraints: at least one of Person or Organization has to be set; person has to be unique if organization is None Account: owner: Payee name: String (unique=True) description: String (blank=true) parent: Account (null=true) Tag: name: String (unique: True) description: String (blank: True) Transaction: Status: status: CLEARED | PENDING | …? Posting: account: Account amount: (a bit more complex due to commodities, cost etc.) date: Date status: Status code: String (blank=True) transaction: Transaction Metadata: tag: Tag value: String (blank: True) posting: Posting (related_name: metadata) ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aleksis/AlekSIS-App-Tezor#28
No description provided.