11 KiB
General Ledger Gap Analysis
Date: 2026-05-05
Comparison scope:
- Ideal target:
C:/DataS/OpenSquared/Tradon/Source/Accounting_report/accounting_report/Reports/GL/GL_001_general_ledger.md - Standards:
Docs/reporting_standards.md,Docs/reporting_parameters.md,Docs/reporting_fields_catalog.md - Current Tryton/Tradon source:
modules/account/account.pymodules/account/account.xmlmodules/account/view/general_ledger_account_list.xmlmodules/account/view/general_ledger_line_list.xmlnotes/accounting/reporting.md
1. Executive Summary
Tryton already has a strong General Ledger foundation:
- account-level opening, movement and closing balances;
- date or period filtering;
- journal filtering;
- posted-only option;
- drill-down from accounts to detailed move lines;
- running balance at line level;
- party drill-down for party-required accounts.
The main gap is that the ideal GL-001 is specified as a complete detail
report, grouped by account and transaction currency, with explicit opening and
closing rows and a rich audit column set. Tryton's current standard General
Ledger is split between:
- an account summary view/report (
account.general_ledger.account); - a line drill-down view (
account.general_ledger.line).
It does not expose the ideal output as one flat, export-ready report.
2. Parameters
Covered by Tryton
| Ideal parameter | Tryton current support |
|---|---|
date_from |
supported as from_date |
date_to |
supported as to_date |
journal |
supported in account.general_ledger.account.context |
entity |
supported through current company context |
Partial or missing
| Ideal parameter | Gap |
|---|---|
account |
Tryton opens all non-closed typed accounts in the GL account view; account selection is possible via UI/domain/drill-down, but not a first-class explicit report parameter in the context model. |
currency |
missing as an explicit GL parameter. Tryton exposes company currency and line second_currency, but the GL context has no transaction-currency filter. |
entity |
supported as current company, but no explicit multi-entity selector. This may be acceptable because the ideal spec says current entity unless ERP supports more. |
document number or voucher number |
not a first-class filter in the General Ledger context. |
Out-of-scope ideal parameters (counterparty, analytic_account,
profit_center) are also not part of the current Tryton GL context. That aligns
with the ideal scope, except party drill-down exists as an extra Tryton feature.
3. Filtering Gaps
| Ideal filter | Tryton status |
|---|---|
Posting date between date_from and date_to |
covered via from_date / to_date, though Tryton also supports period range. |
| Account or account range | partial. Account range is not visible as a standard context parameter. |
| Currency | gap. No explicit transaction-currency filter. |
| Journal | covered. |
| Entity | covered by company context, not explicit user-facing parameter. |
| Document/voucher number | gap in context; can likely be searched on line/move fields, but not a report parameter. |
| Posted/non-posted scope | Tryton supports posted boolean; ideal treats posting_status as output information, not default filter. |
4. Sorting Gaps
Ideal default sorting:
- account
- transaction currency
- posting date
- document number
Tryton current behavior:
account.general_ledger.accountsorts by account.account.general_ledger.linesorts by date ascending.- running balance window orders by
move.date, then line id.
Gaps:
- no primary transaction-currency sort;
- no document-number sort in default GL line ordering;
- account grouping happens one level above the line view, not as a single flat ordered export;
- document number is not clearly mapped to
move.numbervsmove.post_number.
5. Grouping and Balance Presentation
Ideal:
- group by account and transaction currency;
- display opening balance row per account/currency;
- display detailed movement lines;
- display closing balance row per account/currency;
- show balances in both transaction currency and base currency;
- calculate running balances line by line.
Tryton:
- account summary has
start_balance,debit,credit,end_balance; - line view has
debit,credit,amount_second_currency,balance; - line running balance exists in base currency via
internal_balanceplus start balance; - no explicit opening/closing rows in the line report;
- no grouped transaction-currency balance presentation;
- second currency amount is a single signed amount, not split debit/credit and running balance.
Gaps:
- missing account/currency opening and closing rows;
- missing transaction-currency running balance;
- missing debit/credit split in transaction currency;
- missing transaction-currency totals;
- current printable General Ledger is account-driven, not the full ideal detailed layout.
6. Output Column Gaps
Covered or mostly mappable
| Ideal column | Tryton source candidate |
|---|---|
entity |
company |
account |
account.account.code via ledger account |
account_name |
account.account.name |
base_currency |
company currency |
posting_date |
account.move.date / line date |
journal |
account.move.journal |
journal_entry_number |
likely account.move.number or post_number |
document_number |
likely account.move.number or invoice number depending definition |
posting_status |
account.move.state |
counterparty |
account.move.line.party |
description |
line description_used / move description |
reference |
move origin, ext_ref, invoice reference depending mapping |
debit_base_currency |
line debit |
credit_base_currency |
line credit |
balance_base_currency |
line balance |
entered_date |
line/move create_date |
modified_date |
line/move write_date |
Gaps or mapping questions
| Ideal column | Gap |
|---|---|
transaction_currency |
Tryton has second_currency, but base-currency lines may have no transaction currency. Need convention: use second_currency else company currency? |
document_date |
not exposed in current GL line view. Could map to invoice date for invoice origins, move date otherwise. |
document_type |
not exposed. Needs mapping from origin model or journal/type. |
supplier_invoice_number |
not exposed. Could map to supplier invoice reference for AP invoice origins, but requires origin-specific logic. |
voucher_number |
not exposed; need decide whether move.number, post_number, ext_ref or another internal ref is voucher. |
payable_qty |
not in standard GL. Tradon may map from lot/invoice/fee/trade links on move lines, but requires custom logic. |
uom |
same as payable quantity. |
debit_transaction_currency |
missing as explicit split; Tryton stores signed amount_second_currency. |
credit_transaction_currency |
missing as explicit split. |
balance_transaction_currency |
missing as running balance. |
entered_by |
not exposed in GL view; can be mapped from create_uid. |
modified_by |
not exposed in GL view; can be mapped from write_uid. |
7. Sign Convention Gaps
Ideal GL convention:
- debit amounts positive;
- credit amounts negative;
- running balances use debit-positive and credit-negative convention.
Tryton:
- base debit and credit are stored/displayed as positive numeric columns;
- balance uses
debit - credit; - second currency is signed in
amount_second_currency.
Gaps:
- ideal asks
credit_transaction_currencyandcredit_base_currencyas negative amounts, but Tryton displays credit column as positive amount; - need decide whether exports should preserve Tryton UI convention or transform credits to negative for the ideal GL layout.
8. Audit Trail Gaps
Ideal requires enough audit references to trace:
- accounting document;
- source document;
- AP supplier invoice number when available;
- creation/modification user and dates.
Tryton has the raw ingredients:
- move;
- line origin;
- move origin;
- invoice origin in many generated flows;
create_uid,create_date,write_uid,write_date.
But current GL output does not expose:
- source document number/date/type in normalized columns;
- supplier invoice number;
- entered/modified user labels;
- voucher/reference mapping;
- payable quantity/uom for commodity postings.
9. Export Gaps
Ideal:
- CSV;
- XLSX;
- PDF including all detail columns.
Tryton:
- standard UI list export may cover CSV-like exports depending client;
- printable report is
.fodt-> usually PDF/ODT; - the standard PDF is not designed to include all ideal detail columns;
- no dedicated XLSX export is identified for General Ledger.
Gaps:
- dedicated XLSX export;
- wide detailed PDF;
- one export-ready flat GL dataset.
10. Controls and Reconciliation
Ideal controls:
- debit/credit reconcile by selected period, account and transaction currency;
- opening + movements = closing by account/currency;
- base total reconciles with trial balance;
- line audit references preserved.
Tryton:
- move posting enforces balanced moves in company currency;
- GL account start/debit/credit/end balances support reconciliation in base currency;
- Trial Balance reuses the same account model, which helps base-currency reconciliation.
Gaps:
- transaction-currency reconciliation by account/currency is not explicit;
- opening/movement/closing by transaction currency not implemented in current GL model;
- audit reference completeness depends on origin mapping not present in GL report.
11. Prioritized Gaps
| Priority | Gap |
|---|---|
| High | Build or expose a flat detailed GL dataset matching GL-001, not only account summary + drill-down. |
| High | Add transaction currency grouping/filtering and running balances. |
| High | Add opening and closing rows by account and transaction currency. |
| High | Define mapping for document_number, journal_entry_number, voucher_number, reference. |
| High | Normalize source document metadata: document type, document date, supplier invoice number. |
| Medium | Split amount_second_currency into debit/credit transaction-currency columns. |
| Medium | Decide and implement GL sign convention transformation for credit columns. |
| Medium | Add audit columns entered_by, entered_date, modified_by, modified_date. |
| Medium | Add dedicated CSV/XLSX export target. |
| Low/Trade-specific | Add payable_qty and uom for commodity-related postings, probably using Tradon lot/invoice/fee links. |
12. Open Questions
- In Tryton mapping, should
document_numberbeaccount.move.number,account.move.post_number, invoicenumber, or a context-dependent value? - Should
journal_entry_numberbemove.numberanddocument_numberbe the business document number? - Is
voucher_numberdistinct in Tradon, or should it remain blank? - Should
transaction_currencydefault to company currency whensecond_currencyis empty? - Should credit columns be exported as negative values to match the ideal GL, even though Tryton UI displays credit as positive?
- Which origin models should feed
document_dateanddocument_typein the first implementation? - Can payable quantity/uom be derived reliably from
account.move.line.lot,fee, or invoice line origin for all commodity postings?