Clone
2
marmaid
Ivo Šmelhaus edited this page 2024-04-07 20:05:25 +02:00
This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 |