def send_api(certificate, password, list_rps): cert_pfx = base64.decodestring(certificate) certificado = Certificado(cert_pfx, password) vals = list_rps[0] vals = _convert_values(vals) recebe_lote = processar_nota( certificado, rps=vals, ambiente=vals['ambiente'], client_id=vals['client_id'], secret_id=vals['client_secret'], username=vals['emissor']['inscricao_municipal'], password=vals['user_password']) retorno = recebe_lote['object'] if "codigoVerificacao" in dir(retorno): return { 'code': 201, 'entity': { 'protocolo_nfe': retorno.codigoVerificacao, 'numero_nfe': retorno.numeroSerie, }, 'xml': recebe_lote['received_xml'], } else: return { 'code': 400, 'api_code': recebe_lote['status_code'], 'message': retorno.message, }
def action_send_eletronic_invoice(self): super(InvoiceEletronic, self).action_send_eletronic_invoice() if self.model != '012' or self.state in ('done', 'cancel'): return self.state = 'error' xml_to_send = base64.decodestring(self.xml_to_send) recebe_lote = processar_nota(None, xml=xml_to_send, ambiente=self.ambiente, client_id=self.company_id.client_id, secret_id=self.company_id.client_secret, username=self.company_id.inscr_mun, password=self.company_id.user_password) retorno = recebe_lote['object'] if "codigoVerificacao" in dir(retorno): self.state = 'done' self.codigo_retorno = '100' self.mensagem_retorno = \ 'Nota Fiscal emitida com sucesso' self.verify_code = retorno.codigoVerificacao self.numero_nfse = retorno.numeroSerie else: self.codigo_retorno = recebe_lote['status_code'] self.mensagem_retorno = retorno.message self.env['invoice.eletronic.event'].create({ 'code': self.codigo_retorno, 'name': self.mensagem_retorno, 'invoice_eletronic_id': self.id, }) self._create_attachment('nfse-envio', self, recebe_lote['sent_xml'].decode('utf-8')) self._create_attachment('nfse-ret', self, recebe_lote['received_xml'].decode('utf-8'))