def _serializar_emitente(self, emitente, tag_raiz='emit', retorna_string=True): raiz = etree.Element(tag_raiz) # Dados do emitente etree.SubElement(raiz, 'CNPJ').text = so_numeros(emitente.cnpj) etree.SubElement(raiz, 'xNome').text = emitente.razao_social etree.SubElement(raiz, 'xFant').text = emitente.nome_fantasia etree.SubElement(raiz, 'IE').text = emitente.inscricao_estadual # Endereço endereco = etree.SubElement(raiz, 'enderEmit') etree.SubElement(endereco, 'xLgr').text = emitente.endereco_logradouro etree.SubElement(endereco, 'nro').text = emitente.endereco_numero etree.SubElement(endereco, 'xCpl').text = emitente.endereco_complemento etree.SubElement(endereco, 'xBairro').text = emitente.endereco_bairro etree.SubElement(endereco, 'cMun').text = emitente.endereco_municipio etree.SubElement(endereco, 'xMun').text = obter_municipio_por_codigo( emitente.endereco_municipio, emitente.endereco_uf, ) etree.SubElement(endereco, 'UF').text = emitente.endereco_uf etree.SubElement(endereco, 'CEP').text = so_numeros(emitente.endereco_cep) etree.SubElement(endereco, 'cPais').text = emitente.endereco_pais etree.SubElement(endereco, 'xPais').text = obter_pais_por_codigo( emitente.endereco_pais) etree.SubElement(endereco, 'fone').text = emitente.endereco_telefone if retorna_string: return etree.tostring(raiz, pretty_print=True) else: return raiz
def _serializar_emitente(self, emitente, tag_raiz="emit", retorna_string=True): raiz = etree.Element(tag_raiz) # Dados do emitente etree.SubElement(raiz, "CNPJ").text = so_numeros(emitente.cnpj) etree.SubElement(raiz, "xNome").text = emitente.razao_social etree.SubElement(raiz, "xFant").text = emitente.nome_fantasia etree.SubElement(raiz, "IE").text = emitente.inscricao_estadual # Endereço endereco = etree.SubElement(raiz, "enderEmit") etree.SubElement(endereco, "xLgr").text = emitente.endereco_logradouro etree.SubElement(endereco, "nro").text = emitente.endereco_numero etree.SubElement(endereco, "xCpl").text = emitente.endereco_complemento etree.SubElement(endereco, "xBairro").text = emitente.endereco_bairro etree.SubElement(endereco, "cMun").text = emitente.endereco_municipio etree.SubElement(endereco, "xMun").text = obter_municipio_por_codigo( emitente.endereco_municipio, emitente.endereco_uf ) etree.SubElement(endereco, "UF").text = emitente.endereco_uf etree.SubElement(endereco, "CEP").text = so_numeros(emitente.endereco_cep) etree.SubElement(endereco, "cPais").text = emitente.endereco_pais etree.SubElement(endereco, "xPais").text = obter_pais_por_codigo(emitente.endereco_pais) etree.SubElement(endereco, "fone").text = emitente.endereco_telefone if retorna_string: return etree.tostring(raiz, pretty_print=True) else: return raiz
def _serializar_emitente(self, emitente, retorna_string=True): cod_municipio, municipio = obter_municipio_e_codigo( dict(codigo=emitente.endereco_cod_municipio, municipio=emitente.endereco_municipio), emitente.endereco_uf) serial_emitente_list = [ '\nC', emitente.razao_social, emitente.nome_fantasia, emitente.inscricao_estadual, emitente.inscricao_estadual_subst_tributaria, emitente.inscricao_municipal, emitente.cnae_fiscal, emitente.codigo_de_regime_tributario, '\nC02', emitente.cnpj, '\nC05', emitente.endereco_logradouro, emitente.endereco_numero, emitente.endereco_complemento, emitente.endereco_bairro, cod_municipio, municipio, obter_uf_por_codigo(emitente.endereco_uf), emitente.endereco_cep.replace('-', ''), emitente.endereco_pais, obter_pais_por_codigo(emitente.endereco_pais), emitente.endereco_telefone, ] if retorna_string: return '|'.join(map(str, serial_emitente_list)) return serial_emitente_list
def _serializar_cliente(self, cliente, retorna_string=True): cod_municipio, municipio = obter_municipio_e_codigo( dict(codigo=cliente.endereco_cod_municipio, municipio=cliente.endereco_municipio), cliente.endereco_uf) serial_data = [ '\nE', cliente.razao_social, '2', # indIEDest cliente.inscricao_estadual, cliente.inscricao_suframa, '', # IM cliente.email, '\nE02' if cliente.tipo_documento == 'CNPJ' else '\nE03', cliente.numero_documento, '\nE05', cliente.endereco_logradouro, cliente.endereco_numero, cliente.endereco_complemento, cliente.endereco_bairro, cod_municipio, municipio, obter_uf_por_codigo(cliente.endereco_uf), cliente.endereco_cep.replace('-', ''), cliente.endereco_pais, obter_pais_por_codigo(cliente.endereco_pais), cliente.endereco_telefone ] if retorna_string: return '|'.join(map(str, serial_data)) return serial_data
def _serializar_cliente(self, cliente, tag_raiz='dest', retorna_string=True): raiz = etree.Element(tag_raiz) # Dados do cliente etree.SubElement(raiz, cliente.tipo_documento).text = so_numeros(cliente.numero_documento) etree.SubElement(raiz, 'xNome').text = cliente.razao_social etree.SubElement(raiz, 'IE').text = cliente.inscricao_estadual # Endereço endereco = etree.SubElement(raiz, 'enderDest') etree.SubElement(endereco, 'xLgr').text = cliente.endereco_logradouro etree.SubElement(endereco, 'nro').text = cliente.endereco_numero etree.SubElement(endereco, 'xCpl').text = cliente.endereco_complemento etree.SubElement(endereco, 'xBairro').text = cliente.endereco_bairro etree.SubElement(endereco, 'cMun').text = cliente.endereco_municipio etree.SubElement(endereco, 'xMun').text = obter_municipio_por_codigo( cliente.endereco_municipio, cliente.endereco_uf, ) etree.SubElement(endereco, 'UF').text = cliente.endereco_uf etree.SubElement(endereco, 'CEP').text = so_numeros(cliente.endereco_cep) etree.SubElement(endereco, 'cPais').text = cliente.endereco_pais etree.SubElement(endereco, 'xPais').text = obter_pais_por_codigo(cliente.endereco_pais) etree.SubElement(endereco, 'fone').text = cliente.endereco_telefone if retorna_string: return etree.tostring(raiz, pretty_print=True) else: return raiz
def _serializar_cliente(self, cliente, retorna_string=True): cod_municipio, municipio = obter_municipio_e_codigo( dict(codigo=cliente.endereco_cod_municipio, municipio=cliente.endereco_municipio), cliente.endereco_uf ) serial_data = [ '\nE', cliente.razao_social, '2', # indIEDest cliente.inscricao_estadual, cliente.inscricao_suframa, '', # IM cliente.email, '\nE02' if cliente.tipo_documento == 'CNPJ' else '\nE03', cliente.numero_documento, '\nE05', cliente.endereco_logradouro, cliente.endereco_numero, cliente.endereco_complemento, cliente.endereco_bairro, cod_municipio, municipio, obter_uf_por_codigo(cliente.endereco_uf), cliente.endereco_cep.replace('-',''), cliente.endereco_pais, obter_pais_por_codigo(cliente.endereco_pais), cliente.endereco_telefone ] if retorna_string: return '|'.join(map(str,serial_data)) return serial_data
def _serializar_emitente(self, emitente, retorna_string=True): cod_municipio, municipio = obter_municipio_e_codigo( dict(codigo=emitente.endereco_cod_municipio, municipio=emitente.endereco_municipio), emitente.endereco_uf ) serial_emitente_list = [ "\nC", emitente.razao_social, emitente.nome_fantasia, emitente.inscricao_estadual, emitente.inscricao_estadual_subst_tributaria, emitente.inscricao_municipal, emitente.cnae_fiscal, emitente.codigo_de_regime_tributario, "\nC02", emitente.cnpj, "\nC05", emitente.endereco_logradouro, emitente.endereco_numero, emitente.endereco_complemento, emitente.endereco_bairro, cod_municipio, municipio, obter_uf_por_codigo(emitente.endereco_uf), emitente.endereco_cep.replace("-", ""), emitente.endereco_pais, obter_pais_por_codigo(emitente.endereco_pais), emitente.endereco_telefone, ] if retorna_string: return "|".join(map(str, serial_emitente_list)) return serial_emitente_list
def _serializar_cliente(self, cliente, retorna_string=True): cod_municipio, municipio = obter_municipio_e_codigo( dict(codigo=cliente.endereco_cod_municipio, municipio=cliente.endereco_municipio), cliente.endereco_uf ) serial_data = [ "\nE", cliente.razao_social, "2", # indIEDest cliente.inscricao_estadual, cliente.inscricao_suframa, "", # IM cliente.email, "\nE02" if cliente.tipo_documento == "CNPJ" else "\nE03", cliente.numero_documento, "\nE05", cliente.endereco_logradouro, cliente.endereco_numero, cliente.endereco_complemento, cliente.endereco_bairro, cod_municipio, municipio, obter_uf_por_codigo(cliente.endereco_uf), cliente.endereco_cep.replace("-", ""), cliente.endereco_pais, obter_pais_por_codigo(cliente.endereco_pais), cliente.endereco_telefone, ] if retorna_string: return "|".join(map(str, serial_data)) return serial_data
def _serializar_emitente(self, emitente, tag_raiz='emit', retorna_string=True): raiz = etree.Element(tag_raiz) # Dados do emitente etree.SubElement(raiz, 'CNPJ').text = so_numeros(emitente.cnpj) etree.SubElement(raiz, 'xNome').text = emitente.razao_social etree.SubElement(raiz, 'xFant').text = emitente.nome_fantasia etree.SubElement(raiz, 'IE').text = emitente.inscricao_estadual # Endereço endereco = etree.SubElement(raiz, 'enderEmit') etree.SubElement(endereco, 'xLgr').text = emitente.endereco_logradouro etree.SubElement(endereco, 'nro').text = emitente.endereco_numero etree.SubElement(endereco, 'xCpl').text = emitente.endereco_complemento etree.SubElement(endereco, 'xBairro').text = emitente.endereco_bairro etree.SubElement(endereco, 'cMun').text = obter_codigo_por_municipio( emitente.endereco_municipio, emitente.endereco_uf) etree.SubElement(endereco, 'xMun').text = emitente.endereco_municipio etree.SubElement(endereco, 'UF').text = emitente.endereco_uf etree.SubElement(endereco, 'CEP').text = so_numeros(emitente.endereco_cep) etree.SubElement(endereco, 'cPais').text = emitente.endereco_pais etree.SubElement(endereco, 'xPais').text = obter_pais_por_codigo(emitente.endereco_pais) etree.SubElement(endereco, 'fone').text = emitente.endereco_telefone if retorna_string: return etree.tostring(raiz, pretty_print=True) else: return raiz
def _serializar_cliente(self, cliente, tag_raiz='dest', retorna_string=True): raiz = etree.Element(tag_raiz) # Dados do cliente etree.SubElement(raiz, cliente.tipo_documento).text = so_numeros( cliente.numero_documento) etree.SubElement(raiz, 'xNome').text = cliente.razao_social etree.SubElement(raiz, 'IE').text = cliente.inscricao_estadual # Endereço endereco = etree.SubElement(raiz, 'enderDest') etree.SubElement(endereco, 'xLgr').text = cliente.endereco_logradouro etree.SubElement(endereco, 'nro').text = cliente.endereco_numero etree.SubElement(endereco, 'xCpl').text = cliente.endereco_complemento etree.SubElement(endereco, 'xBairro').text = cliente.endereco_bairro etree.SubElement(endereco, 'cMun').text = obter_codigo_por_municipio( cliente.endereco_municipio, cliente.endereco_uf) etree.SubElement(endereco, 'xMun').text = cliente.endereco_municipio etree.SubElement(endereco, 'UF').text = cliente.endereco_uf etree.SubElement(endereco, 'CEP').text = so_numeros(cliente.endereco_cep) etree.SubElement(endereco, 'cPais').text = cliente.endereco_pais etree.SubElement(endereco, 'xPais').text = obter_pais_por_codigo( cliente.endereco_pais) etree.SubElement(endereco, 'fone').text = cliente.endereco_telefone if retorna_string: return etree.tostring(raiz, pretty_print=True) else: return raiz
def _serializar_emitente(self, emitente, tag_raiz='emit', retorna_string=True): raiz = etree.Element(tag_raiz) # Dados do emitente etree.SubElement(raiz, 'CNPJ').text = so_numeros(emitente.cnpj) etree.SubElement(raiz, 'xNome').text = emitente.razao_social etree.SubElement(raiz, 'xFant').text = emitente.nome_fantasia # Endereço endereco = etree.SubElement(raiz, 'enderEmit') etree.SubElement(endereco, 'xLgr').text = emitente.endereco_logradouro etree.SubElement(endereco, 'nro').text = emitente.endereco_numero if emitente.endereco_complemento: etree.SubElement(endereco, 'xCpl').text = emitente.endereco_complemento etree.SubElement(endereco, 'xBairro').text = emitente.endereco_bairro etree.SubElement(endereco, 'cMun').text = obter_codigo_por_municipio( emitente.endereco_municipio, emitente.endereco_uf) etree.SubElement(endereco, 'xMun').text = emitente.endereco_municipio etree.SubElement(endereco, 'UF').text = emitente.endereco_uf etree.SubElement(endereco, 'CEP').text = so_numeros(emitente.endereco_cep) etree.SubElement(endereco, 'cPais').text = emitente.endereco_pais etree.SubElement(endereco, 'xPais').text = obter_pais_por_codigo( emitente.endereco_pais) if emitente.endereco_telefone: etree.SubElement(endereco, 'fone').text = emitente.endereco_telefone etree.SubElement(raiz, 'IE').text = emitente.inscricao_estadual # Apenas NF-e if emitente.inscricao_estadual_subst_tributaria: etree.SubElement( raiz, 'IEST').text = emitente.inscricao_estadual_subst_tributaria # Inscricao Municipal if emitente.inscricao_municipal: etree.SubElement(raiz, 'IM').text = emitente.inscricao_municipal # Campo Opcional. Pode ser informado quando a Inscrição Municipal (id:C19) for informada. if emitente.cnae_fiscal: etree.SubElement(raiz, 'CNAE').text = emitente.cnae_fiscal etree.SubElement(raiz, 'CRT').text = emitente.codigo_de_regime_tributario if retorna_string: return etree.tostring(raiz, encoding="unicode", pretty_print=True) else: return raiz
def _serializar_cliente(self, cliente, modelo, tag_raiz="dest", retorna_string=True): raiz = etree.Element(tag_raiz) # Dados do cliente (distinatario) etree.SubElement(raiz, cliente.tipo_documento).text = so_numeros(cliente.numero_documento) if not self._so_cpf: if cliente.razao_social: etree.SubElement(raiz, "xNome").text = cliente.razao_social endereco = etree.SubElement(raiz, "enderDest") etree.SubElement(endereco, "xLgr").text = cliente.endereco_logradouro etree.SubElement(endereco, "nro").text = cliente.endereco_numero if cliente.endereco_complemento: etree.SubElement(endereco, "xCpl").text = cliente.endereco_complemento etree.SubElement(endereco, "xBairro").text = cliente.endereco_bairro etree.SubElement(endereco, "cMun").text = obter_codigo_por_municipio( cliente.endereco_municipio, cliente.endereco_uf ) etree.SubElement(endereco, "xMun").text = cliente.endereco_municipio etree.SubElement(endereco, "UF").text = cliente.endereco_uf etree.SubElement(endereco, "CEP").text = so_numeros(cliente.endereco_cep) etree.SubElement(endereco, "cPais").text = cliente.endereco_pais etree.SubElement(endereco, "xPais").text = obter_pais_por_codigo(cliente.endereco_pais) if cliente.endereco_telefone: etree.SubElement(endereco, "fone").text = cliente.endereco_telefone # Indicador da IE do destinatário: 1 – Contribuinte ICMSpagamento à vista; 2 – Contribuinte isento de inscrição; 9 – Não Contribuinte if cliente.indicador_ie == 9: # 9 – Não Contribuinte etree.SubElement(raiz, "indIEDest").text = "9" elif (cliente.indicador_ie == 2 or cliente.isento_icms) or cliente.inscricao_estadual.upper() == "ISENTO": etree.SubElement(raiz, "indIEDest").text = "2" else: # Indicador da IE do destinatário: 1 – Contribuinte ICMSpagamento à vista; etree.SubElement(raiz, "indIEDest").text = str(cliente.indicador_ie) etree.SubElement(raiz, "IE").text = cliente.inscricao_estadual # Suframa if cliente.inscricao_suframa: etree.SubElement(raiz, "ISUF").text = cliente.inscricao_suframa # Inscrição Municipal do tomador do serviço if cliente.inscricao_municipal: etree.SubElement(raiz, "IM").text = cliente.inscricao_municipal # E-mail if cliente.email: etree.SubElement(raiz, "email").text = cliente.email if retorna_string: return etree.tostring(raiz, encoding="unicode", pretty_print=True) else: return raiz
def _serializar_cliente(self, cliente, modelo, tag_raiz='dest', retorna_string=True): raiz = etree.Element(tag_raiz) # Dados do cliente (distinatario) etree.SubElement(raiz, cliente.tipo_documento).text = so_numeros(cliente.numero_documento) if cliente.razao_social: etree.SubElement(raiz, 'xNome').text = cliente.razao_social if not self._so_cpf: endereco = etree.SubElement(raiz, 'enderDest') etree.SubElement(endereco, 'xLgr').text = cliente.endereco_logradouro etree.SubElement(endereco, 'nro').text = cliente.endereco_numero if cliente.endereco_complemento: etree.SubElement(endereco, 'xCpl').text = cliente.endereco_complemento etree.SubElement(endereco, 'xBairro').text = cliente.endereco_bairro etree.SubElement(endereco, 'cMun').text = obter_codigo_por_municipio( cliente.endereco_municipio, cliente.endereco_uf) etree.SubElement(endereco, 'xMun').text = cliente.endereco_municipio etree.SubElement(endereco, 'UF').text = cliente.endereco_uf etree.SubElement(endereco, 'CEP').text = so_numeros(cliente.endereco_cep) etree.SubElement(endereco, 'cPais').text = cliente.endereco_pais etree.SubElement(endereco, 'xPais').text = obter_pais_por_codigo(cliente.endereco_pais) if cliente.endereco_telefone: etree.SubElement(endereco, 'fone').text = cliente.endereco_telefone #Indicador da IE do destinatário: 1 – Contribuinte ICMSpagamento à vista; 2 – Contribuinte isento de inscrição; 9 – Não Contribuinte if cliente.isento_icms or cliente.inscricao_estadual.upper() == 'ISENTO': etree.SubElement(raiz, 'indIEDest').text = str(2) etree.SubElement(raiz, 'IE').text = 'ISENTO' elif cliente.indicador_ie == 9: # 9 – Não Contribuinte etree.SubElement(raiz, 'indIEDest').text = str(9) else: # Indicador da IE do destinatário: 1 – Contribuinte ICMSpagamento à vista; etree.SubElement(raiz, 'indIEDest').text = cliente.indicador_ie etree.SubElement(raiz, 'IE').text = cliente.inscricao_estadual # Suframa if cliente.inscricao_suframa: etree.SubElement(raiz, 'ISUF').text = cliente.inscricao_suframa # Inscrição Municipal do tomador do serviço if cliente.inscricao_municipal: etree.SubElement(raiz, 'IM').text = cliente.inscricao_municipal # E-mail if cliente.email: etree.SubElement(raiz, 'email').text = cliente.email if retorna_string: return etree.tostring(raiz, encoding="unicode", pretty_print=True) else: return raiz
def _serializar_cliente(self, cliente, modelo, tag_raiz='dest', retorna_string=True): raiz = etree.Element(tag_raiz) # Dados do cliente (distinatario) etree.SubElement(raiz, cliente.tipo_documento).text = so_numeros(cliente.numero_documento) if not self._so_cpf: if cliente.razao_social: etree.SubElement(raiz, 'xNome').text = cliente.razao_social endereco = etree.SubElement(raiz, 'enderDest') etree.SubElement(endereco, 'xLgr').text = cliente.endereco_logradouro etree.SubElement(endereco, 'nro').text = cliente.endereco_numero if cliente.endereco_complemento: etree.SubElement(endereco, 'xCpl').text = cliente.endereco_complemento etree.SubElement(endereco, 'xBairro').text = cliente.endereco_bairro etree.SubElement(endereco, 'cMun').text = obter_codigo_por_municipio( cliente.endereco_municipio, cliente.endereco_uf) etree.SubElement(endereco, 'xMun').text = cliente.endereco_municipio etree.SubElement(endereco, 'UF').text = cliente.endereco_uf etree.SubElement(endereco, 'CEP').text = so_numeros(cliente.endereco_cep) etree.SubElement(endereco, 'cPais').text = cliente.endereco_pais etree.SubElement(endereco, 'xPais').text = obter_pais_por_codigo(cliente.endereco_pais) if cliente.endereco_telefone: etree.SubElement(endereco, 'fone').text = cliente.endereco_telefone #Indicador da IE do destinatário: 1 – Contribuinte ICMSpagamento à vista; 2 – Contribuinte isento de inscrição; 9 – Não Contribuinte if cliente.indicador_ie == 9: # 9 – Não Contribuinte etree.SubElement(raiz, 'indIEDest').text = '9' elif (cliente.indicador_ie == 2 or cliente.isento_icms) or cliente.inscricao_estadual.upper() == 'ISENTO': etree.SubElement(raiz, 'indIEDest').text = '2' else: # Indicador da IE do destinatário: 1 – Contribuinte ICMSpagamento à vista; etree.SubElement(raiz, 'indIEDest').text = str(cliente.indicador_ie) etree.SubElement(raiz, 'IE').text = cliente.inscricao_estadual # Suframa if cliente.inscricao_suframa: etree.SubElement(raiz, 'ISUF').text = cliente.inscricao_suframa # Inscrição Municipal do tomador do serviço if cliente.inscricao_municipal: etree.SubElement(raiz, 'IM').text = cliente.inscricao_municipal # E-mail if cliente.email: etree.SubElement(raiz, 'email').text = cliente.email if retorna_string: return etree.tostring(raiz, encoding="unicode", pretty_print=True) else: return raiz
def _serializar_emitente(self, emitente, tag_raiz="emit", retorna_string=True): raiz = etree.Element(tag_raiz) # Dados do emitente etree.SubElement(raiz, "CNPJ").text = so_numeros(emitente.cnpj) etree.SubElement(raiz, "xNome").text = emitente.razao_social etree.SubElement(raiz, "xFant").text = emitente.nome_fantasia # Endereço endereco = etree.SubElement(raiz, "enderEmit") etree.SubElement(endereco, "xLgr").text = emitente.endereco_logradouro etree.SubElement(endereco, "nro").text = emitente.endereco_numero if emitente.endereco_complemento: etree.SubElement(endereco, "xCpl").text = emitente.endereco_complemento etree.SubElement(endereco, "xBairro").text = emitente.endereco_bairro etree.SubElement(endereco, "cMun").text = obter_codigo_por_municipio( emitente.endereco_municipio, emitente.endereco_uf ) etree.SubElement(endereco, "xMun").text = emitente.endereco_municipio etree.SubElement(endereco, "UF").text = emitente.endereco_uf etree.SubElement(endereco, "CEP").text = so_numeros(emitente.endereco_cep) etree.SubElement(endereco, "cPais").text = emitente.endereco_pais etree.SubElement(endereco, "xPais").text = obter_pais_por_codigo(emitente.endereco_pais) if emitente.endereco_telefone: etree.SubElement(endereco, "fone").text = emitente.endereco_telefone etree.SubElement(raiz, "IE").text = emitente.inscricao_estadual # Apenas NF-e if emitente.inscricao_estadual_subst_tributaria: etree.SubElement(raiz, "IEST").text = emitente.inscricao_estadual_subst_tributaria # Inscricao Municipal if emitente.inscricao_municipal: etree.SubElement(raiz, "IM").text = emitente.inscricao_municipal # Campo Opcional. Pode ser informado quando a Inscrição Municipal (id:C19) for informada. if emitente.cnae_fiscal: etree.SubElement(raiz, "CNAE").text = emitente.cnae_fiscal etree.SubElement(raiz, "CRT").text = emitente.codigo_de_regime_tributario if retorna_string: return etree.tostring(raiz, encoding="unicode", pretty_print=True) else: return raiz
def _serializar_emitente(self, emitente, tag_raiz='emit', retorna_string=True): raiz = etree.Element(tag_raiz) # Dados do emitente etree.SubElement(raiz, 'CNPJ').text = so_numeros(emitente.cnpj) etree.SubElement(raiz, 'xNome').text = emitente.razao_social etree.SubElement(raiz, 'xFant').text = emitente.nome_fantasia # Endereço endereco = etree.SubElement(raiz, 'enderEmit') etree.SubElement(endereco, 'xLgr').text = emitente.endereco_logradouro etree.SubElement(endereco, 'nro').text = emitente.endereco_numero if emitente.endereco_complemento: etree.SubElement(endereco, 'xCpl').text = emitente.endereco_complemento etree.SubElement(endereco, 'xBairro').text = emitente.endereco_bairro etree.SubElement(endereco, 'cMun').text = obter_codigo_por_municipio( emitente.endereco_municipio, emitente.endereco_uf) etree.SubElement(endereco, 'xMun').text = emitente.endereco_municipio etree.SubElement(endereco, 'UF').text = emitente.endereco_uf etree.SubElement(endereco, 'CEP').text = so_numeros(emitente.endereco_cep) etree.SubElement(endereco, 'cPais').text = emitente.endereco_pais etree.SubElement(endereco, 'xPais').text = obter_pais_por_codigo(emitente.endereco_pais) if emitente.endereco_telefone: etree.SubElement(endereco, 'fone').text = emitente.endereco_telefone etree.SubElement(raiz, 'IE').text = emitente.inscricao_estadual # Apenas NF-e if emitente.inscricao_estadual_subst_tributaria: etree.SubElement(raiz, 'IEST').text = emitente.inscricao_estadual_subst_tributaria # Inscricao Municipal if emitente.inscricao_municipal: etree.SubElement(raiz, 'IM').text = emitente.inscricao_municipal # Campo Opcional. Pode ser informado quando a Inscrição Municipal (id:C19) for informada. if emitente.cnae_fiscal: etree.SubElement(raiz, 'CNAE').text = emitente.cnae_fiscal etree.SubElement(raiz, 'CRT').text = emitente.codigo_de_regime_tributario if retorna_string: return etree.tostring(raiz, encoding="unicode", pretty_print=True) else: return raiz
def test_obter_pais_por_codigo_brasil(self): self.assertEqual(obter_pais_por_codigo("1058"), "Brasil")
def _serializar_cliente(self, cliente, modelo, tag_raiz='dest', retorna_string=True): raiz = etree.Element(tag_raiz) # Dados do cliente (distinatario) etree.SubElement(raiz, '%s_dest' % (cliente.tipo_documento)).text = so_numeros( cliente.numero_documento) if not self._so_cpf: if cliente.razao_social: etree.SubElement(raiz, 'xNome_dest').text = cliente.razao_social if any([cliente.endereco_logradouro, cliente.endereco_numero, cliente.endereco_bairro, cliente.endereco_municipio, cliente.endereco_uf, cliente.endereco_cep]): endereco = etree.SubElement(raiz, 'enderDest') if cliente.endereco_logradouro: etree.SubElement( endereco, 'xLgr_dest').text = cliente.endereco_logradouro if cliente.endereco_numero: etree.SubElement(endereco, 'nro_dest').text = cliente.endereco_numero if cliente.endereco_complemento: etree.SubElement(endereco, 'xCpl').text = cliente.endereco_complemento if cliente.endereco_bairro: etree.SubElement( endereco, 'xBairro_dest').text = cliente.endereco_bairro if cliente.endereco_municipio and cliente.endereco_uf: etree.SubElement( endereco, 'xMun_dest').text = cliente.endereco_municipio etree.SubElement(endereco, 'UF_dest').text = cliente.endereco_uf etree.SubElement(endereco, 'cMun_dest').text = obter_codigo_por_municipio( cliente.endereco_municipio, cliente.endereco_uf) if cliente.endereco_cep: etree.SubElement(endereco, 'CEP_dest').text = so_numeros( cliente.endereco_cep) etree.SubElement(endereco, 'cPais_dest').text = cliente.endereco_pais etree.SubElement(endereco, 'xPais_dest').text = obter_pais_por_codigo( cliente.endereco_pais) if cliente.endereco_telefone: etree.SubElement(endereco, 'fone_dest').text = so_numeros( cliente.endereco_telefone) # Indicador da IE do destinatário: 1 – Contribuinte ICMSpagamento à vista; # 2 – Contribuinte isento de inscrição; 9 – Não Contribuinte if cliente.indicador_ie == 9: # 9 – Não Contribuinte etree.SubElement(raiz, 'indIEDest').text = '9' elif (cliente.indicador_ie == 2 or cliente.isento_icms) or cliente.inscricao_estadual.upper() == 'ISENTO': etree.SubElement(raiz, 'indIEDest').text = '2' else: # Indicador da IE do destinatário: 1 – Contribuinte ICMSpagamento à vista; etree.SubElement(raiz, 'indIEDest').text = str(cliente.indicador_ie) # E-mail if cliente.email: etree.SubElement(raiz, 'Email_dest').text = cliente.email if retorna_string: return etree.tostring(raiz, encoding="unicode", pretty_print=True) else: return raiz
def test_obter_pais_por_codigo_paisesbaixos(self): self.assertEqual(obter_pais_por_codigo("5738"), None)