Accounting

Hauptbuch und Berichte

MarktplatzFinanzenVersion 0.1.0manifest

Wofür sie gedacht ist ​

A chart of accounts, journals, tax rates, journal entries with debit and credit lines, fiscal periods and bank statement lines. Nothing is computed for you: balancing and tax amounts are the responsibility of whoever enters them. Posting and closing need approval.

Was das Paket leistet und was nicht ​

Chart of accounts, journals, tax rates, journal entries with debit and credit lines, fiscal years and periods, and bank statement lines. Amounts are money fields in minor currency units and tax rates are numbers in basis points (2000 means 20.00 percent). Nothing is computed: balancing of debits and credits, tax amounts and entry numbers are the responsibility of whoever enters them. Posting an entry and closing a period or fiscal year need a human approval and the stricter accounting.approver group; agents may only propose them.

Modelle ​

accounting_account ​

An account of the chart of accounts

Lesegruppe: accounting.user. Schreibgruppe: accounting.manager.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
codetextnoneneinaccounting.userim KlartextAccount code as used in the chart, for example 400000
nametextnoneneinaccounting.userim KlartextAccount name, for example Trade receivables
account_typeselect (asset_receivable, asset_cash, asset_current, asset_fixed, liability_payable, liability_current, liability_non_current, equity, income, income_other, expense, expense_direct_cost)noneneinaccounting.userim KlartextType of account: asset_receivable, asset_cash, asset_current, asset_fixed, liability_payable, liability_current, liability_non_current, equity, income, income_other, expense, expense_direct_cost
reconcileboolnoneneinaccounting.userim KlartextWhether open items on this account can be reconciled (receivable, payable, bank clearing)
deprecatedboolnoneneinaccounting.userim KlartextWhether the account is closed to new postings
notelongtextnoneneinaccounting.userim KlartextInternal remarks about how the account is used

accounting_journal ​

A journal that groups entries of one kind (sales, purchases, bank, cash, miscellaneous)

Lesegruppe: accounting.user. Schreibgruppe: accounting.manager.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
nametextnoneneinaccounting.userim KlartextJournal name, for example Customer invoices
codetextnoneneinaccounting.userim KlartextShort code used in entry numbers, for example INV
kindselect (sale, purchase, cash, bank, general)noneneinaccounting.userim KlartextWhat the journal records: sale, purchase, cash, bank, general
default_account_idref → accounting_accountnoneneinaccounting.userim KlartextDefault account for entries of this journal (the bank account for a bank journal)
currencytextnoneneinaccounting.userim KlartextISO 4217 currency code of the journal, for example EUR; empty means the company currency
activeboolnoneneinaccounting.userim KlartextWhether the journal can still receive entries

accounting_tax ​

A tax rate that entry lines can refer to

Lesegruppe: accounting.user. Schreibgruppe: accounting.manager.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
nametextnoneneinaccounting.userim KlartextTax name, for example VAT 20% sales
rate_bpnumbernoneneinaccounting.userim KlartextRate in basis points: 2000 means 20.00 percent, 550 means 5.50 percent
scopeselect (sales, purchases, none)noneneinaccounting.userim KlartextWhere the tax applies: sales, purchases, none
price_includedboolnoneneinaccounting.userim KlartextWhether prices already include this tax
tax_account_idref → accounting_accountnoneneinaccounting.userim KlartextAccount the tax amount is booked on
activeboolnoneneinaccounting.userim KlartextWhether the tax can still be chosen on new lines

accounting_fiscal_year ​

A fiscal year, opened and closed as a whole

Lesegruppe: accounting.user. Schreibgruppe: accounting.manager.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
nametextnoneneinaccounting.userim KlartextFiscal year name, for example FY2026
start_ondatenoneneinaccounting.userim KlartextFirst day of the fiscal year (YYYY-MM-DD)
end_ondatenoneneinaccounting.userim KlartextLast day of the fiscal year (YYYY-MM-DD)
stateselect (open, closed)noneneinaccounting.userim KlartextFiscal year status: open, closed

accounting_period ​

An accounting period (normally a month) inside a fiscal year

Lesegruppe: accounting.user. Schreibgruppe: accounting.manager.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
fiscal_year_idref → accounting_fiscal_yearnoneneinaccounting.userim KlartextThe fiscal year the period belongs to
nametextnoneneinaccounting.userim KlartextPeriod name, for example 2026-03
start_ondatenoneneinaccounting.userim KlartextFirst day of the period (YYYY-MM-DD)
end_ondatenoneneinaccounting.userim KlartextLast day of the period (YYYY-MM-DD)
stateselect (open, closed)noneneinaccounting.userim KlartextPeriod status: open, closed

accounting_move ​

A journal entry: a dated set of debit and credit lines in one journal

Lesegruppe: accounting.user. Schreibgruppe: accounting.user.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
journal_idref → accounting_journalnoneneinaccounting.userim KlartextThe journal the entry belongs to
datedatenoneneinaccounting.userim KlartextAccounting date of the entry (YYYY-MM-DD)
numbertextnoneneinaccounting.userim KlartextEntry number such as INV/2026/0001. Free text: packages cannot generate sequences, so whoever posts the entry assigns the next number by hand and keeps the series gapless
referencetextnoneneinaccounting.userim KlartextExternal reference, for example the supplier's invoice number
partner_idref → partynoneneinaccounting.userim KlartextThe contact the entry is about
narrationlongtextnoneneinaccounting.userim KlartextFree-text note about the entry
stateselect (draft, posted, cancelled, reversed)noneneinaccounting.userim KlartextEntry status: draft, posted, cancelled, reversed

