示例#1
0
 def do_receipt_deliver(self):
     envio = self._read_xml('etree')
     if envio.find('SetDTE') is None or envio.find(
             'SetDTE/Caratula') is None:
         return True
     company_id = self.env['res.company'].search([
         ('vat', '=',
          self.format_rut(envio.find('SetDTE/Caratula/RutReceptor').text))
     ],
                                                 limit=1)
     IdRespuesta = self.env.ref('l10n_cl_fe.response_sequence').next_by_id()
     vals = self._get_datos_empresa(company_id)
     vals.update({
         "Recepciones": [{
             "IdRespuesta": IdRespuesta,
             "RutResponde": company_id.partner_id.rut(),
             "NmbContacto": self.env.user.partner_id.name,
             "FonoContacto": self.env.user.partner_id.phone,
             "MailContacto": self.env.user.partner_id.email,
             "xml_nombre": self._get_xml_name(),
             "xml_envio": self._get_xml(),
         }]
     })
     respuesta = fe.leer_xml(vals)
     if self.dte_id:
         for r in respuesta:
             att = self._create_attachment(r['respuesta_xml'],
                                           r['nombre_xml'], self.dte_id.id,
                                           'mail.message.dte')
             dte_email_id = self.dte_id.company_id.dte_email_id or\
                 self.env.user.company_id.dte_email_id
             email_to = self.sudo().dte_id.mail_id.email_from
             if envio is not None:
                 RUT = envio.find('SetDTE/Caratula/RutEmisor').text
                 partner_id = self.env['res.partner'].search([
                     ('active', '=', True), ('parent_id', '=', False),
                     ('vat', '=', self.format_rut(RUT))
                 ])
                 if partner_id.dte_email:
                     email_to = partner_id.dte_email
             values = {
                 'res_id':
                 self.dte_id.id,
                 'email_from':
                 dte_email_id.name_get()[0][1],
                 'email_to':
                 email_to,
                 'auto_delete':
                 False,
                 'model':
                 "mail.message.dte",
                 'body':
                 'XML de Respuesta Envío, Estado: %s , Glosa: %s ' %
                 (r['EstadoRecepEnv'], r['RecepEnvGlosa']),
                 'subject':
                 'XML de Respuesta Envío',
                 'attachment_ids': [[6, 0, att.ids]],
             }
             send_mail = self.env['mail.mail'].sudo().create(values)
             send_mail.send()
示例#2
0
 def do_receipt_deliver(self):
     envio = self._read_xml("etree")
     if envio.find("SetDTE") is None or envio.find("SetDTE/Caratula") is None:
         return True
     company_id = self.env["res.company"].search(
         [("vat", "=", self.format_rut(envio.find("SetDTE/Caratula/RutReceptor").text))], limit=1
     )
     IdRespuesta = self.env.ref("l10n_cl_fe.response_sequence").next_by_id()
     vals = self._get_datos_empresa(company_id)
     vals.update(
         {
             "Recepciones": [
                 {
                     "IdRespuesta": IdRespuesta,
                     "RutResponde": company_id.partner_id.rut(),
                     "NmbContacto": self.env.user.partner_id.name,
                     "FonoContacto": self.env.user.partner_id.phone,
                     "MailContacto": self.env.user.partner_id.email,
                     "xml_nombre": self._get_xml_name(),
                     "xml_envio": self._get_xml(),
                 }
             ]
         }
     )
     respuesta = fe.leer_xml(vals)
     if self.dte_id:
         for r in respuesta:
             att = self._create_attachment(r["respuesta_xml"], r["nombre_xml"], self.dte_id.id, "mail.message.dte")
             dte_email_id = self.dte_id.company_id.dte_email_id or self.env.user.company_id.dte_email_id
             email_to = self.sudo().dte_id.mail_id.email_from
             if envio is not None:
                 RUT = envio.find("SetDTE/Caratula/RutEmisor").text
                 partner_id = self.env["res.partner"].search(
                     [("active", "=", True), ("parent_id", "=", False), ("vat", "=", self.format_rut(RUT))]
                 )
                 if partner_id.dte_email:
                     email_to = partner_id.dte_email
             values = {
                 "res_id": self.dte_id.id,
                 "email_from": dte_email_id.name_get()[0][1],
                 "email_to": email_to,
                 "auto_delete": False,
                 "model": "mail.message.dte",
                 "body": "XML de Respuesta Envío, Estado: %s , Glosa: %s "
                 % (r["EstadoRecepEnv"], r["RecepEnvGlosa"]),
                 "subject": "XML de Respuesta Envío",
                 "attachment_ids": [[6, 0, att.ids]],
             }
             send_mail = self.env["mail.mail"].sudo().create(values)
             send_mail.send()