Example #1
0
 def _serialize_rps(self, dados):
     return tpRPS(
         InscricaoMunicipalTomador=self.convert_type_nfselib(
             tpRPS, "InscricaoMunicipalTomador",
             dados["inscricao_municipal"]),
         CPFCNPJTomador=tpCPFCNPJ(
             Cnpj=self.convert_type_nfselib(tpCPFCNPJ, "Cnpj",
                                            dados["cnpj"]),
             Cpf=self.convert_type_nfselib(tpCPFCNPJ, "Cpf", dados["cpf"]),
         ),
         RazaoSocialTomador=self.convert_type_nfselib(
             tpRPS, "RazaoSocialTomador", dados["razao_social"]),
         EnderecoTomador=tpEndereco(
             Logradouro=self.convert_type_nfselib(tpEndereco, "Logradouro",
                                                  dados["endereco"]),
             NumeroEndereco=self.convert_type_nfselib(
                 tpEndereco, "NumeroEndereco", dados["numero"]),
             ComplementoEndereco=self.convert_type_nfselib(
                 tpEndereco, "ComplementoEndereco", dados["complemento"]),
             Bairro=self.convert_type_nfselib(tpEndereco, "Bairro",
                                              dados["bairro"]),
             Cidade=self.convert_type_nfselib(tpEndereco, "Cidade",
                                              dados["codigo_municipio"]),
             UF=self.convert_type_nfselib(tpEndereco, "UF", dados["uf"]),
             CEP=self.convert_type_nfselib(tpEndereco, "CEP", dados["cep"]),
         ) or None,
     )
Example #2
0
 def _serialize_rps(self, dados):
     return tpRPS(
         InscricaoMunicipalTomador=self.convert_type_nfselib(
             tpRPS, 'InscricaoMunicipalTomador',
             dados['inscricao_municipal']),
         CPFCNPJTomador=tpCPFCNPJ(
             Cnpj=self.convert_type_nfselib(
                 tpCPFCNPJ, 'Cnpj', dados['cnpj']),
             Cpf=self.convert_type_nfselib(
                 tpCPFCNPJ, 'Cpf', dados['cpf']),
         ),
         RazaoSocialTomador=self.convert_type_nfselib(
             tpRPS, 'RazaoSocialTomador', dados['razao_social']),
         EnderecoTomador=tpEndereco(
             Logradouro=self.convert_type_nfselib(
                 tpEndereco, 'Logradouro', dados['endereco']),
             NumeroEndereco=self.convert_type_nfselib(
                 tpEndereco, 'NumeroEndereco', dados['numero']),
             ComplementoEndereco=self.convert_type_nfselib(
                 tpEndereco, 'ComplementoEndereco', dados['complemento']),
             Bairro=self.convert_type_nfselib(
                 tpEndereco, 'Bairro', dados['bairro']),
             Cidade=self.convert_type_nfselib(
                 tpEndereco, 'Cidade', dados['codigo_municipio']),
             UF=self.convert_type_nfselib(
                 tpEndereco, 'UF', dados['uf']),
             CEP=self.convert_type_nfselib(tpEndereco, 'CEP', dados['cep']),
         ) or None,
     )
Example #3
0
 def _serialize_cabecalho(self, dados_lote_rps):
     return CabecalhoType(
         Versao=self.convert_type_nfselib(CabecalhoType, 'Versao', 1),
         CPFCNPJRemetente=tpCPFCNPJ(
             CNPJ=self.convert_type_nfselib(
                 CabecalhoType, 'tpCPFCNPJ', dados_lote_rps['cnpj'])),
         transacao=False,  # TODO: Verficar origem do dado
         dtInicio=self.convert_type_nfselib(
             CabecalhoType, 'dtInicio',
             dados_lote_rps['date_in_out'].split('T', 1)[0]),
         dtFim=self.convert_type_nfselib(
             CabecalhoType, 'dtFim',
             dados_lote_rps['date_in_out'].split('T', 1)[0]),
         QtdRPS=self.convert_type_nfselib(CabecalhoType, 'QtdRPS', '1'),
         ValorTotalServicos=self.convert_type_nfselib(
             CabecalhoType, 'ValorTotalServicos',
             dados_lote_rps['total_recebido']),
         ValorTotalDeducoes=self.convert_type_nfselib(
             CabecalhoType, 'ValorTotalDeducoes',
             dados_lote_rps['carga_tributaria']),
     )
