Skip to content

Commit

Permalink
[FIX] pms-l10n_es: rename field communication_id -> batch_id, extract…
Browse files Browse the repository at this point in the history
… from ses processing communication communication_id, not re set communication result, etc.
  • Loading branch information
miguelpadin committed Dec 4, 2024
1 parent 832c203 commit a74adc2
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 17 deletions.
2 changes: 1 addition & 1 deletion pms_l10n_es/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
20 changes: 20 additions & 0 deletions pms_l10n_es/migrations/14.0.3.0.0/post-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import logging

from openupgradelib import openupgrade
import xml.etree.cElementTree as ET

_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
15 changes: 15 additions & 0 deletions pms_l10n_es/migrations/14.0.3.0.0/pre-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
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)

6 changes: 5 additions & 1 deletion pms_l10n_es/models/pms_ses_communication.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -99,5 +103,5 @@ def force_send_communication(self):
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,
)
3 changes: 3 additions & 0 deletions pms_l10n_es/views/pms_ses_communication_views.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<sheet>
<group>
<field name="reservation_id" />
<field name="batch_id" />
<field name="communication_id" />
<field name="operation" />
<field name="entity" />
Expand Down Expand Up @@ -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" />
Expand All @@ -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 -->
Expand Down
30 changes: 15 additions & 15 deletions pms_l10n_es/wizards/traveller_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -1072,13 +1072,13 @@ def generate_xml_reservations_travellers_report(
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:
Expand Down Expand Up @@ -1135,15 +1135,16 @@ def ses_send_communications(self, entity, communication_id=False):
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)

Expand Down Expand Up @@ -1199,18 +1200,17 @@ def ses_send_incomplete_traveller_reports(
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)

Expand All @@ -1226,7 +1226,7 @@ def ses_process_communications(self):
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
Expand All @@ -1249,13 +1249,13 @@ def ses_process_communications(self):
)
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
Expand All @@ -1269,9 +1269,9 @@ def ses_process_communications(self):
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)

0 comments on commit a74adc2

Please sign in to comment.