def WSObtenerCCBB(self): if not self: raise UserError( _("You need to select a picking to calculate the estimated shipping cost." )) config = self.env['autoradio.config'].search([('soap_url', '!=', None) ]) config = self.env['autoradio.config'].browse(config.id) client, history = config.create_client() if client: try: header = config.getWSRequestHeader(client) obtenerCCBB = { 'LoginCliente': config.soap_persona_ordena, 'RefEnvio': self.carrier_tracking_ref } res = client.service.WSObtenerCCBB(**obtenerCCBB, _soapheaders=[header]) if res: print("{}".format(res)) except Exception as e: raise AccessError(_("Access error message: {}".format(e))) else: raise AccessError(_("Not possible to establish a client."))
def WSObtenerDatosEtiqueta(self): if not self: raise UserError( _("You need to select a picking to calculate the estimated shipping cost." )) config = self.env['autoradio.config'].search([('soap_url', '!=', None) ]) config = self.env['autoradio.config'].browse(config.id) client, history = config.create_client() if client: try: header = config.getWSRequestHeader(client) obtenerDatosEtiqueta = { 'LoginCliente': config.soap_persona_ordena, 'RefEnvio': self.carrier_tracking_ref } res = client.service.WSObtenerDatosEtiqueta( **obtenerDatosEtiqueta, _soapheaders=[header]) if res: if history.last_received["envelope"][0][0][0] is not None: response = history.last_received["envelope"][0][0][0] else: raise AccessError( _("No existen datos para este envío.")) response_content = etree.tostring(response, encoding="unicode", pretty_print=True) root = etree.fromstring(response_content) datosEtiqueta = root.findall('.//datosEtiqueta') if not datosEtiqueta: raise AccessError( _("No existen datos para este envío.")) tag_dict = self.elem2dict(datosEtiqueta[0]) return tag_dict except Exception as e: raise AccessError(_("Access error message: {}".format(e))) else: raise AccessError(_("Not possible to establish a client."))
def WSBorrarEnvio(self): if not self: raise UserError( _("You need to select a picking to calculate the estimated shipping cost." )) config = self.env['autoradio.config'].search([('soap_url', '!=', None) ]) config = self.env['autoradio.config'].browse(config.id) client, history = config.create_client() if client: try: header = config.getWSRequestHeader(client) borrarEnvio = { 'RefEnvio': self.carrier_tracking_ref, 'LoginCliente': config.soap_persona_ordena, 'CodCliente': config.soap_client_code, 'CodCentro': config.soap_center } res = client.service.WSBorrarEnvio(**borrarEnvio, _soapheaders=[header]) if res and res[0] == 1: self.update({ 'carrier_tracking_ref': False, 'autoradio_ccbb': False, 'autoradio_channelling': False, 'autoradio_ccbb_type': False, 'state': 'not_sent' }) self._compute_carrier_id() except Exception as e: raise AccessError(_("Access error message: {}".format(e))) else: raise AccessError(_("Not possible to establish a client."))
def WSEditarEnvioTAR(self): if not self: raise UserError( _("You need to select a picking to calculate the estimated shipping cost." )) config = self.env['autoradio.config'].search([('soap_url', '!=', None) ]) config = self.env['autoradio.config'].browse(config.id) client, history = config.create_client() if client: try: header = config.getWSRequestHeader(client) editarEnvioTAR = { 'RefEnvio': self.carrier_tracking_ref, 'LoginCliente': config.soap_persona_ordena, 'CodCliente': config.soap_client_code, 'CodCentro': config.soap_center, 'Fecha': self.delivery_date.strftime('%Y/%m/%d %H:%M'), 'CodServicio': self.carrier_id.autoradio_service_code, # Sender 'Remitente': '', # Si se envía un string vacío lo rellena Autoradio de la ficha de cliente. **self.company_id.name, 'CifRemi': '', # Si se envía un string vacío lo rellena Autoradio de la ficha de cliente. **self.company_id.vat, 'DireccionRem': '', # Si se envía un string vacío lo rellena Autoradio de la ficha de cliente. **"{}, {}".format(self.company_id.street, self.company_id.street2), 'PoblacionRem': '', # Si se envía un string vacío lo rellena Autoradio de la ficha de cliente. **self.company_id.city, 'CodPosRem': '', # Si se envía un string vacío lo rellena Autoradio de la ficha de cliente. **self.company_id.zip.zfill(5), 'CodPosPorRem': '', # Si se envía un string vacío lo rellena Autoradio de la ficha de cliente. **000, 'PaisRem': '', # Si se envía un string vacío lo rellena Autoradio de la ficha de cliente. **'ESP' if self.company_id.country_id.code == 'ES' else 'POR' if self.company_id.country_id.code == 'PT' else False, 'MailRem': '', # Si se envía un string vacío lo rellena Autoradio de la ficha de cliente. **self.company_id.email or '', 'TlfRem': '', # Si se envía un string vacío lo rellena Autoradio de la ficha de cliente. **self.company_id.phone or '', 'MovilRem': '', # Si se envía un string vacío lo rellena Autoradio de la ficha de cliente. **'', # Recipient 'Destinatario': self.partner_id.name, 'CifDes': self.partner_id.vat or '', 'DireccionDes': "{}, {}".format(self.partner_id.street or '', self.partner_id.street2 or ''), 'PoblacionDes': self.partner_id.city, 'CodPosDes': self.partner_id.zip.zfill(5) if self.partner_id.country_id.code == 'ES' else self.partner_id.zip.split("-")[0].zfill(0) if self.partner_id.country_id.code == 'PT' else False, 'CodPosPorDes': '000' if self.partner_id.country_id.code == 'ES' else self.partner_id.zip.split("-")[1].zfill(0) if self.partner_id.country_id.code == 'PT' else False, 'PaisDes': 'ESP' if self.partner_id.country_id.code == 'ES' else 'POR' if self.partner_id.country_id.code == 'PT' else False, 'MailDes': self.partner_id.email or '', 'TlfDes': self.partner_id.phone or '', 'MovilDes': self.partner_id.mobile or '', 'ContactoDes': self.partner_id.name, # Other data 'Bultos': self.number_of_packages, 'Kilos': self.shipping_weight, 'TipoPorte': self.autoradio_type, # P for paid, D for debt 'Reembolso': self.autoradio_refund_amount, # Amount in EUR 'TipoComision': self.autoradio_refund_type, # P for paid, D for debt 'Obser': self.autoradio_obs if self.autoradio_obs else '', # Comments 'AmpliaObser': self.autoradio_obs_extra if self.autoradio_obs_extra else '', 'RefCliente': self. autoradio_picking_reference, # ref client - changed from picking.partner_id.ref 'InstOp': self.autoradio_delivery_instructions, 'PersonaOrdena': config.soap_persona_ordena, 'FlagEnviarHoy': 1 if self.autoradio_close_shipping or self.autoradio_send_today else 0, # send today = 1. 'Cierre': 1 if self.autoradio_close_shipping else 0, # 0 or 1. Cerrar envío. 'FormaCobroReembolso': self.autoradio_cash_on_delivery_payment if self.autoradio_cash_on_delivery_payment else 9, # 9 - Efectivo, 10 - Cheque/Pagaré, 11 - Cheque a la vista, 12- Indiferente. 'Cheque1': self.autoradio_check_1_amount if self.autoradio_cash_on_delivery_payment in [10] else 0.0, # Se rellena si FormaCobroReembolso es 10 'Fecha1': self.autoradio_check_1_date.strftime('%Y/%m/%d %H:%M') if self.autoradio_cash_on_delivery_payment in [10] else '', # Se rellena si FormaCobroReembolso es 10 'Cheque2': self.autoradio_check_2_amount if self.autoradio_cash_on_delivery_payment in [10] else 0.0, # Se rellena si FormaCobroReembolso es 10 'Fecha2': self.autoradio_check_2_date.strftime('%Y/%m/%d %H:%M') if self.autoradio_cash_on_delivery_payment in [10] else '', # Se rellena si FormaCobroReembolso es 10 'Cheque3': self.autoradio_check_3_amount if self.autoradio_cash_on_delivery_payment in [10] else 0.0, # Se rellena si FormaCobroReembolso es 10 'Fecha3': self.autoradio_check_3_date.strftime('%Y/%m/%d %H:%M') if self.autoradio_cash_on_delivery_payment in [10] else '', # Se rellena si FormaCobroReembolso es 10 'Cheque4': self.autoradio_check_4_amount if self.autoradio_cash_on_delivery_payment in [10] else 0.0, # Se rellena si FormaCobroReembolso es 10 'Fecha4': self.autoradio_check_4_date.strftime('%Y/%m/%d %H:%M') if self.autoradio_cash_on_delivery_payment in [10] else '', # Se rellena si FormaCobroReembolso es 10 'Desembolso': self.autoradio_payment, # Importe de los portes? 'Referencia': self.name } res = client.service.WSEditarEnvioTAR(**editarEnvioTAR, _soapheaders=[header]) if res: self.update({ 'autoradio_ccbb': res[1], 'autoradio_channelling': res[2], 'autoradio_ccbb_type': res[3], 'state': 'requested' }) self._compute_carrier_id() except Exception as e: raise AccessError(_("Access error message: {}".format(e))) else: raise AccessError(_("Not possible to establish a client."))