TIP: You can type at any time to perform a new search.
PMS Spanish Adaptation
pms_l10n_es · OCA/pms
🛠 Migration considerations
pms_ine_wizard— View 'pms_ine_wizard' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcetraveller_report_wizard— View 'traveller_report_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_pms_reservation_from_pms_l110n_es— View 'view_pms_reservation_from_pms_l110n_es' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourceview_property_form_pms_l10n_es— View 'view_property_form_pms_l10n_es' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourceview_room_form_pms_l10n_es— View 'view_room_form_pms_l10n_es' uses the deprecated `attrs=`/`states=` syntax: removed in Odoo 17.0+, replace with direct `invisible`/`readonly`/`required` domain expressions. migration-view-attrs-states · sourcepms_ine_tourism_category_view_tree— View 'pms_ine_tourism_category_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_ses_communication_view_tree— View 'pms_ses_communication_view_tree' is defined with a `<tree>` root tag: renamed to `<list>` in Odoo 18.0. migration-view-tree-tag · sourcepms_tourism_classification_view_tree— View 'pms_tourism_classification_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
- Category
- Localization
- Folder size
- 0.55 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
- GitHub, Weblate, OCA-git-bot, oca-ci, DarioLodeiros, jesusvmayor
- Odoo dependencies
-
OCA/account-financial-reporting:OCA/community-data-files:OCA/l10n-spain:OCA/partner-contact:OCA/pms:- pmsOCA/queue:OCA/server-ux:OCA/web:odoo/odoo:- base- resource- web- mail- bus- web_tour- analytic- uom- account- product- portal- digest- sale- payment- utm- base_vat- l10n_es- contacts
- Python dependencies
- bs4, openupgradelib, pycountry, requests, unidecode
- System dependencies
- None
- Required by
- None
- Description
Code Analysis ⓘ
Views touched (17)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
inherit_partner_id_numbers_form |
inherit.res.partner.id_number.form | res.partner.id_number | form | Inherits partner_identification.view_partner_id_numbers_form |
inherit_partner_id_numbers_tree |
inherit.res.partner.id_number.tree | res.partner.id_number | tree | Inherits partner_identification.view_partner_id_numbers_tree |
inherit_pms_checkin_partner_form |
inherit.pms.checkin_partner.form | pms.checkin.partner | form | Inherits pms_partner_identification.pms_checkin_partner_view_form |
pms_ine_tourism_category_view_form |
pms.ine.tourism.category.form | pms.ine.tourism.type.category | form | New |
pms_ine_tourism_category_view_tree |
pms.ine.tourism.category.tree | pms.ine.tourism.type.category | tree | New |
pms_ine_wizard |
INE | pms.ine.wizard | form | New |
pms_report_invoice_document |
pms_report_invoice_document | ir.ui.view | qweb | Inherits pms.report_invoice_document |
pms_room_view_tree |
pms.room.tree | pms.room | tree | Inherits pms.pms_room_view_tree |
pms_ses_communication_view_form |
pms.ses.communication.form | pms.ses.communication | form | New |
pms_ses_communication_view_search |
pms.ses.communication.search | pms.ses.communication | search | New |
pms_ses_communication_view_tree |
pms.ses.communication.tree | pms.ses.communication | tree | New |
pms_tourism_classification_view_tree |
pms.tourism.classification.tree | pms.tourism.classification | tree | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | Inherits account.report_invoice_document |
traveller_report_wizard |
Traveller Report | traveller.report.wizard | form | New |
view_pms_reservation_from_pms_l110n_es |
Rerservation Form l10n_es | pms.reservation | form | Inherits pms.pms_reservation_view_form |
view_property_form_pms_l10n_es |
Property Form l10n_es | pms.property | form | Inherits pms.pms_property_views_form |
view_room_form_pms_l10n_es |
Property Form l10n_es | pms.room | form | Inherits pms.pms_room_view_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (12)
New fields (3)
-
ses_partners_relationshipSelectionrequired=Falseselection=[('AB', 'Abuelo/a'), ('BA', 'Bisabuelo/a'), ('BN', 'Bisnieto/a'), ('CD', 'Cuñado/a'), ('CY', 'Cónyuge'), ('HJ', 'Hijo/a'), ('HR', 'Hermano'), ('NI', 'Nieto/a'), ('PM', 'Padre o Madre'), ('SB', 'Sobrino/a'), ('SG', 'Suegro/a'), ('TI', 'Tío/a'), ('YN', 'Yerno o Nuera'), ('TU', 'Tutor/a'), ('OT', 'Otro')] -
ses_related_checkin_partner_idMany2one → pms.checkin.partnercomodel_name='pms.checkin.partner'required=Falsestring='Related checkin partner' -
support_numberCharcompute='_compute_partner_document_data'help='ID support number'readonly=Falsestore=Truestring='Support number'
-
get_document_vals(self) -
write(self, vals)
New fields (2)
-
categoryCharrequired=True -
typeCharrequired=True
-
name_get(self)
New fields (8)
-
adrFloatstring='Range ADR' -
end_dateDaterequired=Truestring='To' -
pms_property_idMany2one → pms.propertycheck_pms_properties=Truecomodel_name='pms.property'required=Truestring='Property' -
revparFloatstring='Range RevPAR' -
start_dateDaterequired=Truestring='From' -
txt_binaryBinarystring='File Download' -
txt_filenameText -
txt_messageCharstring='File Preview'
-
check_ine_mandatory_fields(self, pms_property_id)@api.model -
ine_calculate_adr(self, start_date, end_date, domain=False)Calculate date range ADR for a property only in INE rooms :param start_date: start date :param pms_property_id: pms property id :param domain: domain to filter reservations (channel, agencies, etc...) -
ine_calculate_occupancy(self, start_date, end_date, domain=False)Calculate date range occupancy for a property only in INE rooms :param start_date: start date :param pms_property_id: pms property id :param domain: domain to filter reservations (channel, agencies, etc...) -
ine_calculate_revpar(self, start_date, end_date, domain=False)Calculate date range revpar for a property only in INE rooms :param start_date: start date :param pms_property_id: pms property id :param domain: domain to filter reservations (channel, agencies, etc...) -
ine_countries(self, start_date, end_date, pms_property_id)@api.modelReturns a dictionary: { CODE_SPAIN: { state.code_ine: { date: { 'arrivals': number, 'departures': number, 'pernoctations': number, }, # ... more dates }, # ... more ine codes from spain }, # ... more countries (except Spain) country.code_alpha3: { date: { 'arrivals': num. of arrivals 'departures': num. of departures 'pernoctations': num. of pernoctations }, # ... more dates }, # ... more countries (except Spain) } -
ine_generate_xml(self) -
ine_get_nif_cif(self, cif_nif)@api.model -
ine_rooms(self, start_date, end_date, pms_property_id)@api.modelReturns a dictionary: { date_1: { 'double_rooms_single_use': number, 'double_rooms_double_use': number, 'other_rooms': number, 'extra_beds': number }, # ... more dates }
New fields (13)
-
ine_category_idMany2one → pms.ine.tourism.type.categorycomodel_name='pms.ine.tourism.type.category'help='Hotel category in the Ministry of Tourism. Used for INE statistics.' -
ine_eventual_staffIntegerdefault=0help='Used for INE statistics.'string='Eventual Staff' -
ine_permanent_staffIntegerdefault=0help='Used for INE statistics.'string='Permanent Staff' -
ine_seatsIntegerdefault=0help='Used for INE statistics.'string='Beds available excluding extra beds' -
ine_tourism_numberCharhelp='Registration number in the Ministry of Tourism. Used for INE statistics.' args: 'Tourism number' -
ine_unpaid_staffIntegerdefault=0help='Used for INE statistics.'string='Unpaid Staff' -
institutionSelectionhelp='Institution to send daily guest data.'required=False args: [('ses', 'SES')] -
institution_lessor_idCharhelp='Id provided by institution to send data from lessor.' -
institution_passwordCharhelp='Password provided by institution to send the data.' -
institution_property_idCharhelp='Id provided by institution to send data from property.' -
institution_userCharhelp='User provided by institution to send the data.' -
ses_urlCharhelp='URL to send the data to SES' -
spanish_tourism_classification_idMany2one → pms.tourism.classificationcomodel_name='pms.tourism.classification'help='Spanish tourism classification.'string='Spanish Tourism Classification'
No public methods.
New fields (4)
-
is_sesBooleancompute='_compute_is_ses'readonly=Truestore=Truestring='Is SES' -
ses_communication_idsOne2many → pms.ses.communicationcomodel_name='pms.ses.communication'help='Communications related to this reservation'inverse_name='reservation_id'string='SES Communications' -
ses_status_reservationSelectioncompute='_compute_ses_status_reservation'help='Status of the reservation in SES'selection=[('not_applicable', 'Not Applicable'), ('to_send', 'Pending Notification'), ('to_process', 'Pending Processing'), ('error_create', 'Error Creating'), ('error_sending', 'Error Sending'), ('error_processing', 'Error Processing'), ('processed', 'Processed')]string='SES Status' -
ses_status_traveller_reportSelectioncompute='_compute_ses_status_traveller_report'help='Status of the traveller report in SES'selection=[('not_applicable', 'Not Applicable'), ('incomplete', 'Incomplete checkin data'), ('to_send', 'Pending Notification'), ('to_process', 'Pending Processing'), ('error_create', 'Error Creating'), ('error_sending', 'Error Sending'), ('error_processing', 'Error Processing'), ('processed', 'Processed')]string='SES Status traveller'
-
create(self, vals_list)@api.model_create_multi -
create_communication(self, reservation_id, operation, entity, communication_id_to_cancel=False)@api.model -
create_communication_after_update_reservation(self, reservation, vals)@api.model -
write(self, vals)
New fields (8)
-
in_ineBooleandefault=Truehelp='Take it into account to generate INE statistics' -
institutionSelectionhelp='Institution to send daily guest data.'required=False args: [('ses', 'SES'), ('ertxaintxa', 'Ertxaintxa (soon)'), ('mossos', "Mossos_d'esquadra (soon)")] -
institution_independent_accountBooleandefault=Falsehelp='This room has an independent account'string='Independent account for institution (travel reports)' -
institution_lessor_idCharhelp='Id provided by institution to send data from lessor.' -
institution_passwordCharhelp='Password provided by institution to send the data.' -
institution_property_idCharhelp='Id provided by institution to send data from property.' -
institution_userCharhelp='User provided by institution to send the data.' -
ses_urlCharhelp='URL to send the data to SES'
No public methods.
New fields (20)
-
batch_idChardefault=False -
communication_idChardefault=Falsehelp='ID of the communication' -
communication_id_to_cancelMany2one → pms.ses.communicationcomodel_name='pms.ses.communication'help='Communication to cancel if this is a cancellation operation'string='Communication to Cancel' -
communication_soapTexthelp='SOAP content communication'string='SOAP Com.' -
communication_timeDatetimehelp='Date and time of the communication' -
communication_xmlTexthelp='XML content communication'string='XML Com.' -
entitySelectionhelp='Entity of the communication'required=Trueselection=[('RH', 'Reservation'), ('PV', 'Traveller report')] -
operationSelectionhelp='Operation of the communication'required=Trueselection=[('A', 'New communication'), ('B', 'Delete communication')] -
pms_property_idMany2one → pms.propertycomodel_name='pms.property'help='Property related to this communication'index=Truerelated='reservation_id.pms_property_id'store=Truestring='Property' -
processing_resultTexthelp='Notification processing result' -
query_status_soapTexthelp='SOAP query status content communication'string='SOAP Query Status' -
query_status_timeDatetimehelp='Date and time of the last state query' -
query_status_xmlTexthelp='XML query status content communication'string='XML Query Status' -
reservation_idMany2one → pms.reservationcomodel_name='pms.reservation'help='Reservation related to this communication'index=Truerequired=Truestring='Reservation' -
response_communication_soapTexthelp='SOAP response communication'string='SOAP Resp. Com.' -
response_query_status_soapTexthelp='SOAP response status query'string='SOAP Resp. Status' -
room_idMany2one → pms.roomcomodel_name='pms.room'help='Room related to this communication'index=Truerelated='reservation_id.preferred_room_id'store=Truestring='Room' -
send_attempt_countIntegerdefault=0help='Number of attempts to send the communication' -
sending_resultTexthelp='Notification sending result' -
stateSelectiondefault='to_send'help='State of the communication'required=Trueselection=[('incomplete', 'Incomplete checkin data'), ('to_send', 'Pending Notification'), ('to_process', 'Pending Processing'), ('error_sending', 'Error Sending'), ('error_processing', 'Error Processing'), ('processed', 'Processed')]
-
force_send_communication(self)
New fields (3)
-
codeCharhelp='Code of the Spanish tourism classification.'required=True -
descriptionTexthelp='Description of the Spanish tourism classification.' -
nameCharhelp='Spanish tourism classification.'required=True
No public methods.
New fields (1)
-
ine_codeCharstring='INE State Code'
No public methods.
New fields (1)
-
ine_codeCharcompute='_compute_ine_code'store=Truestring='INE State Code'
-
get_vat(self)
New fields (1)
-
support_numberCharhelp='DNI support number'string='Support number'
No public methods.
New fields (10)
-
date_fromDatedefault=<expr>required=Truestring='From' -
date_targetDatedefault=<expr>required=Truestring='Date' -
date_toDatedefault=<expr>required=Truestring='To' -
is_sesBooleancompute='_compute_is_ses'readonly=True -
pms_property_idMany2one → pms.propertycomodel_name='pms.property'required=Truestring='Property' -
report_typeSelectiondefault='reservations'help='Report type (reservation/traveller report)'required=Trueselection=[('reservations', 'Reservations Report'), ('travellers', 'Travellers Report')] -
room_idMany2one → pms.roomcomodel_name='pms.room'domain="\n [\n ('pms_property_id', '=', pms_property_id),\n ('institution_independent_account, '=', True),\n ('institution', '=', 'ses')\n ]\n "string='Room' -
txt_binaryBinarystring='File Download' -
txt_filenameText -
txt_messageCharcompute='_compute_txt_message'readonly=Truestore=Truestring='File Preview'
-
generate_file_from_user_action(self) -
generate_ses_reservation_list(self, pms_property_id, date_from, date_to, room_id=False) -
generate_ses_travellers_list(self, pms_property_id, date_target, room_id=False) -
generate_xml_reservation(self, solicitud, reservation_id) -
generate_xml_reservation_travellers_report(self, solicitud, reservation_id, people=False) -
generate_xml_reservations(self, reservation_ids) -
generate_xml_reservations_travellers_report(self, reservation_ids, ignore_some_not_onboard=False) -
ses_process_communications(self)@api.model -
ses_send_communications(self, entity, pms_ses_communication_id=False)@api.model -
ses_send_incomplete_traveller_reports(self, hours_after_first_checkin_to_inform)@api.model
Loading…