示例#1
0
    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
示例#2
0
    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
示例#3
0
    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
示例#4
0
    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
示例#5
0
    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
示例#6
0
    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
示例#7
0
    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
示例#8
0
    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
示例#9
0
    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
示例#10
0
    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
示例#11
0
    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
示例#12
0
    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
示例#13
0
    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
示例#14
0
    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
示例#15
0
    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
示例#16
0
    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
示例#17
0
 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
示例#19
0
 def test_obter_pais_por_codigo_paisesbaixos(self):
     self.assertEqual(obter_pais_por_codigo("5738"), None)