diff --git a/Assessments/Tradon/GL_001/decisions.md b/Assessments/Tradon/GL_001/decisions.md new file mode 100644 index 0000000..c9544c9 --- /dev/null +++ b/Assessments/Tradon/GL_001/decisions.md @@ -0,0 +1,20 @@ +# GL-001 Decisions + +This file records decisions taken after reviewing the GL-001 exposure to Tryton / Tradon. + +## Decision log + +| Date | ID | Decision | Rationale | Impact | Status | +| --- | --- | --- | --- | --- | --- | +| 2026-05-07 | GL001-D001 | Create a dedicated assessment folder for the GL-001 exposure to Tryton / Tradon. | The GAP analysis contains exposure notes, mappings, open points and priorities that should not be mixed into the target report specification. | `Reports/GL/GL_001_general_ledger.md` remains the target specification; assessment material lives under `Assessments/Tradon/GL_001/`. | Confirmed | + +## Pending decisions + +| ID | Decision needed | Linked open point | Status | +| --- | --- | --- | --- | +| GL001-PD001 | Decide final mapping of `document_number`, `journal_entry_number`, `voucher_number` and `reference`. | GL001-Q001, GL001-Q002, GL001-Q003 | Open | +| GL001-PD002 | Decide transaction-currency fallback when `second_currency` is empty. | GL001-Q004 | Open | +| GL001-PD003 | Decide whether GL-001 exports transform credit amounts to negative values. | GL001-Q005 | Open | +| GL001-PD004 | Decide which source origin models feed `document_date`, `document_type` and supplier invoice references. | GL001-Q006, GL001-Q012 | Open | +| GL001-PD005 | Decide whether commodity fields `payable_qty` and `uom` are required in the first implementation. | GL001-Q007, GL001-Q013 | Open | +| GL001-PD006 | Decide whether GL-001 requires a new flat reporting dataset. | GL001-Q008 | Open | diff --git a/Assessments/Tradon/GL_001/exposure_notes.md b/Assessments/Tradon/GL_001/exposure_notes.md new file mode 100644 index 0000000..806c72b --- /dev/null +++ b/Assessments/Tradon/GL_001/exposure_notes.md @@ -0,0 +1,87 @@ +# GL-001 Exposure Notes + +## Executive summary + +Tryton already provides 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 target `GL-001` report is specified as a complete detailed report, grouped by account and transaction currency, with explicit opening and closing rows and a rich audit column set. + +Tryton's current General Ledger is split between: + +- an account summary view or report, represented by `account.general_ledger.account`; +- a line drill-down view, represented by `account.general_ledger.line`. + +It does not expose the target output as one flat, export-ready detailed report. + +## Main exposure conclusion + +The target `GL-001` specification is broader than the current Tryton standard General Ledger output. + +Tryton covers the accounting foundation and several filters, but the target report requires an additional reporting layer that flattens account summary and detailed lines into a single exportable dataset, with transaction-currency grouping, opening and closing rows, audit metadata and normalized document references. + +## Areas already covered or substantially supported + +| Area | Exposure result | +| --- | --- | +| Date range | Covered through `from_date` and `to_date` | +| Journal filter | Covered in the GL account context | +| Entity | Covered through current company context | +| Base-currency balances | Covered at account and line level | +| Account-level opening / movement / closing | Covered in the account summary | +| Drill-down to move lines | Covered | +| Running balance | Covered in base currency at line level | +| Party drill-down | Available for party-required accounts | + +## Areas requiring additional design or implementation + +| Area | Exposure result | +| --- | --- | +| Flat detailed report | Not exposed as a single export-ready dataset | +| Account and transaction-currency grouping | Missing or partial | +| Transaction-currency filter | Missing as an explicit GL parameter | +| Opening and closing rows by account and transaction currency | Missing | +| Transaction-currency running balance | Missing | +| Rich audit columns | Raw ingredients exist, but not exposed in normalized GL output | +| Document, voucher and reference mapping | Requires functional arbitration | +| Dedicated XLSX export | Not identified | +| Wide detailed PDF | Not covered by the standard printable GL | + +## Sign convention exposure + +The target `GL-001` convention is: + +- debit amounts displayed as positive amounts; +- credit amounts displayed as negative amounts; +- running balances calculated using debit-positive and credit-negative logic. + +Tryton currently exposes base debit and credit as positive numeric columns and computes balance as `debit - credit`. For transaction currency, Tryton stores a signed `amount_second_currency`. + +The export layer must therefore decide whether to preserve Tryton's UI convention or transform credit columns to the target `GL-001` convention. + +## Export exposure + +The target report requires: + +- CSV; +- XLSX; +- PDF including all detail columns. + +Tryton may support list exports through the standard UI and printable reports through `.fodt` templates, but the source analysis did not identify a dedicated flat General Ledger XLSX export or a wide detailed PDF matching all target columns. + +## Controls exposure + +Tryton supports important base-currency controls: + +- posted accounting moves are balanced in company currency; +- account start, debit, credit and end balances support reconciliation; +- Trial Balance reuses the same account model, helping base-currency reconciliation. + +The main remaining control gap is transaction-currency reconciliation by account and currency, including opening, movement and closing balances. diff --git a/Assessments/Tradon/GL_001/gap_mapping.md b/Assessments/Tradon/GL_001/gap_mapping.md new file mode 100644 index 0000000..77f4894 --- /dev/null +++ b/Assessments/Tradon/GL_001/gap_mapping.md @@ -0,0 +1,126 @@ +# GL-001 Gap Mapping + +## Parameters + +| Target parameter | Tryton / Tradon exposure | Gap | Priority | Status | +| --- | --- | --- | --- | --- | +| `date_from` | Supported as `from_date` | None identified | Covered | Confirmed | +| `date_to` | Supported as `to_date` | None identified | Covered | Confirmed | +| `journal` | Supported in `account.general_ledger.account.context` | None identified | Covered | Confirmed | +| `entity` | Supported through current `company` context | No explicit multi-entity selector | Medium | Open | +| `account` | Accounts can be opened, selected or filtered through UI/domain/drill-down | Not a first-class explicit report context parameter | Medium | Open | +| `currency` | Company currency and line `second_currency` exist | No explicit transaction-currency filter | High | Open | +| Document or voucher number | Search may be possible on line or move fields | Not a first-class General Ledger parameter | Medium | Open | +| `counterparty` | Party drill-down exists as an extra feature | Out of scope for GL-001 target parameters | Low | Out of Scope | +| `analytic_account` | Not in current GL context | Out of scope for GL-001 target parameters | Low | Out of Scope | +| `profit_center` | Not in current GL context | Out of scope for GL-001 target parameters | Low | Out of Scope | + +## Filters + +| Target filter | Tryton / Tradon exposure | Gap | Priority | Status | +| --- | --- | --- | --- | --- | +| Posting date between `date_from` and `date_to` | Covered through `from_date` and `to_date`; period range is also supported | None identified | Covered | Confirmed | +| Account or account range | Account range is not visible as a standard context parameter | Partial support only | Medium | Open | +| Currency | No explicit transaction-currency filter | Missing | High | Open | +| Journal | Covered | None identified | Covered | Confirmed | +| Entity | Covered by company context | Not explicit as user-facing parameter | Medium | Open | +| Document or voucher number | Can likely be searched on line or move fields | Missing as report parameter | Medium | Open | +| Posted / non-posted scope | Tryton supports a `posted` boolean | Target treats posting status mainly as output information | Low | Open | + +## Sorting + +| Target sorting requirement | Tryton / Tradon exposure | Gap | Priority | Status | +| --- | --- | --- | --- | --- | +| Sort by account | Account summary sorts by account | Covered at account level | Covered | Confirmed | +| Sort by transaction currency | No primary transaction-currency sort identified | Missing | High | Open | +| Sort by posting date | GL line view sorts by date ascending | Covered at line level | Covered | Confirmed | +| Sort by document number | Document-number sort not identified in default GL line ordering | Missing or unmapped | Medium | Open | +| Single flat ordered export | Account grouping and line ordering are split across views | Missing | High | Open | +| Mapping of document number | `move.number` versus `move.post_number` is unclear | Mapping question | High | Open | + +## Grouping and balance presentation + +| Target requirement | Tryton / Tradon exposure | Gap | Priority | Status | +| --- | --- | --- | --- | --- | +| Group by account | Account summary is account-driven | Covered at summary level | Covered | Confirmed | +| Group by transaction currency | `second_currency` exists on lines | No account/currency grouped presentation | High | Open | +| Opening balance rows | Account summary has `start_balance` | No explicit opening rows in detailed line report | High | Open | +| Movement lines | Line drill-down exists | Not exposed together with opening and closing rows in one flat report | High | Open | +| Closing balance rows | Account summary has `end_balance` | No explicit closing rows in detailed line report | High | Open | +| Running balance in base currency | Available through line balance logic | Covered in base currency | Covered | Confirmed | +| Running balance in transaction currency | `amount_second_currency` is a signed amount | Missing transaction-currency running balance | High | Open | +| Debit / credit split in transaction currency | Tryton stores signed `amount_second_currency` | Missing explicit debit and credit transaction-currency columns | Medium | Open | +| Transaction-currency totals | Not explicit | Missing | High | Open | + +## Output columns + +### Covered or mostly mappable + +| Target column | Tryton / Tradon source candidate | Gap | Status | +| --- | --- | --- | --- | +| `entity` | `company` | User-facing mapping to confirm | Open | +| `account` | `account.account.code` via ledger account | None identified | Confirmed | +| `account_name` | `account.account.name` | None identified | Confirmed | +| `base_currency` | Company currency | None identified | Confirmed | +| `posting_date` | `account.move.date` / line date | None identified | Confirmed | +| `journal` | `account.move.journal` | None identified | Confirmed | +| `journal_entry_number` | likely `account.move.number` or `post_number` | Mapping question | Open | +| `document_number` | likely `account.move.number` or invoice number depending definition | Mapping question | Open | +| `posting_status` | `account.move.state` | Exposure in GL output required | Open | +| `counterparty` | `account.move.line.party` | None identified | Confirmed | +| `description` | line `description_used` / move description | Mapping to confirm | Open | +| `reference` | move `origin`, `ext_ref`, invoice reference depending mapping | Mapping question | Open | +| `debit_base_currency` | line `debit` | Sign convention transformation may be required | Open | +| `credit_base_currency` | line `credit` | Target expects negative credits | Open | +| `balance_base_currency` | line `balance` | None identified | Confirmed | +| `entered_date` | line or move `create_date` | Exposure in GL output required | Open | +| `modified_date` | line or move `write_date` | Exposure in GL output required | Open | + +### Gaps or mapping questions + +| Target column | Tryton / Tradon exposure | Gap | Priority | Status | +| --- | --- | --- | --- | --- | +| `transaction_currency` | Tryton has `second_currency`; base-currency lines may have no transaction currency | Convention required: use `second_currency` else company currency? | High | Open | +| `document_date` | Not exposed in current GL line view | Map from invoice date for invoice origins, move date otherwise? | High | Open | +| `document_type` | Not exposed | Needs mapping from origin model or journal/type | High | Open | +| `supplier_invoice_number` | Not exposed | Could map to supplier invoice reference for AP invoice origins | High | Open | +| `voucher_number` | Not exposed | Need decide between `move.number`, `post_number`, `ext_ref` or blank | High | Open | +| `payable_qty` | Not in standard GL | Requires custom commodity logic | Low | Open | +| `uom` | Not in standard GL | Requires custom commodity logic | Low | Open | +| `debit_transaction_currency` | Signed `amount_second_currency` exists | Missing explicit debit split | Medium | Open | +| `credit_transaction_currency` | Signed `amount_second_currency` exists | Missing explicit credit split | Medium | Open | +| `balance_transaction_currency` | Not exposed | Missing running balance | High | Open | +| `entered_by` | Can be mapped from `create_uid` | Not exposed in GL view | Medium | Open | +| `modified_by` | Can be mapped from `write_uid` | Not exposed in GL view | Medium | Open | + +## Export + +| Target export | Tryton / Tradon exposure | Gap | Priority | Status | +| --- | --- | --- | --- | --- | +| CSV | Standard list export may cover CSV-like exports depending on client | Dedicated flat dataset still required | Medium | Open | +| XLSX | No dedicated XLSX export identified | Missing | Medium | Open | +| PDF with all detail columns | Standard printable GL is not designed for all ideal detail columns | Missing wide detailed output | Medium | Open | + +## Controls and reconciliation + +| Target control | Tryton / Tradon exposure | Gap | Priority | Status | +| --- | --- | --- | --- | --- | +| Debit / credit reconcile by period, account and transaction currency | Posting enforces balanced moves in company currency | Transaction-currency reconciliation is not explicit | High | Open | +| Opening + movements = closing by account and currency | Account start/debit/credit/end balances exist in base currency | Currency-level opening and closing missing | High | Open | +| Base total reconciles with Trial Balance | Trial Balance reuses same account model | Covered for base currency | Covered | Confirmed | +| Audit references preserved | Raw ingredients exist through move, line origin, move origin and invoice origin | Normalized exposure missing | High | Open | + +## Prioritized gaps + +| Priority | Gap | Status | +| --- | --- | --- | +| High | Build or expose a flat detailed GL dataset matching `GL-001`, not only account summary plus drill-down | Open | +| High | Add transaction-currency grouping, filtering and running balances | Open | +| High | Add opening and closing rows by account and transaction currency | Open | +| High | Define mapping for `document_number`, `journal_entry_number`, `voucher_number` and `reference` | Open | +| High | Normalize source document metadata: document type, document date and supplier invoice number | Open | +| Medium | Split `amount_second_currency` into debit and credit transaction-currency columns | Open | +| Medium | Decide and implement GL sign convention transformation for credit columns | Open | +| Medium | Add audit columns `entered_by`, `entered_date`, `modified_by` and `modified_date` | Open | +| Medium | Add dedicated CSV / XLSX export target | Open | +| Low | Add `payable_qty` and `uom` for commodity-related postings using Tradon lot, invoice or fee links | Open | diff --git a/Assessments/Tradon/GL_001/open_points.md b/Assessments/Tradon/GL_001/open_points.md new file mode 100644 index 0000000..a30302d --- /dev/null +++ b/Assessments/Tradon/GL_001/open_points.md @@ -0,0 +1,29 @@ +# GL-001 Open Points + +## Mapping questions + +| ID | Question | Area | Status | +| --- | --- | --- | --- | +| GL001-Q001 | In Tryton / Tradon mapping, should `document_number` be `account.move.number`, `account.move.post_number`, invoice `number`, or a context-dependent value? | Document references | Open | +| GL001-Q002 | Should `journal_entry_number` be `move.number` and `document_number` be the business document number? | Document references | Open | +| GL001-Q003 | Is `voucher_number` distinct in Tradon, or should it remain blank? | Document references | Open | +| GL001-Q004 | Should `transaction_currency` default to company currency when `second_currency` is empty? | Currency | Open | +| GL001-Q005 | Should credit columns be exported as negative values to match the target GL, even though Tryton UI displays credit as positive? | Sign convention | Open | +| GL001-Q006 | Which origin models should feed `document_date` and `document_type` in the first implementation? | Source document metadata | Open | +| GL001-Q007 | Can `payable_qty` and `uom` be derived reliably from `account.move.line.lot`, fees or invoice line origin for all commodity postings? | Commodity fields | Open | + +## Implementation questions + +| ID | Question | Area | Status | +| --- | --- | --- | --- | +| GL001-Q008 | Should GL-001 be implemented as a new flat reporting dataset rather than extending the standard Tryton General Ledger views? | Dataset design | Open | +| GL001-Q009 | Should transaction-currency opening and closing balances be calculated in the reporting layer or stored in an intermediate model? | Currency balances | Open | +| GL001-Q010 | Should document and source reference mappings be generic across all accounting reports or specific to GL-001 first? | Shared mappings | Open | + +## Business arbitration points + +| ID | Question | Area | Status | +| --- | --- | --- | --- | +| GL001-Q011 | Is multi-entity selection required, or is the current company context sufficient for the first GL-001 implementation? | Entity | Open | +| GL001-Q012 | Should AP-specific fields such as `supplier_invoice_number` be mandatory only when the source is an AP invoice? | Audit trail | Open | +| GL001-Q013 | Are `payable_qty` and `uom` mandatory for GL-001 launch, or can they remain low-priority commodity extensions? | Scope | Open | diff --git a/Assessments/Tradon/GL_001/source_documents/general_ledger_gap_analysis.md b/Assessments/Tradon/GL_001/source_documents/general_ledger_gap_analysis.md new file mode 100644 index 0000000..293568b --- /dev/null +++ b/Assessments/Tradon/GL_001/source_documents/general_ledger_gap_analysis.md @@ -0,0 +1,292 @@ +# 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.py` + - `modules/account/account.xml` + - `modules/account/view/general_ledger_account_list.xml` + - `modules/account/view/general_ledger_line_list.xml` + - `notes/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: + +1. account +2. transaction currency +3. posting date +4. document number + +Tryton current behavior: + +- `account.general_ledger.account` sorts by account. +- `account.general_ledger.line` sorts 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.number` vs `move.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_balance` plus + 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_currency` and `credit_base_currency` as + 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_number` be `account.move.number`, + `account.move.post_number`, invoice `number`, or a context-dependent value? +- Should `journal_entry_number` be `move.number` and `document_number` be the + business document number? +- Is `voucher_number` distinct in Tradon, or should it remain blank? +- Should `transaction_currency` default to company currency when + `second_currency` is 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_date` and `document_type` in the + first implementation? +- Can payable quantity/uom be derived reliably from `account.move.line.lot`, + `fee`, or invoice line origin for all commodity postings? + diff --git a/Assessments/Tradon/GL_001/source_material.md b/Assessments/Tradon/GL_001/source_material.md new file mode 100644 index 0000000..139e73b --- /dev/null +++ b/Assessments/Tradon/GL_001/source_material.md @@ -0,0 +1,46 @@ +# GL-001 Source Material + +## Source analysis + +| Item | Value | +| --- | --- | +| Repository source document | `source_documents/general_ledger_gap_analysis.md` | +| Original source location at time of import | `C:\Users\GiorgioCALLIGARO\OneDrive - SINGA ASSOCIATES SA\Bureau\general_ledger_gap_analysis.md` | +| Source analysis date | 2026-05-05 | +| Imported into assessment | 2026-05-07 | +| Target report | `Reports/GL/GL_001_general_ledger.md` | + +## Comparison scope stated in the source + +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 referenced by the GAP analysis: + +- `modules/account/account.py` +- `modules/account/account.xml` +- `modules/account/view/general_ledger_account_list.xml` +- `modules/account/view/general_ledger_line_list.xml` +- `notes/accounting/reporting.md` + +## Repository limitation + +This repository does not contain the Tryton / Tradon source files listed above. The present assessment preserves the conclusions of the external GAP analysis and should be treated as documentation of the exposure, not as an independent code review of Tradon. + +## Traceability note + +The content in this folder restructures the source analysis into reusable assessment files: + +- `exposure_notes.md` +- `gap_mapping.md` +- `open_points.md` +- `decisions.md` + +The repository copy in `source_documents/general_ledger_gap_analysis.md` is the retained source reference for this assessment. The original external path is preserved only as import traceability. diff --git a/Assessments/Tradon/README.md b/Assessments/Tradon/README.md new file mode 100644 index 0000000..772b834 --- /dev/null +++ b/Assessments/Tradon/README.md @@ -0,0 +1,58 @@ +# Tradon Exposure Assessments + +This folder documents the exposure of target accounting reports to Tryton / Tradon capabilities. + +The purpose is to keep report specifications in `Reports/` clean and stable, while documenting separately: + +- coverage identified in Tryton / Tradon; +- functional or technical gaps; +- mapping assumptions; +- open questions; +- decisions taken after review. + +## Scope and limits + +The current assessments are based on external analysis documents and available documentation. They should not be read as direct validation of the live Tradon implementation unless this is explicitly stated in the relevant assessment. + +For GL-001, the source analysis refers to Tryton / Tradon source files, but the current repository does not include that code. The assessment therefore preserves the evidence and conclusions as documented in the external GAP analysis. + +## Structure + +Each exposed report should have its own folder: + +```text +Assessments/ + Tradon/ + / + exposure_notes.md + gap_mapping.md + open_points.md + decisions.md + source_material.md +``` + +## File roles + +| File | Role | +| --- | --- | +| `exposure_notes.md` | Narrative summary of the exposure and main conclusions | +| `gap_mapping.md` | Structured gap mapping by functional area | +| `open_points.md` | Questions, assumptions and confirmations still required | +| `decisions.md` | Decisions and arbitrations taken after review | +| `source_material.md` | Source documents, date, scope and traceability notes | + +## Recommended statuses + +| Status | Meaning | +| --- | --- | +| `Open` | Gap, question or mapping still to be reviewed | +| `Confirmed` | Interpretation confirmed by source evidence or stakeholder review | +| `Accepted Gap` | Gap accepted without immediate change | +| `Requires Change` | Report specification or implementation must be adjusted | +| `Out of Scope` | Item acknowledged but excluded from the current scope | + +## Documentation principle + +`Reports/` remains the target functional specification. + +`Assessments/Tradon/` documents the comparison with Tryton / Tradon and should not silently redefine the target report. Any change to a report specification should be made explicitly in the relevant `Reports/` file and, where useful, recorded in the assessment `decisions.md`. diff --git a/README.md b/README.md index 4ba9d7d..87a11c3 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,10 @@ L'objectif du dossier est de maintenir un referentiel clair des rapports a produ | |-- reporting_standards.md | |-- Trad On - Rapports Comptables et Financiers.xlsx | `-- DOCS_GUIDE.md +|-- Assessments/ +| `-- Tradon/ +| |-- README.md +| `-- GL_001/ |-- Reports/ | |-- GL/ | |-- STATUTORY/ @@ -42,6 +46,7 @@ L'objectif du dossier est de maintenir un referentiel clair des rapports a produ - `Docs/reporting_parameters.md` centralise les parametres communs. - `Docs/reporting_standards.md` fixe les conventions de champs, montants, signes et tris. - `Docs/Trad On - Rapports Comptables et Financiers.xlsx` est la source initiale de cadrage fonctionnel. +- `Assessments/Tradon/` documente l'exposition des rapports cibles aux capacites Tryton / Tradon, les GAP, questions ouvertes et decisions. ## Rapports specifies