Example #4
0
 def _serialize_cabecalho(self, dados_lote_rps):
     return CabecalhoType(
         Versao=self.convert_type_nfselib(CabecalhoType, "Versao", 1),
         CPFCNPJRemetente=tpCPFCNPJ(CNPJ=self.convert_type_nfselib(
             CabecalhoType, "tpCPFCNPJ", dados_lote_rps["cnpj"])),
         transacao=False,  # TODO: Verficar origem do dado
         dtInicio=self.convert_type_nfselib(
             CabecalhoType,
             "dtInicio",
             dados_lote_rps["date_in_out"].split("T", 1)[0],
         ),
         dtFim=self.convert_type_nfselib(
             CabecalhoType, "dtFim",
             dados_lote_rps["date_in_out"].split("T", 1)[0]),
         QtdRPS=self.convert_type_nfselib(CabecalhoType, "QtdRPS", "1"),
         ValorTotalServicos=self.convert_type_nfselib(
             CabecalhoType, "ValorTotalServicos",
             dados_lote_rps["total_recebido"]),
         ValorTotalDeducoes=self.convert_type_nfselib(
             CabecalhoType, "ValorTotalDeducoes",
             dados_lote_rps["carga_tributaria"]),
     )
Example #5
0
 def _serialize_lote_rps(self, dados_lote_rps, dados_servico):
     dados_tomador = self._prepare_dados_tomador()
     return tpRPS(
         Assinatura=self.assinatura_rps(dados_lote_rps, dados_servico,
                                        dados_tomador),
         ChaveRPS=tpChaveRPS(
             InscricaoPrestador=self.convert_type_nfselib(
                 tpChaveRPS,
                 "InscricaoPrestador",
                 dados_lote_rps["inscricao_municipal"].zfill(8),
             ),
             SerieRPS=self.convert_type_nfselib(tpChaveRPS, "SerieRPS",
                                                dados_lote_rps["serie"]),
             NumeroRPS=self.convert_type_nfselib(tpChaveRPS, "NumeroRPS",
                                                 dados_lote_rps["numero"]),
         ),
         TipoRPS=self._map_type_rps(dados_lote_rps["tipo"]),
         DataEmissao=self.convert_type_nfselib(
             tpRPS, "DataEmissao",
             dados_lote_rps["data_emissao"].split("T", 1)[0]),
         StatusRPS=self.convert_type_nfselib(tpRPS, "StatusRPS", "N"),
         TributacaoRPS=self.convert_type_nfselib(
             tpRPS,
             "TributacaoRPS",
             self._map_taxation_rps(dados_lote_rps["natureza_operacao"]),
         ),
         ValorServicos=self.convert_type_nfselib(
             tpRPS, "ValorServicos", dados_servico["valor_servicos"]),
         ValorDeducoes=self.convert_type_nfselib(
             tpRPS, "ValorDeducoes", dados_servico["valor_deducoes"]),
         ValorPIS=self.convert_type_nfselib(tpRPS, "ValorPIS",
                                            dados_servico["valor_pis"]),
         ValorCOFINS=self.convert_type_nfselib(
             tpRPS, "ValorCOFINS", dados_servico["valor_cofins"]),
         ValorINSS=self.convert_type_nfselib(tpRPS, "ValorINSS",
                                             dados_servico["valor_inss"]),
         ValorIR=self.convert_type_nfselib(tpRPS, "ValorIR",
                                           dados_servico["valor_ir"]),
         ValorCSLL=self.convert_type_nfselib(tpRPS, "ValorCSLL",
                                             dados_servico["valor_csll"]),
         CodigoServico=self.convert_type_nfselib(
             tpRPS, "CodigoServico",
             dados_servico["codigo_tributacao_municipio"]),
         AliquotaServicos=self.convert_type_nfselib(
             tpRPS, "AliquotaServicos", dados_servico["aliquota"]),
         ISSRetido="true"
         if dados_servico["iss_retido"] == "1" else "false",
         # FIXME: Hardcoded
         CPFCNPJTomador=self.convert_type_nfselib(
             tpRPS,
             "CPFCNPJTomador",
             tpCPFCNPJ(CNPJ=dados_tomador["cnpj"],
                       CPF=dados_tomador["cpf"]),
         ),
         InscricaoMunicipalTomador=self.convert_type_nfselib(
             tpRPS, "InscricaoMunicipalTomador",
             dados_tomador["inscricao_municipal"]),
         InscricaoEstadualTomador=self.convert_type_nfselib(
             tpRPS, "InscricaoEstadualTomador",
             dados_tomador["inscricao_estadual"]),
         RazaoSocialTomador=self.convert_type_nfselib(
             tpRPS, "RazaoSocialTomador", dados_tomador["razao_social"]),
         EnderecoTomador=tpEndereco(
             Logradouro=self.convert_type_nfselib(
                 tpEndereco, "Logradouro", dados_tomador["endereco"]),
             NumeroEndereco=self.convert_type_nfselib(
                 tpEndereco, "NumeroEndereco", dados_tomador["numero"]),
             ComplementoEndereco=self.convert_type_nfselib(
                 tpEndereco, "ComplementoEndereco",
                 dados_tomador["complemento"]),
             Bairro=self.convert_type_nfselib(tpEndereco, "Bairro",
                                              dados_tomador["bairro"]),
             Cidade=self.convert_type_nfselib(
                 tpEndereco, "Cidade", dados_tomador["codigo_municipio"]),
             UF=self.convert_type_nfselib(tpEndereco, "UF",
                                          dados_tomador["uf"]),
             CEP=self.convert_type_nfselib(tpEndereco, "CEP",
                                           dados_tomador["cep"]),
         ),
         EmailTomador=self.convert_type_nfselib(tpRPS, "EmailTomador",
                                                dados_tomador["email"]),
         Discriminacao=self.convert_type_nfselib(
             tpRPS,
             "Discriminacao",
             unidecode(dados_servico["discriminacao"] +
                       ("|%s|" %
                        self.fiscal_additional_data.replace("\n", "|")
                        if self.fiscal_additional_data else "")),
         ),
         ValorCargaTributaria=self.convert_type_nfselib(
             tpRPS, "ValorCargaTributaria",
             dados_lote_rps["carga_tributaria"]),
         FonteCargaTributaria=self.convert_type_nfselib(
             tpRPS, "FonteCargaTributaria",
             dados_lote_rps["total_recebido"]),
         MunicipioPrestacao=self.convert_type_nfselib(
             CabecalhoType,
             "Versao",
             self._map_provision_municipality(
                 dados_lote_rps["natureza_operacao"],
                 dados_servico["codigo_municipio"],
             ),
         ),
     )
