TIP: You can type at any time to perform a new search.
PMS - Accounting
pms_account · OCA/pms
- Repository
- OCA/pms · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Generic Modules/Property Management System
- Folder size
- 0.27 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/pms
- Last tracking update
- 2026-08-18 17:42:14
- Authors
- Odoo Community Association (OCA), Gray Matter Logic
- Maintainers
- Odoo Community Association (OCA), Gray Matter Logic
- Committers
- Maxime Chambreuil, Weblate, OCA-git-bot, oca-ci
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- pms_account_asset, pms_contract, pms_purchase, pms_sale
- Description
This module integrates the Odoo Accounting app with the Property Management System (PMS). It adds: - **Invoice and bill counters on properties**: smart buttons on the property form show the number of customer invoices and vendor bills linked to that property, with one-click navigation to the list or form view. - **Property field on invoice lines**: each invoice line can be linked to one or more properties, allowing financial movements to be tracked per property. - **Properties smart button on invoices**: from any invoice or bill, a smart button shows the number of related properties and navigates directly to them. - **Analytic account on properties**: an analytic account can be assigned to each property to consolidate its financial activity in analytic reports. - **Vendor field on PMS services**: each PMS service can be linked to a vendor (supplier) for purchasing and billing purposes.
Code Analysis ⓘ
Views touched (6)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_account_analytic_account_form |
account.analytic.account.form | account.analytic.account | form | Inherits analytic.view_account_analytic_account_form |
view_account_invoice_form |
pms.property.invoice.form.pms | account.move | form | Inherits account.view_move_form |
view_invoice_search |
invoice.search.pms | account.move | search | Inherits account.view_account_move_filter |
view_pms_property_form |
pms.property.form | pms.property | form | Inherits pms_base.view_pms_property_form |
view_vendor_bill_form |
vendor.bill.form.pms | account.move | form | Inherits account.view_move_form |
view_vendor_bill_tree |
vendor.bill.tree.pms | account.move | tree | Inherits account.view_invoice_tree |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (5)
New fields (1)
-
property_idMany2one → pms.propertycopy=Falsestring='Property' args: 'pms.property'
No public methods.
New fields (2)
-
property_countIntegercompute='_compute_pms_property_ids'string='Properties' -
property_idsMany2many → pms.propertycompute='_compute_pms_property_ids'string='Properties associated to this invoice' args: 'pms.property'
-
action_view_pms_property(self)
New fields (1)
-
property_idsMany2many → pms.propertycopy=Falsereadonly=Truestring='Properties' args: 'pms.property', 'pms_property_account_move_line_rel', 'account_move_line_id', 'property_id'
No public methods.
New fields (6)
-
analytic_idMany2one → account.analytic.accountcomodel_name='account.analytic.account'string='Analytic Account' -
bill_countIntegercompute='_compute_invoice_count'copy=Falsereadonly=True -
bill_idsMany2many → account.movecompute='_compute_invoice_count'copy=Falsereadonly=Truestring='Bills' args: 'account.move' -
invoice_countIntegercompute='_compute_invoice_count'copy=Falsereadonly=True -
invoice_idsMany2many → account.movecompute='_compute_invoice_count'copy=Falsereadonly=Truestring='Invoices' args: 'account.move' -
invoice_line_idsMany2many → account.move.linecopy=Falsestring='Invoice Lines' args: 'account.move.line', 'pms_property_account_move_line_rel', 'property_id', 'account_move_line_id'
-
action_view_bills(self) -
action_view_invoices(self) -
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (1)
-
vendor_idMany2one → res.partnercomodel_name='res.partner'domain="[('supplier_rank', '>=', 0)]"ondelete='restrict'required=Truestring='Vendor'
No public methods.