
eraldocg
Membros-
Total de ítens
73 -
Registro em
-
Última visita
Últimos Visitantes
1.039 visualizações
eraldocg's Achievements
-
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
-
eraldocg started following banco Inter, falha de envio do remessa , Verificar a Instalação de Certificados no Windows , Não esta gerando a tag ValorIss no xml e 1 outro
-
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.
-
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...
-
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?
-
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: