TIP: You can type at any time to perform a new search.
PMS (Property Management System)
pms · OCA/pms
⚠ Security warnings
pms_folio_rule_portal— Record rule with an always-true domain grants portal/public users access to every record of its model rule-public-bypass · sourcepms_precheckin_rule_portal— Record rule with an always-true domain grants portal/public users access to every record of its model rule-public-bypass · sourcepms_reservation_rule_portal— Record rule with an always-true domain grants portal/public users access to every record of its model rule-public-bypass · sourceres_checkin_partner_rule_portal— Record rule with an always-true domain grants portal/public users access to every record of its model rule-public-bypass · sourceres_partner_rule_portal— Record rule with an always-true domain grants portal/public users access to every record of its model rule-public-bypass · source
Found by automated static analysis: these patterns are usually risky, but only a manual review of the module can confirm a real issue.
🛠 Migration considerations
account_payment_view_form— View 'account_payment_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcebooking_duplicate— View 'booking_duplicate' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcebooking_engine— View 'booking_engine' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcemassive_changes_wizard— View 'massive_changes_wizard' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcemove_form— View 'move_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepayment_transaction_inherit_view_form— View 'payment_transaction_inherit_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_board_service_form— View 'pms_board_service_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_board_service_room_type_form— View 'pms_board_service_room_type_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_cancelation_rule_form— View 'pms_cancelation_rule_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_checkin_partner_folio_view_tree— View 'pms_checkin_partner_folio_view_tree' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_checkin_partner_kanban_view— View 'pms_checkin_partner_kanban_view' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_checkin_partner_reservation_view_tree— View 'pms_checkin_partner_reservation_view_tree' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_checkin_partner_view_form— View 'pms_checkin_partner_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_checkin_partner_view_tree— View 'pms_checkin_partner_view_tree' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_folio_view_form— View 'pms_folio_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_reservation_view_form— View 'pms_reservation_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_room_closure_reason_view_form— View 'pms_room_closure_reason_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_room_view_form— View 'pms_room_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_service_line_report_view_tree— View 'pms_service_line_report_view_tree' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_service_line_view_form— View 'pms_service_line_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_service_line_view_tree— View 'pms_service_line_view_tree' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_service_view_form— View 'pms_service_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_service_view_tree— View 'pms_service_view_tree' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourceproduct_pricelist_view_form— View 'product_pricelist_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourceproduct_template_view_form— View 'product_template_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourceres_partner_view_form— View 'res_partner_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcereservation_wizard— View 'reservation_wizard' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourceview_folio_advance_payment_inv— View 'view_folio_advance_payment_inv' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcewizard_folio_changes_view_form— View 'wizard_folio_changes_view_form' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourceavailability_plan_rule_view_tree— View 'availability_plan_rule_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourceavailability_view_tree— View 'availability_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_amenity_view_list— View 'pms_amenity_view_list' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_board_service_view_tree— View 'pms_board_service_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_cancelation_rule_view_tree— View 'pms_cancelation_rule_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_checkin_partner_folio_view_tree— View 'pms_checkin_partner_folio_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_checkin_partner_reservation_view_tree— View 'pms_checkin_partner_reservation_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_checkin_partner_view_tree— View 'pms_checkin_partner_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_folio_view_tree— View 'pms_folio_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_property_views_tree— View 'pms_property_views_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_reservation_view_bottom_tree— View 'pms_reservation_view_bottom_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_reservation_view_tree— View 'pms_reservation_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_room_amenity_type_view_list— View 'pms_room_amenity_type_view_list' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_room_closure_reason_view_tree— View 'pms_room_closure_reason_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_room_type_class_view_tree— View 'pms_room_type_class_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_room_type_view_tree— View 'pms_room_type_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_room_view_tree— View 'pms_room_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_sale_channel_view_tree— View 'pms_sale_channel_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_service_line_report_view_tree— View 'pms_service_line_report_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_service_line_view_tree— View 'pms_service_line_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_service_view_tree— View 'pms_service_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_ubication_view_tree— View 'pms_ubication_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourceproduct_pricelist_item_view_tree— View 'product_pricelist_item_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · source
Found by automated static analysis: patterns worth a look before/after upgrading this module to a newer Odoo version.
- Repository
- OCA/pms · module folder · Try on Runboat
- Module version
- 4.12.0
- Category
- Generic Modules/Property Management System
- Folder size
- 4.29 MB
- License
- AGPL-3
- Application
- Yes
- Auto-installable
- No
- Website
- https://github.com/OCA/pms
- Last tracking update
- 2026-08-17 11:00:57
- Authors
- Odoo Community Association (OCA), Commit [Sun]
- Maintainers
- Odoo Community Association (OCA), Commit [Sun]
- Committers
- Omar (Comunitea), Weblate, OCA-git-bot, Darío Lodeiros, oca-ci, DarioLodeiros, irluidev, jesusvmayor
- Odoo dependencies
- Python dependencies
- openupgradelib
- System dependencies
- None
- Required by
- pms_account_move_budget, pms_hr_property, pms_l10n_es, pms_l10n_es_sii, pms_l10n_es_tbai, pms_partner_identification, pms_partner_second_lastname, pos_pms_link
- Description
Code Analysis ⓘ
Views touched (125)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_analytic_distribution_model_form_inherit |
account.analytic.distribution.model.inherit.form | account.analytic.distribution.model | form | Inherits account.account_analytic_distribution_model_form_inherit |
account_analytic_distribution_model_tree_inherit |
account.analytic.distribution.model.inherit.tree | account.analytic.distribution.model | tree | Inherits account.account_analytic_distribution_model_tree_inherit |
account_journal_dashboard_kanban_view |
account.journal | kanban | Inherits account.account_journal_dashboard_kanban_view | |
account_journal_view_form |
account.journal | form | Inherits account.view_account_journal_form | |
account_payment_view_form |
account.payment | form | Inherits account.view_account_payment_form | |
advanced_filters_wizard |
Filter by dates | pms.advanced.filters.wizard | form | New |
availability_plan_rule_view_form |
pms.availability.plan.rule.form | pms.availability.plan.rule | form | New |
availability_plan_rule_view_tree |
pms.availability.plan.rule.tree | pms.availability.plan.rule | tree | New |
availability_view_form |
pms.availability.plan.form | pms.availability.plan | form | New |
availability_view_tree |
pms.availability.plan.tree | pms.availability.plan | tree | New |
bank_statement_form |
account.bank.statement | form | Inherits account.view_bank_statement_form | |
booking_duplicate |
Duplicate Folio | pms.booking.duplicate | form | New |
booking_engine |
Folio Wizard | pms.booking.engine | form | New |
company_view_form |
res.company | form | Inherits base.view_company_form | |
folio_portal_template |
Folio Portal Template | ir.ui.view | qweb | Inherits portal.portal_sidebar |
massive_changes_wizard |
Availability Wizard | pms.massive.changes.wizard | form | New |
move_form |
account.move | form | Inherits account.view_move_form | |
payment_checkout_inherit |
payment_checkout_inherit | ir.ui.view | qweb | Inherits payment.checkout |
payment_manage_inherit |
payment_manage_inherit | ir.ui.view | qweb | Inherits payment.manage |
payment_provider_form |
muliproperty.payment.provider.form | payment.provider | form | Inherits payment.payment_provider_form |
payment_transaction_inherit_view_form |
payment.transaction | form | Inherits payment.payment_transaction_form | |
pms_amenity_search |
pms.room_amenity_search | pms.amenity | search | New |
pms_amenity_view_form |
pms.amenity.form | pms.amenity | form | New |
pms_amenity_view_list |
pms.room_amenity_list | pms.amenity | tree | New |
pms_board_service_form |
pms.board.service.form | pms.board.service | form | New |
pms_board_service_room_type_form |
pms.board.service.room.type.form | pms.board.service.room.type | form | New |
pms_board_service_view_search |
pms.board.service.search | pms.board.service | search | New |
pms_board_service_view_tree |
pms.board.service.tree | pms.board.service | tree | New |
pms_cancelation_rule_form |
pms.cancelation.rule.form | pms.cancelation.rule | form | New |
pms_cancelation_rule_view_tree |
pms.cancelation.rule.tree | pms.cancelation.rule | tree | New |
pms_checkin_partner_folio_view_tree |
pms.checkin.partner.folio.view.tree | pms.checkin.partner | tree | New |
pms_checkin_partner_graph |
pms.checkin.partner.graph | pms.checkin.partner | graph | New |
pms_checkin_partner_kanban_view |
pms.checkin.partner.kanban | pms.checkin.partner | kanban | New |
pms_checkin_partner_pivot |
pms.checkin.partner.pivot | pms.checkin.partner | pivot | New |
pms_checkin_partner_reservation_view_tree |
pms.checkin.partner.reservation.view.tree | pms.checkin.partner | tree | New |
pms_checkin_partner_view_calendar |
pms.checkin.partner.view.calendar | pms.checkin.partner | calendar | New |
pms_checkin_partner_view_folio_search |
pms.checkin.partner.search | pms.checkin.partner | search | New |
pms_checkin_partner_view_form |
Checkin Form | pms.checkin.partner | form | New |
pms_checkin_partner_view_search |
pms.checkin.partner.search | pms.checkin.partner | search | New |
pms_checkin_partner_view_tree |
pms.checkin.partner.view.tree | pms.checkin.partner | tree | New |
pms_folio_pivot |
pms.folio.pivot | pms.folio | pivot | New |
pms_folio_view_form |
pms.folio.form | pms.folio | form | New |
pms_folio_view_graph |
view.pms.folio.graph | pms.folio | graph | New |
pms_folio_view_kanban |
pms.folio.kanban | pms.folio | kanban | New |
pms_folio_view_search |
pms.folio.search | pms.folio | search | New |
pms_folio_view_tree |
pms.folio.tree | pms.folio | tree | New |
pms_proforma_invoice_template |
Invoice Proforma Portal Template | ir.ui.view | qweb | Inherits account.portal_invoice_page |
pms_property_views_form |
pms_property_views_form | pms.property | form | New |
pms_property_views_tree |
pms_property_views_tree | pms.property | tree | New |
pms_reservation_graph |
pms.reservation.graph | pms.reservation | graph | New |
pms_reservation_pivot |
pms.reservation.pivot | pms.reservation | pivot | New |
pms_reservation_view_bottom_tree |
pms.reservation.tree | pms.reservation | tree | Inherits pms.pms_reservation_view_tree |
pms_reservation_view_calendar |
pms.reservation.view.calendar | pms.reservation | calendar | New |
pms_reservation_view_form |
pms.reservation.form | pms.reservation | form | New |
pms_reservation_view_search |
pms.reservation.search | pms.reservation | search | New |
pms_reservation_view_timeline |
pms.reservation.view.timeline | pms.reservation | New | |
pms_reservation_view_tree |
pms.reservation.tree | pms.reservation | tree | New |
pms_room_amenity_type_view_form |
pms.room_amenity_type_form | pms.amenity.type | form | New |
pms_room_amenity_type_view_list |
pms.room_amenity_type_list | pms.amenity.type | tree | New |
pms_room_closure_reason_view_form |
pms.room.closure.reason.form | room.closure.reason | form | New |
pms_room_closure_reason_view_search |
pms.room.closure.reason.search | room.closure.reason | search | New |
pms_room_closure_reason_view_tree |
>pms.room.closure.reason.tree | room.closure.reason | tree | New |
pms_room_type_class_view_form |
pms.room.type.class.form | pms.room.type.class | form | New |
pms_room_type_class_view_tree |
pms.room.type.class.tree | pms.room.type.class | tree | New |
pms_room_type_view_form |
pms.room_type.form | pms.room.type | form | New |
pms_room_type_view_search |
pms.room.type.search | pms.room.type | search | New |
pms_room_type_view_tree |
pms.room_type.tree | pms.room.type | tree | New |
pms_room_view_form |
pms.room.form | pms.room | form | New |
pms_room_view_kanban |
pms.room.kanban | pms.room | kanban | New |
pms_room_view_search |
pms.room.search | pms.room | search | New |
pms_room_view_tree |
pms.room.tree | pms.room | tree | New |
pms_sale_channel_view_form |
pms.sale.channel.form | pms.sale.channel | form | New |
pms_sale_channel_view_tree |
pms.sale.channel.tree | pms.sale.channel | tree | New |
pms_service_line_graph |
pms.service.line.graph | pms.service.line | graph | New |
pms_service_line_pivot |
pms.service.line.pivot | pms.service.line | pivot | New |
pms_service_line_report_view_tree |
pms.service.line.report.tree | pms.service.line | tree | New |
pms_service_line_view_calendar |
pms.service.line.view.calendar | pms.service.line | calendar | New |
pms_service_line_view_form |
pms.service.line.form | pms.service.line | form | New |
pms_service_line_view_search |
pms.service.line.search | pms.service.line | search | New |
pms_service_line_view_tree |
pms.service.line.tree | pms.service.line | tree | New |
pms_service_view_form |
.pms.service.form | pms.service | form | New |
pms_service_view_search |
pms.service.search | pms.service | search | New |
pms_service_view_tree |
.pms.service.view.tree | pms.service | tree | New |
pms_ubication_view_form |
pms.ubication.form | pms.ubication | form | New |
pms_ubication_view_tree |
pms.ubication.tree | pms.ubication | tree | New |
portal_folio_error |
Folio error/warning display | ir.ui.view | qweb | New |
portal_folio_success |
Invoice success display | ir.ui.view | qweb | New |
portal_my_folio |
My Folios | ir.ui.view | qweb | New |
portal_my_folios |
Folios | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_home_menu_folio |
Portal layout : folio menu entries | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_home_menu_reservation |
Portal layout : reservation menu entries | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_reservation |
My Reservations | ir.ui.view | qweb | New |
portal_my_reservation_detail |
My Reservation | ir.ui.view | qweb | New |
portal_my_reservations |
Reservations | ir.ui.view | qweb | Inherits portal.portal_my_home |
product_pricelist_item_view_form |
product.pricelist.item | form | Inherits product.product_pricelist_item_form_view | |
product_pricelist_item_view_tree |
product.pricelist.item | tree | New | |
product_pricelist_view_form |
product.pricelist | form | Inherits product.product_pricelist_view | |
product_template_view_form |
view.product.template.form.inherited | product.template | form | Inherits product.product_template_form_view |
report_folio |
report_folio | ir.ui.view | qweb | New |
report_folio_document |
report_folio_document | ir.ui.view | qweb | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | Inherits account.report_invoice_document |
report_pms_pro_forma |
report_pms_pro_forma | ir.ui.view | qweb | New |
res_partner_view_form |
res.partner.view.form | res.partner | form | Inherits base.view_partner_form |
res_users_view_form |
User Properties fields | res.users | form | Inherits base.view_users_form |
reservation_wizard |
Split, join or swap reservations | pms.reservation.split.join.swap.wizard | form | New |
several_partners_wizard |
Several Partners | pms.several.partners.wizard | form | New |
template_footer |
template_footer | ir.ui.view | qweb | New |
template_header |
template_header | ir.ui.view | qweb | New |
template_reservation |
template_reservation | ir.ui.view | qweb | New |
template_reservation_confirmed |
Property Reservation Confirmed | ir.ui.view | qweb | New |
template_reservation_details |
template_reservation_details | ir.ui.view | qweb | New |
traveller_report |
traveller_report | ir.ui.view | qweb | New |
view_account_analytic_line_tree_inherit_account |
account.analytic.line.tree.inherit.account | account.analytic.line | tree | Inherits account.view_account_analytic_line_tree_inherit_account |
view_account_invoice_filter |
account.move | Inherits account.view_account_invoice_filter | ||
view_account_journal_search |
account.journal | search | Inherits account.view_account_journal_search | |
view_account_move_filter |
account.move | Inherits account.view_account_move_filter | ||
view_account_move_line_filter |
account.move.line | Inherits account.view_account_move_line_filter | ||
view_country_form |
view.country.form | res.country | form | Inherits base.view_country_form |
view_folio_advance_payment_inv |
Invoice Orders | folio.advance.payment.inv | form | New |
view_move_line_tree |
account.move.line | tree | Inherits account.view_move_line_tree | |
view_move_tree |
account.move | tree | Inherits account.view_move_tree | |
view_partner_category_form_inherited |
view.partner.category.form.inherited | res.partner.category | form | Inherits base.view_partner_category_form |
view_partner_data_form |
res.partner.form.data | res.partner | form | New |
wizard_folio_changes_view_form |
wizard.folio.changes.view.form | wizard.folio.changes | form | New |
wizard_payment_folio_view_form |
wizard.payment.folio.view.form | wizard.payment.folio | form | New |
HTTP endpoints (7)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
| (inherited route override) | PaymentPortal.payment_pay |
inherited | http | ALL | sudo |
/my/folios/<int:folio_id>/transaction |
PaymentPortal.portal_folio_transaction |
public | json | ALL | |
/my/invoices/proforma/<int:invoice_id> |
PortalAccount.portal_proforma_my_invoice_detail |
public | http | ALL | website |
/my/folios/<int:folio_id> |
PortalFolio.portal_my_folio_detail |
public | http | ALL | website |
/my/folios, /my/folios/page/<int:page> |
PortalFolio.portal_my_folios |
public | http | ALL | sudo website |
/my/reservations/<int:reservation_id> |
PortalReservation.portal_my_reservation_detail |
public | http | ALL | website |
/my/reservations, /my/reservations/page/<int:page> |
PortalReservation.portal_my_reservations |
public | http | ALL | sudo website |
Models touched (62)
New fields (1)
-
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'index=Truename='Property'
-
default_get(self, fields)@api.model
New fields (2)
-
journal_idMany2onecheck_pms_properties=Truereadonly=False -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'compute='_compute_pms_property_id'copy=Falsehelp='Properties with access to the element'index=Truereadonly=Falsestore=Truestring='Property'
No public methods.
New fields (3)
-
folio_idsMany2many → pms.foliocheck_pms_properties=Truecolumn1='account_journal_id'column2='folio_id'comodel_name='pms.folio'ondelete='cascade'relation='account_bank_statement_folio_rel'string='Folios' -
reservation_idsMany2many → pms.reservationcheck_pms_properties=Truecolumn1='account_bank_statement_id'column2='reservation_id'comodel_name='pms.reservation'help='Reservations in which the Account Bank Statement Lines are included'ondelete='cascade'relation='account_bank_statement_reservation_rel'string='Reservations' -
service_idsMany2many → pms.servicecheck_pms_properties=Truecolumn1='account_bank_statement_id'column2='service_id'comodel_name='pms.service'help='Services in which the Account Bank Statement Lines are included'ondelete='cascade'relation='account_bank_statement_service_rel'string='Services'
No public methods.
New fields (4)
-
allowed_room_idsMany2many → pms.roomcolumn1='account_journal_id'column2='room_id'comodel_name='pms.room'compute='_compute_allowed_room_ids'help='Room to filter the room in the reservation'relation='account_journal_allow_room_rel'string='Rooms Filter allowed' -
is_simplified_invoiceBooleancompute='_compute_is_simplified_invoice'help='Use to simplified invoice'readonly=Falsestore=Truestring='Simplified invoice' -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='account_journal_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'ondelete='restrict'relation='account_journal_pms_property_rel'string='Properties' -
room_filter_idsMany2many → pms.roomcolumn1='account_journal_id'column2='room_id'comodel_name='pms.room'domain="[('id', 'in', allowed_room_ids)]"help='Room to filter the room types in the reservation'relation='account_journal_room_rel'string='Apply Rooms'
No public methods.
New fields (4)
-
folio_idsMany2many → pms.foliocolumn1='account_move_id'column2='folio_ids_id'comodel_name='pms.folio'compute='_compute_folio_origin'help='Folios where the account move are included'readonly=Falserelation='account_move_folio_ids_rel'store=Truestring='Folios' -
is_simplified_invoiceBooleanhelp='Technical field to know if the invoice is simplified'related='journal_id.is_simplified_invoice'store=True -
origin_agency_idMany2one → res.partnercomodel_name='res.partner'compute='_compute_origin_agency_id'domain="[('is_agency', '=', True)]"help='The agency where the folio account move originates'index=Truereadonly=Falsestore=Truestring='Origin Agency' -
pms_property_idMany2one → pms.propertycomodel_name='pms.property'compute='_compute_pms_property_id'help='The property associated to the account move'index=Truereadonly=Falsestore=Truestring='Property'
-
get_proforma_portal_url(self, suffix=None, report_type=None, download=None, query_string=None, anchor=None)Get a proforma portal url for this model, including access_token. The associated route must handle the flags for them to have any effect. - suffix: string to append to the url, before the query string - report_type: report_type query string, often one of: html, pdf, text - download: set the download query string to true - query_string: additional query string - anchor: string to append after the anchor #
New fields (7)
-
folio_idsMany2many → pms.foliocheck_pms_properties=Truecomodel_name='pms.folio'compute='_compute_folio_ids'store=Truestring='Folios' -
folio_line_idsMany2many → folio.sale.linecolumn1='invoice_line_id'column2='sale_line_id'comodel_name='folio.sale.line'copy=Truehelp='The folio lines in the account move lines'relation='folio_sale_line_invoice_rel'string='Folio Lines' -
move_idMany2onecheck_pms_properties=True -
nameCharcompute='_compute_name'readonly=Falsestore=True -
name_changed_by_userBooleandefault=Truehelp='Techinal field to know if the name was set manually by the user\n or by the system. If the name was set manually, the system will not\n change it when the qty days are changed'string='Name set manually' -
origin_agency_idMany2one → res.partnercomodel_name='res.partner'compute='_compute_origin_agency_id'domain="[('is_agency', '=', True)]"help='The agency where the folio account move originates'index=Truereadonly=Falsestore=Truestring='Origin Agency' -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'compute='_compute_pms_property_id'index=Truename='Property'readonly=Falsestore=True
-
reconcile(self)Reconcile the account move
New fields (3)
-
folio_idsMany2many → pms.foliocolumn1='payment_id'column2='folio_id'comodel_name='pms.folio'compute='_compute_folio_ids'readonly=Falserelation='account_payment_folio_rel'store=Truestring='Folios' -
origin_agency_idMany2one → res.partnercomodel_name='res.partner'compute='_compute_origin_agency_id'domain="[('is_agency', '=', True)]"help='The agency where the folio account move originates'index=Truereadonly=Truestore=Truestring='Origin Agency' -
origin_referenceCharhelp='The reference of the payment origin'
-
action_draft(self)
New fields (1)
-
allowed_on_pmsBooleanhelp='Use to pay for reservations' args: 'Allowed on PMS'
No public methods.
New fields (13)
-
advance_payment_methodSelectiondefault='delivered'help='A standard invoice is issued with all the order lines ready for invoicing, according to their invoicing policy (based on ordered or delivered quantity).'required=Trueselection=[('delivered', 'Regular invoice'), ('percentage', 'Down payment (percentage)'), ('fixed', 'Down payment (fixed amount)')]string='Create Invoice' -
amountFloatdigits='Account'help='The percentage of amount to be invoiced in advance, taxes excluded.'string='Down Payment Amount' -
bill_roomsBooleandefault=Truehelp='Bill Rooms' -
bill_servicesBooleandefault=Truehelp='Bill Services' -
countIntegerdefault=<expr>string='Order Count' -
currency_idMany2one → res.currencycomodel_name='res.currency'default=<expr>help='Currency used in invoices'string='Currency' -
deduct_down_paymentsBooleandefault=Truehelp='Deduct down payments' -
deposit_account_idMany2one → account.accountcomodel_name='account.account'default=<expr>domain=[('deprecated', '=', False)]help='Account used for deposits'string='Income Account' -
deposit_taxes_idMany2many → account.taxcomodel_name='account.tax'default=<expr>help='Taxes used for deposits'string='Customer Taxes' -
fixed_amountMonetaryhelp='The fixed amount to be invoiced in advance, taxes excluded.'string='Down Payment Amount (Fixed)' -
has_down_paymentsBooleandefault=<expr>help='Has down payments'readonly=True -
partner_invoice_idMany2one → res.partnercomodel_name='res.partner'default=<expr>help='Invoice address for current partner'string='Billing contact' -
product_idMany2one → product.productcomodel_name='product.product'default=<expr>domain=[('type', '=', 'service')]string='Down Payment Product'
-
create_invoices(self) -
onchange_advance_payment_method(self)@api.onchange('advance_payment_method')
New fields (41)
-
auto_reservation_noteBooleandefault=Falsehelp='Indicates if the folio sale line is an auto reservation note'readonly=True -
company_idMany2onehelp='The company in the folio sale line'index=Truereadonly=Truerelated='folio_id.company_id'store=Truestring='Company' -
currency_idMany2onedepends=['folio_id.currency_id']help='The currency for the folio'readonly=Truerelated='folio_id.currency_id'store=Truestring='Currency' -
date_orderDatecompute='_compute_date_order'help='Field to order by service'readonly=Truestore=Truestring='Date' -
default_invoice_toMany2one → res.partnercomodel_name='res.partner'help='Indicates the contact to which this line will be\n billed by default, if it is not established,\n a guest or the generic contact will be used instead'index=Trueondelete='restrict'string='Invoice to' -
discountFloatcompute='_compute_discount'digits='Discount'help='Discount of total price in folio sale line'readonly=Falsestore=Truestring='Discount (%)' -
display_typeSelectiondefault=Falsehelp='Technical field for UX purpose.'selection=[('line_section', 'Section'), ('line_note', 'Note')] -
folio_idMany2one → pms.foliocomodel_name='pms.folio'copy=Falsehelp='Folio to which folio sale line belongs'index=Trueondelete='cascade'required=Truestring='Folio Reference' -
invoice_linesMany2many → account.move.linecolumn1='sale_line_id'column2='invoice_line_id'comodel_name='account.move.line'copy=Falsehelp='Folio sale line invoice lines'relation='folio_sale_line_invoice_rel' -
invoice_statusSelectioncompute='_compute_invoice_status'help='Invoice Status; it can be: invoiced, to invoice, no'readonly=Trueselection=[('invoiced', 'Fully Invoiced'), ('to_invoice', 'To Invoice'), ('no', 'Nothing to Invoice')]store=True -
is_board_serviceBooleanhelp='Indicates if the service included in folio sale line is part of a board service'related='service_id.is_board_service'store=Truestring='Board Service' -
is_downpaymentBooleanhelp='Down payments are made when creating invoices from a folio. They are not copied when duplicating a folio.'string='Is a down payment' -
nameTextcompute='_compute_name'help='Description of folio sale line'readonly=Falsestore=Truestring='Description' -
origin_agency_idMany2one → res.partnercomodel_name='res.partner'compute='_compute_origin_agency_id'domain="[('is_agency', '=', True)]"help='The agency where the folio sale line originates'index=Truereadonly=Falsestore=Truestring='Origin Agency' -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'help='Property with access to the element;'index=Truereadonly=Truerelated='folio_id.pms_property_id'store=Truestring='Property' -
price_reduceFloatcompute='_compute_get_price_reduce'digits='Product Price'help='Reduced price amount, that is, total price with discounts applied'readonly=Truestore=True -
price_reduce_taxexclMonetarycompute='_compute_get_price_reduce_notax'help='Price with discounts applied without taxes'readonly=Truestore=Truestring='Price Reduce Tax excluded' -
price_reduce_taxincMonetarycompute='_compute_get_price_reduce_tax'help='Price with discounts applied and taxes included'readonly=Truestore=Truestring='Price Reduce Tax included' -
price_subtotalMonetarycompute='_compute_amount'help='Subtotal price without taxes'readonly=Truestore=Truestring='Subtotal' -
price_taxFloatcompute='_compute_amount'help='Total of taxes in a reservation'readonly=Truestore=Truestring='Total Tax' -
price_totalMonetarycompute='_compute_amount'help='Total price with taxes'readonly=Truestore=Truestring='Total' -
price_unitFloatdigits='Product Price'help='Unit Price of folio sale line' -
product_idMany2one → product.productchange_default=Truecheck_company=Truecomodel_name='product.product'compute='_compute_product_id'domain="[('sale_ok', '=', True), ('is_pms_available', '=', True), '|', ('company_id', '=', False), ('company_id', '=', company_id)]"help="Product associated with folio sale line, can be product associated with service or product associated withreservation's room type, in other case it's false"index=Trueondelete='restrict'store=Truestring='Product' -
product_uomMany2one → uom.uomcomodel_name='uom.uom'domain="[('category_id', '=', product_uom_category_id)]"help=''index=Truestring='Unit of Measure' -
product_uom_category_idMany2onehelp=''readonly=Truerelated='product_id.uom_id.category_id'string='Unit of Measure Category' -
product_uom_qtyFloatcompute='_compute_product_uom_qty'digits='Product Unit of Measure'help=''readonly=Falsestore=Truestring='Quantity' -
product_uom_readonlyBooleancompute='_compute_product_uom_readonly'help=''string='' -
qty_invoicedFloatcompute='_compute_get_invoice_qty'compute_sudo=Truedigits='Product Unit of Measure'help='It is the amount invoiced when an invoice is issued'readonly=Truestore=Truestring='Invoiced Quantity' -
qty_to_invoiceFloatcompute='_compute_get_to_invoice_qty'digits='Product Unit of Measure'help='The quantity to invoice. If the invoice policy is order, the quantity to invoice is calculated from the ordered quantity. Otherwise, the quantity delivered is used.'readonly=Truestore=Truestring='To Invoice Quantity' -
reservation_idMany2one → pms.reservationcomodel_name='pms.reservation'copy=Falsehelp='Reservation to which folio sale line belongs'index=Trueondelete='cascade'string='Reservation Reference' -
reservation_line_idsMany2many → pms.reservation.linecomodel_name='pms.reservation.line'help='Reservation lines associated with folio sale line, they corresponds with nights'string='Nights' -
reservation_orderIntegercompute='_compute_reservation_order'help='Field to order by reservation id'readonly=Truestore=Truestring='Reservation Id' -
section_idMany2one → folio.sale.linecomodel_name='folio.sale.line'compute='_compute_section_id'help='The section of the folio sale line'index=Truestring='Section' -
sequenceIntegerdefault=10 -
service_idMany2one → pms.servicecomodel_name='pms.service'copy=Falsehelp='Sevice included in folio sale line'index=Trueondelete='cascade'string='Service Reference' -
service_line_idsMany2many → pms.service.linecomodel_name='pms.service.line'help='Subservices included in folio sale line service'string='Service Lines' -
service_orderIntegercompute='_compute_service_order'help='Field to order by service id'readonly=Truestore=Truestring='Service Id' -
stateSelectioncopy=Falsehelp='The status of the folio related with folio sale line'readonly=Truerelated='folio_id.state'store=Truestring='Folio Status' -
tax_idsMany2many → account.taxcomodel_name='account.tax'compute='_compute_tax_ids'domain=['|', ('active', '=', False), ('active', '=', True)]help='Taxes applied in the folio sale line'store=Truestring='Taxes' -
untaxed_amount_invoicedMonetarycompute='_compute_untaxed_amount_invoiced'compute_sudo=Truehelp='The amount to invoice without taxes in the line of folio'store=Truestring='Untaxed Invoiced Amount' -
untaxed_amount_to_invoiceMonetarycompute='_compute_untaxed_amount_to_invoice'compute_sudo=Truehelp='The invoiced amount without taxes in the line of the folio'store=True
-
generate_folio_sale_name(self, reservation_id, product_id, service_id, reservation_line_ids, service_line_ids, qty=False)@api.model -
name_get(self) -
unlink(self) -
write(self, values)
New fields (0)
No new fields.
Public methods (2)-
check_value(self)@api.constrains('key', 'value') -
unlink(self)
New fields (0)
No new fields.
Public methods (1)-
session_info(self)
New fields (9)
-
field_idMany2one → ir.model.fieldscomodel_name='ir.model.fields'index=Truestring='Field' -
field_nameCharcompute='_compute_field_name'readonly=Falsestore=True -
model_idMany2one → ir.modelcomodel_name='ir.model'index=Truestring='Model' -
model_nameCharcompute='_compute_model_name'readonly=Falsestore=True -
pms_property_idMany2one → pms.propertycomodel_name='pms.property'help=''index=Truestring='Properties' -
recordIntegerstring='Record Id' -
value_floatFloatstring='Float Field Value' -
value_integerIntegerstring='Integer Field Value' -
value_referenceTextstring='Reference Field Value'
-
create(self, vals_list)@api.model_create_multi -
get_field_value(self, pms_property_id, model_name, field_name, record_id, value_type) -
set_field_value(self, pms_property_id, model_name, field_name, record_id, value)
New fields (0)
No new fields.
Public methods (1)-
send_mail(self, auto_commit=False)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (1)
-
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='acquirer_id'column2='property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'relation='pms_acquirer_property_rel'required=Falsestring='Properties'
No public methods.
New fields (2)
-
folio_idsMany2many → pms.foliocolumn1='payment_transaction_id'column2='folio_id'comodel_name='pms.folio'ondelete='cascade'relation='payment_transaction_folio_rel'string='Folios' -
folio_ids_nbrIntegercompute='_compute_folio_ids_nbr'string='# of Folios'
-
action_view_folios(self) -
render_folio_button(self, folio, submit_txt=None, render_values=None, custom_amount=None)
New fields (3)
-
pms_domainCharstring='Domain' -
pms_model_idMany2one → ir.modelcomodel_name='ir.model'default=<expr>domain=[('model', 'in', PMS_BUSINESS_MODELS)]ondelete='cascade'required=Truestring='Recipients Model' -
pms_model_nameCharreadonly=Truerelated='pms_model_id.model'related_sudo=Truestring='Recipients Model Name'
-
action_filter(self)
New fields (6)
-
activeBooleandefault=Truehelp='Determines if amenity is active' -
default_codeCharhelp='Internal unique identifier of the amenity'string='Internal Reference' -
is_add_code_room_nameBooleanhelp='True if the Internal Reference should appear in the display name of the rooms'string='Add in room name' -
nameCharhelp='Amenity Name'required=Truestring='Amenity Name'translate=True -
pms_amenity_type_idMany2one → pms.amenity.typecheck_pms_properties=Truecomodel_name='pms.amenity.type'help='Segment the amenities by categories (multimedia, comfort, etc ...)'index=Truestring='Amenity Category' -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='amenity_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'ondelete='restrict'relation='pms_amenity_pms_property_rel'string='Properties'
No public methods.
New fields (4)
-
activeBooleandefault=Truehelp='Determines if amenity type is active' -
nameCharhelp='Amenity Type Name'required=Truestring='Amenity Type Name'translate=True -
pms_amenity_idsOne2many → pms.amenitycheck_pms_properties=Truecomodel_name='pms.amenity'help='Amenities included in this type'inverse_name='pms_amenity_type_id'string='Amenities In This Category' -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='amenity_type_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'ondelete='restrict'relation='pms_amenity_type_pms_property_rel'string='Properties'
No public methods.
New fields (1)
-
nameCharhelp='Name of the automated mail.'required=True
No public methods.
New fields (8)
-
avail_rule_idsOne2many → pms.availability.plan.rulecheck_pms_properties=Truecomodel_name='pms.availability.plan.rule'inverse_name='avail_id'string='Avail record rules' -
child_avail_idsOne2many → pms.availabilitycheck_pms_properties=Truecomodel_name='pms.availability'compute='_compute_child_avail_ids'help='Child availabilities for this availability'inverse_name='parent_avail_id'store=Truestring='Child Avails' -
dateDatehelp='Date for which availability applies'readonly=Truerequired=True -
parent_avail_idMany2one → pms.availabilitycheck_pms_properties=Truecomodel_name='pms.availability'compute='_compute_parent_avail_id'help='Parent availability for this availability'index=Trueondelete='restrict'store=Truestring='Parent Avail' -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'help='Property to which the availability is directed'index=Trueondelete='restrict'readonly=Truerequired=Truestring='Property' -
real_availIntegercompute='_compute_real_avail'readonly=Truestore=True -
reservation_line_idsOne2many → pms.reservation.linecheck_pms_properties=Truecomodel_name='pms.reservation.line'help='They are the lines of the reservation into a reservation,they corresponds to the nights'inverse_name='avail_id'readonly=Truestring='Reservation Lines' -
room_type_idMany2one → pms.room.typecheck_pms_properties=Truecomodel_name='pms.room.type'help='Room type for which availability is indicated'index=Trueondelete='cascade'readonly=Truerequired=Truestring='Room Type'
-
get_occupied_child_rooms(self, rooms, checkin, checkout)@api.model -
get_occupied_parent_rooms(self, room, checkin, checkout)@api.model -
get_rooms_not_avail(self, checkin, checkout, room_ids, pms_property_id, current_lines=False)@api.model
New fields (5)
-
activeBooleandefault=Truehelp='If unchecked, it will allow you to hide the Availability plan without removing it.' -
nameCharhelp='Name of availability plan'required=Truestring='Availability Plan Name' -
pms_pricelist_idsOne2many → product.pricelistcheck_pms_properties=Truecomodel_name='product.pricelist'domain="[('is_pms_available', '=', True)]"help='Pricelists of the availability plan 'inverse_name='availability_plan_id'string='Pricelists' -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='availability_plan_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'ondelete='restrict'relation='pms_availability_plan_pms_property_rel'string='Properties' -
rule_idsOne2many → pms.availability.plan.rulecheck_pms_properties=Truecomodel_name='pms.availability.plan.rule'help='Rules in a availability plan'inverse_name='availability_plan_id'string='Availability Rules'
-
any_rule_applies(cls, checkin, checkout, item)@classmethod -
open_massive_changes_wizard(self) -
update_quota(self, pricelist_id, room_type_id, date, pms_property_id)@api.model
New fields (16)
-
avail_idMany2one → pms.availabilitycheck_pms_properties=Truecomodel_name='pms.availability'compute='_compute_avail_id'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Avail record' -
availability_plan_idMany2one → pms.availability.plancheck_pms_properties=Truecomodel_name='pms.availability.plan'help='The availability plan that include the Availabilty Rule'index=Trueondelete='cascade'string='Availability Plan' -
closedBooleandefault=Falsehelp='Indicate if property is closed or not' -
closed_arrivalBooleandefault=False -
closed_departureBooleandefault=False -
dateDatehelp='Date for which availability rule applies' -
max_availIntegercompute='_compute_max_avail'help='Maximum simultaneous availability on own Booking Engine'readonly=Falsestore=True -
max_stayIntegerdefault=0help='Maximum stay'string='Max. Stay' -
max_stay_arrivalIntegerdefault=0help='Maximum stay if checkin is today'string='Max. Stay Arrival' -
min_stayIntegerdefault=0help='Minimum stay'string='Min. Stay' -
min_stay_arrivalIntegerdefault=0help='Minimum stay if checkin is today'string='Min. Stay Arrival' -
plan_availIntegercompute='_compute_plan_avail'store='True' -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'help='Properties with access to the element'index=Trueondelete='restrict'required=Truestring='Property' -
quotaIntegercompute='_compute_quota'help='Generic Quota assigned.'readonly=Falsestore=True -
real_availIntegerrelated='avail_id.real_avail'store='True'string='Real availability' -
room_type_idMany2one → pms.room.typecheck_pms_properties=Truecomodel_name='pms.room.type'help='Room type for which availability rule is applied'index=Trueondelete='cascade'required=Truestring='Room Type'
No public methods.
New fields (8)
-
activeBooleandefault=Truehelp='If unchecked, this board service will be archived and hidden from selections without affecting historical records that reference it.' -
amountFloatcompute='_compute_board_amount'digits='Product Price'help='Price for this Board Service. It corresponds to the sum of his board service lines'store=True -
board_service_line_idsOne2many → pms.board.service.linecomodel_name='pms.board.service.line'help='Services included in this Board Service'inverse_name='pms_board_service_id'string='Board Service Lines' -
default_codeCharhelp='Unique Board Service identification code per property'required=Truestring='Board Service Code' -
nameCharhelp='Board Service Name'index=Truerequired=Truesize=64string='Board Service Name'translate=True -
pms_board_service_room_type_idsOne2many → pms.board.service.room.typecomodel_name='pms.board.service.room.type'help='Board Services Room Type corresponding to this Board Service,One board service for several room types'inverse_name='pms_board_service_id'string='Board Services Room Type' -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='board_service_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'ondelete='restrict'relation='pms_board_service_pms_property_rel'required=Falsestring='Properties' -
show_detail_reportBooleanhelp='True if you want that board service detail to be shown on the report'
-
get_unique_by_property_code(self, pms_property_id, default_code=None)@api.model:param pms_property_id: property ID :param default_code: board service code (optional) :return: - recordset of - all the pms.board.service of the pms_property_id if default_code not defined - one or 0 pms.board.service if default_code defined - ValidationError if more than one default_code found by the same pms_property_id -
write(self, vals)
New fields (7)
-
activeBooleandefault=Truehelp='Lines of an archived board service are archived as well.' -
adultsBooleandefault=Falsehelp='Apply service to adults' -
amountFloatdefault=<expr>digits='Product Price'help='Price for this Board Service Line/Product' -
childrenBooleandefault=Falsehelp='Apply service to children' -
pms_board_service_idMany2one → pms.board.servicecheck_pms_properties=Truecomodel_name='pms.board.service'help='Board Service in which this line is included'index=Trueondelete='cascade'required=Truestring='Board Service' -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='pms_board_service_line_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'relation='pms_board_service_line_pms_property_rel'store=Truestring='Properties' -
product_idMany2one → product.productcheck_pms_properties=Truecomodel_name='product.product'help='Product associated with this board service line'index=Truerequired=Truestring='Product'
-
create(self, vals_list)@api.model_create_multi -
onchange_product_id(self)@api.onchange('product_id') -
write(self, vals)
New fields (8)
-
activeBooleandefault=Truehelp='If unchecked, this board service room type assignment will be archived and hidden from selections without affecting historical reservations that reference it.' -
amountFloatcompute='_compute_board_amount'digits='Product Price'help='Price for this Board Service. It corresponds to the sum of his board service lines'store=True -
board_service_line_idsOne2many → pms.board.service.room.type.linecomodel_name='pms.board.service.room.type.line'help='Services included in this Board Service'inverse_name='pms_board_service_room_type_id'required=Truestring='Board Service Lines' -
by_defaultBooleanhelp='Indicates if this board service is applied by default in the room type'string='Apply by Default' -
pms_board_service_idMany2one → pms.board.servicecheck_pms_properties=Truecomodel_name='pms.board.service'help='Board Service corresponding to this Board Service Room Type'index=Trueondelete='cascade'required=Truestring='Board Service' -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'help='Property with access to the element; if not set, all property can access'index=Trueondelete='restrict'required=Falsestore=Truestring='Property' -
pms_room_type_idMany2one → pms.room.typecheck_pms_properties=Truecomodel_name='pms.room.type'help='Room Type for which this Board Service is available'index=Trueondelete='cascade'required=Truestring='Room Type' -
pricelist_idsMany2many → product.pricelistcomodel_name='product.pricelist'help='Pricelists where this Board Service is available'string='Pricelists'
-
constrains_duplicated_board_default(self)@api.constrains('by_default') -
create(self, vals_list)@api.model_create_multi -
init(self) -
name_get(self) -
open_board_lines_form(self) -
prepare_board_service_reservation_ids(self, board_service_id)@api.modelPrepare line to price products config -
write(self, vals)
New fields (7)
-
activeBooleandefault=Truehelp='Lines of an archived board service room type are archived as well.' -
adultsBooleandefault=Falsehelp='Apply service to adults' -
amountFloatdefault=<expr>digits='Product Price'help='Price for this Board Service Room Type Line/Product' -
childrenBooleandefault=Falsehelp='Apply service to children' -
pms_board_service_room_type_idMany2one → pms.board.service.room.typecomodel_name='pms.board.service.room.type'help='Board Service Room Type in which this line is included'index=Trueondelete='cascade'required=Truestring='Board Service Room' -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'help='Property with access to the element; if not set, all properties can access'related='pms_board_service_room_type_id.pms_property_id'string='Property' -
product_idMany2one → product.productcheck_pms_properties=Truecomodel_name='product.product'domain="[('is_pms_available', '=', True)]"help='Product associated with this board service room type line'index=Truereadonly=Truestring='Product'
No public methods.
New fields (17)
-
agency_idMany2one → res.partnercomodel_name='res.partner'domain=[('is_agency', '=', True)]help='Agency that made the reservation'ondelete='restrict'string='Agency' -
channel_type_idMany2one → pms.sale.channelcomodel_name='pms.sale.channel'compute='_compute_channel_type_id'domain=[('channel_type', '=', 'direct')]help='Sales Channel through which the reservation was managed'ondelete='restrict'readonly=Falsestore=Truestring='Direct Sale Channel' -
created_folio_idsMany2many → pms.foliocomodel_name='pms.folio'help='Folios already created'string='Folios' -
discountFloatdefault=0help='Discount that be applied in total price' -
internal_commentTexthelp='Internal Folio notes for Staff'string='Internal Folio Notes' -
line_idsOne2many → pms.reservation.duplicatecheck_pms_properties=Truecomodel_name='pms.reservation.duplicate'compute='_compute_line_ids'help='Rooms to create'inverse_name='booking_duplicate_id'readonly=Falsestore=Truestring='Rooms' -
partner_idMany2one → res.partnercheck_pms_properties=Truecomodel_name='res.partner'compute='_compute_partner_id'help='Partner who made the reservation'readonly=Falsestore=Truestring='Partner' -
partner_nameCharcompute='_compute_partner_name'help='In whose name is the reservation'readonly=Falsestore=True -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'help='Property to which the folio belongs'related='reference_folio_id.pms_property_id'string='Property' -
pricelist_idMany2one → product.pricelistcheck_pms_properties=Truecomodel_name='product.pricelist'compute='_compute_pricelist_id'domain="[('is_pms_available', '=', True)]"help='Pricelist applied in folio'readonly=Falsestore=Truestring='Pricelist' -
recompute_pricesBooleandefault=Falsehelp='Leave unchecked if you want to respect\n the price of the original reservation regardless\n of what is marked in the rate'string='Recompute Price' -
reference_folio_idMany2one → pms.foliocheck_pms_properties=Truecomodel_name='pms.folio'help='Folio to copy data'string='Folio Reference' -
reservation_typeSelectioncompute='_compute_reservation_type'help="The type of the reservation. Can be 'Normal', 'Staff' or 'Out of Service'"readonly=Falseselection=[('normal', 'Normal'), ('staff', 'Staff'), ('out', 'Out of Service')]store=Truestring='Type' -
segmentation_idsMany2many → res.partner.categorycomodel_name='res.partner.category'compute='_compute_segmentation_ids'domain="[('is_used_in_checkin', '=', True)]"help='Partner Tags'ondelete='restrict'readonly=Falsestore=Truestring='Segmentation' -
start_dateDatehelp='Date from first copy Checkin (reference min checkin folio reservation)'required=Truestring='From:' -
total_price_folioFloatcompute='_compute_total_price_folio'help='Total price of folio with taxes'string='Total Price' -
used_room_idsMany2many → pms.roomcomodel_name='pms.room'compute='_compute_used_room_ids'string='Used Rooms'
-
create_and_close(self) -
create_and_new(self) -
create_folio(self) -
view_folios(self)
New fields (16)
-
agency_idMany2one → res.partnercomodel_name='res.partner'domain=[('is_agency', '=', True)]help='Agency that made the reservation'ondelete='restrict'string='Agency' -
availability_resultsOne2many → pms.folio.availability.wizardcheck_pms_properties=Truecomodel_name='pms.folio.availability.wizard'compute='_compute_availability_results'help='Availability Results'inverse_name='booking_engine_id'readonly=Falsestore=True -
can_create_folioBooleancompute='_compute_can_create_folio' -
channel_type_idMany2one → pms.sale.channelcomodel_name='pms.sale.channel'compute='_compute_channel_type_id'domain=[('channel_type', '=', 'direct')]help='Sales Channel through which the reservation was managed'ondelete='restrict'readonly=Falserequired=Truestore=Truestring='Direct Sale Channel' -
discountFloatdefault=0help='Discount that be applied in total price' -
end_dateDatehelp='End date for creation of reservations and folios'required=Truestring='To:' -
folio_idMany2one → pms.foliocheck_pms_properties=Truecomodel_name='pms.folio'help='Folio in which are included new reservations'string='Folio' -
internal_commentTexthelp='Internal Folio notes for Staff'string='Internal Folio Notes' -
partner_idMany2one → res.partnercheck_pms_properties=Truecomodel_name='res.partner'compute='_compute_partner_id'help='Partner who made the reservation'readonly=Falsestore=Truestring='Partner' -
partner_nameCharcompute='_compute_partner_name'help='In whose name is the reservation'readonly=Falsestore=True -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'default=<expr>help='Property to which the folio belongs'string='Property' -
pricelist_idMany2one → product.pricelistcheck_pms_properties=Truecomodel_name='product.pricelist'compute='_compute_pricelist_id'domain="[('is_pms_available', '=', True)]"help='Pricelist applied in folio'readonly=Falsestore=Truestring='Pricelist' -
reservation_typeSelectiondefault=<expr>help="The type of the reservation. Can be 'Normal', 'Staff' or 'Out of Service'"selection=[('normal', 'Normal'), ('staff', 'Staff'), ('out', 'Out of Service')]string='Type' -
segmentation_idsMany2many → res.partner.categorycomodel_name='res.partner.category'domain="[('is_used_in_checkin', '=', True)]"help='Partner Tags'ondelete='restrict'string='Segmentation' -
start_dateDatehelp='Start date for creation of reservations and folios'required=Truestring='From:' -
total_price_folioFloatcompute='_compute_total_price_folio'help='Total price of folio with taxes'string='Total Price'
-
create_folio(self)
New fields (11)
-
activeBooleandefault=Truehelp='Determines if cancelation rule is active' -
apply_on_lateSelectiondefault='first'help='Days on which the cancelation rule applies when the reason is late arrival. Can be first, all days or specify the days.'selection=[('first', 'First Day'), ('all', 'All Days'), ('days', 'Specify days')]string='Late apply on' -
apply_on_noshowSelectiondefault='all'help='Days on which the cancelation rule applies when the reason is no show. Can be first, all days or specify the days.'selection=[('first', 'First Day'), ('all', 'All Days'), ('days', 'Specify days')]string='No Show apply on' -
days_intimeIntegerhelp='Maximum number of days for free cancellation before Checkin'string='Days Late' -
days_lateIntegerdefault='2'help='Is number of days late in the cancelation rule if the value of the apply_on_late field is specify days.'string='Late first days' -
days_noshowIntegerdefault='2'help='Is number of days no show in the cancelation rule if the value of the apply_on_show field is specify days.'string='NoShow first days' -
nameCharrequired=Truestring='Cancelation Rule'translate=True -
penalty_lateIntegerdefault='100'help='Percentage of the total price that partner has to pay in case of late arrival'string='% Penalty Late' -
penalty_noshowIntegerdefault='100'help='Percentage of the total price that partner has to pay in case of no show'string='% Penalty No Show' -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='pms_cancelation_rule_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'ondelete='restrict'relation='pms_cancelation_rule_pms_property_rel'required=Falsestring='Properties' -
pricelist_idsOne2many → product.pricelistcheck_pms_properties=Truecomodel_name='product.pricelist'domain="[('is_pms_available', '=', True)]"help='Pricelist that use this rule'inverse_name='cancelation_rule_id'string='Pricelist'
No public methods.
New fields (32)
-
arrivalDatetimehelp='Checkin partner arrival date and time' args: 'Enter' -
birthdate_dateDatecompute='_compute_birth_date'help='host birthdate'inverse=<expr>readonly=Falsestore=Truestring='Birthdate' -
checkinDatedepends=['reservation_id.checkin']help='Checkin date'related='reservation_id.checkin'store=Truestring='Check in' -
checkoutDatedepends=['reservation_id.checkout']help='Checkout date'related='reservation_id.checkout'store=Truestring='Check out' -
cityCharcompute='_compute_city'help='City of the guest'readonly=Falsestore=True -
country_idMany2one → res.countrycomodel_name='res.country'compute='_compute_country_id'help='Country of the guest'index=Truereadonly=Falsestore=Truestring='Country of residence' -
departureDatetimehelp='Checkin partner departure date and time'string='Exit' -
emailCharcompute='_compute_email'help='Checkin Partner Email'inverse=<expr>readonly=Falsestore=Truestring='E-mail' -
firstnameCharcompute='_compute_firstname'help='host firstname'inverse=<expr>readonly=Falsestore=Truestring='First Name' -
folio_idMany2one → pms.foliocomodel_name='pms.folio'help='Folio to which reservation of checkin partner belongs'index=Truerelated='reservation_id.folio_id'store=Truestring='Folio' -
genderSelectioncompute='_compute_gender'help='host gender'inverse=<expr>readonly=Falseselection=[('male', 'Male'), ('female', 'Female'), ('other', 'Other')]store=True -
identifierChardefault=<expr>help='Checkin Partner Id'index=Truereadonly=True -
image_128Imagehelp='Checkin Partner Image, it corresponds with Partner Image associated'related='partner_id.image_128'string='Image' -
lastnameCharcompute='_compute_lastname'help='host lastname'inverse=<expr>readonly=Falsestore=Truestring='Last Name' -
mobileCharcompute='_compute_mobile'help='Checkin Partner Mobile'inverse=<expr>readonly=Falsestore=True -
nameCharcompute='_compute_name'help='Checkin partner name'store=True -
nationality_idMany2one → res.countrycomodel_name='res.country'compute='_compute_nationality_id'help='host nationality'index=Trueinverse=<expr>readonly=Falsestore=Truestring='Nationality' -
partner_idMany2one → res.partnercomodel_name='res.partner'domain="[('is_company', '=', False)]"help='Partner associated with checkin partner'index=Truestring='Partner' -
partner_incongruencesCharcompute='_compute_partner_incongruences'help='indicates that some partner fields on the checkin do not correspond to that of the associated partner' -
partner_relationshipCharhelp='Family relationship between travelers' -
phoneCharcompute='_compute_phone'help='Checkin Partner Phone'inverse=<expr>readonly=Falsestore=True -
pms_property_idMany2one → pms.propertycomodel_name='pms.property'help='Property to which the folio associated belongs'index=Truereadonly=Truerelated='reservation_id.pms_property_id'store=Truestring='Property' -
possible_existing_customer_idsOne2many → res.partnercomodel_name='res.partner'compute='_compute_possible_existing_customer_ids'string='Possible existing customer' -
reservation_idMany2one → pms.reservationcomodel_name='pms.reservation'help='Reservation to which checkin partners belong'index=Truestring='Reservation' -
segmentation_idsMany2manydomain="[('is_used_in_checkin', '=', True)]"help='Segmentation tags to classify checkin partners'readonly=Truerelated='reservation_id.segmentation_ids'string='Segmentation' -
sign_onDatetimecompute='_compute_sign_on'help='Date and time of the signature' -
signatureImagehelp='Signature of the guest' -
stateSelectioncompute='_compute_state'help='Status of the checkin partner regarding the reservation'readonly=Trueselection=[('dummy', 'Unkown Guest'), ('draft', 'Incomplete data'), ('precheckin', 'Pending arrival'), ('onboard', 'On Board'), ('done', 'Out'), ('cancel', 'Cancelled')]store=Truestring='Status' -
state_idMany2one → res.country.statecomodel_name='res.country.state'compute='_compute_state_id'help='State of the guest'index=Truereadonly=Falsestore=Truestring='State of residence' -
streetCharcompute='_compute_street'help='Street of the guest'readonly=Falsestore=True -
street2Charcompute='_compute_street2'help='Second street of the guest'readonly=Falsestore=True -
zipCharchange_default=Truecompute='_compute_zip'help='Zip of the guest'readonly=Falsestore=True
-
action_done(self) -
action_on_board(self) -
action_undo_onboard(self) -
create(self, vals_list)@api.model_create_multi -
import_room_list_json(self, roomlist_json)@api.model -
open_partner(self)Utility method used to add an "View Customer" button in checkin partner views -
open_wizard_several_partners(self) -
send_exit_email(self, template_id) -
send_portal_invitation_email(self, invitation_firstname=None, email=None) -
set_partner_address(self, residence_vals=None)Only sets the checkin.partner address in the associated partner if the partner has no address yet or the changes do not conflict with the partner's address. -
set_partner_id(self) -
unlink(self) -
write(self, vals)
New fields (70)
-
administrative_user_idMany2one → res.userscomodel_name='res.users'compute='_compute_administrative_user_id'help='The administrative manager in the folio'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Administrative Manager'tracking=True -
agency_idMany2one → res.partnercheck_pms_properties=Truecomodel_name='res.partner'domain=[('is_agency', '=', True)]help='Only allowed if the field of partner is_agency is True'index=Trueondelete='restrict'string='Agency' -
amount_taxMonetarycompute='_compute_amount_all'help='Price with taxes on a folio'readonly=Truestore=Truestring='Taxes' -
amount_totalMonetarycompute='_compute_amount_all'help='Total amount to be paid'readonly=Truestore=Truestring='Total'tracking=True -
amount_untaxedMonetarycompute='_compute_amount_all'help='The price without taxes on a folio'readonly=Truestore=Truestring='Untaxed Amount'tracking=True -
analytic_account_idMany2one → account.analytic.accountcomodel_name='account.analytic.account'copy=Falsehelp='The analytic account related to a folio.'index=Truereadonly=Truestates={'draft': [('readonly', False)], 'sent': [('readonly', False)]}string='Analytic Account' -
cancelled_reasonTexthelp='Indicates cause of cancelled'string='Cause of cancelled' -
checkin_partner_idsOne2many → pms.checkin.partnercomodel_name='pms.checkin.partner'help='The checkin partners on a folio'inverse_name='folio_id'string='Checkin Partners' -
closure_reason_idMany2one → room.closure.reasoncheck_pms_properties=Truecomodel_name='room.closure.reason'help='The closure reason for a closure room'index=Truestring='Closure Reason' -
commissionMonetarycompute='_compute_commission'readonly=Truestore=True -
company_idMany2one → res.companycomodel_name='res.company'compute='_compute_company_id'help='The company for folio'index=Truestore=Truestring='Company' -
confirmation_dateDatetimecopy=Falsehelp='Date on which the folio is confirmed.'index=Truereadonly=True -
count_rooms_pending_arrivalIntegercompute='_compute_count_rooms_pending_arrival'help='The number of rooms left to occupy.'store=Truestring='Pending Arrival' -
credit_card_detailsTexthelp='Details of partner credit card' -
currency_idMany2onedepends=['pricelist_id']ondelete='restrict'related='pricelist_id.currency_id'store=True -
date_orderDatetimecopy=Falsedefault=fields.Datetime.nowhelp='Date on which folio is sold'index=Truereadonly=Truerequired=Truestates={'draft': [('readonly', False)], 'sent': [('readonly', False)]} -
days_to_checkinIntegercompute='_compute_days_to_checkin'help='Technical field to facilitate\n filtering by dates related to checkin'search='_search_days_to_checkin' -
days_to_checkoutIntegercompute='_compute_days_to_checkout'help='Technical field to facilitate\n filtering by dates related to checkout'search='_search_days_to_checkout' -
emailCharcompute='_compute_email'help='Customer E-mail'readonly=Falsestore=Truestring='E-mail' -
external_referenceCharcompute='_compute_external_reference'help='Reference of this folio in an external system'readonly=Falsestore=True -
first_checkinDatecompute='_compute_first_checkin'readonly=Falsestore=Truestring='First Folio Checkin' -
fiscal_position_idMany2one → account.fiscal.positioncomodel_name='account.fiscal.position'compute='_compute_fiscal_position_id'domain="[('company_id', '=', company_id)]"help='The fiscal position depends on the location of the client'index=Truereadonly=Falsestore=Truestring='Fiscal Position' -
force_nothing_to_invoiceBooleancompute='_compute_force_nothing_to_invoice'copy=Falsehelp='When you set this field, the folio will be considered as nothin to invoice, even when there may be ordered quantities pending to invoice.'readonly=Falsestore=Truestring='Force no invoice' -
internal_commentTexthelp='Internal Folio notes for Staff'string='Internal Folio Notes' -
invoice_countIntegercompute='_compute_get_invoiced'help='The amount of invoices in out invoice and out refund status'readonly=True -
invoice_statusSelectioncompute='_compute_get_invoice_status'compute_sudo=Truedefault='no'help='Invoice Status; it can be: invoiced, to invoice, to confirm, no'readonly=Trueselection=[('invoiced', 'Fully Invoiced'), ('to_invoice', 'To Invoice'), ('to_confirm', 'To Confirm'), ('no', 'Nothing to Invoice')]store=True -
invoice_to_agencyBooleancompute='_compute_invoice_to_agengy'help='Indicates if agency invoices partner\n (it only affects those nights/services sold through the agency)'readonly=Falsestore=Truestring='Invoice Agency' -
invoices_paidMonetarycompute='_compute_amount'help='Amount of invoices paid'store=Truestring='Paid Out'tracking=True -
langSelectioncompute='_compute_lang'help='Language used for the folio'readonly=Falseselection=<expr>store=Truestring='Language' -
last_checkoutDatecompute='_compute_last_checkout'readonly=Falsestore=Truestring='Last Folio Checkout' -
manager_user_idMany2one → res.userscomodel_name='res.users'compute='_compute_manager_user_id'help='The main manager in the folio'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Main Manager'tracking=True -
mobileCharcompute='_compute_mobile'help='Customer Mobile'readonly=Falsestore=True -
move_idsMany2many → account.movecomodel_name='account.move'compute='_compute_get_invoiced'copy=Falsehelp='Folio invoices related to account move.'readonly=Truesearch='_search_invoice_ids'string='Invoices' -
nameChardefault=<expr>help='Folio name. When creating a folio the name is automatically formed with a sequence'index=Truereadonly=Truestring='Folio Number' -
noteTextdefault=<expr>help='Folio billing terms and conditions'string='Terms and conditions' -
number_of_cancelled_roomsIntegercompute='_compute_number_of_cancelled_rooms'help='Number of cancelled rooms in folio.'store='True' -
number_of_roomsIntegercompute='_compute_number_of_rooms'help='Number of rooms in folio. Canceled rooms do not count.'store='True' -
number_of_servicesIntegercompute='_compute_number_of_services'help='Number of services in the folio'store='True' -
out_service_descriptionTexthelp='Indicates the cause of out of service'string='Cause of out of service' -
partner_idMany2one → res.partnercheck_pms_properties=Truecomodel_name='res.partner'compute='_compute_partner_id'help='The folio customer'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Partner'tracking=True -
partner_incongruencesCharcompute='_compute_partner_incongruences'help='indicates that some partner fields on the folio do not correspond to that of the associated partner' -
partner_internal_commentTexthelp='Internal notes of the partner'readonly=Falserelated='partner_id.comment'store=Truestring='Internal Partner Notes' -
partner_invoice_idsMany2many → res.partnercheck_pms_properties=Truecolumn1='folio'column2='partner'comodel_name='res.partner'compute='_compute_partner_invoice_ids'help='Invoice address for current group.'readonly=Falserelation='pms_folio_partner_rel'store=Truestring='Billing addresses' -
partner_nameCharcompute='_compute_partner_name'help='In the name of whom the reservation is made'readonly=Falsestore=Truestring='Customer Name' -
payment_idsMany2many → account.paymentcolumn1='folio_id'column2='payment_id'comodel_name='account.payment'copy=Falsehelp='Payments'readonly=Truerelation='account_payment_folio_rel'string='Bank Payments' -
payment_multiBooleancompute='_compute_amount'help='Technical field for manage payments with multiple folios assigned'readonly=Truestore=Truestring='Folio paid with payments assigned to other folios' -
payment_stateSelectioncompute='_compute_amount'copy=Falsehelp='The state of the payment'readonly=Trueselection=[('not_paid', 'Not Paid'), ('paid', 'Paid'), ('partial', 'Partially Paid'), ('overpayment', 'Overpayment'), ('nothing_to_pay', 'Nothing to pay')]store=Truestring='Payment Status'tracking=True -
payment_term_idMany2one → account.payment.termcomodel_name='account.payment.term'compute='_compute_payment_term_id'help='Payment terms for current folio.'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Payment Terms' -
pending_amountMonetarycompute='_compute_amount'help='The amount that remains to be paid'store=True -
pending_checkin_dataIntegercompute='_compute_pending_checkin_data'store=Truestring='Checkin Data' -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'help='The property for folios'index=Truerequired=Truestring='Property' -
possible_existing_customer_idsOne2many → res.partnercomodel_name='res.partner'compute='_compute_possible_existing_customer_ids'string='Possible existing customer' -
prepaid_warning_daysIntegerhelp='Margin in days to create a notice if a payment advance has not been recorded' -
pricelist_idMany2one → product.pricelistcheck_pms_properties=Truecomodel_name='product.pricelist'compute='_compute_pricelist_id'help='Pricelist for current folio.'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Pricelist' -
ratio_checkin_dataIntegercompute='_compute_ratio_checkin_data'help='Field that stores the number of checkin partners pending to checkin (with the state = draft)'string='Pending Checkin Data' -
referenceCharcopy=Falsehelp='The payment communication of this sale order.'string='Payment Ref.' -
reservation_idsOne2many → pms.reservationcheck_company=Truecheck_pms_properties=Truecomodel_name='pms.reservation'help='Room reservation detail'inverse_name='folio_id'readonly=Falsestates={'done': [('readonly', True)]}string='Reservations' -
reservation_typeSelectiondefault=<expr>help="The type of the reservation. Can be 'Normal', 'Staff' or 'Out of Service'"selection=[('normal', 'Normal'), ('staff', 'Staff'), ('out', 'Out of Service')]string='Type' -
revenue_user_idMany2one → res.userscomodel_name='res.users'compute='_compute_revenue_user_id'help='The revenue manager in the folio'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Revenue Manager'tracking=True -
sale_channel_idsMany2many → pms.sale.channelcomodel_name='pms.sale.channel'compute='_compute_sale_channel_ids'help='Sale Channels through which reservations were managed'store=Truestring='Sale Channels' -
sale_channel_origin_idMany2one → pms.sale.channelcomodel_name='pms.sale.channel'help='Sale Channel through which folio was created, the original'index=Truestring='Sale Channel Origin' -
sale_line_idsOne2many → folio.sale.linecomodel_name='folio.sale.line'compute='_compute_sale_line_ids'compute_sudo=Truehelp='Sale lines in folio. It correspond with reservation nights'inverse_name='folio_id'store='True'string='Sale lines' -
segmentation_idsMany2many → res.partner.categorycomodel_name='res.partner.category'domain="[('is_used_in_checkin', '=', True)]"help='Segmentation tags to classify folios'ondelete='restrict'string='Segmentation' -
sequenceIntegerdefault=10help='Sequence used to form the name of the folio' -
service_idsOne2many → pms.servicecheck_company=Truecheck_pms_properties=Truecomodel_name='pms.service'help='Services detail provide to customer and it will include in main Invoice.'inverse_name='folio_id'readonly=Falsestates={'done': [('readonly', True)]}string='Services' -
stateSelectioncopy=Falsedefault='draft'help='Folio status; it can be Quotation, Quotation Sent, Confirmed, Locked or Cancelled'index=Truereadonly=Trueselection=[('draft', 'Quotation'), ('sent', 'Quotation Sent'), ('confirm', 'Confirmed'), ('done', 'Locked'), ('cancel', 'Cancelled')]string='Status'tracking=True -
statement_line_idsMany2many → account.bank.statement.linecolumn1='folio_id'column2='account_journal_id'comodel_name='account.bank.statement.line'copy=Falsehelp='Statement lines'readonly=Truerelation='account_bank_statement_folio_rel'string='Cash Payments' -
transaction_idsMany2many → payment.transactioncolumn1='folio_id'column2='payment_transaction_id'comodel_name='payment.transaction'copy=Falsehelp='Payments made through payment acquirer'readonly=Truerelation='payment_transaction_folio_rel'string='Transactions' -
untaxed_amount_to_invoiceMonetarycompute='_compute_untaxed_amount_to_invoice'help='The amount to invoice'readonly=Truestore=Truestring='Amount to invoice' -
user_idMany2one → res.userscomodel_name='res.users'compute='_compute_user_id'help='The reception manager in the folio'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Reception Manager'tracking=True
-
action_cancel(self) -
action_checks(self) -
action_confirm(self) -
action_done(self) -
action_open_cancelation_mail_composer(self) -
action_open_confirmation_mail_composer(self) -
action_open_exit_mail_composer(self) -
action_open_mail_composer(self, ctx, res_id=False, res_ids=False) -
action_open_modification_mail_composer(self) -
action_pay(self) -
action_to_arrive(self) -
action_view_invoice(self) -
concat_discounts(self, discount, cancel_discount)@api.model -
create(self, vals_list)@api.model_create_multi -
do_payment(self, payment_method_line, user, amount, folio, reservations=False, services=False, partner=False, date=False, pay_type=False, ref=False)create folio payment type: set cash to use statement or bank to use account.payment, by default, use the journal type -
do_refund(self, journal, receivable_account, user, amount, folio, reservations=False, services=False, partner=False, date=False, pay_type=False, ref=False)create folio refund type: set cash to use statement or bank to use account.payment, by default, use the journal type -
folio_multi_changes(self) -
get_invoice_vals_list(self, final=False, lines_to_invoice=False, partner_invoice_id=False) -
get_reservation_notes(self, reservation)Add folio line note with reservation content -
get_reservations_to_update_channel(self, vals) -
get_services_to_update_channel(self, vals) -
name_get(self) -
open_moves_folio(self) -
open_partner(self)Utility method used to add an "View Customer" button in folio views -
open_wizard_several_partners(self) -
preview_folio(self) -
write(self, vals)
New fields (10)
-
board_service_room_idMany2one → pms.board.service.room.typecheck_pms_properties=Truecomodel_name='pms.board.service.room.type'domain="\n [\n ('pms_room_type_id','=',room_type_id),\n ('pms_property_id','=',pms_property_id)\n ]\n "help='Board Service included in the room'string='Board Service' -
booking_engine_idMany2one → pms.booking.enginecomodel_name='pms.booking.engine'string='Folio Wizard ID' -
checkinDatehelp='Date Reservation starts 'required=Truestring='From:' -
checkoutDatehelp='Date Reservation ends'required=Truestring='To:' -
pms_property_idMany2onehelp='Propertiy with access to the element;'related='booking_engine_id.pms_property_id'string='Property' -
price_per_roomFloatcompute='_compute_price_per_room'help='Price per room in folio'string='Price per room' -
price_totalFloatcompute='_compute_price_total'help='The total price in the folio'string='Total price' -
room_type_idMany2one → pms.room.typecheck_pms_properties=Truecomodel_name='pms.room.type'help='Room Type reserved'string='Room Type' -
rooms_available_qtyIntegercompute='_compute_rooms_available_qty'help='Number of rooms that are available'store=Truestring='Available rooms' -
rooms_selected_qtyIntegerstring='Number of Rooms Selected'
-
onchange_rooms_selected_qty(self)@api.onchange('rooms_selected_qty')
New fields (48)
-
allowed_board_servicesMany2many → product.productcomodel_name='product.product'compute='_compute_allowed_board_services'readonly=Falsestore=Truestring='Allowed services' -
allowed_pricelist_idsOne2many → product.pricelistcomodel_name='product.pricelist'compute='_compute_allowed_pricelist_ids'string='Allowed pricelists' -
apply_closedBooleandefault=Falsestring='Apply changes to Closed' -
apply_closed_arrivalBooleandefault=Falsestring='Apply changes to Closed Arrival' -
apply_closed_departureBooleandefault=Falsestring='Apply changes to Closed Departure' -
apply_max_availBooleandefault=Falsestring='Apply changes to Max. Avail.' -
apply_max_stayBooleandefault=Falsestring='Apply changes to Max. Stay' -
apply_max_stay_arrivalBooleandefault=Falsestring='Apply changes to Max. Stay Arrival' -
apply_min_stayBooleandefault=Falsestring='Apply changes to Min. Stay' -
apply_min_stay_arrivalBooleandefault=Falsestring='Apply changes to Min. Stay Arrival' -
apply_on_all_weekBooleandefault=Truestring='Apply Availability Rule for the whole week' -
apply_on_fridayBooleandefault=Falsestring='Apply Availability Rule on fridays' -
apply_on_mondayBooleandefault=Falsestring='Apply Availability Rule on mondays' -
apply_on_saturdayBooleandefault=Falsestring='Apply Availability Rule on saturdays' -
apply_on_sundayBooleandefault=Falsestring='Apply Availability Rule on sundays' -
apply_on_thursdayBooleandefault=Falsestring='Apply Availability Rule on thursdays' -
apply_on_tuesdayBooleandefault=Falsestring='Apply Availability Rule on tuesdays' -
apply_on_wednesdayBooleandefault=Falsestring='Apply Availability Rule on wednesdays' -
apply_pricelists_onSelectiondefault='room_types'selection=[('room_types', 'Room Types'), ('board_services', 'Board Services'), ('service', 'Service')] -
apply_quotaBooleandefault=Falsestring='Apply changes to Quota' -
avail_readonlyBooleandefault=<expr>string='Avialability Readonly' -
availability_plan_idsMany2many → pms.availability.plancheck_pms_properties=Truecomodel_name='pms.availability.plan'string='Availability Plan to apply massive changes' -
board_serviceMany2one → product.productcheck_pms_properties=Truecomodel_name='product.product'domain="[('id', 'in',allowed_board_services)]" -
board_service_room_type_idsMany2many → pms.board.service.room.typecheck_pms_properties=Truecomodel_name='pms.board.service.room.type'compute='_compute_board_service_room_type_ids'readonly=Falsestore=Truestring="Room type's board services" -
closedBooleandefault=False -
closed_arrivalBooleandefault=False -
closed_departureBooleandefault=False -
date_typesSelectiondefault='consumption_dates'selection=[('sale_dates', 'Sale Dates'), ('consumption_dates', 'Consumption Dates')]string='Date types' -
end_dateDaterequired=Truestring='To' -
massive_changes_onSelectiondefault=<expr>required=Trueselection=[('pricelist', 'Pricelist'), ('availability_plan', 'Availability Plan')]string='On' -
max_availIntegerdefault=-1help='Maximum simultaneous availability on own Booking Engine.'string='Max. Availability' -
max_stayIntegerdefault=0string='Max. Stay' -
max_stay_arrivalIntegerdefault=0string='Max. Stay Arrival' -
min_quantityFloatstring='Min. Quantity' -
min_stayIntegerdefault=0string='Min. Stay' -
min_stay_arrivalIntegerdefault=0string='Min. Stay Arrival' -
num_pricelist_items_to_overwriteIntegercompute='_compute_num_pricelist_items_to_overwrite'readonly=Truestore=Falsestring='Pricelist items to overwrite on massive changes' -
num_rules_to_overwriteIntegercompute='_compute_num_rules_to_overwrite'readonly=Truestore=Falsestring='Rules to overwrite on massive changes' -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'required=Truestring='Property' -
priceFloat -
pricelist_idsMany2many → product.pricelistcheck_pms_properties=Truecomodel_name='product.pricelist'string='Pricelist to apply massive changes' -
pricelist_items_to_overwriteOne2many → product.pricelist.itemcomodel_name='product.pricelist.item'compute='_compute_pricelist_items_to_overwrite'readonly=Truestore=False -
pricelist_readonlyBooleandefault=<expr> -
quotaIntegerdefault=-1help='Generic Quota assigned.' -
room_type_idsMany2many → pms.room.typecheck_pms_properties=Truecomodel_name='pms.room.type'compute='_compute_room_type_ids'readonly=Falsestore=Truestring='Room Type' -
rules_to_overwriteOne2many → pms.availability.plan.rulecomodel_name='pms.availability.plan.rule'compute='_compute_rules_to_overwrite'readonly=Truestore=False -
serviceMany2one → product.productcheck_pms_properties=Truecomodel_name='product.product'compute='_compute_service'readonly=Falsestore=True -
start_dateDaterequired=Truestring='From'
-
apply_massive_changes(self) -
continue_massive_changes(self) -
create_availability_plans_rules(self, room_types, availability_plan_ids, min_stay, apply_min_stay, min_stay_arrival, apply_min_stay_arrival, max_stay, apply_max_stay, max_stay_arrival, apply_max_stay_arrival, quota, apply_quota, max_avail, apply_max_avail, closed, apply_closed, closed_arrival, apply_closed_arrival, closed_departure, apply_closed_departure, date, rules_to_overwrite, pms_property)@api.model -
create_pricelists_items_board_services(self, board_service_room_type_ids, pricelist_ids, board_service, price, min_quantity, pms_property, date_types, date)@api.model -
create_pricelists_items_room_types(self, room_types, pricelist_ids, price, min_quantity, pms_property, date, date_types)@api.model -
generate_dates_vals(self, date_types, vals, date)@api.model -
generate_product_ids_to_filter(self, apply_pricelists_on, room_type_ids, board_service_room_type_ids, board_service, service)@api.model -
save_and_close(self)
New fields (37)
-
analytic_account_idMany2one → account.analytic.accountcomodel_name='account.analytic.account'copy=Falsereadonly=True -
availabilityIntegercompute='_compute_availability'help='allows you to send different parameters in the context (checkin(required), checkout(required), room_type_id, ubication_id, capacity,amenity_ids and / or pricelist_id) check the availability for the hotel'string='Number of rooms available' -
avoid_simplified_max_amount_downpaymentBooleandefault=Truehelp='Avoid simplified invoice max amount downpayment'string='Downpayment Invoive without limit amount' -
block_create_past_reservationsBooleandefault=Falsehelp='Block the creation of reservations in the past' -
block_modify_past_out_serviceBooleandefault=Falsehelp='Block deletion or cancellation of out-of-service reservations with dates already in the past' -
cardex_warningTextdefault="Time to access rooms: 14: 00h. Departure time: 12: 00h. If the accommodation is not left at that time, the establishment will charge a day's stay according to current rate that day"help="Notice under the signature on the traveler's ticket."string='Warning in Cardex' -
checkin_sequence_idMany2one → ir.sequencecheck_company=Truecomodel_name='ir.sequence'copy=Falsehelp='Field used to create the name of the checkin partner'index=Truestring='Checkin Sequence' -
child_idsOne2many → pms.propertycomodel_name='pms.property'inverse_name='parent_id'string='Child Properties' -
company_idMany2one → res.companycomodel_name='res.company'help='The company that owns or operates this property.'index=Truerequired=Truestring='Company' -
default_arrival_hourChardefault='14:00'help='HH:mm Format'string='Arrival Hour' -
default_departure_hourChardefault='12:00'help='HH:mm Format'string='Departure Hour' -
default_pricelist_idMany2one → product.pricelistcomodel_name='product.pricelist'default=<expr>domain="[('is_pms_available', '=', True)]"help='The default pricelist used in this property.'index=Truerequired=Truestring='Product Pricelist' -
folio_sequence_idMany2one → ir.sequencecheck_company=Truecomodel_name='ir.sequence'copy=Falsehelp='The sequence that formed the name of the folio.'index=Truestring='Folio Sequence' -
free_room_idsOne2many → pms.roomcomodel_name='pms.room'compute='_compute_free_room_ids'help='allows you to send different parameters in the context (checkin(required), checkout(required), room_type_id, ubication_id, capacity, amenity_ids and / or pricelist_id) and return rooms available'string='Rooms available' -
invoice_reservation_note_templateTexthelp='\n Template for reservation note to be added in the invoice.\n You can use variables like {{ object.checkin }}, etc.\n 'translate=True -
is_canceled_auto_mailBooleanstring='Auto Send Cancellation Mail' -
is_confirmed_auto_mailBooleanstring='Auto Send Confirmation Mail' -
is_exit_auto_mailBooleanstring='Auto Send Exit Mail' -
is_modified_auto_mailBooleanstring='Auto Send Modification Mail' -
journal_normal_invoice_idMany2one → account.journalcheck_company=Truecheck_pms_properties=Truecomodel_name='account.journal'domain=[('type', '=', 'sale'), ('is_simplified_invoice', '=', False)]help='Journal used to create the normal invoice'string='Normal Invoice Journal' -
journal_simplified_invoice_idMany2one → account.journalcheck_company=Truecheck_pms_properties=Truecomodel_name='account.journal'domain=[('type', '=', 'sale')]help='Journal used to create the simplified invoice'string='Simplified Invoice Journal' -
logoBinarydefault=get_default_logo()string='Image in checkin' -
mail_informationHtmlhelp='Additional information of the mail' -
max_amount_simplified_invoiceFloatdefault=400.0help='Maximum amount to create the simplified invoice' -
member_idsOne2many → pms.team.membercomodel_name='pms.team.member'copy=Falseinverse_name='pms_property_id'string='Team Members' -
parent_idMany2one → pms.propertycomodel_name='pms.property'index=Truestring='Parent Property' -
partner_idMany2one → res.partnercomodel_name='res.partner'help='Current property'index=Trueondelete='restrict'required=Truestring='Property' -
pms_property_codeCharhelp='Short name property'string='Property Code' -
privacy_policyHtmlhelp='Mail privacy policy ' -
property_canceled_templateMany2one → mail.templatecomodel_name='mail.template'help='Cancellation email template'string='Cancellation Email' -
property_confirmed_templateMany2one → mail.templatecomodel_name='mail.template'help='Confirmation email template'string='Confirmation Email' -
property_exit_templateMany2one → mail.templatecomodel_name='mail.template'string='Exit Email' -
property_modified_templateMany2one → mail.templatecomodel_name='mail.template'help='Modification email template'string='Modification Email' -
room_idsOne2many → pms.roomcomodel_name='pms.room'help='Rooms that a property has.'inverse_name='pms_property_id'string='Rooms' -
tzSelectiondefault=<expr>help='This field is used to determine de timezone of the property.'required=Trueselection=_tz_getstring='Timezone' -
user_idMany2one → res.userscomodel_name='res.users'copy=Falseondelete='restrict'string='Team Leader'tracking=True -
user_idsMany2many → res.userscolumn1='pms_property_id'column2='user_id'comodel_name='res.users'help='Field related to res.users. Allowed users on the property'relation='pms_property_users_rel'string='Accepted Users'
-
create(self, vals_list)@api.model_create_multi -
daily_closing(self, pms_property_ids, room_type_ids=False, availability_plan_ids=False)@api.modelThis method is used to close the daily availability of rooms -
date_property_timezone(self, dt) -
get_real_free_rooms(self, checkin, checkout, current_lines=False) -
name_get(self) -
splitted_availability(self, checkin, checkout, pms_property_id, room_type_id=False, current_lines=False, pricelist=False, real_avail=False)@api.model
New fields (92)
-
adultsIntegercompute='_compute_adults'help='List of adults there in guest list'readonly=Falsestore=Truetracking=True -
agency_idMany2onedepends=['folio_id.agency_id']help='Agency that made the reservation'index=Truereadonly=Falserelated='folio_id.agency_id'store=Truestring='Agency'tracking=True -
allowed_cancelBooleancompute='_compute_allowed_cancel'help="Technical field, Indicates that reservation can be cancelled,that happened when state is 'cancel', 'done', or 'departure_delayed'"search='_search_allowed_cancel'string='Allowed cancel' -
allowed_checkinBooleancompute='_compute_allowed_checkin'help="Technical field, Indicates if there isn't a checkin_partner dataOnly can be true if checkin is today or was in the past"search='_search_allowed_checkin'string='Allowed checkin' -
allowed_checkoutBooleancompute='_compute_allowed_checkout'help="Technical field, Indicates that reservation is ready for checkoutonly can be true if reservation state is 'onboard' or departure_delayedand checkout is today or will be in the future"search='_search_allowed_checkout'string='Allowed checkout' -
allowed_room_idsMany2many → pms.roomcomodel_name='pms.room'compute='_compute_allowed_room_ids'help='It contains all available rooms for this reservation'string='Allowed Rooms' -
arrival_hourCharcompute='_compute_arrival_hour'help='Arrival Hour (HH:MM)'readonly=Falsestore=True -
avoid_mailsBooleancompute='_compute_avoid_mails'help='Field to indicate not sent mail comunications'readonly=Falsestore=Truestring='Avoid comunication mails' -
blockedBooleandefault=Falsehelp='Indicates if the reservation is blocked' -
board_service_room_idMany2one → pms.board.service.room.typecheck_pms_properties=Truecomodel_name='pms.board.service.room.type'compute='_compute_board_service_room_id'help='Board Service included in the room'index=Trueinverse='_inverse_board_service_room_id'readonly=Falsestore=Truestring='Board Service'tracking=True -
board_service_room_manualBooleandefault=Falsehelp='When enabled, the reservation will NOT auto-assign a default board service even if the field is empty. This is set automatically when the user edits or clears the board service.'string='Board Service Manually Set' -
cancel_datetimeDatetimecopy=Falsehelp='Date when the reservation was cancelled'readonly=Truestring='Cancel Date' -
cancelled_reasonSelectioncopy=Falsehelp="Field indicating type of cancellation. It can be 'late', 'intime' or 'noshow'"selection=[('late', 'Late'), ('intime', 'In time'), ('noshow', 'No Show'), ('modified', 'Modified')]store=Truestring='Reason of cancellation'tracking=True -
check_adultsBooleancompute='_compute_check_adults'help='Internal field to force room capacity validations'readonly=Falsestore=True -
checkinDatecompute='_compute_checkin'copy=Falsehelp='It is the checkin date of the reservation, 'readonly=Falsestore=Truestring='Check In'tracking=True -
checkin_datetimeDatetimecompute='_compute_checkin_datetime'help='This field is the day and time of arrival of the reservation.It is formed with the checkin and arrival_hour fields'string='Exact Arrival' -
checkin_partner_countIntegercompute='_compute_checkin_partner_count'help='Number of checkin partners in a reservation'string='Checkin counter' -
checkin_partner_idsOne2many → pms.checkin.partnercheck_pms_properties=Truecomodel_name='pms.checkin.partner'compute='_compute_checkin_partner_ids'copy=Falsehelp='Guests who will occupy the room'inverse_name='reservation_id'readonly=Falsestore=Truestring='Checkin Partners' -
checkin_partner_pending_countIntegercompute='_compute_checkin_partner_count'help='Number of checkin partners pending to checkin in a reservation'search='_search_checkin_partner_pending'string='Checkin Pending Num' -
checkins_ratioIntegercompute='_compute_checkins_ratio'help='Proportion of guest pending checkin'string='Pending Arrival Ratio' -
checkoutDatecompute='_compute_checkout'copy=Falsehelp='It is the checkout date of the reservation, 'readonly=Falsestore=Truestring='Check Out'tracking=True -
checkout_datetimeDatetimecompute='_compute_checkout_datetime'help='This field is the day and time of departure of the reservation.It is formed with the checkout and departure_hour fields'string='Exact Departure' -
childrenIntegerhelp='Number total of children there in guest list,whose presence counts or not'readonly=Falsetracking=True -
children_occupyingIntegerhelp='Number of children there in guest list whose presence counts' -
closure_reason_idMany2onecheck_pms_properties=Truehelp='Reason why the reservation cannot be made'readonly=Falserelated='folio_id.closure_reason_id'string='Closure Reason' -
commission_amountMonetarycompute='_compute_commission_amount'help='Amount corresponding to commission'store=Truestring='Commission amount' -
commission_percentFloatcompute='_compute_commission_percent'help='Percentage corresponding to commission'readonly=Falsestore=Truestring='Commission percent (%)'tracking=True -
company_idMany2onehelp='Company to which the reservation belongs'index=Truereadonly=Truerelated='folio_id.company_id'store=Truestring='Company' -
count_alternative_free_roomsIntegercompute='_compute_count_alternative_free_rooms' -
count_pending_arrivalIntegercompute='_compute_count_pending_arrival'help='Number of guest with pending checkin'store=Truestring='Pending Arrival' -
credit_card_detailsTextrelated='folio_id.credit_card_details' -
currency_idMany2onedepends=['pricelist_id']ondelete='restrict'related='pricelist_id.currency_id'store=True -
date_orderDatetimedefault=fields.Datetime.nowhelp='Order date of reservation'readonly=Falsestore=True -
departure_hourCharcompute='_compute_departure_hour'help='Departure Hour (HH:MM)'readonly=Falsestore=True -
discountMonetarycompute='_compute_discount'digits='Discount'help='Discount of total price in reservation'readonly=Falsestore=Truetracking=True -
emailCharcompute='_compute_email'help='Customer E-mail'readonly=Falsestore=Truestring='E-mail' -
external_referenceCharcompute='_compute_external_reference'help='Reference of this folio in an external system'readonly=Falsestore=True -
folio_idMany2one → pms.foliocheck_company=Truecomodel_name='pms.folio'copy=Falsehelp='The folio where the reservations are included'index=Trueondelete='restrict'string='Folio'tracking=True -
folio_internal_commentTexthelp='Internal comment for folio'readonly=Falserelated='folio_id.internal_comment'store=Truestring='Internal Folio Notes' -
folio_payment_stateSelectionhelp='The status of the folio payment'related='folio_id.payment_state'store=Truestring='Payment State'tracking=True -
folio_pending_amountMonetaryhelp='The amount that remains to be paid from folio'related='folio_id.pending_amount'string='Pending Amount'tracking=True -
folio_sequenceIntegerhelp='Techinal field to get reservation name'readonly=True -
force_update_originBooleancompute='_compute_force_update_origin'help='This field is for force update in sale channel origin of folio and another reservations'readonly=Falsestore=Truestring='Update Sale Channel Origin' -
invoice_statusSelectioncompute='_compute_invoice_status'help="The status of the invoices in folio. Can be 'invoiced', 'to_invoice' or 'no'."readonly=Trueselection=[('invoiced', 'Fully Invoiced'), ('to_invoice', 'To Invoice'), ('no', 'Nothing to Invoice')]store=True -
is_origin_channel_check_visibleBooleancompute='_compute_is_origin_channel_check_visible'help='Technical field to make visible update origin channel check'readonly=Falsestore=Truestring='Check force update origin visible' -
is_resellingBooleancompute='_compute_is_reselling'help='Indicate if exists reselling in any reservation line'readonly=Falsestore=Truestring='Reselling' -
langMany2one → res.langcomodel_name='res.lang'compute='_compute_lang'string='Language' -
mobileCharcompute='_compute_mobile'help='Customer Mobile'readonly=Falsestore=True -
nameTexthelp='Reservation Code Identification'readonly=Truestring='Reservation Code' -
nightsIntegercompute='_compute_nights'help='Number of nights of a reservation'store=True -
out_service_descriptionTexthelp='Indicates the cause of out of service'readonly=Falserelated='folio_id.out_service_description'string='Cause of out of service' -
overbookingBooleancompute='_compute_overbooking'help='Indicate if exists overbooking'store=Truestring='Is Overbooking' -
overnight_roomBooleanrelated='room_type_id.overnight_room'store=True -
partner_idMany2one → res.partnercheck_pms_properties=Truecomodel_name='res.partner'compute='_compute_partner_id'help='Name of who made the reservation'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Customer'tracking=True -
partner_incongruencesCharcompute='_compute_partner_incongruences'help='indicates that some partner fields on the reservation do not correspond to that of the associated partner' -
partner_internal_commentTexthelp='Internal notes of the partner'readonly=Falserelated='partner_id.comment'store=Truestring='Internal Partner Notes' -
partner_nameCharcompute='_compute_partner_name'help='To whom the room is assigned'readonly=Falsestore=Truestring='Customer Name' -
partner_requestsTexthelp='Guest requests' -
pending_checkin_dataIntegercompute='_compute_pending_checkin_data'help='Data missing at checkin'store=Truestring='Checkin Data' -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'help='Property to which the reservation belongs'index=Truereadonly=Falserelated='folio_id.pms_property_id'store=Truestring='Pms Property' -
possible_existing_customer_idsOne2many → res.partnercomodel_name='res.partner'compute='_compute_possible_existing_customer_ids'string='Possible existing customer' -
preconfirmBooleandefault=Truehelp='Technical field that indicates the reservation is not comfirm yet'string='Auto confirm to Save' -
preferred_room_idMany2one → pms.roomcheck_pms_properties=Truecomodel_name='pms.room'copy=Falsedomain="[('id', 'in', allowed_room_ids),('pms_property_id', '=', pms_property_id),]"help="It's the preferred room assigned to reservation, empty if reservation is splitted"index=Trueondelete='restrict'string='Room'tracking=True -
price_room_services_setMonetarycompute='_compute_price_room_services_set'help='Total price of room and services'readonly=Truestore=Truestring='Room Services Total' -
price_servicesMonetarycompute='_compute_price_services'help='Total price from services of a reservation'readonly=Truestore=Truestring='Services Total' -
price_subtotalMonetarycompute='_compute_amount_reservation'help='Subtotal price without taxes'readonly=Truestore=Truestring='Subtotal' -
price_taxMonetarycompute='_compute_amount_reservation'help='Total of taxes in a reservation'readonly=Truestore=Truestring='Taxes Amount' -
price_totalMonetarycompute='_compute_amount_reservation'help='Total price with taxes'readonly=Truestore=Truestring='Total'tracking=True -
pricelist_idMany2one → product.pricelistcheck_pms_properties=Truecomodel_name='product.pricelist'compute='_compute_pricelist_id'domain="[('is_pms_available', '=', True)]"help='Pricelist that guides the prices of the reservation'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Pricelist'tracking=True -
ratio_checkin_dataIntegercompute='_compute_ratio_checkin_data'help='Proportion of guest data complete at checkin'string='Complete cardex' -
ready_for_checkinBooleancompute='_compute_ready_for_checkin'help='Indicates the reservations with checkin_partner data enought to checkin'string='Ready for checkin' -
reservation_line_idsOne2many → pms.reservation.linecheck_pms_properties=Truecomodel_name='pms.reservation.line'compute='_compute_reservation_line_ids'copy=Falsehelp='They are the lines of the reservation into a reservation,they corresponds to the nights'inverse_name='reservation_id'readonly=Falsestore=Truestring='Reservation Lines' -
reservation_typeSelectioncompute='_compute_reservation_type'help="Type of reservations. It can be 'normal', 'staff' or 'out of service"readonly=Falseselection=[('normal', 'Normal'), ('staff', 'Staff'), ('out', 'Out of Service')]store=True -
room_type_idMany2one → pms.room.typecheck_pms_properties=Truecomodel_name='pms.room.type'compute='_compute_room_type_id'copy=Falsehelp="Room Type sold on the reservation,it doesn't necessarily correspond to the room actually assigned"index=Trueondelete='restrict'readonly=Falsestore=Truestring='Room Type'tracking=True -
roomsCharcompute='_compute_rooms'help='Rooms that are reserved'store=Truestring='Room/s'tracking=True -
sale_channel_idsMany2many → pms.sale.channelcomodel_name='pms.sale.channel'compute='_compute_sale_channel_ids'help='Sale Channels through which reservation lines were managed'store=Truestring='Sale Channels' -
sale_channel_origin_idMany2one → pms.sale.channelcomodel_name='pms.sale.channel'default=<expr>help='Sale Channel through which reservation was created, the original'index=Truestring='Sale Channel Origin' -
sale_line_idsOne2many → folio.sale.linecomodel_name='folio.sale.line'copy=Falseinverse_name='reservation_id'string='Sale Lines' -
segmentation_idsMany2many → res.partner.categorycomodel_name='res.partner.category'default=<expr>domain="[('is_used_in_checkin', '=', True)]"help='Segmentation tags to classify reservations'ondelete='restrict'string='Segmentation' -
service_idsOne2many → pms.servicecheck_company=Truecheck_pms_properties=Truecomodel_name='pms.service'compute='_compute_board_service_ids'help='Included services in the reservation'inverse_name='reservation_id'readonly=Falsestore=Truestring='Services' -
services_discountMonetarycompute='_compute_services_discount'digits='Discount'help='Services discount'readonly=Falsestore=Truetracking=True -
shared_folioBooleancompute='_compute_shared_folio'help='Used to notify is the reservation folio has other reservations/services' -
show_update_pricelistBooleancompute='_compute_show_update_pricelist'help='Technical Field, True if the pricelist was changed;\n this will then display a recomputation button'store=Truestring='Has Pricelist Changed' -
splittedBooleancompute='_compute_splitted'help="Field that indicates if the reservation is split. A reservation is split when guests don't sleep in the same room every night"store=True -
stateSelectioncopy=Falsedefault=<expr>help="The state of the reservation. It can be 'Pre-reservation', 'Pending arrival', 'On Board', 'Out', 'Cancelled', 'Arrival Delayed' or 'Departure Delayed'"index=Truereadonly=Trueselection=[('draft', 'Pre-reservation'), ('confirm', 'Pending arrival'), ('onboard', 'On Board'), ('done', 'Out'), ('cancel', 'Cancelled'), ('arrival_delayed', 'Arrival Delayed'), ('departure_delayed', 'Departure delayed')]tracking=True -
tax_idsMany2many → account.taxcomodel_name='account.tax'compute='_compute_tax_ids'domain=['|', ('active', '=', False), ('active', '=', True)]help='Taxes applied in the reservation'readonly=Falsestore=Truestring='Taxes' -
to_assignBooleandefault=Truehelp='It is True if the room of the reservation has been assigned automatically, False if it was confirmed by a person in charge' -
to_send_cancelation_mailBooleancompute='_compute_to_send_cancelation_mail'readonly=Falsestore=True -
to_send_confirmation_mailBooleancompute='_compute_to_send_confirmation_mail'readonly=Falsestore=True -
to_send_exit_mailBooleancompute='_compute_to_send_exit_mail'readonly=Falsestore=True -
to_send_modification_mailBooleancompute='_compute_to_send_modification_mail'readonly=Falsestore=True -
user_idMany2one → res.userscomodel_name='res.users'compute='_compute_user_id'help='The reception manager in the folio'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Reception Manager'tracking=True
-
action_assign(self) -
action_cancel(self) -
action_checkin_partner_onboard_view(self) -
action_checkin_partner_view(self) -
action_confirm(self) -
action_open_cancelation_mail_composer(self) -
action_open_confirmation_mail_composer(self) -
action_open_exit_mail_composer(self) -
action_open_modification_mail_composer(self) -
action_pay_folio(self) -
action_reservation_checkout(self) -
action_undo_onboard(self) -
auto_arrival_delayed(self)@api.model -
auto_departure_delayed(self)@api.model -
autocheckout(self, reservation)@api.model -
check_in_out_dates(self)1.-When date_order is less then checkin date or Checkout date should be greater than the checkin date. 3.-Check the reservation dates are not occuped -
checkin_checkout_consecutive_dates(self)@api.constrains('reservation_line_ids')simply convert date objects to integers using the .toordinal() method of datetime objects. The difference between the maximum and minimum value of the set of ordinal dates is one more than the length of the set -
create(self, vals_list)@api.model_create_multi -
get_folios_to_update_channel(self, vals) -
get_lines_to_update_channel(self, vals) -
get_services_to_update_channel(self, vals) -
name_get(self) -
name_search(self, name='', args=None, operator='ilike', limit=100)@api.model -
open_folio(self) -
open_partner(self)Utility method used to add an "View Customer" button in reservation views -
open_reservation_form(self) -
open_reservation_wizard(self) -
open_wizard_several_partners(self) -
preview_reservation(self) -
print_all_checkins(self) -
unlink(self) -
update_prices(self) -
write(self, vals)
New fields (15)
-
adultsInteger -
allowed_room_idsMany2many → pms.roomcomodel_name='pms.room'compute='_compute_allowed_room_ids'help='It contains all available rooms for this reservation'string='Allowed Rooms' -
board_service_room_idMany2one → pms.board.service.room.typecheck_pms_properties=Truecomodel_name='pms.board.service.room.type'domain="[('pms_room_type_id','=',room_type_id)]"help='Board Service included in the room'string='Board Service' -
booking_duplicate_idMany2one → pms.booking.duplicatecomodel_name='pms.booking.duplicate'string='Folio Wizard ID' -
checkinDatecompute='_compute_checkin'help='Date Reservation starts 'string='From:' -
checkoutDatecompute='_compute_checkout'help='Date Reservation ends'string='To:' -
occupied_roomBooleancompute='_compute_occupied_room'help='Check if the room is occupied' -
pms_property_idMany2onehelp='Propertiy with access to the element;'related='booking_duplicate_id.pms_property_id'string='Property' -
preferred_room_idMany2one → pms.roomcheck_pms_properties=Truecomodel_name='pms.room'domain="[('id', 'in', allowed_room_ids),('id', 'not in', used_room_ids),('pms_property_id', '=', pms_property_id),]"help='Room reserved'string='Room' -
price_totalFloatcompute='_compute_price_total'help='The total price in the folio'string='Total price' -
pricelist_idMany2one → product.pricelistcheck_pms_properties=Truecomodel_name='product.pricelist'domain="[('is_pms_available', '=', True)]"help='Pricelist used for this reservation'string='Pricelist' -
reference_reservation_idMany2one → pms.reservationcheck_pms_properties=Truecomodel_name='pms.reservation'help='Reservation to copy data'string='Reservation Reference' -
room_type_idMany2one → pms.room.typecheck_pms_properties=Truecomodel_name='pms.room.type'help='Room Type reserved'string='Room Type' -
service_idsMany2many → product.productcolumn1='reservation_duplicate_id'column2='product_id'comodel_name='product.product'compute='_compute_service_ids'readonly=Falserelation='reservation_duplicate_product_rel'store=Truestring='Services' -
used_room_idsMany2many → pms.roomcomodel_name='pms.room'compute='_compute_used_room_ids'string='Used Rooms'
No public methods.
New fields (19)
-
avail_idMany2one → pms.availabilitycheck_pms_properties=Truecomodel_name='pms.availability'compute='_compute_avail_id'help=''index=Trueondelete='restrict'store=Truestring='Availability Day' -
cancel_discountFloatcompute='_compute_cancel_discount'default=0.0digits='Discount'help=''readonly=Truestore=Truestring='Cancelation Discount (%)' -
currency_idMany2onedepends=['reservation_id.currency_id']precompute=Truerelated='reservation_id.currency_id'store=True -
dateDatehelp='The date of the reservation in reservation line' -
default_invoice_toMany2one → res.partnercomodel_name='res.partner'compute='_compute_default_invoice_to'help='Indicates the contact to which this line will be\n billed by default, if it is not established,\n a guest or the generic contact will be used instead'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Invoice to' -
discountFloatdefault=0.0digits='Discount'help=''string='Discount (%)' -
is_resellingBooleanhelp='Indicates if the reservation line is reselling'readonly=Falsestore=Truestring='Reselling' -
occupies_availabilityBooleancompute='_compute_occupies_availability'help='This record is taken into account to calculate availability'store=Truestring='Occupies' -
overbookingBooleancompute='_compute_overbooking'help='Indicate if exists overbooking in the reservation line'readonly=Falsestore=True -
overnight_roomBooleanrelated='reservation_id.overnight_room'store=True -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'help='Property with access to the element'index=Truereadonly=Truerelated='reservation_id.pms_property_id'store=Truestring='Property' -
priceMonetarycompute='_compute_price'digits='Product Price'help='The price in a reservation line'readonly=Falsestore=True -
price_day_totalMonetarycompute='_compute_price_day_total'help='Get the price with discount applied'store=Truestring='Final price' -
pricelist_item_idMany2one → product.pricelist.itemcomodel_name='product.pricelist.item'compute='_compute_pricelist_item_id' -
reservation_idMany2one → pms.reservationcheck_pms_properties=Truecomodel_name='pms.reservation'copy=Falsehelp='It is the reservation in a reservation line'index=Trueondelete='cascade'required=Truestring='Reservation' -
room_idMany2one → pms.roomcheck_pms_properties=Truecomodel_name='pms.room'compute='_compute_room_id'help='The room of a reservation. 'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Room' -
sale_channel_idMany2one → pms.sale.channelcheck_pms_properties=Truecomodel_name='pms.sale.channel'help='Sale Channel through which reservation line was created'index=Truestring='Sale Channel' -
sale_line_idsMany2many → folio.sale.linecheck_pms_properties=Truecomodel_name='folio.sale.line'copy=Falsereadonly=Truestring='Sales Lines' -
stateSelectionhelp='State of the reservation line.'related='reservation_id.state'store=True
-
constrains_duplicated_date(self)@api.constrains('date') -
create(self, vals_list)@api.model_create_multi -
name_get(self) -
unlink(self) -
write(self, vals)
New fields (10)
-
allowed_rooms_sourcesMany2many → pms.roomcolumn1='wizard_id'column2='room_id'comodel_name='pms.room'compute='_compute_allowed_rooms_source'readonly=Falserelation='pms_wizard_split_join_swap_reservation_rooms_source'store=True -
allowed_rooms_targetMany2many → pms.roomcolumn1='wizard_id'column2='room_id'comodel_name='pms.room'compute='_compute_allowed_rooms_target'readonly=Falserelation='pms_wizard_split_join_swap_reservation_rooms_target'store=True -
checkinDatedefault=<expr>help='Checkin in reservation'string='Check In' -
checkoutDatedefault=<expr>help='checkout in reservation'string='Check Out' -
operationSelectiondefault=<expr>help='Operation to be applied on the reservation'selection=[('swap', 'Swap rooms'), ('split', 'Split reservation'), ('join', 'Join reservation')] -
reservation_idMany2one → pms.reservationcomodel_name='pms.reservation'default=<expr>string='Reservation' -
reservation_idsMany2many → pms.reservationcomodel_name='pms.reservation'compute='_compute_reservation_ids'readonly=Falsestore=Truestring='Reservations' -
reservation_lines_to_changeOne2many → pms.wizard.reservation.lines.splitcomodel_name='pms.wizard.reservation.lines.split'compute='_compute_reservation_lines'inverse_name='reservation_wizard_id'readonly=Falsestore=True -
room_sourceMany2one → pms.roomcomodel_name='pms.room'default=<expr>domain="[('id', 'in', allowed_rooms_sources)]" -
room_targetMany2one → pms.roomcomodel_name='pms.room'domain="[('id', 'in', allowed_rooms_target)]"
-
action_join(self) -
action_split(self) -
action_swap(self) -
reservation_join(self, reservation, room)@api.model -
reservation_split(self, reservation, date, room)@api.model -
reservations_swap(self, checkin, checkout, source, target)@api.model
New fields (31)
-
activeBooleandefault=Truehelp='Determines if room is active' -
address_idMany2one → res.partnercomodel_name='res.partner'compute='_compute_address_id'help='Address of the room'index=Trueondelete='restrict'store=Truestring='Address' -
address_is_independentBooleanhelp='Indicates that the address of the room is independent of the property' -
assignment_sequenceIntegerdefault=0help='Order used to automatically assign rooms on reservations without a specific room preassigned (OTAs, web, etc.); rooms with lower values are assigned first. It is independent of the display order (sequence). By default it takes the same value as the sequence.' -
capacityIntegerhelp='The maximum number of people that can occupy a room' -
child_idsOne2many → pms.roomcheck_pms_properties=Truecomodel_name='pms.room'help='Child rooms of the room'inverse_name='parent_id'string='Child Rooms' -
cityCharreadonly=Falserelated='address_id.city' -
country_idMany2one → res.countryondelete='restrict'readonly=Falserelated='address_id.country_id'string='Country' args: 'res.country' -
description_saleTexthelp='A description of the Product that you want to communicate to your customers. This description will be copied to every Sales Order, Delivery Order and Customer Invoice/Credit Note'string='Sale Description'translate=True -
emailCharreadonly=Falserelated='address_id.email' -
email_formattedCharcompute='_compute_email_formatted'help='Format email address "Name <email@domain>"' args: 'Formatted Email' -
extra_beds_allowedIntegerdefault='0'help='Number of extra beds allowed in room'required=True -
image_1920Imagemax_height=1920max_width=1920readonly=Falserelated='address_id.image_1920' -
is_shared_roomBooleancompute='_compute_is_shared_room'help='allows you to reserve units smaller than the room itself (eg beds)'readonly=Falsestore=Truestring='Is a Shared Room' -
mobileCharreadonly=Falserelated='address_id.mobile' -
nameCharhelp='Room Name'required=Truestring='Room Name' -
parent_idMany2one → pms.roomcheck_pms_properties=Truecomodel_name='pms.room'help='Indicates that this room is a child of another room'index=Trueondelete='restrict'string='Parent Room' -
partner_latitudeFloatdigits=(16, 5)readonly=Falserelated='address_id.partner_latitude'string='Geo Latitude' -
partner_longitudeFloatdigits=(16, 5)readonly=Falserelated='address_id.partner_longitude'string='Geo Longitude' -
phoneCharreadonly=Falserelated='address_id.phone' -
pms_property_idMany2one → pms.propertycomodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'index=Trueondelete='restrict'required=Truestring='Property' -
room_amenity_idsMany2many → pms.amenitycheck_pms_properties=Truecolumn1='room_id'column2='amenity_id'comodel_name='pms.amenity'help='List of amenities included in room'relation='pms_room_amenity_rel'string='Room Amenities' -
room_type_idMany2one → pms.room.typecheck_pms_properties=Truecomodel_name='pms.room.type'help='Unique room type for the rooms'index=Trueondelete='restrict'required=Truestring='Property Room Type' -
sequenceIntegerdefault=0help='Field used to change the position of the rooms in tree view.Changing the position changes the sequence' -
short_nameCharhelp='Four character name, if not set, autocompletes with the first two letters of the room name and two incremental numbers' -
state_idMany2one → res.country.statedomain="[('country_id', '=?', country_id)]"ondelete='restrict'readonly=Falserelated='address_id.state_id'string='State' args: 'res.country.state' -
streetCharreadonly=Falserelated='address_id.street' -
street2Charreadonly=Falserelated='address_id.street2' -
ubication_idMany2one → pms.ubicationcheck_pms_properties=Truecomodel_name='pms.ubication'help='At which ubication the room is located.'index=Truestring='Ubication' -
websiteCharreadonly=Falserelated='address_id.website' -
zipCharreadonly=Falserelated='address_id.zip'
-
calculate_short_name(self, vals) -
create(self, vals_list)@api.model_create_multi -
get_capacity(self, extra_bed=0) -
name_get(self) -
unlink(self) -
write(self, vals)
New fields (12)
-
board_service_room_type_idsOne2many → pms.board.service.room.typecheck_pms_properties=Truecomodel_name='pms.board.service.room.type'help='Board Service included in room type'inverse_name='pms_room_type_id'string='Board Services' -
class_idMany2one → pms.room.type.classcheck_pms_properties=Truecomodel_name='pms.room.type.class'help='Class to which the room type belongs'index=Truerequired=Truestring='Property Type Class' -
default_codeCharhelp='Identification code for a room type'required=Truestring='Code' -
default_max_availIntegerdefault=-1help='Maximum simultaneous availability on own Booking Engine given no availability rules. Use `-1` for using maximum simultaneous availability.'string='Default Max. Availability' -
default_quotaIntegerdefault=-1help='Quota assigned to the own Booking Engine given no availability rules. Use `-1` for managing no quota.' -
min_priceFloatdefault=5.0help='Minimum price for a room type'string='Min. Price' -
overnight_roomBooleanrelated='class_id.overnight'store=True -
product_idMany2one → product.productcomodel_name='product.product'delegate=Truehelp='Product identifier associated with room type'index=Trueondelete='cascade'required=Truestring='Product Room Type' -
room_amenity_idsMany2many → pms.amenitycheck_pms_properties=Truecolumn1='room_type_id'column2='amenity_id'comodel_name='pms.amenity'help='List of amenities included in room type'relation='pms_room_type_amenity_rel'string='Room Type Amenities' -
room_idsOne2many → pms.roomcheck_pms_properties=Truecomodel_name='pms.room'help='Rooms that belong to room type.'inverse_name='room_type_id'string='Rooms' -
sequenceIntegerdefault=0help='Field used to change the position of the room types in tree view.' -
total_rooms_countIntegercompute='_compute_total_rooms_count'help='The number of rooms in a room type'store=True
-
create(self, vals_list)@api.model_create_multi -
get_default_board_service(self, pms_property_id, room_type_id, pricelist_id)@api.model -
get_room_type_capacity(self, pms_property_id):param pms_property_id: int :return: the minimum capacity for rooms of current type -
get_room_types_by_property(self, pms_property_id, default_code=None)@api.model:param pms_property_id: property ID :param default_code: room type code (optional) :return: - recordset of - all the pms.room.type of the pms_property_id if default_code not defined - one or 0 pms.room.type if default_code defined - ValidationError if more than one default_code found by the same pms_property_id -
name_get(self)
New fields (7)
-
activeBooleandefault=Truehelp='If unchecked, it will allow you to hide the room type' -
default_codeCharhelp='Room type class identification code'required=Truestring='Code' -
nameCharhelp='Name of the room type class'required=Truestring='Class Name'translate=True -
overnightBooleandefault=Truehelp='Set False if if these types of spaces are not used for overnight stays'string='Use for overnight stays' -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='room_type_class_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'ondelete='restrict'relation='pms_room_type_class_property_rel'string='Properties' -
room_type_idsOne2many → pms.room.typecheck_pms_properties=Truecomodel_name='pms.room.type'help='Room Types that belong to this Room Type Class'inverse_name='class_id'string='Types' -
sequenceIntegerdefault=0help='Field used to change the position of the room type classes in tree view.'
-
get_unique_by_property_code(self, pms_property_id, default_code=None)@api.model:param pms_property_id: property ID :param default_code: room type code (optional) :return: - recordset of - all the pms.room.type.class of the pms_property_id if default_code not defined - one or 0 pms.room.type.class if default_code defined - ValidationError if more than one default_code found by the same pms_property_id
New fields (7)
-
activeBooleandefault=True -
channel_typeSelectionhelp="Type of sale channel; it can be 'direct'(if there isno intermediary) or 'indirect'(if there areintermediaries between partner and property"selection=[('direct', 'Direct'), ('indirect', 'Indirect')]string='Sale Channel Type' -
iconImagemax_height=1024max_width=1024store=Truestring='Logo' -
is_on_lineBooleanhelp='Indicates if the sale channel is on-line'string='On Line' -
nameTexthelp='The name of the sale channel'string='Sale Channel Name' -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='pms_sale_channel_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'ondelete='restrict'relation='pms_sale_channel_pms_property_rel'required=Falsestring='Properties' -
product_pricelist_idsMany2many → product.pricelistcheck_pms_properties=Truecolumn1='pms_sale_channel_id'column2='product_pricelist_id'comodel_name='product.pricelist'domain="[('is_pms_available', '=', True)]"help='Pricelists for a sale channel'relation='pms_sale_channel_product_pricelist_rel'string='Pricelists'
No public methods.
New fields (27)
-
board_service_line_idMany2one → pms.board.service.room.type.linecheck_pms_properties=Truecomodel_name='pms.board.service.room.type.line'help='Board Service Line in which this service is included'string='Board Service Line' -
company_idMany2onehelp='Company to which the service belongs'index=Truereadonly=Truerelated='folio_id.company_id'store=Truestring='Company' -
currency_idMany2onehelp='The currency used in relation to the folio'index=Truereadonly=Truerelated='folio_id.currency_id'store=Truestring='Currency' -
default_invoice_toMany2one → res.partnercomodel_name='res.partner'compute='_compute_default_invoice_to'help='Indicates the contact to which this line will be\n billed by default, if it is not established,\n a guest or the generic contact will be used instead'index=Trueondelete='restrict'readonly=Falsestore=Truestring='Invoice to' -
discountMonetarycompute='_compute_discount'digits='Discount'help='Discount of total price'inverse='_inverse_discount'readonly=Falsestore=True -
folio_idMany2one → pms.foliocheck_pms_properties=Truecomodel_name='pms.folio'compute='_compute_folio_id'help='Folio in which the service is included'index=Truereadonly=Falsestore=Truestring='Folio' -
invoice_statusSelectioncompute='_compute_invoice_status'default='no'help="State in which the service is with respect to invoices.It can be 'invoiced', 'to_invoice' or 'no'"readonly=Trueselection=[('invoiced', 'Fully Invoiced'), ('to_invoice', 'To Invoice'), ('no', 'Nothing to Invoice')]store=True -
is_board_serviceBooleanhelp='Indicates if the service is part of a board service' -
is_cancel_penaltyBooleancompute='_compute_is_cancel_penalty'help='Indicates if the service is a cancel penalty'readonly=True -
nameCharcompute='_compute_name'help='Service description'readonly=Falsestore=Truestring='Service description' -
no_auto_add_linesBooleandefault=Falsehelp='Technical field to avoid add service lines to service\n automatically when creating a new service. It is used when\n creating a new service with lines in vals\n 'string='Force No Auto Add Lines' -
per_dayBooleanhelp='Indicates if service is sold by days'related='product_id.per_day'related_sudo=True -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'help='Property to which the service belongs'index=Truereadonly=Truerelated='folio_id.pms_property_id'store=Truestring='Property' -
price_subtotalMonetarycompute='_compute_amount_service'help='Subtotal price without taxes'readonly=Truestore=Truestring='Subtotal' -
price_taxMonetarycompute='_compute_amount_service'help='Total of taxes in service'readonly=Truestore=Truestring='Taxes Amount' -
price_totalMonetarycompute='_compute_amount_service'help='Total price with taxes'readonly=Truestore=Truestring='Total' -
pricelist_idMany2one → product.pricelistcomodel_name='product.pricelist'compute='_compute_pricelist_id'help='Pricelist used in the service'index=Truestore=Truestring='Pricelist' -
product_idMany2one → product.productcheck_pms_properties=Truecomodel_name='product.product'domain="[(is_pms_available, '=', True)]"help='Product associated with this service'index=Trueondelete='restrict'required=Truestring='Service' -
product_imageBinaryhelp='Image of the service'related='product_id.image_1024'related_sudo=Truestore=False -
product_qtyIntegercompute='_compute_product_qty'help='Number of services that were sold'readonly=Falsestore=Truestring='Quantity' -
reservation_idMany2one → pms.reservationcheck_pms_properties=Truecomodel_name='pms.reservation'default=<expr>help='Reservation in which the service is included'index=Trueondelete='cascade'string='Room' -
sale_channel_origin_idMany2one → pms.sale.channelcheck_pms_properties=Truecomodel_name='pms.sale.channel'help='Sale Channel through which service was created, the original'index=Truestring='Sale Channel Origin' -
sale_line_idsOne2many → folio.sale.linecheck_pms_properties=Truecomodel_name='folio.sale.line'copy=Falsehelp=''inverse_name='service_id'string='Sale Lines' -
sequenceIntegerdefault=10 -
service_line_idsOne2many → pms.service.linecheck_pms_properties=Truecomodel_name='pms.service.line'compute='_compute_service_line_ids'help='Subservices included in this service'inverse_name='service_id'readonly=Falsestore=Truestring='Service Lines' -
stateSelectionhelp='Service status, it corresponds with folio status'related='folio_id.state'store=True -
tax_idsMany2many → account.taxcomodel_name='account.tax'compute='_compute_tax_ids'domain=['|', ('active', '=', False), ('active', '=', True)]help='Taxes applied in the service'readonly=Falsestore=Truestring='Taxes'
-
create(self, vals_list)@api.model_create_multi -
get_folios_to_update_channel(self, vals) -
name_get(self) -
name_search(self, name='', args=None, operator='ilike', limit=100)@api.model -
open_service_ids(self) -
write(self, vals)
New fields (19)
-
auto_qtyBooleancompute='_compute_auto_qty'help='Show if the day qty was calculated automatically'readonly=Falsestore=Truestring='Qty automated setted' -
cancel_discountFloatcompute='_compute_cancel_discount'help=''readonly=Truestore=Truestring='Cancelation Discount' -
currency_idMany2onedepends=['pricelist_id']ondelete='restrict'precompute=Truerelated='pricelist_id.currency_id'store=True -
dateDatehelp='Sate on which the product is to be consumed' -
day_qtyIntegerhelp='Amount to be consumed per day'string='Units' -
default_invoice_toMany2one → res.partnercomodel_name='res.partner'help='Indicates the contact to which this line will be\n billed by default, if it is not established,\n a guest or the generic contact will be used instead'index=Trueondelete='restrict'related='service_id.default_invoice_to'store=Truestring='Invoice to' -
discountFloatcompute='_compute_discount'default=0.0digits='Discount'help='Discount in the price of the service.'readonly=Falsestore=Truestring='Discount (%)' -
is_board_serviceBooleanhelp='Indicates if the service line is part of a board service'related='service_id.is_board_service'store=True -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'help='Property to which the service belongs'index=Truereadonly=Truerelated='service_id.pms_property_id'store=Truestring='Property' -
price_day_subtotalMonetarycompute='_compute_day_amount_service'help='Subtotal price without taxes'readonly=Truestore=Truestring='Subtotal' -
price_day_taxMonetarycompute='_compute_day_amount_service'help=''readonly=Truestore=Truestring='Taxes Amount' -
price_day_totalMonetarycompute='_compute_day_amount_service'help='Total price with taxes'readonly=Truestore=Truestring='Total' -
price_unitMonetarydigits='Product Price'help='Price per unit of service'string='Unit Price' -
pricelist_idMany2onedepends=['service_id']ondelete='restrict'precompute=Truerelated='service_id.pricelist_id'store=True -
product_idMany2onecheck_pms_properties=Truehelp='Product associated with this service line'index=Truerelated='service_id.product_id'store=Truestring='Product' -
reservation_idMany2onecheck_pms_properties=Truehelp='Room to which the services will be applied'index=Truereadonly=Truerelated='service_id.reservation_id'store=Truestring='Reservation' -
sale_line_idsMany2many → folio.sale.linecheck_pms_properties=Truecomodel_name='folio.sale.line'copy=Falsereadonly=Truestring='Sales Lines' -
service_idMany2one → pms.servicecomodel_name='pms.service'copy=Falsehelp='Service identifier'index=Trueondelete='cascade'required=Truestring='Service Room' -
tax_idsMany2many → account.taxcomodel_name='account.tax'help='Taxes applied in the service line'readonly='True'related='service_id.tax_ids'string='Taxes'
-
no_free_resources(self)@api.constrains('day_qty')
New fields (4)
-
checkin_partner_idMany2one → pms.checkin.partnercomodel_name='pms.checkin.partner'string='Checkin Partner' -
folio_idMany2one → pms.foliocomodel_name='pms.folio'string='Folio' -
possible_existing_customer_idsMany2many → res.partnercomodel_name='res.partner'readonly=Falsestore=Truestring='Customers' -
reservation_idMany2one → pms.reservationcomodel_name='pms.reservation'string='Reservation'
-
add_partner(self) -
default_get(self, fields)@api.model
New fields (6)
-
activeBooleandefault=True -
nameCharrelated='user_id.name'store=True -
pms_property_idMany2one → pms.propertycomodel_name='pms.property'index=Trueondelete='restrict'store=Truestring='Property' -
pms_roleSelectioncopy=Falsehelp="The member role in the organizationIt can be 'Reception', 'Revenue', 'Administrative', or 'Manager'"required=Trueselection=[('reception', 'Reception'), ('revenue', 'Revenue'), ('administrative', 'Administrative'), ('manager', 'Operational Manager')] -
sequenceIntegerdefault=10 -
user_idMany2one → res.userscomodel_name='res.users'copy=Falseindex=Trueondelete='restrict'string='User Member'
No public methods.
New fields (4)
-
nameCharhelp='Ubication Name'required=Truestring='Ubication Name'translate=True -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='ubication_type_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'ondelete='restrict'relation='pms_ubication_pms_property_rel'string='Properties' -
pms_room_idsOne2many → pms.roomcheck_pms_properties=Truecomodel_name='pms.room'help='Rooms found in this location'inverse_name='ubication_id'string='Rooms' -
sequenceIntegerhelp='Field used to change the position of the ubications in tree view.Changing the position changes the sequence'
No public methods.
New fields (4)
-
allowed_room_idsMany2many → pms.roomcomodel_name='pms.room'compute='_compute_allowed_room_ids'help='It contains all available rooms for this line'store=Truestring='Allowed Rooms' -
dateDate -
reservation_wizard_idMany2one → pms.reservation.split.join.swap.wizardcomodel_name='pms.reservation.split.join.swap.wizard'string='Reservation Wizard' -
room_idMany2one → pms.roomcomodel_name='pms.room'domain="[('id', 'in', allowed_room_ids)]"string='Room'
No public methods.
New fields (8)
-
availability_plan_idMany2one → pms.availability.plancheck_pms_properties=Truecomodel_name='pms.availability.plan'help='Availability Plan for which the pricelist is included'index=Trueondelete='restrict'string='Availability Plan' -
cancelation_rule_idMany2one → pms.cancelation.rulecheck_pms_properties=Truecomodel_name='pms.cancelation.rule'help='Cancelation Policy included in the room'index=Truestring='Cancelation Policy' -
company_idMany2onehelp='Company to which the pricelist belongs'index=Truestring='Company' -
is_pms_availableBooleandefault=Falsehelp='If the pricelist is available in the PMS'string='Available in PMS' -
item_idsOne2manycheck_pms_properties=Truehelp='Items for which the pricelist is made up'string='Items' -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='product_pricelist_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'ondelete='restrict'relation='product_pricelist_pms_property_rel'required=Falsestring='Properties' -
pms_sale_channel_idsMany2many → pms.sale.channelcheck_pms_properties=Truecomodel_name='pms.sale.channel'help='Sale channel for which the pricelist is included'string='Available Channels' -
pricelist_typeSelectiondefault='daily'help='Pricelist types, it can be Daily Plan'selection=[('daily', 'Daily Plan')]
-
open_massive_changes_wizard(self)
New fields (10)
-
allowed_board_service_product_idsMany2many → product.productcomodel_name='product.product'compute='_compute_allowed_board_service_product_ids'string='Allowed board service products' -
allowed_board_service_room_type_idsMany2many → pms.board.service.room.typecomodel_name='pms.board.service.room.type'compute='_compute_allowed_board_service_room_type_ids'string='Allowed board service room types' -
board_service_room_type_idMany2one → pms.board.service.room.typecheck_pms_properties=Truecomodel_name='pms.board.service.room.type'help='Specify a Board services on Room Types.'index=Truestring='Board Service' -
date_end_consumptionDatehelp='End date to apply daily pricelist items'string='End Date Consumption' -
date_start_consumptionDatehelp='Start date to apply daily pricelist items'string='Start Date Consumption' -
has_propertiesBooleancompute='_compute_has_properties'store=True -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='product_pricelist_item_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'ondelete='restrict'relation='product_pricelist_item_pms_property_rel'string='Properties' -
pricelist_idMany2onecheck_pms_properties=Truehelp='Pricelist in which this item is included'index=Truestring='Pricelist' -
product_idMany2onehelp='Product associated with the item'index=Truestring='Product' -
product_tmpl_idMany2onecheck_pms_properties=Truehelp='Product template associated with the item'index=Truestring='Product Template'
-
create(self, vals) -
write(self, vals)
New fields (2)
-
board_priceFloatcompute='_compute_board_price'digits='Product Price'help='Get price on board service'string='Board Service Price' -
room_type_idMany2one → pms.room.typecomodel_name='pms.room.type'compute='_compute_room_type_id'string='Room Type'
-
price_compute(self, price_type, uom=False, currency=False, company=None, date=False)
New fields (16)
-
consumed_onSelectiondefault='before'help='Indicates when the product is consumed'selection=[('before', 'All before night'), ('after', 'All after night'), ('checkin', 'Only first day'), ('checkout', 'Only last day')]string='Consumed' -
daily_limitIntegercompute='_compute_daily_limit'help='Indicates how much products can consumed in one day'inverse='_inverse_daily_limit' -
is_cribBooleandefault=Falsehelp='Indicates if that product is a crib'string='Is a baby crib' -
is_extra_bedBooleandefault=Falsehelp='Indicates if that product is a extra bed, add +1 capacity in the room' -
is_pms_availableBooleandefault=Truehelp='Indicates if that product is available in PMS'string='Is available in PMS' -
is_tourist_taxBooleandefault=Falsehelp='Indicates if that product is a tourist tax'string='Is tourist tax' -
per_dayBooleanhelp='Indicates that the product is sold by days'string='Unit increment per day' -
per_personBooleanhelp='Indicates that the product is sold per person'string='Unit increment per person' -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='product_tmpl_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'ondelete='restrict'relation='product_template_pms_property_rel'required=Falsestring='Properties' -
property_daily_limitsOne2many → ir.pms.propertycomodel_name='ir.pms.property'domain=<expr>inverse_name='record'string='Daily Limits per Property' -
tourist_tax_apply_from_nightIntegerdefault=1help='Night number the rule starts applying (e.g., 1 = first night)'string='Apply From Night' -
tourist_tax_apply_to_nightIntegerhelp='Night number the rule stops applying (optional)'string='Apply Until Night' -
tourist_tax_date_endSelectionrequired=Falseselection=<expr>string='End Date (Annual)' -
tourist_tax_date_startSelectionrequired=Falseselection=<expr>string='Start Date (Annual)' -
tourist_tax_max_ageIntegerhelp='Applies only to guests up to this age'string='Maximum Age' -
tourist_tax_min_ageIntegerhelp='Applies only to guests with this age or older'string='Minimum Age'
-
write(self, vals)
New fields (5)
-
cancel_penalty_product_idMany2one → product.productcomodel_name='product.product'help='Product used to calculate the cancel penalty'index=Trueondelete='restrict'string='Cancel penalty product' -
check_min_partner_data_invoiceBooleandefault=Falsehelp='Check minimum partner data for invoices:\n - VAT, name, street, city, country'string='Check minimum partner data for invoices' -
pms_property_idsOne2many → pms.propertycomodel_name='pms.property'help='Properties with access to the element'inverse_name='company_id'string='Properties' -
privacy_policyHtmlhelp='Authorization by the user for themanage of their personal data' -
url_advertCharhelp='Url to identify the ad'
No public methods.
New fields (1)
-
priorityIntegerdefault=1000
No public methods.
New fields (13)
-
apply_pricelistBooleanhelp='Indicates if agency pricelist is applied to his reservations' -
commentTexttracking=True -
commission_typeSelectiondefault='included'help='\n If select subtract commission, for automatic import of reservations,\n the commission is calculated as price - (price * commission / 100)\n 'selection=[('included', 'Commission Included in Price'), ('subtract', 'Commission Subtracts from Price')] -
default_commissionFloathelp='Default commission'string='Commission' -
folios_countIntegercompute='_compute_folios_count'help='Number of folios of the partner'string='Number of Folios' -
invoice_to_agencySelectiondefault='never'help='Indicates if agency invoices partner'required=Trueselection=[('never', 'Never'), ('manual', 'Manual'), ('always', 'Always')]string='Invoice Agency' -
is_agencyBooleanhelp='Indicates if the partner is an agency' -
pms_checkin_partner_idsOne2many → pms.checkin.partnercomodel_name='pms.checkin.partner'help='Associated checkin partners'inverse_name='partner_id'string='Checkin Partners' -
pms_folio_idsOne2many → pms.foliocomodel_name='pms.folio'help='Associated Folios'inverse_name='partner_id'string='Folios' -
pms_property_idsMany2many → pms.propertycheck_pms_properties=Truecolumn1='res_partner_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element if not set, all properties can access'ondelete='restrict'relation='res_partner_pms_property_rel'required=Falsestring='Properties' -
pms_reservation_idsOne2many → pms.reservationcomodel_name='pms.reservation'help='Associated reservation'inverse_name='partner_id'string='Reservations' -
reservations_countIntegercompute='_compute_reservations_count'help='Number of reservations of the partner'string='Number of Reservations' -
sale_channel_idMany2one → pms.sale.channelcomodel_name='pms.sale.channel'domain=[('channel_type', '=', 'indirect')]help='The sale channel of the partner'index=Trueondelete='restrict'string='Sale Channel'
-
action_partner_folios(self) -
action_partner_reservations(self) -
get_vat(self)Return the partner VAT. Inherited by localizations to return the equivalent fiscal identification when applicable.
New fields (1)
-
is_used_in_checkinBooleanstring='Used in checkin'
No public methods.
New fields (2)
-
pms_property_idMany2one → pms.propertycomodel_name='pms.property'context={'user_preference': True}domain="[('id','in',pms_property_ids)]"help='The property that is selected within those allowed for the user'index=Truestring='Default Property' -
pms_property_idsMany2many → pms.propertycolumn1='user_id'column2='pms_property_id'comodel_name='pms.property'domain="[('company_id','in',company_ids)]"help='The properties allowed for this user'relation='pms_property_users_rel'string='Properties'
-
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (4)
-
activeBooleandefault=Truehelp='Uncheck to archive the room closure reason and hide it from selection lists without removing the historical records that already reference it.' -
descriptionTexthelp='Explanation of the reason for closing a room'translate=True -
nameCharhelp='The name that identifies the room closure reason'required=Truetranslate=True -
pms_property_idsMany2many → pms.propertycolumn1='room_closure_reason_type_id'column2='pms_property_id'comodel_name='pms.property'help='Properties with access to the element; if not set, all properties can access'ondelete='restrict'relation='pms_room_closure_reason_pms_property_rel'string='Properties'
No public methods.
New fields (38)
-
allowed_reservation_idsMany2many → pms.reservationcolumn1='folio_changes_id'column2='allowed_reservation_ids'comodel_name='pms.reservation'compute='_compute_allowed_reservation_ids'relation='folio_changes_allowed_reservation_rel'string='Allowed Reservations' -
allowed_room_type_idsMany2many → pms.room.typecolumn1='folio_changes_id'column2='allowed_room_type_ids'comodel_name='pms.room.type'compute='_compute_allowed_room_type_ids'relation='folio_changes_allowed_room_type_rel'string='Allowed Room Types' -
allowed_service_idsMany2many → pms.servicecolumn1='folio_changes_id'column2='allowed_service_ids'comodel_name='pms.service'compute='_compute_allowed_service_ids'relation='folio_changes_allowed_service_rel'string='Allowed Services' -
apply_board_serviceBooleandefault=Falsestring='Add Board Service to reservations' -
apply_day_qtyBooleandefault=Falsehelp='If not set, it will use the default product day qty'string='Change cuantity service per day' -
apply_discountBooleandefault=Falsestring='Apply Discount update' -
apply_new_checkinBooleandefault=Falsestring='Apply Checkin Update' -
apply_new_checkoutBooleandefault=Falsestring='Apply Checkout Update' -
apply_on_all_weekBooleandefault=Truestring='Apply Availability Rule for the whole week' -
apply_on_fridayBooleandefault=Falsestring='Apply Availability Rule on fridays' -
apply_on_mondayBooleandefault=Falsestring='Apply Availability Rule on mondays' -
apply_on_saturdayBooleandefault=Falsestring='Apply Availability Rule on saturdays' -
apply_on_sundayBooleandefault=Falsestring='Apply Availability Rule on sundays' -
apply_on_thursdayBooleandefault=Falsestring='Apply Availability Rule on thursdays' -
apply_on_tuesdayBooleandefault=Falsestring='Apply Availability Rule on tuesdays' -
apply_on_wednesdayBooleandefault=Falsestring='Apply Availability Rule on wednesdays' -
apply_partner_idBooleandefault=Falsestring='Apply Customer' -
apply_priceBooleandefault=Falsestring='Apply Price update' -
apply_pricelist_idBooleandefault=Falsestring='Apply Pricelist' -
apply_serviceBooleandefault=Falsestring='Add Service to reservations' -
change_from_dateDatedefault=<expr>string='Apply From' -
change_to_dateDatedefault=<expr>string='Apply To' -
dates_incongruenceBooleancompute='_compute_dates_incongruence'help='Indicates that there are reservations with different checkin and/or checkout'store=True -
day_qtyIntegerstring='Quantity per day' -
folio_idMany2one → pms.foliocomodel_name='pms.folio'default=<expr>string='Folio' -
modification_typeSelectiondefault='reservations'selection=[('reservations', 'Reservations'), ('dates', 'Dates'), ('services', 'Services Prices')] -
new_board_service_idMany2one → pms.board.servicecomodel_name='pms.board.service'string='New Board Service' -
new_checkinDatedefault=<expr> -
new_checkoutDatedefault=<expr> -
new_discountFloatstring='New Discount %' -
new_partner_idMany2one → res.partnercomodel_name='res.partner'string='Customer' -
new_priceFloat -
new_pricelist_idMany2one → product.pricelistcomodel_name='product.pricelist'domain="[('is_pms_available', '=', True)]"string='Pricelist' -
new_service_idMany2one → product.productcomodel_name='product.product'domain="[('sale_ok','=',True)]"string='New Service' -
nightsIntegercompute='_compute_nights' -
reservation_idsMany2many → pms.reservationcolumn1='folio_changes_id'column2='reservation_ids'comodel_name='pms.reservation'default=<expr>domain="[('id', 'in', allowed_reservation_ids)]"relation='folio_changes_reservation_rel'string='Reservations' -
room_type_filter_idsMany2many → pms.room.typecolumn1='folio_changes_id'column2='room_type_ids'comodel_name='pms.room.type'default=<expr>domain="[('id', 'in', allowed_room_type_ids)]"relation='folio_changes_room_type_rel'string='Room types' -
service_idsMany2many → pms.servicecolumn1='folio_changes_id'column2='service_ids'comodel_name='pms.service'default=<expr>domain="[('id', 'in', allowed_service_ids)]"relation='folio_changes_service_rel'string='Services'
-
button_change(self) -
default_change_from_date(self) -
default_change_new_checkin(self) -
default_change_new_checkout(self) -
default_change_to_date(self)
New fields (10)
-
amountFloatdigits='Product Price' -
available_journal_idsMany2many → account.journalcomodel_name='account.journal'compute='_compute_available_journal_ids' -
available_payment_method_line_idsMany2many → account.payment.method.linecomodel_name='account.payment.method.line'compute='_compute_available_payment_method_line_ids' -
dateDatedefault=fields.Date.context_todayrequired=True -
folio_idMany2one → pms.foliocomodel_name='pms.folio'required=Truestring='Folio' -
journal_idMany2one → account.journalcomodel_name='account.journal'domain="[('id', 'in', available_journal_ids)]"required=Truestring='Journal' -
partner_idMany2one → res.partnercomodel_name='res.partner'string='Partner' -
payment_method_line_idMany2one → account.payment.method.linecomodel_name='account.payment.method.line'domain="[('id', 'in', available_payment_method_line_ids)]"required=Truestring='Payment Method' -
reservation_idsMany2many → pms.reservationcomodel_name='pms.reservation'string='Reservations' -
service_idsMany2many → pms.servicecomodel_name='pms.service'string='Services'
-
button_payment(self)
Loading…