mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[FIX] pms-l10n_es: rename field communication_id -> batch_id, extract from ses processing communication communication_id, not re set communication result, etc.
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
{
|
||||
"name": "PMS Spanish Adaptation",
|
||||
"version": "14.0.2.15.0",
|
||||
"version": "14.0.3.0.0",
|
||||
"author": "Commit [Sun], Odoo Community Association (OCA)",
|
||||
"license": "AGPL-3",
|
||||
"application": True,
|
||||
|
||||
20
pms_l10n_es/migrations/14.0.3.0.0/post-migration.py
Normal file
20
pms_l10n_es/migrations/14.0.3.0.0/post-migration.py
Normal file
@@ -0,0 +1,20 @@
|
||||
import logging
|
||||
import xml.etree.cElementTree as ET
|
||||
|
||||
from openupgradelib import openupgrade
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@openupgrade.migrate()
|
||||
def migrate(env, version):
|
||||
_logger.info("Get commuication_ids from soap process response...")
|
||||
for ses_communication in env["pms.ses.communication"].search(
|
||||
[
|
||||
("state", "=", "processed"),
|
||||
("entity", "=", "RH"),
|
||||
("operation", "=", "A"),
|
||||
]
|
||||
):
|
||||
root = ET.fromstring(ses_communication.response_query_status_soap)
|
||||
ses_communication.communication_id = root.find(".//codigoComunicacion").text
|
||||
14
pms_l10n_es/migrations/14.0.3.0.0/pre-migration.py
Normal file
14
pms_l10n_es/migrations/14.0.3.0.0/pre-migration.py
Normal file
@@ -0,0 +1,14 @@
|
||||
import logging
|
||||
|
||||
from openupgradelib import openupgrade
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
_field_renames = [
|
||||
("pms.ses.communication", "pms_ses_communication", "communication_id", "batch_id"),
|
||||
]
|
||||
|
||||
|
||||
@openupgrade.migrate()
|
||||
def migrate(env, version):
|
||||
openupgrade.rename_fields(env, _field_renames)
|
||||
@@ -22,6 +22,10 @@ class PmsSesCommunication(models.Model):
|
||||
index=True,
|
||||
store=True,
|
||||
)
|
||||
batch_id = fields.Char(
|
||||
string="Batch ID",
|
||||
default=False,
|
||||
)
|
||||
communication_id = fields.Char(
|
||||
string="Communication ID",
|
||||
help="ID of the communication",
|
||||
@@ -99,5 +103,5 @@ class PmsSesCommunication(models.Model):
|
||||
for record in self:
|
||||
self.env["traveller.report.wizard"].ses_send_communication(
|
||||
entity=record.entity,
|
||||
communication_id=record.communication_id,
|
||||
pms_ses_communication_id=record.id,
|
||||
)
|
||||
|
||||
@@ -8,11 +8,10 @@
|
||||
|
||||
/*
|
||||
:Author: David Goodger (goodger@python.org)
|
||||
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
|
||||
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
|
||||
:Copyright: This stylesheet has been placed in the public domain.
|
||||
|
||||
Default cascading style sheet for the HTML output of Docutils.
|
||||
Despite the name, some widely supported CSS2 features are used.
|
||||
|
||||
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
|
||||
customize this style sheet.
|
||||
@@ -275,7 +274,7 @@ pre.literal-block, pre.doctest-block, pre.math, pre.code {
|
||||
margin-left: 2em ;
|
||||
margin-right: 2em }
|
||||
|
||||
pre.code .ln { color: gray; } /* line numbers */
|
||||
pre.code .ln { color: grey; } /* line numbers */
|
||||
pre.code, code { background-color: #eeeeee }
|
||||
pre.code .comment, code .comment { color: #5C6576 }
|
||||
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
||||
@@ -301,7 +300,7 @@ span.option {
|
||||
span.pre {
|
||||
white-space: pre }
|
||||
|
||||
span.problematic, pre.problematic {
|
||||
span.problematic {
|
||||
color: red }
|
||||
|
||||
span.section-subtitle {
|
||||
@@ -415,9 +414,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
||||
<div class="section" id="maintainers">
|
||||
<h2><a class="toc-backref" href="#toc-entry-5">Maintainers</a></h2>
|
||||
<p>This module is maintained by the OCA.</p>
|
||||
<a class="reference external image-reference" href="https://odoo-community.org">
|
||||
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
|
||||
</a>
|
||||
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
|
||||
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||||
mission is to support the collaborative development of Odoo features and
|
||||
promote its widespread use.</p>
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="reservation_id" />
|
||||
<field name="batch_id" />
|
||||
<field name="communication_id" />
|
||||
<field name="operation" />
|
||||
<field name="entity" />
|
||||
@@ -52,6 +53,7 @@
|
||||
>
|
||||
<field name="pms_property_id" />
|
||||
<field name="reservation_id" />
|
||||
<field name="batch_id" />
|
||||
<field name="communication_id" />
|
||||
<field name="operation" />
|
||||
<field name="entity" />
|
||||
@@ -73,6 +75,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Log SES Communications">
|
||||
<field name="pms_property_id" widget="selection" />
|
||||
<field name="batch_id" />
|
||||
<field name="communication_id" />
|
||||
<field name="reservation_id" />
|
||||
<!-- filters -->
|
||||
|
||||
@@ -335,7 +335,7 @@ def _generate_payload(lessor_id, operation, entity, data):
|
||||
<codigoArrendador>{lessor_id}</codigoArrendador>
|
||||
<aplicacion>Roomdoo</aplicacion>
|
||||
<tipoOperacion>{operation}</tipoOperacion>
|
||||
<tipoComunicacion>{entity}</tipoComunicacion>
|
||||
{'<tipoComunicacion>'+entity+'</tipoComunicacion>' if entity else ''}
|
||||
</cabecera>
|
||||
<solicitud>{data}</solicitud>
|
||||
</peticion>
|
||||
@@ -1072,13 +1072,13 @@ class TravellerReport(models.TransientModel):
|
||||
return xml_str
|
||||
|
||||
@api.model
|
||||
def ses_send_communications(self, entity, communication_id=False):
|
||||
def ses_send_communications(self, entity, pms_ses_communication_id=False):
|
||||
domain = [
|
||||
("state", "=", "to_send"),
|
||||
("entity", "=", entity),
|
||||
]
|
||||
if communication_id:
|
||||
domain.append(("id", "=", communication_id))
|
||||
if pms_ses_communication_id:
|
||||
domain.append(("id", "=", pms_ses_communication_id))
|
||||
for communication in self.env["pms.ses.communication"].search(domain):
|
||||
data = False
|
||||
try:
|
||||
@@ -1135,15 +1135,16 @@ class TravellerReport(models.TransientModel):
|
||||
communication.response_communication_soap = soap_response.text
|
||||
result_code = root.find(".//codigo").text
|
||||
if result_code == REQUEST_CODE_OK:
|
||||
communication.communication_id = root.find(".//lote").text
|
||||
communication.batch_id = root.find(".//lote").text
|
||||
|
||||
communication.state = "to_process"
|
||||
else:
|
||||
communication.state = "error_sending"
|
||||
|
||||
except requests.exceptions.RequestException as e:
|
||||
_handle_request_exception(communication, e)
|
||||
except requests.exceptions.HTTPError as http_err:
|
||||
_handle_request_exception(communication, http_err)
|
||||
except requests.exceptions.RequestException as e:
|
||||
_handle_request_exception(communication, e)
|
||||
except Exception as e:
|
||||
_handle_request_exception(communication, e)
|
||||
|
||||
@@ -1199,18 +1200,17 @@ class TravellerReport(models.TransientModel):
|
||||
communication.response_communication_soap = soap_response.text
|
||||
result_code = root.find(".//codigo").text
|
||||
if result_code == REQUEST_CODE_OK:
|
||||
communication.communication_id = root.find(".//lote").text
|
||||
communication.batch_id = root.find(".//lote").text
|
||||
if communication.operation == CREATE_OPERATION_CODE:
|
||||
communication.state = "to_process"
|
||||
else:
|
||||
communication.state = "processed"
|
||||
else:
|
||||
communication.state = "error_sending"
|
||||
|
||||
except requests.exceptions.RequestException as e:
|
||||
_handle_request_exception(communication, e)
|
||||
except requests.exceptions.HTTPError as http_err:
|
||||
_handle_request_exception(communication, http_err)
|
||||
except requests.exceptions.RequestException as e:
|
||||
_handle_request_exception(communication, e)
|
||||
except Exception as e:
|
||||
_handle_request_exception(communication, e)
|
||||
|
||||
@@ -1226,7 +1226,7 @@ class TravellerReport(models.TransientModel):
|
||||
var_xml_get_batch = f"""
|
||||
<con:lotes
|
||||
xmlns:con="http://www.neg.hospedajes.mir.es/consultarComunicacion">
|
||||
<con:lote>{communication.communication_id}</con:lote>
|
||||
<con:lote>{communication.batch_id}</con:lote>
|
||||
</con:lotes>
|
||||
"""
|
||||
communication.query_status_xml = var_xml_get_batch
|
||||
@@ -1249,13 +1249,15 @@ class TravellerReport(models.TransientModel):
|
||||
)
|
||||
soap_response.raise_for_status()
|
||||
root = ET.fromstring(soap_response.text)
|
||||
communication.response_communication_soap = soap_response.text
|
||||
result_code = root.find(".//codigo").text
|
||||
communication.response_query_status_soap = soap_response.text
|
||||
if result_code == REQUEST_CODE_OK:
|
||||
result_status = root.find(".//codigoEstado").text
|
||||
if result_status == XML_OK:
|
||||
communication.state = "processed"
|
||||
communication.communication_id = root.find(
|
||||
".//codigoComunicacion"
|
||||
).text
|
||||
communication.processing_result = root.find(
|
||||
".//descripcion"
|
||||
).text
|
||||
@@ -1269,9 +1271,9 @@ class TravellerReport(models.TransientModel):
|
||||
else:
|
||||
communication.state = "error_processing"
|
||||
communication.processing_result = root.find(".//descripcion").text
|
||||
except requests.exceptions.RequestException as e:
|
||||
_handle_request_exception(communication, e)
|
||||
except requests.exceptions.HTTPError as http_err:
|
||||
_handle_request_exception(communication, http_err)
|
||||
except requests.exceptions.RequestException as e:
|
||||
_handle_request_exception(communication, e)
|
||||
except Exception as e:
|
||||
_handle_request_exception(communication, e)
|
||||
|
||||
Reference in New Issue
Block a user