diff --git a/marmaid.md b/marmaid.md new file mode 100644 index 0000000..0588f47 --- /dev/null +++ b/marmaid.md @@ -0,0 +1,164 @@ +```mermaid +classDiagram +direction TB +class `account.bank.statement`{ + state ~sel:open,posted,confirm~ + date + date_done + balance_start + balance_end_real +} + +`account.bank.statement` o-- `account.journal` : journal_id | +`account.bank.statement` o-- "**" `account.move.line` : move_line_ids | +class `account.bank.statement.line`{ + sequence + transaction_type + partner_name + amount + unique_import_id +} +`account.bank.statement.line` ..> "1" `account.move` : move_id | +`account.bank.statement.line` "**" --* `account.bank.statement` :‌ statement_id | line_ids +`account.bank.statement.line` "**" o-- "**" `account.payment` :‌ payment_ids | +`account.bank.statement.line` o-- `res.partner` : partner_id | + +%% unique_import_id - Ensure transactions can be imported only once if the import format provides unique transaction IDs +class `account.payment`{ + is_internal_transfer ~bool~ + is_matched ~bool~ + payment_type ~sel:inbound,outbound~ + date + amount + ref +} +`account.payment` --|> `account.move` +`account.payment` o-- `res.partner` : partner_id | +`account.payment` o-- `payment.transaction` : payment_transaction_id | payment_id +`account.payment` o-- `payment.token` : payment_token_id | +`account.payment` o-- `account.payment.method.line` : payment_method_line_id | +`account.payment` o-- `account.journal` : journal_id | +`account.payment` *-- "**" `account.payment.line` :‌payment_line_ids | +class `account.move`{ + financial_type ~sel~ + date + ref + auto_post ~sel~ +} +class `account.move.line`{ + name + debit + credit + date_maturity + matching_number +} +`account.move` *-- "**" `account.move.line` :‌ line_ids | +`account.move` *-- "**" `account.move.line` :‌ invoice_line_ids | +`account.move` o-- `payment.transaction` : authorized_transaction_ids | +`account.move.line` o-- `account.account` : account_id | +`account.move.line` o-- `res.partner` : partner_id | +class `payment.transaction`{ + reference + provider_reference + provider_code + operation ~sel~ +} +`payment.transaction` o-- `payment.provider` : provider_id | +`payment.transaction` o-- `payment.token` : token_id | transaction_ids +`payment.transaction` o-- `payment.transaction` : child_transaction_ids | source_transaction_id +`payment.transaction` "**" -- "**" `account.move` : invoice_ids | +class `account.move.make.netting`{ + balance + balance_type ~sel:receive,pay~ +} +`account.move.make.netting` --* `account.journal` : journal_id | +`account.move.make.netting` --o `account.move.line` : move_line_ids | +class `account.move.reversal`{ + date + reason + residual + refund_method ~sel:refund,cancel,modify~ + move_type +} +`account.move.reversal` *-- `account.journal` : journal_id | +`account.move.reversal` o-- `account.move` : move_ids | +`account.move.reversal` o-- `account.move` : new_‌move_ids | +class `account.payment.method`{ + payment_type ~sel:~ + code + mandate_required ~bool~ + payment_order_only ~bool~ + bank_account_required ~bool~ +} +`account.payment.method` o-- `account.payment.mode` : payment_mode_ids | payment_method_id +class `account.payment.method.line`{ + <> + name +} +`account.payment.method.line` o-- `account.journal` : journal_id | +`account.payment.method.line` o-- `account.payment.method` : payment_method_id | +`account.payment.method.line` o-- `account.account` : payment_account_id | +`account.payment.method.line` o-- `payment.provider` : payment_provider_id | +`account.payment.method.line` o-- `account.account` : payment_account_id | + +class `account.journal`{ + name + bank_statements_source ~sel~ + reconcile_mode ~sel: edit,keep~ +} +`account.journal` o-- `account.account` : account_control_ids | +`account.journal` o-- `res.partner.bank` : bank_account_id | +`account.journal` o-- `account.account` : suspense_account_id | +`account.journal` o-- `account.payment.method` : available_payment_method_ids | +class `payment.token`{ + provider_ref + payment_details + verified ~bool~ + authorize_payment_method_type ~sel~ + stripe_payment_method +} +`payment.token` o-- `payment.provider` : provider_id | +`payment.token` o-- `res.partner` : partner_id | +`payment.provider` o-- `account.journal` : journal_id +`payment.provider` o-- `ir.module.module` : module_id +`payment.provider` o-- `ir.ui.view` : express_checkout_form_view_id | +`payment.provider` o-- `ir.ui.view` : inline_form_view_id | +class `payment.provider`{ + <> + custom_mode ~sel:wire_transfer,onsite~ + pre_msg + pending_msg + auth_msg + cancel_msg + done_msg + sequence + paypal_pdt_token + stripe_publishable_key + ... +} +class `account.payment.register`{ + amount +} +`account.payment.register` o-- `account.journal` : journal_id | +`account.payment.register` o-- `res.partner.bank` : partner_bank_id | +`account.payment.register` o-- `payment.token` : payment_token_id | +`account.payment.register` o-- `account.payment.method.line` :‌ payment_method_line_id | + +class `account.reconcile.model`{ + name + rule_type + auto_reconcile + to_check +} +`account.reconcile.model` *-- "**" `account.reconcile.model.line` : line_ids | model_id +class `account.account`{ + name + opening_credit + opening_debit + reconcile ~bool~ +} +class `account.full.reconcile`{ + name [Number] +} + +``` \ No newline at end of file