예제 #1
0
 def __init__(self):
     super(RetConsStatServ, self).__init__()
     self.versao    = TagDecimal(nome='retConsStatServ', codigo='FR01', propriedade='versao', namespace=NAMESPACE_NFE, valor='1.07', raiz='/')
     self.tpAmb     = TagInteiro(nome='tpAmb'          , codigo='FR03', tamanho=[1, 1, 1], raiz='//retConsStatServ', valor=2)
     self.verAplic  = TagCaracter(nome='verAplic'      , codigo='FR04', tamanho=[1, 20]  , raiz='//retConsStatServ')
     self.cStat     = TagCaracter(nome='cStat'         , codigo='FR05', tamanho=[3, 3, 3], raiz='//retConsStatServ')
     self.xMotivo   = TagCaracter(nome='xMotivo'       , codigo='FR06', tamanho=[1, 255] , raiz='//retConsStatServ')
     self.cUF       = TagInteiro(nome='cUF'            , codigo='FR07', tamanho=[2, 2, 2], raiz='//retConsStatServ')
     self.dhRecbto  = TagDataHora(nome='dhRecbto'      , codigo='FR08',                    raiz='//retConsStatServ')
     self.tMed      = TagInteiro(nome='tMed'           , codigo='FR09', tamanho=[1, 4]   , raiz='//retConsStatServ', obrigatorio=False)
     self.dhRetorno = TagDataHora(nome='dhRetorno'     , codigo='FR10',                    raiz='//retConsStatServ', obrigatorio=False)
     self.xObs      = TagCaracter(nome='xObs'          , codigo='FR11', tamanho=[1, 255] , raiz='//retConsStatServ', obrigatorio=False)
     self.caminho_esquema = os.path.join(DIRNAME, 'schema', ESQUEMA_ATUAL + '/')
     self.arquivo_esquema = 'retConsStatServ_v1.07.xsd'
