Ir para conteúdo
  • Cadastre-se

eraldocg

Membros
  • Total de ítens

    77
  • Registro em

  • Última visita

1 Seguidor

Últimos Visitantes

1.059 visualizações

eraldocg's Achievements

  1. "Com a versão 2.02 e com as URLs antigas você consegue emitir as notas?" sim, voltei os fontes do acbr para as configuracoes: SisPMJP Versão: 2.02 ------------------------------------ Informações sobre o provedor: SisPMJP - Versão: 2.02 - Layout: ABRASF Serviços Disponibilizados Permite o envio de Lote em Modo Assíncrono Permite o envio de Lote em Modo Síncrono ------------------------------------ voltou a fucionar e enviar nfse
  2. segue a imagem do acesso dos links versão 2.02 , chamando pelo navegador e informando o certificado valido. observação1: ate data abaixo enviei umas 2 mil nfse nessa versao 14/03/25 18:17:38 ------------------------------------------------------------ Requisição Ambiente : 1 - Produção Cidade : Joao Pessoa/PB Provedor : SisPMJP Versão: 2.02 Data/Hora: 14/03/2025 18:16:17 ------------------------------------------------------------ outra observação: --------------------------- Acbrnfsex_exemplo --------------------------- Arquivo ...\Exemplos\ACBrDFe\Schemas\SisPMJP\2.03\nfse.xsd Não encontrado. --------------------------- Essa pasta tbm nao esta vindo com as atualizações (ja fiz umas 3 update nos fontes), para que pudesse testá-la na versao : 2.03 ---------------------------
  3. ja enviei um email desde cedo, o negocio é ter resposta; mas no site, link documentacao, nao tem nada sobre alteracao
  4. Retorando: Informações sobre o provedor: SisPMJP - Versão: 2.03 - Layout: ABRASF na unit SisPMJP.Provider; atualmente esta 2.03 e o certo e 2.02 procedure TACBrNFSeProviderSisPMJP202.Configuracao; begin inherited Configuracao; with ConfigAssinar do begin Rps := True; LoteRps := True; end; with ConfigWebServices do begin VersaoDados := '2.03'; VersaoAtrib := '2.03'; end; ConfigMsgDados.DadosCabecalho := GetCabecalho(''); end; como consta no site da prefeitura Para efetuar o download dos documentos necessários ao desenvolvimento da referida solução, deve-se clicar nos links abaixo: NFS-e ABRASF - versão 2.02; Wsdl - Homologação - versão 2.02; Wsdl - Produção - versão 2.02;
  5. Ola senhores, Ao utilizar o demo uDemoBoleto, percebi que os dados do cedente e do pagador não estavam sendo gravados ou carregados no arquivo.INI. Para resolver esse problema, incluí a gravação dos dados do cedente e criei uma nova seção no arquivo INI denominada "PAGADOR". Segue o código-fonte para análise e possíveis implementações. exemplo da implementacao: procedure TfrmDemoBoleto.CarregarIniCedente; const SECAO_CEDENTE = 'CEDENTE'; var xPath, xArquivo: string; IniFile: TMemIniFile; begin // Define o caminho e o nome do arquivo INI xPath := ExtractFilePath(ParamStr(0)); xArquivo := ChangeFileExt(ExtractFileName(ParamStr(0)), '.ini'); // Cria o objeto TMemIniFile para leitura do arquivo INI IniFile := TMemIniFile.Create(IncludeTrailingPathDelimiter(xPath) + xArquivo); try edtBenifCNPJ.Text := IniFile.ReadString(SECAO_CEDENTE, 'CNPJCPF', '99.999.999/9999-62'); edtBenifRazao.Text := IniFile.ReadString(SECAO_CEDENTE, 'Nome', 'EMPRESA DE TESTES'); edtBenifFantasia.Text := IniFile.ReadString(SECAO_CEDENTE, 'FantasiaCedente', 'A Empresa'); edtBenifEndereco.Text := IniFile.ReadString(SECAO_CEDENTE, 'Logradouro', 'Rua das Empresas'); edtBenifNum.Text := IniFile.ReadString(SECAO_CEDENTE, 'Numero', '100'); edtBenifComplemento.Text:= IniFile.ReadString(SECAO_CEDENTE, 'Complemento', 'Compl'); edtBenifBairro.Text := IniFile.ReadString(SECAO_CEDENTE, 'Bairro', 'Centro'); edtBenifCidade.Text := IniFile.ReadString(SECAO_CEDENTE, 'Cidade', 'Tatui'); edtBenifUF.Text := IniFile.ReadString(SECAO_CEDENTE, 'UF', 'SP'); edtBenifCEP.Text := IniFile.ReadString(SECAO_CEDENTE, 'CEP', '18270-000'); edtBenifTelefone.Text := IniFile.ReadString(SECAO_CEDENTE, 'Telefone', '(11) 99999-9999'); finally IniFile.Free; end; end; procedure TfrmDemoBoleto.CarregarIniPagador; const SECAO_PAGADOR = 'PAGADOR'; var xPath, xArquivo: string; IniFile: TMemIniFile; begin // Define o caminho e o nome do arquivo INI xPath := ExtractFilePath(ParamStr(0)); xArquivo := ChangeFileExt(ExtractFileName(ParamStr(0)), '.ini'); // Cria o objeto TMemIniFile para leitura do arquivo INI IniFile := TMemIniFile.Create(IncludeTrailingPathDelimiter(xPath) + xArquivo); try edtPagNome.Text := IniFile.ReadString(SECAO_PAGADOR, 'Nome', 'CLIENTE DE TESTES'); edtPagCPFCNPJ.Text := IniFile.ReadString(SECAO_PAGADOR, 'CPFCNPJ', '676.387.808-76'); edtPagEmail.Text := IniFile.ReadString(SECAO_PAGADOR, 'Email', '[email protected]'); edtPagEndereco.Text := IniFile.ReadString(SECAO_PAGADOR, 'Logradouro', 'Rua dos clientes'); edtPagNumero.Text := IniFile.ReadString(SECAO_PAGADOR, 'Numero', '100'); edtPagComplemento.Text := IniFile.ReadString(SECAO_PAGADOR, 'Complemento', ''); // Caso não haja valor, permanece vazio edtPagBairro.Text := IniFile.ReadString(SECAO_PAGADOR, 'Bairro', 'Centro'); edtPagCidade.Text := IniFile.ReadString(SECAO_PAGADOR, 'Cidade', 'Tatui'); edtPagCEP.Text := IniFile.ReadString(SECAO_PAGADOR, 'CEP', '18270-000'); edtPagUF.Text := IniFile.ReadString(SECAO_PAGADOR, 'UF', 'SP'); finally IniFile.Free; end; end; sucesso todos uDemoBoleto.dfm uDemoBoleto.pas
  6. Olá a todos, Procurei no fórum e não encontrei uma solução para o problema, então decidi compartilhar minha contribuição. Abaixo, você encontrará a rotina que desenvolvi para identificar se um certificado está instalado no Windows. Espero que seja útil para quem precisa! function IsCertificateInstalled(const SerialNumber: string): Boolean; var i: Integer; CertificateFound: Boolean; begin Result := False; CertificateFound := False; try // Tenta carregar os certificados disponíveis ACBrNFSeX1.SSL.LerCertificadosStore; // Itera sobre a lista de certificados carregados for i := 0 to ACBrNFSeX1.SSL.ListaCertificados.Count - 1 do begin // Verifica se o número de série do certificado atual é igual ao procurado if ACBrNFSeX1.SSL.ListaCertificados[i].NumeroSerie = SerialNumber then begin CertificateFound := True; Break; // Certificado encontrado, interrompe a busca end; end; // Define o resultado final Result := CertificateFound; except on E: Exception do begin // Log de erro ou tratamento específico pode ser adicionado aqui // Por exemplo: LogError('Erro ao verificar certificados: ' + E.Message); Result := False; // Em caso de erro, o certificado não foi encontrado end; end; end; como chamar: CertifInstalado := IsCertificateInstalled('NUMERO DO CERTIFICADO'); if CertifInstalado then ShowMessage ('Certificado encontrado!') else ShowMessage ('Certificado não encontrado.'); espero que seja util.
  7. segue em anexo arquivo alterado e ja validado no envio da prefeitura citada caminho do arquivo nos fontes acbr ...\acbr\Fontes\ACBrDFe\ACBrNFSeX\Provedores\SisPMJP.GravarXml.pas grato SisPMJP.GravarXml.pas
  8. RESOLVIDO, precisei alterar a unit SisPMJP.GravarXml pra incluir a empresa como RegimeEspecialTributacao in [retMicroempresaMunicipal]), sendo do simpples nacional, ficando assim: function TNFSeW_SisPMJP202.GerarXml: Boolean; begin if (NFSe.OptanteSimplesNacional = snNao) then begin if (NFSe.RegimeEspecialTributacao in [retMicroempresaMunicipal, retMicroempresarioEmpresaPP]) then NrOcorrValorIss := 1 else NrOcorrValorIss := -1; end else if (NFSe.RegimeEspecialTributacao in [retMicroempresaMunicipal]) then NrOcorrValorIss := 1 else NrOcorrValorIss := -1; { if (NFSe.OptanteSimplesNacional = snNao) then if (NFSe.RegimeEspecialTributacao in [retMicroempresaMunicipal, retMicroempresarioEmpresaPP]) then NrOcorrValorIss := 1 else NrOcorrValorIss := -1; } Result := inherited GerarXml; end; para gerar o valor da Servico.Valores.ValorISS, precisei usar esse arrendamento para abixo, (segundo o suporte da prefeitura: a prefeitura utiliza a regra round half) function TPrincipalForm.RoundTo5Down(Valor: Double; Casas: Integer): Double; var xValor, xDecimais: String; p, nCasas: Integer; nValor: Double; begin nValor := Valor; xValor := Trim(FloatToStr(Valor)); p := Pos(',', xValor); if Casas < 0 then nCasas := -Casas else nCasas := Casas; if p > 0 then begin xDecimais := Copy(xValor, p + 1, Length(xValor)); if Length(xDecimais) > nCasas then begin if xDecimais[nCasas + 1] >= '5' then begin // Se o próximo dígito após as casas decimais for maior ou igual a 5, // arredonda para baixo (round half down) if Valor < 0 then nValor := Int(nValor * Power(10, nCasas)) / Power(10, nCasas) else nValor := Int(nValor * Power(10, nCasas) + 0.5) / Power(10, nCasas); end else SetRoundMode(rmNearest); end; nValor := RoundTo(nValor, Casas); end; // Arredondando para o número especificado de casas decimais // Formatar o resultado com vírgula como separador decimal e duas casas decimais Result := StrToFloat(FormatFloat('#,##0.00', nValor)); end; Observacao do problema, passado pelo setor contabil: A empresa atingiu o sublimite do Simples Nacional sendo assim, começa a pagar ISS por fora, e não na guia do Simples. Isso se dá porque durante todo ano de 2023 o mesmo atingiu um faturamento anual(RBAA) de mais de R$ 3.600.000,00. A empresa continua sendo SIMPLES NACIONAL Resumo: foi necessario fazer os ajustes acima! deixo aqui como fontes praa ajudar outros b.os; e obrigado pela atencao
  9. ainda estou no aguardo de qual padrao o servido utiliza para "ValorIss" e quando deve ser informado ou nao no xml (quando tiver a resposta complemento aqui). porem, deixe comentada essa funcao TNFSeW_SisPMJP202.GerarXml, sempre retornado 1 (UM) e ja deu certo aqui, begin //if (NFSe.OptanteSimplesNacional = snNao) and // if (NFSe.RegimeEspecialTributacao in [retMicroempresaMunicipal, retMicroempresarioEmpresaPP]) then NrOcorrValorIss := 1 // else // NrOcorrValorIss := -1; POREM PRECISOU DE UM AJUSTE: email recebido do suporte com erro no valor informado na tag ValorIss da pref: ================================================== Valor correto do tributo são 45,47, o erro esta sendo ocasionado devido a regra de arredondamento, a prefeitura utiliza a regra round half down . <Valores> <ValorServicos>909.50</ValorServicos> <ValorIss>45.48</ValorIss> <Aliquota>5.00</Aliquota> </Valores> ================================================== rotina que usei calcular o valor ValorIss para baixo e nao para cima function RoundTo5Down(Valor: Double; Casas: Integer): Double; var xValor, xDecimais: String; p, nCasas: Integer; nValor: Double; begin nValor := Valor; xValor := Trim(FloatToStr(Valor)); p := Pos(',', xValor); if Casas < 0 then nCasas := -Casas else nCasas := Casas; if p > 0 then begin xDecimais := Copy(xValor, p + 1, Length(xValor)); if Length(xDecimais) > nCasas then begin if xDecimais[nCasas + 1] >= '5' then SetRoundMode(rmDown) // Setar para a regra round half down else SetRoundMode(rmNearest); end; nValor := RoundTo(Valor, Casas); end; // Arredondando para duas casas decimais Result := Trunc(nValor * 100) / 100; end;
  10. realmente essa tag colqiei depois pra ver se estava falando alimentar algo em relacao ao exemplo Ola boa tarde, grato pela atencao: mas entao o x da questao é esse: < if (NFSe.OptanteSimplesNacional = snNao ) > a empresa continua do Simples nacional: texto so setor contabil: atingiu o sublimite do Simples Nacional sendo assim, começa a pagar ISS por fora, e não na guia do Simples. se mantendo no simples... essa tague eu ha comentei a mesma Servico.Valores.tribMun.tribISSQN := tiOperacaoTributavel; <fio olhando o exemplo e pensei que falatav algo no meu codigo);
  11. Estou enviando um nfse para a cidade de Nome=Joao Pessoa UF=PB Provedor=SisPMJP Versao=2.02 e No xml nao aparece o aqui a resposta do suporte A partir do dia 11 de março os RPS's foram rejeitados por erro E340 ( Valor do ISSQN não informado. ); sefue em anexo o sml que enviei ao suporte dessa resposta resposta do contador deram a seguinte informacao que que a empresa mudou de tributacao de "nao incidencia" para "operacao tributavel" >> onde ja fiz o ajuste Servico.Valores.tribMun.tribISSQN := tiOperacaoTributavel; como tbm atingindo o sublimite de faturamente de simples, mas que pemanence no simples o emissor da nota fiscal e uma empresa do simples nacional, nao tem retencao de ISS e nao tem regime especial de tributacao. De certa forma nao estou conseguindo gerar o XML com o valorISS o qual informo na tag: Servico.Valores.ValorISS Obsevacao: na mesma cidade noutro cnpj, envio as notas sem precisa ter a tag: Servico.Valores.ValorISS entao se alguem puder dar um norte agradeco 1039229-lista-nfse-sinc.xml 2524032653765000016456000000001039229-rps.xml ESSA NOTA DE OUTRO CNPJ NA MESMA CIDADE DEU CERTO 2524034367071700015356000000001007054-nfse.xml
  12. resolivido esse numero de retorno que vem do banco pego da pocaio 3 ate a posicao 11, devolvo pra o NossoNumero e o acbr faz o calulo igualmente ao abnco inter pode fechar
  13. Saudações a todos! Agradeço imensamente se puderem oferecer sua ajuda. Estou concluindo a homologacação do banco inter, cnab 400, ja estou populando o banco de dados com o nosso numero vinto atraves do arquivo de retorno, preciso substuir processo de de imrpessao em vez de usar o convencional, NossoNumero := (SEQ_NOSSO_NUM.AsString); ACBrBoleto1.Banco.MontarCampoNossoNumero(Titulo); trocar pelo nosso numero que recebir do atraves do retorno, o qual ja esta gravado no banco por exemplo: 01200671089-4 ja tenho pronto, nao preciso mais calcular nao sei se fui claro mais... agradeco desde ja
  14. Ja resolvido, acredito que era problema de atualizacao do do sistema do banco inter, posteriormente parou de ocorrer.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...