TIP: You can type at any time to perform a new search.
Account Forex Spot
account_fx_spot · OCA/currency
- Repository
- OCA/currency · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Accounting
- Folder size
- 1.0 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/account-financial-tools
- Last tracking update
- 2026-08-07 07:24:57
- Authors
- Odoo Community Association (OCA), Eficent
- Maintainers
- Odoo Community Association (OCA), Eficent
- Committers
- Lois Rilo, Weblate, OCA Transbot, oca-travis
Code Analysis ⓘ
Views touched (5)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_account_fx_spot_form |
account.fx.spot.form | account.fx.spot | form | New |
view_account_fx_spot_search |
account.fx.spot.search | account.fx.spot | search | New |
view_account_fx_spot_tree |
account.fx.spot.tree | account.fx.spot | tree | New |
view_account_payment_form |
account.payment.form - account_fx_spot | account.payment | form | Inherits account.view_account_payment_form |
view_account_payment_from_fx_spot |
account.fx.spot.payment.wizard | account.fx.spot.payment | form | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (3)
New fields (24)
-
amount_inMonetarycurrency_field='in_currency_id'readonly=Truerequired=Truestates={'draft': [('readonly', False)]}string='Received Amount' -
amount_outMonetarycurrency_field='out_currency_id'readonly=Truerequired=Truestates={'draft': [('readonly', False)]}string='Issued Amount' -
commentTextreadonly=Truestates={'draft': [('readonly', False)]}string='Additional Information' -
commercial_partner_idMany2onecompute_sudo=Truereadonly=Truerelated='partner_id.commercial_partner_id'store=True -
company_currency_idMany2onerelated='company_id.currency_id' -
company_idMany2one → res.companychange_default=Truecomodel_name='res.company'default=<expr>readonly=Truerequired=Truestates={'draft': [('readonly', False)]}string='Company' -
date_transactionDatecopy=Falsedefault=fields.Date.today()help='Keep empty to use the current date'index=Truereadonly=Truestates={'draft': [('readonly', False)]}string='Transaction Date' -
in_currency_idMany2one → res.currencycomodel_name='res.currency'readonly=Truerequired=Truestates={'draft': [('readonly', False)]}string='Incoming Currency' -
journal_idMany2one → account.journalcomodel_name='account.journal'default=<expr>readonly=Truerequired=Truestates={'draft': [('readonly', False)]}string='Journal' -
move_idMany2one → account.movecomodel_name='account.move'copy=Falsereadonly=Truestring='Journal Entry' -
nameCharcopy=Falseindex=Truereadonly=Truestring='Reference' -
out_currency_idMany2one → res.currencycomodel_name='res.currency'readonly=Truerequired=Truestates={'draft': [('readonly', False)]}string='Outgoing Currency' -
partner_idMany2one → res.partnerchange_default=Truecomodel_name='res.partner'readonly=Truerequired=Truestates={'draft': [('readonly', False)]}string='Partner'track_visibility='always' -
payment_idsMany2many → account.paymentcolumn1='fx_spot_id'column2='payment_id'comodel_name='account.payment'copy=Falsereadonly=Truerelation='account_fx_spot_payment_rel'string='Payments' -
payment_move_line_idsMany2many → account.move.linecomodel_name='account.move.line'compute='_compute_payments'store=Truestring='Payment Move Lines' -
payments_countIntegercompute='_compute_payments_count'string='Payments count' -
rateFloatcompute='_compute_rate'digits=dp.get_precision('Exchange Rate')readonly=True -
rate_invFloatcompute='_compute_rate'digits=dp.get_precision('Exchange Rate')readonly=Truestring='Rate Inverted' -
reconciledBooleancompute='_compute_residual'readonly=Truestore=Truestring='Paid/Reconciled' -
residual_company_inMonetarycompute='_compute_residual'currency_field='company_currency_id'readonly=Truestore=Truestring='Remaining amount to receive in company currency' -
residual_company_outMonetarycompute='_compute_residual'currency_field='company_currency_id'readonly=Truestore=Truestring='Remaining amount due in company currency' -
residual_inMonetarycompute='_compute_residual'currency_field='in_currency_id'readonly=Truestore=Truestring='Remaining amount to receive' -
residual_outMonetarycompute='_compute_residual'currency_field='out_currency_id'readonly=Truestore=Truestring='Remaining amount due' -
stateSelectiondefault='draft'index=Truereadonly=Trueselection=[('draft', 'Draft'), ('open', 'Open'), ('done', 'Done'), ('cancel', 'Cancelled')]string='Status'
-
action_cancel(self)@api.multi -
action_confirm(self) -
action_done(self)@api.multi -
action_draft(self)@api.multi -
action_re_open(self)@api.multi -
action_view_payments(self) -
create(self, vals)@api.model -
register_payment(self, payment_line, writeoff_acc_id=False, writeoff_journal_id=False)@api.multiReconcile payable/receivable lines from the transaction with payment_line.
New fields (3)
-
fx_spot_idsMany2many → account.fx.spotcomodel_name='account.fx.spot'copy=Falsestring='Foreign Exchange Spot Transaction' -
multiBooleanhelp='Technical field indicating if the user selected transactions from multiple partners or from different types.'string='Multi' -
payment_typeSelectiondefault=default_type
-
create_payments(self)@api.multiCreate payments according to the transactions. Having transactions with different commercial_partner_id leads to multiple payments. In case of all the transactions are related to the same commercial_partner_id, only one payment will be created. :return: The ir.actions.act_window to show created payments. -
default_get(self, fields)@api.model -
default_type(self)@api.multi -
get_payments_vals(self)@api.multiCompute the values for payments. :return: a list of payment values (dictionary). -
onchange_payment_type(self)@api.onchange('payment_type')
New fields (2)
-
fx_spot_idsMany2many → account.fx.spotcolumn1='payment_id'column2='fx_spot_id'comodel_name='account.fx.spot'copy=Falsereadonly=Truerelation='account_fx_spot_payment_rel'string='Foreign Exchange Spot Transaction' -
has_fx_spotsBooleancompute='_compute_has_fx_spots'help='Technical field for usability purposes'
-
button_fx_spot(self)@api.multi