Ir para conteúdo
  • Cadastre-se

eraldocg

Membros
  • Total de ítens

    72
  • Registro em

  • Última visita

1 Seguidor

Últimos Visitantes

919 visualizações

eraldocg's Achievements

  1. 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.
  2. 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
  3. 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
  4. 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;
  5. 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);
  6. 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
  7. 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
  8. 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
  9. Ja resolvido, acredito que era problema de atualizacao do do sistema do banco inter, posteriormente parou de ocorrer.
  10. a rotina e a mesma para todos os banco (essas tags recebem valores padroes): TipoDesconto := tdValorFixoAteDataInformada DataDesconto := BoletosVENCIMENTO.AsDateTime; isso ja vinha fazendo e funcionando normalmente, veio dar esse problema com o banco inter o qual estou comecando a trabalhar...
  11. Erro A data para desconto deverá ser preenchida para o código do desconto escolhido. valor: VALORFIXODATAINFORMADA Valor de desconto deverá ser diferente de 0 (zero) para o código do desconto informado. valor: null A data para desconto deverá ser preenchida para o código do desconto escolhido. valor: VALORFIXODATAINFORMADA Alguem aquija encontrou esse erro? ao tentar enviar o remessa no banco Inter?
  12. RESOLVIDO! O problema só acontecia na fase de homologação. Quando enviei em modo de produção, tudo funcionou bem. Então, testei o evento de cancelamento para encerrar o teste. mesmo assim grato
  13. quando tempo em homologação o erro e o seguinte: Ambiente: 2 Cidade : Porto Alegre/RS Provedor: PadraoNacional Versão: 1.00 Método Executado: Gerar NFSe Parâmetros de Envio Numero do Lote: 1 Parâmetros de Retorno Data de Envio : 08/11/2023 Numero do Prot: Numero da Nota: Link : Código Verif. : Sucesso : False Erro(s): Código : E0206 Mensagem: O grupo de informações de endereço no exterior deve ser informado obrigatoriamente quando o tomador for identificado pelo NIF. Correção:
  14. Estou em processo de migração do componente antigo NFse para o NFseX, e estou enfrentando o erro mencionado a seguir. Este problema persiste tanto no exemplo/tutorial quanto na minha aplicação, mesmo após tentativas como a reinstalação do ACBr, exclusão e reinstalação do componente, e revisão da configuração por inúmeras vezes. Estou recorrendo a esta fonte em busca de orientação para resolver essa questão: ( detalhe: estou usando o PadraoNacional de porto alegre rs) Requisição Ambiente: 1 Cidade : Porto Alegre/RS Provedor: PadraoNacional Versão: 1.00 Método Executado: Gerar NFSe Parâmetros de Envio Numero do Lote: 1 Parâmetros de Retorno Data de Envio : 08/11/2023 Numero do Prot: Numero da Nota: Link : Código Verif. : Sucesso : False Erro(s): Código : E0206 Mensagem: CPF do tomador informado na DPS é inválido. Correção: --------- Código : X203 Mensagem: Não foi retornado nenhuma NFSe. Correção: --------- NFS-e Numero....: 1 Cod. Verificacao: Prestador.......: Tomador.........: INSCRICAO DE TESTE E TESTE
×
×
  • 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...