def get_ibpt(self): for fiscal_classification in self: company = (fiscal_classification.env.user.company_id or fiscal_classification.company_id) config = DeOlhoNoImposto(company.ipbt_token, punctuation_rm(company.cnpj_cpf), company.state_id.code) result = get_ibpt_product( config, punctuation_rm(fiscal_classification.code or ''), ) vals = { 'fiscal_classification_id': fiscal_classification.id, 'origin': 'IBPT-WS', 'state_id': company.state_id.id, 'state_taxes': result.estadual, 'federal_taxes_national': result.nacional, 'federal_taxes_import': result.importado, 'company_id': company.id, } tax_estimate = fiscal_classification.env['l10n_br_tax.estimate'] tax_estimate.create(vals) return True
def _nfe_references(self, inv_related): # # Documentos referenciadas # if inv_related.document_type == 'nf': self.nfref.refNF.cUF.valor = (inv_related.state_id and inv_related.state_id.ibge_code or '', ) self.nfref.refNF.AAMM.valor = datetime.strptime( inv_related.date, '%Y-%m-%d').strftime('%y%m') or '' self.nfref.refNF.CNPJ.valor = punctuation_rm(inv_related.cnpj_cpf) self.nfref.refNF.mod.valor = (inv_related.fiscal_document_id and inv_related.fiscal_document_id.code or '') self.nfref.refNF.serie.valor = inv_related.serie or '' self.nfref.refNF.nNF.valor = inv_related.internal_number or '' elif inv_related.document_type == 'nfrural': self.nfref.refNFP.cUF.valor = (inv_related.state_id and inv_related.state_id.ibge_code or '', ) self.nfref.refNFP.AAMM.valor = datetime.strptime( inv_related.date, '%Y-%m-%d').strftime('%y%m') or '' self.nfref.refNFP.IE.valor = punctuation_rm(inv_related.inscr_est) self.nfref.refNFP.mod.valor = (inv_related.fiscal_document_id and inv_related.fiscal_document_id.code or '') self.nfref.refNFP.serie.valor = inv_related.serie or '' self.nfref.refNFP.nNF.valor = inv_related.internal_number or '' if inv_related.cpfcnpj_type == 'cnpj': self.nfref.refNFP.CNPJ.valor = punctuation_rm( inv_related.cnpj_cpf) else: self.nfref.refNFP.CPF.valor = punctuation_rm( inv_related.cnpj_cpf) elif inv_related.document_type == 'nfe': self.nfref.refNFe.valor = inv_related.access_key or '' elif inv_related.document_type == 'cte': self.nfref.refCTe.valor = inv_related.access_key or '' elif inv_related.document_type == 'cf': self.nfref.refECF.mod.valor = (inv_related.fiscal_document_id and inv_related.fiscal_document_id.code or '') self.nfref.refECF.nECF.valor = inv_related.internal_number self.nfref.refECF.nCOO.valor = inv_related.serie
def _receiver(self, invoice, company, nfe_environment): super(NFe310, self)._receiver(invoice, company, nfe_environment) if invoice.partner_id.country_id.id != \ invoice.company_id.country_id.id: self.nfe.infNFe.dest.idEstrangeiro.valor = punctuation_rm( invoice.partner_id.cnpj_cpf)
def _prepare_header(self): """ :param: :return: """ return { 'controle_banco': int(self.order.mode.bank_id.bank_bic), 'arquivo_data_de_geracao': self.data_hoje(), 'arquivo_hora_de_geracao': self.hora_agora(), # TODO: Número sequencial de arquivo 'arquivo_sequencia': int(self.get_file_numeration()), 'cedente_inscricao_tipo': self.inscricao_tipo, 'cedente_inscricao_numero': int(punctuation_rm( self.order.company_id.cnpj_cpf)), 'cedente_agencia': int( self.order.mode.bank_id.bra_number), 'cedente_conta': int(self.order.mode.bank_id.acc_number), 'cedente_conta_dv': (self.order.mode.bank_id.acc_number_dig), 'cedente_convenio': self.order.mode.boleto_convenio, 'cedente_agencia_dv': self.order.mode.bank_id.bra_number_dig, 'cedente_nome': self.order.company_id.legal_name, # DV ag e conta 'cedente_dv_ag_cc': (self.order.mode.bank_id.bra_acc_dig), 'arquivo_codigo': 1, # Remessa/Retorno 'servico_operacao': u'R', 'nome_banco': unicode(self.order.mode.bank_id.bank_name), }
def _prepare_header(self): """ :param: :return: """ return { 'arquivo_data_de_geracao': self.data_hoje_pag_for(), 'arquivo_hora_de_geracao': self.hora_agora(), # TODO: Número sequencial de arquivo 'numero_remessa': int(self.get_file_numeration()), 'cedente_inscricao_tipo': self.inscricao_tipo, 'cnpj_cpf_base': int(punctuation_rm(self.order.company_id.cnpj_cpf)[0:8]), 'cnpj_cpf_filial': int(punctuation_rm(self.order.company_id.cnpj_cpf)[9:12]), 'sufixo_cnpj': int(punctuation_rm(self.order.company_id.cnpj_cpf)[12:14]), 'cedente_agencia': int(self.order.mode.bank_id.bra_number), 'cedente_conta': int(self.order.mode.bank_id.acc_number), 'cedente_agencia_conta_dv': self.order.mode.bank_id.bra_number_dig, 'nome_empresa_pagadora': self.order.company_id.legal_name, 'cedente_codigo_agencia_digito': self.order.mode.bank_id.bra_number_dig, 'arquivo_codigo': 1, # Remessa/Retorno 'servico_operacao': u'R', 'reservado_empresa': u'BRADESCO PAG FOR', # Sequencial crescente e nunca pode ser repetido 'numero_lista_debito': int(self.get_file_numeration()), # TODO: Sequencial crescente de 1 a 1 no arquivo. O primeiro header # será sempre 000001 'sequencial': 1 }
def _in_out_adress(self, invoice): # # Endereço de Entrega ou Retirada # if invoice.partner_shipping_id: if invoice.partner_id.id != invoice.partner_shipping_id.id: if self.nfe.infNFe.ide.tpNF.valor == 0: self.nfe.infNFe.retirada.CNPJ.valor = punctuation_rm( invoice.partner_shipping_id.cnpj_cpf) self.nfe.infNFe.retirada.xLgr.valor = ( invoice.partner_shipping_id.street or '') self.nfe.infNFe.retirada.nro.valor = ( invoice.partner_shipping_id.number or '') self.nfe.infNFe.retirada.xCpl.valor = ( invoice.partner_shipping_id.street2 or '') self.nfe.infNFe.retirada.xBairro.valor = ( invoice.partner_shipping_id.district or 'Sem Bairro') self.nfe.infNFe.retirada.cMun.valor = '%s%s' % ( invoice.partner_shipping_id.state_id.ibge_code, invoice.partner_shipping_id.l10n_br_city_id.ibge_code) self.nfe.infNFe.retirada.xMun.valor = ( invoice.partner_shipping_id.l10n_br_city_id.name or '') self.nfe.infNFe.retirada.UF.valor = ( invoice.partner_shipping_id.state_id.code or '') else: self.nfe.infNFe.entrega.CNPJ.valor = punctuation_rm( invoice.partner_shipping_id.cnpj_cpf) self.nfe.infNFe.entrega.xLgr.valor = ( invoice.partner_shipping_id.street or '') self.nfe.infNFe.entrega.nro.valor = ( invoice.partner_shipping_id.number or '') self.nfe.infNFe.entrega.xCpl.valor = ( invoice.partner_shipping_id.street2 or '') self.nfe.infNFe.entrega.xBairro.valor = ( invoice.partner_shipping_id.district or 'Sem Bairro') self.nfe.infNFe.entrega.cMun.valor = '%s%s' % ( invoice.partner_shipping_id.state_id.ibge_code, invoice.partner_shipping_id.l10n_br_city_id.ibge_code) self.nfe.infNFe.entrega.xMun.valor = ( invoice.partner_shipping_id.l10n_br_city_id.name or '') self.nfe.infNFe.entrega.UF.valor = ( invoice.partner_shipping_id.state_id.code or '')
def _emmiter(self, invoice, company): """Emitente""" self.nfe.infNFe.emit.CNPJ.valor = punctuation_rm( invoice.company_id.partner_id.cnpj_cpf) self.nfe.infNFe.emit.xNome.valor = ( invoice.company_id.partner_id.legal_name[:60]) self.nfe.infNFe.emit.xFant.valor = invoice.company_id.partner_id.name self.nfe.infNFe.emit.enderEmit.xLgr.valor = company.street or '' self.nfe.infNFe.emit.enderEmit.nro.valor = company.number or '' self.nfe.infNFe.emit.enderEmit.xCpl.valor = company.street2 or '' self.nfe.infNFe.emit.enderEmit.xBairro.valor = (company.district or 'Sem Bairro') self.nfe.infNFe.emit.enderEmit.cMun.valor = '%s%s' % ( company.state_id.ibge_code, company.l10n_br_city_id.ibge_code) self.nfe.infNFe.emit.enderEmit.xMun.valor = ( company.l10n_br_city_id.name or '') self.nfe.infNFe.emit.enderEmit.UF.valor = company.state_id.code or '' self.nfe.infNFe.emit.enderEmit.CEP.valor = punctuation_rm(company.zip or '') self.nfe.infNFe.emit.enderEmit.cPais.valor = ( company.country_id.bc_code[1:]) self.nfe.infNFe.emit.enderEmit.xPais.valor = company.country_id.name self.nfe.infNFe.emit.enderEmit.fone.valor = punctuation_rm( str(company.phone or '').replace(' ', '')) self.nfe.infNFe.emit.IE.valor = punctuation_rm( invoice.company_id.partner_id.inscr_est) self.nfe.infNFe.emit.IEST.valor = '' self.nfe.infNFe.emit.IM.valor = punctuation_rm( invoice.company_id.partner_id.inscr_mun or '') self.nfe.infNFe.emit.CRT.valor = invoice.company_id.fiscal_type or '' if invoice.company_id.partner_id.inscr_mun: self.nfe.infNFe.emit.CNAE.valor = punctuation_rm( invoice.company_id.cnae_main_id.code or '')
def create_fci(fci): arq = arquivos.ArquivoDigital() cpf_cnpj_numbers = punctuation_rm(fci.company_id.partner_id.cnpj_cpf) inscr_est_numbers = punctuation_rm(fci.company_id.partner_id.inscr_est) zip_numbers = punctuation_rm(fci.company_id.partner_id.zip) input0000 = ('0000|' + cpf_cnpj_numbers + '|' + fci.company_id.partner_id.name + '|' + '1.0') input0010 = ('0010|' + cpf_cnpj_numbers + '|' + fci.company_id.partner_id.legal_name + '|' + inscr_est_numbers + '|' + fci.company_id.partner_id.street + ', ' + fci.company_id.partner_id.number + '|' + zip_numbers + '|' + fci.company_id.partner_id.l10n_br_city_id.name + '|' + fci.company_id.partner_id.state_id.code) for line in fci.fci_line: if not line.valor_parcela_importada: raise Warning( ('Error!'), ('O campo Valor parcela importada nao pode ser zero')) else: line.ncm_id_numbers = punctuation_rm(line.fiscal_classification_id) input5020 = ( '5020|' + line.name + '|' + str(line.ncm_id_numbers) + '|' + line.default_code + '|' + str(line.ean13) + '|' + (line.product_uom.name or '99') + '|' + str("{0:.2f}".format( round(line.list_price))).replace('.', ',') + '|' + str("{0:.2f}".format(round(line.valor_parcela_importada, 2))).replace('.', ',') + '|' + str("{0:.2f}".format(round(line.conteudo_importacao, 2))).replace('.', ',')) arq.read_registro(input5020) arq.read_registro(input0000) arq.read_registro(input0010) return base64.b64encode(arq.getstring().encode('utf-8'))
def _carrier_data(self, invoice): """Dados da Transportadora e veiculo""" self.nfe.infNFe.transp.modFrete.valor = ( invoice.incoterm and invoice.incoterm.freight_responsibility or '9') if invoice.carrier_id: if invoice.carrier_id.partner_id.is_company: self.nfe.infNFe.transp.transporta.CNPJ.valor = \ punctuation_rm( invoice.carrier_id.partner_id.cnpj_cpf or '') else: self.nfe.infNFe.transp.transporta.CPF.valor = \ punctuation_rm( invoice.carrier_id.partner_id.cnpj_cpf or '') self.nfe.infNFe.transp.transporta.xNome.valor = ( invoice.carrier_id.partner_id.legal_name[:60] or '') self.nfe.infNFe.transp.transporta.IE.valor = punctuation_rm( invoice.carrier_id.partner_id.inscr_est) self.nfe.infNFe.transp.transporta.xEnder.valor = ( invoice.carrier_id.partner_id.street or '') self.nfe.infNFe.transp.transporta.xMun.valor = ( invoice.carrier_id.partner_id.l10n_br_city_id.name or '') self.nfe.infNFe.transp.transporta.UF.valor = ( invoice.carrier_id.partner_id.state_id.code or '') if invoice.vehicle_id: self.nfe.infNFe.transp.veicTransp.placa.valor = ( invoice.vehicle_id.plate or '') self.nfe.infNFe.transp.veicTransp.UF.valor = ( invoice.vehicle_id.plate.state_id.code or '') self.nfe.infNFe.transp.veicTransp.RNTC.valor = ( invoice.vehicle_id.rntc_code or '')
def mount_path_nfe(company, document='nfe'): db_name = company._cr.dbname cnpj = punctuation_rm(company.cnpj_cpf) filestore = config.filestore(db_name) nfe_path = '/'.join([filestore, 'PySPED', document, cnpj]) if not os.path.exists(nfe_path): try: os.makedirs(nfe_path) except OSError: raise RedirectWarning( _(u'Erro!'), _(u"""Verifique as permissões de escrita e o caminho da pasta""")) return nfe_path
def remessa(self, order): result = '' for line in order.line_ids: if line.partner_id.is_company: tipo_inscricao = '2' else: tipo_inscricao = '1' endereco01 = strip_accents(line.partner_id.street) # endereco02 = str(line.partner_id.street2.replace('º', '')) endereco_cliente = endereco01 vals = { 'identificador_tributo': 'G', 'nome_cliente': str(line.partner_id.name), 'endereco_cliente': endereco_cliente, 'cep_cliente': str(punctuation_rm(line.partner_id.zip)), 'uf_cliente': str(line.partner_id.state_id.code), 'autoriza_pagamento': 'S', 'tipo_inscricao': tipo_inscricao, 'uf_favorecida': str(line.partner_id.state_id.code), 'telefone_cliente': str(punctuation_rm(line.partner_id.phone)), 'numero_inscricao': str(punctuation_rm(line.partner_id.cnpj_cpf)), 'valor_do_principal': punctuation_rm(str(line.amount_currency)), 'data_pagamento_tributo': punctuation_rm(line.date), 'data_vencimento_tributo': punctuation_rm(line.date), 'codigo_de_receita': str(punctuation_rm(line.order_id.mode.gnre_type.code)), 'num_doc_origem': str(punctuation_rm(line.ml_inv_ref.internal_number)), } result += "%s\n" % self._remessa(**vals) return result
def _nfe_identification(self, invoice, company, nfe_environment): super(NFe310, self)._nfe_identification(invoice, company, nfe_environment) self.nfe.infNFe.ide.idDest.valor = ( invoice.fiscal_position.cfop_id.id_dest or '') self.nfe.infNFe.ide.indFinal.valor = invoice.ind_final or '' self.nfe.infNFe.ide.indPres.valor = invoice.ind_pres or '' self.nfe.infNFe.ide.dhEmi.valor = datetime.strptime( invoice.date_hour_invoice, '%Y-%m-%d %H:%M:%S') self.nfe.infNFe.ide.dhSaiEnt.valor = datetime.strptime( invoice.date_in_out, '%Y-%m-%d %H:%M:%S') self.aut_xml = self._get_AutXML() self.aut_xml.CNPJ.valor = punctuation_rm( invoice.company_id.accountant_cnpj_cpf) self.nfe.infNFe.autXML.append(self.aut_xml)
def _details(self, invoice, invoice_line, index): """Detalhe""" self.det.nItem.valor = index self.det.prod.cProd.valor = invoice_line.product_id.code or '' self.det.prod.cEAN.valor = invoice_line.product_id.ean13 or '' self.det.prod.xProd.valor = invoice_line.product_id.name[:120] or '' self.det.prod.NCM.valor = punctuation_rm( invoice_line.fiscal_classification_id.code or '')[:8] self.det.prod.EXTIPI.valor = '' self.det.prod.nFCI.valor = invoice_line.fci or '' self.det.prod.CFOP.valor = invoice_line.cfop_id.code self.det.prod.uCom.valor = invoice_line.uos_id.name or '' self.det.prod.qCom.valor = str("%.4f" % invoice_line.quantity) self.det.prod.vUnCom.valor = str("%.7f" % invoice_line.price_unit) self.det.prod.vProd.valor = str("%.2f" % invoice_line.price_gross) self.det.prod.cEANTrib.valor = invoice_line.product_id.ean13 or '' self.det.prod.uTrib.valor = self.det.prod.uCom.valor self.det.prod.qTrib.valor = self.det.prod.qCom.valor self.det.prod.vUnTrib.valor = self.det.prod.vUnCom.valor self.det.prod.vFrete.valor = str("%.2f" % invoice_line.freight_value) self.det.prod.vSeg.valor = str("%.2f" % invoice_line.insurance_value) self.det.prod.vDesc.valor = str("%.2f" % invoice_line.discount_value) self.det.prod.vOutro.valor = str("%.2f" % invoice_line.other_costs_value) self.det.infAdProd.valor = invoice_line.fiscal_comment or '' # # Produto entra no total da NF-e # self.det.prod.indTot.valor = 1 if invoice_line.product_type == 'product': # ICMS if invoice_line.icms_cst_id.code > 100: self.det.imposto.ICMS.CSOSN.valor = ( invoice_line.icms_cst_id.code) self.det.imposto.ICMS.pCredSN.valor = str( "%.2f" % invoice_line.icms_percent) self.det.imposto.ICMS.vCredICMSSN.valor = str( "%.2f" % invoice_line.icms_value) self.det.imposto.ICMS.orig.valor = invoice_line.icms_origin or '' self.det.imposto.ICMS.CST.valor = invoice_line.icms_cst_id.code self.det.imposto.ICMS.modBC.valor = invoice_line.icms_base_type self.det.imposto.ICMS.vBC.valor = str("%.2f" % invoice_line.icms_base) self.det.imposto.ICMS.pRedBC.valor = str( "%.2f" % invoice_line.icms_percent_reduction) self.det.imposto.ICMS.pICMS.valor = str("%.2f" % invoice_line.icms_percent) self.det.imposto.ICMS.vICMS.valor = str("%.2f" % invoice_line.icms_value) # ICMS ST self.det.imposto.ICMS.modBCST.valor = ( invoice_line.icms_st_base_type) self.det.imposto.ICMS.pMVAST.valor = str("%.2f" % invoice_line.icms_st_mva) self.det.imposto.ICMS.pRedBCST.valor = str( "%.2f" % invoice_line.icms_st_percent_reduction) self.det.imposto.ICMS.vBCST.valor = str("%.2f" % invoice_line.icms_st_base) self.det.imposto.ICMS.pICMSST.valor = str( "%.2f" % invoice_line.icms_st_percent) self.det.imposto.ICMS.vICMSST.valor = str( "%.2f" % invoice_line.icms_st_value) # IPI self.det.imposto.IPI.CST.valor = invoice_line.ipi_cst_id.code if invoice_line.ipi_type == 'percent' or '': self.det.imposto.IPI.vBC.valor = str("%.2f" % invoice_line.ipi_base) self.det.imposto.IPI.pIPI.valor = str("%.2f" % invoice_line.ipi_percent) if invoice_line.ipi_type == 'quantity': pesol = 0 if invoice_line.product_id: pesol = invoice_line.product_id.weight_net self.det.imposto.IPI.qUnid.valor = str( "%.2f" % invoice_line.quantity * pesol) self.det.imposto.IPI.vUnid.valor = str( "%.2f" % invoice_line.ipi_percent) self.det.imposto.IPI.vIPI.valor = str("%.2f" % invoice_line.ipi_value) else: # ISSQN self.det.imposto.ISSQN.vBC.valor = str("%.2f" % invoice_line.issqn_base) self.det.imposto.ISSQN.vAliq.valor = str( "%.2f" % invoice_line.issqn_percent) self.det.imposto.ISSQN.vISSQN.valor = str("%.2f" % invoice_line.issqn_value) self.det.imposto.ISSQN.cMunFG.valor = ( '%s%s') % (invoice.partner_id.state_id.ibge_code, invoice.partner_id.l10n_br_city_id.ibge_code) self.det.imposto.ISSQN.cListServ.valor = punctuation_rm( invoice_line.service_type_id.code or '') self.det.imposto.ISSQN.cSitTrib.valor = invoice_line.issqn_type # PIS self.det.imposto.PIS.CST.valor = invoice_line.pis_cst_id.code self.det.imposto.PIS.vBC.valor = str("%.2f" % invoice_line.pis_base) self.det.imposto.PIS.pPIS.valor = str("%.2f" % invoice_line.pis_percent) self.det.imposto.PIS.vPIS.valor = str("%.2f" % invoice_line.pis_value) # PISST self.det.imposto.PISST.vBC.valor = str("%.2f" % invoice_line.pis_st_base) self.det.imposto.PISST.pPIS.valor = str("%.2f" % invoice_line.pis_st_percent) self.det.imposto.PISST.qBCProd.valor = '' self.det.imposto.PISST.vAliqProd.valor = '' self.det.imposto.PISST.vPIS.valor = str("%.2f" % invoice_line.pis_st_value) # COFINS self.det.imposto.COFINS.CST.valor = invoice_line.cofins_cst_id.code self.det.imposto.COFINS.vBC.valor = str("%.2f" % invoice_line.cofins_base) self.det.imposto.COFINS.pCOFINS.valor = str( "%.2f" % invoice_line.cofins_percent) self.det.imposto.COFINS.vCOFINS.valor = str("%.2f" % invoice_line.cofins_value) # COFINSST self.det.imposto.COFINSST.vBC.valor = str("%.2f" % invoice_line.cofins_st_base) self.det.imposto.COFINSST.pCOFINS.valor = str( "%.2f" % invoice_line.cofins_st_percent) self.det.imposto.COFINSST.qBCProd.valor = '' self.det.imposto.COFINSST.vAliqProd.valor = '' self.det.imposto.COFINSST.vCOFINS.valor = str( "%.2f" % invoice_line.cofins_st_value) # II self.det.imposto.II.vBC.valor = str("%.2f" % invoice_line.ii_base) self.det.imposto.II.vDespAdu.valor = str( "%.2f" % invoice_line.ii_customhouse_charges) self.det.imposto.II.vII.valor = str("%.2f" % invoice_line.ii_value) self.det.imposto.II.vIOF.valor = str("%.2f" % invoice_line.ii_iof) self.det.imposto.vTotTrib.valor = str("%.2f" % invoice_line.total_taxes)
def _receiver(self, invoice, company, nfe_environment): """Destinatário""" partner_bc_code = '' address_invoice_state_code = '' address_invoice_city = '' partner_cep = '' if invoice.partner_id.country_id.bc_code: partner_bc_code = invoice.partner_id.country_id.bc_code[1:] if invoice.partner_id.country_id.id != \ invoice.company_id.country_id.id: address_invoice_state_code = 'EX' address_invoice_city = 'Exterior' address_invoice_city_code = '9999999' else: address_invoice_state_code = invoice.partner_id.state_id.code address_invoice_city = (invoice.partner_id.l10n_br_city_id.name or '') address_invoice_city_code = ( '%s%s') % (invoice.partner_id.state_id.ibge_code, invoice.partner_id.l10n_br_city_id.ibge_code) partner_cep = punctuation_rm(invoice.partner_id.zip) # Se o ambiente for de teste deve ser # escrito na razão do destinatário if nfe_environment == '2': self.nfe.infNFe.dest.xNome.valor = ( 'NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL') else: self.nfe.infNFe.dest.xNome.valor = ( invoice.partner_id.legal_name[:60] or '') if invoice.partner_id.is_company: self.nfe.infNFe.dest.CNPJ.valor = punctuation_rm( invoice.partner_id.cnpj_cpf) self.nfe.infNFe.dest.IE.valor = punctuation_rm( invoice.partner_id.inscr_est) else: self.nfe.infNFe.dest.CPF.valor = punctuation_rm( invoice.partner_id.cnpj_cpf) self.nfe.infNFe.dest.enderDest.xLgr.valor = (invoice.partner_id.street or '') self.nfe.infNFe.dest.enderDest.nro.valor = (invoice.partner_id.number or '') self.nfe.infNFe.dest.enderDest.xCpl.valor = (invoice.partner_id.street2 or '') self.nfe.infNFe.dest.enderDest.xBairro.valor = ( invoice.partner_id.district or 'Sem Bairro') self.nfe.infNFe.dest.enderDest.cMun.valor = address_invoice_city_code self.nfe.infNFe.dest.enderDest.xMun.valor = address_invoice_city self.nfe.infNFe.dest.enderDest.UF.valor = address_invoice_state_code self.nfe.infNFe.dest.enderDest.CEP.valor = partner_cep self.nfe.infNFe.dest.enderDest.cPais.valor = partner_bc_code self.nfe.infNFe.dest.enderDest.xPais.valor = ( invoice.partner_id.country_id.name or '') self.nfe.infNFe.dest.enderDest.fone.valor = punctuation_rm( invoice.partner_id.phone or '').replace(' ', '') self.nfe.infNFe.dest.email.valor = invoice.partner_id.email or ''