accounting_move_line ​

One debit or credit line of a journal entry

Lesegruppe: accounting.user. Schreibgruppe: accounting.user.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
move_idref → accounting_movenoneneinaccounting.userim KlartextThe journal entry the line belongs to
account_idref → accounting_accountnoneneinaccounting.userim KlartextThe account the line is booked on
partner_idref → partynoneneinaccounting.userim KlartextThe contact the line is about
labeltextnoneneinaccounting.userim KlartextLine description
debitmoneyfinancialneinaccounting.userzurückgehaltenDebit amount in minor currency units; 0 when the line is a credit
creditmoneyfinancialneinaccounting.userzurückgehaltenCredit amount in minor currency units; 0 when the line is a debit
tax_idref → accounting_taxnoneneinaccounting.userim KlartextTax the line carries, if any
due_ondatenoneneinaccounting.userim KlartextDue date for receivable and payable lines (YYYY-MM-DD)
reconciledboolnoneneinaccounting.userim KlartextWhether the line has been matched against a payment

accounting_bank_statement_line ​

A line of a bank statement waiting to be matched to entries

Lesegruppe: accounting.user. Schreibgruppe: accounting.user.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
journal_idref → accounting_journalnoneneinaccounting.userim KlartextThe bank journal the statement belongs to
datedatenoneneinaccounting.userim KlartextBooking date at the bank (YYYY-MM-DD)
labeltextnoneneinaccounting.userim KlartextPayment reference or description as the bank reports it
amountmoneyfinancialneinaccounting.userzurückgehaltenAmount in minor currency units; positive for money in, negative for money out
counterparty_nametextfinancialjaaccounting.userzurückgehaltenName of the payer or payee as the bank reports it
counterparty_ibantextfinancialjaaccounting.userzurückgehaltenBank account of the payer or payee
move_line_idref → accounting_move_linenoneneinaccounting.userim KlartextThe entry line this statement line was matched to
stateselect (unmatched, matched, reconciled)noneneinaccounting.userim KlartextMatching status: unmatched, matched, reconciled

Workflows ​

accounting_fiscal_year ​

AktionBewegtWer sie ausführen darfFreigabe
accounting_fiscal_year.closestate: open → closedaccounting.approverja
accounting_fiscal_year.reopenstate: closed → openaccounting.approverja

accounting_period ​

AktionBewegtWer sie ausführen darfFreigabe
accounting_period.closestate: open → closedaccounting.approverja
accounting_period.reopenstate: closed → openaccounting.approverja

accounting_move ​

AktionBewegtWer sie ausführen darfFreigabe
accounting_move.poststate: draft → postedaccounting.approverja
accounting_move.cancelstate: draft → cancelledaccounting.usernein
accounting_move.reversestate: posted → reversedaccounting.approverja

accounting_bank_statement_line ​

AktionBewegtWer sie ausführen darfFreigabe
accounting_bank_statement_line.matchstate: unmatched → matchedaccounting.usernein
accounting_bank_statement_line.reconcilestate: matched → reconciledaccounting.managernein
accounting_bank_statement_line.unmatchstate: matched → unmatchedaccounting.usernein

Berechtigungsgruppen ​

Von dieser App verwendete Gruppen:

  • accounting.approver
  • accounting.manager
  • accounting.user

Freigabeschritte ​

Schritte, die ein Agent nur vorschlagen kann:

  • accounting_fiscal_year.close
  • accounting_fiscal_year.reopen
  • accounting_period.close
  • accounting_period.reopen
  • accounting_move.post
  • accounting_move.reverse

Was Agenten tun können und was nicht ​

Ein Agent kann Datensätze dieser App lesen, durchsuchen, anlegen und aktualisieren sowie Aktionen ausführen, die keine Freigabe brauchen, und zwar innerhalb der Berechtigungsgruppen seines Tokens.

Diese Schritte kann er nur vorschlagen, und eine Person muss sie freigeben: accounting_fiscal_year.close, accounting_fiscal_year.reopen, accounting_period.close, accounting_period.reopen, accounting_move.post, accounting_move.reverse, accounting_account.delete, accounting_journal.delete, accounting_tax.delete, accounting_fiscal_year.delete, accounting_period.delete, accounting_move.delete, accounting_move_line.delete, accounting_bank_statement_line.delete.

Diese Felder werden Agenten vollständig vorenthalten: accounting_move_line.debit, accounting_move_line.credit, accounting_bank_statement_line.amount, accounting_bank_statement_line.counterparty_name, accounting_bank_statement_line.counterparty_iban.

Abhängigkeiten ​

  • base

Installation ​

Installieren Sie sie in der App Customize (Marktplatz) oder über die Kommandozeile:

bash
obop modules install-from accounting

Erfordert eine Datenbank und Administratorrechte.

Selbst bauen ​

Der Modulleitfaden zeigt, wie Apps wie diese geschrieben werden