Example #6
0
 def _serialize_lote_rps(self, dados_lote_rps, dados_servico):
     dados_tomador = self._prepare_dados_tomador()
     return tpRPS(
         Assinatura=self.assinatura_rps(dados_lote_rps, dados_servico,
                                        dados_tomador),
         ChaveRPS=tpChaveRPS(
             InscricaoPrestador=self.convert_type_nfselib(
                 tpChaveRPS, 'InscricaoPrestador',
                 dados_lote_rps['inscricao_municipal'].zfill(8)),
             SerieRPS=self.convert_type_nfselib(
                 tpChaveRPS, 'SerieRPS', dados_lote_rps['serie']),
             NumeroRPS=self.convert_type_nfselib(
                 tpChaveRPS, 'NumeroRPS', dados_lote_rps['numero']),
         ),
         TipoRPS=self._map_type_rps(dados_lote_rps['tipo']),
         DataEmissao=self.convert_type_nfselib(
             tpRPS, 'DataEmissao',
             dados_lote_rps['data_emissao'].split('T', 1)[0]),
         StatusRPS=self.convert_type_nfselib(tpRPS, 'StatusRPS', 'N'),
         TributacaoRPS=self.convert_type_nfselib(
             tpRPS, 'TributacaoRPS',
             self._map_taxation_rps(dados_lote_rps['natureza_operacao'])),
         ValorServicos=self.convert_type_nfselib(
             tpRPS, 'ValorServicos', dados_servico['valor_servicos']),
         ValorDeducoes=self.convert_type_nfselib(
             tpRPS, 'ValorDeducoes', dados_servico['valor_deducoes']),
         ValorPIS=self.convert_type_nfselib(
             tpRPS, 'ValorPIS', dados_servico['valor_pis']),
         ValorCOFINS=self.convert_type_nfselib(
             tpRPS, 'ValorCOFINS', dados_servico['valor_cofins']),
         ValorINSS=self.convert_type_nfselib(
             tpRPS, 'ValorINSS', dados_servico['valor_inss']),
         ValorIR=self.convert_type_nfselib(
             tpRPS, 'ValorIR', dados_servico['valor_ir']),
         ValorCSLL=self.convert_type_nfselib(
             tpRPS, 'ValorCSLL', dados_servico['valor_csll']),
         CodigoServico=self.convert_type_nfselib(
             tpRPS, 'CodigoServico',
             dados_servico['codigo_tributacao_municipio']),
         AliquotaServicos=self.convert_type_nfselib(
             tpRPS, 'AliquotaServicos', dados_servico['aliquota']),
         ISSRetido='true' if dados_servico['iss_retido'] == '1' else 'false',
         # FIXME: Hardcoded
         CPFCNPJTomador=self.convert_type_nfselib(
             tpRPS, 'CPFCNPJTomador', tpCPFCNPJ(
                 CNPJ=dados_tomador['cnpj'], CPF=dados_tomador['cpf'])),
         InscricaoMunicipalTomador=self.convert_type_nfselib(
             tpRPS, 'InscricaoMunicipalTomador',
             dados_tomador['inscricao_municipal']),
         InscricaoEstadualTomador=self.convert_type_nfselib(
             tpRPS, 'InscricaoEstadualTomador',
             dados_tomador['inscricao_estadual']),
         RazaoSocialTomador=self.convert_type_nfselib(
             tpRPS, 'RazaoSocialTomador', dados_tomador['razao_social']),
         EnderecoTomador=tpEndereco(
             Logradouro=self.convert_type_nfselib(
                 tpEndereco, 'Logradouro', dados_tomador['endereco']),
             NumeroEndereco=self.convert_type_nfselib(
                 tpEndereco, 'NumeroEndereco', dados_tomador['numero']),
             ComplementoEndereco=self.convert_type_nfselib(
                 tpEndereco, 'ComplementoEndereco',
                 dados_tomador['complemento']),
             Bairro=self.convert_type_nfselib(
                 tpEndereco, 'Bairro', dados_tomador['bairro']),
             Cidade=self.convert_type_nfselib(
                 tpEndereco, 'Cidade', dados_tomador['codigo_municipio']),
             UF=self.convert_type_nfselib(
                 tpEndereco, 'UF', dados_tomador['uf']),
             CEP=self.convert_type_nfselib(
                 tpEndereco, 'CEP', dados_tomador['cep']),
         ),
         EmailTomador=self.convert_type_nfselib(
             tpRPS, 'EmailTomador', dados_tomador['email']),
         Discriminacao=self.convert_type_nfselib(
             tpRPS, 'Discriminacao', unidecode(
                 dados_servico['discriminacao'] + (
                     '|%s|' % self.fiscal_additional_data.replace(
                         '\n', '|'
                     ) if self.fiscal_additional_data else ''))
         ),
         ValorCargaTributaria=self.convert_type_nfselib(
             tpRPS, 'ValorCargaTributaria',
             dados_lote_rps['carga_tributaria']),
         FonteCargaTributaria=self.convert_type_nfselib(
             tpRPS, 'FonteCargaTributaria',
             dados_lote_rps['total_recebido']),
         MunicipioPrestacao=self.convert_type_nfselib(
             CabecalhoType, 'Versao',
             self._map_provision_municipality(
                 dados_lote_rps['natureza_operacao'],
                 dados_servico['codigo_municipio']
             )
         ),
     )