def __init__(self): super(Deducao, self).__init__() self.DeducaoPor = TagCaracter(nome='DeducaoPor', tamanho=[1, 20], raiz='//Deducao') self.TipoDeducao = TagCaracter(nome='TipoDeducao', tamanho=[1, 255], raiz='//Deducao') self.CPFCNPJReferencia = TagCaracter(nome='CPFCNPJReferencia', tamanho=[11, 14], raiz='//Deducao', obrigatorio=False) self.NumeroNFReferencia = TagInteiro(nome='NumeroNFReferencia', tamanho=[1, 12, 1], raiz='//Deducao', obrigatorio=False) self.ValorTotalReferencia = TagDecimal(nome='ValorTotalReferencia', tamanho=[1, 15, 1], decimais=[0, 2, 2], raiz='//Deducao', obrigatorio=False) self.PercentualDeduzir = TagDecimal(nome='PercentualDeduzir', tamanho=[1, 5, 1], decimais=[0, 2, 2], raiz='//Deducao') self.ValorDeduzir = TagDecimal(nome='ValorDeduzir', tamanho=[1, 15, 1], decimais=[0, 2, 2], raiz='//Deducao')
def __init__(self): super(_Cabecalho, self).__init__() self.CodCidade = TagInteiro(nome='CodCidade' , tamanho=[ 1, 10, 1], raiz='//nfse:RetornoConsultaLote/Cabecalho') self.Sucesso = TagBoolean(nome='Sucesso' , raiz='//nfse:RetornoConsultaLote/Cabecalho') self.NumeroLote = TagInteiro(nome='NumeroLote' , tamanho=[ 1, 12, 1], raiz='//nfse:RetornoConsultaLote/Cabecalho') self.CPFCNPJRemetente = TagCaracter(nome='CPFCNPJRemetente' , tamanho=[11, 14] , raiz='//nfse:RetornoConsultaLote/Cabecalho') self.RazaoSocialRemetente = TagCaracter(nome='RazaoSocialRemetente', tamanho=[ 1, 120] , raiz='//nfse:RetornoConsultaLote/Cabecalho') self.DataEnvioLote = TagDataHora(nome='DataEnvioLote' , raiz='//nfse:RetornoConsultaLote/Cabecalho') self.QtdNotasProcessadas = TagInteiro(nome='QtdNotasProcessadas' , tamanho=[ 1, 10, 1], raiz='//nfse:RetornoConsultaLote/Cabecalho') self.TempoProcessamento = TagInteiro(nome='TempoProcessamento' , tamanho=[ 1, 15, 1], raiz='//nfse:RetornoConsultaLote/Cabecalho') self.ValorTotalServicos = TagDecimal(nome='ValorTotalServicos' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2], raiz='//nfse:RetornoConsultaLote/Cabecalho') self.ValorTotalDeducoes = TagDecimal(nome='ValorTotalDeducoes' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2], raiz='//nfse:RetornoConsultaLote/Cabecalho') self.Versao = TagInteiro(nome='Versao' , tamanho=[ 1, 3, 1], raiz='//nfse:RetornoConsultaLote/Cabecalho', valor=1)
def __init__(self): super(ConsultaNFSe, self).__init__() self.InscricaoPrestador = TagCaracter(nome='InscricaoPrestador' , tamanho=[6, 11] , raiz='//ConsultaNFSe') self.NumeroNFe = TagInteiro(nome='NumeroNFe' , tamanho=[1, 12, 1], raiz='//ConsultaNFSe') self.CodigoVerificacao = TagCaracter(nome='CodigoVerificacao' , tamanho=[1, 255] , raiz='//ConsultaNFSe') self.SerieRPS = TagCaracter(nome='SerieRPS' , tamanho=[2, 2] , raiz='//ConsultaNFSe') self.NumeroRPS = TagInteiro(nome='NumeroRPS' , tamanho=[1, 12, 1], raiz='//ConsultaNFSe') self.DataEmissaoRPS = TagDataHora(nome='DataEmissaoRPS' , raiz='//ConsultaNFSe') self.RazaoSocialPrestador = TagCaracter(nome='RazaoSocialPrestador', tamanho=[1, 120] , raiz='//ConsultaNFSe') self.TipoRecolhimento = TagCaracter(nome='TipoRecolhimento' , tamanho=[1, 1] , raiz='//ConsultaNFSe') self.ValorDeduzir = TagDecimal(nome='ValorDeduzir' , tamanho=[1, 15, 1], decimais=[0, 2, 0], raiz='//ConsultaNFSe', obrigatorio=False) self.ValorTotal = TagDecimal(nome='ValorTotal' , tamanho=[1, 15, 1], decimais=[0, 2, 0], raiz='//ConsultaNFSe') self.Aliquota = TagDecimal(nome='Aliquota' , tamanho=[1, 6, 1], decimais=[0, 4, 2], raiz='//ConsultaNFSe')
def __init__(self): super(CabecMsg, self).__init__() self.versao = TagDecimal(nome='cabecMsg', codigo='', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.02', raiz='//cabecMsg') self.versaoDados = TagDecimal(nome='versaoDados', codigo='A01', raiz='//cabecMsg', tamanho=[1, 4]) self.caminho_esquema = os.path.join(DIRNAME, 'schema/', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'cabecMsg_v1.02.xsd'
def __init__(self): super(EnviCTe, self).__init__() self.versao = TagDecimal(nome='enviCTe', codigo='AP02', propriedade='versao', namespace=NAMESPACE_CTE, valor='1.04', raiz='/') self.idLote = TagInteiro(nome='idLote' , codigo='AP03', tamanho=[1, 15, 1], raiz='//enviCTe') self.CTe = [] self.caminho_esquema = os.path.join(DIRNAME, 'schema/', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'enviCte_v1.04.xsd'
def __init__(self): super(ConsSitNFe, self).__init__() self.versao = TagDecimal(nome='consSitNFe', codigo='EP01', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.07', raiz='/') self.tpAmb = TagInteiro(nome='tpAmb', codigo='EP03', tamanho=[1, 1, 1], raiz='//consSitNFe', valor=2) self.xServ = TagCaracter(nome='xServ', codigo='EP04', tamanho=[9, 9], raiz='//consSitNFe', valor='CONSULTAR') self.chNFe = TagCaracter(nome='chNFe', codigo='EP05', tamanho=[44, 44], raiz='//consSitNFe') self.caminho_esquema = os.path.join(DIRNAME, 'schema', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'consSitNFe_v1.07.xsd'
def __init__(self): super(DownloadNFe, self).__init__() self.versao = TagDecimal(nome='downloadNFe', codigo='JP01', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.00', raiz='/') self.tpAmb = TagInteiro(nome='tpAmb', codigo='JP03', tamanho=[1, 1, 1], raiz='//downloadNFe', valor=2) self.xServ = TagCaracter(nome='xServ', codigo='JP04', tamanho=[12, 12], raiz='//downloadNFe', valor='DOWNLOAD NFE') self.CNPJ = TagCaracter(nome='CNPJ', codigo='JP05', tamanho=[14, 14], raiz='//downloadNFe') self.chNFe = [] self.caminho_esquema = os.path.join(DIRNAME, 'schema/', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'downloadNFe_v1.00.xsd'
def __init__(self): super(RetDownloadNFe, self).__init__() self.versao = TagDecimal(nome='retDownloadNFe', codigo='IR01', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.00', raiz='/') self.tpAmb = TagInteiro(nome='tpAmb', codigo='IR03', tamanho=[1, 1, 1], raiz='//retDownloadNFe') self.verAplic = TagCaracter(nome='verAplic', codigo='IR04', tamanho=[1, 20], raiz='//retDownloadNFe') self.cStat = TagCaracter(nome='cStat', codigo='IR05', tamanho=[1, 3], raiz='//retDownloadNFe') self.xMotivo = TagCaracter(nome='xMotivo', codigo='IR06', tamanho=[1, 255], raiz='//retDownloadNFe') self.dhResp = TagDataHora(nome='dhResp', codigo='IR07', raiz='//retDownloadNFe') self.retNFe = [] self.caminho_esquema = os.path.join(DIRNAME, 'schema', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'retDownloadNFe_v1.00.xsd'
def __init__(self): super(DistDFeInt, self).__init__() self.versao = TagDecimal(nome='distDFeInt', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.01', raiz='/') self.tpAmb = TagInteiro(nome='tpAmb', tamanho=[1, 1, 1], raiz='//distDFeInt', valor=2) self.cUFAutor = TagInteiro(nome='cUFAutor', tamanho=[2, 2, 2], raiz='//distDFeInt') self.CNPJ = TagCaracter(nome='CNPJ', tamanho=[14, 14], raiz='//distDFeInt', obrigatorio=False) self.CPF = TagCaracter(nome='CPF', tamanho=[11, 11], raiz='//distDFeInt', obrigatorio=False) self.distNSU = DistNSU() self.consNSU = ConsNSU() self.consChNFe = ConsChNFe() self.caminho_esquema = os.path.join(DIRNAME, 'schema', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'distDFeInt_v1.01.xsd'
def __init__(self): super(ConsStatServCTe, self).__init__() self.versao = TagDecimal(nome='consStatServCte', codigo='FP01', propriedade='versao', namespace=NAMESPACE_CTE, valor='1.04', raiz='/') self.tpAmb = TagInteiro(nome='tpAmb', codigo='FP03', tamanho=[1, 1, 1], raiz='//consStatServCte', valor=2) self.cUF = TagInteiro(nome='cUF', codigo='FP04', tamanho=[2, 2, 2], raiz='//consStatServCte', valor=35) self.xServ = TagCaracter(nome='xServ', codigo='FP05', tamanho=[6, 6], raiz='//consStatServCte', valor='STATUS') self.caminho_esquema = os.path.join(DIRNAME, 'schema', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'consStatServCte_v1.04.xsd'
def __init__(self): super(RetEnviNFe, self).__init__() self.versao = TagDecimal(nome='retEnviNFe', codigo='AR02' , propriedade='versao', namespace=NAMESPACE_NFE, valor='2.00', raiz='/') self.dhRecbto = TagDataHora(nome='dhRecbto' , codigo='AR09' , raiz='//retEnviNFe') self.infRec = InfRec() self.caminho_esquema = os.path.join(DIRNAME, 'schema/', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'retEnviNFe_v2.00.xsd'
def __init__(self): super(CancNFe, self).__init__() self.versao = TagDecimal(nome='cancNFe', codigo='CP01', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.07', raiz='/') self.infCanc = InfCancEnviado() self.Signature = Signature() self.caminho_esquema = os.path.join(DIRNAME, 'schema/', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'cancNFe_v1.07.xsd'
def __init__(self): super(RetDistDFeInt, self).__init__() self.versao = TagDecimal(nome='retDistDFeInt', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.00', raiz='/') self.tpAmb = TagInteiro(nome='tpAmb', tamanho=[1, 1, 1], raiz='//retDistDFeInt', valor=2) self.verAplic = TagCaracter(nome='verAplic', tamanho=[1, 20], raiz='//retDistDFeInt') self.cStat = TagCaracter(nome='cStat', tamanho=[3, 3, 3], raiz='//retDistDFeInt') self.xMotivo = TagCaracter(nome='xMotivo', tamanho=[1, 255], raiz='//retDistDFeInt') self.dhResp = TagDataHoraUTC(nome='dhResp', raiz='//retDistDFeInt') self.ultNSU = TagCaracter(nome='ultNSU', tamanho=[1, 15], raiz='//retDistDFeInt', obrigatorio=False) self.maxNSU = TagCaracter(nome='maxNSU', tamanho=[1, 15], raiz='//retDistDFeInt', obrigatorio=False) self.loteDistDFeInt = LoteDistDFeInt() self.caminho_esquema = os.path.join(DIRNAME, 'schema', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'retDistDFeInt_v1.00.xsd' self.chave = ''
def __init__(self): super(RetEnviNFe, self).__init__() self.versao = TagDecimal(nome='retEnviNFe', codigo='AR02', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.10', raiz='/') self.tpAmb = TagInteiro(nome='tpAmb', codigo='AR03', tamanho=[1, 1, 1], raiz='//retEnviNFe') self.verAplic = TagCaracter(nome='verAplic', codigo='AR04', tamanho=[1, 20], raiz='//retEnviNFe') self.cStat = TagCaracter(nome='cStat', codigo='AR05', tamanho=[1, 3], raiz='//retEnviNFe') self.xMotivo = TagCaracter(nome='xMotivo', codigo='AR06', tamanho=[1, 255], raiz='//retEnviNFe') self.cUF = TagCaracter(nome='cUF', codigo='AR06a', tamanho=[2, 2, 2], raiz='//retEnviNFe') self.infRec = InfRec() self.caminho_esquema = os.path.join(DIRNAME, 'schema/', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'retEnviNFe_v1.10.xsd'
def __init__(self): super(_Cabecalho, self).__init__() self.CodCidade = TagInteiro(nome='CodCidade', tamanho=[1, 10, 1], raiz='//nfse:ReqEnvioLoteRPS/Cabecalho') self.CPFCNPJRemetente = TagCaracter( nome='CPFCNPJRemetente', tamanho=[11, 14], raiz='//nfse:ReqEnvioLoteRPS/Cabecalho') self.RazaoSocialRemetente = TagCaracter( nome='RazaoSocialRemetente', tamanho=[1, 120], raiz='//nfse:ReqEnvioLoteRPS/Cabecalho') self.transacao = TagBoolean(nome='transacao', raiz='//nfse:ReqEnvioLoteRPS/Cabecalho', valor=True) self.dtInicio = TagData(nome='dtInicio', raiz='//nfse:ReqEnvioLoteRPS/Cabecalho') self.dtFim = TagData(nome='dtFim', raiz='//nfse:ReqEnvioLoteRPS/Cabecalho') self.QtdRPS = TagInteiro(nome='QtdRPS', tamanho=[1, 15, 1], raiz='//nfse:ReqEnvioLoteRPS/Cabecalho') self.ValorTotalServicos = TagDecimal( nome='ValorTotalServicos', tamanho=[1, 15, 1], decimais=[0, 2, 2], raiz='//nfse:ReqEnvioLoteRPS/Cabecalho') self.ValorTotalDeducoes = TagDecimal( nome='ValorTotalDeducoes', tamanho=[1, 15, 1], decimais=[0, 2, 2], raiz='//nfse:ReqEnvioLoteRPS/Cabecalho') self.Versao = TagInteiro(nome='Versao', tamanho=[1, 3, 1], raiz='//nfse:ReqEnvioLoteRPS/Cabecalho', valor=1) self.MetodoEnvio = TagCaracter(nome='MetodoEnvio', tamanho=[2, 3], raiz='//nfse:ReqEnvioLoteRPS/Cabecalho', valor='WS') self.VersaoComponente = TagCaracter( nome='VersaoComponente', tamanho=[0, 10], raiz='//nfse:ReqEnvioLoteRPS/Cabecalho', obrigatorio=False)
def __init__(self): super(ProtNFe, self).__init__() self.versao = TagDecimal(nome='protNFe', codigo='PR02', propriedade='versao', namespace=NAMESPACE_NFE, valor='2.00', raiz='/')
def __init__(self): super(RetEvento, self).__init__() self.versao = TagDecimal(nome='retEvento', codigo='HR10', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.00', raiz='/') self.infEvento = InfEventoRecebido() self.Signature = Signature()
def __init__(self): super(ProtNFe, self).__init__() self.versao = TagDecimal(nome='protNFe', codigo='PR02', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.10', raiz='/') self.infProt = InfProt() self.Signature = Signature()
def __init__(self): super(DetEvento, self).__init__() self.versao = TagDecimal(nome='detEvento', codigo='HP18', propriedade='versao', valor='1.00', raiz='/') self.descEvento = TagCaracter(nome='descEvento', codigo='HP19', tamanho=[5, 60, 5], raiz='//detEvento')
def __init__(self): super(ProcCancNFe, self).__init__() # # Atenção --- a tag procCancNFe tem que começar com letra minúscula, para # poder validar no XSD. # self.versao = TagDecimal(nome='procCancNFe', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.07', raiz='/') self.cancNFe = CancNFe() self.retCancNFe = RetCancNFe() self.caminho_esquema = os.path.join(DIRNAME, 'schema', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'procCancNFe_v1.07.xsd'
def __init__(self): super(RetConsStatServ, self).__init__() self.versao = TagDecimal(nome='retConsStatServ', codigo='FR01', propriedade='versao', namespace=NAMESPACE_NFE, valor='2.00', raiz='/') self.caminho_esquema = os.path.join(DIRNAME, 'schema', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'retConsStatServ_v2.00.xsd'
def __init__(self): super(ConsReciNFe, self).__init__() self.versao = TagDecimal(nome='consReciNFe', codigo='BP02', propriedade='versao', namespace=NAMESPACE_NFE, valor='2.00', raiz='/') self.caminho_esquema = os.path.join(DIRNAME, 'schema/', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'consReciNFe_v2.00.xsd'
def __init__(self): super(ProcEvento, self).__init__() self.versao = TagDecimal(nome='procEventoNFe', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.00', raiz='/') self.evento = Evento() self.retEvento = RetEvento() self.caminho_esquema = os.path.join(DIRNAME, 'schema', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'procEventoNFe_v1.00.xsd'
def __init__(self): super(ProcCTe, self).__init__() self.versao = TagDecimal(nome='cteProc', propriedade='versao', namespace=NAMESPACE_CTE, valor='1.04', raiz='/') self.CTe = CTe() self.protCTe = ProtCTe() self.caminho_esquema = os.path.join(DIRNAME, 'schema/', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'procCTe_v1.04.xsd'
def __init__(self): super(RetConsCad, self).__init__() self.versao = TagDecimal(nome='retConsCad', codigo='GR01', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.01', raiz='/') self.infCons = InfConsRecebido() self.caminho_esquema = os.path.join(DIRNAME, 'schema', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'retConsCad_v1.01.xsd'
def __init__(self): super(RetCancNFe, self).__init__() self.versao = TagDecimal(nome='retCancNFe', codigo='CR01', propriedade='versao', namespace=NAMESPACE_NFE, valor='2.00', raiz='/') self.infCanc = InfCancRecebido() self.caminho_esquema = os.path.join(DIRNAME, 'schema', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'retCancNFe_v2.00.xsd'
def __init__(self): super(Item, self).__init__() self.DiscriminacaoServico = TagCaracter(nome='DiscriminacaoServico', tamanho=[1, 80], raiz='//Item') self.Quantidade = TagDecimal(nome='Quantidade', tamanho=[1, 10, 1], decimais=[0, 4, 4], raiz='//Item') self.ValorUnitario = TagDecimal(nome='ValorUnitario', tamanho=[1, 15, 1], decimais=[0, 4, 4], raiz='//Item') self.ValorTotal = TagDecimal(nome='ValorTotal', tamanho=[1, 15, 1], decimais=[0, 2, 2], raiz='//Item') self.Tributavel = TagCaracter(nome='Tributavel', tamanho=[1, 1], raiz='//Item', obrigatorio=False)
def __init__(self): super(RetConsSitCTe, self).__init__() self.versao = TagDecimal(nome='retConsSitCTe', codigo='ER01', propriedade='versao', namespace=NAMESPACE_CTE, valor='1.04', raiz='/') self.tpAmb = TagInteiro(nome='tpAmb' , codigo='ER03' , tamanho=[1, 1, 1], raiz='//retConsSitCTe') self.verAplic = TagCaracter(nome='verAplic' , codigo='ER04' , tamanho=[1, 20] , raiz='//retConsSitCTe') self.cStat = TagCaracter(nome='cStat' , codigo='ER05' , tamanho=[1, 3] , raiz='//retConsSitCTe') self.xMotivo = TagCaracter(nome='xMotivo' , codigo='ER06' , tamanho=[1, 2000] , raiz='//retConsSitCTe') self.cUF = TagInteiro(nome='cUF' , codigo='ER07' , tamanho=[2, 2, 2], raiz='//retConsSitCTe') self.protCTe = None self.retCancCTe = None self.caminho_esquema = os.path.join(DIRNAME, 'schema', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'retConsSitCte_v1.04.xsd'
def __init__(self): super(ProcNFe, self).__init__() self.versao = TagDecimal(nome='nfeProc', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.10', raiz='/') self.NFe = NFe() self.protNFe = ProtNFe() self.caminho_esquema = os.path.join(DIRNAME, 'schema/', ESQUEMA_ATUAL + '/') self.arquivo_esquema = 'procNFe_v1.10.xsd'
def __init__(self): super(NFeCabecMsg, self).__init__() self.webservice = '' self.cUF = TagInteiro(nome='cUF', codigo='', raiz='//cabecMsg', tamanho=[2, 2], valor=35) self.versaoDados = TagDecimal(nome='versaoDados', codigo='', raiz='//cabecMsg', tamanho=[1, 4], valor='2.00')
def __init__(self): super(RPS, self).__init__() self.Id = TagCaracter(nome='RPS', propriedade='Id', raiz=u'//', obrigatorio=False) self.Assinatura = TagCaracter(nome='Assinatura' , tamanho=[ 1, 2000] , raiz='//RPS') self.InscricaoMunicipalPrestador = TagCaracter(nome='InscricaoMunicipalPrestador', tamanho=[ 6, 11] , raiz='//RPS') self.RazaoSocialPrestador = TagCaracter(nome='RazaoSocialPrestador' , tamanho=[ 1, 120] , raiz='//RPS') self.TipoRPS = TagCaracter(nome='TipoRPS' , tamanho=[ 1, 20] , raiz='//RPS', valor='RPS') self.SerieRPS = TagCaracter(nome='SerieRPS' , tamanho=[ 2, 2] , raiz='//RPS', valor='NF') self.NumeroRPS = TagInteiro(nome='NumeroRPS' , tamanho=[ 1, 12, 1], raiz='//RPS') self.DataEmissaoRPS = TagDataHora(nome='DataEmissaoRPS' , raiz='//RPS') self.SituacaoRPS = TagCaracter(nome='SituacaoRPS' , tamanho=[ 1, 1] , raiz='//RPS', valor='N') self.SerieRPSSubstituido = TagCaracter(nome='SerieRPSSubstituido' , tamanho=[ 2, 2] , raiz='//RPS', obrigatorio=False) self.NumeroRPSSubstituido = TagInteiro(nome='NumeroRPSSubstituido' , tamanho=[ 1, 12, 1], raiz='//RPS', obrigatorio=False) self.NumeroNFSeSubstituida = TagInteiro(nome='NumeroNFSeSubstituida' , tamanho=[ 1, 12, 1], raiz='//RPS', obrigatorio=False) self.DataEmissaoNFSeSubstituida = TagData(nome='DataEmissaoNFSeSubstituida' , raiz='//RPS', obrigatorio=False) self.SeriePrestacao = TagCaracter(nome='SeriePrestacao' , tamanho=[ 2, 2] , raiz='//RPS') self.InscricaoMunicipalTomador = TagCaracter(nome='InscricaoMunicipalTomador' , tamanho=[ 6, 11] , raiz='//RPS') self.CPFCNPJTomador = TagCaracter(nome='CPFCNPJTomador' , tamanho=[11, 14] , raiz='//RPS') self.RazaoSocialTomador = TagCaracter(nome='RazaoSocialTomador' , tamanho=[ 1, 120] , raiz='//RPS') self.DocTomadorEstrangeiro = TagCaracter(nome='DocTomadorEstrangeiro' , tamanho=[ 0, 20] , raiz='//RPS', obrigatorio=False) self.TipoLogradouroTomador = TagCaracter(nome='TipoLogradouroTomador' , tamanho=[ 0, 10] , raiz='//RPS') self.LogradouroTomador = TagCaracter(nome='LogradouroTomador' , tamanho=[ 0, 50] , raiz='//RPS') self.NumeroEnderecoTomador = TagCaracter(nome='NumeroEnderecoTomador' , tamanho=[ 0, 9] , raiz='//RPS') self.ComplementoEnderecoTomador = TagCaracter(nome='ComplementoEnderecoTomador' , tamanho=[ 0, 30] , raiz='//RPS', obrigatorio=False) self.TipoBairroTomador = TagCaracter(nome='TipoBairroTomador' , tamanho=[ 0, 10] , raiz='//RPS') self.BairroTomador = TagCaracter(nome='BairroTomador' , tamanho=[ 0, 50] , raiz='//RPS') self.CidadeTomador = TagInteiro(nome='CidadeTomador' , tamanho=[ 1, 10, 1], raiz='//RPS') self.CidadeTomadorDescricao = TagCaracter(nome='CidadeTomadorDescricao' , tamanho=[ 0, 50] , raiz='//RPS') self.CEPTomador = TagCaracter(nome='CEPTomador' , tamanho=[ 8, 8] , raiz='//RPS') self.EmailTomador = TagCaracter(nome='EmailTomador' , tamanho=[ 0, 60] , raiz='//RPS') self.CodigoAtividade = TagCaracter(nome='CodigoAtividade' , tamanho=[ 9, 9] , raiz='//RPS') self.AliquotaAtividade = TagDecimal(nome='AliquotaAtividade' , tamanho=[ 1, 5, 1], decimais=[0, 2, 2], raiz='//RPS') self.TipoRecolhimento = TagCaracter(nome='TipoRecolhimento' , tamanho=[ 1, 1] , raiz='//RPS') self.MunicipioPrestacao = TagInteiro(nome='MunicipioPrestacao' , tamanho=[ 1, 10, 1], raiz='//RPS') self.MunicipioPrestacaoDescricao = TagCaracter(nome='MunicipioPrestacaoDescricao', tamanho=[ 0, 30] , raiz='//RPS') self.Operacao = TagCaracter(nome='Operacao' , tamanho=[ 1, 1] , raiz='//RPS') self.Tributacao = TagCaracter(nome='Tributacao' , tamanho=[ 1, 1] , raiz='//RPS') self.ValorPIS = TagDecimal(nome='ValorPIS' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2], raiz='//RPS') self.ValorCOFINS = TagDecimal(nome='ValorCOFINS' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2], raiz='//RPS') self.ValorINSS = TagDecimal(nome='ValorINSS' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2], raiz='//RPS') self.ValorIR = TagDecimal(nome='ValorIR' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2], raiz='//RPS') self.ValorCSLL = TagDecimal(nome='ValorCSLL' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2], raiz='//RPS') self.AliquotaPIS = TagDecimal(nome='AliquotaPIS' , tamanho=[ 1, 5, 1], decimais=[0, 2, 2], raiz='//RPS') self.AliquotaCOFINS = TagDecimal(nome='AliquotaCOFINS' , tamanho=[ 1, 5, 1], decimais=[0, 2, 2], raiz='//RPS') self.AliquotaINSS = TagDecimal(nome='AliquotaINSS' , tamanho=[ 1, 5, 1], decimais=[0, 2, 2], raiz='//RPS') self.AliquotaIR = TagDecimal(nome='AliquotaIR' , tamanho=[ 1, 5, 1], decimais=[0, 2, 2], raiz='//RPS') self.AliquotaCSLL = TagDecimal(nome='AliquotaCSLL' , tamanho=[ 1, 5, 1], decimais=[0, 2, 2], raiz='//RPS') self.DescricaoRPS = TagCaracter(nome='DescricaoRPS' , tamanho=[ 0, 1500] , raiz='//RPS') self.DDDPrestador = TagInteiro(nome='DDDPrestador' , tamanho=[ 0, 3, 0], raiz='//RPS') self.TelefonePrestador = TagInteiro(nome='TelefonePrestador' , tamanho=[ 0, 8, 0], raiz='//RPS') self.DDDTomador = TagInteiro(nome='DDDTomador' , tamanho=[ 0, 3, 0], raiz='//RPS') self.TelefoneTomador = TagInteiro(nome='TelefoneTomador' , tamanho=[ 0, 8, 0], raiz='//RPS') self.MotCancelamento = TagCaracter(nome='MotCancelamento' , tamanho=[ 0, 80] , raiz='//RPS', obrigatorio=False) self.CPFCNPJIntermediario = TagCaracter(nome='CPFCNPJIntermediario' , tamanho=[11, 14] , raiz='//RPS', obrigatorio=False) self.Deducoes = [] self.Itens = [] # # Tags usadas somente para a impressão, não fazem parte do XML a ser gerado # self.ValorTotalRPS = TagDecimal(nome='ValorTotalRPS', tamanho=[ 1, 15, 1], decimais=[0, 2, 2]) self.ValorDeducoes = TagDecimal(nome='ValorDeducoes', tamanho=[ 1, 15, 1], decimais=[0, 2, 2]) self.BaseCalculo = TagDecimal(nome='BaseCalculo' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2]) self.ValorISS = TagDecimal(nome='ValorISS' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2]) self.Informacoes = TagCaracter(nome='Informacoes' , tamanho=[ 0, 5000]) self.Informacoes.valor = 'Este Recibo Provisório de Serviços - RPS não é válido como documento fiscal. O prestador do serviço, no prazo de até 5 (cinco) dias corridos da emissão deste RPS, deverá substituí-lo por uma Nota Fiscal de Serviços Eletrônica - NFS-e.'
class RPS(XMLNFe): def __init__(self): super(RPS, self).__init__() self.Id = TagCaracter(nome='RPS', propriedade='Id', raiz=u'//', obrigatorio=False) self.Assinatura = TagCaracter(nome='Assinatura' , tamanho=[ 1, 2000] , raiz='//RPS') self.InscricaoMunicipalPrestador = TagCaracter(nome='InscricaoMunicipalPrestador', tamanho=[ 6, 11] , raiz='//RPS') self.RazaoSocialPrestador = TagCaracter(nome='RazaoSocialPrestador' , tamanho=[ 1, 120] , raiz='//RPS') self.TipoRPS = TagCaracter(nome='TipoRPS' , tamanho=[ 1, 20] , raiz='//RPS', valor='RPS') self.SerieRPS = TagCaracter(nome='SerieRPS' , tamanho=[ 2, 2] , raiz='//RPS', valor='NF') self.NumeroRPS = TagInteiro(nome='NumeroRPS' , tamanho=[ 1, 12, 1], raiz='//RPS') self.DataEmissaoRPS = TagDataHora(nome='DataEmissaoRPS' , raiz='//RPS') self.SituacaoRPS = TagCaracter(nome='SituacaoRPS' , tamanho=[ 1, 1] , raiz='//RPS', valor='N') self.SerieRPSSubstituido = TagCaracter(nome='SerieRPSSubstituido' , tamanho=[ 2, 2] , raiz='//RPS', obrigatorio=False) self.NumeroRPSSubstituido = TagInteiro(nome='NumeroRPSSubstituido' , tamanho=[ 1, 12, 1], raiz='//RPS', obrigatorio=False) self.NumeroNFSeSubstituida = TagInteiro(nome='NumeroNFSeSubstituida' , tamanho=[ 1, 12, 1], raiz='//RPS', obrigatorio=False) self.DataEmissaoNFSeSubstituida = TagData(nome='DataEmissaoNFSeSubstituida' , raiz='//RPS', obrigatorio=False) self.SeriePrestacao = TagCaracter(nome='SeriePrestacao' , tamanho=[ 2, 2] , raiz='//RPS') self.InscricaoMunicipalTomador = TagCaracter(nome='InscricaoMunicipalTomador' , tamanho=[ 6, 11] , raiz='//RPS') self.CPFCNPJTomador = TagCaracter(nome='CPFCNPJTomador' , tamanho=[11, 14] , raiz='//RPS') self.RazaoSocialTomador = TagCaracter(nome='RazaoSocialTomador' , tamanho=[ 1, 120] , raiz='//RPS') self.DocTomadorEstrangeiro = TagCaracter(nome='DocTomadorEstrangeiro' , tamanho=[ 0, 20] , raiz='//RPS', obrigatorio=False) self.TipoLogradouroTomador = TagCaracter(nome='TipoLogradouroTomador' , tamanho=[ 0, 10] , raiz='//RPS') self.LogradouroTomador = TagCaracter(nome='LogradouroTomador' , tamanho=[ 0, 50] , raiz='//RPS') self.NumeroEnderecoTomador = TagCaracter(nome='NumeroEnderecoTomador' , tamanho=[ 0, 9] , raiz='//RPS') self.ComplementoEnderecoTomador = TagCaracter(nome='ComplementoEnderecoTomador' , tamanho=[ 0, 30] , raiz='//RPS', obrigatorio=False) self.TipoBairroTomador = TagCaracter(nome='TipoBairroTomador' , tamanho=[ 0, 10] , raiz='//RPS') self.BairroTomador = TagCaracter(nome='BairroTomador' , tamanho=[ 0, 50] , raiz='//RPS') self.CidadeTomador = TagInteiro(nome='CidadeTomador' , tamanho=[ 1, 10, 1], raiz='//RPS') self.CidadeTomadorDescricao = TagCaracter(nome='CidadeTomadorDescricao' , tamanho=[ 0, 50] , raiz='//RPS') self.CEPTomador = TagCaracter(nome='CEPTomador' , tamanho=[ 8, 8] , raiz='//RPS') self.EmailTomador = TagCaracter(nome='EmailTomador' , tamanho=[ 0, 60] , raiz='//RPS') self.CodigoAtividade = TagCaracter(nome='CodigoAtividade' , tamanho=[ 9, 9] , raiz='//RPS') self.AliquotaAtividade = TagDecimal(nome='AliquotaAtividade' , tamanho=[ 1, 5, 1], decimais=[0, 2, 2], raiz='//RPS') self.TipoRecolhimento = TagCaracter(nome='TipoRecolhimento' , tamanho=[ 1, 1] , raiz='//RPS') self.MunicipioPrestacao = TagInteiro(nome='MunicipioPrestacao' , tamanho=[ 1, 10, 1], raiz='//RPS') self.MunicipioPrestacaoDescricao = TagCaracter(nome='MunicipioPrestacaoDescricao', tamanho=[ 0, 30] , raiz='//RPS') self.Operacao = TagCaracter(nome='Operacao' , tamanho=[ 1, 1] , raiz='//RPS') self.Tributacao = TagCaracter(nome='Tributacao' , tamanho=[ 1, 1] , raiz='//RPS') self.ValorPIS = TagDecimal(nome='ValorPIS' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2], raiz='//RPS') self.ValorCOFINS = TagDecimal(nome='ValorCOFINS' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2], raiz='//RPS') self.ValorINSS = TagDecimal(nome='ValorINSS' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2], raiz='//RPS') self.ValorIR = TagDecimal(nome='ValorIR' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2], raiz='//RPS') self.ValorCSLL = TagDecimal(nome='ValorCSLL' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2], raiz='//RPS') self.AliquotaPIS = TagDecimal(nome='AliquotaPIS' , tamanho=[ 1, 5, 1], decimais=[0, 2, 2], raiz='//RPS') self.AliquotaCOFINS = TagDecimal(nome='AliquotaCOFINS' , tamanho=[ 1, 5, 1], decimais=[0, 2, 2], raiz='//RPS') self.AliquotaINSS = TagDecimal(nome='AliquotaINSS' , tamanho=[ 1, 5, 1], decimais=[0, 2, 2], raiz='//RPS') self.AliquotaIR = TagDecimal(nome='AliquotaIR' , tamanho=[ 1, 5, 1], decimais=[0, 2, 2], raiz='//RPS') self.AliquotaCSLL = TagDecimal(nome='AliquotaCSLL' , tamanho=[ 1, 5, 1], decimais=[0, 2, 2], raiz='//RPS') self.DescricaoRPS = TagCaracter(nome='DescricaoRPS' , tamanho=[ 0, 1500] , raiz='//RPS') self.DDDPrestador = TagInteiro(nome='DDDPrestador' , tamanho=[ 0, 3, 0], raiz='//RPS') self.TelefonePrestador = TagInteiro(nome='TelefonePrestador' , tamanho=[ 0, 8, 0], raiz='//RPS') self.DDDTomador = TagInteiro(nome='DDDTomador' , tamanho=[ 0, 3, 0], raiz='//RPS') self.TelefoneTomador = TagInteiro(nome='TelefoneTomador' , tamanho=[ 0, 8, 0], raiz='//RPS') self.MotCancelamento = TagCaracter(nome='MotCancelamento' , tamanho=[ 0, 80] , raiz='//RPS', obrigatorio=False) self.CPFCNPJIntermediario = TagCaracter(nome='CPFCNPJIntermediario' , tamanho=[11, 14] , raiz='//RPS', obrigatorio=False) self.Deducoes = [] self.Itens = [] # # Tags usadas somente para a impressão, não fazem parte do XML a ser gerado # self.ValorTotalRPS = TagDecimal(nome='ValorTotalRPS', tamanho=[ 1, 15, 1], decimais=[0, 2, 2]) self.ValorDeducoes = TagDecimal(nome='ValorDeducoes', tamanho=[ 1, 15, 1], decimais=[0, 2, 2]) self.BaseCalculo = TagDecimal(nome='BaseCalculo' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2]) self.ValorISS = TagDecimal(nome='ValorISS' , tamanho=[ 1, 15, 1], decimais=[0, 2, 2]) self.Informacoes = TagCaracter(nome='Informacoes' , tamanho=[ 0, 5000]) self.Informacoes.valor = 'Este Recibo Provisório de Serviços - RPS não é válido como documento fiscal. O prestador do serviço, no prazo de até 5 (cinco) dias corridos da emissão deste RPS, deverá substituí-lo por uma Nota Fiscal de Serviços Eletrônica - NFS-e.' def gera_assinatura(self): ''' Gera o hash sha1 para a tag Assinatura ''' texto = self.InscricaoMunicipalPrestador.valor.zfill(11) texto += self.SerieRPS.valor.ljust(5) texto += unicode(self.NumeroRPS.valor).zfill(12) texto += self.DataEmissaoRPS.valor.strftime(r'%Y%m%d') texto += self.Tributacao.valor.ljust(2) texto += self.SituacaoRPS.valor if self.TipoRecolhimento.valor == 'A': texto += 'N' else: texto += 'S' valor_servicos = D(0) base_calculo = D(0) valor_deducoes = D(0) for s in self.Itens: valor_servicos += s.ValorTotal.valor if s.Tributavel.valor == 'S': base_calculo += s.ValorTotal.valor for d in self.Deducoes: valor_deducoes += d.ValorDeduzir.valor self.ValorTotalRPS.valor = valor_servicos self.ValorDeducoes.valor = valor_deducoes self.BaseCalculo.valor = base_calculo - valor_deducoes self.ValorISS.valor = (self.BaseCalculo.valor * self.AliquotaAtividade.valor / 100).quantize(D('0.01')) texto += unicode(((valor_servicos - valor_deducoes) * 100).quantize(1)).zfill(15) texto += unicode((valor_deducoes * 100).quantize(1)).zfill(15) texto += self.CodigoAtividade.valor.zfill(10) texto += self.CPFCNPJTomador.valor.zfill(14) print(texto) gerador_sha1 = sha1() gerador_sha1.update(texto) self.Assinatura.valor = gerador_sha1.hexdigest() @somente_ascii def get_xml(self): xml = XMLNFe.get_xml(self) if self.Id.valor.strip() == '': xml += '<RPS>' else: xml += self.Id.xml if self.Assinatura.valor.strip() == '': self.gera_assinatura() xml += self.Assinatura.xml xml += self.InscricaoMunicipalPrestador.xml xml += self.RazaoSocialPrestador.xml xml += self.TipoRPS.xml xml += self.SerieRPS.xml xml += self.NumeroRPS.xml xml += self.DataEmissaoRPS.xml xml += self.SituacaoRPS.xml xml += self.SerieRPSSubstituido.xml xml += self.NumeroRPSSubstituido.xml xml += self.NumeroNFSeSubstituida.xml xml += self.DataEmissaoNFSeSubstituida.xml xml += self.SeriePrestacao.xml xml += self.InscricaoMunicipalTomador.xml xml += self.CPFCNPJTomador.xml xml += self.RazaoSocialTomador.xml xml += self.DocTomadorEstrangeiro.xml xml += self.TipoLogradouroTomador.xml xml += self.LogradouroTomador.xml xml += self.NumeroEnderecoTomador.xml xml += self.ComplementoEnderecoTomador.xml xml += self.TipoBairroTomador.xml xml += self.BairroTomador.xml xml += self.CidadeTomador.xml xml += self.CidadeTomadorDescricao.xml xml += self.CEPTomador.xml xml += self.EmailTomador.xml xml += self.CodigoAtividade.xml xml += self.AliquotaAtividade.xml xml += self.TipoRecolhimento.xml xml += self.MunicipioPrestacao.xml xml += self.MunicipioPrestacaoDescricao.xml xml += self.Operacao.xml xml += self.Tributacao.xml xml += self.ValorPIS.xml xml += self.ValorCOFINS.xml xml += self.ValorINSS.xml xml += self.ValorIR.xml xml += self.ValorCSLL.xml xml += self.AliquotaPIS.xml xml += self.AliquotaCOFINS.xml xml += self.AliquotaINSS.xml xml += self.AliquotaIR.xml xml += self.AliquotaCSLL.xml xml += self.DescricaoRPS.xml xml += self.DDDPrestador.xml xml += self.TelefonePrestador.xml xml += self.DDDTomador.xml xml += self.TelefoneTomador.xml xml += self.MotCancelamento.xml xml += self.CPFCNPJIntermediario.xml if len(self.Deducoes): xml += '<Deducoes>' for d in self.Deducoes: xml += d.xml xml += '</Deducoes>' if len(self.Itens): xml += '<Itens>' for i in self.Itens: xml += i.xml xml += '</Itens>' xml += '</RPS>' return xml def set_xml(self, arquivo): if self._le_xml(arquivo): self.Id.xml = arquivo self.Assinatura.xml = arquivo self.InscricaoMunicipalPrestador.xml = arquivo self.RazaoSocialPrestador.xml = arquivo self.TipoRPS.xml = arquivo self.SerieRPS.xml = arquivo self.NumeroRPS.xml = arquivo self.DataEmissaoRPS.xml = arquivo self.SituacaoRPS.xml = arquivo self.SerieRPSSubstituido.xml = arquivo self.NumeroRPSSubstituido.xml = arquivo self.NumeroNFSeSubstituida.xml = arquivo self.DataEmissaoNFSeSubstituida.xml = arquivo self.SeriePrestacao.xml = arquivo self.InscricaoMunicipalTomador.xml = arquivo self.CPFCNPJTomador.xml = arquivo self.RazaoSocialTomador.xml = arquivo self.DocTomadorEstrangeiro.xml = arquivo self.TipoLogradouroTomador.xml = arquivo self.LogradouroTomador.xml = arquivo self.NumeroEnderecoTomador.xml = arquivo self.ComplementoEnderecoTomador.xml = arquivo self.TipoBairroTomador.xml = arquivo self.BairroTomador.xml = arquivo self.CidadeTomador.xml = arquivo self.CidadeTomadorDescricao.xml = arquivo self.CEPTomador.xml = arquivo self.EmailTomador.xml = arquivo self.CodigoAtividade.xml = arquivo self.AliquotaAtividade.xml = arquivo self.TipoRecolhimento.xml = arquivo self.MunicipioPrestacao.xml = arquivo self.MunicipioPrestacaoDescricao.xml = arquivo self.Operacao.xml = arquivo self.Tributacao.xml = arquivo self.ValorPIS.xml = arquivo self.ValorCOFINS.xml = arquivo self.ValorINSS.xml = arquivo self.ValorIR.xml = arquivo self.ValorCSLL.xml = arquivo self.AliquotaPIS.xml = arquivo self.AliquotaCOFINS.xml = arquivo self.AliquotaINSS.xml = arquivo self.AliquotaIR.xml = arquivo self.AliquotaCSLL.xml = arquivo self.DescricaoRPS.xml = arquivo self.DDDPrestador.xml = arquivo self.TelefonePrestador.xml = arquivo self.DDDTomador.xml = arquivo self.TelefoneTomador.xml = arquivo self.MotCancelamento.xml = arquivo self.CPFCNPJIntermediario.xml = arquivo deducoes = self._le_nohs('//RPS/Deducoes/Deducao') self.Deducoes = [] if deducoes is not None: self.Deducoes = [Deducao() for d in deducoes] for i in range(len(deducoes)): self.Deducoes[i].xml = deducoes[i] itens = self._le_nohs('//RPS/Itens/Item') self.Itens = [] if itens is not None: self.Itens = [Item() for i in itens] for i in range(len(itens)): self.Itens[i].xml = itens[i] xml = property(get_xml, set_xml) # # Funções para formatar campos para a impressão do RPS # def numero_formatado(self): num = unicode(self.NumeroRPS.valor).zfill(12) num_formatado = '.'.join((num[0:3], num[3:6], num[6:9], num[9:12])) return num_formatado def _formata_cpf(self, cpf): if not len(cpf.strip()): return u'' formatado = cpf[0:3] + u'.' + cpf[3:6] + u'.' + cpf[6:9] + u'-' + cpf[9:11] return formatado def _formata_cnpj(self, cnpj): if not len(cnpj.strip()): return u'' formatado = cnpj[0:2] + u'.' + cnpj[2:5] + u'.' + cnpj[5:8] + u'/' + cnpj[8:12] + u'-' + cnpj[12:14] return formatado def cnpj_tomador_formatado(self): if len(self.CPFCNPJTomador.valor) == 11: return self._formata_cpf(self.CPFCNPJTomador.valor) else: return self._formata_cnpj(self.CPFCNPJTomador.valor) def endereco_tomador_formatado(self): end = '' if len(self.TipoLogradouroTomador.valor.strip()): end = self.TipoLogradouroTomador.valor.strip() + ' ' end += self.LogradouroTomador.valor if len(self.NumeroEnderecoTomador.valor.strip()): end += ', ' + self.NumeroEnderecoTomador.valor if len(self.ComplementoEnderecoTomador.valor.strip()): end += ' - ' + self.ComplementoEnderecoTomador.valor if len(self.TipoBairroTomador.valor.strip()): end += ' - ' + self.TipoBairroTomador.valor + ' ' + self.BairroTomador.valor else: end += ' - ' + self.BairroTomador.valor end += ' - ' + self.CEPTomador.valor[0:5] + '-' + self.CEPTomador.valor[5:] return end def descricao_formatada(self): return self.DescricaoRPS.valor.replace('|', '<br />') def informacoes_formatadas(self): return self.Informacoes.valor.replace('|', '<br />') def _formata_aliquota_federal(self, descricao, aliquota): return descricao + ' (' + aliquota.rjust(5) + '%)' def aliquota_pis_formatada(self): return self._formata_aliquota_federal('PIS', self.AliquotaPIS.formato_danfe()) def aliquota_cofins_formatada(self): return self._formata_aliquota_federal('COFINS', self.AliquotaCOFINS.formato_danfe()) def aliquota_inss_formatada(self): return self._formata_aliquota_federal('INSS', self.AliquotaINSS.formato_danfe()) def aliquota_ir_formatada(self): return self._formata_aliquota_federal('IR', self.AliquotaIR.formato_danfe()) def aliquota_csll_formatada(self): return self._formata_aliquota_federal('CSLL', self.AliquotaCSLL.formato_danfe())