
eraldocg
Membros-
Total de ítens
77 -
Registro em
-
Última visita
Últimos Visitantes
1.059 visualizações
eraldocg's Achievements
-
"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
-
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 ---------------------------
-
ja enviei um email desde cedo, o negocio é ter resposta; mas no site, link documentacao, nao tem nada sobre alteracao
-
eraldocg started following SisPMJP - NFSeX Esta retornando a versao errada 2.03
-
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;
-
uDemoBoleto: Implementação das seções Pagador e Cedente no arquivo INI
um tópico no fórum postou eraldocg ACBrBoleto
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 -
eraldocg started following Italo Giurizzato Junior
-
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.
-
- 1
-
-
- certificado
- validade certificado
- (e 3 mais)
-
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
-
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
-
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;
-
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);
-
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
-
Banco Inter, cnab 400, como fazer a impressão apos pegar o nosso numero no arquivo de retorno
um tópico no fórum postou eraldocg ACBrBoleto
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 -
Ja resolvido, acredito que era problema de atualizacao do do sistema do banco inter, posteriormente parou de ocorrer.