PMS Spanish Adaptation

pms_l10n_es
REPOSITORY
REPOSITORYOCA/pms
GIT
GIThttps://github.com/OCA/pms.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/pms/tree/16.0/pms_l10n_es
VERSION
VERSION 2.3.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Commit [Sun]
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Commit [Sun]
COMMITTERS
COMMITTERSGitHub, Weblate, OCA-git-bot, oca-ci, DarioLodeiros, jesusvmayor
WEBSITE
WEBSITEhttps://github.com/OCA/pms
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/community-data-files:
    - base_iso3166
OCA/l10n-spain:
    - l10n_es_aeat
OCA/partner-contact:
    - partner_firstname
    - partner_contact_gender
    - partner_contact_personal_information_page
    - partner_contact_birthdate
    - partner_contact_nationality
    - partner_second_lastname
    - partner_identification
OCA/pms:
    - pms
    - multi_pms_properties
    - pms_partner_second_lastname
    - pms_partner_identification
OCA/queue:
    - queue_job
OCA/server-ux:
    - date_range
OCA/web:
    - web_timeline
odoo/odoo:
    - base
    - base_automation
    - resource
    - web
    - mail
    - base_setup
    - bus
    - web_tour
    - sales_team
    - analytic
    - uom
    - account
    - product
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - sale
    - account_payment
    - payment
    - utm
    - base_sparse_field
    - base_vat
    - l10n_es
    - base_iban
    - contacts
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES bs4
openupgradelib
pycountry
requests
unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (17)
XML IDNameModelTypeStatus
inherit_partner_id_numbers_form inherit.res.partner.id_number.form res.partner.id_number xpath Inherits partner_identification.view_partner_id_numbers_form
inherit_partner_id_numbers_tree inherit.res.partner.id_number.tree res.partner.id_number xpath Inherits partner_identification.view_partner_id_numbers_tree
inherit_pms_checkin_partner_form inherit.pms.checkin_partner.form pms.checkin.partner xpath 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 xpath 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 xpath Inherits pms.pms_reservation_view_form
view_property_form_pms_l10n_es Property Form l10n_es pms.property xpath Inherits pms.pms_property_views_form
view_room_form_pms_l10n_es Property Form l10n_es pms.room xpath Inherits pms.pms_room_view_form
Models touched (12)