예제 #2
0
    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 = TagDataHora(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 = ''
예제 #3
0
 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'
예제 #4
0
 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'
예제 #5
0
 def __init__(self):
     super(InfCancRecebido, self).__init__()
     self.Id       = TagCaracter(nome='infCanc' , codigo='CR03' , tamanho=[17, 17]    , raiz='//retCancNFe', propriedade='Id', obrigatorio=False)
     self.tpAmb    = TagInteiro(nome='tpAmb'    , codigo='CR05' , tamanho=[1, 1, 1]   , raiz='//retCancNFe/infCanc', valor=2)
     self.verAplic = TagCaracter(nome='verAplic', codigo='CR06' , tamanho=[1, 20]     , raiz='//retCancNFe/infCanc')
     self.cStat    = TagCaracter(nome='cStat'    , codigo='CR07' , tamanho=[3, 3, 3]   , raiz='//retCancNFe/infCanc')
     self.xMotivo  = TagCaracter(nome='xMotivo' , codigo='CR08' , tamanho=[1, 255]    , raiz='//retCancNFe/infCanc')
     self.cUF      = TagInteiro(nome='cUF'      , codigo='CR08a', tamanho=[2, 2, 2]   , raiz='//retCancNFe/infCanc')
     self.chNFe    = TagCaracter(nome='chNFe'    , codigo='CR09' , tamanho=[44, 44, 44], raiz='//retcancNFe/infCanc', obrigatorio=False)
     self.dhRecbto = TagDataHora(nome='dhRecbto', codigo='CR10' ,                       raiz='//retCancNFe/infCanc', obrigatorio=False)
     self.nProt    = TagCaracter(nome='nProt'    , codigo='CR11' , tamanho=[15, 15, 15], raiz='//retCancNFe/infCanc', obrigatorio=False)
 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(_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)
예제 #8
0
 def __init__(self):
     super(InfRec, self).__init__()
     self.nRec = TagCaracter(nome='nRec',
                             codigo='AR08',
                             tamanho=[1, 15, 1],
                             raiz='//retEnviNFe/infRec')
     self.dhRecbto = TagDataHora(nome='dhRecbto',
                                 codigo='AR09',
                                 raiz='//retEnviNFe/infRec')
     self.tMed = TagInteiro(nome='tMed',
                            codigo='AR10',
                            tamanho=[1, 4, 1],
                            raiz='//retEnviNFe/infRec')
예제 #9
0
 def __init__(self):
     super(InfProt, self).__init__()
     self.Id = TagCaracter(nome='infProt',
                           codigo='PR04',
                           propriedade='Id',
                           raiz='/',
                           obrigatorio=False,
                           namespace=NAMESPACE_CTE)
     self.tpAmb = TagInteiro(nome='tpAmb',
                             codigo='PR05',
                             tamanho=[1, 1, 1],
                             raiz='//infProt',
                             namespace=NAMESPACE_CTE)
     self.verAplic = TagCaracter(nome='verAplic',
                                 codigo='PR06',
                                 tamanho=[1, 20],
                                 raiz='//infProt',
                                 namespace=NAMESPACE_CTE)
     self.chCTe = TagCaracter(nome='chCTe',
                              codigo='PR07',
                              tamanho=[44, 44],
                              raiz='//infProt',
                              namespace=NAMESPACE_CTE)
     self.dhRecbto = TagDataHora(nome='dhRecbto',
                                 codigo='PR08',
                                 raiz='//infProt',
                                 namespace=NAMESPACE_CTE)
     self.nProt = TagCaracter(nome='nProt',
                              codigo='PR09',
                              tamanho=[15, 15],
                              raiz='//infProt',
                              obrigatorio=False,
                              namespace=NAMESPACE_CTE)
     self.digVal = TagCaracter(nome='digVal',
                               codigo='PR10',
                               tamanho=[28, 28],
                               raiz='//infProt',
                               obrigatorio=False,
                               namespace=NAMESPACE_CTE)
     self.cStat = TagCaracter(nome='cStat',
                              codigo='PR11',
                              tamanho=[1, 3],
                              raiz='//infProt',
                              namespace=NAMESPACE_CTE)
     self.xMotivo = TagCaracter(nome='xMotivo',
                                codigo='PR12',
                                tamanho=[1, 255],
                                raiz='//infProt',
                                namespace=NAMESPACE_CTE)
예제 #10
0
 def __init__(self):
     super(ChaveRPS, self).__init__()
     self.InscricaoPrestador = TagCaracter(nome='InscricaoPrestador',
                                           tamanho=[6, 11],
                                           raiz='//*/ChaveRPS')
     self.SerieRPS = TagCaracter(nome='SerieRPS',
                                 tamanho=[2, 2],
                                 raiz='//*/ChaveRPS',
                                 valor='NF')
     self.NumeroRPS = TagInteiro(nome='NumeroRPS',
                                 tamanho=[1, 12, 1],
                                 raiz='//*/ChaveRPS')
     self.DataEmissaoRPS = TagDataHora(nome='DataEmissaoRPS',
                                       raiz='//*/ChaveRPS')
     self.RazaoSocialPrestador = TagCaracter(nome='RazaoSocialPrestador',
                                             tamanho=[1, 120],
                                             raiz='//*/ChaveRPS')
예제 #11
0
 def __init__(self):
     super(InfConsRecebido, self).__init__()
     self.verAplic = TagCaracter(nome='verAplic',
                                 codigo='GR04',
                                 tamanho=[1, 20],
                                 raiz='//retConsCad/infCons')
     self.cStat = TagInteiro(nome='cStat',
                             codigo='GR05',
                             tamanho=[3, 3, 3],
                             raiz='//retConsCad/infCons')
     self.xMotivo = TagCaracter(nome='xMotivo',
                                codigo='GR06',
                                tamanho=[1, 255],
                                raiz='//retConsCad/infCons')
     self.UF = TagCaracter(nome='UF',
                           codigo='GR06a',
                           tamanho=[2, 2],
                           raiz='//retConsCad/infCons')
     self.IE = TagCaracter(nome='IE',
                           codigo='GR06b',
                           tamanho=[2, 14],
                           raiz='//retConsCad/infCons',
                           obrigatorio=False)
     self.CNPJ = TagCaracter(nome='CNPJ',
                             codigo='GR06c',
                             tamanho=[3, 14],
                             raiz='//retConsCad/infCons',
                             obrigatorio=False)
     self.CPF = TagCaracter(nome='CPF',
                            codigo='GR06d',
                            tamanho=[3, 11],
                            raiz='//retConsCad/infCons',
                            obrigatorio=False)
     self.dhCons = TagDataHora(nome='dhCons',
                               codigo='GR06e',
                               raiz='//retConsCad/infCons')
     self.cUF = TagInteiro(nome='cUF',
                           codigo='GR06f',
                           tamanho=[2, 2, 2],
                           raiz='//retConsCad/infCons')
     self.infCad = []
예제 #12
0
 def __init__(self):
     super(RetConsNFeDest, self).__init__()
     self.versao = TagDecimal(nome='retConsNFeDest',
                              codigo='IR01',
                              propriedade='versao',
                              namespace=NAMESPACE_NFE,
                              valor='1.01',
                              raiz='/')
     self.tpAmb = TagInteiro(nome='tpAmb',
                             codigo='IR03',
                             tamanho=[1, 1, 1],
                             raiz='//retConsNFeDest')
     self.verAplic = TagCaracter(nome='verAplic',
                                 codigo='IR04',
                                 tamanho=[1, 20],
                                 raiz='//retConsNFeDest')
     self.cStat = TagCaracter(nome='cStat',
                              codigo='IR05',
                              tamanho=[1, 3],
                              raiz='//retConsNFeDest')
     self.xMotivo = TagCaracter(nome='xMotivo',
                                codigo='IR06',
                                tamanho=[1, 255],
                                raiz='//retConsNFeDest')
     self.dhResp = TagDataHora(nome='dhResp',
                               codigo='IR07',
                               raiz='//retConsNFeDest')
     self.indCont = TagCaracter(nome='indCont',
                                codigo='IR08',
                                tamanho=[1, 1, 1],
                                raiz='//retConsNFeDest',
                                obrigatorio=False)
     self.ultNSU = TagCaracter(nome='ultNSU',
                               codigo='IP09',
                               tamanho=[1, 15],
                               raiz='//retConsNFeDest',
                               obrigatorio=False)
     self.caminho_esquema = os.path.join(DIRNAME, 'schema',
                                         ESQUEMA_ATUAL + '/')
     self.arquivo_esquema = 'retconsNFeDest_v1.01.xsd'
예제 #13
0
 def __init__(self):
     super(InfInutRecebido, self).__init__()
     self.Id = TagCaracter(nome='infInut',
                           codigo='DR03',
                           tamanho=[17, 17],
                           raiz='//retInutCTe',
                           propriedade='Id',
                           obrigatorio=False)
     self.tpAmb = TagInteiro(nome='tpAmb',
                             codigo='DR05',
                             tamanho=[1, 1, 1],
                             raiz='//retInutCTe/infInut',
                             valor=2)
     self.verAplic = TagCaracter(nome='verAplic',
                                 codigo='DR06',
                                 tamanho=[1, 20],
                                 raiz='//retInutCTe/infInut')
     self.cStat = TagCaracter(nome='cStat',
                              codigo='DR07',
                              tamanho=[3, 3, 3],
                              raiz='//retInutCTe/infInut')
     self.xMotivo = TagCaracter(nome='xMotivo',
                                codigo='DR08',
                                tamanho=[1, 255],
                                raiz='//retInutCTe/infInut')
     self.cUF = TagInteiro(nome='cUF',
                           codigo='DR09',
                           tamanho=[2, 2, 2],
                           raiz='//retInutCTe/infInut')
     self.ano = TagCaracter(nome='ano',
                            codigo='DR10',
                            tamanho=[2, 2],
                            raiz='//retInutCTe/infInut',
                            obrigatorio=False)
     self.CNPJ = TagCaracter(nome='CNPJ',
                             codigo='DR11',
                             tamanho=[3, 14],
                             raiz='//retInutCTe/infInut',
                             obrigatorio=False)
     self.mod = TagInteiro(nome='mod',
                           codigo='DR12',
                           tamanho=[2, 2, 2],
                           raiz='//retInutCTe/infInut',
                           obrigatorio=False)
     self.serie = TagInteiro(nome='serie',
                             codigo='DR13',
                             tamanho=[1, 3],
                             raiz='//retInutCTe/infInut',
                             obrigatorio=False)
     self.nCTIni = TagInteiro(nome='nCTIni',
                              codigo='DR14',
                              tamanho=[1, 9],
                              raiz='//retInutCTe/infInut',
                              obrigatorio=False)
     self.nCTFin = TagInteiro(nome='nCTFin',
                              codigo='DR15',
                              tamanho=[1, 9],
                              raiz='//retInutCTe/infInut',
                              obrigatorio=False)
     self.dhRecbto = TagDataHora(nome='dhRecbto',
                                 codigo='DR16',
                                 raiz='//retInutCTe/infInut',
                                 obrigatorio=False)
     self.nProt = TagInteiro(nome='nProt',
                             codigo='DR17',
                             tamanho=[15, 15, 15],
                             raiz='//retInutCTe/infInut',
                             obrigatorio=False)
예제 #14
0
    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.'