2
marmaid
Ivo Šmelhaus edited this page 2024-04-07 20:05:25 +02:00
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`{
<<Payment Methods>>
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`{
<<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 |