New fields (3)
  • ses_partners_relationship Selection
    required=False selection=[('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_id Many2one → pms.checkin.partner
    comodel_name='pms.checkin.partner' required=False string='Related checkin partner'
  • support_number Char
    compute='_compute_partner_document_data' help='ID support number' readonly=False store=True string='Support number'
Public methods (2)
  • get_document_vals(self)
  • write(self, vals)

New fields (2)
  • category Char
    required=True
  • type Char
    required=True
Public methods (1)
  • name_get(self)

New fields (8)
  • adr Float
    string='Range ADR'
  • end_date Date
    required=True string='To'
  • pms_property_id Many2one → pms.property
    check_pms_properties=True comodel_name='pms.property' required=True string='Property'
  • revpar Float
    string='Range RevPAR'
  • start_date Date
    required=True string='From'
  • txt_binary Binary
    string='File Download'
  • txt_filename Text
  • txt_message Char
    string='File Preview'
Public methods (8)
  • 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.model
    Returns 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.model
    Returns 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_id Many2one → pms.ine.tourism.type.category
    comodel_name='pms.ine.tourism.type.category' help='Hotel category in the Ministry of Tourism. Used for INE statistics.'
  • ine_eventual_staff Integer
    default=0 help='Used for INE statistics.' string='Eventual Staff'
  • ine_permanent_staff Integer
    default=0 help='Used for INE statistics.' string='Permanent Staff'
  • ine_seats Integer
    default=0 help='Used for INE statistics.' string='Beds available excluding extra beds'
  • ine_tourism_number Char
    help='Registration number in the Ministry of Tourism. Used for INE statistics.' args: 'Tourism number'
  • ine_unpaid_staff Integer
    default=0 help='Used for INE statistics.' string='Unpaid Staff'
  • institution Selection
    help='Institution to send daily guest data.' required=False args: [('ses', 'SES')]
  • institution_lessor_id Char
    help='Id provided by institution to send data from lessor.'
  • institution_password Char
    help='Password provided by institution to send the data.'
  • institution_property_id Char
    help='Id provided by institution to send data from property.'
  • institution_user Char
    help='User provided by institution to send the data.'
  • ses_url Char
    help='URL to send the data to SES'
  • spanish_tourism_classification_id Many2one → pms.tourism.classification
    comodel_name='pms.tourism.classification' help='Spanish tourism classification.' string='Spanish Tourism Classification'
Public methods (0)

No public methods.

New fields (4)
  • is_ses Boolean
    compute='_compute_is_ses' readonly=True store=True string='Is SES'
  • ses_communication_ids One2many → pms.ses.communication
    comodel_name='pms.ses.communication' help='Communications related to this reservation' inverse_name='reservation_id' string='SES Communications'
  • ses_status_reservation Selection
    compute='_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_report Selection
    compute='_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'
Public methods (4)
  • 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_ine Boolean
    default=True help='Take it into account to generate INE statistics'
  • institution Selection
    help='Institution to send daily guest data.' required=False args: [('ses', 'SES'), ('ertxaintxa', 'Ertxaintxa (soon)'), ('mossos', "Mossos_d'esquadra (soon)")]
  • institution_independent_account Boolean
    default=False help='This room has an independent account' string='Independent account for institution (travel reports)'
  • institution_lessor_id Char
    help='Id provided by institution to send data from lessor.'
  • institution_password Char
    help='Password provided by institution to send the data.'
  • institution_property_id Char
    help='Id provided by institution to send data from property.'
  • institution_user Char
    help='User provided by institution to send the data.'
  • ses_url Char
    help='URL to send the data to SES'
Public methods (0)

No public methods.

New fields (20)
  • batch_id Char
    default=False
  • communication_id Char
    default=False help='ID of the communication'
  • communication_id_to_cancel Many2one → pms.ses.communication
    comodel_name='pms.ses.communication' help='Communication to cancel if this is a cancellation operation' string='Communication to Cancel'
  • communication_soap Text
    help='SOAP content communication' string='SOAP Com.'
  • communication_time Datetime
    help='Date and time of the communication'
  • communication_xml Text
    help='XML content communication' string='XML Com.'
  • entity Selection
    help='Entity of the communication' required=True selection=[('RH', 'Reservation'), ('PV', 'Traveller report')]
  • operation Selection
    help='Operation of the communication' required=True selection=[('A', 'New communication'), ('B', 'Delete communication')]
  • pms_property_id Many2one → pms.property
    comodel_name='pms.property' help='Property related to this communication' index=True related='reservation_id.pms_property_id' store=True string='Property'
  • processing_result Text
    help='Notification processing result'
  • query_status_soap Text
    help='SOAP query status content communication' string='SOAP Query Status'
  • query_status_time Datetime
    help='Date and time of the last state query'
  • query_status_xml Text
    help='XML query status content communication' string='XML Query Status'
  • reservation_id Many2one → pms.reservation
    comodel_name='pms.reservation' help='Reservation related to this communication' index=True required=True string='Reservation'
  • response_communication_soap Text
    help='SOAP response communication' string='SOAP Resp. Com.'
  • response_query_status_soap Text
    help='SOAP response status query' string='SOAP Resp. Status'
  • room_id Many2one → pms.room
    comodel_name='pms.room' help='Room related to this communication' index=True related='reservation_id.preferred_room_id' store=True string='Room'
  • send_attempt_count Integer
    default=0 help='Number of attempts to send the communication'
  • sending_result Text
    help='Notification sending result'
  • state Selection
    default='to_send' help='State of the communication' required=True selection=[('incomplete', 'Incomplete checkin data'), ('to_send', 'Pending Notification'), ('to_process', 'Pending Processing'), ('error_sending', 'Error Sending'), ('error_processing', 'Error Processing'), ('processed', 'Processed')]
Public methods (1)
  • force_send_communication(self)

New fields (3)
  • code Char
    help='Code of the Spanish tourism classification.' required=True
  • description Text
    help='Description of the Spanish tourism classification.'
  • name Char
    help='Spanish tourism classification.' required=True
Public methods (0)

No public methods.

New fields (1)
  • ine_code Char
    string='INE State Code'
Public methods (0)

No public methods.

New fields (1)
  • ine_code Char
    compute='_compute_ine_code' store=True string='INE State Code'
Public methods (1)
  • get_vat(self)

New fields (1)
  • support_number Char
    help='DNI support number' string='Support number'
Public methods (0)

No public methods.

New fields (10)
  • date_from Date
    default=<expr> required=True string='From'
  • date_target Date
    default=<expr> required=True string='Date'
  • date_to Date
    default=<expr> required=True string='To'
  • is_ses Boolean
    compute='_compute_is_ses' readonly=True
  • pms_property_id Many2one → pms.property
    comodel_name='pms.property' required=True string='Property'
  • report_type Selection
    default='reservations' help='Report type (reservation/traveller report)' required=True selection=[('reservations', 'Reservations Report'), ('travellers', 'Travellers Report')]
  • room_id Many2one → pms.room
    comodel_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_binary Binary
    string='File Download'
  • txt_filename Text
  • txt_message Char
    compute='_compute_txt_message' readonly=True store=True string='File Preview'
Public methods (10)
  • 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
REPOSITORY
REPOSITORYOCA/pms
GIT
GIThttps://github.com/OCA/pms.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/pms/tree/14.0/pms_l10n_es
VERSION
VERSION 3.5.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Commit [Sun]
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Commit [Sun]
COMMITTERS
COMMITTERSGitHub, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Eric Antones, Darío Lodeiros, oca-ci, Dario Lodeiros, oca-git-bot, braisab, Sara Lago, miguelpadin
WEBSITE
WEBSITEhttps://github.com/OCA/pms
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-reconcile:
    - account_reconciliation_widget
OCA/community-data-files:
    - base_iso3166
OCA/l10n-spain:
    - l10n_es_aeat
OCA/partner-contact:
    - partner_firstname
    - partner_second_lastname
    - partner_contact_gender
    - partner_contact_personal_information_page
    - partner_contact_birthdate
    - partner_contact_nationality
    - partner_identification
OCA/pms:
    - pms
    - multi_pms_properties
OCA/queue:
    - queue_job
OCA/server-ux:
    - date_range
OCA/web:
    - web_timeline
odoo/odoo:
    - base
    - base_automation
    - resource
    - web
    - mail
    - base_setup
    - bus
    - web_tour
    - sales_team
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - base_sparse_field
    - contacts
    - sale
    - payment
    - utm
    - base_vat
    - l10n_es
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES bs4
pycountry
requests
cryptography<39
unidecode
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (17)
XML IDNameModelTypeStatus
inherit_partner_id_numbers_form inherit.res.partner.id_number.form res.partner.id_number xpath Inherits partner_identification.view_partner_id_numbers_form
inherit_partner_id_numbers_tree inherit.res.partner.id_number.tree res.partner.id_number xpath Inherits partner_identification.view_partner_id_numbers_tree
inherit_pms_checkin_partner_form inherit.pms.checkin_partner.form pms.checkin.partner xpath Inherits pms.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_log_institution_traveller_report_view_form pms.log.institution.traveller.report.form pms.log.institution.traveller.report form New
pms_log_institution_traveller_report_view_search pms.log.institution.traveller.report.search pms.log.institution.traveller.report search New
pms_log_institution_traveller_report_view_tree pms.log.institution.traveller.report.tree pms.log.institution.traveller.report tree New
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
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 xpath Inherits pms.pms_reservation_view_form
view_property_form_pms_l10n_es Property Form l10n_es pms.property xpath Inherits pms.pms_property_views_form
view_room_form_pms_l10n_es Property Form l10n_es pms.room xpath Inherits pms.pms_room_view_form
Models touched (12)

New fields (3)
  • ses_partners_relationship Selection
    required=False selection=[('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_id Many2one → pms.checkin.partner
    comodel_name='pms.checkin.partner' required=False string='Related checkin partner'
  • support_number Char
    compute='_compute_support_number' help='ID support number' readonly=False store=True string='Support number'
Public methods (2)
  • get_document_vals(self)
  • write(self, vals)

New fields (2)
  • category Char
    required=True args: 'Category'
  • type Char
    required=True args: 'Type'
Public methods (1)
  • name_get(self)

New fields (8)
  • adr Float
    string='Range ADR'
  • end_date Date
    required=True string='To'
  • pms_property_id Many2one → pms.property
    check_pms_properties=True comodel_name='pms.property' default=<expr> required=True string='Property'
  • revpar Float
    string='Range RevPAR'
  • start_date Date
    required=True string='From'
  • txt_binary Binary
    string='File Download'
  • txt_filename Text
  • txt_message Char
    string='File Preview'
Public methods (8)
  • 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.model
    Returns 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.model
    Returns a dictionary: { date_1: { 'double_rooms_single_use': number, 'double_rooms_double_use': number, 'other_rooms': number, 'extra_beds': number }, # ... more dates }

New fields (8)
  • date Datetime
    default=fields.Datetime.now string='Send Date'
  • error_sending_data Boolean
    required=True string='Error sending data'
  • file_incidencies_from_institution Binary
    string='Detailed file'
  • pms_property_id Many2one → pms.property
    comodel_name='pms.property' string='Property'
  • target_date Date
    string='Checkins Date'
  • txt_filename Text
  • txt_incidencies_from_institution Text
    string='Detailed message'
  • txt_message Char
    string='Log Message'
Public methods (0)

No public methods.

New fields (12)
  • ine_category_id Many2one → pms.ine.tourism.type.category
    help='Hotel category in the Ministry of Tourism. Used for INE statistics.' args: 'pms.ine.tourism.type.category'
  • ine_eventual_staff Integer
    default=0 help='Used for INE statistics.' args: 'Eventual Staff'
  • ine_permanent_staff Integer
    default=0 help='Used for INE statistics.' args: 'Permanent Staff'
  • ine_seats Integer
    default=0 help='Used for INE statistics.' args: 'Beds available excluding extra beds'
  • ine_tourism_number Char
    help='Registration number in the Ministry of Tourism. Used for INE statistics.' args: 'Tourism number'
  • ine_unpaid_staff Integer
    default=0 help='Used for INE statistics.' args: 'Unpaid Staff'
  • institution Selection
    help='Institution to send daily guest data.' required=False string='Institution' args: [('guardia_civil', 'Guardia Civil'), ('policia_nacional', 'Policía Nacional'), ('ertxaintxa', 'Ertxaintxa (soon)'), ('mossos', "Mossos_d'esquadra (soon)"), ('ses', 'SES')]
  • institution_lessor_id Char
    help='Id provided by institution to send data from lessor.' string='Institution lessor id'
  • institution_password Char
    help='Password provided by institution to send the data.' string='Institution password'
  • institution_property_id Char
    help='Id provided by institution to send data from property.' string='Institution property id'
  • institution_user Char
    help='User provided by institution to send the data.' string='Institution user'
  • ses_url Char
    help='URL to send the data to SES' string='SES URL'
Public methods (1)
  • test_connection(self)

New fields (4)
  • is_ses Boolean
    compute='_compute_is_ses' readonly=True store=True string='Is SES'
  • ses_communication_ids One2many → pms.ses.communication
    comodel_name='pms.ses.communication' help='Communications related to this reservation' inverse_name='reservation_id' string='SES Communications'
  • ses_status_reservation Selection
    compute='_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_report Selection
    compute='_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'
Public methods (4)
  • create(self, vals)
    @api.model
  • create_communication(self, reservation_id, operation, entity)
    @api.model
  • create_communication_after_update_reservation(self, reservation, vals)
    @api.model
  • write(self, vals)

New fields (8)
  • in_ine Boolean
    default=True help='Take it into account to generate INE statistics' string='In INE'
  • institution Selection
    help='Institution to send daily guest data.' required=False string='Institution' args: [('ses', 'SES'), ('ertxaintxa', 'Ertxaintxa (soon)'), ('mossos', "Mossos_d'esquadra (soon)")]
  • institution_independent_account Boolean
    default=False help='This room has an independent account' string='Independent account for institution (travel reports)'
  • institution_lessor_id Char
    help='Id provided by institution to send data from lessor.' string='Institution lessor id'
  • institution_password Char
    help='Password provided by institution to send the data.' string='Institution password'
  • institution_property_id Char
    help='Id provided by institution to send data from property.' string='Institution property id'
  • institution_user Char
    help='User provided by institution to send the data.' string='Institution user'
  • ses_url Char
    help='URL to send the data to SES' string='SES URL'
Public methods (0)

No public methods.

New fields (18)
  • batch_id Char
    default=False string='Batch ID'
  • communication_id Char
    default=False help='ID of the communication' string='Communication ID'
  • communication_soap Text
    help='SOAP content communication' string='SOAP Com.'
  • communication_time Datetime
    help='Date and time of the communication' string='Communication time'
  • communication_xml Text
    help='XML content communication' string='XML Com.'
  • entity Selection
    help='Entity of the communication' required=True selection=[('RH', 'Reservation'), ('PV', 'Traveller report')] string='Entity'
  • operation Selection
    help='Operation of the communication' required=True selection=[('A', 'New communication'), ('B', 'Delete communication')] string='Operation'
  • pms_property_id Many2one → pms.property
    comodel_name='pms.property' help='Property related to this communication' index=True related='reservation_id.pms_property_id' store=True string='Property'
  • processing_result Text
    help='Notification processing result' string='Processing Result'
  • query_status_soap Text
    help='SOAP query status content communication' string='SOAP Query Status'
  • query_status_time Datetime
    help='Date and time of the last state query' string='Query status time'
  • query_status_xml Text
    help='XML query status content communication' string='XML Query Status'
  • reservation_id Many2one → pms.reservation
    comodel_name='pms.reservation' help='Reservation related to this communication' index=True required=True string='Reservation'
  • response_communication_soap Text
    help='SOAP response communication' string='SOAP Resp. Com.'
  • response_query_status_soap Text
    help='SOAP response status query' string='SOAP Resp. Status'
  • room_id Many2one → pms.room
    comodel_name='pms.room' help='Room related to this communication' index=True related='reservation_id.preferred_room_id' store=True string='Room'
  • sending_result Text
    help='Notification sending result' string='Sending Result'
  • state Selection
    default='to_send' help='State of the communication' required=True selection=[('incomplete', 'Incomplete checkin data'), ('to_send', 'Pending Notification'), ('to_process', 'Pending Processing'), ('error_sending', 'Error Sending'), ('error_processing', 'Error Processing'), ('processed', 'Processed')] string='State'
Public methods (1)
  • force_send_communication(self)

New fields (1)
  • ine_code Char
    string='INE State Code'
Public methods (0)

No public methods.

New fields (1)
  • ine_code Char
    compute='_compute_ine_code' store=True string='INE State Code'
Public methods (3)
  • create(self, vals)
    @api.model
  • update_vat_code_country(self)
    @api.constrains('id_numbers', 'vat')
  • write(self, vals)

New fields (1)
  • support_number Char
    compute='_compute_support_number' help='DNI support number' readonly=False store=True string='Support number'
Public methods (0)

No public methods.

New fields (10)
  • date_from Date
    default=<expr> required=True string='From'
  • date_target Date
    default=<expr> required=True string='Date'
  • date_to Date
    default=<expr> required=True string='To'
  • is_ses Boolean
    compute='_compute_is_ses' readonly=True string='Is SES'
  • pms_property_id Many2one → pms.property
    comodel_name='pms.property' default=<expr> required=True string='Property'
  • report_type Selection
    default='reservations' help='Report type (reservation/traveller report)' required=True selection=[('reservations', 'Reservations Report'), ('travellers', 'Travellers Report')] string='Report Type'
  • room_id Many2one → pms.room
    comodel_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_binary Binary
    string='File Download'
  • txt_filename Text
  • txt_message Char
    compute='_compute_txt_message' readonly=True store=True string='File Preview'
Public methods (15)
  • generate_checkin_list(self, pms_property_id, date_target=False)
  • 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)
  • send_file_gc(self, file_content, called_from_user, pms_property)
  • send_file_institution(self, pms_property=False, offset=0, date_target=False)
  • send_file_institution_async(self, offset=0)
    @api.model
  • send_file_pn(self, file_content, called_from_user, pms_property)
  • 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